Skip to Content

Get RWB message overview data to an external system

Hi Experts,

We have a requirement to send RWB message overview data to an external system.

I have found Michals blog below on how to retrieve the data using new servlet MessageOverviewQuery.

https://blogs.sap.com/2012/06/27/michals-pi-tips-how-to-get-rwb-message-overview-data-to-an-external-system/

When using the full query directly in a browser, we can retrieve the message overview successfully but when triggering the same using interface SOAP(Webservice) to HTTP we are facing issues with login (something like the request cannot proceed from the login page). See details below for reference.

Full Query: http //server:port/mdt/messageoverviewqueryservlet?component=<XIComponentName>&view=<ViewNameKey>&begin=<IntervalBeginTime>&end=<IntervalEndTime>

SOAP Sender

HTTP Receiver


Request payload

http://schemas.xmlsoap.org/soap/envelope/"> http://host <we remove this part>:port/mdt/messageoverviewqueryservlet</ns0:URL> <ns0:Description/> </ns0:Usage> </ns0:UsageTypes> <ns0:XIComponents> <ns0:Component>af.<var>.host</ns0:Component> </ns0:XIComponents> <ns0:Views> <ns0:View> <ns0:NameKey>SR_ENTRY_VIEW_XPI</ns0:NameKey> <ns0:LocalizedName/> </ns0:View> </ns0:Views> <ns0:Periods> <ns0:Period> <ns0:Type>DAILY</ns0:Type> <ns0:Interval> <ns0:Begin>2017-10-29 20:00:00.0</ns0:Begin> <ns0:End>2017-10-30 20:00:00.0</ns0:End> </ns0:Interval> </ns0:Period> </ns0:Periods> <ns0:Data> <ns0:ColumnNames> <ns0:Column/> </ns0:ColumnNames> <ns0:DataRows> <ns0:Row> <ns0:Entry/> </ns0:Row> </ns0:DataRows> </ns0:Data> </ns0:MessageStatisticsQueryResults> </soapenv:Body> </soapenv:Envelope>

Response

<script> var inPortalScript = false var webpath = "/logon_ui_resources/" </script> <html> <head> <BASE target="_self"> <link rel=stylesheet href="/logon_ui_resources/css/ur/ur_ie5.css"> <title>User Management, SAP AG</title> <script language="javascript"> var originWindowName=window.name; window.name="logonAppPage"; function restoreWindow() { try{ window.name=originWindowName; } catch(ex){} } </script> <script language="JavaScript"> function putFocus(formInst, elementInst) { if (document.forms.length > 0) { document.forms[formInst].elements[elementInst].focus(); } }

................

// Detecting the browser based on appName or another navigator object is not very trustworthy and future proof. Hopefully a longer lasting solution is: try { window.stop(); //document.write("<h2>window.stop() success!</h2>"); //Actually this line could never be printed as FF and Chrome will stop on previous line } catch (error) { //document.write("<h2>window.stop() did not work. Exception is: "+error+".</h2>"); try { document.execCommand("Stop"); //document.write("<h2>document.execCommand(\"Stop\") success!</h2>"); // This would be printed in case of IE } catch (error) { //document.write("<h2>document.execCommand(\"Stop\") did not work. Exception is: "+error+".</h2>"); document.write("<h2>This browser cannot prevent the Logon Page frame from loading!<br>Do not submit your credentials and contact your system administrator!</h2>");

I'm not sure if we setup the Receiver HTTP incorrectly or the request payload.

Please let us know if you have encountered this type of scenario.

Many many thanks in advance.

Regards,

Marc

soap-sender.jpg (52.0 kB)
http-receiver.jpg (74.4 kB)
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

0 Answers