カスタム・マクロを使用するためのガイドライン
カスタム・マクロを作成または使用するときは、以下のガイドラインに留意してください。
*
*
データ・ソースがプロパティー ENABLE_SELECT_SORT_BY = TRUE で構成されている場合は、返されるレコードを作業を行っているオーディエンス・レベルのオーディエンス・キー・フィールドによってソートするために、「ORDER BY」節を指定して未加工 SQL カスタム・マクロを作成する必要があります。 そうしないと、ソート順が期待どおりでない場合は、カスタム・マクロをスナップショット・プロセスのユーザー定義フィールドで使用するとエラーが生成されます。
*
*
カスタム・マクロの基礎ロジックで一時テーブルを使用する場合は、ロジックで障害が起こらないように一時テーブルがデータベースに保存されます。
ただし、カスタム・マクロを最上位 SELECT で使用する場合は、一時テーブルをデータベースに保存するために Campaign が使用する履歴がないため、ロジックは失敗します。
したがって、未加工 SQL を使用するカスタム・マクロを作成する場合は、同じカスタム・マクロの 2 つのバージョンを作成する必要がある場合があります。 1 つは一時テーブル・トークンを使用するカスタム・マクロで、もう 1 つは一時テーブル・トークンを使用しないカスタム・マクロです。
一時テーブル・トークンを使用しないカスタム・マクロは、ツリーの最上位 (例えば、最初の SELECT) で使用できます。一時テーブル・トークンを使用するカスタム・マクロは、利用する一時テーブルがあれば、ツリーの最上位以外の場所で使用できます。
*
例えば、値を返す未加工 SQL をベースにしたカスタム・マクロを使用し、(例えば、スナップショット・プロセスで) カスタム・マクロと、カスタム・マクロのベースになっているテーブルの別のフィールドを出力する場合、Campaign は、そのテーブルに対して自己結合を実行します。 テーブルが正規化されていない場合は、デカルト積になります (つまり、表示されるレコード数が予想より多くなります)。
*
実行時に、カスタム・マクロは UA_CustomMacros システム・テーブル内 (ここに定義が保管されます) でカスタム・マクロの定義を検索することによって解決され、その後、使用または実行されます。
*
Campaign は、旧リリースの保存された照会をサポートします。ただし、非固有の保存された照会への参照では、次の古い構文を使用する必要があります。
storedquery(<照会名>)
*
カスタム・マクロ内のユーザー変数を解決する場合、Campaign は、構文の検査時にユーザー変数の現在の値を使用します。現在の値がブランクのままの場合、Campaign はエラーを生成します。
*
*
*
*
Campaign は、コンマをパラメーターの区切り記号として扱います。コンマをパラメーターのリテラル文字として使用する場合は、次の例のように大括弧 ({}) でテキストを囲みます。
TestCM( {STRING_CONCAT(UserVar.Test1, UserVar.Test2) } )
*
Campaign は、未加工 SQL コードを使用するカスタム・マクロのパラメーターで簡単な置換をサポートしています。 例えば、フローチャートで、次の照会を含む選択プロセス・ボックスをセットアップするとします。
exec dbms_stats.gather_table_stats(tabname=> <temptable>,ownname=> 'autodcc')
この場合、Campaign は、<temptable> トークンを実際の一時テーブルに正常に置換します。 テーブル名は、単一引用符で囲む必要があることに注意してください。
以下の表は、Campaign が、照会およびユーザー定義フィールドでカスタム・マクロを扱う方法を示しています。
照会およびユーザー定義フィールドでのカスタム・マクロ (選択、セグメント、およびオーディエンス・プロセス)
この方法で値が使用されない場合、Campaign は、ゼロ以外の値を ID 選択用に TRUE として扱い、ゼロの値と文字列を FALSE として扱います。
IBM ®
未加工 SQL 照会 (選択、セグメント、およびオーディエンス・プロセス)
IBM ®