问题描述
|
当通过PHP使用Salesforce SOAP API时,如果我有一个对象,该对象具有对帐户的查找字段,并且该帐户上的特定字段设置为外部ID,则可以执行以下操作
$sfBooking->fields[\'Account__r\'] = \"<type>Account</type>\"
. \"<custom_account_id__c>\"
. utf8_encode($tBoxBooking->client_id)
. \"</custom_account_id__c>\";
当尝试链接记录而不必诉诸使用其Salesforce ID时,这非常方便。
我想知道在通过API在对象上设置“记录类型”时是否可以使用类似的速记类型。如果可能的话,我想先取消必须首先查询Record Type对象的记录类型ID的步骤。
解决方法
您可以使用RecordType上的名称字段来执行此操作,您生成的xml应该看起来像
<create xmlns=\"urn:partner.soap.sforce.com\">
<sobject>
<type>case</type>
<subject>Test</subject>
<recordType>
<type>RecordType</type>
<name>InternetCase</name>
</recordType>
</sobject>
</create>
根据您发布的代码,您可以
$sfBooking->fields[\'RecordType\'] = \"<type>RecordType</type>\"
. \"<name>\"
. utf8_encode($tboxBooking->recordType_name)
. \"</name>\";
,大卫,我不知道类似的设置RecordType的速记方法。不幸的是,RecordType没有外部ID才能实现此目的。
我的建议是查询所有RecordType,并为ID建立一个本地的DeveloperName查找表/数组。然后,您可以在整个应用程序中使用此查找表/数组,以根据Salesforce中该RecordType的DeveloperName设置正确的RecordType ID。