Salesforce - CSVファイルからレコードを一括アップサートするアクション
このアクションは、CSVファイルと主キーを使用してSalesforceレコードを一括アップサートします。 一致するレコードが更新され、一致するレコードが見つからない場合は新しいレコードが作成されます。
ポーリング動作
ポーリングを伴うアクションを含むレシピは、非同期ポーリングが想定どおりに機能するよう、実行中の状態である必要があります。
バルク操作の詳細については、Salesforceバルク操作ガイドを参照してください。
APIバージョン
このアクションは、API v1.0とAPI v2.0の両方のバージョンに存在します。 Workatoでは、最適なパフォーマンスを得るためにBulk API v2.0の使用をお勧めします。 このバージョンでは、レコードをより効率的にバッチ処理することで、Salesforce API制限への影響を軽減します。
失敗したレコードの再試行
失敗したレコードを新しい一括ジョブとしてSalesforceに再送信するには、CSVファイルから失敗したレコードの一括ジョブを再試行アクションを使用できます。
入力
| 入力項目 | 説明 |
|---|---|
| アップサートするSalesforceオブジェクト | アップサートする標準またはカスタムオブジェクトタイプを選択します。 |
| リレーション項目 | 任意です。 CSVデータ列をSalesforceオブジェクト項目にマッピングする方法を選択します。 ポリモーフィック列にはリレーション項目が必要です。 このフィールドの詳細についてはリレーションシップフィールドセクションを、ポリモーフィックフィールドの詳細についてはSalesforce APIドキュメントを参照してください。 |
| 主キー | 主キーとして使用する外部IDを選択します。 または、ドロップダウンメニューを使用してこのフィールドを主キーを入力に切り替え、インデックス付きフィールドのAPI名を入力できます。 指定された主キーに複数のレコードが一致した場合、アクションはエラーをスローします。 詳細については、主キーセクションを参照してください。 |
| CSVファイル入力 | Salesforceバルクロードデータを含むCSVファイルのスキーマを定義します。 例については、CSVファイルセクションを参照してください。 |
| ファイル内容(CSVファイル入力) | ファイルの内容を入力します。 Download fileアクションからファイルデータピルを取得できます。 |
| 列区切り文字(CSVファイル入力) | 使用する列区切り文字をドロップダウンメニューから選択します。 たとえば、カンマ(,)またはパイプ(|)です。 |
| ヘッダー行を含むか? (CSVファイル入力) | CSVファイルの内容にヘッダー行が含まれるかどうかを選択します。 これにより、Workatoは最初の行をデータとして処理しないようにスキップするかどうかを判断します。 |
| 列名(CSVファイル入力) | CSVファイルのデータ列に関する情報を入力します。 |
| CSV列名をSalesforceフィールド名として使用 | CSV列をSalesforceオブジェクトフィールドに自動的にマッピングするかどうかを選択します。 このオプションには、Salesforceオブジェクトフィールドと一致する列名を含むヘッダーが必要です。 |
| CSVからSalesforceオブジェクトフィールドへのマッピング | CSV列名と、一括アップサートするSalesforceオブジェクトを入力します。 |
主キー
このアクションでは、各Salesforceレコードを一意に識別するために主キーを指定する必要があります。 Salesforce Bulk APIは、主キーとしてExternal IDフィールドと、内部Record IDなどのインデックス付きフィールドの両方をサポートしています。
External IDフィールドは、External ID属性を持つカスタムフィールドです。 Salesforce外部のシステムから取得した一意のレコード識別子が含まれています。 外部IDフィールドは、カスタムのテキスト、数値、またはメールフィールドである必要があります。
ドロップダウンメニューを使用して主キーフィールドを主キーを入力に切り替え、主キーとして使用するインデックス付きフィールドのAPI名を入力します。
外部IDおよびその他のインデックス付きフィールドを使用する場合のアクションの動作は、次のように異なります:
| 入力値 | 外部ID | インデックス付きフィールド |
|---|---|---|
| 一致が見つかった場合 | レコードを更新 | レコードを更新 |
| 一致が見つからない場合 | レコードを作成 | MALFORMED_ID:Id in upsert is not validエラー |
| 値なし | MISSING_ARGUMENT:External_ID__c not specifiedエラー | レコードを作成 |
複数のSalesforceレコードが指定された主キーと一致する場合、このアクションはエラーをスローします。
複数の主キー
1つの操作で複数の主キーを使用することはできません。 複数のフィールドでレコードを識別するシナリオを処理するには、まずいずれかのキーを使用して検索アクションを実行します。 次に、条件アクションを追加して、結果の数が1より大きいかどうかを確認します。
2つのフィールド(例:Full NameとAccount)を使用して検索する必要がある場合は、両方のフィールドをフィルターとして含む検索アクションを使用します。 次に、結果を取得し、レコードを更新または作成する前に、条件チェックを使用して一致するレコード数を検証します。
Salesforceでの主キーの作成
主キーとして使用するExternal ID項目を作成するには、次の手順を実行します。
Salesforceの設定メニューに移動し、オブジェクトマネージャータブを選択します。
カスタム項目を追加する予定のオブジェクトを選択します。 たとえば、取引先責任者です。
項目とリレーションタブに移動し、新規を選択します。
カスタム項目のデータ型を選択します。 この例ではテキストを使用します。
次へをクリックします。
次のフィールドを設定します。
項目の表示ラベル
表示、ページレイアウト、レポート、リストビューに使用するラベルを入力します。 この例では
Test idを使用します。長さ
項目の最大長を入力します。 この例では
25を使用します。フィールド名
項目名は、カスタムリンク、カスタムs-controls、APIなどのインテグレーション目的で使用される内部参照です。 項目名を変更すると、既存のインテグレーションに影響する可能性があります。 項目名には英数字のみを使用できます。 先頭は英字である必要があり、アンダースコアで終わることはできず、連続する2つのアンダースコア文字を含めることはできません。また、すべての
Contact項目間で一意である必要があります。一意
一意チェックボックスを選択して、重複する値を許可しないようにします。
外部ID
外部 IDチェックボックスを選択して、外部システムからの一意の識別子として項目を設定します。
次へをクリックします。
項目レベルセキュリティを通じてこの項目への編集アクセス権を付与するプロファイルを選択します。 どのプロファイルにも割り当てない場合、この項目はすべてのユーザーに対して非表示になります。
次へをクリックします。
この項目を含めるページレイアウトを選択します。 Salesforceは、選択した各レイアウトの最初の2列セクションの末尾に項目を追加します。 レイアウトを選択しない場合、この項目はどのページにも表示されません。
ページレイアウトをカスタマイズして、ページ上のこの項目の場所を変更できます。
保存をクリックします。 取引先責任者オブジェクトのカスタム項目は、Workatoレシピエディターの主キードロップダウンメニューにオプションとして表示されます。
Workatoに戻り、主キー項目を使用して新しいカスタム項目を選択します。
主キー
リレーション項目
Salesforceでは、リレーションおよびリレーション項目を使用して、2つのオブジェクト間のデータを関連付けます。 たとえば、AccountオブジェクトとContactオブジェクトには、各取引先責任者が1つの取引先への参照を保存し、各取引先が多くの取引先責任者にリンクできるリレーションがあります。 アカウントに関連付けられているすべての取引先責任者を、アカウントレコードから直接表示できます。 一部のオブジェクトには、同じタイプの他のオブジェクトとのリレーションがあります。 たとえば、取引先責任者のReports To項目は、別の取引先責任者への参照です。
リレーション項目では、ポリモーフィックな列マッピングも可能です。 Workatoはこのマッピングを自動的に推測できないため、手動で指定する必要があります。 リレーション項目入力を設定しない場合、Salesforceにデータはマッピングされません。
この項目を設定するには、Salesforceに書き込む予定の各項目について、CSVファイルのどの列からデータを取得するかを選択します。 このアクションでは、CSVファイルデータをSalesforceに直接ストリーミングするため、データピルまたはFormulaモードを使用したデータ変換は許可されません。 オブジェクトリレーションの詳細については、Salesforceオブジェクトリレーションガイドを参照してください。また、CSVヘッダー内のリレーション項目については、SalesforceのCSV項目ヘッダードキュメントを参照してください。
Salesforce一括アップサートアクション - 項目マッピングセクション
CSVファイル
次の例は、CSVのCSVファイル入力の形式を示しています:
external_id,last_name,value
"a0K1h000003fXSS","Minnes","54"
"a0K1h000003fehx","Lecompte","12"
"a0K1h000003fjnv","Fester","28"
Salesforce一括アクションの設定済みCSVファイル入力セクション
出力
| 出力フィールド | 説明 |
|---|---|
| すべてのレコードは正常に処理されましたか | Salesforceバルクジョブ全体ですべてのCSV行が正常に処理されたかどうかを示します。 |
| 成功したレコード数 | Salesforceで正常に処理されたCSV行の合計数。 |
| 処理失敗レコード数 | Salesforceで問題が発生し、処理されなかったCSV行の合計数。 |
| 再試行されたレコード数 | Salesforceで処理が再試行されたCSV行の合計数。 このフィールドは、CSVファイルからSalesforceでオブジェクトのバルクジョブを再試行アクションに関連します。 |
| 処理済みレコード数 | ヘッダー行を除く、Salesforceで処理されたCSV行の合計数。 |
| 失敗したレコードを含むCSVコンテンツ | 問題が発生し、処理されなかったCSV行を含むCSVファイルコンテンツ。 このCSVファイルには、sf__Errorとsf__Idの2つの列が追加されます。 詳細についてはSalesforceドキュメントを参照してください。 |
| 成功したレコードを含むCSVコンテンツ | Salesforceで正常に処理されたCSV行を含むCSVファイルコンテンツ。 このCSVファイルには、sf__Createdとsf__Idの2つの列が追加されます。 詳細についてはSalesforceドキュメントを参照してください。 |
| 失敗したレコードのレポートヘッダー | 失敗したレコードレポートのヘッダー情報。 |
| 成功したレコードのレポートヘッダー | 成功したレコードレポートのヘッダー情報。 |
| Salesforce一括ジョブ | 各Salesforce一括ジョブに関する情報を含むオブジェクト。 詳細についてはSalesforce一括ジョブセクションを参照してください。 |
Salesforceバルクジョブ
Workatoは、大きなCSVファイルをチャンクに分割し、Salesforce APIのサイズ制限に準拠するために、それらを個別のSalesforceバルクジョブとして処理します。 バルク操作は、処理された各チャンクに関する情報を含むSalesforce bulk jobsデータツリーを出力します。
Salesforce一括操作の出力データツリー - バルクジョブのリスト
Workatoは、すべてのバルクジョブの集計結果を、出力の最上部にあるSalesforce bulk jobsデータツリーの外側に含めます。
Salesforce一括操作の出力データツリー - バルクジョブ全体の集計結果
Last updated: