Bulkデータ書き込み(INSERT)処理

オペレーション名

Bulkデータ書き込み(INSERT)

機能概要

入力データを元に、Bulk APIを使用したINSERT処理を行います。
ジョブ作成、バッチ作成、バッチ結果の取得、ジョブのクローズまで一括で行います。
実行される処理の詳細については、「プロセスフロー」を参照してください。

本オペレーションが使用するSalesforceのAPI仕様については、以下のドキュメント(英語)を参照してください。
Standalone版では使用できません。

データモデル

本コンポーネントのデータモデルはテーブルモデル型です。
入出力のスキーマについては「スキーマ」を参照してください。

プロパティ

基本設定

項目名 必須/省略可 変数の使用 説明 補足
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 必須 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。  

必須設定

項目名 必須/省略可 変数の使用 説明 補足
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」プロパティにて、グローバルリソースの設定を編集することができます。
 
テーブル名 必須 使用不可 Salesforceのテーブル名を選択します。  
スキーマ定義 必須
-
バッチに登録するCSVデータのヘッダ行とする項目を設定します。
  • Salesforceに対して書き込みが必要な項目に限定(不要な項目をスキーマ定義から除く)することにより、処理効率が向上します。
  • APIの仕様として、データ型が「base64」と定義された項目を扱う事はできません。このような項目が選択されている場合、例外をスローします。
スキーマ定義/ラベル 必須 使用不可 [テーブル名]で指定したテーブルの列のラベル名を表示します。  
スキーマ定義/API 必須 使用不可 [テーブル名]で指定したテーブルの列のAPI名を表示します。  
スキーマ定義/型 必須 使用不可 [テーブル名]で指定したテーブルの列のデータ型を表示します。  
リレーションシップ項目定義 省略可
-
スキーマ定義にリレーション項目が存在する場合、外部キーによる更新を行うための項目を設定します。
  • リレーション先オブジェクトの外部キー項目を選択することにより、リレーション関係を持たせたデータの受け渡しが可能となります。
    詳細については、「リレーションシップ項目定義」を参照してください。
リレーションシップ項目定義/元項目API名 必須 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のAPI名を表示します。  
リレーションシップ項目定義/リレーションシップ名 必須 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーションシップ名を表示します。  
リレーションシップ項目定義/オブジェクトAPI名 必須 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーション先のオブジェクトのAPI名を表示します。  
リレーションシップ項目定義/リレーション用カラムAPI名 省略可 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーション先オブジェクトの外部キー項目を選択します。
  • 省略した場合、リレーション先オブジェクトの該当レコードのIDを受け渡す仕様となります。
プロパティアクション
項目名 説明 補足
スキーマの作成 バッチに登録するCSVデータのヘッダ行の追加・削除を行うことができます。
設定方法については、「スキーマの作成」を参照してください。
 

Bulkオペレーション設定

項目名 必須/省略可 変数の使用 説明 補足
Null/空文字を"#N/A"へ置き換える 必須 使用不可 入力データがnullまたは空文字であった場合、文字列「#N/A」に置き換えるかどうかを選択します。
  • [チェックあり]:(デフォルト)
    置き換えを行います。
  • [チェックなし]:
    置き換えを行いません。
  • APIの仕様として、nullで更新する場合は文字列「#N/A」を指定する必要があります。
バッチサイズ 必須 使用可 1つのバッチに登録するレコード件数の上限を入力します。
  • デフォルト値は「2000」です。
  • 「1」以上「10000」以下の値が指定できます。範囲以外の値が指定された場合、例外をスローします。
  • 本アダプタの仕様として、100,000件のデータを書き込むケースで、バッチサイズを2,000と設定した場合、50のバッチを作成します。
    ただし、1つのバッチがAPIの制限値である10MBを超えてしまう場合は、指定したバッチサイズ以下でバッチを作成します。
同時実行モード 必須 使用不可 ジョブの同時実行モードを選択します。
  • [並列]:(デフォルト)
    並列モードでジョブを作成します。
  • [順次]:
    順次モードでジョブを作成します。
 
実行後ジョブ状況 必須 使用不可 作成したジョブを、実行後にクローズするかどうかを選択します。
  • [クローズする]:(デフォルト)
    実行後にジョブをクローズします。
  • [クローズしない]:
    実行後にジョブをクローズしません。状況はオープンのままとなります。
 
処理完了を待ちバッチ結果を取得する 必須 使用不可 作成したバッチが完了するまで状況を監視し、バッチ結果を取得するかどうかを選択します。
  • [チェックあり]:(デフォルト)
    バッチ結果を取得します。取得したバッチ結果は出力スキーマから後続に渡すことができます。
  • [チェックなし]:
    バッチ結果を取得しません。
  • チェックありとした場合、スキーマ定義に指定した項目+結果情報の項目をテーブルモデル型のデータとして後続に受け渡す事ができます。
  • 使用例については「結果取得使用例」を参照してください。
バッチ状況監視間隔(秒) 省略可 使用可 バッチ情報を取得し処理が完了しているか判断する間隔を、秒で入力します。
  • [処理完了を待ちバッチ結果を取得する]にチェックを入れた場合のみ有効になります。
  • 10以上600以下が指定可能です。範囲以外の値が指定された場合、例外をスローします。

