【发布时间】:2012-08-26 11:50:03
【问题描述】:
我正在将 Php 与 Salesforce WSDL API 一起使用。
我要做的是一个 PHP 页面做几件事。
- 通过 WSDL 创建通知到 Salesforce 并让它返回一个 ID。
-
使用创建的 Id 分配给变量,以便它可以通过 WSDL 将记录更新到 Salesforce
函数 createRecord($Object, $FieldData){ //通过连接到 Salesforce 来变魔术, 返回 $Id; }
$newRecord = createRecord();
$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 函数内还是在它之外处理?
【问题讨论】:
-
如果您的
createRecord函数过早返回,查看它的一些代码可能会有所帮助。 -
发布了代码的sn-p。不仅仅是它过早返回,只是脚本只是继续运行并将其分配给变量中的任何内容。
标签: php concurrency wsdl salesforce