Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Systems, Applications, and Products (SAP) for data processing is an industry leading enterprise software solution that is widely used in product and process oriented enterprises for finance, operations, HR and many other aspects of a business. SAP ERP solutions provide reliable and efficient platforms to build and integrate enterprise or business-wide data and information systems with ease. 

...

Localtabgroup
Localtab
titleConfigure with IDoc adapter

WSO2 SAP adapter can be used with IDoc, which is a synchronous interface used when exchanging data with the SAP system. WSO2 EI can be configured for Sending IDocs or Receiving IDocs when using the SAP adapter.

Anchor
SendingIDocs
SendingIDocs
Sending IDocs

Follow the instructions below to configure the ESB Profile as an IDoc client using the SAP adapter.

  1. Uncomment the following line in <EI_HOME>/conf/axis2/axis2.xml  file to enable the IDoc transport sender on axis2 core.

    Code Block
    languagexml
    <transportSender name=”idoc” class="org.wso2.carbon.transports.sap.SAPTransportSender"/>
  2. Create IDocSender proxy service with the following configuration:

    Code Block
    languagexml
    <proxy xmlns=http://ws.apache.org/ns/synapse 
           name="IDocSender"
    	   transports="http" 
           startOnLoad="true" 
           trace="enable" 
           statistics="enable">
        <target>
          <inSequence>
             <log level="full"/>
             <send>
             <endpoint name="sapidocendpoint">
                 <address uri="idoc:/SAPSYS"/>
             </endpoint>
             </send>
          </inSequence>
          <outSequence/>
       </target>
       <parameter name="serviceType">proxy</parameter>
       <description/>
    </proxy>
    Info
    • The SAP endpoint client properties file SAPSYS.dest should be in <EI

      If you set the property shown below (use the Property mediator before the Send mediator in the above sequence), any business-level error messages that are sent back from the SAP endpoint will be successfully passed through the out flow sequence. Without this property, the business-level errors from SAP can get detected as faulty messages and passed to the Fault sequence.

      Code Block
      <property name="sap.escape.error.handling" scope="axis2" value="true"/>
    • The SAP endpoint client properties file SAPSYS.dest should be in <EI_HOME>/conf/sap folder.
    • Additional axis2 level sender parameters that can be defined in the axis2 core are listed in SAP Transport Sender Parameters.

    You can now send IDocs using the configured WSO2 SAP adapter.

Anchor
ReceivingIDocs
ReceivingIDocs
Receiving IDocs

Follow the instructions below to configure the ESB Profile as an IDoc server using the SAP adapter.

  1. Uncomment the following line in <EI_HOME>/conf/axis2/axis2.xml file to enable IDoc transport receiver in axis2 core.

    Code Block
    languagexml
    <transportReceiver name=”idoc” class="org.wso2.carbon.transports.sap.SAPTransportListener"/>
  2. Ensure the server configuration file SAPSYS.server is available in <EI_HOME>/conf/sap folder.
  3. Start the ESB Profile of WSO2 EI using the -Djava.library.path switch to specify the location of your SAP jco library. 
    For example, you can execute the following command to start the ESB Profile:

    Code Block
    ./integrator.sh -Djava.library.path=/usr/lib/jvm/jre1.7.0/lib/i386/server/


  4. Create the IDocReceiver proxy service with the following configuration:

    Code Block
    languagexml
    <proxy xmlns=http://ws.apache.org/ns/synapse 
           name="IDocReceiver"
           transports="idoc" 
           statistics="enable" 
           trace="enable" 
           startOnLoad="true">
       <target>
         <inSequence>
             <log level="full"/>
             <drop/>
        </inSequence>
        <outSequence>
            <log level="full"/>
            <send/>
        </outSequence>
      </target>
      <parameter name="transport.sap.enableTIDHandler">enabled</parameter>
      <parameter name="transport.sap.serverName">SAPSYS</parameter>
      <description/>
    </proxy>
    Info
    • If you set the property shown below (use the Property mediator before the Send mediator in the above sequence), any business-level error messages that are sent back from the SAP endpoint will be successfully passed through the out flow sequence. Without this property, the business-level errors from SAP can get detected as faulty messages and passed to the Fault sequence.

      Code Block
      <property name="sap.escape.error.handling" scope="axis2" value="true"/>
    • The SAP endpoint server properties file SAPSYS.server should be in the <EI_HOME>/conf/sap folder.
    • Additional proxy level listener parameters that can be defined in the proxy configuration are listed in Proxy Service Listener Parameters.

    Once the proxy service configuration is saved, WSO2 SAP adapter is now ready to receive IDoc messages.

Localtab
titleConfigure with BAPI adapter

WSO2 SAP adapter so that it can be used with BAPI, which is a synchronous interface used when exchanging data with the SAP system. The ESB Profile of WSO2 EI can be configured for Sending BAPIs or Receiving BAPIs when using the SAP adapter.

Anchor
SendingBAPI
SendingBAPI
Sending BAPIs

