AMPscript 関数呼び出し
メールメッセージ、ランディングページ、SMS メッセージのスクリプトの結果を表示する場所で AMPscript を呼び出します。すべての AMPscript コードおよび関数は、開始と終了の区切り記号で囲む必要があります。このようにしないと、システムでコードが無視されます。関数呼び出しは、SET や IF などのスクリプトステートメントの外側でも実行されます。AMPscript の区切り記号の前後に括弧を使用する場合、それらの括弧と区切り記号の間にスペースを追加します。
1[content] %%[script]%% [content]
AMPscript ブロックの外側にある関数呼び出し
AMPscript ブロックの外側にある関数呼び出しは、開始の区切り記号 %%= で始まり、終了の区切り記号 =%% で終わる必要があります。
1%%=LOWERCASE(Name)=%%
2
3%%=UPSERTDE("ent.CustomObject4",2,"Region","None","Product",_SubscriberKey,"Available",0,
4"Price",100.77,"Inventory",0,"ExpireDate",NOW(),"Url",CONCAT(SubscriberID,"Upsert"))=%%
次の AMPscript の例は、1 つの区切り記号のセット内に複数の AMPscript 参照を含める方法を示しています。
1<a href="%%=RedirectTo(TreatAsContent(Concat(view_email_url,"&ep=20110902&oeid=20110902",Substring(Uppercase(Source),1,1))))=%%">
AMPscript ブロックの内側にある関数呼び出し
AMPscript ブロック内の関数呼び出しでは、開始 (%%=) と終了 (=%%) の区切り記号を含めないでください。
関数の戻り値
関数の出力は、スクリプトまたは関数呼び出しで参照することもできます。関数の場合、ネストされた関数呼び出しでこれを実装します。次に例を示します。
1%%=LOWERCASE(SUBSTRING(Name, 1, 5))=%%
AMPscript コールが永久にループするのを防ぐために、AMPscript 関数を再帰的にコールできなくなり、エラーを受信するようになりました: 104 - RecursiveScriptError再帰的条件は、購読者が Errored/NotSent として送信する購読者エラー制限しきい値または傾向に対してカウントされます。このエラーはメール、SMS、プッシュ通知に適用されますが、CloudPages には適用されません。
AMPscript のタグベースの構文
AMPscript のタグベースの構文は、サーバーサイド JavaScript の構文を使用して、AMPscript ブロックを宣言するために使用される構文を標準化します。この構文により、開発者が AMPscript とサーバーサイド JavaScript を切り替えるときに異なる構文で作成する負担が軽減されます。以下の情報を使用して、AMPscript 呼び出しを書式設定します。AMPscript 呼び出しでは、大文字と小文字は区別されます。
最小限の構文
次のサンプルは、AMPscript ブロックを宣言するために必要な最小限の構文を示しています。
1<script runat=server language=ampscript>
2 [INSERT AMPSCRIPT HERE]
3</script>
完全な構文
次のサンプルは、AMPscript ブロックを宣言するために使用される完全な構文を示しています。
1<script runat=server language="ampscript" executioncontexttype="Post" executioncontextname=test>
2 [INSERT AMPSCRIPT HERE]
3</script>
AMPscript ブロックは、それを開始した構文と同じ構文で終了する必要があります。たとえば、<script> を使用してブロックを開始した場合、]%% ではなく </script> を使用して終了する必要があります。
区切り記号の比較
以下の表は、標準の AMPscript の区切り記号とサーバーサイドの区切り記号の類似性を示しています。
| 標準の AMPscript の区切り記号 | タグベースの AMPscript の区切り記号 |
|---|
| %%[ | <script runat=server language=ampscript> |
| %%[[type=post;name=blockname] | <script runat=server language=ampscript executioncontexttype=“Post” executioncontextname=blockname> |
| ]%% | </script> |
| %%[]%% | <script runat=server language=ampscript /> |
関数呼び出しの使用
関数は、次の入力種別を受け入れます。
定数値
属性値
変数値