この例では、ニュースレターを開封したがそれに含まれるリンクをクリックしなかったプロファイルの名前を記載したアラートをオペレーターに送信します。
プロファイルの氏名フィールドは受信者ターゲティングディメンションにリンクされているのに対して、アラートアクティビティはオペレーターターゲティングディメンションにリンクされています。結果として、2 つのターゲティングディメンション間で、紐付けを実行し、氏名フィールドを取得して、アラートアクティビティに表示するのに使用できるフィールドはありません。
このプロセスでは、次のようにワークフローを構築できます。
以下のコードを JavaScript コードアクティビティに追加します。
var query = xtk.queryDef.create(
<queryDef schema="temp:query" operation="select">
<select>
<node expr="[target/recipient.@firstName]"/>
<node expr="[target/recipient.@lastName]"/>
</select>
</queryDef>
);
var items = query.ExecuteQuery();
JavaScript コードがワークフロー情報に対応していることを確認します。
これらの情報を取得するには、以下の手順に従います。
「クエリ」アクティビティからのアウトバウンドトランジションを右クリックし、「ターゲットを表示」を選択します。
リストを右クリックして、「リストを設定」を選択します。
クエリターゲティングディメンションおよびフィールド名がリストに表示されます。
以下のコードを「テスト」アクティビティに追加すると、ターゲットにした母集団が少なくとも 1 つのプロファイルを含んでいるかどうかを確認できます。
var.recCount>0
これで、母集団が目的のフィールドを含むインスタンス変数に追加されたので、これらの情報をアラートアクティビティに追加できます。
そのためには、「ソース」タブに以下のコードを追加します。
<ul>
<%
var items = new XML(instance.vars.items)
for each (var item in items){
%>
<li><%= item.target.@firstName %> <%= item.target.@lastName %></li>
<%
} %></ul>
「<%= item.target.recipient.@fieldName %>」 コマンドを使用すると、JavaScript コードアクティビティでインスタンス変数に保存したフィールドのいずれかを追加できます。
フィールドが JavaScript コードに追加されている限り、フィールドを好きな数だけ追加できます。