简化记录类型ID链接

时间:2011-05-25 10:34:08

标签: php salesforce

当通过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,这是我想尽可能删除的步骤。

2 个答案:

答案 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>";