オプション設定

項目名 必須/省略可 変数の使用 説明 補足
カラム名タイプ 必須 使用不可 マッピングでスキーマを表示する際のカラム名の表示タイプを選択します。
  • [ラベル]:
    Salesforceで定義されたラベル名(項目名)で表示します。
  • [API]:(デフォルト)
    Salesforceで定義されたAPI参照名で表示します。
 
プロパティアクション
項目名 説明 補足
テーブル情報の表示 [接続先]で選択されているSalesforceのテーブル構造を確認できます。
テーブル構造の参照方法については、「テーブル情報の表示」を参照してください。
 

データ処理方式

項目名 必須/省略可 変数の使用 説明 補足
データ処理方式 必須 使用不可 データ処理方式を選択します。
  • [スクリプトの設定を使用する]:(デフォルト)
    スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
  • [大容量データ処理を行わない]:
    大容量データ処理を行いません。
  • [大容量データ処理を行う]:
    大容量データ処理を行います。
 

コメント

項目名 必須/省略可 変数の使用 説明 補足
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

スキーマは入出力ともにテーブルモデル型のスキーマです。テーブルモデル型のスキーマについては「こちら」を参照してください。

入力スキーマ

[スキーマ定義]で選択したスキーマが入力スキーマとなります。

出力スキーマ

[スキーマ定義]で選択したスキーマとバッチ結果情報が出力スキーマとなります。
以下、ラベル/API名という形式で表記します。
<?xml version="1.0" encoding="UTF-8" ?>
<table>
  <row>
    :  ←[スキーマ定義]で選択したスキーマとなります。
    <column>結果情報_入力行番号/RESULT_inputRowNumber</column>
    <column>結果情報_バッチ_ID/RESULT_BATCH_id</column>
    <column>結果情報_バッチ_状況/RESULT_BATCH_state</column>
    <column>結果情報_バッチ_状態メッセージ/RESULT_BATCH_stateMessage</column>
    <column>結果情報_レコード_ID/RESULT_ROW_id</column>
    <column>結果情報_レコード_成功フラグ/RESULT_ROW_success</column>
    <column>結果情報_レコード_作成フラグ/RESULT_ROW_created</column>
    <column>結果情報_レコード_エラーメッセージ/RESULT_ROW_error</column>
  </row>
  <row>
    :
  </row>
</table>
		

大容量データ処理

大容量データ処理に対応しています。

トランザクション

トランザクションはサポートしていません。

使用できるコンポーネント変数

コンポーネント変数名 説明
job_id 作成したジョブのIDを返します。エラーが発生した場合にはnullが返ります。
read_count 他のオペレーションから受け渡された入力データの件数を返します。エラーが発生した場合にはnullが返ります。
created_batch_count 作成したバッチの件数を返します。エラーが発生した場合にはnullが返ります。
get_result_success_count [処理完了を待ちバッチ結果を取得する]にチェックを入れた場合のみ、処理に成功したレコード件数を返します。エラーが発生した場合にはnullが返ります。
get_result_error_count [処理完了を待ちバッチ結果を取得する]にチェックを入れた場合のみ、処理に失敗したレコード件数を返します。エラーが発生した場合にはnullが返ります。
operation_api_exception_code APIエラーが発生したときに、ExceptionCodeを返します。
APIエラー以外のエラーが発生した場合にはnullを返します。
バージョンにより、内容が変わる可能性があります。
operation_error_message エラーが発生したときのエラーメッセージを返します。
バージョンにより、内容が変わる可能性があります。
operation_error_trace エラーが発生したときのトレース情報を返します。
バージョンにより、内容が変わる可能性があります。

プロセスフロー

データ書き込みを行うために必要となるジョブやバッチの作成および管理を行います。
ジョブ作成、バッチ作成は、入力データが0件でない場合に必ず行われます。
ジョブ/バッチ情報取得、バッチ結果取得、ジョブ更新(クローズ)は、プロパティの設定値によって実行有無を選択することができます。

結果取得使用例

[処理完了を待ちバッチ結果を取得する]にチェックを入れた場合、入力データに対するバッチ結果をテーブルモデル型のデータとして後続に受け渡すことが可能です。

リレーションシップ項目定義

参照項目(reference項目)の更新処理では、通常、参照先オブジェクトのIDをMapperにて受け渡して更新しますが、当設定を行うことにより、参照先オブジェクトの外部キー項目の値をMapperにて受け渡すことで、外部キーに対応するレコードのIDを自動で取得し更新することが可能となります。

スキーマの作成

バッチに登録するCSVデータのヘッダ行とする項目をスキーマの作成で指定することができます。
処理に必要な項目のみを指定することにより、Salesforceに対する通信データ量を削減することができ、一般的に処理効率が向上します。
Salesforceへ書き込み(追加・更新)を行なう場合、「追加不可」または「更新不可」の項目は未選択にする必要があります。

テーブル情報の表示

Salesforceのテーブルに対する操作可能な処理、およびテーブルのフィールド属性を確認することができます。
また、フィールド情報については、印刷することも可能です。

注意事項