SOAP-ERROR:当使用企业客户端SalesForce


SOAP-ERROR: When using Enterprise Client for SalesForce

我试图通过SOAP客户端将自定义字段传递给SalesForce,这是我现有的代码:

        try {
          $mySforceConnection = new SforceEnterpriseClient();
          $mySoapClient = $mySforceConnection->createConnection(SOAP_CLIENT_BASEDIR.'/enterprise.wsdl.xml');
          $mylogin = $mySforceConnection->login($USERNAME, $PASSWORD);
          $leadConvert = new stdClass;
          $leadConvert->leadId = $eLEADID;
          $leadConvert->Custome_field = true;
          $leadConvertArray = array($leadConvert);
          echo "<pre>";
          print_r($leadConvertArray);
          echo "</pre>";
          $leadConvertResponse = $mySforceConnection->convertLead($leadConvertArray);
          echo "<pre>";
          print_r($leadConvertResponse);
          echo "</pre>";

        } 
        catch (Exception $e) {
          echo $e->faultstring;
        }

传递给SOAP的方式是这样的:

    Array
    (
        [0] => stdClass Object
            (
                [leadId] => XXXXXXXXXX
                [Custom_field] => 1
            )
    )

我得到的错误如下:

SOAP-ERROR: Encoding: object has no 'convertedStatus' property

我必须在WSDL中设置一些东西才能使其工作吗?这是尝试更新SalesForce中的leadID以将其转换为帐户/机会。

有没有更好的方法让我调试这个,看看我错过了什么可能从WSDL?

注意:该错误意味着您"实际上"没有在请求中设置参数。要解决这个问题,只需传递它所抱怨的内容。

新问题:

添加请求后,我得到以下错误:

Element {urn:enterprise.soap.sforce.com}Custome_field invalid at this location

不太确定这个错误是什么意思。任何想法吗?

错误提示:

元素{urn:enterprise.soap.sforce.com}Custome_field在此位置无效

看起来您正在尝试将Lead记录上的自定义字段设置为布尔值。

Salesforce中的自定义字段通常以__c后缀结尾。

检查Salesforce中字段的API名称,并确保生成和访问Enterprise API的用户具有对它的字段级访问权限。

那么你的代码应该是这样的:

$leadConvert->Custom_field__c = true;

这似乎也有点奇怪,你正在设置一个引线自定义字段,然后将其传递给convertLead() web方法。参见LeadConvert参数,其中包括convertedStatus