我正在使用Php和Salesforce WSDL API。
我要做的就是做一些PHP页面。
使用创建的Id分配给变量,以便它可以通过WSDL将记录更新为Salesforce
function 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连接之类的异常?
如果是这样,在createRecord赋值给$ newRecord变量期间,我应该在createRecord函数内还是在其外部处理它?</ p>
答案 0 :(得分:0)
你应该使用exceptions尽可能使用salesforce api,因为我注意到有时会发生HTTP错误并且连接可能会随机丢失。通过这种方式,您可以测试返回的SOAP调用,并确保它们不会失败并具有正确的值。
您应该使用SalesForce's PHP Toolkit来减少已知问题,而不必自己创建代码:https://github.com/developerforce/Force.com-Toolkit-for-PHP
如果您尝试插入/创建联系人/潜在客户对象以及在createRecord()
函数中使用销售人员create
命令,那么使用SalesForce {{会更好/更安全3}}命令。
如果您需要更多帮助,那么您需要显示一些代码。