---
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.28
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.28
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]