Ich muss einige Berichte, die in einem SQL Server Reporting Server aus einer Ruby-Webanwendung zu ziehen.
Wie lässt sich das bewerkstelligen?
Ich muss einige Berichte, die in einem SQL Server Reporting Server aus einer Ruby-Webanwendung zu ziehen.
Wie lässt sich das bewerkstelligen?
Soweit ich weiß, gibt es nichts Vorgefertigtes, aber Sie haben einige Möglichkeiten zur Integration.
Wenn die Benutzer direkten Zugang zum RS-Server haben, ist es am einfachsten, sie mit ihrer URL-basierten Strategie zum Bericht umzuleiten oder zu verlinken, wobei möglicherweise ein neues Fenster geöffnet wird. Wenn die Benutzer keinen direkten Zugang haben, können Sie immer noch die URL-basierte Strategie verwenden, aber eine Anfrage am Backend von Ihrer Rails-App an den MS Reporting Services-Server stellen und alle Berichtsbytes an den Browser weiterleiten:
open("http://ReportServer/reports?querystringxxxx") { |f|
@response = f.read
}
Dies ist natürlich eine drastische Vereinfachung. Sie müssen Ihren Inhaltstypen besondere Aufmerksamkeit widmen, um sicherzustellen, dass die Dinge vom Browser richtig interpretiert werden.
Die nächste Option ist die Verwendung ihrer Webservice-API, aber wenn Sie keine besonders fortgeschrittenen Funktionen benötigen, ist der URL/REST-basierte Ansatz viel, viel einfacher.
Wenn du es zum Laufen bringst, nutze die Gelegenheit, dein erstes Gem zu erstellen, stelle es auf github, und vielleicht wird es eines Tages von jemand anderem benutzt... :)
Der restbasierte Ansatz würde nur für einen Bericht ohne Parameter funktionieren.
Wenn der Bericht Parameter enthält, müssen Sie die Webdienste-API verwenden, eine SOAP-basierte Schnittstelle, bei der Sie die Anfrage (mit den Parametern) in XML umwandeln und mit der Anfrage an MSSRS senden müssen.
Meinem Kollegen zufolge, der es gemacht hat, ist es ziemlich umständlich für das, was man tatsächlich bekommt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.