Я пытаюсь интегрировать свое приложение rails со службами отчетов Sql Server (SSRS), используя Savon 2.11.1. Я использую WSDL ReportServicesExecution2005. У меня проблема в том, что я должен добавить session_id в заголовок мыла после создания экземпляра клиента. Это связано с тем, что session_id генерируется SSRS после того, как клиент вызывает load_report.
client = Savon.client(wsdl: "https://somewsdl.asmx?wsdl", basic_auth: ["user", "pass"])
этот вызов возвращает session_id в ответе:
response = client.call(:load_report, message: {report: "path/to/report"} )
заголовок мыла должен содержать 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) Отсутствует идентификатор сеанса. Для этой операции требуется идентификатор сеанса. ---> Microsoft.ReportingServices.Diagnostics.Utilities.MissingSessionIdException: Отсутствует идентификатор сеанса. Для этой операции требуется идентификатор сеанса.
Спасибо за помощь заранее.