
【第165回】 スクリプトを使って新規データエクステンションを作成する
Salesforce Marketing Cloud の新リリース Summer '24 の記事で、REST API を使用して新規データエクステンションを作成する方法について書きました。
それに関連して、スクリプトアクティビティを使用して新規データエクステンションを作成する方法について質問を頂きましたので、記事にします。
REST API で作成した方が、高速で新規データエクステンションを作成できますが、API を実行する環境を整える必要があります。よって、誰でも使えるスクリプトアクティビティの方が、よりお手軽な印象ではあります。
あくまで目安になりますが、作成されるスピードに関しては、フィールドが 100 項目存在するデータエクステンションを作るのに、スクリプトアクティビティで作成すると 1 分程度かかり、REST API であれば、3 秒程度で作成できるという感じでした。
それでは説明に入ります。
今回実装する内容は、以下のヘルプドキュメントに記載があります。
REST API の時と説明は、ほぼ同じになりますが、スクリプトアクティビティで作成する場合でも、送信可能データエクステンションであるか、送信不可データエクステンションであるかを区別しておく必要があります。
■ 送信可能データエクステンションのスクリプトテンプレート
<script runat="server">
Platform.Load("core", "1");
var dataExtensionConfig = {
"CustomerKey" : "",
"Name" : "データエクステンション名",
"Fields" : [
*** エクセルの H 列をコピペ ***
],
"SendableInfo" : {
"Field" : { "Name" : "送信リレーションシップ項目名", "FieldType" : "Text" },
"RelatesOn" : "Subscriber Key"
}
};
var createdDataExtension = DataExtension.Add(dataExtensionConfig);
</script>
■ 送信不可データエクステンションのスクリプトテンプレート
<script runat="server">
Platform.Load("Core", "1");
var dataExtensionConfig = {
"CustomerKey": "",
"Name": "データエクステンション名",
"Fields": [
*** エクセルの H 列をコピペ ***
]
};
var createdDataExtension = DataExtension.Add(dataExtensionConfig);
</script>
記載が必須であるカスタムキー(CustomKey)は、このテンプレートではブランクに設定してありますので、ランダムなカスタムキーが入力されます。データエクステンション名は、既に存在するデータエクステンション名を指定してしまうとエラーになるので、被らない形で設定してください。

後は、以下でダウンロードできるエクセルに必要事項を記載し、計算式によって出来上がる H 列を「*** エクセルの H 列をコピペ ***」の箇所にコピーするだけです。
REST API 側の記事で公開しているエクセルと、互換性があるように作成したので、A 列~ G 列に関しては、そちらのエクセルからのコピペでも使用できます。H 列の計算式の部分は、異なります。

★★★ Excel ツール (ダウンロード) ★★★

REST API 版では最後の項目の「,」を削除しないとエラーになりますが、スクリプトアクティビティ版では、削除しなくても問題ないです。
送信可能データエクステンションを選択している場合は、送信リレーションシップの項目名の入力が必要です。皆さんの環境では、顧客 ID のようなものが使用されていると思いますので、そちらと置き換えて下さい。

Automation Studio でスクリプトアクティビティを一回実行すると、新規データエクステンションがトップのデータエクステンションフォルダの中にできます。必要に応じて、別のフォルダに移動して下さい。


ちなみに、REST API で作成する場合は「フォルダ ID」を指定しないと、そのデータエクステンションがどこかに行ってしまい、その後の作業ができなくなります。一方、スクリプトアクティビティで作成する場合は、特に「フォルダ ID」の指定は不要です。
説明は以上です。
まずは、私が作成したエクセルの内容でそのまま実行してみて、実際にデータエクステンションが作成できるか試してみて下さい。 😎
今回は以上です。