データ書き込み(UPDATE)処理

オペレーション名

データ書き込み(UPDATE)

機能概要

updateサービスを用いてデータを更新します。
データ更新時のキー項目に、SalesforceのID以外を指定することができます。
また、更新対象データが存在しない場合、追加処理を自動的に行うことも可能です。

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

データモデル

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

プロパティ

基本設定

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

必須設定

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

オプション設定

項目名 必須/省略可 変数の使用 説明 補足
カラム名タイプ 必須 使用不可 マッピングでスキーマを表示する際のカラム名の表示タイプを選択します。
  • [ラベル]:
    Salesforceで定義されたラベル名(項目名)で表示します。
  • [API]:(デフォルト)
    Salesforceで定義されたAPI参照名で表示します。
 
クエリーバッチサイズ 必須 使用可 Salesforceに対してデータ書き込み処理を行う際のバッチサイズを入力します。
  • デフォルト値は「200」です。
  • 「1」以上「200」以下の値が指定できます。範囲以外の値が指定された場合、例外をスローします。
  • 使用環境によりますが、一般的にバッチサイズを大きくすることにより、データの書き込み効率は向上します。
  • Salesforceアダプタの仕様として、10,000件のデータを書き込むケースで、バッチサイズを200と設定した場合、書き込み処理を50回に分けて実行します。
更新結果取得有無 必須 使用不可 Salesforceに対してデータ書き込み処理を行った結果を取得するかどうかを指定します。
  • [取得する]:
    データ書き込み処理を行った結果を取得します。
  • [取得しない]:(デフォルト)
    データ書き込み処理を行った結果を取得しません。
  • [取得する]を選択した場合、スキーマ定義に指定した項目+結果情報の項目をテーブルモデル型のデータとして後続に受け渡す事ができます。
    使用例については、「結果取得使用例」を参照してください。
  • データ型の不一致や、処理対象データが存在しないなどの不整合なデータ存在した場合、および[書き込み方法]にて「更新と追加」を選択した場合、入力データ順と結果データ順は必ずしも一致しません。ただし、出力スキーマの[更新結果_行番号]を順序条件とすることで、後続のMapperで入力データ順にソートすることが可能です。
  • 出力スキーマの[更新結果_エラーステータスコード]には、SalesforceのAPIが返すStatusCodeが設定されますが、以下の場合はSalesforceアダプタがコードを設定します。
    • 「SALESFORCE_ADAPTER_ILLEGAL_DATA_TYPE」
      定義された項目の属性と入力データ型が一致しない場合に設定されます。例えば、「double」と定義された項目に対し数値以外の文字列が入力された場合などです。
    • 「SALESFORCE_ADAPTER_DATA_NOT_FOUND」
      [スキーマ定義][キー]がID以外(ID+他の項目を含む)且つ、[書き込み方法]にて「更新」を選択した場合において、Salesforceへ検索を行ったが対象データが存在しなかった場合に設定されます。
プロパティアクション
項目名 説明 補足
テーブル情報の表示 [接続先]で選択されているSalesforceのテーブル構造を確認できます。
テーブル構造の参照方法については、「テーブル情報の表示」を参照してください。
 

データ処理方式

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

コメント

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

スキーマ

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

入力スキーマ

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

出力スキーマ

[スキーマ定義]で選択したスキーマと更新結果情報が出力スキーマとなります。
以下、ラベル/API名という形式で表記します。
<?xml version="1.0" encoding="UTF-8" ?>
<table>
   <row>
     :  ←[スキーマ定義]で選択したスキーマとなります。
     <column>更新結果_ID/update_result_id</column>
     <column>更新結果_成功フラグ/update_result_is_success</column>
     <column>更新結果_新規作成フラグ/update_result_is_created</column>
     <column>更新結果_エラーステータスコード/update_result_error_status_code</column>
     <column>更新結果_エラーメッセージ/update_result_error_message</column>
     <column>更新結果_行番号/update_result_row_number</column>
   </row>
   <row>
     :
   </row>
</table>
		

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

コンポーネント変数名 説明
insert_count Salesforceに対して追加処理に成功したデータの件数を返します。
update_count Salesforceに対して更新処理に成功したデータの件数を返します。
error_count Salesforceに対して追加、または更新処理に失敗したデータの件数を返します。
not_exist_count 下記条件すべてに該当する場合、Salesforceに更新対象のデータが存在しなかったデータの件数を返します。
(該当しなかった場合、Nullを返します。)
  • [書き込み方法]にて[更新]を選択
  • [更新結果取得有無]にて[取得する]を選択
  • [スキーマ定義][キー]がID以外(ID+他の項目を含む)
operation_api_exception_code APIエラーが発生したときに、ExceptionCodeを返します。
APIエラー以外のエラーが発生した場合にはnullを返します。
バージョンにより、内容が変わる可能性があります。
operation_error_message エラーが発生したときのエラーメッセージを返します。
バージョンにより、内容が変わる可能性があります。
operation_error_trace エラーが発生したときのトレース情報を返します。
バージョンにより、内容が変わる可能性があります。

トランザクション

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

更新時のキー指定

データ書き込み(UPDATE)処理では、キーとなる項目を指定して、入力データのうち、キーの値と一致する行が既にSalesforceに存在した場合は、
その行を更新し、なければ追加するという処理を行うことができます。また、更新時のキーとなる項目は、SalesforceのID以外を複数指定することが可能です。



SalesforceのIdをキーとしてupdateを行なう場合、キー項目の入力値にnullを設定すると更新エラーとなるため、結果的には対象レコードがスキップされた状態となります。
SalesforceのId以外の項目をキーとしてupdateを行なう場合、キー項目の入力値にnullを設定すると対象レコードの判定が不可となるため、UPDATEは行なわれません。
ただし、書き込み方法にて「更新と追加」を選択している場合、対象レコードが無いとみなされるため、追加として新規レコードが登録されます。

結果取得使用例

[更新結果取得有無][取得する]を選択した場合、入力データに対する更新結果を、テーブルモデル型のデータとして後続に受け渡すことが可能です。

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

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

スキーマの作成

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

テーブル情報の表示

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

注意事項