0

我将 Php 与 Salesforce WSDL API 一起使用。

我要做的是一个 PHP 页面做几件事。

  1. 通过 WSDL 创建通知到 Salesforce 并让它返回一个 ID。
  2. 使用创建的 Id 分配给变量,以便它可以通过 WSDL 将记录更新到 Salesforce

    function createRecord($Object, $FieldData){ //通过连接到 Salesforce 来变魔术,返回 $Id; }

    $newRecord = 创建记录();

    $record->contact__c = $newRecord; $sfConn->update(array($record), 'Campaign');

因此,假设 $newRecord 从函数 createRecord 获取赋值,有时会发生 createRecord 处理速度不够快,因此 $newRecord 获取 NULL 赋值。

我可以做些什么来确保 createRecord 在调用“$record->contact__c”之前完成执行?


在 createRecord($Object, $FieldData) 中是这段代码

$sfConn2 = new SforceEnterpriseClient();
$sfClient = $sfConn2->createConnection(WSDL_FILE);
$sfLogin = $sfConn2->login(SF_UN, SF_PW);

        $newRec = new stdclass();           
        foreach ($FieldData as $key => $value){
            $newRec->$key = $value;
        }

            $createResponse = $sfConn2->create(array($newRec), $Object);

            if($createResponse->success == 1){
               return $createResponse->id;  
            }else{
               return FALSE;
            }

那么最可能的罪魁祸首是createRecord中存在异常,例如drop connection?

如果是这样,在将 createRecord 分配给 $newRecord 变量期间,我应该在 createRecord 函数内还是在它之外处理?

4

1 回答 1

0

您应该尽可能使用salesforce api 的异常,因为我注意到有时会发生 HTTP 错误并且连接可能会随机断开。这样,您可以测试返回的 SOAP 调用并确保它们没有失败并具有正确的值。

您应该使用SalesForce 的 PHP 工具包来减少已知问题,而不必自己编写代码:https ://github.com/developerforce/Force.com-Toolkit-for-PHP

例如,如果您尝试插入/创建联系人/潜在客户对象,并且您在函数create内部使用 sales force 命令,createRecord()那么使用 SalesForce 命令会更好/更安全upsert

如果您需要更多帮助,那么您需要显示一些代码。

于 2012-09-01T15:25:21.433 回答