--- apiVersion: v1 kind: List items: - apiVersion: v1 kind: ConfigMap metadata: labels: funktion.fabric8.io/kind: Connector provider: fabric8 project: connector-sap-netweaver version: 1.1.27 group: io.fabric8.funktion.connector name: sap-netweaver data: deployment.yml: | --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: funktion.fabric8.io/kind: Subscription connector: sap-netweaver spec: replicas: 1 template: metadata: labels: funktion.fabric8.io/kind: Subscription connector: sap-netweaver spec: containers: - image: fabric8/connector-sap-netweaver:1.1.27 name: connector schema.yml: | --- component: kind: component scheme: sap-netweaver syntax: sap-netweaver:url title: SAP NetWeaver description: The sap-netweaver component integrates with the SAP NetWeaver Gateway using HTTP transports. label: sap deprecated: false async: false producerOnly: true javaType: org.apache.camel.component.sap.netweaver.NetWeaverComponent groupId: org.apache.camel artifactId: camel-sap-netweaver version: 2.18.1 componentProperties: {} properties: url: kind: path group: producer required: true type: string javaType: java.lang.String deprecated: false secret: false description: Url to the SAP net-weaver gateway server. flatternMap: kind: parameter group: producer type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: If the JSON Map contains only a single entry then flattern by storing that single entry value as the message body. json: kind: parameter group: producer type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: Whether to return data in JSON format. If this option is false then XML is returned in Atom format. jsonAsMap: kind: parameter group: producer type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: To transform the JSON from a String to a Map in the message body. password: kind: parameter group: producer required: true type: string javaType: java.lang.String deprecated: false secret: false description: Password for account. username: kind: parameter group: producer required: true type: string javaType: java.lang.String deprecated: false secret: false description: Username for account. synchronous: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). documentation.adoc: |+ [[SAPNetWeaver-SAPNetWeaverGatewaycomponent]] SAP NetWeaver Gateway component ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Available as of Camel 2.12* The *sap-netweaver* integrates with the http://scn.sap.com/community/developer-center/netweaver-gateway[SAP NetWeaver Gateway] using HTTP transports. This camel component supports only producer endpoints. Maven users will need to add the following dependency to their `pom.xml` for this component: [source,xml] ------------------------------------------------------------ org.apache.camel camel-sap-netweaver x.x.x ------------------------------------------------------------ [[SAPNetWeaver-URIformat]] URI format ^^^^^^^^^^ The URI scheme for a sap netweaver gateway component is as follows [source,java] ----------------------------------------------------------------- sap-netweaver:https://host:8080/path?username=foo&password=secret ----------------------------------------------------------------- You can append query options to the URI in the following format, `?option=value&option=value&...` [[SAPNetWeaver-Prerequisites]] Prerequisites ^^^^^^^^^^^^^ You would need to have an account to the SAP NetWeaver system to be able to leverage this component. SAP provides a http://scn.sap.com/docs/DOC-31221#section6[demo setup] where you can requires for an account. This component uses the basic authentication scheme for logging into SAP NetWeaver. [[SAPNetWeaver-Componentandendpointoptions]] SAPNetWeaver options ^^^^^^^^^^^^^^^^^^^^ // component options: START The SAP NetWeaver component has no options. // component options: END // endpoint options: START The SAP NetWeaver component supports 7 endpoint options which are listed below: {% raw %} [width="100%",cols="2,1,1m,1m,5",options="header"] |======================================================================= | Name | Group | Default | Java Type | Description | url | producer | | String | *Required* Url to the SAP net-weaver gateway server. | flatternMap | producer | true | boolean | If the JSON Map contains only a single entry then flattern by storing that single entry value as the message body. | json | producer | true | boolean | Whether to return data in JSON format. If this option is false then XML is returned in Atom format. | jsonAsMap | producer | true | boolean | To transform the JSON from a String to a Map in the message body. | password | producer | | String | *Required* Password for account. | username | producer | | String | *Required* Username for account. | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |======================================================================= {% endraw %} // endpoint options: END [[SAPNetWeaver-MessageHeaders]] Message Headers ^^^^^^^^^^^^^^^ The following headers can be used by the producer. [width="100%",cols="10%,10%,80%",options="header",] |======================================================================= |Name |Type |Description |`CamelNetWeaverCommand` |`String` |*Mandatory*: The command to execute in http://msdn.microsoft.com/en-us/library/cc956153.aspx[MS ADO.Net Data Service] format. |======================================================================= [[SAPNetWeaver-Examples]] Examples ^^^^^^^^ This example is using the flight demo example from SAP, which is available online over the internet http://scn.sap.com/docs/DOC-31221[here]. In the route below we request the SAP NetWeaver demo server using the following url [source,java] ---------------------------------------------------------------------- https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/ ---------------------------------------------------------------------- And we want to execute the following command [source,java] ------------------------------------------------------------------------------------------------------- FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00') ------------------------------------------------------------------------------------------------------- To get flight details for the given flight. The command syntax is in http://msdn.microsoft.com/en-us/library/cc956153.aspx[MS ADO.Net Data Service] format. We have the following Camel route [source,java] ----------------------------------------------------------------------------- from("direct:start") .toF("sap-netweaver:%s?username=%s&password=%s", url, username, password) .to("log:response") .to("velocity:flight-info.vm") ----------------------------------------------------------------------------- Where url, username, and password is defined as: [source,java] --------------------------------------------------------------------------------------------------------------------------------------- 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')"; --------------------------------------------------------------------------------------------------------------------------------------- The password is invalid. You would need to create an account at SAP first to run the demo. The velocity template is used for formatting the response to a basic HTML page [source,xml] ------------------------------------------------------------------------ Flight information:


Airline ID: $body["AirLineID"]
Aircraft Type: $body["AirCraftType"]
Departure city: $body["FlightDetails"]["DepartureCity"]
Departure airport: $body["FlightDetails"]["DepartureAirPort"]
Destination city: $body["FlightDetails"]["DestinationCity"]
Destination airport: $body["FlightDetails"]["DestinationAirPort"] ------------------------------------------------------------------------ When running the application you get sampel output: [source,java] ------------------------------- Flight information: Airline ID: AA Aircraft Type: 747-400 Departure city: new york Departure airport: JFK Destination city: SAN FRANCISCO Destination airport: SFO ------------------------------- [[SAPNetWeaver-SeeAlso]] See Also ^^^^^^^^ * link:configuring-camel.html[Configuring Camel] * link:component.html[Component] * link:endpoint.html[Endpoint] * link:getting-started.html[Getting Started] * link:http.html[HTTP]