Salesforce - レコードをバッチでアップサートするアクション(batch)
このアクションはSalesforceレコードをバッチでアップサートします。 各バッチでは、200件ずつ10バッチに分割して最大2,000件のレコードをアップサートできます。 一致するレコードが見つかった場合、それらは更新されます。 一致するレコードが見つからない場合、それらは作成されます。
レコードをバッチでアップサートするアクション
入力
| 入力項目 | 説明 |
|---|---|
| オブジェクト | アップサートする標準またはカスタムオブジェクトタイプを選択します。 |
| バッチサイズ | 各バッチで処理するレコード数を入力します。 最小値は1、最大値とデフォルトは200です。 |
| 主キー | 主キーとして使用する外部IDを選択します。 指定された主キーに複数のレコードが一致した場合、アクションはエラーをスローします。 詳細については、主キーセクションを参照してください。 |
| リレーション項目 | 任意です。 CSVデータ列をSalesforceオブジェクト項目にマッピングする方法を選択します。 ポリモーフィック列にはリレーション項目が必要です。 この入力の詳細についてはリレーション項目セクションを、ポリモーフィック項目の詳細についてはSalesforce APIドキュメントを参照してください。 |
| 詳細設定 | 操作が失敗した場合にレコードをロールバックするかどうかを選択します。 詳細については、詳細設定セクションを参照してください。 |
| 代理ユーザーのメールアドレス | 任意です。 代理実行するSalesforceユーザーのメールアドレスを入力します。 このフィールドを有効にするには、Workato Customer Success Managerにお問い合わせください。 このフィールドはJWTコネクションのみをサポートします。 |
選択したオブジェクトに基づいて、追加フィールドが動的に読み込まれます。 これらのフィールドを使用してソースリストを入力し、新しいレコードを設定します。
Box、Amazon S3、オンブレミスファイルを含むファイルストレージアプリの新しいCSVファイルなど、さまざまな場所からソースリストを取得できます。 リスト入力の詳細については、リスト管理ドキュメントを参照してください。
主キー
このアクションでは、各Salesforceレコードを一意に識別するために、External IDフィールドを主キーとして指定する必要があります。
External IDフィールドは、External ID属性を持つカスタムフィールドです。 Salesforce外部のシステムから取得した一意のレコード識別子が含まれています。 外部IDフィールドは、カスタムのテキスト、数値、またはメールフィールドである必要があります。
指定したExternal ID値がSalesforceレコードにすでに存在する場合、Workatoはそのレコードを更新します。 一致するExternal IDがSalesforceに存在しない場合、Workatoは新しいレコードを作成します。 指定されたExternal IDに複数の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一括アップサートアクション - 項目マッピングセクション
詳細設定
高度な設定
高度な設定では、レコードが失敗したときにバッチ操作をロールバックするかどうかを設定します。
Workatoは、レコードをそれぞれ最大200件のバッチで処理します。 バッチ内の1件のレコードが失敗すると、バッチ全体がロールバックされますが、他のバッチには影響しません。
たとえば、1,000件のレコードを処理する場合、それぞれ200件の5つのバッチに分割されます。 最初のバッチ内のいずれかのレコードが失敗すると、200件の最初のバッチ全体がロールバックされます。 残りの4つのバッチは通常どおり続行されます。
デフォルトかつ推奨される設定はNoです。 これにより、成功したレコードは処理済みの状態のままになります。 後続のレシピステップで追加のロジックを使用して、失敗したレコードを処理できます。
出力
このアクションは2つのオブジェクトを出力します。
- 成功レコードには、Salesforceで正常にアップサートされたレコードに関する情報が含まれます。
- 失敗レコードには、問題が発生し、Salesforceでアップサートされなかったレコードに関する情報が含まれます。
成功レコード
| 出力フィールド | 説明 |
|---|---|
| Salesforce ID | アップサートされたレコードの内部Salesforce IDです。 |
| 成功 | Salesforceでレコードが正常にアップサートされたかどうかを示します。 |
| リストサイズ | 正常にアップサートされたレコードの数。 |
| リストインデックス | バッチ内で正常に処理された各レコードの位置。 |
選択したオブジェクトタイプに基づいて、追加の出力が動的に読み込まれます。
失敗レコード
| 出力フィールド | 説明 |
|---|---|
| 成功 | Salesforceでレコードが正常にアップサートされたかどうかを示します。 |
| エラー | Status code、Error message、Fieldsを含む配列です。 ここにある情報を使用して、レコードが失敗した理由を特定します。 |
| リストサイズ | 失敗し、アップサートされなかったレコードの数。 |
| リストインデックス | バッチ内の各失敗レコードの位置。 |
選択したオブジェクトタイプに基づいて、追加の出力が動的に読み込まれます。
Last updated: