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

オペレーション名

Bulkデータ書き込み(DELETE)

機能概要

入力データを元に、Bulk APIを使用したDELETE処理を行います。
ジョブ作成、バッチ作成、バッチ結果の取得、ジョブのクローズまで一括で行います。
DELETE処理では、データ削除時のキー項目にSalesforceのIDを指定します。

実行される処理の詳細については、「プロセスフロー」を参照してください。API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合は、プロセスフローが異なりますのでご注意ください。

本オペレーションが使用するAPI仕様については、グローバルリソースで選択したバージョンのAPIドキュメントを以下のリンク先ページより参照してください。

データモデル

本コンポーネントのデータモデルはテーブルモデル型です。

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 必須 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については、「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
テーブル名 必須 使用不可 Salesforceのテーブル名を選択します。  
スキーマ定義 必須 - データ書き込みを行うCSVデータのヘッダ行とする項目として「ID」が選択されています。編集を行うことはできません。  
スキーマ定義/ラベル 必須 使用不可 入力スキーマ項目のラベル名を表示します。  
スキーマ定義/API 必須 使用不可 入力スキーマ項目のAPI名を表示します。  
スキーマ定義/型 必須 使用不可 入力スキーマ項目のデータ型を表示します。  
Bulkオペレーション設定
項目名 必須/省略可 変数の使用 説明 備考
物理削除(HardDelete) 必須 使用不可 物理削除(HardDelete)を行うかどうかを選択します。
  • [チェックあり]:
    オペレーション種類をHardDeleteとして実行します。
  • [チェックなし]:(デフォルト)
    オペレーション種類をDeleteとして実行します。
  • API 23.0以降で指定可能です。
  • チェックありとした場合、削除されたレコードはごみ箱に保存されません。代わりに、即座に削除の対象となります。
    この操作の権限である「Bulk API の物理削除」は、デフォルトでは無効になっており、システム管理者によって有効にする必要があります。
    物理削除を行うには、Salesforce ユーザライセンスが必要です。
バッチサイズ 必須 使用可 1つのバッチに登録するレコード件数の上限を入力します。
  • デフォルト値は「2000」です。
  • 「1」以上「10000」以下の値が指定できます。範囲以外の値が指定された場合、エラーが発生します。
  • 本アダプタの仕様として、100,000件のデータを書き込むケースで、バッチサイズを2,000と設定した場合、50のバッチを作成します。
    ただし、1つのバッチがAPIの制限値である10MBを超えてしまう場合は、指定したバッチサイズ以下でバッチを作成します。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、表示されません。
    APIの仕様により、バッチの管理はSalesforceで自動的に行われるため指定できません。
同時実行モード 必須 使用不可 ジョブの同時実行モードを選択します。
  • [並列]:(デフォルト)
    並列モードでジョブを作成します。
  • [順次]:
    順次モードでジョブを作成します。
  • 並列処理を行うと、データベースの競合が生じる可能性があります。競合が激しいと、読み込みが失敗することがあります。
    順次モードを使用すれば、バッチは1つずつ確実に処理されます。ただし、このオプションを使用すると、読み込みの処理時間が大幅に増える場合があります。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、表示されません。
    APIの仕様により、並列モードで実行されます。
実行後ジョブ状況 必須 使用不可 作成したジョブを、実行後にクローズするかどうかを選択します。
  • [クローズする]:(デフォルト)
    実行後にジョブをクローズします。
  • [クローズしない]:
    実行後にジョブをクローズしません。状況はオープンのままとなります。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、表示されません。
    APIの仕様により、ジョブはクローズされます。
処理完了を待ちバッチ結果を取得する 必須 使用不可 作成した処理が完了するまで状況を監視し、結果を取得するかどうかを選択します。
  • [チェックあり]:(デフォルト)
    処理結果を取得します。取得した結果は出力スキーマから後続に渡すことができます。
  • [チェックなし]:
    処理結果を取得しません。
  • チェックありとした場合、スキーマ定義に指定した項目および結果情報の項目をテーブルモデル型のデータとして後続に受け渡すことができます。
  • 取得する情報については、「スキーマ」を参照してください。
  • 使用例については、「結果取得使用例」を参照してください。
  • 選択しているグローバルリソースの内容により項目名が異なります。
    • API 43.0以前
    • [処理完了を待ちバッチ結果を取得する]と表示されます。
    • API 50.0以降かつ、[API種別][Bulk API]
    • [処理完了を待ちバッチ結果を取得する]と表示されます。
    • API 50.0以降かつ、[API種別][Bulk API 2.0]
    • [処理完了を待ち結果を取得する]と表示されます。
