2012-08-31 3 views
0

Я использую Php с API WSDL Salesforce.PHP Ожидание завершения WSDL (Salesforce)

У меня есть страница PHP, которая делает несколько вещей.

  1. Создайте сообщение через WSDL в Salesforce и попросите его вернуть Id.
  2. С помощью этого созданного Id присвоить переменной, так что он может обновить запись в Salesforce

    через WSDL

    функция createRecord ($ Object, $ FieldData) {// делает это волшебство, подключившись к Salesforce, return $ Id; }

    $ newRecord = createRecord();

    $ record-> contact__c = $ newRecord; $ sfConn-> update (массив ($ record), 'Campaign');

Так что же происходит, что $ newRecord предполагают, чтобы получить Назначают при значении от функции createRecord, какая-то происходит, что createRecord не обрабатывает достаточно быстро, и поэтому $ newRecord получить назначать с NULL.

Что-нибудь, что я могу сделать, чтобы makeRecord завершил выполнение перед вызовом «$ 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 или вне его во время назначения createRecord в переменную $ newRecord?

+0

Если функция 'createRecord' возвращается преждевременно, это может помочь увидеть некоторые из ее кода. – JCD

+0

размещен фрагмент кода. Это не только то, что он возвращается преждевременно, просто сценарий просто продолжает работать и назначает его всем, что находится внутри переменной. – MCHam

ответ

0

Вы должны использовать exceptions, где бы вы ни были с помощью salesforce api, поскольку я заметил, что иногда происходят ошибки HTTP, и соединения могут случайно упасть. Таким образом, вы можете протестировать обратные вызовы SOAP и гарантировать, что они не сработают и будут иметь правильные значения.

Вы должны использовать SalesForce's PHP Toolkit уменьшить известные проблемы и не надо изобретать код все сами: https://github.com/developerforce/Force.com-Toolkit-for-PHP

Если вы пытаетесь вставить/создать контакт/свинцовый объект, например, и ваш с помощью продажи сила create команды внутри ваша функция createRecord() будет намного лучше/безопаснее использовать команду SalesForce upsert.

Если вам нужна дополнительная помощь, тогда вам нужно будет показать код.

Смежные вопросы