当通过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,这是我想尽可能删除的步骤。
答案 0 :(得分:1)
David,我不知道设置RecordType的类似简写方法。不幸的是,RecordType没有为达到这个目的所需的外部id。
我的建议是查询所有RecordTypes并构建一个DeveloperName到Id的本地查找表/数组。然后,您可以在整个应用程序中使用此查找表/数组,以根据Salesforce中该RecordType的DeveloperName设置正确的RecordType Id。
答案 1 :(得分:1)
您可以使用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>";