[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Where is my DS sub fields ?



   Hi again,
   I have a WSDL file. the post message have sub DS called 'Accountgl'
   which is type of TableOfBapiacgl09
   The TableOfBapiacgl09 is define with DS called 'Bapiacgl09'
   The 'Bapiacgl09' DS contain sub fields named
   ItemnoAcc,GlAccount,ItemText..ect
   In my generated STUB source, I can't find those sub fields, due to
   that reason I have no idea to how to assign the data according to SOAP
   message
   (not only 'Accountgl' but also 'Accountpayable', 'Accountreceivable'
   gives same issues)
   - <Accountgl>
   - <item>
     <ItemnoAcc>0000000010</ItemnoAcc>
     <GlAccount>0051300000</GlAccount>
     <ItemText />
   .
   .
   - </Accountgl>
   - </item>
   WSDL, STUB source & PGM source are attached.
   Please give me an idea of this...

   Thanks
      /IF NOT DEFINED(PROTOTYPE_SAP0004)
      *======================================================================
      *  Generated by WSDL2RPG 1.13 / 21.01.2011
      *  Built on Jul 6, 2011 (16:33:35)
      *  Based on WS_STUB v1.13
      *======================================================================
      *
      *   Please search for 'INFO:' to get basic information how to call
      *   the web service.
      *
      *   Default attachment handling (for demonstration) was added to
      *   WS_STUB but is disabled by default.
      *
      *   In order to enable or disable default attachment handling you have
      *   to define or undefine the following compiler condition name:
      *      DEFAULT_ATTACHMENT_HANDLING
      /UNDEFINE DEFAULT_ATTACHMENT_HANDLING
      *
      *   By default attachments are stored in folder:
      *      '/tmp/attachments'
      *
      *   You can change the default attachment folder by calling the
      *   following procedure before calling the web service:
      *      ZBAPI_ACC_DOCUMENT_POST_setAttachmentFolder()
      *
      *   Default attachment handling was added to demonstrate how
      *   to manage attachments. Please search the generate stub
      *   module for 'TODO:' to see what code belongs to attachment
      *   support.
      *
      *   Log4rpg:
      /UNDEFINE LOGGING_SERVICE
      *
      *======================================================================
      *   Pre-Compiler tags used by STRPREPRC to retrieve creation
      *   commands from the source member.
      * ---------------------------------------------------------------------
      * >>PRE-COMPILER<<
      *   >>CRTCMD<< CRTRPGMOD    MODULE(&LI/&OB) +
      *                           SRCFILE(&SL/&SF) +
      *                           SRCMBR(&SM);
      *   >>COMPILE<<
      *     >>PARM<< TRUNCNBR(*NO);
      *     >>PARM<< DBGVIEW(*LIST);
      *   >>END-COMPILE<<
      *   >>EXECUTE<<
      *   >>CMD<<    CRTSRVPGM +
      *              SRVPGM(&LI/&OB) +
      *              MODULE(&LI/&OB) +
      *              EXPORT(*ALL) +
      *              BNDSRVPGM(*LIBL/WSDL2RPGRT +
      *                        *LIBL/MIME     +
      *                        *LIBL/HTTPMIME +
      *                        *LIBL/BASICS1) +
      *              TEXT('+
      *              Web Service: ZbapiAccDocumentPost()+
      *              ') +
      *              DETAIL(*BASIC);
      * >>END-PRE-COMPILER<<
      *======================================================================
     H NOMAIN
     H DEBUG
     H BNDDIR('HTTPAPI': 'QC2LE')
     H OPTION(*SRCSTMT : *NODEBUGIO)
     H EXTBININT(*YES)
      /ENDIF
      *
      * INFO:
      * This is the procedure you call to consume the Web Service:
      * ----------------------------------------------------------
      * Operation: tns:ZbapiAccDocumentPost
      * Returns  : tns_ZbapiAccDocumentPostResponse
      *
      * INFO:
      * Include fields in your test/production programs referring to the *_t
      * type templates used in this prototype, using a LIKE(*_t) or LIKEDS(*_t).
      * These fields will be your request and response messages.
      *
     D ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost...
     D                 PR                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     extproc('ZBAPI_ACC_DOCUMENT_POST_Zba+
     D                                     piAccDocumentPost')
     D  i_tns_ZbapiAccDocumentPost...
     D                                     likeds(tns_ZbapiAccDocumentPost_t)
     D                                     const
     D  o_msg                              like(wsdl_errText_t )
      *
      *   Array dimensions:
     D DIM_A1          C                    10
      *
      *   Types:
     D n1_char1_t      S            128A   varying
     D                                     based(pDummy)
     D n1_char10_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char11_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char12_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char15_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char16_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char18_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char2_t      S            128A   varying
     D                                     based(pDummy)
     D n1_char20_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char25_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char3_t      S            128A   varying
     D                                     based(pDummy)
     D n1_char30_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char34_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char35_t     S            128A   varying
     D                                     based(pDummy)
     D n1_char4_t      S            128A   varying
     D                                     based(pDummy)
     D n1_char5_t      S            128A   varying
     D                                     based(pDummy)
     D n1_date_t       S            128A   varying
     D                                     based(pDummy)
     D n1_numeric10_t  S            128A   varying
     D                                     based(pDummy)
     D n1_numeric2_t   S            128A   varying
     D                                     based(pDummy)
     D n1_numeric4_t   S            128A   varying
     D                                     based(pDummy)
      *
     D tns_Bapiaccahd_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  DocNo                              like(n1_char12_t)
     D  DocTypeCa                          like(n1_char2_t)
     D  Fikey                              like(n1_char12_t)
     D  PaymentFormRef...
     D                                     like(n1_char30_t)
     D  ResKey                             like(n1_char30_t)
      *
      *
     D tns_Bapiache09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  AccPrinciple                       like(n1_char4_t)
     D  AcDocNo                            like(n1_char10_t)
     D  BillCategory                       like(n1_char1_t)
     D  BusAct                             like(n1_char4_t)
     D  CompoAcc                           like(n1_char4_t)
     D  CompCode                           like(n1_char4_t)
     D  DocDate                            like(n1_date_t)
     D  DocType                            like(n1_char2_t)
     D  FiscYear                           like(n1_numeric4_t)
     D  FisPeriod                          like(n1_numeric2_t)
     D  HeaderTxt                          like(n1_char25_t)
     D  NegPostng                          like(n1_char1_t)
     D  ObjKey                             like(n1_char20_t)
     D  ObjKeyInv                          like(n1_char20_t)
     D  ObjKeyR                            like(n1_char20_t)
     D  ObjSys                             like(n1_char10_t)
     D  ObjType                            like(n1_char5_t)
     D  PstngDate                          like(n1_date_t)
     D  ReasonRev                          like(n1_char2_t)
     D  RefDocNo                           like(n1_char16_t)
     D  RefDocNoLong                       like(n1_char35_t)
     D  TransDate                          like(n1_date_t)
     D  Username                           like(n1_char12_t)
     D  Vatdate                            like(n1_date_t)
      *
      *
     D tns_Bapiackec9_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  Character                          like(n1_char18_t)
     D  Fieldname                          like(n1_char30_t)
     D  ItemnoAcc                          like(n1_numeric10_t)
      *
      *
     D tns_Bapiacpa09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  BankAcct                           like(n1_char18_t)
     D  BankCtry                           like(n1_char3_t)
     D  BankCtryIso                        like(n1_char2_t)
     D  BankNo                             like(n1_char15_t)
     D  City                               like(n1_char35_t)
     D  Country                            like(n1_char3_t)
     D  CountryIso                         like(n1_char2_t)
     D  CtrlKey                            like(n1_char2_t)
     D  DmeInd                             like(n1_char1_t)
     D  EqualTax                           like(n1_char1_t)
     D  Iban                               like(n1_char34_t)
     D  InstrKey                           like(n1_char2_t)
     D  LanguIso                           like(n1_char2_t)
     D  Name                               like(n1_char35_t)
     D  Name2                              like(n1_char35_t)
     D  Name3                              like(n1_char35_t)
     D  Name4                              like(n1_char35_t)
     D  PobkCurac                          like(n1_char16_t)
     D  PobxPcd                            like(n1_char10_t)
     D  PostlCode                          like(n1_char10_t)
     D  PoBox                              like(n1_char10_t)
     D  Region                             like(n1_char3_t)
     D  Street                             like(n1_char35_t)
     D  SwiftCode                          like(n1_char11_t)
     D  Tax                                like(n1_char1_t)
     D  TaxNo1                             like(n1_char16_t)
     D  TaxNo2                             like(n1_char11_t)
      *
      *
     D tns_RpgArrayOfItem_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  x                            10I 0
     D  Bapiackec9                         likeds(tns_Bapiackec9_t)
     D                                     dim(DIM_A1)
      *
      *
     D tns_TableOfBapiacap09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacar09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiaccait_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiaccr09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacextc_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacgl09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiackec9_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiackev9_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacpc09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacre09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiactx09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiacwt09_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiparex_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_TableOfBapiret2_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  item                               likeds(tns_RpgArrayOfItem_t)
      *
      *
     D tns_ZbapiAccDocumentPost_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  Accountgl                          likeds(tns_TableOfBapiacgl09_t)
     D  Accountpayable...
     D                                     likeds(tns_TableOfBapiacap09_t)
     D  Accountreceivable...
     D                                     likeds(tns_TableOfBapiacar09_t)
     D  Accounttax                         likeds(tns_TableOfBapiactx09_t)
     D  Accountwt                          likeds(tns_TableOfBapiacwt09_t)
     D  Contractheader...
     D                                     likeds(tns_Bapiaccahd_t)
     D  Contractitem                       likeds(tns_TableOfBapiaccait_t)
     D  Criteria                           likeds(tns_TableOfBapiackec9_t)
     D  Currencyamount...
     D                                     likeds(tns_TableOfBapiaccr09_t)
     D  Customercpd                        likeds(tns_Bapiacpa09_t)
     D  Documentheader...
     D                                     likeds(tns_Bapiache09_t)
     D  Extension1                         likeds(tns_TableOfBapiacextc_t)
     D  Extension2                         likeds(tns_TableOfBapiparex_t)
     D  Paymentcard                        likeds(tns_TableOfBapiacpc09_t)
     D  Realestate                         likeds(tns_TableOfBapiacre09_t)
     D  Return                             likeds(tns_TableOfBapiret2_t)
     D  Valuefield                         likeds(tns_TableOfBapiackev9_t)
      *
      *
     D tns_ZbapiAccDocumentPostResponse_t...
     D                 DS                  based(pDummy)
     D                                     qualified
     D  Accountgl                          likeds(tns_TableOfBapiacgl09_t)
     D  Accountpayable...
     D                                     likeds(tns_TableOfBapiacap09_t)
     D  Accountreceivable...
     D                                     likeds(tns_TableOfBapiacar09_t)
     D  Accounttax                         likeds(tns_TableOfBapiactx09_t)
     D  Accountwt                          likeds(tns_TableOfBapiacwt09_t)
     D  Contractitem                       likeds(tns_TableOfBapiaccait_t)
     D  Criteria                           likeds(tns_TableOfBapiackec9_t)
     D  Currencyamount...
     D                                     likeds(tns_TableOfBapiaccr09_t)
     D  Extension1                         likeds(tns_TableOfBapiacextc_t)
     D  Extension2                         likeds(tns_TableOfBapiparex_t)
     D  ObjKey                             like(n1_char20_t)
     D  ObjSys                             like(n1_char10_t)
     D  ObjType                            like(n1_char5_t)
     D  Paymentcard                        likeds(tns_TableOfBapiacpc09_t)
     D  Realestate                         likeds(tns_TableOfBapiacre09_t)
     D  Return                             likeds(tns_TableOfBapiret2_t)
     D  Valuefield                         likeds(tns_TableOfBapiackev9_t)
      /IF DEFINED(LOGGING_SERVICE)
      *
      *   Starts the Log4rpg logging service.
     D ZBAPI_ACC_DOCUMENT_POST_startLoggingService...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _startLoggingService+
     D                                     ')
     D  i_path                             const  like(LOG4RPG_path_t   )
     D                                            options(*nopass)
     D  i_waitMinutes                10I 0 const  options(*nopass)
     D  i_unit                       10A   const  options(*nopass)
      /ENDIF
      *
      *   Web service: Enables/disables the debug log of HTTP API
     D ZBAPI_ACC_DOCUMENT_POST_setHttpDebug...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setHttpDebug+
     D                                     ')
     D   i_status                      N   const
     D   i_fileName                 500A   const  varying  options(*nopass)
      *
      *   Web service: Sets the proxy server to use for the connection
     D ZBAPI_ACC_DOCUMENT_POST_setProxy...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setProxy+
     D                                     ')
     D  i_server                    256A   const
     D  i_port                       10I 0 const
      *
      *   Web service: Returns the endpoint of the Web service
     D ZBAPI_ACC_DOCUMENT_POST_getEndpoint...
     D                 PR         32767A          varying
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _getEndpoint+
     D                                     ')
      *
      *   Web service: Sets the endpoint of the Web service
     D ZBAPI_ACC_DOCUMENT_POST_setEndpoint...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setEndpoint+
     D                                     ')
     D  i_url                     32767A   const varying  options(*varsize)
      *
      *   Web service: Returns the host name of the Web Service endpoint
     D ZBAPI_ACC_DOCUMENT_POST_getHost...
     D                 PR         32767A          varying
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _getHost+
     D                                     ')
      *
      *   Web service: Sets the host name of the Web service endpoint
     D ZBAPI_ACC_DOCUMENT_POST_setHost...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setHost+
     D                                     ')
     D  i_url                     32767A   const varying  options(*varsize)
      *
      *   Web service: Returns the port of the Web Service endpoint
     D ZBAPI_ACC_DOCUMENT_POST_getPort...
     D                 PR            10I 0
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _getPort+
     D                                     ')
      *
      *   Web service: Sets the port of the Web service endpoint
     D ZBAPI_ACC_DOCUMENT_POST_setPort...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setPort+
     D                                     ')
     D  i_port                       10I 0 const
      *
      *   Registers an user callback procedure, that is called whenever
      *   a web service requires user authentification.
     D ZBAPI_ACC_DOCUMENT_POST_registerLoginCallback...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _registerLoginCallback+
     D                                     ')
     D  i_pLoginProc                   *   value  procptr
      *
      *   Http: Returns cTrue in case of an error, else cFalse.
     D ZBAPI_ACC_DOCUMENT_POST_isError...
     D                 PR              N
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _isError+
     D                                     ')
      *
      *   Http: Returns the last HTTP error (code) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_HttpError_getCode...
     D                 PR                  like(wsdl_http_ErrorNo_t  )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _HttpError_getCode+
     D                                     ')
      *
      *   Http: Returns the last HTTP error (text) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_HttpError_getText...
     D                 PR                  like(wsdl_http_ErrorText_t)
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _HttpError_getText+
     D                                     ')
      *
      *   Soap: Returns the last SOAP error (code) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode...
     D                 PR                  like(wsdl_soap_faultcode_t  )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _SoapError_getCode+
     D                                     ')
      *
      *   Soap: Returns the last SOAP error (text) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_SoapError_getText...
     D                 PR                  like(wsdl_soap_faultstring_t)
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _SoapError_getText+
     D                                     ')
      *
      *   Soap: Returns the last XML error (code) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode...
     D                 PR                  like(wsdl_xml_errorNo_t    )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _XmlError_getCode+
     D                                     ')
      *
      *   Soap: Returns the last XML error (text) that occurred.
     D ZBAPI_ACC_DOCUMENT_POST_XmlError_getText...
     D                 PR                  like(wsdl_xml_ErrorText_t  )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _XmlError_getText+
     D                                     ')
      *
      *   Returns the file name of the attachment that is associated to
      *   a given content ID.
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_get...
     D                 PR                  like(wsdl_path_t     )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _Attachments_get+
     D                                     ')
     D  i_attachmentID...
     D                                     const  like(wsdl_attachmentID_t )
      *
      *   Returns the file name of the attachment that is associated to
      *   a given index.
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_getAtPos...
     D                 PR                  likeds(wsdl_attachment_t )
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _Attachments_getAtPos+
     D                                     ')
     D  i_index                      10I 0 const
      *
      *   Returns the number of attachments that were downloaded with the
      *   last call to the web service.
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_getNumE...
     D                 PR            10I 0
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _Attachments_getNumE+
     D                                     ')
      *
      *   Removes all attachments from the list of attachments of this web service.
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_removeAll...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _Attachments_removeAll+
     D                                     ')
      *
      *   Enables/disables a workaround for Web services that are driven
      *   by Axis and that are affected by the AXIS-2095 bug.
     D ZBAPI_ACC_DOCUMENT_POST_enableAxis2095...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _enableAxis2095+
     D                                     ')
     D  i_isEnabled                    N   const
      *
      *   User callback to supply login information
      *   Returns WSDL_SUCCESS if successful, WSDL_ERROR upon error.
      *
      *   Parameter description:
      *     i_authType         Authentication type:
      *                          WSDL_AUTH_TYPE_HTTP  - HTTP server.
      *                          WSDL_AUTH_TYPE_PROXY - Proxy server.
      *     i_realm            Authentication realm.
      *     i_numAttempts      Number of login attempts.
      *     o_user             UserName to use.
      *     o_password         Password to use.
      *
     D ZBAPI_ACC_DOCUMENT_POST_supplyLoginData...
     D                 PR            10I 0
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _supplyLoginData+
     D                                     ')
     D  i_authType                   14A          const  varying
     D  i_realm                     126A          const  varying
     D  i_numAttempts                10I 0        const
     D  o_user                       50A                 varying
     D  o_password                   50A                 varying
      *
      *   Specifies the name of the folder where to put attachments in.
     D ZBAPI_ACC_DOCUMENT_POST_setAttachmentFolder...
     D                 PR
     D                                     extproc('+
     D                                     ZBAPI_ACC_DOCUMENT_POST+
     D                                     _setAttachmentFolder+
     D                                     ')
     D  i_folder                   1024A   const  varying options(*varsize)
      *
 CPY  /COPY QWSDL2RPG,TYPES_H
      *
      /IF DEFINED(PROTOTYPE_SAP0004)
      /EOF
      /ENDIF
      * ---------------------------------------------------------------------
      *
 CPY  /COPY QBASICS1,PBASICS1                      Tools/400 Runtime Library
 CPY  /COPY QMIME,PMIME                            Tools/400 MIME Parser
 CPY  /COPY QMIME,HTTPMIME_H                       Tools/400 MIME Parser to HTTP API adapter
 CPY  /COPY QRPGLESRC,HTTPAPI_H                    HTTP-API Service Program
 CPY  /COPY QWSDL2RPG,PWSDL2R70                    WSDL2RPG: HTTP API Header Extensions
 CPY  /COPY QWSDL2RPG,PWSDL2R71                    WSDL2RPG: HTTP Debug Log
 CPY  /COPY QWSDL2RPG,PWSDL2R86                    WSDL2RPG: Stream
 CPY  /COPY QWSDL2RPG,PWSDL2R87                    WSDL2RPG: ManagedMemoryDataSource
 CPY  /COPY QWSDL2RPG,PWSDL2R89                    WSDL2RPG: List of attachments
 CPY  /COPY QWSDL2RPG,PWSDL2R90                    WSDL2RPG: AppMsg
 CPY  /COPY QWSDL2RPG,PWSDL2R94                    WSDL2RPG: MultiRef
 CPY  /COPY QWSDL2RPG,PWSDL2R97                    WSDL2RPG: eXpat Adapter
 CPY  /COPY QWSDL2RPG,PWSDL2R98                    WSDL2RPG: UnMarshaller/Marshaller
 CPY  /COPY QWSDL2RPG,PWSDL2R42                    WSDL2RPG: User name and password
      *
      /IF DEFINED(LOGGING_SERVICE)
 CPY  /COPY QWSDL2RPG,PLOG4RPG                     Log4rpg: The Log4rpg service program
 CPY  /COPY QWSDL2RPG,PLOG4RPG00                   Log4rpg: The Log4rpg stub module
      /ENDIF
      *
      * ------------------------------------
      *  Internal prototypes
      * ------------------------------------
      *
      *   Reopens a given input stream in order to send it over
      *   the wire again.
     D reOpenInputStream...
     D                 PR                         like(wsdl_hStream_t    )
     D                                     extproc('+
     D                                     reOpenInputStream+
     D                                     ')
     D  i_hDataSource                      const  like(wsdl_hDataSource_t)
     D  i_hInpStream                       value  like(wsdl_hStream_t    )
      *
      *   Login in to proxy server or http server.
     D login...
     D                 PR            10I 0
     D                                     extproc('+
     D                                     login+
     D                                     ')
     D  i_http_err                   10I 0 value
     D  i_numAttempts                10I 0 value
      *
      *   Sets the content type and the SOAP action of the POST message.
     D HTTP_setContentTypeAndSOAPAction...
     D                 PR
     D                                     extproc('+
     D                                     HTTP_setContentTypeAndSOAPAction+
     D                                     ')
     D  o_addlHdrs                 1024A          varying
     D  i_pUserData                    *   value
      *
     D tns_ZbapiAccDocumentPostResponseStart...
     D                 PR
     D                                     extproc('tns_ZbapiAccDocumentPostRes+
     D                                     ponseStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ZbapiAccDocumentPostResponseEnd...
     D                 PR
     D                                     extproc('tns_ZbapiAccDocumentPostRes+
     D                                     ponseEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountglStart...
     D                 PR
     D                                     extproc('tns_AccountglStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountglEnd...
     D                 PR
     D                                     extproc('tns_AccountglEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Accountgl...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Accountgl')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Accountgl...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ac+
     D                                     countgl')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountpayableStart...
     D                 PR
     D                                     extproc('tns_AccountpayableStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountpayableEnd...
     D                 PR
     D                                     extproc('tns_AccountpayableEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Accountpayable...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Accountpayable')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Accountpayable...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ac+
     D                                     countpayable')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountreceivableStart...
     D                 PR
     D                                     extproc('tns_AccountreceivableStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountreceivableEnd...
     D                 PR
     D                                     extproc('tns_AccountreceivableEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Accountreceivable...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Accountreceivable')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Accountreceivable...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ac+
     D                                     countreceivable')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccounttaxStart...
     D                 PR
     D                                     extproc('tns_AccounttaxStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccounttaxEnd...
     D                 PR
     D                                     extproc('tns_AccounttaxEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Accounttax...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Accounttax')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Accounttax...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ac+
     D                                     counttax')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountwtStart...
     D                 PR
     D                                     extproc('tns_AccountwtStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_AccountwtEnd...
     D                 PR
     D                                     extproc('tns_AccountwtEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Accountwt...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Accountwt')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Accountwt...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ac+
     D                                     countwt')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ContractitemStart...
     D                 PR
     D                                     extproc('tns_ContractitemStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ContractitemEnd...
     D                 PR
     D                                     extproc('tns_ContractitemEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Contractitem...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Contractitem')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Contractitem...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Co+
     D                                     ntractitem')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_CriteriaStart...
     D                 PR
     D                                     extproc('tns_CriteriaStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_CriteriaEnd...
     D                 PR
     D                                     extproc('tns_CriteriaEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Criteria...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Criteria')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Criteria...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Cr+
     D                                     iteria')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_CurrencyamountStart...
     D                 PR
     D                                     extproc('tns_CurrencyamountStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_CurrencyamountEnd...
     D                 PR
     D                                     extproc('tns_CurrencyamountEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Currencyamount...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Currencyamount')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Currencyamount...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Cu+
     D                                     rrencyamount')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Extension1Start...
     D                 PR
     D                                     extproc('tns_Extension1Start')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Extension1End...
     D                 PR
     D                                     extproc('tns_Extension1End')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Extension1...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Extension1')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Extension1...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ex+
     D                                     tension1')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Extension2Start...
     D                 PR
     D                                     extproc('tns_Extension2Start')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Extension2End...
     D                 PR
     D                                     extproc('tns_Extension2End')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Extension2...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Extension2')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Extension2...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Ex+
     D                                     tension2')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_PaymentcardStart...
     D                 PR
     D                                     extproc('tns_PaymentcardStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_PaymentcardEnd...
     D                 PR
     D                                     extproc('tns_PaymentcardEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Paymentcard...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Paymentcard')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Paymentcard...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Pa+
     D                                     ymentcard')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_RealestateStart...
     D                 PR
     D                                     extproc('tns_RealestateStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_RealestateEnd...
     D                 PR
     D                                     extproc('tns_RealestateEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Realestate...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Realestate')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Realestate...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Re+
     D                                     alestate')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ReturnStart...
     D                 PR
     D                                     extproc('tns_ReturnStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ReturnEnd   PR
     D                                     extproc('tns_ReturnEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Return...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Return')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Return...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Re+
     D                                     turn')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ValuefieldStart...
     D                 PR
     D                                     extproc('tns_ValuefieldStart')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_ValuefieldEnd...
     D                 PR
     D                                     extproc('tns_ValuefieldEnd')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9Start_of_tns_Valuefield...
     D                 PR
     D                                     extproc('tns_Bapiackec9Start_of_tns_+
     D                                     Valuefield')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
     D tns_Bapiackec9End_of_tns_Valuefield...
     D                 PR
     D                                     extproc('tns_Bapiackec9End_of_tns_Va+
     D                                     luefield')
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *   Receice response of HTTP post operation.
     D HTTP_receiveResponse...
     D                 PR            10I 0 extproc('+
     D                                     HTTP_receiveResponse+
     D                                     ')
     D  i_hStream                    10I 0 value
     D  i_data                         *   value
     D  i_length                     10I 0 value
      *
      *   SOAP message: Envelope
     D SOAPMessage_Envelope...
     D                 PR                  extproc('+
     D                                     SOAPMessage_Envelope+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: fault information
     D SOAPMessage_FaultStart...
     D                 PR                  extproc('+
     D                                     SOAPMessage_FaultStart+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: fault information
     D SOAPMessage_FaultEnd...
     D                 PR                  extproc('+
     D                                     SOAPMessage_FaultEnd+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: fault details
     D SOAPMessage_FaultDetailStart...
     D                 PR                  extproc('+
     D                                     SOAPMessage_FaultDetailStart+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: fault details
     D SOAPMessage_FaultDetailEnd...
     D                 PR                  extproc('+
     D                                     SOAPMessage_FaultDetailEnd+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: NULL callback procedure
     D SOAPMessage_unexpectedElementStart...
     D                 PR
     D                                     extproc('+
     D                                     SOAPMessage_unexpectedElementStart+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
      *   SOAP message: NULL callback procedure
     D SOAPMessage_unexpectedElementEnd...
     D                 PR
     D                                     extproc('+
     D                                     SOAPMessage_unexpectedElementEnd+
     D                                     ')
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
     D ignoreUnexpectedSoapHeader...
     D                 PR              N
     D                                     extproc('+
     D                                     ignoreUnexpectedSoapHeader+
     D                                     ')
      *
      * ------------------------------------
      *  Global fields & constants
      * ------------------------------------
      *
      *   Web service port name
     D cWEB_SERVICE_PORT...
     D                 C                   'ZBAPI_ACC_DOCUMENT_POST'
      *
      *   UUID of the web service as generated by WSDL2RPG
     D cSERVICE_UUID   C                   '3E79C00167EE194A87920004AC121096'
      *
      *   SOAP response header
      *
      *   Reference to the 'respSoapHeader' field.
     D g_pRespSoapHeader...
     D                 S               *   inz
      *
      *   XMLSAXParser handle
     D g_hSAXParser    S                   like(xmlSaxParser_handle_t) inz
      *
      *   MIME parser
     D g_hMIMEParser   S                   like(mime_hMime_t ) inz
      *
      *   MIME message indicator
     D g_isMimeMessage...
     D                 S               N   inz(cFalse)
      *
      *   Content ID of the SOAP message part
     D g_SOAPMessageID...
     D                 S            512A   varying inz
      *
      *   Indicator "parse SOAP message"
     D g_doParseSOAPMessage...
     D                 S               N   inz(cFalse)
      *
      *   Indicator "SOAP message parsed"
     D g_SOAPMessage_done...
     D                 S               N   inz(cFalse)
      *
      *   Body part counter
     D g_BodyPart_counter...
     D                 S             10I 0 inz
      *
      *   Default and current attachment folder
     D cATTACHMENT_FOLDER...
     D                 C                   '/tmp/attachments/'
      *
     D g_attachmentFolder...
     D                 S           1024A   varying inz(cATTACHMENT_FOLDER)
      *
      *   HTTP response "initialized" indicator
     D g_HTTP_isInit...
     D                 S               N   inz(cFalse)
      *
      *   POST data CCSID (1208 = UTF-8)
     D g_post_ccsid...
     D                 S             10I 0 inz(1208)
      *
      *   HTTP debug log settings
     D g_httpDebug     DS                  qualified
     D  status                         N   inz
     D  fileName                    500A   inz varying
      *
      *   Proxy server to use
     D g_proxy         DS                  qualified
     D  server                      256A   inz
     D  port                         10I 0 inz
      *
      *   Web service endpoint
     D g_url           S          32767A   varying inz(cURL)
      *
      *   Switch for AXIS bug AXIS-2095
     D g_isAXIS_2095   S               N   inz(cFalse)
      *
      *   Error information
     D g_errors        DS                  likeds(wsdl_errors_t    ) inz
      *
      *   User callback to supply login information
      *   Returns WSDL_SUCCESS if successful, WSDL_ERROR upon error.
     D g_getLoginData  S               *   procptr inz
      *
    R *getLoginData...
    R *                PR            10I 0
    R *                                    extproc(g_getLoginData)
    R * i_authType                   14A          const  varying
    R * i_realm                     126A          const  varying
    R * i_numAttempts                10I 0        const
    R * o_user                       50A                 varying
    R * o_password                   50A                 varying
      *
      *   Web service endpoint as specified in the WSDL file.
     D cURL            C                   'http://10.1.144.36:8000/sap/b+
     D                                     c/srt/rfc/sap/zbapi_acc_document_pos+
     D                                     t/400/zbapi_acc_document_post/zbapi_+
     D                                     acc_document_post'
      *
      * -------------------------------------------
      *  TODO: Added to implement default
      *        attachment handling.
      * -------------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)
 CPY  /COPY QWSDL2RPG,CLIB                         C Runtime Library
      *
      *  User data scoped to the current part
     D partUserData_t...
     D                 DS                  qualified               based(pDummy)
     D  FD                           10i 0
      *
      /ENDIF
      * =====================================================================
      * Operation: tns:ZbapiAccDocumentPost
      * Returns  : tns_ZbapiAccDocumentPostResponse
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost...
     P                 B                   export
     D ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost...
     D                 PI                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D  i_tns_ZbapiAccDocumentPost...
     D                                     likeds(tns_ZbapiAccDocumentPost_t)
     D                                     const
     D  o_msg                       128A   varying
      *
      *  Return value
     D rtnValue        DS                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     inz
      *
      *  Local fields
     D isUnexpectedError...
     D                 S               N   inz(cFalse)
     D isRedirect      S               N   inz(cFalse)
     D request         S          65535A   varying inz
     D url             S                   like(g_url) inz
     D rc              S             10I 0 inz
     D rcvm0200        DS                  likeds(rcvm0200_t ) inz
     D msg             DS                  likeds(msg_t      ) inz
     D headers         DS                  likeds(headers_t  ) inz
      *
     D hDataSource     S                   like(wsdl_hDataSource_t   ) inz
     D hOutStream      S                   like(wsdl_hStream_t       ) inz
     D hSAXParser      S                   like(xmlSaxParser_handle_t) inz
     D hMIMEParser     S                   like(mime_hMime_t         ) inz
     D hInpStream      S                   like(wsdl_hStream_t       ) inz
     D contentType     S                   like(wsdl_contentType_t   ) inz
      *
      *  Login helper fields
     D err             S             10I 0 inz
     D lastErr         S             10I 0 inz(-1)
     D numAttempts     S             10I 0 inz
      *
      *  Array iterator fields
     D X_A1            S             10I 0 inz
      *
     D curBapiackec9_A1...
     D                 DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      *
     D userData        DS                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         o_msg = '';

         monitor;

            // Initialize map to manage <multiRef> elements
            MultiRef_new();

            // Remove all attachments of this service from the list of attachments
            Attachments_removeAll(Attachments_theInstance(): cSERVICE_UUID);

            // Enable/disable HTTP debug log
 B01        if (g_httpDebug.status = *ON);
 B02           if (g_httpDebug.fileName <> '');
                  http_debug(*ON: g_httpDebug.fileName);
 X02           else;
                  http_debug(*ON);
 E02           endif;
 X01        else;
               http_debug(*OFF);
 E01        endif;

            // Set proxy server to use
 B01        if (g_proxy.server <> '');
               http_setproxy(g_proxy.server: g_proxy.port);
 X01        else;
               http_setproxy('': 0);
 E01        endif;

            // Set CCSID for POST data according
            // to the encoding of the SOAP envelope
            HTTP_SetCCSIDs(g_post_ccsid: HTTP_EBCDIC);

            // Create and open data source to store the request message
            hDataSource = ManagedMemoryDataSource_new();

            contentType = 'text/xml';
            hOutStream = ManagedMemoryDataSource_OutputStream_open(
                               hDataSource: contentType: g_post_ccsid);

            // Produce SOAP request message
            request =
               '<?xml version="1.0" encoding="UTF-8"?>'                     +
               '<soapenv:Envelope'                                          +
               ' xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";' +
            ' xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style+
            "' +
               '>'                                                          +
               '<soapenv:Body>'                                             +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         request = request +
         '<tns:ZbapiAccDocumentPost>' +
         '<Accountgl>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Accountgl.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Accountgl.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Accountgl>' +
         '<Accountpayable>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Accountpayable.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Accountpayable.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Accountpayable>' +
         '<Accountreceivable>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Accountreceivable.it...
                         em.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Accountreceivable.item.Bapiackec9(
               X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Accountreceivable>' +
         '<Accounttax>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Accounttax.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Accounttax.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Accounttax>' +
         '<Accountwt>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Accountwt.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Accountwt.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Accountwt>' +
         '<Contractheader>' +
         '<DocNo>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Contractheader.DocNo
            ) +
         '</DocNo>' +
         '<DocTypeCa>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Contractheader.DocTypeCa
            ) +
         '</DocTypeCa>' +
         '<ResKey>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Contractheader.ResKey
            ) +
         '</ResKey>' +
         '<Fikey>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Contractheader.Fikey
            ) +
         '</Fikey>' +
         '<PaymentFormRef>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Contractheader.PaymentFormRef
            ) +
         '</PaymentFormRef>' +
         '</Contractheader>' +
         '<Contractitem>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Contractitem.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Contractitem.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Contractitem>' +
         '<Criteria>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Criteria.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Criteria.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Criteria>' +
         '<Currencyamount>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Currencyamount.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Currencyamount.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Currencyamount>' +
         '<Customercpd>' +
         '<Name>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Name
            ) +
         '</Name>' +
         '<Name2>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Name2
            ) +
         '</Name2>' +
         '<Name3>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Name3
            ) +
         '</Name3>' +
         '<Name4>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Name4
            ) +
         '</Name4>' +
         '<PostlCode>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.PostlCode
            ) +
         '</PostlCode>' +
         '<City>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.City
            ) +
         '</City>' +
         '<Country>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Country
            ) +
         '</Country>' +
         '<CountryIso>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.CountryIso
            ) +
         '</CountryIso>' +
         '<Street>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Street
            ) +
         '</Street>' +
         '<PoBox>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.PoBox
            ) +
         '</PoBox>' +
         '<PobxPcd>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.PobxPcd
            ) +
         '</PobxPcd>' +
         '<PobkCurac>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.PobkCurac
            ) +
         '</PobkCurac>' +
         '<BankAcct>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.BankAcct
            ) +
         '</BankAcct>' +
         '<BankNo>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.BankNo
            ) +
         '</BankNo>' +
         '<BankCtry>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.BankCtry
            ) +
         '</BankCtry>' +
         '<BankCtryIso>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.BankCtryIso
            ) +
         '</BankCtryIso>' +
         '<TaxNo1>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.TaxNo1
            ) +
         '</TaxNo1>' +
         '<TaxNo2>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.TaxNo2
            ) +
         '</TaxNo2>' +
         '<Tax>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Tax
            ) +
         '</Tax>' +
         '<EqualTax>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.EqualTax
            ) +
         '</EqualTax>' +
         '<Region>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Region
            ) +
         '</Region>' +
         '<CtrlKey>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.CtrlKey
            ) +
         '</CtrlKey>' +
         '<InstrKey>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.InstrKey
            ) +
         '</InstrKey>' +
         '<DmeInd>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.DmeInd
            ) +
         '</DmeInd>' +
         '<LanguIso>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.LanguIso
            ) +
         '</LanguIso>' +
         '<Iban>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.Iban
            ) +
         '</Iban>' +
         '<SwiftCode>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Customercpd.SwiftCode
            ) +
         '</SwiftCode>' +
         '</Customercpd>' +
         '<Documentheader>' +
         '<ObjType>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ObjType
            ) +
         '</ObjType>' +
         '<ObjKey>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ObjKey
            ) +
         '</ObjKey>' +
         '<ObjSys>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ObjSys
            ) +
         '</ObjSys>' +
         '<BusAct>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.BusAct
            ) +
         '</BusAct>' +
         '<Username>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.Username
            ) +
         '</Username>' +
         '<HeaderTxt>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.HeaderTxt
            ) +
         '</HeaderTxt>' +
         '<CompCode>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.CompCode
            ) +
         '</CompCode>' +
         '<DocDate>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.DocDate
            ) +
         '</DocDate>' +
         '<PstngDate>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.PstngDate
            ) +
         '</PstngDate>' +
         '<TransDate>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.TransDate
            ) +
         '</TransDate>' +
         '<FiscYear>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.FiscYear
            ) +
         '</FiscYear>' +
         '<FisPeriod>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.FisPeriod
            ) +
         '</FisPeriod>' +
         '<DocType>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.DocType
            ) +
         '</DocType>' +
         '<RefDocNo>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.RefDocNo
            ) +
         '</RefDocNo>' +
         '<AcDocNo>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.AcDocNo
            ) +
         '</AcDocNo>' +
         '<ObjKeyR>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ObjKeyR
            ) +
         '</ObjKeyR>' +
         '<ReasonRev>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ReasonRev
            ) +
         '</ReasonRev>' +
         '<CompoAcc>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.CompoAcc
            ) +
         '</CompoAcc>' +
         '<RefDocNoLong>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.RefDocNoLong
            ) +
         '</RefDocNoLong>' +
         '<AccPrinciple>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.AccPrinciple
            ) +
         '</AccPrinciple>' +
         '<NegPostng>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.NegPostng
            ) +
         '</NegPostng>' +
         '<ObjKeyInv>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.ObjKeyInv
            ) +
         '</ObjKeyInv>' +
         '<BillCategory>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.BillCategory
            ) +
         '</BillCategory>' +
         '<Vatdate>' +
         Marshaller_toString(
            i_tns_ZbapiAccDocumentPost.Documentheader.Vatdate
            ) +
         '</Vatdate>' +
         '</Documentheader>' +
         '<Extension1>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Extension1.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Extension1.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Extension1>' +
         '<Extension2>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Extension2.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Extension2.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Extension2>' +
         '<Paymentcard>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Paymentcard.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Paymentcard.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Paymentcard>' +
         '<Realestate>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Realestate.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Realestate.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Realestate>' +
         '<Return>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Return.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Return.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Return>' +
         '<Valuefield>' +
            '';

         if (%len(request) > 0);
            // Add previous bytes of request message to output stream
            ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(requ...
            est) + 2: %len(request));
            clear request;
         endif;

         for X_A1 = 1 to i_tns_ZbapiAccDocumentPost.Valuefield.item.x;
            curBapiackec9_A1 =
               i_tns_ZbapiAccDocumentPost.Valuefield.item.Bapiackec9(X_A1);

            request = request +
            '<item>' +
            '<ItemnoAcc>' +
            Marshaller_toString(
               curBapiackec9_A1.ItemnoAcc
               ) +
            '</ItemnoAcc>' +
            '<Fieldname>' +
            Marshaller_toString(
               curBapiackec9_A1.Fieldname
               ) +
            '</Fieldname>' +
            '<Character>' +
            Marshaller_toString(
               curBapiackec9_A1.Character
               ) +
            '</Character>' +
            '</item>' +
               '';

            if (%len(request) > 0);
               // Add previous bytes of request message to output stream
               ManagedMemoryDataSource_OutputStream_write(hOutStream: %addr(
               request) + 2: %len(request));
               clear request;
            endif;
         endfor;

         request = request +
         '</Valuefield>' +
         '</tns:ZbapiAccDocumentPost>' +
               '</soapenv:Body>'                                            +
               '</soapenv:Envelope>';

            // Add remaining bytes of request message to output stream
 B01        if (%len(request) > 0);
               ManagedMemoryDataSource_OutputStream_write(
                     hOutStream: %addr(request) + 2: %len(request));
 E01        endif;

            // Close output stream and finish the request message
            ManagedMemoryDataSource_OutputStream_close(hOutStream);

            // Open input stream
            hInpStream = ManagedMemoryDataSource_InputStream_open(hDataSource);

            // Clear error code
            clear g_errors;
            g_errors.errType = WSDL_HTTP_SUCCESS;

            // HTTPAPI: Enables additional headers
            http_xproc(HTTP_POINT_ADDL_HEADER
                       : %paddr('HTTP_setContentTypeAndSOAPAction')
                       : %addr(headers));

            headers.contentType =
                  ManagedMemoryDataSource_getContentType(hDataSource);
            headers.soapAction  = ' ';

            // ---------------------------------------
            //   Post request and parse response
            // ---------------------------------------

            // Create parser (callbacks style: HTTP API)
            XMLSAXParser_new(hSAXParser: cTrue);
            XMLSAXParser_setDoNamespaces(hSAXParser: cTrue);
            XMLSAXParser_registerCallback(hSAXParser
               : cXML_CB_SAX_STARTELEMENT
               : %paddr('SOAPMessage_Envelope'));
            XMLSAXParser_prepareParse(hSAXParser: %addr(userData));

            // Create MIME parser in case we need it
            hMIMEParser = MIMEParser_new();
            MIMEParser_setDecodeData(hMIMEParser: cTrue);
            http_mime_DataSink_initialize(hMIMEParser
                                          : *NULL
                                          : %paddr('HTTPDataSink_startPart')
                                          : %paddr('HTTPDataSink_bodyData')
                                          : %paddr('HTTPDataSink_endPart'));

            // Make parser available for HTTP_receiveResponse()
            g_hSAXParser    = hSAXParser;
            g_hMIMEParser   = hMIMEParser;
            g_isMimeMessage = cFalse;
            g_HTTP_isInit   = cFalse;
            g_SOAPMessageID = '';
            g_doParseSOAPMessage = cFalse;
            g_SOAPMessage_done   = cFalse;
            g_BodyPart_counter   = 0;

            // Make SOAP response header available to SOAPMessage_Envelope
            g_pRespSoapHeader = *NULL;

            // eXpat: Post request and parse response
            url = g_url;
 B01        dou (err <> HTTP_NDAUTH and err <> HTTP_PXNDAUTH);
               // Get document from server and handle http redirects
               //   301 Moved Permanently
               //   302 Found
               //   303 See Other
               //   307 Temporary Redirect
 B02           dou (not isRedirect);
                  rc = http_url_post_raw2(
                     url
                     : hInpStream
                     : %paddr(
                          'WSDL2R87_ManagedMemoryDataSource_InputStream_read')
                     : ManagedMemoryDataSource_getSize(hDataSource)
                     : 0
                     : %paddr('HTTP_receiveResponse')
                     : HTTP_TIMEOUT
                     : HTTP_USERAGENT
                     : '');
 B03              if (rc = 301 or rc = 302 or rc = 303 or rc = 307);
                     url = http_redir_loc();
                     // Reopen data stream
                     hInpStream = reOpenInputStream(hDataSource: hInpStream);
                     isRedirect = cTrue;
 X03              else;
                     isRedirect = cFalse;
 E03              endif;
 E02           enddo;

               // The first time we request a document that requires user/password
               // it will return a HTTP_NDAUTH error.
 B02           if (rc <> 1);
                  http_error(err);
 B03              if (err = HTTP_NDAUTH or err = HTTP_PXNDAUTH);
 B04                 if (g_getLoginData = *NULL);
                        leave;
 E04                 endif;

 B04                 if (err <> lastErr);
                        lastErr = err;
                        numAttempts = 0;
 E04                 endif;
                     numAttempts = numAttempts + 1;

 B04                 if (login(err: numAttempts) <> 1);
                        leave;
 E04                 endif;

                     // Reopen data stream
                     hInpStream = reOpenInputStream(hDataSource: hInpStream);
 E03              endif;
 X02           else;
                  MultiRef_finalize();
                  err = 0;
 E02           endif;
 E01        enddo;

            // Preserve parser error code and message text
 B01        if (err = HTTP_RDWERR);
               g_errors.xmlError.code = XMLToolkit_getError(
                                              hSAXParser
                                              : g_errors.xmlError.text
                                              : g_errors.xmlError.line
                                              : g_errors.xmlError.column);
 E01        endif;

            XMLSAXParser_endParse(hSAXParser);

 B01        if (g_isMimeMessage);
               MIMEParser_endParse(hMIMEParser);
               g_isMimeMessage = cFalse;
 E01        endif;

            g_HTTP_isInit = cFalse;

         on-error;
            isUnexpectedError = cTrue;
            rcvm0200 = f_rcvPgmMsg(cMsg_Any: *: cMsg_Act_Same: 0
                                   : cMsg_Same: cMsg_ToMyself);
            http_DebugLog_appendRcvMsg(rcvm0200);
            msg = f_cvtRcvMsgToMsg(rcvm0200);
            g_errors.errType        = WSDL_HTTP_ERROR_UNEXPECTED;
            g_errors.httpError.no   = WSDL_HTTP_ERROR_UNEXPECTED;
            g_errors.httpError.text = f_rtvMsgText(msg);
            rc    = g_errors.httpError.no;
            o_msg = g_errors.httpError.text;
         endmon;

         g_hSAXParser  = *NULL;
         g_hMIMEParser = *NULL;

 B01     if (not isUnexpectedError);
 B02        if (err <> 0);
               g_errors.errType = WSDL_HTTP_ERROR;

               // Set http error code and message text
               g_errors.httpError.no   = err;
               g_errors.httpError.text = http_error();

               // Return error message text to caller
 B03           if (g_errors.httpError.text <> '');
                  o_msg = g_errors.httpError.text;
 X03           else;
                  o_msg = ZBAPI_ACC_DOCUMENT_POST_SoapError_getText();
 E03           endif;
               clear rtnValue;
            else;
               o_msg = '';
               rtnValue = userData;
            endif;
 E02     endif;

 B02     if (not XMLSAXParser_isNull(hSAXParser));
            XMLSAXParser_delete(hSAXParser);
 E02     endif;

 B02     if (not MIMEParser_isNull(hMIMEParser));
            MIMEParser_delete(hMIMEParser);
 E02     endif;

 B02     if (not ManagedMemoryDataSource_isNull(hDataSource));
 B03        if (ManagedMemoryDataSource_Stream_isOpen(hInpStream));
               ManagedMemoryDataSource_InputStream_close(hInpStream);
 E03        endif;
 B03        if (ManagedMemoryDataSource_Stream_isOpen(hOutStream));
               ManagedMemoryDataSource_OutputStream_close(hOutStream);
 E03        endif;
            ManagedMemoryDataSource_delete(hDataSource);
 E02     endif;

 B02     if (not MultiRef_isNull());
            MultiRef_delete();
 E02     endif;

 B02     if (http_DebugLog_isOpen());
            http_DebugLog_close();
 E02     endif;

         return rtnValue;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost...
     P                 E
      *
      *
      * ==================================================================
      * Return value: tns:ZbapiAccDocumentPostResponse
      * ==================================================================
     P tns_ZbapiAccDocumentPostResponseStart...
     P                 B
     D tns_ZbapiAccDocumentPostResponseStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'ZbapiAccDocumentPostResponse'
                and
                namespace = 'urn:sap-com:document:sap:soap:functions:mc-style');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Accountgl');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Accountgl)
               : %paddr('tns_AccountglStart')
               : %paddr('tns_AccountglEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Accountpayable');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Accountpayable)
               : %paddr('tns_AccountpayableStart')
               : %paddr('tns_AccountpayableEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Accountreceivable');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Accountreceivable)
               : %paddr('tns_AccountreceivableStart')
               : %paddr('tns_AccountreceivableEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Accounttax');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Accounttax)
               : %paddr('tns_AccounttaxStart')
               : %paddr('tns_AccounttaxEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Accountwt');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Accountwt)
               : %paddr('tns_AccountwtStart')
               : %paddr('tns_AccountwtEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Contractitem');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Contractitem)
               : %paddr('tns_ContractitemStart')
               : %paddr('tns_ContractitemEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Criteria');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Criteria)
               : %paddr('tns_CriteriaStart')
               : %paddr('tns_CriteriaEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Currencyamount');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Currencyamount)
               : %paddr('tns_CurrencyamountStart')
               : %paddr('tns_CurrencyamountEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Extension1');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Extension1)
               : %paddr('tns_Extension1Start')
               : %paddr('tns_Extension1End')
               );
            return;

         when (depth = 2
                and
                name = 'Extension2');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Extension2)
               : %paddr('tns_Extension2Start')
               : %paddr('tns_Extension2End')
               );
            return;

         when (depth = 2
                and
                name = 'ObjKey');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem.ObjKey)
                  : %size(currentItem.ObjKey)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ObjSys');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem.ObjSys)
                  : %size(currentItem.ObjSys)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ObjType');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem.ObjType)
                  : %size(currentItem.ObjType)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Paymentcard');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Paymentcard)
               : %paddr('tns_PaymentcardStart')
               : %paddr('tns_PaymentcardEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Realestate');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Realestate)
               : %paddr('tns_RealestateStart')
               : %paddr('tns_RealestateEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Return');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Return)
               : %paddr('tns_ReturnStart')
               : %paddr('tns_ReturnEnd')
               );
            return;

         when (depth = 2
                and
                name = 'Valuefield');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.Valuefield)
               : %paddr('tns_ValuefieldStart')
               : %paddr('tns_ValuefieldEnd')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_ZbapiAccDocumentPostResponseStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:ZbapiAccDocumentPostResponse
      * ==================================================================
     P tns_ZbapiAccDocumentPostResponseEnd...
     P                 B
     D tns_ZbapiAccDocumentPostResponseEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 2
                and
                name = 'ObjKey');
            if (not Value_isNil(attrs));
               currentItem.ObjKey = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'ObjSys');
            if (not Value_isNil(attrs));
               currentItem.ObjSys = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'ObjType');
            if (not Value_isNil(attrs));
               currentItem.ObjType = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_ZbapiAccDocumentPostResponseEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountgl
      * ==================================================================
     P tns_AccountglStart...
     P                 B
     D tns_AccountglStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacgl09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Accountgl');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Accountgl')
               : %paddr('tns_Bapiackec9End_of_tns_Accountgl')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_AccountglStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountgl
      * ==================================================================
     P tns_AccountglEnd...
     P                 B
     D tns_AccountglEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacgl09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_AccountglEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Accountgl...
     P                 B
     D tns_Bapiackec9Start_of_tns_Accountgl...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Accountgl...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Accountgl...
     P                 B
     D tns_Bapiackec9End_of_tns_Accountgl...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Accountgl...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountpayable
      * ==================================================================
     P tns_AccountpayableStart...
     P                 B
     D tns_AccountpayableStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacap09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Accountpayable');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Accountpayable')
               : %paddr('tns_Bapiackec9End_of_tns_Accountpayable')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_AccountpayableStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountpayable
      * ==================================================================
     P tns_AccountpayableEnd...
     P                 B
     D tns_AccountpayableEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacap09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_AccountpayableEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Accountpayable...
     P                 B
     D tns_Bapiackec9Start_of_tns_Accountpayable...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Accountpayable...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Accountpayable...
     P                 B
     D tns_Bapiackec9End_of_tns_Accountpayable...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Accountpayable...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountreceivable
      * ==================================================================
     P tns_AccountreceivableStart...
     P                 B
     D tns_AccountreceivableStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacar09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Accountreceivable');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Accountreceivable')
               : %paddr('tns_Bapiackec9End_of_tns_Accountreceivable')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_AccountreceivableStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountreceivable
      * ==================================================================
     P tns_AccountreceivableEnd...
     P                 B
     D tns_AccountreceivableEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacar09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_AccountreceivableEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Accountreceivable...
     P                 B
     D tns_Bapiackec9Start_of_tns_Accountreceivable...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Accountreceivable...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Accountreceivable...
     P                 B
     D tns_Bapiackec9End_of_tns_Accountreceivable...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Accountreceivable...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accounttax
      * ==================================================================
     P tns_AccounttaxStart...
     P                 B
     D tns_AccounttaxStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiactx09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Accounttax');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Accounttax')
               : %paddr('tns_Bapiackec9End_of_tns_Accounttax')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_AccounttaxStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accounttax
      * ==================================================================
     P tns_AccounttaxEnd...
     P                 B
     D tns_AccounttaxEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiactx09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_AccounttaxEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Accounttax...
     P                 B
     D tns_Bapiackec9Start_of_tns_Accounttax...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Accounttax...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Accounttax...
     P                 B
     D tns_Bapiackec9End_of_tns_Accounttax...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Accounttax...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountwt
      * ==================================================================
     P tns_AccountwtStart...
     P                 B
     D tns_AccountwtStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacwt09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Accountwt');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Accountwt')
               : %paddr('tns_Bapiackec9End_of_tns_Accountwt')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_AccountwtStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Accountwt
      * ==================================================================
     P tns_AccountwtEnd...
     P                 B
     D tns_AccountwtEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacwt09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_AccountwtEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Accountwt...
     P                 B
     D tns_Bapiackec9Start_of_tns_Accountwt...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Accountwt...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Accountwt...
     P                 B
     D tns_Bapiackec9End_of_tns_Accountwt...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Accountwt...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Contractitem
      * ==================================================================
     P tns_ContractitemStart...
     P                 B
     D tns_ContractitemStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiaccait_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Contractitem');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Contractitem')
               : %paddr('tns_Bapiackec9End_of_tns_Contractitem')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_ContractitemStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Contractitem
      * ==================================================================
     P tns_ContractitemEnd...
     P                 B
     D tns_ContractitemEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiaccait_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_ContractitemEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Contractitem...
     P                 B
     D tns_Bapiackec9Start_of_tns_Contractitem...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Contractitem...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Contractitem...
     P                 B
     D tns_Bapiackec9End_of_tns_Contractitem...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Contractitem...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Criteria
      * ==================================================================
     P tns_CriteriaStart...
     P                 B
     D tns_CriteriaStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Criteria');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Criteria')
               : %paddr('tns_Bapiackec9End_of_tns_Criteria')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_CriteriaStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Criteria
      * ==================================================================
     P tns_CriteriaEnd...
     P                 B
     D tns_CriteriaEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_CriteriaEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Criteria...
     P                 B
     D tns_Bapiackec9Start_of_tns_Criteria...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Criteria...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Criteria...
     P                 B
     D tns_Bapiackec9End_of_tns_Criteria...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Criteria...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Currencyamount
      * ==================================================================
     P tns_CurrencyamountStart...
     P                 B
     D tns_CurrencyamountStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiaccr09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Currencyamount');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Currencyamount')
               : %paddr('tns_Bapiackec9End_of_tns_Currencyamount')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_CurrencyamountStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Currencyamount
      * ==================================================================
     P tns_CurrencyamountEnd...
     P                 B
     D tns_CurrencyamountEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiaccr09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_CurrencyamountEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Currencyamount...
     P                 B
     D tns_Bapiackec9Start_of_tns_Currencyamount...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Currencyamount...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Currencyamount...
     P                 B
     D tns_Bapiackec9End_of_tns_Currencyamount...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Currencyamount...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Extension1
      * ==================================================================
     P tns_Extension1Start...
     P                 B
     D tns_Extension1Start...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacextc_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Extension1');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Extension1')
               : %paddr('tns_Bapiackec9End_of_tns_Extension1')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Extension1Start...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Extension1
      * ==================================================================
     P tns_Extension1End...
     P                 B
     D tns_Extension1End...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacextc_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_Extension1End...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Extension1...
     P                 B
     D tns_Bapiackec9Start_of_tns_Extension1...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Extension1...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Extension1...
     P                 B
     D tns_Bapiackec9End_of_tns_Extension1...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Extension1...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Extension2
      * ==================================================================
     P tns_Extension2Start...
     P                 B
     D tns_Extension2Start...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiparex_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Extension2');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Extension2')
               : %paddr('tns_Bapiackec9End_of_tns_Extension2')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Extension2Start...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Extension2
      * ==================================================================
     P tns_Extension2End...
     P                 B
     D tns_Extension2End...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiparex_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_Extension2End...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Extension2...
     P                 B
     D tns_Bapiackec9Start_of_tns_Extension2...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Extension2...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Extension2...
     P                 B
     D tns_Bapiackec9End_of_tns_Extension2...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Extension2...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Paymentcard
      * ==================================================================
     P tns_PaymentcardStart...
     P                 B
     D tns_PaymentcardStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacpc09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Paymentcard');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Paymentcard')
               : %paddr('tns_Bapiackec9End_of_tns_Paymentcard')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_PaymentcardStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Paymentcard
      * ==================================================================
     P tns_PaymentcardEnd...
     P                 B
     D tns_PaymentcardEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacpc09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_PaymentcardEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Paymentcard...
     P                 B
     D tns_Bapiackec9Start_of_tns_Paymentcard...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Paymentcard...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Paymentcard...
     P                 B
     D tns_Bapiackec9End_of_tns_Paymentcard...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Paymentcard...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Realestate
      * ==================================================================
     P tns_RealestateStart...
     P                 B
     D tns_RealestateStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacre09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Realestate');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Realestate')
               : %paddr('tns_Bapiackec9End_of_tns_Realestate')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_RealestateStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Realestate
      * ==================================================================
     P tns_RealestateEnd...
     P                 B
     D tns_RealestateEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiacre09_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_RealestateEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Realestate...
     P                 B
     D tns_Bapiackec9Start_of_tns_Realestate...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Realestate...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Realestate...
     P                 B
     D tns_Bapiackec9End_of_tns_Realestate...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Realestate...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Return
      * ==================================================================
     P tns_ReturnStart...
     P                 B
     D tns_ReturnStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiret2_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Return');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Return')
               : %paddr('tns_Bapiackec9End_of_tns_Return')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_ReturnStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Return
      * ==================================================================
     P tns_ReturnEnd   B
     D tns_ReturnEnd   PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiret2_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_ReturnEnd   E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Return...
     P                 B
     D tns_Bapiackec9Start_of_tns_Return...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Return...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Return...
     P                 B
     D tns_Bapiackec9End_of_tns_Return...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Return...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Valuefield
      * ==================================================================
     P tns_ValuefieldStart...
     P                 B
     D tns_ValuefieldStart...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiackev9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         when (depth = 1
                and
                name = 'Valuefield');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : *omit
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'item');
            XMLSAXParser_delegateElementProcessing(
               %addr(currentItem.item)
               : %paddr('tns_Bapiackec9Start_of_tns_Valuefield')
               : %paddr('tns_Bapiackec9End_of_tns_Valuefield')
               );
            return;

         endsl;

         return;

      /end-free
      *
     P tns_ValuefieldStart...
     P                 E
      *
      * ==================================================================
      * Return value: tns:Valuefield
      * ==================================================================
     P tns_ValuefieldEnd...
     P                 B
     D tns_ValuefieldEnd...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
      *
     D currentItem     DS                  likeds(tns_TableOfBapiackev9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current item
         pCurrentItem = userdata;

         select;
         endsl;

         return;

      /end-free
      *
     P tns_ValuefieldEnd...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9Start_of_tns_Valuefield...
     P                 B
     D tns_Bapiackec9Start_of_tns_Valuefield...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      *
     D emptyItem       DS                  likeds(tns_Bapiackec9_t)
     D                                     inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            if (depth = 1);
               tns_item.x = tns_item.x + 1;
            endif;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 1
                and
                name = 'item');
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem)
                  : %size(currentItem)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'ItemnoAcc');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.ItemnoAcc)
                  : %size(currentItem.ItemnoAcc)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Fieldname');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Fieldname)
                  : %size(currentItem.Fieldname)
                  );
            endif;
            return;

         when (depth = 2
                and
                name = 'Character');
            // Value is retrieved in corresponding END procedure
            if (MultiRef_isReference(attrs));
               MultiRef_put(
                  attrs
                  : XMLSAXParser_getUserData()
                  : depth
                  : namespace
                  : name
                  : path
                  : XMLSAXParser_getStartCallback()
                  : XMLSAXParser_getEndCallback()
                  : x
                  : %addr(currentItem.Character)
                  : %size(currentItem.Character)
                  );
            endif;
            return;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9Start_of_tns_Valuefield...
     P                 E
      *
      * ==================================================================
      * Return value: tns:item
      * ==================================================================
     P tns_Bapiackec9End_of_tns_Valuefield...
     P                 B
     D tns_Bapiackec9End_of_tns_Valuefield...
     D                 PI
     D  userdata                       *   value
     D  depth                        10I 0 value
     D  namespace                  1024A   varying const
     D  name                       1024A   varying const
     D  path                      24576A   varying const
     D  value                     65535A   varying const
     D  attrs                          *   dim(32767)
     D                                     const options(*varsize)
      *
     D x               S             10I 0 inz
      *
     D tns_item        DS                  likeds(tns_RpgArrayOfItem_t)
     D                                     based(userdata)
      *
     D currentItem     DS                  likeds(tns_Bapiackec9_t)
     D                                     based(pCurrentItem)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         // Get access to current array item
         if (MultiRef_doCaptureData() and MultiRef_hasItemIndex());
            x = MultiRef_getItemIndex();
         else;
            x = tns_item.x;
         endif;

         pCurrentItem = %addr(tns_item.Bapiackec9(x));

         select;
         when (depth = 2
                and
                name = 'ItemnoAcc');
            if (not Value_isNil(attrs));
               currentItem.ItemnoAcc = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Fieldname');
            if (not Value_isNil(attrs));
               currentItem.Fieldname = UnMarshaller_toString(value);
            endif;

         when (depth = 2
                and
                name = 'Character');
            if (not Value_isNil(attrs));
               currentItem.Character = UnMarshaller_toString(value);
            endif;

         endsl;

         return;

      /end-free
      *
     P tns_Bapiackec9End_of_tns_Valuefield...
     P                 E
      *
      * =====================================================================
      *   Reopens a given input stream in order to send it over
      *   the wire again.
      * =====================================================================
     P reOpenInputStream...
 ERR P                 B
      *
     D reOpenInputStream...
     D                 PI                         like(wsdl_hStream_t    )
     D  i_hDataSource                      const  like(wsdl_hDataSource_t)
     D  i_hInpStream                       value  like(wsdl_hStream_t    )
      *
      *  Return value
     D hInpStream      S                   like(wsdl_hStream_t       ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         ManagedMemoryDataSource_InputStream_close(i_hInpStream);
         hInpStream =
               ManagedMemoryDataSource_InputStream_open(i_hDataSource);

         return hInpStream;

      /end-free
      *
     P reOpenInputStream...
     P                 E
      *
      * =====================================================================
      *   Login in to proxy server or http server.
      * =====================================================================
     P login...
     P                 B
      *
     D login...
     D                 PI            10I 0
     D  i_http_err                   10I 0 value
     D  i_numAttempts                10I 0 value
      *
      *  Return value
     D rc              S             10I 0 inz
      *
      *  Helper fields
     D basic           S               N   inz
     D digest          S               N   inz
     D realm           S            124A   inz
     D authType        S             14A   inz varying
     D userid          S             50A   inz varying
     D password        S             50A   inz varying
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (i_http_err = HTTP_NDAUTH);
            http_getauth(basic: digest: realm);
            authType = WSDL_AUTH_TYPE_HTTP;
         else;
            http_proxy_getauth(basic: realm);
            authType = WSDL_AUTH_TYPE_PROXY;
         endif;

         rc = getLoginData(authType: realm
                           : i_numAttempts: userid: password);
         if (rc <> 1);
            userid = '';
            password = '';
            return rc;
         endif;

         if (i_http_err = HTTP_NDAUTH);
            if (digest);
               http_setAuth(HTTP_AUTH_MD5_DIGEST
                            : userid: password);
            else;
               http_setAuth(HTTP_AUTH_BASIC
                            : userid: password);
            endif;
         else;
            if (digest);
               http_proxy_setAuth(HTTP_AUTH_MD5_DIGEST
                                  : userid: password);
            else;
               http_proxy_setAuth(HTTP_AUTH_BASIC
                                  : userid: password);
            endif;
         endif;

         userid = '';
         password = '';

         return rc;

      /end-free
      *
     P login...
     P                 E
      *
      * =====================================================================
      *   Sets the content type and the SOAP action of the POST message.
      * =====================================================================
     P HTTP_setContentTypeAndSOAPAction...
     P                 B
      *
     D HTTP_setContentTypeAndSOAPAction...
     D                 PI
     D  o_addlHdrs                 1024A          varying
     D  i_pUserData                    *   value
      *
      *  User Data
     D headers         DS                  likeds(headers_t) based(i_pUserData)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         o_addlHdrs = cHTTP_HEADER_CONTENT_TYPE + ': ' +
                      headers.contentType + cEBCDIC_CRLF +
                      cHTTP_HEADER_SOAP_ACTION + ': ' +
                      headers.soapAction + cEBCDIC_CRLF;

      /end-free
      *
     P HTTP_setContentTypeAndSOAPAction...
     P                 E
      *
      * =====================================================================
      *   Receice response of HTTP post operation.
      * =====================================================================
     P HTTP_receiveResponse...
     P                 B
      *
     D HTTP_receiveResponse...
     D                 PI            10I 0
     D  i_hStream                    10I 0 value
     D  i_data                         *   value
     D  i_length                     10I 0 value
      *
     D contentType     S           1024A   inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (not g_HTTP_isInit);
            select;
            when (http_getContentType() = 'text');
               if (http_getContentSubType() = 'html');
                  if (f_exist('WSDL2RPG': '*LIBL': '*MSGF'));
                     clear USR0030;
                     USR00301 = cWEB_SERVICE_PORT;
                     AppMsg_sendCancelMsg(AppMsg_newError('USR0030': USR0030));
                  else;
                     AppMsg_sendCancelMsg(
                        f_newMsg('CPF9898'
                              : 'Unexpected HTML data received from web service'
                              : '*ESCAPE'
                              : 'QCPFMSG'));
                  endif;
               endif;
            when (http_getContentType() = 'multipart');
               contentType = %trim(http_header('content-type'));
               MIMEParser_beginParse(g_hMIMEParser);
               MIMEParser_setContentType(g_hMIMEParser: contentType);
               g_SOAPMessageID = http_getContentTypeAttr('start': cTrue);
               g_isMimeMessage = cTrue;
            endsl;
            g_HTTP_isInit = cTrue;
         endif;

         if (g_isMimeMessage);
            if (MIMEParser_parse(g_hMIMEParser: i_data: i_length) = cTrue);
               return i_length;
            else;
               return -1;
            endif;
         else;
            if (XMLSAXParser_parse(g_hSAXParser: i_data: i_length) = cTrue);
               return i_length;
            else;
               return -1;
               // return i_length;
            endif;
         endif;

      /end-free
      *
     P HTTP_receiveResponse...
     P                 E
      *
      * =====================================================================
      *   Starts a MIME body part.
      *   This procedure is called whenever a new part is started.
      * =====================================================================
      *   Parameters:
      *     i_pPart            Handle of the current part.
      *     i_pUserData        Pointer to user data as specified at
      *                        http_mime_DataSink_initialize().
      * =====================================================================
     P HTTPDataSink_startPart...
     P                 B
      *
     D HTTPDataSink_startPart...
     D                 PI
     D  i_pPart                        *   const
     D  i_pUserData                    *   const
      *
     D contentID       S            512A   varying inz
     D contentSubType  S             16A   varying inz
      *
      * -------------------------------------------
      *  TODO: Add fields to open
      *        the file and to store the
      *        file descriptor.
      * -------------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)
     D contentType     S             10I 0 inz
     D fileName        S           1024A   varying inz
     D fileExt         S             10A   varying inz
      *
     D partUserData    DS                  likeds(partUserData_t )
     D                                     based(pPartUserData)
      /ENDIF
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (http_mime_Part_getType(i_pPart) <> cMIME_BASICPART);
            return;
         endif;

         g_BodyPart_counter = g_BodyPart_counter + 1;

         contentID      = http_mime_Part_getContentID(i_pPart);
         contentSubType = http_mime_Part_getContentSubType(i_pPart);

         if (not g_SOAPMessage_done);
            if (g_SOAPMessageID <> '');
               if (contentSubType = 'xml' and contentID = g_SOAPMessageID);
                  g_doParseSOAPMessage = cTrue;
                  return;
               endif;
            else;
               if (g_BodyPart_counter = 1);
                  g_doParseSOAPMessage = cTrue;
                  return;
               endif;
            endif;
         endif;

         // -----------------------------------------
         // TODO:
         // Add your code to handle attachments here|
         // E.g.: Open output file.
         // -----------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)

         // Ignore all attachments that are not a BasicPart
         if (http_mime_Part_getType(i_pPart) <> cMIME_BASICPART);
            return;
         endif;

         fileName       = http_mime_Part_getFileName(i_pPart);
         contentID      = http_mime_Part_getContentID(i_pPart);
         contentType    = http_mime_Part_getContentType(i_pPart);
         contentSubType = http_mime_Part_getContentSubType(i_pPart);

         if (contentType = cMIME_TYPE_TEXT);
            fileExt = 'txt';
         else;
            fileExt = contentSubType;
         endif;

         fileName = g_attachmentFolder +
                    %char(%timestamp()) + '_' + contentID + '_' +
                    fileName  + '.' + fileExt;
         fileName = %xlate(':<>': '___': fileName);

         // Assign filename to content-ID and put it into the list of attachments
         Attachments_put(Attachments_theInstance()
                         : cSERVICE_UUID
                         : contentID
                         : fileName);

         // Produce the user data of that Part to
         // store the file descriptor of the open file.
         pPartUserData = %alloc(%size(partUserData_t));
         clear partUserData;

         partUserData.FD = open(fileName
                                : O_CREAT + O_EXCL +
                                  O_SHARE_RDONLY + O_WRONLY + O_CCSID
                                : S_IRWXU + S_IRWXG + S_IRWXO
                                : 819);   // CCSID does not matter because
                                          // we write binary data

         // Set user data of the current Part.
         http_mime_Part_setUserData(i_pPart: pPartUserData);
      /ENDIF

         return;

      /end-free
      *
     P HTTPDataSink_startPart...
     P                 E
      *
      * =====================================================================
      *   Receices MIME part body data.
      *   This procedure is called whenever new body data is available.
      * =====================================================================
      *   Parameters:
      *     i_pPart            Handle of the current part.
      *     i_pUserData        Pointer to user data as specified at
      *                        http_mime_DataSink_initialize().
      *     i_data             Pointer to decoded body data.
      *     i_size             Size of decoded body data.
      * =====================================================================
     P HTTPDataSink_bodyData...
     P                 B
      *
     D HTTPDataSink_bodyData...
     D                 PI
     D  i_pPart                        *   const
     D  i_pUserData                    *   const
     D  i_data                         *   const
     D  i_size                       10I 0 const
      *
      * -------------------------------------------
      *  TODO: Add fields to write
      *        the attachment to the file
      *        opened in HTTPDataSink_startPart().
      * -------------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)
     D rc              S             10I 0 inz
      *
     D partUserData    DS                  likeds(partUserData_t )
     D                                     based(pPartUserData)
      /ENDIF
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (g_doParseSOAPMessage);
            XMLSAXParser_parse(g_hSAXParser: i_data: i_size);
            return;
         endif;

         // -----------------------------------------
         // TODO:
         // Add your code to handle attachments here|
         // E.g.: Write received data to output file.
         // -----------------------------------------

      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)
         // Gain access to the user data of the current Part.
         pPartUserData = http_mime_Part_getUserData(i_pPart);
         if (pPartUserData = *NULL);
            return;
         endif;

         // Return to caller if no file is open.
         if (partUserData.FD <= 0);
            return;
         endif;

         // Append attachment data to the file.
         rc = write(partUserData.FD: i_data: i_size);
      /ENDIF

         return;

      /end-free
      *
     P HTTPDataSink_bodyData...
     P                 E
      *
      * =====================================================================
      *   Ends a MIME body part.
      *   This procedure is called whenever a new part ends.
      * =====================================================================
      *   Parameters:
      *     i_pPart            Handle of the current part.
      *     i_pUserData        Pointer to user data as specified at
      *                        http_mime_DataSink_initialize().
      * =====================================================================
     P HTTPDataSink_endPart...
     P                 B
      *
     D HTTPDataSink_endPart...
     D                 PI
     D  i_pPart                        *   const
     D  i_pUserData                    *   const
      *
      * -------------------------------------------
      *  TODO: Add fields to close the file
      *        opened in HTTPDataSink_startPart().
      * -------------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)
     D rc              S             10I 0 inz
      *
     D partUserData    DS                  likeds(partUserData_t )
     D                                     based(pPartUserData)
      /ENDIF
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (http_mime_Part_getType(i_pPart) <> cMIME_BASICPART);
            return;
         endif;

         if (g_doParseSOAPMessage);
            g_doParseSOAPMessage = cFalse;
            g_SOAPMessage_done   = cTrue;
            return;
         endif;

         // -----------------------------------------
         // TODO:
         // Add your code to handle attachments here|
         // E.g.: Close output file.
         // -----------------------------------------
      /IF DEFINED(DEFAULT_ATTACHMENT_HANDLING)

         // Gain access to the user data of the current Part.
         pPartUserData = http_mime_Part_getUserData(i_pPart);
         if (pPartUserData = *NULL);
            return;
         endif;

         // Return to caller if no file is open.
         if (partUserData.FD <= 0);
            return;
         endif;

         // Close the file.
         callp close(partUserData.FD);
         partUserData.FD = 0;

         // Free memory allocated in HTTPDataSink_startPart()
         dealloc(N) pPartUserData;
      /ENDIF

         return;

      /end-free
      *
     P HTTPDataSink_endPart...
     P                 E
      *
      * =====================================================================
      *   SOAP message: Envelope
      * =====================================================================
     P SOAPMessage_Envelope...
     P                 B
      *
     D SOAPMessage_Envelope...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (depth = 1 and f_lcase(name) = 'html');
            if (f_exist('WSDL2RPG': '*LIBL': '*MSGF'));
               clear USR0030;
               USR00301 = cWEB_SERVICE_PORT;
               AppMsg_sendCancelMsg(AppMsg_newError('USR0030': USR0030));
            else;
               AppMsg_sendCancelMsg(
                     f_newMsg('CPF9898'
                              : 'Unexpected HTML data received from web service'
                              : '*ESCAPE'
                              : 'QCPFMSG'));
            endif;
         endif;

         select;
         when (path = '/Envelope/Header');
            XMLSAXParser_delegateElementProcessing(
               g_pRespSoapHeader
               : %paddr('SOAPMessage_unexpectedElementStart')
               : %paddr('SOAPMessage_unexpectedElementEnd'));
           return;

         when (path = '/Envelope/Body');

            select;
            when (name = 'Fault');
               XMLSAXParser_delegateElementProcessing(
                  %addr(g_errors.soapFault)
                  : %paddr('SOAPMessage_FaultStart')
                  : %paddr('SOAPMessage_FaultEnd'));
              return;

            when (MultiRef_isData(attrs));
               XMLSAXParser_delegateElementProcessing(
                  *NULL
                  : MultiRef_getStartCallback()
                  : MultiRef_getEndCallback());
               return;

            other;
               XMLSAXParser_delegateElementProcessing(
                  userdata
                  : %paddr('tns_ZbapiAccDocumentPostResponseStart')
                  : %paddr('tns_ZbapiAccDocumentPostResponseEnd'));
              return;
            endsl;

         endsl;

         return;

      /end-free
      *
     P SOAPMessage_Envelope...
     P                 E
      *
      * =====================================================================
      *   SOAP message: fault information
      * =====================================================================
     P SOAPMessage_FaultStart...
     P                 B
      *
     D SOAPMessage_FaultStart...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
     D fault...
     D                 DS                  based(userdata)
     D                                     likeds(wsdl_soapFault_t )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (depth = 1);
            return;
         endif;

         select;
         when (name = 'detail');
            XMLSAXParser_delegateElementProcessing(
               %addr(fault.detail)
               : %paddr('SOAPMessage_FaultDetailStart')
               : %paddr('SOAPMessage_FaultDetailEnd'));
         endsl;

      /end-free
      *
     P SOAPMessage_FaultStart...
     P                 E
      *
      * =====================================================================
      *   SOAP message: fault information
      * =====================================================================
     P SOAPMessage_FaultEnd...
     P                 B
      *
     D SOAPMessage_FaultEnd...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
     D fault...
     D                 DS                  based(userdata)
     D                                     likeds(wsdl_soapFault_t )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (depth = 1);
            return;
         endif;

         select;
         when (name = 'faultcode');
            fault.code = value;
         when (name = 'faultstring');
            fault.string = value;
         endsl;

      /end-free
      *
     P SOAPMessage_FaultEnd...
     P                 E
      *
      * =====================================================================
      *   SOAP message: fault details
      * =====================================================================
     P SOAPMessage_FaultDetailStart...
     P                 B
      *
     D SOAPMessage_FaultDetailStart...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
     D detail...
     D                 DS                  based(userdata)
     D                                     likeds(wsdl_soap_faultDetail_t)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (depth = 1);
            return;
         endif;

         select;
         endsl;

      /end-free
      *
     P SOAPMessage_FaultDetailStart...
     P                 E
      *
      * =====================================================================
      *   SOAP message: fault details
      * =====================================================================
     P SOAPMessage_FaultDetailEnd...
     P                 B
      *
     D SOAPMessage_FaultDetailEnd...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      *
     D detail...
     D                 DS                  based(userdata)
     D                                     likeds(wsdl_soap_faultDetail_t)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (depth = 1);
            return;
         endif;

         select;
         when (name = 'hostname');
            detail.hostname = value;
         endsl;

      /end-free
      *
     P SOAPMessage_FaultDetailEnd...
     P                 E
      *
      * =====================================================================
      *   SOAP message: NULL callback procedure
      * =====================================================================
     P SOAPMessage_unexpectedElementStart...
     P                 B
      *
     D SOAPMessage_unexpectedElementStart...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (ignoreUnexpectedSoapHeader());
            http_DebugLog_appendText(
               'Warning: Received unexpected Soap header: <' + name + '>');
            return;
         endif;

         if (f_exist('WSDL2RPG': '*LIBL': '*MSGF'));
            clear USR0042;
            USR00421 = 'SOAPMessage_unexpectedElementStart';
            USR00422 = 'SOAPMessage_unexpectedElementEnd';
            AppMsg_sendCancelMsg(AppMsg_newError('USR0042': USR0042));
         else;
            AppMsg_sendCancelMsg(
               f_newMsg('CPF9898'
                     : 'Unexpected Soap element received from web service.'
                     : '*ESCAPE'
                     : 'QCPFMSG'));
         endif;

         return;

      /end-free
      *
     P SOAPMessage_unexpectedElementStart...
     P                 E
      *
      * =====================================================================
      *   SOAP message: NULL callback procedure
      * =====================================================================
     P SOAPMessage_unexpectedElementEnd...
     P                 B
      *
     D SOAPMessage_unexpectedElementEnd...
     D                 PI
     D   userdata                      *   value
     D   depth                       10I 0 value
     D   namespace                 1024A   varying const
     D   name                      1024A   varying const
     D   path                     24576A   varying const
     D   value                    65535A   varying const
     D   attrs                         *   dim(32767)
     D                                     const options(*varsize)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (ignoreUnexpectedSoapHeader());
            http_DebugLog_appendText(
               'Warning: Received unexpected Soap header: ' + value);
            http_DebugLog_appendText(
               'Warning: Received unexpected Soap header: </' + name + '>');
            return;
         endif;

         if (f_exist('WSDL2RPG': '*LIBL': '*MSGF'));
            clear USR0042;
            USR00421 = 'SOAPMessage_unexpectedElementStart';
            USR00422 = 'SOAPMessage_unexpectedElementEnd';
            AppMsg_sendCancelMsg(AppMsg_newError('USR0042': USR0042));
         else;
            AppMsg_sendCancelMsg(
               f_newMsg('CPF9898'
                     : 'Unexpected Soap element received from web service.'
                     : '*ESCAPE'
                     : 'QCPFMSG'));
         endif;

         return;

      /end-free
      *
     P SOAPMessage_unexpectedElementEnd...
     P                 E
      *
      * =====================================================================
      *   Specifies, whether unexpected Soap headers are ignored or not.
      * =====================================================================
     P ignoreUnexpectedSoapHeader...
     P                 B
      *
     D ignoreUnexpectedSoapHeader...
     D                 PI              N
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return cFalse;

      /end-free
      *
     P ignoreUnexpectedSoapHeader...
     P                 E
      *
      * =====================================================================
      *   Registers an user callback procedure, that is called whenever
      *   a web service requires user authentification.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_registerLoginCallback...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_registerLoginCallback...
     D                 PI
  D  D  i_pLoginProc                   *   value  procptr
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         g_getLoginData = i_pLoginProc;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_registerLoginCallback...
     P                 E
      *
      * =====================================================================
      *   Http: Returns the last HTTP error (code) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_isError...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_isError...
     D                 PI              N
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         if (g_errors.errType = WSDL_HTTP_SUCCESS);
            return cFalse;
         else;
            return cTrue;
         endif;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_isError...
     P                 E
      *
      * =====================================================================
      *   Http: Returns the last HTTP error (code) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_HttpError_getCode...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_HttpError_getCode...
     D                 PI                  like(wsdl_http_ErrorNo_t  )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.httpError.no;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_HttpError_getCode...
     P                 E
      *
      * =====================================================================
      *   Http: Returns the last HTTP error (text) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_HttpError_getText...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_HttpError_getText...
     D                 PI                  like(wsdl_http_ErrorText_t)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.httpError.text;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_HttpError_getText...
     P                 E
      *
      * =====================================================================
      *   Soap: Returns the last SOAP error (code) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode...
     D                 PI                  like(wsdl_soap_faultcode_t  )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.soapFault.code;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode...
     P                 E
      *
      * =====================================================================
      *   Soap: Returns the last SOAP error (text) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_SoapError_getText...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_SoapError_getText...
     D                 PI                  like(wsdl_soap_faultstring_t)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.soapFault.string;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_SoapError_getText...
     P                 E
      *
      * =====================================================================
      *   XML: Returns the last XML error (code) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode...
     D                 PI                  like(wsdl_xml_ErrorNo_t    )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.xmlError.code;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode...
     P                 E
      *
      * =====================================================================
      *   XML: Returns the last XML error (text) that occurred.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_XmlError_getText...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_XmlError_getText...
     D                 PI                  like(wsdl_xml_ErrorText_t  )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_errors.xmlError.text;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_XmlError_getText...
     P                 E
      *
      * =====================================================================
      *   Returns the file name of the attachment that is associated to
      *   a given content ID.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_get...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_get...
     D                 PI                  like(wsdl_path_t     )
     D  i_attachmentID...
     D                                     const  like(wsdl_attachmentID_t )
      *
     D fileName        S                   like(wsdl_path_t     ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         fileName = Attachments_get(Attachments_theInstance()
                                    : cSERVICE_UUID
                                    : i_attachmentID);
         return fileName;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_get...
     P                 E
      *
      * =====================================================================
      *   Returns the file name of the attachment that is associated to
      *   a given index.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_getAtPos...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_getAtPos...
     D                 PI                  likeds(wsdl_attachment_t )
     D  i_index                      10I 0 const
      *
     D attachment      DS                  likeds(wsdl_attachment_t ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         attachment = Attachments_getAtPos(Attachments_theInstance()
                                           : cSERVICE_UUID
                                           : i_index);
         return attachment;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_getAtPos...
     P                 E
      *
      * =====================================================================
      *   Returns the number of attachments that were downloaded with
      *   the last call of the web service.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_getNumE...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_getNumE...
     D                 PI            10I 0
      *
     D numE            S             10I 0 inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         numE = Attachments_getNumAttachments(Attachments_theInstance()
                                              : cSERVICE_UUID);
         return numE;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_getNumE...
     P                 E
      *
      * =====================================================================
      *   Removes all attachments from the list of attachments of
      *   this web service.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_removeAll...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_Attachments_removeAll...
     D                 PI
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         Attachments_removeAll(Attachments_theInstance()
                               : cSERVICE_UUID);
         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_Attachments_removeAll...
     P                 E
      *
      * =====================================================================
    R *   *** private/experimental ***
      *   Enables/disables a workaround for Web services that are driven
      *   by Axis and that are affected by the AXIS-2095 bug.
      *   Export this procedure if you really need it.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_enableAxis2095...
     P                 B
      *
     D ZBAPI_ACC_DOCUMENT_POST_enableAxis2095...
     D                 PI
     D  i_isEnabled                    N   const
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         deprecated();

         g_isAXIS_2095 = i_isEnabled;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_enableAxis2095...
     P                 E
      *
      * =====================================================================
      *   Specifies the name of the folder where to put attachments in.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setAttachmentFolder...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setAttachmentFolder...
     D                 PI
     D  i_folder                   1024A   const  varying options(*varsize)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         g_attachmentFolder = i_folder;

         g_attachmentFolder = %trimR(%xlate('Ö': '/': g_attachmentFolder));
         if (not f_endsWith('/': g_attachmentFolder));
            g_attachmentFolder = g_attachmentFolder + '/';
         endif;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setAttachmentFolder...
     P                 E
      /IF DEFINED(LOGGING_SERVICE)
      *
      * =====================================================================
      *   Starts the Log4rpg logging service.
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_startLoggingService...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_startLoggingService...
     D                 PI
     D  i_path                             const  like(LOG4RPG_path_t   )
     D                                            options(*nopass)
     D  i_waitMinutes                10I 0 const  options(*nopass)
     D  i_unit                       10A   const  options(*nopass)
      *
      *  Parameter positions
     D p_path          C                   1
     D p_waitMinutes   C                   2
     D p_unit          C                   3
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         LoggerStub_loadSrvPgm();

         select;
         when (%parms() >= p_unit);
            Configurator_loadAndWatchPropertiesConfiguration(
                                                i_path: i_waitMinutes: i_unit);
         when (%parms() >= p_waitMinutes);
            Configurator_loadAndWatchPropertiesConfiguration(
                                                i_path: i_waitMinutes);
         when (%parms() >= p_path);
            Configurator_loadPropertiesConfiguration(i_path);
         other;
            Configurator_loadDefaultConfiguration();
         endsl;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_startLoggingService...
     P                 E
      /ENDIF
      *
      * =====================================================================
      *   Web service: Enables/disables the debug log of HTTP API
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setHttpDebug...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setHttpDebug...
     D                 PI
     D   i_status                      N   const
     D   i_fileName                 500A   const  varying  options(*nopass)
      *
      *  Parameter positions
     D p_fileName      C                   2
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         g_httpDebug.status = i_status;

         if (%parms() >= p_fileName);
            g_httpDebug.fileName = i_fileName;
         else;
            g_httpDebug.fileName = HTTP_API_DEFAULT_LOG_FILE;
         endif;

         if (i_status);
            http_DebugLog_open(g_httpDebug.fileName);
         else;
            http_DebugLog_close();
         endif;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setHttpDebug...
     P                 E
      *
      * =====================================================================
      *   Web service: Sets the proxy server to use for the connection
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setProxy...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setProxy...
     D                 PI
     D  i_server                    256A   const
     D  i_port                       10I 0 const
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         g_proxy.server = i_server;
         g_proxy.port   = i_port;

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setProxy...
     P                 E
      *
      * =====================================================================
      *   Web service: Returns the endpoint of the Web service
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_getEndpoint...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_getEndpoint...
     D                 PI         32767A          varying
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         return g_url;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_getEndpoint...
     P                 E
      *
      * =====================================================================
      *   Web service: Sets the endpoint of the Web service
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setEndpoint...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setEndpoint...
     D                 PI
     D  i_url                     32767A   const varying  options(*varsize)
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         g_url = %subst(i_url: 1: %len(i_url));

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setEndpoint...
     P                 E
      *
      * =====================================================================
      *   Web service: Returns the host name of the Web Service endpoint
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_getHost...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_getHost...
     D                 PI         32767A          varying
      *
     D tmpUrl          S                   like(url_t ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         tmpUrl = URL_new(g_url);

         return URL_getHost(tmpUrl);

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_getHost...
     P                 E
      *
      * =====================================================================
      *   Web service: Sets the host name of the Web service endpoint
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setHost...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setHost...
     D                 PI
     D  i_host                    32767A   const varying  options(*varsize)
      *
     D tmpUrl          S                   like(url_t ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         tmpUrl = URL_new(g_url);
         URL_setHost(tmpUrl: %subst(i_host: 1: %len(i_host)));
         g_url = URL_toString(tmpUrl);

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setHost...
     P                 E
      *
      * =====================================================================
      *   Web service: Returns the port of the Web Service endpoint
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_getPort...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_getPort...
     D                 PI            10I 0
      *
     D tmpUrl          S                   like(url_t ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         tmpUrl = URL_new(g_url);

         return URL_getPort(tmpUrl);

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_getPort...
     P                 E
      *
      * =====================================================================
      *   Web service: Sets the port of the Web service endpoint
      * =====================================================================
     P ZBAPI_ACC_DOCUMENT_POST_setPort...
     P                 B                   export
      *
     D ZBAPI_ACC_DOCUMENT_POST_setPort...
     D                 PI
     D  i_port                       10I 0 const
      *
     D tmpUrl          S                   like(url_t ) inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free

         tmpUrl = URL_new(g_url);
         URL_setPort(tmpUrl: i_port);
         g_url = URL_toString(tmpUrl);

         return;

      /end-free
      *
     P ZBAPI_ACC_DOCUMENT_POST_setPort...
     P                 E
      *
      * =====================================================================
      *  Generated by WSDL2RPG 1.13 / 21.01.2011
      *  Built on Jul 6, 2011 (16:35:07)
      *  Based on WS_PGM v1.13
      * =====================================================================
      *   Sample program to show how to call the
      *     ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost()
      *   Web service.
      * =====================================================================
      *   Log4rpg Logging Service
      /UNDEFINE LOGGING_SERVICE
      * =====================================================================
      *   Pre-Compiler tags used by STRPREPRC to retrieve creation
      *   commands from the source member.
      * ---------------------------------------------------------------------
      * >>PRE-COMPILER<<
      *   >>CRTCMD<< CRTRPGMOD    MODULE(&LI/&OB) +
      *                           SRCFILE(&SL/&SF) +
      *                           SRCMBR(&SM);
      *   >>COMPILE<<
      *     >>PARM<< TRUNCNBR(*NO);
      *     >>PARM<< DBGVIEW(*LIST);
      *   >>END-COMPILE<<
      *   >>EXECUTE<<
      *   >>CMD<<    CRTPGM       PGM(&LI/&OB) +
      *                           MODULE(*PGM) +
      *                           BNDSRVPGM(*LIBL/SAP0004     +
      *                                     ) +
      *                           DETAIL(*BASIC) +
      *                           ACTGRP(*NEW);
      * >>END-PRE-COMPILER<<
      * =====================================================================
     H DEBUG
     H OPTION(*SRCSTMT : *NODEBUGIO)
     H EXTBININT(*YES)
      *
      *  Include generated web service stub module to
      *  define the prototype of the web service procedure
      *  and the required type definitions (aka reference fields).
      /DEFINE PROTOTYPE_SAP0004
 CPY  /COPY MANJULA/QRPGLESRC,SAP0004
      /UNDEFINE PROTOTYPE_SAP0004
      *
      /IF DEFINED(LOGGING_SERVICE)
 CPY  /COPY QWSDL2RPG,PLOG4RPG                     Log4rpg: The Log4rpg service program
 CPY  /COPY QWSDL2RPG,PLOG4RPG00                   Log4rpg: The Log4rpg stub module
      /ENDIF
      *
      *  Program entry point
     D SAP0004T...
     D                 PR
      *
      *  Sends a message to the command line.
     D sndMsg...
     D                 PR                  extproc('sndMsg')
     D  i_text                      128A   value  varying
      *
      * =====================================================================
      *  Program entry point
      * =====================================================================
     D SAP0004T...
     D                 PI
      *
      *  Web service error message text
     D errText         S                   like(wsdl_errText_t ) inz
      *
      *  Request message
      *  These fields needs to be filled with reasonable values
      *  right before calling the web service.
     D parameters      DS                  likeds(tns_ZbapiAccDocumentPost_t)
     D                                     inz
      *
      *  Response message
      *  This structure contains the result values returned by
      *  the web service.
     D ZbapiAccDocumentPostResponse...
     D                 DS                  likeds(tns_ZbapiAccDocumentPostRes...
     D                                     ponse_t)
     D                                     inz
      *
      *  Text of messages sent to the command line
     D text            S            128A   varying inz
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free
      /if defined(LOGGING_SERVICE)

         // Enable Log4rpg, in order to debug WSDL2RPG
         // (Enable Log4rpg when you are ask for it by the developer)
         ZBAPI_ACC_DOCUMENT_POST_startLoggingService(
            'mbr:QWSDL2RPG.LOG4RPG');
      /endif

         // Enable/disable http api debug log
         // (Enable the http api debug log in case of problems with the web service)
         // ZBAPI_ACC_DOCUMENT_POST_setHttpDebug(
         //    *ON: '/tmp/httpapi_debug.txt');   // Default path of http api

         // Specify a proxy server if your network requires it.
         // ZBAPI_ACC_DOCUMENT_POST_setProxy(
         //    'your.proxy.server': 8080);

         // Set the paramater values of the request message
         // of the web service.
         //    assign values here
         // Set number of array items:
         parameters.Accountgl.item.x = 1;
         // Set array item values:
         parameters.Accountgl.item.Bapiackec9(parameters.Accountgl.item.x
         ).ItemnoAcc = '0000000010';
         parameters.Accountgl.item.Bapiackec9(parameters.Accountgl.item.x
         ).Fieldname = 'string';
         parameters.Accountgl.item.Bapiackec9(parameters.Accountgl.item.x
         ).Character = 'string';
         // Set number of array items:
         parameters.Accountpayable.item.x = 1;
         // Set array item values:
         parameters.Accountpayable.item.Bapiackec9(parameters.Accountpayable...
         .item.x).ItemnoAcc = 'string';
         parameters.Accountpayable.item.Bapiackec9(parameters.Accountpayable...
         .item.x).Fieldname = 'string';
         parameters.Accountpayable.item.Bapiackec9(parameters.Accountpayable...
         .item.x).Character = 'string';
         // Set number of array items:
         parameters.Accountreceivable.item.x = 1;
         // Set array item values:
         parameters.Accountreceivable.item.Bapiackec9(parameters.Accountrecei...
         vable.item.x).ItemnoAcc = 'string';
         parameters.Accountreceivable.item.Bapiackec9(parameters.Accountrecei...
         vable.item.x).Fieldname = 'string';
         parameters.Accountreceivable.item.Bapiackec9(parameters.Accountrecei...
         vable.item.x).Character = 'string';
         // Set number of array items:
         parameters.Accounttax.item.x = 1;
         // Set array item values:
         parameters.Accounttax.item.Bapiackec9(parameters.Accounttax.item...
         .x).ItemnoAcc = 'string';
         parameters.Accounttax.item.Bapiackec9(parameters.Accounttax.item...
         .x).Fieldname = 'string';
         parameters.Accounttax.item.Bapiackec9(parameters.Accounttax.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Accountwt.item.x = 1;
         // Set array item values:
         parameters.Accountwt.item.Bapiackec9(parameters.Accountwt.item.x
         ).ItemnoAcc = 'string';
         parameters.Accountwt.item.Bapiackec9(parameters.Accountwt.item.x
         ).Fieldname = 'string';
         parameters.Accountwt.item.Bapiackec9(parameters.Accountwt.item.x
         ).Character = 'string';
         parameters.Contractheader.DocNo = 'string';
         parameters.Contractheader.DocTypeCa = 'string';
         parameters.Contractheader.ResKey = 'string';
         parameters.Contractheader.Fikey = 'string';
         parameters.Contractheader.PaymentFormRef = 'string';
         // Set number of array items:
         parameters.Contractitem.item.x = 1;
         // Set array item values:
         parameters.Contractitem.item.Bapiackec9(parameters.Contractitem.item...
         .x).ItemnoAcc = 'string';
         parameters.Contractitem.item.Bapiackec9(parameters.Contractitem.item...
         .x).Fieldname = 'string';
         parameters.Contractitem.item.Bapiackec9(parameters.Contractitem.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Criteria.item.x = 1;
         // Set array item values:
         parameters.Criteria.item.Bapiackec9(parameters.Criteria.item.x).Item...
         noAcc = 'string';
         parameters.Criteria.item.Bapiackec9(parameters.Criteria.item.x).Fiel...
         dname = 'string';
         parameters.Criteria.item.Bapiackec9(parameters.Criteria.item.x).Char...
         acter = 'string';
         // Set number of array items:
         parameters.Currencyamount.item.x = 1;
         // Set array item values:
         parameters.Currencyamount.item.Bapiackec9(parameters.Currencyamount...
         .item.x).ItemnoAcc = 'string';
         parameters.Currencyamount.item.Bapiackec9(parameters.Currencyamount...
         .item.x).Fieldname = 'string';
         parameters.Currencyamount.item.Bapiackec9(parameters.Currencyamount...
         .item.x).Character = 'string';
         parameters.Customercpd.Name = 'string';
         parameters.Customercpd.Name2 = 'string';
         parameters.Customercpd.Name3 = 'string';
         parameters.Customercpd.Name4 = 'string';
         parameters.Customercpd.PostlCode = 'string';
         parameters.Customercpd.City = 'string';
         parameters.Customercpd.Country = 'string';
         parameters.Customercpd.CountryIso = 'string';
         parameters.Customercpd.Street = 'string';
         parameters.Customercpd.PoBox = 'string';
         parameters.Customercpd.PobxPcd = 'string';
         parameters.Customercpd.PobkCurac = 'string';
         parameters.Customercpd.BankAcct = 'string';
         parameters.Customercpd.BankNo = 'string';
         parameters.Customercpd.BankCtry = 'string';
         parameters.Customercpd.BankCtryIso = 'string';
         parameters.Customercpd.TaxNo1 = 'string';
         parameters.Customercpd.TaxNo2 = 'string';
         parameters.Customercpd.Tax = 'string';
         parameters.Customercpd.EqualTax = 'string';
         parameters.Customercpd.Region = 'string';
         parameters.Customercpd.CtrlKey = 'string';
         parameters.Customercpd.InstrKey = 'string';
         parameters.Customercpd.DmeInd = 'string';
         parameters.Customercpd.LanguIso = 'string';
         parameters.Customercpd.Iban = 'string';
         parameters.Customercpd.SwiftCode = 'string';
         //
         // Documentheader goes here..
         //
         parameters.Documentheader.ObjType = ''      ;
         parameters.Documentheader.ObjKey = ''      ;
         parameters.Documentheader.ObjSys = ''      ;
         parameters.Documentheader.BusAct = 'RFBU'  ;
         parameters.Documentheader.Username = 'ISRDEV2';
         parameters.Documentheader.HeaderTxt = ''      ;
         parameters.Documentheader.CompCode = '7600'  ;
         parameters.Documentheader.DocDate = '2010-10-20';
         parameters.Documentheader.PstngDate = '2010-10-20';
         parameters.Documentheader.TransDate = ''      ;
         parameters.Documentheader.FiscYear = ''      ;
         parameters.Documentheader.FisPeriod = ''      ;
         parameters.Documentheader.DocType = 'DZ';
         parameters.Documentheader.RefDocNo = '90000397';
         parameters.Documentheader.AcDocNo = ''      ;
         parameters.Documentheader.ObjKeyR = ''      ;
         parameters.Documentheader.ReasonRev = ''      ;
         parameters.Documentheader.CompoAcc = ''      ;
         parameters.Documentheader.RefDocNoLong = ''      ;
         parameters.Documentheader.AccPrinciple = ''      ;
         parameters.Documentheader.NegPostng = ''      ;
         parameters.Documentheader.ObjKeyInv = ''      ;
         parameters.Documentheader.BillCategory = ''      ;
         parameters.Documentheader.Vatdate = ''      ;
         // Set number of array items:
         parameters.Extension1.item.x = 1;
         // Set array item values:
         parameters.Extension1.item.Bapiackec9(parameters.Extension1.item...
         .x).ItemnoAcc = 'string';
         parameters.Extension1.item.Bapiackec9(parameters.Extension1.item...
         .x).Fieldname = 'string';
         parameters.Extension1.item.Bapiackec9(parameters.Extension1.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Extension2.item.x = 1;
         // Set array item values:
         parameters.Extension2.item.Bapiackec9(parameters.Extension2.item...
         .x).ItemnoAcc = 'string';
         parameters.Extension2.item.Bapiackec9(parameters.Extension2.item...
         .x).Fieldname = 'string';
         parameters.Extension2.item.Bapiackec9(parameters.Extension2.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Paymentcard.item.x = 1;
         // Set array item values:
         parameters.Paymentcard.item.Bapiackec9(parameters.Paymentcard.item...
         .x).ItemnoAcc = 'string';
         parameters.Paymentcard.item.Bapiackec9(parameters.Paymentcard.item...
         .x).Fieldname = 'string';
         parameters.Paymentcard.item.Bapiackec9(parameters.Paymentcard.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Realestate.item.x = 1;
         // Set array item values:
         parameters.Realestate.item.Bapiackec9(parameters.Realestate.item...
         .x).ItemnoAcc = 'string';
         parameters.Realestate.item.Bapiackec9(parameters.Realestate.item...
         .x).Fieldname = 'string';
         parameters.Realestate.item.Bapiackec9(parameters.Realestate.item...
         .x).Character = 'string';
         // Set number of array items:
         parameters.Return.item.x = 1;
         // Set array item values:
         parameters.Return.item.Bapiackec9(parameters.Return.item.x).ItemnoAc...
         c = 'string';
         parameters.Return.item.Bapiackec9(parameters.Return.item.x).Fieldnam...
         e = 'string';
         parameters.Return.item.Bapiackec9(parameters.Return.item.x).Characte...
         r = 'string';
         // Set number of array items:
         parameters.Valuefield.item.x = 1;
         // Set array item values:
         parameters.Valuefield.item.Bapiackec9(parameters.Valuefield.item...
         .x).ItemnoAcc = 'string';
         parameters.Valuefield.item.Bapiackec9(parameters.Valuefield.item...
         .x).Fieldname = 'string';
         parameters.Valuefield.item.Bapiackec9(parameters.Valuefield.item...
         .x).Character = 'string';

         // Now let's call the web service.
         ZbapiAccDocumentPostResponse =
            ZBAPI_ACC_DOCUMENT_POST_ZbapiAccDocumentPost(
                parameters:
                errText);

         // If the Web service finished successfully ...
 B01     if (not ZBAPI_ACC_DOCUMENT_POST_isError());
            // ... get response data from response data structure

 X01     else;
            // ... else show error messages ordered by priority:
            // 1. HTTP error information
            text = %char(
                      ZBAPI_ACC_DOCUMENT_POST_HttpError_getCode()
                      ) + ': ' +
                   ZBAPI_ACC_DOCUMENT_POST_HttpError_getText()
                   ;
            sndMsg(text);
            // 2. SOAP error information
 B02        if (ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode()
                  <> '');
               text = ZBAPI_ACC_DOCUMENT_POST_SoapError_getCode()
                      + ': ' +
                      ZBAPI_ACC_DOCUMENT_POST_SoapError_getText()
                      ;
               sndMsg(text);
 E02        endif;
            // 3. XML parser error information
 B02        if (ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode()
                  <> 0);
               text = %char(ZBAPI_ACC_DOCUMENT_POST_XmlError_getCode())
                      + ': ' +
                      ZBAPI_ACC_DOCUMENT_POST_XmlError_getText()
                      ;
               sndMsg(text);
 E02        endif;
 E01     endif;

         *inlr = *on;

      /end-free
      *
      * =====================================================================
      *  *** private ***
      *  Sends a message to the command line.
      * =====================================================================
     P sndMsg...
     P                 B
      *
     D sndMsg...
     D                 PI
     D  i_text                      128A   value  varying
      *
      *  Local fields
     D msgKey          S              4A   inz
      *
      *  Qualified message file name
     D qMsgF           DS                  qualified inz
     D  name                         10A
     D  lib                          10A
      *
      *  API error code
     D errCode         DS                  qualified inz
     D  bytPrv                       10I 0
     D  bytAvl                       10I 0
     D  excID                         7A
     D  reserved                      1A
     D  excDta                      256A
      *
      *  Send Program Message (QMHSNDPM) API
     D QMHSNDPM        PR                         extpgm('QMHSNDPM')
     D   i_msgID                      7A   const
     D   i_qMsgF                     20A   const
     D   i_msgData                32767A   const  options(*varsize )
     D   i_length                    10I 0 const
     D   i_msgType                   10A   const
     D   i_callStkE               32767A   const  options(*varsize )
     D   i_callStkC                  10I 0 const
     D   o_msgKey                     4A
     D   io_ErrCode               32767A          options(*varsize )
      * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      /free
         clear qMsgF;
         qMsgF.name = 'QCPFMSG';
         qMsgF.lib  = '*LIBL';
         clear errCode;
         errCode.bytPrv = %size(errCode);
         QMHSNDPM('CPF9897': qMsgF: i_text: %len(i_text): '*INFO'
                  : '*CTLBDY': 1: msgKey: errCode);
         return;
      /end-free
      *
     P sndMsg...
     P                 E
      *
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; xmlns:n1="urn:sap-com:document:sap:rfc:functions">
  <wsdl:documentation>
    <sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl"/>
  </wsdl:documentation>
  <wsp:UsingPolicy wsdl:required="true"/>
  <wsp:Policy wsu:Id="BN_BN_ZBAPI_ACC_DOCUMENT_POST">
    <saptrnbnd:OptimizedXMLTransfer uri="http://xml.sap.com/2006/11/esi/esp/binxml"; xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/"; wsp:Optional="true"/>
    <saptrnbnd:OptimizedXMLTransfer uri="http://www.w3.org/2004/08/soap/features/http-optimization"; xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/"; wsp:Optional="true"/>
    <wsp:ExactlyOne xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; xmlns:sapsp="http://www.sap.com/webas/630/soap/features/security/policy"; xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"; xmlns:wsa="http://www.w3.org/2005/08/addressing"; xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512"; xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility"; xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"/>
  </wsp:Policy>
  <wsp:Policy wsu:Id="IF_IF_ZBAPI_ACC_DOCUMENT_POST">
    <sapsession:Session xmlns:sapsession="http://www.sap.com/webas/630/soap/features/session/";>
      <sapsession:enableSession>false</sapsession:enableSession>
    </sapsession:Session>
    <sapcentraladmin:CentralAdministration xmlns:sapcentraladmin="http://www.sap.com/webas/700/soap/features/CentralAdministration/"; wsp:Optional="true"/>
  </wsp:Policy>
  <wsp:Policy wsu:Id="OP_IF_OP_ZbapiAccDocumentPost">
    <sapcomhnd:enableCommit xmlns:sapcomhnd="http://www.sap.com/NW05/soap/features/commit/";>false</sapcomhnd:enableCommit>
    <sapblock:enableBlocking xmlns:sapblock="http://www.sap.com/NW05/soap/features/blocking/";>true</sapblock:enableBlocking>
    <saptrhnw05:required xmlns:saptrhnw05="http://www.sap.com/NW05/soap/features/transaction/";>no</saptrhnw05:required>
    <saprmnw05:enableWSRM xmlns:saprmnw05="http://www.sap.com/NW05/soap/features/wsrm/";>false</saprmnw05:enableWSRM>
  </wsp:Policy>
  <wsdl:types>
    <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:rfc:functions">
      <xsd:simpleType name="byte16">
        <xsd:restriction base="xsd:base64Binary">
          <xsd:maxLength value="16"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char1">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="1"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char10">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="10"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char11">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="11"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char12">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="12"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char13">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="13"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char14">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="14"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char15">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="15"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char16">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="16"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char18">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="18"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char2">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="2"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char20">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="20"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char220">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="220"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char24">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="24"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char240">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="240"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char25">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="25"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char250">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="250"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char27">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="27"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char3">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char30">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="30"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char32">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="32"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char34">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="34"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char35">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="35"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char4">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="4"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char40">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="40"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char5">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="5"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char50">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="50"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char6">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="6"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="char8">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="8"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="cuky5">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="5"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="date">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="10"/>
          <xsd:pattern value="\d\d\d\d-\d\d-\d\d"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal23.4">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="23"/>
          <xsd:fractionDigits value="4"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal3.0">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="3"/>
          <xsd:fractionDigits value="0"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal5.3">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="5"/>
          <xsd:fractionDigits value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal7.3">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="7"/>
          <xsd:fractionDigits value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal9.5">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="9"/>
          <xsd:fractionDigits value="5"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="decimal9.6">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="9"/>
          <xsd:fractionDigits value="6"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric10">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="10"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric2">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="2"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric3">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="3"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric4">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="4"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric5">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="5"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="numeric6">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="6"/>
          <xsd:pattern value="\d*"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="quantum13.3">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="13"/>
          <xsd:fractionDigits value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="quantum15.3">
        <xsd:restriction base="xsd:decimal">
          <xsd:totalDigits value="15"/>
          <xsd:fractionDigits value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="time">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="8"/>
          <xsd:pattern value="\d\d:\d\d:\d\d"/>
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="unit3">
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:schema>
    <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:n0="urn:sap-com:document:sap:rfc:functions">
      <xsd:import namespace="urn:sap-com:document:sap:rfc:functions"/>
      <xsd:complexType name="Bapiacextc">
        <xsd:sequence>
          <xsd:element name="Field1" type="n0:char250"/>
          <xsd:element name="Field2" type="n0:char250"/>
          <xsd:element name="Field3" type="n0:char250"/>
          <xsd:element name="Field4" type="n0:char250"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiparex">
        <xsd:sequence>
          <xsd:element name="Structure" type="n0:char30"/>
          <xsd:element name="Valuepart1" type="n0:char240"/>
          <xsd:element name="Valuepart2" type="n0:char240"/>
          <xsd:element name="Valuepart3" type="n0:char240"/>
          <xsd:element name="Valuepart4" type="n0:char240"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacre09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="BusinessEntity" type="n0:char8"/>
          <xsd:element name="Building" type="n0:char8"/>
          <xsd:element name="Property" type="n0:char8"/>
          <xsd:element name="RentalObject" type="n0:char8"/>
          <xsd:element name="ServChargeKey" type="n0:char4"/>
          <xsd:element name="SettlementUnit" type="n0:char5"/>
          <xsd:element name="ContractNo" type="n0:char13"/>
          <xsd:element name="FlowType" type="n0:char4"/>
          <xsd:element name="CorrItem" type="n0:char10"/>
          <xsd:element name="RefDate" type="n0:date"/>
          <xsd:element name="OptionRate" type="n0:decimal9.6"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiackev9">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="Fieldname" type="n0:char30"/>
          <xsd:element name="CurrType" type="n0:char2"/>
          <xsd:element name="Currency" type="n0:cuky5"/>
          <xsd:element name="CurrencyIso" type="n0:char3"/>
          <xsd:element name="AmtValcom" type="n0:decimal23.4"/>
          <xsd:element name="BaseUom" type="n0:unit3"/>
          <xsd:element name="BaseUomIso" type="n0:char3"/>
          <xsd:element name="QuaValcom" type="n0:quantum15.3"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacap09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="VendorNo" type="n0:char10"/>
          <xsd:element name="GlAccount" type="n0:char10"/>
          <xsd:element name="RefKey1" type="n0:char12"/>
          <xsd:element name="RefKey2" type="n0:char12"/>
          <xsd:element name="RefKey3" type="n0:char20"/>
          <xsd:element name="CompCode" type="n0:char4"/>
          <xsd:element name="BusArea" type="n0:char4"/>
          <xsd:element name="Pmnttrms" type="n0:char4"/>
          <xsd:element name="BlineDate" type="n0:date"/>
          <xsd:element name="DsctDays1" type="n0:decimal3.0"/>
          <xsd:element name="DsctDays2" type="n0:decimal3.0"/>
          <xsd:element name="Netterms" type="n0:decimal3.0"/>
          <xsd:element name="DsctPct1" type="n0:decimal5.3"/>
          <xsd:element name="DsctPct2" type="n0:decimal5.3"/>
          <xsd:element name="PymtMeth" type="n0:char1"/>
          <xsd:element name="Pmtmthsupl" type="n0:char2"/>
          <xsd:element name="PmntBlock" type="n0:char1"/>
          <xsd:element name="ScbankInd" type="n0:char3"/>
          <xsd:element name="Supcountry" type="n0:char3"/>
          <xsd:element name="SupcountryIso" type="n0:char2"/>
          <xsd:element name="BllsrvInd" type="n0:char1"/>
          <xsd:element name="AllocNmbr" type="n0:char18"/>
          <xsd:element name="ItemText" type="n0:char50"/>
          <xsd:element name="PoSubNo" type="n0:char11"/>
          <xsd:element name="PoCheckdg" type="n0:char2"/>
          <xsd:element name="PoRefNo" type="n0:char27"/>
          <xsd:element name="WTaxCode" type="n0:char2"/>
          <xsd:element name="Businessplace" type="n0:char4"/>
          <xsd:element name="Sectioncode" type="n0:char4"/>
          <xsd:element name="Instr1" type="n0:numeric2"/>
          <xsd:element name="Instr2" type="n0:numeric2"/>
          <xsd:element name="Instr3" type="n0:numeric2"/>
          <xsd:element name="Instr4" type="n0:numeric2"/>
          <xsd:element name="Branch" type="n0:char10"/>
          <xsd:element name="PymtCur" type="n0:cuky5"/>
          <xsd:element name="PymtAmt" type="n0:decimal23.4"/>
          <xsd:element name="PymtCurIso" type="n0:char3"/>
          <xsd:element name="SpGlInd" type="n0:char1"/>
          <xsd:element name="TaxCode" type="n0:char2"/>
          <xsd:element name="TaxDate" type="n0:date"/>
          <xsd:element name="Taxjurcode" type="n0:char15"/>
          <xsd:element name="AltPayee" type="n0:char10"/>
          <xsd:element name="AltPayeeBank" type="n0:char4"/>
          <xsd:element name="PartnerBk" type="n0:char4"/>
          <xsd:element name="BankId" type="n0:char5"/>
          <xsd:element name="PartnerGuid" type="n0:char32"/>
          <xsd:element name="ProfitCtr" type="n0:char10"/>
          <xsd:element name="Fund" type="n0:char10"/>
          <xsd:element name="GrantNbr" type="n0:char20"/>
          <xsd:element name="Measure" type="n0:char24"/>
          <xsd:element name="Housebankacctid" type="n0:char5"/>
          <xsd:element name="BudgetPeriod" type="n0:char10"/>
          <xsd:element name="PpaExInd" type="n0:char1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiaccahd">
        <xsd:sequence>
          <xsd:element name="DocNo" type="n0:char12"/>
          <xsd:element name="DocTypeCa" type="n0:char2"/>
          <xsd:element name="ResKey" type="n0:char30"/>
          <xsd:element name="Fikey" type="n0:char12"/>
          <xsd:element name="PaymentFormRef" type="n0:char30"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacgl09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="GlAccount" type="n0:char10"/>
          <xsd:element name="ItemText" type="n0:char50"/>
          <xsd:element name="StatCon" type="n0:char1"/>
          <xsd:element name="LogProc" type="n0:char6"/>
          <xsd:element name="AcDocNo" type="n0:char10"/>
          <xsd:element name="RefKey1" type="n0:char12"/>
          <xsd:element name="RefKey2" type="n0:char12"/>
          <xsd:element name="RefKey3" type="n0:char20"/>
          <xsd:element name="AcctKey" type="n0:char3"/>
          <xsd:element name="AcctType" type="n0:char1"/>
          <xsd:element name="DocType" type="n0:char2"/>
          <xsd:element name="CompCode" type="n0:char4"/>
          <xsd:element name="BusArea" type="n0:char4"/>
          <xsd:element name="FuncArea" type="n0:char4"/>
          <xsd:element name="Plant" type="n0:char4"/>
          <xsd:element name="FisPeriod" type="n0:numeric2"/>
          <xsd:element name="FiscYear" type="n0:numeric4"/>
          <xsd:element name="PstngDate" type="n0:date"/>
          <xsd:element name="ValueDate" type="n0:date"/>
          <xsd:element name="FmArea" type="n0:char4"/>
          <xsd:element name="Customer" type="n0:char10"/>
          <xsd:element name="CshdisInd" type="n0:char1"/>
          <xsd:element name="VendorNo" type="n0:char10"/>
          <xsd:element name="AllocNmbr" type="n0:char18"/>
          <xsd:element name="TaxCode" type="n0:char2"/>
          <xsd:element name="Taxjurcode" type="n0:char15"/>
          <xsd:element name="ExtObjectId" type="n0:char34"/>
          <xsd:element name="BusScenario" type="n0:char16"/>
          <xsd:element name="Costobject" type="n0:char12"/>
          <xsd:element name="Costcenter" type="n0:char10"/>
          <xsd:element name="Acttype" type="n0:char6"/>
          <xsd:element name="ProfitCtr" type="n0:char10"/>
          <xsd:element name="PartPrctr" type="n0:char10"/>
          <xsd:element name="Network" type="n0:char12"/>
          <xsd:element name="WbsElement" type="n0:char24"/>
          <xsd:element name="Orderid" type="n0:char12"/>
          <xsd:element name="OrderItno" type="n0:numeric4"/>
          <xsd:element name="RoutingNo" type="n0:numeric10"/>
          <xsd:element name="Activity" type="n0:char4"/>
          <xsd:element name="CondType" type="n0:char4"/>
          <xsd:element name="CondCount" type="n0:numeric2"/>
          <xsd:element name="CondStNo" type="n0:numeric3"/>
          <xsd:element name="Fund" type="n0:char10"/>
          <xsd:element name="FundsCtr" type="n0:char16"/>
          <xsd:element name="CmmtItem" type="n0:char14"/>
          <xsd:element name="CoBusproc" type="n0:char12"/>
          <xsd:element name="AssetNo" type="n0:char12"/>
          <xsd:element name="SubNumber" type="n0:char4"/>
          <xsd:element name="BillType" type="n0:char4"/>
          <xsd:element name="SalesOrd" type="n0:char10"/>
          <xsd:element name="SOrdItem" type="n0:numeric6"/>
          <xsd:element name="DistrChan" type="n0:char2"/>
          <xsd:element name="Division" type="n0:char2"/>
          <xsd:element name="Salesorg" type="n0:char4"/>
          <xsd:element name="SalesGrp" type="n0:char3"/>
          <xsd:element name="SalesOff" type="n0:char4"/>
          <xsd:element name="SoldTo" type="n0:char10"/>
          <xsd:element name="DeCreInd" type="n0:char1"/>
          <xsd:element name="PElPrctr" type="n0:char10"/>
          <xsd:element name="Xmfrw" type="n0:char1"/>
          <xsd:element name="Quantity" type="n0:quantum13.3"/>
          <xsd:element name="BaseUom" type="n0:unit3"/>
          <xsd:element name="BaseUomIso" type="n0:char3"/>
          <xsd:element name="InvQty" type="n0:quantum13.3"/>
          <xsd:element name="InvQtySu" type="n0:quantum13.3"/>
          <xsd:element name="SalesUnit" type="n0:unit3"/>
          <xsd:element name="SalesUnitIso" type="n0:char3"/>
          <xsd:element name="PoPrQnt" type="n0:quantum13.3"/>
          <xsd:element name="PoPrUom" type="n0:unit3"/>
          <xsd:element name="PoPrUomIso" type="n0:char3"/>
          <xsd:element name="EntryQnt" type="n0:quantum13.3"/>
          <xsd:element name="EntryUom" type="n0:unit3"/>
          <xsd:element name="EntryUomIso" type="n0:char3"/>
          <xsd:element name="Volume" type="n0:quantum15.3"/>
          <xsd:element name="Volumeunit" type="n0:unit3"/>
          <xsd:element name="VolumeunitIso" type="n0:char3"/>
          <xsd:element name="GrossWt" type="n0:quantum15.3"/>
          <xsd:element name="NetWeight" type="n0:quantum15.3"/>
          <xsd:element name="UnitOfWt" type="n0:unit3"/>
          <xsd:element name="UnitOfWtIso" type="n0:char3"/>
          <xsd:element name="ItemCat" type="n0:char1"/>
          <xsd:element name="Material" type="n0:char18"/>
          <xsd:element name="MatlType" type="n0:char4"/>
          <xsd:element name="MvtInd" type="n0:char1"/>
          <xsd:element name="RevalInd" type="n0:char1"/>
          <xsd:element name="OrigGroup" type="n0:char4"/>
          <xsd:element name="OrigMat" type="n0:char1"/>
          <xsd:element name="SerialNo" type="n0:numeric2"/>
          <xsd:element name="PartAcct" type="n0:char10"/>
          <xsd:element name="TrPartBa" type="n0:char4"/>
          <xsd:element name="TradeId" type="n0:char6"/>
          <xsd:element name="ValArea" type="n0:char4"/>
          <xsd:element name="ValType" type="n0:char10"/>
          <xsd:element name="AsvalDate" type="n0:date"/>
          <xsd:element name="PoNumber" type="n0:char10"/>
          <xsd:element name="PoItem" type="n0:numeric5"/>
          <xsd:element name="ItmNumber" type="n0:numeric6"/>
          <xsd:element name="CondCategory" type="n0:char1"/>
          <xsd:element name="FuncAreaLong" type="n0:char16"/>
          <xsd:element name="CmmtItemLong" type="n0:char24"/>
          <xsd:element name="GrantNbr" type="n0:char20"/>
          <xsd:element name="CsTransT" type="n0:char3"/>
          <xsd:element name="Measure" type="n0:char24"/>
          <xsd:element name="Segment" type="n0:char10"/>
          <xsd:element name="PartnerSegment" type="n0:char10"/>
          <xsd:element name="ResDoc" type="n0:char10"/>
          <xsd:element name="ResItem" type="n0:numeric3"/>
          <xsd:element name="BillingPeriodStartDate" type="n0:date"/>
          <xsd:element name="BillingPeriodEndDate" type="n0:date"/>
          <xsd:element name="PpaExInd" type="n0:char1"/>
          <xsd:element name="Fastpay" type="n0:char1"/>
          <xsd:element name="PartnerGrantNbr" type="n0:char20"/>
          <xsd:element name="BudgetPeriod" type="n0:char10"/>
          <xsd:element name="PartnerBudgetPeriod" type="n0:char10"/>
          <xsd:element name="PartnerFund" type="n0:char10"/>
          <xsd:element name="ItemnoTax" type="n0:numeric6"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacpc09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="CcGlaccount" type="n0:char10"/>
          <xsd:element name="CcType" type="n0:char4"/>
          <xsd:element name="CcNumber" type="n0:char25"/>
          <xsd:element name="CcSeqNo" type="n0:char10"/>
          <xsd:element name="CcValidF" type="n0:date"/>
          <xsd:element name="CcValidT" type="n0:date"/>
          <xsd:element name="CcName" type="n0:char40"/>
          <xsd:element name="Dataorigin" type="n0:char1"/>
          <xsd:element name="Authamount" type="n0:decimal23.4"/>
          <xsd:element name="Currency" type="n0:cuky5"/>
          <xsd:element name="CurrencyIso" type="n0:char3"/>
          <xsd:element name="CcAutthNo" type="n0:char10"/>
          <xsd:element name="AuthRefno" type="n0:char15"/>
          <xsd:element name="AuthDate" type="n0:date"/>
          <xsd:element name="AuthTime" type="n0:time"/>
          <xsd:element name="Merchidcl" type="n0:char15"/>
          <xsd:element name="PointOfReceipt" type="n0:char10"/>
          <xsd:element name="Terminal" type="n0:char10"/>
          <xsd:element name="Cctyp" type="n0:char2"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiactx09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="GlAccount" type="n0:char10"/>
          <xsd:element name="CondKey" type="n0:char4"/>
          <xsd:element name="AcctKey" type="n0:char3"/>
          <xsd:element name="TaxCode" type="n0:char2"/>
          <xsd:element name="TaxRate" type="n0:decimal7.3"/>
          <xsd:element name="TaxDate" type="n0:date"/>
          <xsd:element name="Taxjurcode" type="n0:char15"/>
          <xsd:element name="TaxjurcodeDeep" type="n0:char15"/>
          <xsd:element name="TaxjurcodeLevel" type="n0:char1"/>
          <xsd:element name="ItemnoTax" type="n0:numeric6"/>
          <xsd:element name="DirectTax" type="n0:char1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiret2">
        <xsd:sequence>
          <xsd:element name="Type" type="n0:char1"/>
          <xsd:element name="Id" type="n0:char20"/>
          <xsd:element name="Number" type="n0:numeric3"/>
          <xsd:element name="Message" type="n0:char220"/>
          <xsd:element name="LogNo" type="n0:char20"/>
          <xsd:element name="LogMsgNo" type="n0:numeric6"/>
          <xsd:element name="MessageV1" type="n0:char50"/>
          <xsd:element name="MessageV2" type="n0:char50"/>
          <xsd:element name="MessageV3" type="n0:char50"/>
          <xsd:element name="MessageV4" type="n0:char50"/>
          <xsd:element name="Parameter" type="n0:char32"/>
          <xsd:element name="Row" type="xsd:int"/>
          <xsd:element name="Field" type="n0:char30"/>
          <xsd:element name="System" type="n0:char10"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiache09">
        <xsd:sequence>
          <xsd:element name="ObjType" type="n0:char5"/>
          <xsd:element name="ObjKey" type="n0:char20"/>
          <xsd:element name="ObjSys" type="n0:char10"/>
          <xsd:element name="BusAct" type="n0:char4"/>
          <xsd:element name="Username" type="n0:char12"/>
          <xsd:element name="HeaderTxt" type="n0:char25"/>
          <xsd:element name="CompCode" type="n0:char4"/>
          <xsd:element name="DocDate" type="n0:date"/>
          <xsd:element name="PstngDate" type="n0:date"/>
          <xsd:element name="TransDate" type="n0:date"/>
          <xsd:element name="FiscYear" type="n0:numeric4"/>
          <xsd:element name="FisPeriod" type="n0:numeric2"/>
          <xsd:element name="DocType" type="n0:char2"/>
          <xsd:element name="RefDocNo" type="n0:char16"/>
          <xsd:element name="AcDocNo" type="n0:char10"/>
          <xsd:element name="ObjKeyR" type="n0:char20"/>
          <xsd:element name="ReasonRev" type="n0:char2"/>
          <xsd:element name="CompoAcc" type="n0:char4"/>
          <xsd:element name="RefDocNoLong" type="n0:char35"/>
          <xsd:element name="AccPrinciple" type="n0:char4"/>
          <xsd:element name="NegPostng" type="n0:char1"/>
          <xsd:element name="ObjKeyInv" type="n0:char20"/>
          <xsd:element name="BillCategory" type="n0:char1"/>
          <xsd:element name="Vatdate" type="n0:date"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiaccait">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="ContAcct" type="n0:char12"/>
          <xsd:element name="MainTrans" type="n0:char4"/>
          <xsd:element name="SubTrans" type="n0:char4"/>
          <xsd:element name="FuncArea" type="n0:char4"/>
          <xsd:element name="FmArea" type="n0:char4"/>
          <xsd:element name="CmmtItem" type="n0:char14"/>
          <xsd:element name="FundsCtr" type="n0:char16"/>
          <xsd:element name="Fund" type="n0:char10"/>
          <xsd:element name="AgreementGuid" type="n0:byte16"/>
          <xsd:element name="FuncAreaLong" type="n0:char16"/>
          <xsd:element name="CmmtItemLong" type="n0:char24"/>
          <xsd:element name="GrantNbr" type="n0:char20"/>
          <xsd:element name="Vtref" type="n0:char20"/>
          <xsd:element name="VtrefGuid" type="n0:byte16"/>
          <xsd:element name="ExtObjectId" type="n0:char34"/>
          <xsd:element name="BusScenario" type="n0:char16"/>
          <xsd:element name="ReferenceNo" type="n0:char16"/>
          <xsd:element name="BudgetPeriod" type="n0:char10"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacpa09">
        <xsd:sequence>
          <xsd:element name="Name" type="n0:char35"/>
          <xsd:element name="Name2" type="n0:char35"/>
          <xsd:element name="Name3" type="n0:char35"/>
          <xsd:element name="Name4" type="n0:char35"/>
          <xsd:element name="PostlCode" type="n0:char10"/>
          <xsd:element name="City" type="n0:char35"/>
          <xsd:element name="Country" type="n0:char3"/>
          <xsd:element name="CountryIso" type="n0:char2"/>
          <xsd:element name="Street" type="n0:char35"/>
          <xsd:element name="PoBox" type="n0:char10"/>
          <xsd:element name="PobxPcd" type="n0:char10"/>
          <xsd:element name="PobkCurac" type="n0:char16"/>
          <xsd:element name="BankAcct" type="n0:char18"/>
          <xsd:element name="BankNo" type="n0:char15"/>
          <xsd:element name="BankCtry" type="n0:char3"/>
          <xsd:element name="BankCtryIso" type="n0:char2"/>
          <xsd:element name="TaxNo1" type="n0:char16"/>
          <xsd:element name="TaxNo2" type="n0:char11"/>
          <xsd:element name="Tax" type="n0:char1"/>
          <xsd:element name="EqualTax" type="n0:char1"/>
          <xsd:element name="Region" type="n0:char3"/>
          <xsd:element name="CtrlKey" type="n0:char2"/>
          <xsd:element name="InstrKey" type="n0:char2"/>
          <xsd:element name="DmeInd" type="n0:char1"/>
          <xsd:element name="LanguIso" type="n0:char2"/>
          <xsd:element name="Iban" type="n0:char34"/>
          <xsd:element name="SwiftCode" type="n0:char11"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiaccr09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="CurrType" type="n0:char2"/>
          <xsd:element name="Currency" type="n0:cuky5"/>
          <xsd:element name="CurrencyIso" type="n0:char3"/>
          <xsd:element name="AmtDoccur" type="n0:decimal23.4"/>
          <xsd:element name="ExchRate" type="n0:decimal9.5"/>
          <xsd:element name="ExchRateV" type="n0:decimal9.5"/>
          <xsd:element name="AmtBase" type="n0:decimal23.4"/>
          <xsd:element name="DiscBase" type="n0:decimal23.4"/>
          <xsd:element name="DiscAmt" type="n0:decimal23.4"/>
          <xsd:element name="TaxAmt" type="n0:decimal23.4"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacar09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="Customer" type="n0:char10"/>
          <xsd:element name="GlAccount" type="n0:char10"/>
          <xsd:element name="RefKey1" type="n0:char12"/>
          <xsd:element name="RefKey2" type="n0:char12"/>
          <xsd:element name="RefKey3" type="n0:char20"/>
          <xsd:element name="CompCode" type="n0:char4"/>
          <xsd:element name="BusArea" type="n0:char4"/>
          <xsd:element name="Pmnttrms" type="n0:char4"/>
          <xsd:element name="BlineDate" type="n0:date"/>
          <xsd:element name="DsctDays1" type="n0:decimal3.0"/>
          <xsd:element name="DsctDays2" type="n0:decimal3.0"/>
          <xsd:element name="Netterms" type="n0:decimal3.0"/>
          <xsd:element name="DsctPct1" type="n0:decimal5.3"/>
          <xsd:element name="DsctPct2" type="n0:decimal5.3"/>
          <xsd:element name="PymtMeth" type="n0:char1"/>
          <xsd:element name="Pmtmthsupl" type="n0:char2"/>
          <xsd:element name="PaymtRef" type="n0:char30"/>
          <xsd:element name="DunnKey" type="n0:char1"/>
          <xsd:element name="DunnBlock" type="n0:char1"/>
          <xsd:element name="PmntBlock" type="n0:char1"/>
          <xsd:element name="VatRegNo" type="n0:char20"/>
          <xsd:element name="AllocNmbr" type="n0:char18"/>
          <xsd:element name="ItemText" type="n0:char50"/>
          <xsd:element name="PartnerBk" type="n0:char4"/>
          <xsd:element name="ScbankInd" type="n0:char3"/>
          <xsd:element name="Businessplace" type="n0:char4"/>
          <xsd:element name="Sectioncode" type="n0:char4"/>
          <xsd:element name="Branch" type="n0:char10"/>
          <xsd:element name="PymtCur" type="n0:cuky5"/>
          <xsd:element name="PymtCurIso" type="n0:char3"/>
          <xsd:element name="PymtAmt" type="n0:decimal23.4"/>
          <xsd:element name="CCtrArea" type="n0:char4"/>
          <xsd:element name="BankId" type="n0:char5"/>
          <xsd:element name="Supcountry" type="n0:char3"/>
          <xsd:element name="SupcountryIso" type="n0:char2"/>
          <xsd:element name="TaxCode" type="n0:char2"/>
          <xsd:element name="Taxjurcode" type="n0:char15"/>
          <xsd:element name="TaxDate" type="n0:date"/>
          <xsd:element name="SpGlInd" type="n0:char1"/>
          <xsd:element name="PartnerGuid" type="n0:char32"/>
          <xsd:element name="AltPayee" type="n0:char10"/>
          <xsd:element name="AltPayeeBank" type="n0:char4"/>
          <xsd:element name="DunnArea" type="n0:char2"/>
          <xsd:element name="CaseGuid" type="n0:char32"/>
          <xsd:element name="ProfitCtr" type="n0:char10"/>
          <xsd:element name="Fund" type="n0:char10"/>
          <xsd:element name="GrantNbr" type="n0:char20"/>
          <xsd:element name="Measure" type="n0:char24"/>
          <xsd:element name="Housebankacctid" type="n0:char5"/>
          <xsd:element name="ResDoc" type="n0:char10"/>
          <xsd:element name="ResItem" type="n0:numeric3"/>
          <xsd:element name="FundLong" type="n0:char20"/>
          <xsd:element name="DisputeIfType" type="n0:char1"/>
          <xsd:element name="BudgetPeriod" type="n0:char10"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiacwt09">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="WtType" type="n0:char2"/>
          <xsd:element name="WtCode" type="n0:char2"/>
          <xsd:element name="BasAmtLc" type="n0:decimal23.4"/>
          <xsd:element name="BasAmtTc" type="n0:decimal23.4"/>
          <xsd:element name="BasAmtL2" type="n0:decimal23.4"/>
          <xsd:element name="BasAmtL3" type="n0:decimal23.4"/>
          <xsd:element name="ManAmtLc" type="n0:decimal23.4"/>
          <xsd:element name="ManAmtTc" type="n0:decimal23.4"/>
          <xsd:element name="ManAmtL2" type="n0:decimal23.4"/>
          <xsd:element name="ManAmtL3" type="n0:decimal23.4"/>
          <xsd:element name="AwhAmtLc" type="n0:decimal23.4"/>
          <xsd:element name="AwhAmtTc" type="n0:decimal23.4"/>
          <xsd:element name="AwhAmtL2" type="n0:decimal23.4"/>
          <xsd:element name="AwhAmtL3" type="n0:decimal23.4"/>
          <xsd:element name="BasAmtInd" type="n0:char1"/>
          <xsd:element name="ManAmtInd" type="n0:char1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Bapiackec9">
        <xsd:sequence>
          <xsd:element name="ItemnoAcc" type="n0:numeric10"/>
          <xsd:element name="Fieldname" type="n0:char30"/>
          <xsd:element name="Character" type="n0:char18"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacextc">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacextc" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiparex">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiparex" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacre09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacre09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiackev9">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiackev9" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacap09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacap09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacgl09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacgl09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacpc09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacpc09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiactx09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiactx09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiret2">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiret2" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiaccait">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiaccait" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiaccr09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiaccr09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacar09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacar09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiacwt09">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiacwt09" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TableOfBapiackec9">
        <xsd:sequence>
          <xsd:element name="item" type="tns:Bapiackec9" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="ZbapiAccDocumentPost">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="Accountgl" type="tns:TableOfBapiacgl09" minOccurs="0"/>
            <xsd:element name="Accountpayable" type="tns:TableOfBapiacap09" minOccurs="0"/>
            <xsd:element name="Accountreceivable" type="tns:TableOfBapiacar09" minOccurs="0"/>
            <xsd:element name="Accounttax" type="tns:TableOfBapiactx09" minOccurs="0"/>
            <xsd:element name="Accountwt" type="tns:TableOfBapiacwt09" minOccurs="0"/>
            <xsd:element name="Contractheader" type="tns:Bapiaccahd" minOccurs="0"/>
            <xsd:element name="Contractitem" type="tns:TableOfBapiaccait" minOccurs="0"/>
            <xsd:element name="Criteria" type="tns:TableOfBapiackec9" minOccurs="0"/>
            <xsd:element name="Currencyamount" type="tns:TableOfBapiaccr09"/>
            <xsd:element name="Customercpd" type="tns:Bapiacpa09" minOccurs="0"/>
            <xsd:element name="Documentheader" type="tns:Bapiache09"/>
            <xsd:element name="Extension1" type="tns:TableOfBapiacextc" minOccurs="0"/>
            <xsd:element name="Extension2" type="tns:TableOfBapiparex" minOccurs="0"/>
            <xsd:element name="Paymentcard" type="tns:TableOfBapiacpc09" minOccurs="0"/>
            <xsd:element name="Realestate" type="tns:TableOfBapiacre09" minOccurs="0"/>
            <xsd:element name="Return" type="tns:TableOfBapiret2"/>
            <xsd:element name="Valuefield" type="tns:TableOfBapiackev9" minOccurs="0"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ZbapiAccDocumentPostResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="Accountgl" type="tns:TableOfBapiacgl09"/>
            <xsd:element name="Accountpayable" type="tns:TableOfBapiacap09"/>
            <xsd:element name="Accountreceivable" type="tns:TableOfBapiacar09"/>
            <xsd:element name="Accounttax" type="tns:TableOfBapiactx09"/>
            <xsd:element name="Accountwt" type="tns:TableOfBapiacwt09"/>
            <xsd:element name="Contractitem" type="tns:TableOfBapiaccait"/>
            <xsd:element name="Criteria" type="tns:TableOfBapiackec9"/>
            <xsd:element name="Currencyamount" type="tns:TableOfBapiaccr09"/>
            <xsd:element name="Extension1" type="tns:TableOfBapiacextc"/>
            <xsd:element name="Extension2" type="tns:TableOfBapiparex"/>
            <xsd:element name="ObjKey" type="n0:char20"/>
            <xsd:element name="ObjSys" type="n0:char10"/>
            <xsd:element name="ObjType" type="n0:char5"/>
            <xsd:element name="Paymentcard" type="tns:TableOfBapiacpc09"/>
            <xsd:element name="Realestate" type="tns:TableOfBapiacre09"/>
            <xsd:element name="Return" type="tns:TableOfBapiret2"/>
            <xsd:element name="Valuefield" type="tns:TableOfBapiackev9"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="ZbapiAccDocumentPost">
    <wsdl:part name="parameters" element="tns:ZbapiAccDocumentPost"/>
  </wsdl:message>
  <wsdl:message name="ZbapiAccDocumentPostResponse">
    <wsdl:part name="parameters" element="tns:ZbapiAccDocumentPostResponse"/>
  </wsdl:message>
  <wsdl:portType name="ZBAPI_ACC_DOCUMENT_POST">
    <wsp:Policy>
      <wsp:PolicyReference URI="#IF_IF_ZBAPI_ACC_DOCUMENT_POST"/>
    </wsp:Policy>
    <wsdl:operation name="ZbapiAccDocumentPost">
      <wsp:Policy>
        <wsp:PolicyReference URI="#OP_IF_OP_ZbapiAccDocumentPost"/>
      </wsp:Policy>
      <wsdl:input message="tns:ZbapiAccDocumentPost"/>
      <wsdl:output message="tns:ZbapiAccDocumentPostResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ZBAPI_ACC_DOCUMENT_POST" type="tns:ZBAPI_ACC_DOCUMENT_POST">
    <wsp:Policy>
      <wsp:PolicyReference URI="#BN_BN_ZBAPI_ACC_DOCUMENT_POST"/>
    </wsp:Policy>
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
    <wsdl:operation name="ZbapiAccDocumentPost">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ZBAPI_ACC_DOCUMENT_POST">
    <wsdl:port name="ZBAPI_ACC_DOCUMENT_POST" binding="tns:ZBAPI_ACC_DOCUMENT_POST">
      <soap:address location="http://10.1.144.36:8000/sap/bc/srt/rfc/sap/zbapi_acc_document_post/400/zbapi_acc_document_post/zbapi_acc_document_post"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------