処理完了を待ち結果を取得する
監視開始までの待機時間(秒) 省略可 使用可 処理状況の監視を開始するまでの待機時間を、秒で入力します。
  • デフォルト値は「3」です。
  • [処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れた場合のみ有効になります。
  • 3以上10800以下が指定可能です。範囲以外の値が指定された場合、エラーが発生します。
バッチ状況監視間隔(秒) 省略可 使用可 処理が完了しているか確認する間隔を、秒で入力します。
  • デフォルト値は「10」です。
  • [処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れた場合のみ有効になります。
  • 10以上600以下が指定可能です。範囲以外の値が指定された場合、エラーが発生します。
  • 選択しているグローバルリソースの内容により項目名が異なります。
    • API 43.0以前
    • [バッチ状況監視間隔(秒)]と表示されます。
    • API 50.0以降かつ、[API種別][Bulk API]
    • [バッチ状況監視間隔(秒)]と表示されます。
    • API 50.0以降かつ、[API種別][Bulk API 2.0]
    • [処理状況監視間隔(秒)]と表示されます。
処理状況監視間隔(秒)
エラー結果のレコードのみ出力する 省略可 使用不可 取得した処理結果からエラーレコード(未処理レコードを含む)のみ出力します。
  • [チェックあり]:
    エラーレコードのみ出力します。
  • [チェックなし]:(デフォルト)
    すべてのレコードを出力します。
  • API 43.0以降のグローバルリソースを選択しているかつ、[処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れた場合のみ有効になります。
  • API 40.0以前の場合は無効となり、取得した処理結果からすべてのレコードを出力します。
オプション設定
項目名 必須/省略可 変数の使用 説明 備考
カラム名タイプ 必須 使用不可 マッピングでスキーマを表示する際のカラム名の表示タイプを選択します。
  • [ラベル]:
    Salesforceで定義されたラベル名(項目名)で表示します。
  • [API]:(デフォルト)
    Salesforceで定義されたAPI参照名で表示します。
 
プロパティアクション
項目名 説明 備考
テーブル情報の表示 操作を行っているオブジェクトのテーブル構造を確認できます。
テーブル構造の参照方法については、「テーブル情報の表示」を参照してください。
  • 他のオブジェクトのテーブル構造を確認したい場合、[全テーブル情報の読み込み]をクリックしてください。
全テーブル情報の読み込み 取得可能なすべてのテーブル構造を取得します。
実行後に、[テーブル情報の表示]から取得した内容を確認することができます。
 
データ処理方式
項目名 必須/省略可 変数の使用 説明 備考
データ処理方式 必須 使用不可 データ処理方式を選択します。
  • [スクリプトの設定を使用する]:(デフォルト)
    スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
  • [大容量データ処理を行わない]:
    大容量データ処理を行いません。
  • [大容量データ処理を行う]:
    大容量データ処理を行います。
 
コメント
項目名 必須/省略可 変数の使用 説明 備考
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

(以下、「ラベル/API」という形式で表記)

<?xml version="1.0" encoding="UTF-8" ?>
<table>
  <row>
    <column>ID/id</column>
  </row>
  <row>
    :
  </row>
</table>
要素名 列名 説明 備考
row
-
入力データ件数分繰り返します。  
column ID/id SalesforceのIDを渡します。  

出力スキーマ

入力スキーマのカラムに、処理結果の情報が付与されます。

(以下、「ラベル/API」という形式で表記)

<?xml version="1.0" encoding="UTF-8" ?>
<table>
  <row>
    <column>ID/Id</column>
    <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>
要素名 列名(ラベル/API) 説明 備考
row
-
入力スキーマに渡されたデータ件数分繰り返します。
  • [処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れない場合、0件となります。
column ID/id 入力スキーマに渡されたIDを出力します。  
結果情報_入力行番号/RESULT_inputRowNumber 入力スキーマに渡されたデータ内のノードの位置に基づいて番号を出力します。  
結果情報_バッチ_ID/RESULT_BATCH_id レコードが処理されたバッチのIDを出力します。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、nullとなります。
結果情報_バッチ_状況/RESULT_BATCH_state レコードが処理されたバッチの状況を出力します。
  • [Completed]:処理は完了しています。
  • [Failed]:処理に失敗しました。[結果情報_バッチ_状態メッセージ/RESULT_BATCH_stateMessage]を確認してください。
  • [Completed]の場合においても、レコード単位に結果は異なります。
    結果情報_レコードの内容を確認してください。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、nullとなります。
結果情報_バッチ_状態メッセージ/RESULT_BATCH_stateMessage レコードが処理されたバッチの状態メッセージを出力します。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、nullとなります。
結果情報_レコード_ID/RESULT_ROW_id レコードのIDを出力します。  
結果情報_レコード_成功フラグ/RESULT_ROW_success レコードの成功フラグを出力します。
  • [true]:処理に成功しました。
  • [false]:処理に失敗しました。[結果情報_レコード_エラーメッセージ/RESULT_ROW_error]を確認してください。
  • [結果情報_バッチ_状況/RESULT_BATCH_state][Completed]でない場合、[false]となります。
    API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、エラーレコード(未処理レコードを含む)は、[false]となります。
結果情報_レコード_作成フラグ/RESULT_ROW_created レコードの新規作成フラグを出力します。
  • [true]:レコードが新規作成されました。
  • [false]:レコードの新規作成は行われませんでした。
 
結果情報_レコード_エラーメッセージ/RESULT_ROW_error レコードのエラーメッセージを出力します。
  • 処理結果が取得できない場合、処理の状態メッセージを出力します。

Mapperでのスキーマ読み込み

スキーマは自動で読み込まれます。
詳細については、「スキーマ編集」を参照してください。

大容量データ処理

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

トランザクション

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

PSPでの使用について

PSPでは使用できません。

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

コンポーネント変数名 説明 備考
job_id 作成したジョブのIDが格納されます。
  • デフォルト値はnullです。
  • 入力データの件数または、容量に応じて繰り返しジョブを作成すると、複数のジョブのIDがカンマ区切りで格納されます。
read_count 入力データの件数が格納されます。
  • デフォルト値はnullです。
created_batch_count 作成したバッチの件数が格納されます。
  • デフォルト値はnullです。
  • API 50.0以降かつ、[API種別][Bulk API 2.0]のグローバルリソースを選択している場合、値が格納されません。
get_result_success_count 処理に成功したデータの件数が格納されます。
  • デフォルト値はnullです。
  • [処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れない場合、値が格納されません。
get_result_error_count 処理に失敗したデータの件数が格納されます。
  • デフォルト値はnullです。
  • [処理完了を待ちバッチ結果を取得する]または[処理完了を待ち結果を取得する]にチェックを入れない場合、値が格納されません。
server_url ログイン後のエンドポイントURLが格納されます。
  • デフォルト値はnullです。
session_id セッションIDが格納されます。
  • デフォルト値はnullです。
message_category エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。
  • デフォルト値はnullです。
message_code エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。
  • デフォルト値はnullです。
message_level エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。
  • デフォルト値はnullです。
operation_api_exception_code APIエラー発生時、発生したエラーのExceptionCodeが格納されます。
  • デフォルト値はnullです。
  • APIエラー以外のエラー発生時は、値が格納されません。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
operation_error_message エラー発生時、発生したエラーのメッセージが格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
operation_error_trace エラー発生時、発生したエラーのトレース情報が格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。

プロセスフロー

選択しているグローバルリソースの内容によって、実行するフローが異なります。
  • API 43.0以前、またはAPI 50.0以降かつ[API種別][Bulk API]
  • データ書き込みを行うために必要となるジョブやバッチの作成および管理を行います。
    ジョブ作成、バッチ作成は、入力データが0件でない場合に必ず行われます。
    ジョブ/バッチ情報取得、バッチ結果取得、ジョブ更新(クローズ)は、プロパティの設定値によって実行有無を選択することができます。



    画像内の番号 名称 説明 備考
    (1) 必須処理 プロパティの設定値に関わらず、必須で実行される処理です。
    • 入力データが0件の場合のみ、処理が行われません。
    (2) ジョブ/バッチ情報取得、バッチ結果取得の実行有無を選択 [Bulkオペレーション設定]タブの[処理完了を待ちバッチ結果を取得する]の値によって、実行有無を選択することができます。
    • [処理完了を待ちバッチ結果を取得する]にチェックを入れた場合、処理が行われます。
    (3) ジョブ更新(クローズ)の実行有無を選択 [Bulkオペレーション設定]タブの[実行後ジョブ状況]の値によって、実行有無を選択することができます。
    • [実行後ジョブ状況]に「クローズする」を選択した場合、処理が行われます。
    (4) バッチ作成の繰り返し 入力データの件数または、容量に応じて繰り返しバッチ作成を行います。  
    (5) ジョブ/バッチ情報取得の繰り返し 処理が完了するまで[Bulkオペレーション設定]タブの[バッチ状況監視間隔(秒)]の値の間隔で繰り返しジョブ/バッチ情報取得を行います。  
    (6) バッチ結果取得の繰り返し (4)で作成されたバッチ件数分繰り返しバッチ結果取得を行います。  

  • API 50.0以降かつ、[API種別][Bulk API 2.0]
  • データ書き込みを行うために必要となるジョブの作成および管理を行います。
    ジョブ作成は、入力データが0件でない場合に必ず行われます。
    ジョブ更新(クローズ)はプロパティの設定値に関わらず必ず行われます。
    ジョブ情報取得、処理結果取得は、プロパティの設定値によって実行有無を選択することができます。
    バッチに関する管理については、APIの仕様によりSalesforceで自動的に行われるため、本オペレーション内では行いません。



    画像内の番号 名称 説明 備考
    (1) 必須処理 プロパティの設定値に関わらず、必須で実行される処理です。
    • 入力データが0件の場合のみ、処理が行われません。
    (2) ジョブ情報取得、処理結果取得の実行有無を選択 [Bulkオペレーション設定]タブの[処理完了を待ち結果を取得する]の値によって、実行有無を選択することができます。
    • [処理完了を待ち結果を取得する]にチェックを入れた場合、処理が行われます。
    (3) ジョブ作成、データアップロード、およびジョブ更新(クローズ)の繰り返し 入力データの件数または、容量に応じて繰り返し行います。  
    (4) ジョブ情報取得の繰り返し 処理が完了するまで[Bulkオペレーション設定]タブの[処理状況監視間隔(秒)]の値の間隔で繰り返しジョブ情報取得を行います。  
    (5) 処理結果取得の繰り返し (3)で作成されたジョブ件数分繰り返し処理結果取得を行います。  

    結果取得使用例

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

    テーブル情報の表示

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



    画像内の番号 名称 説明 備考
    (1) テーブル名 テーブル構造の表示を行うテーブルを選択します。  
    (2) テーブル情報 選択したテーブルに対する、操作可能なオペレーションを表示します。  
    (3) 桁数 項目の桁数を表示します。  
    (4) 外部ID 対象項目が外部IDとして設定されているか否かを表します。  
    (5) 追加可能 データ追加時に値を設定することが可能か否かを表します。  
    (6) 更新可能 データ更新時に値を設定することが可能か否かを表します。  
    (7) Null許可 データ追加、更新時にNullが許容されるか否かを表します。  
    (8) 初期値有無 データ追加時にSalesforceが初期値を自動設定するか否かを表します。  
    (9) 参照先 参照関係または主従関係の項目の場合、参照先のオブジェクト名を表示します。  

    仕様制限

    主な例外

    例外名 原因 対策
    ResourceNotFoundException
    リソース定義が見つかりませんでした。名前:[]
    [接続先]が指定されていません。 [接続先]を指定してください。
    ResourceNotFoundException
    リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
    [接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
    java.net.UnknownHostException グローバルリソースで指定したPROXYサーバが見つからない例外です。 PROXYサーバの状態を確認して下さい。または、[接続先]で指定したグローバルリソースの[Proxyホスト]を確認してください。
    java.net.SocketTimeoutException
    connect timed out
    Salesforceに接続中にタイムアウトが発生しました。 ネットワークの状態、Salesforceのサーバの状態を確認してください。または、[接続先]で指定したグローバルリソースの[Connectionタイムアウト(秒)]を確認してください。
    java.net.SocketTimeoutException
    Read timed out
    Salesforceに接続後、サーバからの応答までにタイムアウトが発生しました。 ネットワークの状態、Salesforceのサーバの状態を確認してください。または、[接続先]で指定したグローバルリソースの[タイムアウト(秒)]を確認してください。
    jp.co.headsol.salesforce.adapter.exception.SalesforceAdapterIllegalArgumentException Salesforce Bulkアダプタのプロパティの設定値が不正です。 エラーメッセージを確認し、設定内容をご確認ください。
    com.sforce.soap.partner.fault.LoginFault Salesforceへのログインに失敗しました。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。
    com.sforce.async.AsyncApiException Salesforce Bulkアダプタにて実行したジョブまたはバッチにてエラーが発生しました。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。
    jp.co.terrasky.salesforce.bulk.api.rest.exception.RestApiException Salesforce Bulkアダプタにて実行した処理にてエラーが発生しました。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。

    注意事項