Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 简化记录类型Id链接_Php_Salesforce - Fatal编程技术网

Php 简化记录类型Id链接

Php 简化记录类型Id链接,php,salesforce,Php,Salesforce,当通过PHP使用Salesforce SOAP API时,如果我有一个对象,其中有一个帐户的查找字段,该帐户上有一个特定字段,该字段设置为外部id,那么我可以执行以下操作 $sfBooking->fields['Account__r'] = "<type>Account</type>" . "<custom_account_id__c>" . utf8_encode($tboxBooking->client_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>";
$sfBooking->fields['Account\uu r']=“Account”
. ""
. utf8\u编码($tboxBooking->client\u id)
. "";
当尝试链接记录而不必使用其Salesforce ID时,这非常方便


我想知道,在通过API设置对象的记录类型时,是否可以使用类似类型的速记。如果可能的话,首先查询record type对象来获取记录类型id是我想省去的一个步骤。

David,我不知道有类似的速记方法来设置记录类型。不幸的是,RecordType没有实现此目的所需的外部id


我的建议是查询所有记录类型,并建立DeveloperName to Id的本地查找表/数组。然后,您可以在整个应用程序中使用此查找表/数组,根据Salesforce中该记录类型的DeveloperName设置正确的记录类型Id。

您可以使用RecordType上的name字段执行此操作,生成的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>";
$sfBooking->fields['RecordType']=“RecordType”
. ""
. utf8_编码($tboxBooking->recordType_名称)
. "";

您有有效的示例代码吗?我在Name和DeveloperName字段周围尝试了一些不同的方法,但没有任何乐趣。谢谢,更进一步,如果字段上的idLookup属性设置为true,那么您可以使用该字段。然而,大多数情况下这是错误的。不幸的是,名称不是唯一的,因此如果不同的SObject类型具有相同名称的RecordTypes,您将获得重复的\u EXTERNAL\u ID。