Openflow Connector for Salesforce Bulk API:Salesforce式フィールド¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
このトピックでは、サポートされている関数と制限を含め、|SalesforceBulkAPIOF|がSalesforceの式フィールドをSnowflake SQLビューに変換する方法について説明します。
式ビューの仕組み¶
:ui:`Enable Views Creation`が``true``に設定されている場合、コネクタは数式フィールドを持つオブジェクトごとに以下を実行します。
Describe APIを介して、Salesforceオブジェクトのメタデータから数式を取得します。
各数式を解析し、同等のSnowflake SQLに変換します。
ベーステーブルの非数式列と、計算列として変換された数式を組み合わせた``CREATE OR REPLACE VIEW``ステートメントを生成します。
Snowflakeに対してDDLを実行し、ビューを作成または更新します。
結果のビューの名前は``<Object Type>_FORMULA_VW``になります。たとえば、``Account``オブジェクトは``ACCOUNT_FORMULA_VW``という名前のビューを生成します。このビューをクエリして、複製されたデータと一緒に式フィールド値を取得できます。
ビューは、コネクタがソースオブジェクトのスキーマ変更を検出するたびに自動的に更新されるため、式の定義が確実にSalesforceと同期するようになります。
クロスオブジェクト式フィールド¶
Salesforceの式は、関係の走査を使用して関連オブジェクトのフィールドを参照できます(例: Account.Owner.Name)。コネクタは、ビュー定義に``LEFT JOIN``句を生成することで、これらのクロスオブジェクト参照をサポートします。各関係の走査は、Snowflakeの対応する関連テーブルへの結合を生成します。
クロスオブジェクト式を正しく動作させるには、関連するオブジェクトもコネクタによって複製される必要があります。コネクタは、変換時に参照テーブルがSnowflakeに存在するかどうかを確認しません。関連するオブジェクトが同期されていない場合、生成された``CREATE OR REPLACE VIEW``ステートメントはSnowflakeに存在しないテーブルを参照し、ビューの作成は失敗します。これを解決するには、式フィールドが参照するすべての関連オブジェクトが:ui:`Filter`パラメーターに含まれていることを確認してください。参照されるテーブルが存在するようになった後、次のコネクタの実行時にビューが自動的に再作成されます。
式ビューの列コメント¶
生成されたビューの各数式列には、SQL ``COMMENT``アノテーションが含まれます。
変換が成功した式の場合、コメントには元のSalesforce数式が含まれます。
変換できなかった式の場合、コメントには失敗理由コードが含まれます。
Snowflakeで``DESCRIBE VIEW <view_name>``を実行することで、これらのコメントを確認できます。
サポートされている式関数¶
次のSalesforce式関数は、同等のSnowflake SQLに変換されます。
カテゴリ |
Salesforce関数 |
Snowflakeにおける同等表記 |
|---|---|---|
論理的 |
|
|
論理的 |
|
|
論理的 |
|
|
Null処理 |
|
|
Null処理 |
|
|
Null処理 |
|
|
Null処理 |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
|
テキスト |
|
改行文字リテラル |
変換 |
|
|
変換 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
数学 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
日付と時刻 |
|
|
選択リスト |
|
|
関数に加えて、次の演算子がサポートされています。
サポートされていない式の構成要素¶
式における以下の構成要素はまだサポートされていません。関数と構成要素の追加サポートは、将来のリリースで追加される予定です。式がこれらのいずれかを使用する場合、ビューの対応する列は``NULL``を返し、列のコメントは失敗の理由を示します。
失敗の理由 |
説明 |
|---|---|
|
この式は、Snowflakeに同等のものがない関数、またはSalesforce UIに固有の関数を使用します。これには次が含まれます: |
|
この式は、 |
|
この式は、別の式フィールドを参照します。連鎖した式の参照(別の式フィールドに依存する式フィールド)はサポートされていません。 |
|
これは、式フィールドではなくロールアップ集計フィールドです。ロールアップ集計では子記録からデータが集計されるため、単純なSQLビューとして表現することはできません。 |
|
この式は、Salesforceオブジェクトメタデータから解決できない関係を参照します。これは通常、式の関係名がオブジェクト内にある既知の関係のいずれとも一致しない場合に発生します。 |
|
この式には、ハードコードされた15文字のSalesforce IDが含まれています。Salesforceは内部的に15文字のIDsを使用しますが、Bulk APIは18文字のIDsを返します。ハードコードされた15文字のIDsを含む式を確実に変換することはできません。 |
|
この式は、Snowflakeに単一の列として保存されない複合フィールド(``MailingAddress``など)を参照します。 |
|
数式を解析できなかったことを意味します。これは、コネクタがまだ認識していない構文であることを示している可能性があります。 |
|
認識はされるものの変換できない構文構造が使用されていることを意味します(たとえば、引数が3つ未満の``IF``関数)。 |