3

Salesforce.comと別のサービスの統合を作成していますが、整数フィールドで問題が発生しました。Salesforce.comで、「小数点以下の桁数」を「0」に設定した「数値」タイプのフィールドを定義しました。他のサービスでは、整数として明確に格納されます。これらの2つのフィールドは、同じ整数の数値を格納することになっています。

このフィールドのSalesforce.comバリアントに値を保存すると、問題が発生します。Salesforce.comは、その操作から同じ値を、誤って追加された精度で返しQuery()ますQueryAll()

例として、Salesforce.comのこのフィールドに値「827」を挿入した場合、後でSalesforce.comからその番号を抽出すると、値は「827.0」と表示されます。

特定のフィールドからこれらの10進値を削除するために、統合をハードコーディングしたくありません。それは維持できません。残りの統合コードを実行する前に、すべての整数フィールドから10進値を削除できるほど賢くしたいと思います。Salesforce.com SOAP APIを使用して、これをどのように達成しますか?

これは、メタデータをスキャンできるの「Field」プロパティと関係があると思いますが、 DescribeSObjectResultDescribeSObject()から小数点以下の桁数を抽出する方法がわかりません。

4

2 に答える 2

8

あはは!小数点以下の桁数はScaleFieldオブジェクトで呼び出されるプロパティにあります。「0」に等しい場合、整数フィールドがあることがわかります。

于 2012-03-21T18:58:17.450 に答える
3

技術的には、「Decimal Places」プロパティが0に設定されている場合でも、sObjectフィールドは整数ではありません。これらは常に、さまざまなスケールプロパティを持つ10進数です。これはAPEXで覚えておくことが重要です。これは、10進数で使用できるメソッドが整数のメソッドと同じではなく、他の潜在的な型変換の問題があるためです(常にではありませんが、状況によっては)。

于 2012-03-21T19:17:35.823 に答える