マルチデータファイル生成処理

オペレーション名

マルチデータファイル生成

機能概要

複数のオブジェクトのレコードを、1回の更新系APIコールでまとめて処理するためのデータをローカルファイルに出力します。
ファイルには異なるオブジェクトのデータを追加で出力することができます。
出力されたファイルの内容は、[マルチデータ書き込み]処理を実行することによって、実際にSalesforceへの更新が行われます。

データモデル

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

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 必須 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については、「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
  • API 23.0以降のグローバルリソースが選択可能です。
出力ファイル 必須 使用可 CSV形式のファイルパスを入力します。
[参照]ボタンを押下するとファイルチューザが起動し、ファイルの選択ができます。
テーブル名 必須 使用不可 Salesforceのテーブル名を選択します。  
スキーマ定義 必須 - Salesforceに対して書き込みを行う項目を設定します。
  • Salesforceに対して書き込みが必要な項目に限定(不要な項目をスキーマ定義から除く)することにより、処理効率が向上します。
スキーマ定義/ラベル 必須 使用不可 [テーブル名]で指定したテーブルの列のラベル名を表示します。  
スキーマ定義/API 必須 使用不可 [テーブル名]で指定したテーブルの列のAPI名を表示します。  
スキーマ定義/型 必須 使用不可 [テーブル名]で指定したテーブルの列のデータ型を表示します。  
リレーションシップ項目定義 省略可 - スキーマ定義にリレーション項目が存在する場合、外部キーによる更新を行うための項目を設定します。
リレーション先オブジェクトの外部キー項目を選択することにより、リレーション関係を持たせたデータの受け渡しが可能となります。
リレーションシップ項目定義/元項目API名 必須 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のAPI名を表示します。  
リレーションシップ項目定義/リレーションシップ名 必須 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーションシップ名を表示します。  
リレーションシップ項目定義/オブジェクトAPI名 省略可 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーション先のオブジェクトのAPI名を選択します。  
リレーションシップ項目定義/リレーション用カラムAPI名 省略可 使用不可 [テーブル名]で指定したテーブルのリレーション項目の列のリレーション先オブジェクトの外部キー項目を選択します。
  • 省略した場合、リレーション先オブジェクトの該当レコードのIDを受け渡す仕様となります。
プロパティアクション
項目名 説明 備考
プレビュー プレビューアを起動して、[出力ファイル]で指定したファイルの内容を表示します。
  • 指定したファイルが存在しない場合、または[ファイル]に変数が設定されている場合は無効になります。
  • [エンコード]で指定したエンコードで表示されます。
  • ファイル内容の編集はできません。
  • プレビューアで表示できるファイルのサイズは最大1MBです。ファイルサイズが1MBを超える場合、ファイルの先頭から1MB分が表示されます。
スキーマの作成 Salesforceに対して書き込みを行う項目の追加・削除を行うことができます。
設定方法については、「スキーマの作成」を参照してください。
 
オプション設定
項目名 必須/省略可 変数の使用 説明 備考
エンコード 必須 使用可 書き込むファイルのエンコードを選択または入力します。

入力する場合は、Java SE Runtime Environment 8でサポートされているエンコードを指定します。
詳細については、「Supported Encodings」(http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html)を参照してください。
カラム名タイプ 必須 使用不可 マッピングでスキーマを表示する際のカラム名の表示タイプを選択します。
  • [ラベル]:
    Salesforceで定義されたラベル名(項目名)で表示します。
  • [API]:(デフォルト)
    Salesforceで定義されたAPI参照名で表示します。
 
書き込み方法 必須 使用不可 指定したファイルが存在する場合、ファイルの末尾に追加するまたは上書きするかを選択します。
  • [追加]:(デフォルト)
    ファイルの末尾に追加します。
  • [上書き]:
    上書きします。
 
プロパティアクション
項目名 説明 備考
テーブル情報の表示 操作を行っているオブジェクトのテーブル構造を確認できます。
テーブル構造の参照方法については、「テーブル情報の表示」を参照してください。
  • 他のオブジェクトのテーブル構造を確認したい場合、[全テーブル情報の読み込み]をクリックしてください。
全テーブル情報の読み込み 取得可能なすべてのテーブル構造を取得します。
実行後に、[テーブル情報の表示]から取得した内容を確認することができます。
 
ファイルからスキーマ定義を読み取り ファイルチューザでファイルを選択して、そのファイルの1行目にカンマ区切りで指定された項目(API)を読み取り、スキーマ定義として設定します。
  • 選択するファイルのエンコードは「UTF-8」を指定してください。
スキーマ定義をファイルへ出力 ファイルチューザで指定したファイルの1行目に、[スキーマ定義/API]の項目をカンマ区切りで出力します。
  • API 53.0以降のグローバルリソースを選択している場合のみ有効になります。
  • [スキーマ定義/API]以外の項目は出力しません。
  • 指定したファイルのエンコードは「UTF-8」になります。
  • 指定したファイルが存在する場合、上書きされます。
  • ファイルパスはDataSpiderファイルシステムの絶対パスで指定してください。
  • パス区切り文字「/」以外のDataSpiderファイルシステムの使用禁止文字は使用できません。
  • 本プロパティアクションで出力したファイルを[ファイルからスキーマ定義を読み取り]で読み取ることができます。
