![見出し画像](https://assets.st-note.com/production/uploads/images/138156714/rectangle_large_type_2_3d7806cb6c7c85ef41958b062a6de305.png?width=800)
【第155回】 データエクステンションや自動連絡禁止リストからのレコードの削除方法
Salesforce Marketing Cloud において、データエクステンションから一部のレコードを部分的に削除したい場合は、どのように対処すべきでしょうか?
例えば、データエクステンションに格納されているレコードを一度すべてエクスポートして、該当のレコードだけを削除して、再度インポートし直すという方法もあるかと思います。
但し、セキュリティ上、個人情報が含まれるデータのため、ローカル環境にエクスポートできない場合や、自動連絡禁止リストのようにそもそもエクスポートができない場合もあります。
このような場合は、Automation Studio のスクリプトアクティビティを用いて、データエクステンションから部分的にレコードを削除することを検討できます。
以下で、単数レコードを削除する場合と、複数レコードを削除する場合に分けて検討してみましょう。
■ 単数レコードの削除
レコードの削除を実行するには、以下の DeleteData という関数を使用します。
以下のスクリプトに「データエクステンション名」「項目名」「値」を記載して、Automation Studio でスクリプトアクティビティを 1 回実行してください。
<script runat="server">
var rows = Platform.Function.DeleteData('データエクステンション名',['項目名'],['値']);
</script>
・「データエクステンション名」「項目名」「値」は、日本語でも問題ありません。また、大文字・小文字も区別しません。
・ 1 回の呼び出しに複数の「項目名」と「値」のペアを含めることができますが、仮に単数であっても [ ] は削除しないで下さい。
ちなみに、自動連絡禁止リストはデータエクステンションの扱いのため、上記のスクリプトで処理が可能です。自動連絡禁止リストは、購読者キー管理では無く、メールアドレス管理になっています。メールアドレスを指定する際は、以下のような形になります。
<script runat="server">
var rows = Platform.Function.DeleteData('自動連絡禁止リスト名',['Email Address'],['xxx@gmail.com']);
</script>
・ Email と Address の間にスペースを設けてください。
■ 複数レコードの一括削除
それでは、複数のレコードをまとめて消したい場合はどうすれば良いでしょうか?
このような場合は、削除用のブール値の項目を設けて、削除対象のレコードに「True」を持たせ、その項目が「True」の場合に削除するという方法を採用することができます。
まず、以下のようなデータエクステンションがあるとして、削除のために「DeleteFlag」のようなブーリアンの項目を設けます。
![](https://assets.st-note.com/img/1716702172301-eoqd1J3srH.png?width=800)
ここで「奇数の ID」のものだけを削除する目的で、フラグを更新するためのインポート用の CSV を用意して、先ほどのデータエクステンションにインポートしましょう。
![](https://assets.st-note.com/img/1714278974137-a7xhB7srjv.png)
下記の通り、インポートが完了しました。
![](https://assets.st-note.com/img/1716702158220-Im5VvmZGAw.png?width=800)
こちらのデータエクステンション(「DeleteExtension」)に対して、以下のようなスクリプトを実行します。
<script runat="server">
var rows = Platform.Function.DeleteData('DeleteExtension',['DeleteFlag'],['True']);
</script>
すると、データエクステンションの中身から、奇数の ID であるものが削除されましたね。成功です。
![](https://assets.st-note.com/img/1716702138937-Wm5zsF1cL4.png?width=800)
ちなみに、自動連絡禁止リストに対しても「フィールドの追加」は可能です。まず、上記と同様にブーリアンの項目を追加してください。(その際、デフォルトで「False」の値を持たせても良いと思います。)
![](https://assets.st-note.com/img/1716702116472-UCUPQu3Wjk.png?width=800)
その後、Automation Studio のインポートアクティビティで Email Address をキーにして、True の値をインポートします。これにより上記と同じ方法で削除が可能です。
インポートの際は、Email Address の他、Date Added も必須項目になっていますので、インポート用の CSV を作成する時は注意してください。
![](https://assets.st-note.com/img/1716246595169-WZBaRJQi4J.png)
![](https://assets.st-note.com/img/1716125947483-oyGccZJTtM.png?width=800)
<script runat="server">
var rows = Platform.Function.DeleteData('自動連絡禁止リスト名',['Flag'],['True']);
</script>
いかがでしたでしょうか。
この方法を知ることで、より一層、データエクステンション内のレコードを柔軟にコントロールすることができるようになりましたね。是非活用してみてください。
今回は以上です。
Click here for English version
次の記事はこちら
前回の記事はこちら
私の note のトップページはこちら
この記事が気に入ったらサポートをしてみませんか?