request.txt ファイルの作成
バイナリ添付ファイルの読み込みでは、バッチは zip ファイルにまとめられます。この zip ファイルには、バイナリ添付ファイルへの参照が含まれた request.txt という名前のファイルが、CSV、XML、または JSON のいずれかの形式で格納されます。バイナリ添付ファイル自体も格納されます。バイナリ添付ファイルを含まない CSV、XML、または JSON バッチファイルとの違いに注意してください。こうしたバッチファイルでは、zip ファイルや request.txt ファイルは必要ありません。
request.txt ファイルは zip のベースディレクトリに格納されます。バイナリ添付ファイル自体は、ベースディレクトリに格納することも、サブディレクトリに整理して格納することもできます。request.txt ファイルは、zip に格納されたバイナリ添付ファイルのマニフェストファイルであり、バイナリ添付ファイルを参照する各レコードのデータを保存します。
添付ファイルオブジェクトでは、次の項目を適切な表記で記述することが非常に重要です。
- Name: バイナリ添付ファイルのファイル名を記述します。バッチに含める添付ファイルについて、一意の名前を取得するもっとも簡単な方法は、ベースディレクトリからバイナリ添付ファイルへの相対パスを使用することです。たとえば、attachment1.gif または subdir/attachment2.doc です。
- Body: バイナリ添付ファイルへの相対パスの先頭に # 記号を付けて記します。たとえば、#attachment1.gif または #subdir/attachment2.doc です。
- ParentId: 添付ファイルの親レコード (取引先、ケースなど) を表す ID を記述します。
バッチファイルには、上記以外の添付ファイルオブジェクトの項目 (例: Description など) も含めることができます。詳細は、「Attachment」を参照してください。
サンプルの CSV request.txt ファイル
次に示す CSV のサンプルファイルには、添付ファイルオブジェクトの 2 つのレコードが含まれています。1 つ目のレコードは、zip ファイルのベースディレクトリにあるバイナリ添付ファイル attachment1.gif を参照しています。2 つ目のレコードは、zip ファイルのサブディレクトリ subdir にあるバイナリ添付ファイル attachment2.doc を参照しています。ParentId 項目を見ると、どちらの添付ファイルレコードも親レコードとして取引先を参照していることがわかります。なお、Account ID の部分は、親となる取引先レコードの Id によって置き換えます。
1Name,ParentId,Body
2attachment1.gif,Account Id,#attachment1.gif
3subdir/attachment2.doc,Account Id,#subdir/attachment2.docサンプルの XML request.txt ファイル
次に示す XML のサンプルファイルには、先ほどの CSV のサンプルファイルと同じ 2 つのレコードが含まれています。
1<?xml version="1.0" encoding="UTF-8"?>
2<sObjects
3 xmlns="http://www.force.com/2009/06/asyncapi/dataload"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
5 <sObject>
6 <Name>attachment1.gif</Name>
7 <ParentId>Account Id</ParentId>
8 <Body>#attachment1.gif</Body>
9 </sObject>
10 <sObject>
11 <Name>subdir/attachment2.doc</Name>
12 <ParentId>Account Id</ParentId>
13 <Body>#subdir/attachment2.doc</Body>
14 </sObject>
15</sObjects>サンプルの JSON request.txt ファイル
次に示す JSON のサンプルファイルには、先ほどの例と同じ 2 つのレコードが含まれています。
1[
2 {
3 "Name" : "attachment1.gif",
4 "ParentId" : "Account Id",
5 "Body" : "#attachment1.gif"
6 },
7 {
8 "Name" : "subdir/attachment2.doc",
9 "ParentId" : "Account Id",
10 "Body" : "#subdir/attachment2.doc"
11 }
12]