Я пишу интеграцию между Salesforce.com и другим сервисом и столкнулся с проблемой с целочисленными полями. В Salesforce.com я определил поле типа «Число» с «Десятичными знаками», установленным на «0». В другом сервисе он окончательно хранится как целое число. Эти два поля должны хранить одни и те же целые числовые значения.
Проблема возникает, когда я сохраняю значение в варианте Salesforce.com этого поля. Salesforce.com вернет одно и то же значение из своих операций Query()
и QueryAll()
с неправильно добавленной степенью точности.
Например, если я вставлю значение «827» для этого поля в Salesforce.com, когда я позже извлеку это число из Salesforce.com, будет указано значение «827,0».
Я не хочу жестко запрограммировать интеграцию, чтобы удалить эти десятичные значения из определенных полей. Это не ремонтопригодно. Я хочу, чтобы он был достаточно умным, чтобы удалить десятичные значения из всех целочисленных полей до того, как запустится остальная часть кода интеграции. Как это сделать с помощью API SOAP Salesforce.com?
Я предполагаю, что это будет иметь какое-то отношение к свойству DescribeSObject()
«Поле», где я могу сканировать метаданные, но я не вижу способа извлечь количество знаков после запятой из DescribeSObjectResult.