Marketing Cloud では、読み取り専用のグローバル変数 @@ExecCtx. で表される、種別および名前ごとの実行コンテキストがサポートされています。システムは、Load 種別と Post 種別を処理します。呼び出しでコンテキストが指定されていない場合はデフォルトの Load になります。特定の実行コンテキストが指定されていないコンテンツはどのようなコンテキストでも処理されます。システムは、すべてのコンテキスト種別に対応します。が、指定された名前のアクティブなコンテンツのスクリプトブロックのみを処理します。たとえば、呼び出し元が Post コンテキスト種別を指定し、Post 種別で実行されるコードのセクションに SaveData という名前のスクリプトブロックが存在する場合、Marketing Cloud はそのブロックのみを処理します。
呼び出し元は、Load または Post (大文字と小文字が区別される文字列値) を @@ExecCtx に設定して、現在の実行コンテキストを指定します。この変数を使用して、次の例のように実行コンテキストに基づいてコンテンツの処理を制御します。
1/* Content and Script to always be executed here */2%%[ IF @@ExecCtx == "LOAD" THEN]%%3 %%[/*Load Content or Script Here*/]%%4%%[ ELSEIF @@ExecCtx == "POST" THEN]%%5 %%[/*Load Content or Script Here*/]%%6%%[ENDIF]%%7/* Content and Script to always be executed here */
スクリプトブロックは、同じスクリプトブロックセクション内で完了する必要があります。たとえば、スクリプトブロック内の IF または FOR ステートメントは、同じ名前のスクリプトブロック内の ENDIF または NEXT で完了する必要があります。スクリプトブロックが 2 つ以上のスクリプトブロックセクションにまたがる場合、Marketing Cloud は次のエラーメッセージを返します。
1"An incomplete IF statement exists in a typed script block. Script statements cannot span named or typed script blocks."2You can also use execution context to determine whether to display most current content or the content current as of when the email was sent.