Hello,
I have a Webservice with this wsdl:
<soapenv:Envelope 
xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="
http://kis14tra.wsbeans.iseries/xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <xsd:kis14tra>
         <xsd:args0>
            <xsd:_P0RESULTAT>?</xsd:_P0RESULTAT>
            <xsd:_P0XMLINPUT>?</xsd:_P0XMLINPUT>
         </xsd:args0>
      </xsd:kis14tra>
   </soapenv:Body>
</soapenv:Envelope>
I use the Integrated Webservice (IWS) to implement the Service. As 
P0XMLINPUT I want to pass this XML as a string:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transportimport ISHOP="9XX">
    <Kunde Nummer="9893" NummerERP="373049" />
    <Pos>
        <ExterneArtikelNr>111246</ExterneArtikelNr>
        <Farbe>111</Farbe>
        <Ausfuehrung>183</Ausfuehrung>
        <Menge>1</Menge>
    </Pos>
    <Pos>
        <ExterneArtikelNr>347213</ExterneArtikelNr>
        <Farbe>100</Farbe>
        <Ausfuehrung>184</Ausfuehrung>
        <Menge>1</Menge>
    </Pos>
</Transportimport>
I use this program and HTTPAPI to test the webservice:
  H bnddir('HTTPAPI')
     H copyright('(c) 2013 WEMAG Consulting AG, CH-3122 Kehrsatz')
      *
     W*E CRTRPGMOD kis144   srcfile(*libl/qrpglesrc)
     W*E+       DBGVIEW(*SOURCE)
     W*E+       REPLACE(*YES)
     W*E CRTPGM kis144   bndsrvpgm(qsysdir/qaxis10ht) actgrp(*new)
     W*E+       REPLACE(*YES)
     W*E DLTMOD kis144
     E*W
      *
      /copy HTTPAPI_H
      /copy apr_b64_h
      /copy iconv_h
      /copy ifsio_h
      /copy errno_h
     D genIconvTable   PR
     D  fromCCSID                    10i 0  const
     D  toCCSID                      10i 0  const
     D convertString   PR         65502a    varying
     D  String                    65502a    const varying options(*varsize)
     D MapXmlData      PR
     d  resultText                32760a
     d  depth                        10i 0
     d  name                       1024a     varying const
     d  path                      24576a     varying const
     d  value                     65535a     varying const
     d  attrs                          *     dim(32767)
     d                                       const options(*varsize)
     d kis144          PR                  ExtPgm('KIS144')
     d kis144          PI
     d VARYINGDATAOFFSET...
     d                 c                     const(2)
     D VARPREF         C                   2
     d ifsPathDec      s            100a    varying
     d fd              s             10i 0
     d err             s             10i 0
     d msg             s             52a   varying
     d SOAP            s           1024a     varying
     d rc              s             10i 0
     d len             s             10i 0
     d xmlInput        s          32765a
     d sizeEnc         s             20i 0
     d resultText      s          32760a
     d decdata         s          32760a
     d encdata         s          32760a
     d encdata1        s          32760a
     d decdata1        s          32760a
     d enclen          s             10i 0
     d declen          s             10i 0
     d table           ds                  likeds(iconv_t)
      /free
           *inlr = *on;
        ifsPathDec = '/jgvtmp/Kis14TraDecUtf02a.xml';
          //   xmlInput = 'iejnppuuttXmL09';
        xmlInput = '<?xml version="1.0" encoding="UTF-8" 
standalone="yes"?>'
           + ' <Transportimport ISHOP="9XX">'
           + '  <Kunde Nummer="9893" NummerERP="373049" FirmaERP="50" />'
           + '  <Pos>'
           + ' <ExterneArtikelNr>111246</ExterneArtikelNr>'
           + '   <Farbe>111</Farbe>'
           + '   <Ausfuehrung>183</Ausfuehrung>'
           + '   <Menge>1</Menge>'
           + '  </Pos>'
           + '  <Pos>'
           + ' <ExterneArtikelNr>347213</ExterneArtikelNr>'
           + '   <Farbe>100</Farbe>'
           + '   <Ausfuehrung>184</Ausfuehrung>'
           + '   <Menge>1</Menge>'
           + '  </Pos>'
           + ' </Transportimport>';
        SOAP=  '<soapenv:Envelope xmlns:soapenv='
             + '"
