0

SalesforceWSDLAPIでPHPを使用しています。

私が行っているのは、いくつかのことを行う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)、'キャンペーン');

つまり、$ newRecordは関数createRecordから値を使用して割り当てを取得すると想定され、createRecordは十分な速度で処理されないため、$newRecordはNULLを使用して割り当てを取得します。

「$record->contact__c」が呼び出される前にcreateRecordの実行を確実に終了させるためにできることはありますか?


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関数内または関数外で処理する必要がありますか?

4

1 に答える 1

0

HTTP エラーが発生し、接続がランダムにドロップする場合があることに気付いたので、salesforce api で可能な限り例外を使用する必要があります。このようにして、戻ってくる SOAP 呼び出しをテストし、それらが失敗せず、適切な値を持っていることを確認できます。

SalesForce の PHP Toolkitを使用して、既知の問題を減らし、すべて自分でコードを発明する必要がないようにしてください: https://github.com/developerforce/Force.com-Toolkit-for-PHP

たとえば、連絡先/リードオブジェクトを挿入/作成しようとしていてcreate、関数内でセールスフォースコマンドを使用している場合は、SalesForceコマンドcreateRecord()を使用する方がはるかに安全です。upsert

さらにヘルプが必要な場合は、コードの一部を表示する必要があります。

于 2012-09-01T15:25:21.433 に答える