PHP等待WSDL(Salesforce)流程完成

时间:2012-08-31 16:14:50

标签: php concurrency wsdl salesforce

我正在使用Php和Salesforce WSDL API。

我要做的就是做一些PHP页面。

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

    function createRecord($ Object,$ FieldData){  //通过连接到Salesforce来实现它的魔力,  返回$ Id; }

    $ newRecord = createRecord();

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

  3. 所以会发生$ 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连接之类的异常?

    如果是这样,在createRecord赋值给$ newRecord变量期间,我应该在createRecord函数内还是在其外部处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

你应该使用exceptions尽可能使用salesforce api,因为我注意到有时会发生HTTP错误并且连接可能会随机丢失。通过这种方式,您可以测试返回的SOAP调用,并确保它们不会失败并具有正确的值。

您应该使用SalesForce's PHP Toolkit来减少已知问题,而不必自己创建代码:https://github.com/developerforce/Force.com-Toolkit-for-PHP

如果您尝试插入/创建联系人/潜在客户对象以及在createRecord()函数中使用销售人员create命令,那么使用SalesForce {{会更好/更安全3}}命令。

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