http://schemas.xmlsoap.org/soap/envelope/"'
             + ' xmlns:xsd="
http://kis14tra.wsbeans.iseries/xsd">'
             + '   <soapenv:Header/>'
             + '   <soapenv:Body>'
             + '      <xsd:kis14tra>'
             + '         <xsd:args0>'
             + '            <xsd:_P0RESULTAT/>'
             + '            <xsd:_P0XMLINPUT>' + %trim(xmlInput)
             + ' </xsd:_P0XMLINPUT>'
             + '         </xsd:args0>'
             + '      </xsd:kis14tra>'
             + '   </soapenv:Body>'
             + '</soapenv:Envelope>';
           len = %len(SOAP);
           msg = 'len *' + %char(len) + '*';
           dsply msg;
       //  http_setCCSIDs(1208 : 0);       **************
           http_debug(*ON: '/jgvtmp/kis14TraDebug.txt');
           rc = http_post_xml('
http://chwemag1:10010/web/services/KIS14TRA'
                            : %addr(SOAP) + VARYINGDATAOFFSET
                            : %len(SOAP)
                            : *NULL
                            : %paddr(MapXmlData)
                            : %addr(resultText)
                            : HTTP_TIMEOUT
                            : HTTP_USERAGENT
                            : 'text/xml; charset=UTF-8'
                            : 'urn.kis14tra');
           if (rc <> 1);
             http_crash();
           endif;
          msg = 'rText*' + %subst(resultText: 1: 30) + '*end';
          dsply msg;
          encdata = resultText;
          msg = 'enclen*' + %char(%len(encdata)) + '*';
          dsply msg;
          declen = apr_base64_decode_binary(decdata
                      : encData);
          msg = 'declen *' + %char(declen) + '*';
          dsply msg;
          genIconvTable(1208: 500);  // convert utf-8  -> EBCDIC
          decdata = convertString(decdata);
          iconv_close(table);
          msg = 'dText*' + %subst(decdata: 1: 30) + '*end';
          dsply msg;
           unlink(ifsPathDec);
           fd = open(ifsPathDec
              : O_CREAT+O_WRONLY+O_TEXTDATA+O_TEXT_CREAT+O_CCSID
              : S_IWUSR+S_IRUSR+S_IRGRP+S_IROTH
              : 1208: 0);
           if fd < 0;
               die('openDec(): '+%str(strerror(errno)));
               return;
            endif;
            callp write(fd: %addr(decdata): declen);
            callp close (fd);
           return;
      /end-free
     P MapXmlData      B
     D MapXmlData      PI
     d  resultText                32760a
     d  depth                        10i 0
     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 (name='ns:_P0RESULTAT');
           resultText = %trim(value);
         endif;
      /end-free
     P MapXmlData      E
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      * genIconvTable
      *
      *  peFromCCSID
      *  peToCCSID
      *
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P genIconvTable   B
     d                 PI
     d   peFromCCSID                 10i 0 const
     d   peToCCSID                   10i 0 const
     d i               s             10i 0
     D from            ds                  likeds(QtqCode_T)
     D                                     inz(*LIKEDS)
     D to              ds                  likeds(QtqCode_T)
     D                                     inz(*LIKEDS)
     D errMsg          s             50A   varying
      *
      /free
         from.CCSID  = peFromCCSID;
         to.CCSID    = peToCCSID;
         table = QtqIconvOpen(to: from);
         if (table.return_value = -1);
             ReportError();
         endif;
         return;
      /end-free
     P genIconvTable   E
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      * convertString
      *
      *  peString    String to be converted
      *
      *  result is the converted string
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P convertString   B
     d                 PI         65502a   varying
     d   peString                 65502a   const varying options(*varsize)
     D VARPREF         C                   2
     D p_input         s               *
     D inleft          s             10U 0
     D p_output        s               *
     D outleft         s             10U 0
     D len             s             10U 0
     D input_data      s          65502a   varying
     D output_data     s          65502a   varying
      *
      /free
         input_data = peString;
         %len(output_data) = %size(output_data) - VARPREF;
         p_input = %addr(input_data) + VARPREF;
         inleft  = %len(input_data);
         p_output = %addr(output_data) + VARPREF;
         outleft  = %len(output_data);
         iconv( table
              : p_input
              : inleft
              : p_output
              : outleft );
         %len(output_data) = %len(output_data) - outleft;
         len = %len(output_data);
         return output_data;
      /end-free
     P convertString   E
      /DEFINE ERRNO_LOAD_PROCEDURE
      /COPY ERRNO_H
