[英]PHP Waiting for WSDL (Salesforce) process to finish
我使用PHP與Salesforce WSDL API。
我已經打算是做幾件事情PHP頁面。
使用創建的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中存在異常,例如刪除連接?
如果是這樣,在將createRecord分配給$ newRecord變量的過程中,我應該在createRecord函數內還是在它之外進行處理?
您應該在Salesforce api可以使用的地方使用異常 ,因為我注意到有時會發生HTTP錯誤並且連接會隨機掉線。 這樣,您可以測試返回的SOAP調用,並確保它們沒有失敗並且具有正確的值。
您應該使用SalesForce的PHP工具包來減少已知問題,而不必自己編寫代碼: https : //github.com/developerforce/Force.com-Toolkit-for-PHP
例如,如果您嘗試插入/創建聯系人/線索對象,並且在createRecord()
函數中使用salesforce create
命令,則使用SalesForce upsert
命令會更好/更安全。
如果您需要更多幫助,則需要顯示一些代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.