Follow the instructions below to configure the ESB profile as a BAPI client using the SAP adapter.

  1. Uncomment the following line in  <EI_HOME>/conf/axis2/axis2.xml  file to enable the BAPI transport sender in axis2 core.

    Code Block
    languagexml
    <transportSender name="bapi" class="org.wso2.carbon.transports.sap.SAPTransportSender"/>
  2. Start the ESB Profile of WSO2 EI using the  -Djava.library.path  switch to specify the location of your SAP jco library.

    For example, you can execute the following command to start the ESB Profile:

    Code Block
    ./integrator.sh -Djava.library.path=/usr/lib/jvm/jre1.7.0/lib/i386/server/
  3. Create the BAPISender proxy service with the following configuration:

    Code Block
    languagexml
    <proxy xmlns="http://ws.apache.org/ns/synapse" 
           name="BAPISender" 
           transports="https,http" 
           startOnLoad="true" 
           trace="disable">
        <target>
            <inSequence>
                <send>
                    <endpoint name="sap_bapi_endpoint">
                        <address uri="bapi:/SAPSYS"/>
                    </endpoint>
                </send>
            </inSequence>
            <outSequence>
                <log level="full"/>
                <send/>
            </outSequence>
        </target>
    </proxy>
    Info
    • The SAP endpoint client properties file SAPSYS.dest should be in the <EI_HOME>/conf/sap folder.
    • Additional axis2-level sender parameters that can be defined in the axis2 core are listed in SAP Transport Sender Parameters.
Anchor
ReceivingBAPI
ReceivingBAPI
Receiving BAPIs

Follow the instructions below to configure the ESB Profile as a BAPI server using the SAP adapter.

  1. Uncomment the following line in  <EI_HOME>/conf/axis2/axis2.xml  file to enable the BAPI transport listener in axis2 core.

    Code Block
    languagexml
    <transportReceiver name="bapi" class="org.wso2.carbon.transports.sap.SAPTransportListener"/>
  2. Start the ESB Profile of WSO2 EI using the -Djava.library.path switch to specify the location of your SAP jco library. 
    For example, you can execute the following command to start the ESB Profile:

    Code Block
    ./integrator.sh -Djava.library.path=/usr/lib/jvm/jre1.7.0/lib/i386/server/
  3. Create the BAPIReceiver proxy service with the following configuration:

    Code Block
    languagexml
    <proxy xmlns=http://ws.apache.org/ns/synapse 
           name="BAPIReceiver"
           transports="bapi" 
           statistics="enable" 
           trace="enable" 
           startOnLoad="true">
       <target>
         <inSequence>
             <log level="full"/>
             <drop/>
        </inSequence>
        <outSequence>
            <log level="full"/>
            <send/>
        </outSequence>
      </target>
      <parameter name="transport.sap.enableTIDHandler">enabled</parameter>
      <parameter name="transport.sap.serverName">SAPSYS</parameter>
      <description/>
    </proxy>
    Info
    • The SAP endpoint server properties file SAPSYS.server should be in the <EI_HOME>/conf/sap folder.
    • Additional proxy level listener parameters that can be defined in the proxy configuration are listed in Proxy Service Listener Parameters.

...

Following are descriptions of the SAP client properties that can be defined in the message context with axis2-client scope when using the ESB Profile of WSO2 EI as a SAP client to send messages. These properties can be added in <EI_HOME>/conf/axis2/axis-client.xml file:

PropertyDescription
transport.sap.xmlMapper The key of custom IDOC XML mapper to use. This key should be defined in the transport.sap. customXMLMappers parameter. If no key is specified the default IDoc XML mapper will be used. 
transport.sap. xmlParserOptions

The options for the default IDoc XML parser to be used in the default IDoc XML mapper. Multiple options can be combined using the bitwise OR "|" operator. The possible parser options are as follows:

PARSE_ACCEPT_ONLY_XMLVERSION_10 3328
PARSE_ACCEPT_ONLY_XMLVERSION_11 2816
PARSE_ACCEPT_ONLY_XMLVERSIONS_10_TO_11 2304
PARSE_IGNORE_INVALID_CHAR_ERRORS 4
PARSE_IGNORE_UNKNOWN_FIELDS 2
PARSE_REFUSE_UNKNOWN_XMLVERSION 256
PARSE_REFUSE_XMLVERSION_10 512
PARSE_REFUSE_XMLVERSION_11 1024
PARSE_WITH_FIELD_VALUE_CHECKING 1
PARSE_WITH_IGNORE_UNKNOWN_FIELDS 2
PARSE_WITHOUT_FIELD_DATATYPE_CHECKING 8

...

Following are descriptions of the proxy level listener parameters that can be defined in a proxy configuration when using the ESB Profile of WSO2 EI as a SAP server:

ParameterDescription
transport.sap.serverName The name of the server containing the JCO server configuration.
transport.sap. enableErrorListener Set this to enable the default error listener. If this is used together with the transport.sap. customErrorListener parameter, the custom error listener will be used.
transport.sap. enableTIDHandler Set this to enable the transaction handler to handle transactions that are received from a SAP system. Transactional applications must provide a custom implementation using the transport.sap. customTIDHandler parameter.
transport.sap. customTIDHandler The fully qualified class name for the custom TID handler implementing JCoServerTIDHandler.
transport.sap.connections The number of registered connections managed by the server instance. The default value is 1 and the maximum value is 100.
transport.sap. customErrorListener The fully qualified class name for the custom error listener implementing JCoServerErrorListener
transport.sap. customExceptionListener The fully qualified class name for the custom exception listener implementing JCoServerExceptionListener.


...

Troubleshooting

Given below are general troubleshooting guidelines.

...