1

WSO2 ESB 4.8.1 を SFDC と統合しています。

SFDC コネクタ 1.0 の使用

WSO2で私はコードを書きまし <salesforce.logout/>た.WSO2のドキュメントによると、現在の接続を閉じると言われています。

<salesforce.logout/>WSO2 ESB ログで特定した以下の SOAP メッセージを生成します

TID: [0] [ESB] [2016-08-30 07:55:39,442] DEBUG {org.apache.synapse.transport.http.wire} -  << "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com"><soapenv:Header><urn:SessionHeader><urn:sessionId>00D17000000BPGr!AQcAQDIggW.ikXtsb0Ckm8c8pKKDlF_8QN42jL31WUa6hDLOdEeNIjrYsevKW0FeZLDzlrjcDLwMni_7gYaZgNfdN4zv9Cgj</urn:sessionId></urn:SessionHeader></soapenv:Header><soapenv:Body><urn:logout></urn:logout></soapenv:Body></soapenv:Envelope>[\r][\n]" {org.apache.synapse.transport.http.wire}

しかし、実行時にエラー(INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session. Session not found, missing session hash:)を下回ってい<salesforce.logout/>ます

TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} -  >> "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sf="urn:fault.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>sf:INVALID_SESSION_ID</faultcode><faultstring>INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session. Session not found, missing session hash: je59etMAEPM+m9VdYJb0AW==[\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} -  >> "This is expected, it can happen if the session has expired and swept away, or if the user logs out, or if its just someone trying to hack in. </faultstring><detail><sf:UnexpectedErrorFault xsi:type="sf:UnexpectedErrorFault"><sf:exceptionCode>INVALID_SESSION_ID</sf:exceptionCode><sf:exceptionMessage>Invalid Session ID found in SessionHeader: Illegal Session. Session not found, missing session hash: je59etMAEPM+m9VdYJb0AW==[\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} -  >> "This is expected, it can happen if the session has expired and swept away, or if the user logs out, or if its just someone trying to hack in. </sf:exceptionMessage></sf:UnexpectedErrorFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>[\r][\n]" {org.apache.synapse.transport.http.wire}

SFDC の問題/WSO2 SFDC コネクタの問題/WSO2 ESB 構成の問題ですか?

upsert 操作では、プロジェクト全体で configkey 属性を使用しています。以下はコードです。

<salesforce.upsert configKey="sfdc_connection_dtls">
          <allOrNone>0</allOrNone>
          <allowFieldTruncate>0</allowFieldTruncate>
          <sobjects xmlns:sfdc="sfdc">{//sfdc:sObjects}</sobjects>
        </salesforce.upsert>

したがって <salesforce.logout/>、それぞれのシーケンスで使用すると、シーケンスで使用可能な現在の接続のみが閉じられますか? または、既存のすべての接続を閉じます。

salesforce.upsert を使用している場合 (以下はスケルトン コード)、salesforce.upsert の呼び出し後に使用でき<salesforce.logout/>ますか?

<salesforce.upsert configKey="sfdc_connection_dtls">
       <!-- sobject goes here -->
</salesforce.upsert>

あなたの助けを楽しみにしています

ありがとう、テジャス

4

1 に答える 1

2

WSO2 SFDC コネクタでは、init 構成ごとのフローごとに 1 つの SF 接続が作成されます。したがって、ログアウトを発行すると、後続のリクエストは失敗します。いずれにしても接続はフローの最後で終了するため、ログアウトを発行する必要はありません。

于 2016-09-02T01:52:21.913 に答える