4

技術者以外のユーザーが実行したアクションを Salesforce.com SOQL 'SELECT''UPSERT'、および'DELETE'ステートメントに変換する API を作成しています。生成された SOQL の構文を検証できるリソース、ライブラリなどはありますか? 私の会社で SOQL の経験があるのは私だけなので、SOQL 生成アルゴリズムを強化 (または修正) している他の開発者が、それがまだ適切に機能しているかどうかを知ることができるように、一連の自動テストに配置したいと考えています。

ここでの解決策の 1 つは、これらの統合テストを作成することです。ただし、次の 3 つの理由から、それは避けたいと思います。

  1. API リクエストの上限を超えないように、テスト用に別の Salesforce.com アカウントを維持する必要があります。
  2. Salesforce.com に接続の問題があるたびに、誤検知を追跡することになります。
  3. 経験のない他の開発者は、DML 操作のテストが失敗した後に、テスト用の Salesforce.com インスタンスをクリーンアップする方法を理解する必要がある可能性があります (これは、これが発生するたびにインスタンスをクリーンアップする必要があることを意味します)
4

4 に答える 4

2

これを行う別の方法を見つけました。

Salesforce.com は、 Backus-Noir Form (BNF) のSOQL 表記をここに投稿しました: http://www.salesforce.com/us/developer/docs/api90/Content/sforce_api_calls_soql_bnf_notation.htm

これは、BNF 対応の言語認識ツールを使用して SOQL を解析できることを意味します。最も一般的なツールの 1 つであるANTLRはこれを行い、無料です。ANTLR の例に従って、SOQL 文法をその文法コンパイラに渡して、目的の言語 (C#、Java、Python など) のレクサーとパーサーを取得します。次に、検証する実際の SOQL ステートメントをレクサーに渡し、レクサー トークンをパーサーに渡して、SOQL ステートメントを分割します。レクサーまたはパーサーが失敗した場合、SOQL は無効です。

于 2012-09-05T22:03:23.860 に答える
2

SoqlBuilder ライブラリを使用して問題を解決できる場合があります。SOQL が自動的に生成され、手動で作成するとエラーが発生しやすい SOQL ステートメントを生成できます。構文は簡単で、問題はほとんどなく、広く使用しています。

于 2012-02-08T11:48:38.800 に答える
1

Salesforce の外部からこれを行う方法は思いつきません (そして、Apex でさえ、うまくいかない可能性のあるアイデアが 1 つしかありません)。

  1. クエリを実行して検証しますが、カスタム Web サービスを使用してバッチで実行します。つまり、一度に最大 100 個のクエリ文字列を受け入れることができる Web サービスを Apex で作成し、それらを実行して結果を返すようにします。これにより、API 呼び出しの数が大幅に削減されますが、UI で試行錯誤タイプのセットアップが必要な場合は、もちろん機能しません。

  2. メタデータ API を使用して、すべてのオブジェクトとそのフィールドに関する情報を取得し、それらを使用して少なくともクエリのフィールドが正しいことを検証します。他のクエリ構文の検証は比較的簡単ですが、条件は少し難しいかもしれません。

于 2012-01-29T22:28:37.397 に答える
0

SOAP API を利用する salesforce 開発 nuget パッケージを利用できます。

于 2016-10-25T15:24:57.407 に答える