Salesforce ラッパー

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

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

<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> ]
  [ { OBJECTNAME = <literal> | SOQLSENTENCE = <literal> } ]
  [ <outputschema> ]
  [ <sourceconfiguration> ]

<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 ステートメントには補間文字列を含めることができます (「 クエリの実行コンテキストと補間文字列 」を参照)。

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 が基本ビューのラッパーに送信する条件に置き換えられます。