Salesforce ラッパー

ここでは、CREATE WRAPPER SALESFORCE ステートメントのパラメータについて説明します。Salesforce 基本ビューは 管理ツールから 作成することをお勧めします。他の方法よりもはるかに容易です。

CREATE WRAPPER SALESFORCE ステートメントの構文
CREATE [ OR REPLACE ] WRAPPER SALESFORCE <name:identifier>
    [ FOLDER = <literal> ]
    DATASOURCENAME = <name:identifier>
    [ <api_configuration> ]
    { OBJECTNAME = <literal> | SOQLSENTENCE = <literal> }
    [ <outputschema> ]
    [ <sourceconfiguration> ]

<api_configuration> ::=
  API_CONFIGURATION (
   [TYPE = { REST | BULK | DEFAULT } ]
   [CHUNK_SIZE = { <integer> | DEFAULT } ]
  )

<outputschema> ::= OUTPUTSCHEMA ( <field> [, <field> ]* )

<field> ::=
  <name:identifier> [ = <mapping:literal> ] [ : <type:literal>]
    [ ( { OBL | OPT } ) ]
    [ ( <field property> = <literal> [, <field property> = <literal> ]* ) ]
    [ <inline constraints> ]*
  | <name:identifier> [ = <mapping:literal> ] :
    ARRAY OF ( <register field> )
    [ ( DEFAULTVALUE = <literal> ) ]
    [ <inline constraints> ]*
  | <name:register field>

<field property> ::=
    DEFAULTVALUE
  | SOURCETYPENAME

<register field> ::=
  <name:identifier> [ = <mapping:literal> ] :
     REGISTER OF ( <field> [, <field> ]* )
     [ ( <field property> = <literal> [, <field property> = <literal> ]* ) ]
     [ <inline constraints> ]*

<inline constraint> ::=
    [ NOT ] NULL
  | [ NOT ] UPDATEABLE
  | { SORTABLE [ ASC | DESC ] | NOT SORTABLE }
  | EXTERN
  | SQLFRAGMENT

<sourceconfiguration> ::= SOURCECONFIGURATION ( [ <source configuration property>  [, <source configuration property> ]* ] )

<source configuration property> ::=
  DELEGATEFETCH = <property value>
  | DELEGATEGROUPBY = <property value>
  | DELEGATEOFFSET = <property value>
  | DELEGATEAGGREGATEFUNCTIONSLIST = { DEFAULT | ( <function:identifier> [, <function:identifier> ]* ] ) }
  | DELEGATEOPERATORSLIST = { DEFAULT | ( <operator:identifier> [, <operator:identifier> ]* ] ) }
  | SUPPORTSAGGREGATEFUNCTIONSOPTIONS = <property value>

<property value> ::= true | false  | DEFAULT

既存の Salesforce ラッパーを変更するには、ALTER WRAPPER SALESFORCE ステートメントを使用します。

ALTER WRAPPER SALESFORCE ステートメントの構文
ALTER WRAPPER SALESFORCE <name:identifier>
  [ DATASOURCENAME = <name:identifier> ]
  [ <api_configuration> ]
  [ { OBJECTNAME = <literal> | SOQLSENTENCE = <literal> } ]
  [ <outputschema> ]
  [ <sourceconfiguration> ]

<api_configuration> ::= (see CREATE WRAPPER SALESFORCE for details)

<outputschema> ::= (see CREATE WRAPPER SALESFORCE for details)

<outputschema> ::= (see CREATE WRAPPER SALESFORCE for details)

<sourceconfiguration> ::= (see CREATE WRAPPER SALESFORCE for details)

Salesforce ラッパー を定義するには、Salesforce データソース の名前を指定する必要があります (DATASOURCENAME)。ラッパーのデータの取得元を指定する方法は、2 通りあります。

  1. データを Salesforce オブジェクトから取得する場合は、名前 (OBJECTNAME) を指定します。

  2. 代わりに、SOQL ステートメント (SQLSENTENCE) を指定することができます。SOQL ステートメントには補間文字列を含めることができます (「 クエリの実行コンテキストと補間文字列 」を参照)。

API_CONFIGURATION 句は、使用する API に関連する構成を定義します。 TYPE プロパティは、API が REST と BULK のどちらであるかを定義します。 CHUNK_SIZE は、BULK API で使用される PK-CHUNKING のサイズを定義します。値が 0 の場合、チャンキングを使用しないことを示します。どちらのプロパティも、値 DEFAULT を指定すると、Salesforce データソースで定義された値が使用されます。このセクションがない場合は、REST API と見なされます。

OUTPUTSCHEMA 句はラッパーが提供するデータのスキーマを定義します (「 ラッパーメタデータ 」を参照)。単純型エレメントごとに型を指定する必要があります。さらに、ラッパーによって返されるフィールド名と Salesforce 内のフィールド名のアソシエーションをマッピングで指定されたとおりに指定できます。

フィールドプロパティ SOURCETYPENAME は Salesforce 内の型の名前です。

フィールドに インライン定数 SQLFRAGMENT が含まれ、クエリが WHERE 句でこのフィールドを使用する場合、フィールドに与えられる値は条件を解析することなく、「そのまま」データベースに委任されます。

注釈

SQLFRAGMENT 句は非推奨であり、Denodo Platform の今後のバージョンで削除される可能性があります。

ラッパー作成ステートメントには OR REPLACE 修飾子を指定することもできます。指定されると、同じ名前のラッパーがすでに存在する場合に、その定義が新しい定義で置き換えられます。

最後に、特定のラッパープロパティを指定できます (SOURCECONFIGURATION)。Virtual DataPort は、ラッパーで実行できる操作を判別するためにこれらを考慮します。適用可能なプロパティは該当するステートメント宣言に示されています (「 CREATE WRAPPER SALESFORCE ステートメントの構文 」を参照)。

SOQL クエリでの WHEREEXPRESSION の使用

Virtual DataPort には、基本ビューを容易に作成できるようにする補間変数として WHEREEXPRESSION があらかじめ定義されています。これにより、クエリを実行すると、Salesforce オブジェクトにクエリを実行する代わりに、特定の SOQL ステートメント (SOQLSENTENCE パラメータを指定した CREATE WRAPPER SALESFORCE) が実行されます。実行時に、Virtual DataPort サーバーによって、 WHEREEXPRESSION が基本ビューのラッパーに送信する条件に置き換えられます。