My problem is, that the input parameter is empty, when it reaches the 
webservice.
If I use the test-function, that comes with the IWS 
(chwemag1:2001/HTTPAdmin) the service works all-right:
<soapenv:Envelope><soapenv:Body><q0:kis14tra><q0:args0><q0:_P0RESULTAT/><q0:_P0XMLINPUT><?xml 
version="1.0" encoding="UTF-8" standalone="yes"?> <Transportimport 
ISHOP="9XX">     <Kunde Nummer="9893" NummerERP="373049" />     <Pos> 
<ExterneArtikelNr>111246</ExterneArtikelNr> <Farbe>111</Farbe> 
<Ausfuehrung>183</Ausfuehrung> <Menge>1</Menge>     </Pos>     <Pos> 
<ExterneArtikelNr>347213</ExterneArtikelNr> <Farbe>100</Farbe> 
<Ausfuehrung>184</Ausfuehrung> <Menge>1</Menge>     </Pos> 
</Transportimport></q0:_P0XMLINPUT></q0:args0></q0:kis14tra></soapenv:Body></soapenv:Envelope>
Result:
<soapenv:Envelope><soapenv:Body><ns:kis14traResponse><ns:return><ns:_P0RESULTAT>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+IDxSZXN1bHRhdEtpczE0dHJhIHZlcnNpb249IjEuMCI+IDxHZW5lcmF0aW9uVGltZXN0YW1wPjIwMTMtMDktMTZUMTQuNDAuNDQ8L0dlbmVyYXRpb25UaW1lc3RhbXA+ICA8QmFzaXNEYXRlbj4gPEZpcm1hPjAxPC9GaXJtYT4gPEV4dGVybmVLdW5kZW5OdW1tZXI+OTg1Njc1PC9FeHRlcm5lS3VuZGVuTnVtbWVyPiA8TFRDb2RlPkE8L0xUQ29kZT4gPFZlcmthdWZzc3RlbGxlPjAyPC9WZXJrYXVmc3N0ZWxsZT4gPFdlcms+MTAwPC9XZXJrPiA8QW56YWhsRGV0YWlsUG9zaXRpb25lbj4xMDwvQW56YWhsRGV0YWlsUG9zaXRpb25lbj4gPC9CYXNpc0RhdGVuPiA8VHJhbnNwb3J0S29zdGVuPjEyMzQuNTY8L1RyYW5zcG9ydEtvc3Rlbj4gIDwvUmVzdWx0YXRLaXMxNHRyYT4gIA==</ns:_P0RESULTAT></ns:return></ns:kis14traResponse></soapenv:Body></soapenv:Envelope>
If I use just a simple text-string as input, it works fine too. It looks 
like the XML-file is the problem.
What do I do wrong?
Best regards
Jan
As an Amazon Associate we earn from qualifying purchases.