Savon 2.11.1を使用してRRSをSql Server Reports Services(SSRS)に統合しようとしています。私はReportServicesExecution2005 WSDLを使用しています。私が持っている問題は、クライアントがインスタンス化された後にsoapヘッダにsession_idを追加する必要があるということです。これは、クライアントがload_reportを呼び出すと、session_idがSSRSによって生成されるためです。Savon 2.11.1クライアントがインスタンス化された後にsoapヘッダーを設定するRails + SSRS
client = Savon.client(wsdl: "https://somewsdl.asmx?wsdl", basic_auth: ["user", "pass"])
この呼び出しは応答SESSION_IDを返す:
response = client.call(:load_report, message: {report: "path/to/report"})
SOAPヘッダは、この呼び出しが行われるときにクライアントにSESSION_IDを含む必要がある:
client.call(:set_execution_parameters, message: { report: "path/to/report", parameters: params } )
はこれを試みたがそれは動作しませんでした:
client.call(:set_execution_parameters, soap_header: {"session_id" => @session_id}, message: { report: "path/to/report", parameters: params } )
次のエラーが表示されます。
(soap:Client) The session identifier is missing. A session identifier is required for this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.MissingSessionIdException: The session identifier is missing. A session identifier is required for this operation.
ありがとうございました。
また、 "TrustedUserHeader"とすべてのサブタグは、空白であるかどうかにかかわらず、この作業を行う必要があることを指摘したいと思います。 – user2967603