トランザクション
項目名 必須/省略可 変数の使用 説明 備考
トランザクション処理を行う 必須 使用不可 トランザクション処理を行うかどうかを選択します。
  • [チェックあり]:
    トランザクション処理を行います。
  • [チェックなし]:(デフォルト)
    トランザクション処理を行いません。
詳細については、「ファイル系アダプタのトランザクション」を参照してください。
 
コメント
項目名 必須/省略可 変数の使用 説明 備考
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

[スキーマ定義]の設定により、カラム数が異なります。
スキーマ構造については、「テーブルモデル型のスキーマ」を参照してください。

出力スキーマ

ありません。

Mapperでのスキーマ読み込み

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

トランザクション

トランザクションをサポートしています。

[トランザクション][トランザクション処理を行う]にチェックを入れた場合のみトランザクションは有効になります。

PSPでの使用について

PSPでは使用できません。

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

コンポーネント変数名 説明 備考
input_count 入力データの件数が格納されます。
  • デフォルト値はnullです。
file_path 出力ファイルパスが格納されます。
  • デフォルト値は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のバージョンにより、格納される内容が変わる可能性があります。

マルチデータ書き込み使用例

マルチデータ書き込みを行うには、[マルチデータファイル生成]処理と[マルチデータ書き込み]処理を使用します。
[マルチデータファイル生成]処理でローカルファイルに複数のオブジェクトのデータを出力し、[マルチデータ書き込み]処理でファイルの内容を読み込みSalesforceへ更新を行います。

レコードの順序とチャンク

ファイルに集積したレコードを[マルチデータ書き込み]処理で更新する際には、Salesforceで1つのオブジェクトタイプごとに分割されます。この分割された単位をチャンクと呼びます。
1回の更新処理の呼び出しで、最大10のチャンクを含むことができます。
チャンクが分割されるルールは、[マルチデータファイル生成]処理で出力したレコードの順序に依存します。
また、データはチャンクごとにコミットされます。そのため、リレーション関係を持つレコードを含む場合、親レコードは子レコードより前にする必要があります。
この場合、子レコードは親の外部ID項目(リレーションシップ項目定義)を使用して親レコードとの関係を指定します。

マルチデータファイルフォーマット

[マルチデータファイル生成]処理では、[マルチデータ書き込み]処理で使用するために定義されたフォーマットでファイルが生成されます。
フォーマットが正しければ、独自に作成したファイルでも[マルチデータ書き込み]処理で扱うことが可能です。

マルチデータ書き込み用のファイルフォーマットは以下です。
ファイル名 拡張子 エンコード 改行コード
任意 CSV 任意 Auto

ファイルの内容は以下の種類の行から構成され、操作するオブジェクト毎に繰り返します。
各行の先頭のカラムには、識別文字を指定します。
行名称 識別文字 説明 カラム数 行位置
テーブル行 * オブジェクトのAPI名をひとつ指定します。 1カラム(識別文字カラムを除く) ファイルの先頭行、またはデータ行の次に出力します。
スキーマ行 ** 書き込みを行うスキーマのAPI名をカンマ区切りで指定します。
外部IDによる参照項目の更新を行う場合、以下のフォーマットで指定します。
"参照項目API名:リレーションシップ名:親オブジェクトAPI名:外部ID項目API名"
書き込み対象スキーマ分のカラム(識別文字カラムを除く) テーブル行の次に出力します。
データ行 (空白) 書き込むレコードのデータをカンマ区切りで指定します。
出力するカラム順は[スキーマ行]で指定した項目の順序と一致させます。
書き込み対象スキーマ分のカラム(識別文字カラムを除く) スキーマ行の次に出力します。
複数のレコードを表現する場合は、続けてデータ行を出力します。

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

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

スキーマの作成

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



画像内の番号 名称 説明 備考
(1) 選択済み項目 Salesforceから読み取り、または書き込みを行う項目を選択します。
  • 処理に必要な項目のみを指定することにより、Salesforceとの通信データ量が削減され、処理効率が向上します。
(2) 未選択の項目 Salesforceから読み取り、または書き込みを行わない項目を選択します。
  • 処理に不要な項目を指定することにより、Salesforceとの通信データ量が削減され、処理効率が向上します。

テーブル情報の表示

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



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

仕様制限

主な例外

例外名 原因 対策
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[]
[接続先]が指定されていません。 [接続先]を指定してください。
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
[接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
jp.co.headsol.salesforce.adapter.exception.SalesforceAdapterIllegalArgumentException Salesforceアダプタのプロパティの設定値が不正です。 エラーメッセージを確認し、設定内容をご確認ください。