简化记录类型ID链接

问题描述

| 当通过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。