291.6. 例子
这个示例使用 SAP 的 flight 演示示例,该示例可通过互联网在线使用。http://scn.sap.com/docs/DOC-31221
在以下路由中,我们使用以下 url 请求 SAP NetWeaver demo 服务器
https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/
我们希望执行以下命令
FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')
要获得给定动态的动态详情。命令语法采用 MS ADO.Net Data Service 格式。
我们有以下 Camel 路由
from("direct:start") .setHeader(NetWeaverConstants.COMMAND, constant(command)) .toF("sap-netweaver:%s?username=%s&password=%s", url, username, password) .to("log:response") .to("velocity:flight-info.vm")
其中 url、username、password 和 command 定义为:
private String username = "P1909969254"; private String password = "TODO"; private String url = "https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/"; private String command = "FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')";
密码无效。您需要在 SAP 上创建帐户,首先运行演示。
velocity 模板用于格式化对基本 HTML 页面的响应
<html> <body> Flight information: <p/> <br/>Airline ID: $body["AirLineID"] <br/>Aircraft Type: $body["AirCraftType"] <br/>Departure city: $body["FlightDetails"]["DepartureCity"] <br/>Departure airport: $body["FlightDetails"]["DepartureAirPort"] <br/>Destination city: $body["FlightDetails"]["DestinationCity"] <br/>Destination airport: $body["FlightDetails"]["DestinationAirPort"] </body> </html>
在运行应用程序时,您会获得 sampel 输出:
Flight information: Airline ID: AA Aircraft Type: 747-400 Departure city: new york Departure airport: JFK Destination city: SAN FRANCISCO Destination airport: SFO