Salesforce から添付ファイルを抽出する必要がありますか? いくつかのメモと添付ファイルを別の環境に転送する必要があります。メモを抽出することはできますが、添付ファイルを抽出する方法がわかりません
ありがとう
プラディ
Salesforce から添付ファイルを抽出する必要がありますか? いくつかのメモと添付ファイルを別の環境に転送する必要があります。メモを抽出することはできますが、添付ファイルを抽出する方法がわかりません
ありがとう
プラディ
これは主に、抽出に使用するツール/ユーティリティによって異なります。フィールドがクエリに含まれている場合、sObjectのSOQLAttachment
は常に一度に1行を返しBody
ます。これは、リソースを節約し、SOQLスクリプトの過剰な負担を防ぐために実施されます。
アプローチ#1、queryMoreが使用できない場合:SOQL
なしBody
フィールドを発行してすべての添付ファイルを列挙し、添付ファイルIDごとに1つのSOQLを発行して取得しますBody
アプローチ#2:SOQLを発行して必要なすべての添付ファイルを取得し、ループを使用queryMore
して一度に1つずつ取得します。
アプローチ#3:SF環境を「フリーズ」でき、システムのスナップショットを取得して、今後使用する別のシステムをプリロードしたい場合は、「データエクスポート」を使用できます。セットアップメニューのデータ管理にデータのエクスポートコマンドがあります。すべてのバイナリデータを含めるには、必ず[エクスポートに含める]をクリックしてください。適正手続きの後、オフラインで処理できる完全なデータバックアップが提供されます。
ところで、本体はbase64でエンコードされているため、実際のバイナリを取得するにはデコードする必要があります
SalesForce では、アタッチメントは Account オブジェクトなどのオブジェクトに対して行われます。
添付ファイルを取得する手順 (Java)
ファイルが添付されているオブジェクトの ID を取得します。eq Account オブジェクト
String pid = Account__r().getId();
ステップ 1 の ID に対して、Salesforce オブジェクト「Attachment」に対してクエリを実行します。
*String q = "Select Name, Body, ContentType from Attachment
where ParentId = '" + pid + "'";
QueryResult qr = connection.query(q);
SObject[] sarr = qr.getRecords();*
SObject so = sarr[0];
Salesforce 汎用オブジェクト (SObject) を「Attachment」オブジェクトに型キャストする
*Attachment att = (Attachment)so;*
添付ファイルの本文からバイト配列ストリームを取得し、バイト配列で必要な操作を行います。
*byte[] bName = att.getBody();
// Do your operation in byte array stream*