データ読み取り(子→親リレーション)処理

オペレーション名

データ読み取り(子→親リレーション)

機能概要

queryサービスを使用してデータを読み取ります。抽出条件にはSOQL(Sforce Object Query Language)を使用します。
データの読み取りの際、子オブジェクトから見た親オブジェクトの項目を「リレーション名.リレーション先項目名」の形式で1階層上のオブジェクトまで取得することができます。
また、スキーマ定義にて選択した項目に集計関数を用いることができ、集計条件(GROUP BY句など)を合わせて指定することで、集計条件に基づいた集計関数の結果を取得することができます。

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

データモデル

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

プロパティ

基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については、「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
  • API 18.0以降のグローバルリソースが選択可能です。
  • テーブル名 必須 使用不可 Salesforceのテーブル名を選択します。  
    SOQL(検索条件) 省略可 使用可 [テーブル名]で選択を行ったテーブルに対する検索条件(Where文)を指定します。
    • 構文の詳細については、Salesforce APIドキュメントを参照してください。
    スキーマ定義 必須 - Salesforceから読み取りを行う項目を設定します。
    • 後続の処理で必要となる項目に限定(不要な項目をスキーマ定義から除く)することにより、処理効率が向上します。
    スキーマ定義/ラベル 必須 使用不可 [テーブル名]で指定したテーブルの列、または親テーブルの列のラベル名を表示します。  
    スキーマ定義/API 必須 使用不可 [テーブル名]で指定したテーブルの列、または親テーブルの列のAPI名を表示します。  
    スキーマ定義/型 必須 使用不可 [テーブル名]で指定したテーブルの列、または親テーブルの列のデータ型を表示します。  
    スキーマ定義/関数 必須 使用不可 [テーブル名]で指定したテーブルの列、または親テーブルの列に集計関数を指定できます。
    • SUM関数の場合「SUM」、MAX関数の場合「MAX」のように設定します。
    • SUM関数やAVG関数などの集計結果が数値の精度を越える場合、値が正しく取得できないことがあります。
    プロパティアクション
    項目名 説明 備考
    SOQLの作成 [テーブル名]で選択したテーブルに対する検索条件の指定をサポートします。
    設定方法については、「SOQLの作成」を参照してください。
     
    抽出テスト 指定したスキーマ、検索条件、集計条件を元にクエリーを実行します。結果として取得した件数が表示されます。
    • 次の場合には実行することができません。
      • スキーマ定義が設定されていない場合
      • 検索条件、関数、集計条件に変数が指定されている場合
    スキーマの作成 Salesforceから読み取りを行う項目の追加・削除を行うことができます。
    設定方法については、「スキーマの作成」を参照してください。
     
    オプション設定
    項目名 必須/省略可 変数の使用 説明 備考
    集計条件 省略可 使用可 [テーブル名]で選択を行ったテーブル、または親テーブルに対して集計を行う場合の集計条件(GROUP BY句など)を指定します。
    • 例えばGROUP BY句を指定したい場合、「GROUP BY」から記述します。
    • 構文の詳細については、Salesforce APIドキュメントを参照してください。
    カラム名タイプ 必須 使用不可 マッピングでスキーマを表示する際のカラム名の表示タイプを選択します。
    • [ラベル]:
      Salesforceで定義されたラベル名(項目名)で表示します。
    • [API]:(デフォルト)
      Salesforceで定義されたAPI参照名で表示します。
     
    削除レコードの読み取り 必須 - Salesforceから削除されたデータを読み取るかどうかを設定します。
    (読み取りする場合、queryAllサービスを用いた読み取りを行います。)
    • [読み取りしない]:(デフォルト)
      Salesforceで削除されたデータを読み取りません。
    • [読み取りする]:
      Salesforceで削除されたデータを読み取ります。
    • [読み取りする]を選択した場合、ゴミ箱から削除されたデータが削除後も24時間前後読み取られることがあります。
    バッチサイズ 必須 使用可 Salesforceからのデータ読み取り結果を取得する際のバッチサイズを入力します。
    • デフォルト値は「500」です。
    • 「200」以上「2000」以下の値が指定できます。範囲以外の値が指定された場合、エラーが発生します。
    • 使用環境によりますが、一般的にバッチサイズを大きくすることにより、データの読み取り効率は向上します。
    • SalesforceのAPI仕様として、10,000件のデータを読み取るケースで、バッチサイズを2000と設定した場合、データ結果セットを5回に分けて取得します。
    プロパティアクション
    項目名 説明 備考
    テーブル情報の表示 [接続先]で選択されているSalesforceのテーブル構造を確認できます。
    テーブル構造の参照方法については、「テーブル情報の表示」を参照してください。
     
    データ処理方式
    項目名 必須/省略可 変数の使用 説明 備考
    データ処理方式 必須 使用不可 データ処理方式を選択します。
    • [スクリプトの設定を使用する]:(デフォルト)
      スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
    • [大容量データ処理を行わない]:
      大容量データ処理を行いません。
    • [大容量データ処理を行う]:
      大容量データ処理を行います。
     
    コメント
    項目名 必須/省略可 変数の使用 説明 備考
    コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
    説明を記述すると、仕様書に反映させることができます。
     

    スキーマ

    入力スキーマ

    ありません。

    出力スキーマ

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

    Mapperでのスキーマ読み込み

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

    大容量データ処理

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

    PSPスクリプトでの使用について

    PSPスクリプトでは使用できません。

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

    コンポーネント変数名 説明 備考
    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のバージョンにより、格納される内容が変わる可能性があります。

    SOQLの作成

    Salesforceから読み取るデータの抽出条件を指定することができます。



    画像内の番号 名称 説明 備考
    (1) 条件項目の選択 検索条件に利用したい項目を選択するための一覧です。  
    (2) 検索条件の指定 検索条件に利用したい項目を選択し、選択した項目ごとに条件式を指定できます。  
    (3) SOQL(検索条件:WHERE) [検索条件の指定]で指定された条件を表示します。
    • 表示された条件を直接編集することも可能です。

    スキーマの作成

    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
    リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
    [接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
    java.net.UnknownHostException グローバルリソースで指定したPROXYサーバが見つからない例外です。 PROXYサーバの状態を確認して下さい。または、[接続先]で指定したグローバルリソースの[Proxyホスト]を確認してください。
    org.apache.commons.httpclient.HttpConnection$ConnectionTimeoutException Salesforceに接続中にタイムアウトが発生しました。 ネットワークの状態、Salesforceのサーバの状態を確認してください。または、[接続先]で指定したグローバルリソースの[Connectionタイムアウト(秒)]を確認してください。
    org.apache.commons.httpclient.HttpRecoverableException
    java.net.SocketTimeoutException: Read timed out
    Salesforceに接続後、サーバからの応答までにタイムアウトが発生しました。 ネットワークの状態、Salesforceのサーバの状態を確認してください。または、[接続先]で指定したグローバルリソースの[タイムアウト(秒)]を確認してください。
    jp.co.headsol.salesforce.adapter.exception.SalesforceAdapterIllegalArgumentException Salesforceアダプタのプロパティの設定値が不正です。 エラーメッセージを確認し、設定内容をご確認ください。
    com.sforce.soap.partner.fault.LoginFault Salesforceへのログインに失敗しました。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。
    com.sforce.soap.partner.fault.InvalidFieldFault 実行したSOQLに含まれる項目が不正です。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。
    com.sforce.soap.partner.fault.MalformedQueryFault 実行したSOQLが不正です。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。
    com.sforce.soap.partner.fault.UnexpectedErrorFault Salesforceへの処理実行中に、予期しない例外が発生しました。 ExceptionCodeまたは、エラーメッセージを確認し、Salesforceの関連ドキュメントなどに対象のエラーに関する情報がないか確認してください。