Skip to main content
Skip table of contents

SAP Connector (JCo 3)

This adapter allows data to be transferred from the X4 ESB to an SAP R/3 system. It generates any Remote Function Call (RFC) or calls any BAPI function mobule in an SAP system via JCo 3. In addition, IDocs can be sent to an SAP host.

Installation Instructions

For instructions on manually installing adapters and plugins, see Installing Adapters and Plugins Manually .

For the installation of the SAP Connector (JCo3), also observe the following steps:

Configuring the ERP adapters

  1. Copy the following file to the directory:
    <server_directory>\wildfly\modules\en\softproject\x4\adapter\ERP\main\:

    • de.softproject.x4.adapter.erp-7.4.4.jar

  2. Make sure that the module.xml file in the <server_directory>\wildfly\modules\en\softproject\x4\adapter\erp\main\ directory looks like this:

CODE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<module xmlns="urn:jboss:module:1.1" name="de.softproject.x4.adapter.erp">
    <resources>
        <resource-root path="de.softproject.x4.adapter.erp-7.4.4.jar"/>
    </resources>
    <dependencies>
        <module name="private.de.softproject.x4.adapter.erp" export="false" optional="false"/>
        <module name="de.softproject.x4.shared.jco" export="false" optional="false"/>
    </dependencies>
</module>

Configuring the JCo3 libraries

  1. Copy one of the following files to the \server\jdk\lib\ directory:

    • libsapjco3.so (Linux)

    • sapjco3.dll (Windows)

  2. Copy the following files to the directory: <server_directory>\wildfly\modules\de\softproject\x4\shared\jco\main\:

    • de.softproject.x4.shared.jco-7.4.4.jar

    • sapidoc3.jar

    • sapjco3.jar

  3. Make sure that the module.xml file in the <server_directory>\wildfly\modules\de\softproject\x4\shared\jco\main\ directory looks like this:

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<module xmlns="urn:jboss:module:1.1" name="de.softproject.x4.shared.jco"> 
  <resources> 
    <resource-root path="de.softproject.x4.shared.jco-7.4.4.jar"/>
    <resource-root path="sapidoc3.jar"/>
    <resource-root path="sapjco3.jar"/>
  </resources>
  <dependencies>
    <module name="private.de.softproject.x4.shared.jco" export="false" optional="false"/>
    <module name="de.softproject.x4.client" export="true" optional="false"/>
  </dependencies>
</module> 
  1. Save all changes and then restart Keycloak, the X4 Server, and the X4 Designer.
    The SAP Connector (JCo 3) is then available in the X4 Designer.

Properties

Operation

Defines the operation executed by the function adapter

Possible values: Execute: Execute the adapter


Parameters

Adapter

Main class of the adapter (do not change!)

Possible values: de.softproject.integration.adapter.sapjco3.SAPAdapter: Main class (default)

PropertyFile

URL to the configuration file for the adapter

Possible values: Any URL valid within the Java VM (e.g. xstore://Project/Folder/Configuration.properties)

ReplaceEscapedControlChars

Replace masked control characters (e.g.: &#31;) in the XML strings returned by the JCo library, with the replacement character:

Possible values:

  • true: Replace masked control characters

  • false: Do not replace masked control characters

Status values

1

The operation was successful.

-1

The operation failed due to a technical error.

Call RFC/BAPI

Input

The adapter expects an input XML document according to the following pattern, which calls the corresponding function block with input data and the affected tables, if applicable:

HTML/XML
<X4SAP>
 <bapicall name="BAPI-Name" id="IDoc-ID">
   <input>
      <INPUT>
         <!--Parameter und Parameterwerte-->
      </INPUT>
   </input>
   <table>
      (Tabellen)
   </table>
 </bapicall>
</X4SAP>


Example

To call BAPI IDOCTYPE_READ_COMPLETE in SAP, this adapter expects the following input XML document:

HTML/XML
<X4SAP>
 <bapicall name="IDOCTYPE_READ_COMPLETE" id="IDoc-ID">
   <input>
      <INPUT>
         <PI_CIMTYP />
         <PI_IDOCTYP> <!--IDoc-Typ--> </PI_IDOCTYP>
         <PI_RELEASE>SY-S</PI_RELEASE>
         <PI_VERSION>3</PI_VERSION>
      </INPUT>
   </input>
   <table>
      <TABLES>
         <PT_FIELDS>
            <SEGMENTTYP />
            <FIELDNAME />
            <INTLEN />
            <EXTLEN />
            <FIELD_POS />
            <BYTE_FIRST />
            <BYTE_LAST />
            <ROLLNAME />
            <DOMNAME />
            <DATATYPE />
            <DESCRP />
            <ISOCODE />
            <VALUETAB />
         </PT_FIELDS>
         <PT_FVALUES>
            <STRNAME />
            <FIELDNAME />
            <FLDVALUE_L />
            <FLDVALUE_H />
            <DESCRP />
         </PT_FVALUES>
         <PT_MESSAGES>
            <MESTYP />
            <DESCRP />
            <IDOCTYP />
            <CIMTYP />
            <RELEASED />
         </PT_MESSAGES>
         <PT_SEGMENTS>
            <NR />
            <SEGMENTTYP />
            <SEGMENTDEF />
            <QUALIFIER />
            <SEGLEN />
            <PARSEG />
            <PARPNO />
            <PARFLG />
            <MUSTFL />
            <OCCMIN />
            <OCCMAX />
            <HLEVEL />
            <DESCRP />
            <GRP_MUSTFL />
            <GRP_OCCMIN />
            <GRP_OCCMAX />
            <REFSEGTYP />
         </PT_SEGMENTS>
      </TABLES>
   </table>
 </bapicall>
</X4SAP>

Send IDOC

To send an IDoc to SAP, use an XML document such as the following as input for the adapter:

HTML/XML
<X4SAP>
   <X4IDoc type="MATMAS02" description="">
      <X4Mandatory>
         <X4RecipientPartnerType>LS</X4RecipientPartnerType>
         <X4RecipientPartnerNumber>X4_T</X4RecipientPartnerNumber>
         <X4RecipientPartnerFunction />
         <X4SenderPort>SAPT01</X4SenderPort>
         <X4SenderPartnerType>LS</X4SenderPartnerType>
         <X4SenderPartnerNumber>ST01_200</X4SenderPartnerNumber>
         <X4SenderPartnerFunction />
         <X4SenderAddress />
         <X4SenderLogicalAddress />
         <MessageType>
            <MSGTYPE>MATMAS02</MSGTYPE>
         </MessageType>
      </X4Mandatory>
      <X4Structure>
<MATMAS02>
    <IDOC BEGIN="1">
        <EDI_DC40 SEGMENT="1">
            <TABNAM>EDI_DC40</TABNAM>
            <MANDT/>
            <DOCNUM/>
            <DOCREL/>
            <STATUS/>
            <DIRECT/>
            <OUTMOD/>
            <EXPRSS/>
            <TEST/>
            <IDOCTYP>MATMAS02</IDOCTYP>
            <CIMTYP/>
            <MESTYP>MATMAS</MESTYP>
            <MESCOD/>
            <MESFCT/>
            <STD/>
            <STDVRS/>
            <STDMES/>
            <SNDPOR>SAPJCOIDOC</SNDPOR>
            <SNDPRT>LS</SNDPRT>
            <SNDPFC/>
            <SNDPRN>JCOCLNT000</SNDPRN>
            <SNDSAD/>
            <SNDLAD/>
            <RCVPOR/>
            <RCVPRT>LS</RCVPRT>
            <RCVPFC/>
            <RCVPRN>TSTCLNT000</RCVPRN>
            <RCVSAD/>
            <RCVLAD/>
            <CREDAT>20050519</CREDAT>
            <CRETIM>104537</CRETIM>
            <REFINT/>
            <REFGRP/>
            <REFMES/>
            <ARCKEY/>
            <SERIAL/>
        </EDI_DC40>
        <E1MARAM SEGMENT="1">
            <MSGFN>005</MSGFN>
            <MATNR>BOXCOOKIES</MATNR>
            <ERSDA>20020801</ERSDA>
            <ERNAM>TIGGER</ERNAM>
            <LAEDA/>
            <AENAM/>
            <PSTAT>KBG</PSTAT>
            <LVORM/>
            <MTART>FERT</MTART>
            <MBRSH>L</MBRSH>
            <MATKL>G1113</MATKL>
            <BISMT/>
            <MEINS>PCE</MEINS>
            <BSTME/>
            <ZEINR/>
            <ZEIAR/>
            <ZEIVR/>
            <ZEIFO/>
            <AESZN/>
            <BLATT/>
            <BLANZ>000</BLANZ>
            <FERTH/>
            <FORMT/>
            <GROES/>
            <WRKST/>
            <NORMT/>
            <LABOR/>
            <EKWSL/>
            <BRGEW>0.550</BRGEW>
            <NTGEW>0.000</NTGEW>
            <GEWEI>KGM</GEWEI>
            <VOLUM/>
            <VOLEH/>
            <BEHVO/>
            <RAUBE/>
            <TEMPB/>
            <TRAGR/>
            <STOFF/>
            <SPART/>
            <KUNNR/>
            <WESCH/>
            <BWVOR/>
            <BWSCL/>
            <SAISO/>
            <ETIAR/>
            <ETIFO/>
            <EAN11/>
            <NUMTP/>
            <LAENG/>
            <BREIT/>
            <HOEHE/>
            <MEABM/>
            <PRDHA/>
            <CADKZ/>
            <ERGEW/>
            <ERGEI/>
            <ERVOL/>
            <ERVOE/>
            <GEWTO/>
            <VOLTO/>
            <VABME/>
            <KZKFG/>
            <XCHPF/>
            <VHART/>
            <FUELG/>
            <STFAK/>
            <MAGRV/>
            <BEGRU/>
            <QMPUR/>
            <RBNRM/>
            <MHDRZ/>
            <MHDHB/>
            <MHDLP/>
            <VPSTA>KBG</VPSTA>
            <EXTWG/>
            <MSTAE/>
            <MSTAV/>
            <MSTDE/>
            <MSTDV/>
            <KZUMW/>
            <KOSCH/>
            <NRFHG/>
            <MFRPN/>
            <MFRNR/>
            <BMATN/>
            <MPROF/>
            <PROFL/>
            <IHIVI/>
            <ILOOS/>
            <KZGVH/>
            <XGCHP/>
            <COMPL/>
            <KZEFF/>
            <RDMHD/>
            <IPRKZ/>
            <PRZUS/>
            <MTPOS_MARA/>
            <GEWTO_NEW/>
            <VOLTO_NEW/>
            <WRKST_NEW/>
            <AENNR/>
            <MATFI/>
            <CMREL/>
            <SATNR/>
            <SLED_BBD/>
            <GTIN_VARIANT/>
            <GENNR/>
            <SERLV/>
            <RMATP/>
            <E1MAKTM SEGMENT="1">
                <MSGFN>005</MSGFN>
                <SPRAS>D</SPRAS>
                <MAKTX>Schachtel mit Keksen</MAKTX>
                <SPRAS_ISO>DE</SPRAS_ISO>
            </E1MAKTM>
            <E1MAKTM SEGMENT="1">
                <MSGFN>005</MSGFN>
                <SPRAS>E</SPRAS>
                <MAKTX>Box of cookies</MAKTX>
                <SPRAS_ISO>EN</SPRAS_ISO>
            </E1MAKTM>
            <E1MARCM SEGMENT="1">
                <MSGFN>005</MSGFN>
                <WERKS>0001</WERKS>
                <PSTAT>BG</PSTAT>
                <LVORM/>
                <BWTTY/>
                <MAABC/>
                <KZKRI/>
                <EKGRP/>
                <AUSME/>
                <DISPR/>
                <DISMM/>
                <DISPO/>
                <PLIFZ>0</PLIFZ>
                <WEBAZ>0</WEBAZ>
                <PERKZ>M</PERKZ>
                <AUSSS>0.00</AUSSS>
                <DISLS/>
                <BESKZ>E</BESKZ>
                <SOBSL/>
                <MINBE/>
                <EISBE/>
                <BSTMI/>
                <BSTMA/>
                <BSTFE/>
                <BSTRF/>
                <MABST/>
                <LOSFX/>
                <SBDKZ/>
                <LAGPR/>
                <ALTSL/>
                <KZAUS/>
                <AUSDT/>
                <NFMAT/>
                <KZBED/>
                <MISKZ/>
                <FHORI/>
                <PFREI/>
                <FFREI/>
                <RGEKZ/>
                <FEVOR/>
                <BEARZ/>
                <RUEZT/>
                <TRANZ/>
                <BASMG/>
                <DZEIT/>
                <MAXLZ/>
                <LZEIH/>
                <KZPRO/>
                <GPMKZ/>
                <UEETO/>
                <UEETK/>
                <UNETO/>
                <WZEIT/>
                <ATPKZ/>
                <VZUSL/>
                <HERBL/>
                <INSMK/>
                <SSQSS/>
                <KZDKZ/>
                <UMLMC/>
                <LADGR/>
                <XCHPF/>
                <USEQU/>
                <LGRAD/>
                <AUFTL/>
                <PLVAR/>
                <OTYPE/>
                <OBJID/>
                <MTVFP/>
                <PERIV/>
                <KZKFK/>
                <VRVEZ/>
                <VBAMG/>
                <VBEAZ/>
                <LIZYK/>
                <BWSCL/>
                <KAUTB/>
                <KORDB/>
                <STAWN/>
                <HERKL/>
                <HERKR/>
                <EXPME/>
                <MTVER/>
                <PRCTR/>
                <TRAME/>
                <MRPPP/>
                <SAUFT/>
                <FXHOR/>
                <VRMOD/>
                <VINT1/>
                <VINT2/>
                <STLAL/>
                <STLAN/>
                <PLNNR/>
                <APLAL/>
                <LOSGR/>
                <SOBSK/>
                <FRTME/>
                <LGPRO/>
                <DISGR/>
                <KAUSF/>
                <QZGTP/>
                <TAKZT/>
                <RWPRO/>
                <COPAM/>
                <ABCIN/>
                <AWSLS/>
                <SERNP/>
                <STDPD/>
                <SFEPR/>
                <XMCNG/>
                <QSSYS/>
                <LFRHY/>
                <RDPRF/>
                <VRBMT/>
                <VRBWK/>
                <VRBDT/>
                <VRBFK/>
                <AUTRU>X</AUTRU>
                <PREFE/>
                <PRENC/>
                <PRENO/>
                <PREND/>
                <PRENE/>
                <PRENG/>
                <ITARK/>
                <PRFRQ/>
                <KZKUP/>
                <STRGR/>
                <LGFSB/>
                <SCHGT/>
                <CCFIX/>
                <EPRIO/>
                <QMATA/>
                <PLNTY/>
                <MMSTA/>
                <SFCPF/>
                <SHFLG/>
                <SHZET/>
                <MDACH/>
                <KZECH/>
                <MMSTD/>
                <MFRGR/>
                <FVIDK/>
                <INDUS/>
                <MOWNR/>
                <MOGRU/>
                <CASNR/>
                <GPNUM/>
                <STEUC/>
                <FABKZ/>
                <MATGR/>
                <LOGGR/>
                <VSPVB/>
                <DPLFS/>
                <DPLPU/>
                <DPLHO/>
                <MINLS/>
                <MAXLS/>
                <FIXLS/>
                <LTINC/>
                <COMPL/>
                <CONVT/>
                <FPRFM/>
                <SHPRO/>
                <FXPRU/>
                <KZPSP/>
                <OCMPF/>
                <APOKZ/>
                <AHDIS/>
                <EISLO/>
                <NCOST/>
                <MEGRU/>
                <ROTATION_DATE/>
                <UCHKZ/>
                <UCMAT/>
            </E1MARCM>
            <E1MBEWM SEGMENT="1">
                <MSGFN>005</MSGFN>
                <BWKEY>0001</BWKEY>
                <BWTAR/>
                <LVORM/>
                <VPRSV>S</VPRSV>
                <VERPR>0.00</VERPR>
                <STPRS>15.50</STPRS>
                <PEINH>1</PEINH>
                <BKLAS>7920</BKLAS>
                <VMVPR/>
                <VMVER/>
                <VMSTP/>
                <VMPEI/>
                <VMBKL/>
                <VJVPR>S</VJVPR>
                <VJVER>0.00</VJVER>
                <VJSTP>15.50</VJSTP>
                <LFGJA>2002</LFGJA>
                <LFMON>08</LFMON>
                <BWTTY/>
                <ZKPRS/>
                <ZKDAT/>
                <BWPRS/>
                <BWPRH/>
                <VJBWS/>
                <VJBWH/>
                <VVJLB/>
                <VVMLB/>
                <VVSAL/>
                <ZPLPR/>
                <ZPLP1/>
                <ZPLP2/>
                <ZPLP3/>
                <ZPLD1/>
                <ZPLD2/>
                <ZPLD3/>
                <KALKZ/>
                <KALKL/>
                <XLIFO/>
                <MYPOL/>
                <BWPH1/>
                <BWPS1/>
                <ABWKZ/>
                <PSTAT>BG</PSTAT>
                <KALN1>000100126602</KALN1>
                <KALNR>000100126603</KALNR>
                <BWVA1/>
                <BWVA2/>
                <BWVA3/>
                <VERS1/>
                <VERS2/>
                <VERS3/>
                <HRKFT/>
                <KOSGR/>
                <PPRDZ/>
                <PPRDL/>
                <PPRDV/>
                <PDATZ/>
                <PDATL/>
                <PDATV/>
                <EKALR>X</EKALR>
                <VPLPR>0.00</VPLPR>
                <MLMAA/>
                <MLAST/>
                <VJBKL>7920</VJBKL>
                <VJPEI>1</VJPEI>
                <HKMAT/>
                <EKLAS/>
                <QKLAS/>
                <MTUSE/>
                <MTORG/>
                <OWNPR/>
                <BWPEI>0</BWPEI>
            </E1MBEWM>
        </E1MARAM>
    </IDOC>
</MATMAS02>
</X4Structure>
   </X4IDoc>
</X4SAP>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.