PROCEDURE TesteCapicom
LOCAL cXml := ;
[<soapenv:Envelope ] + ;
[xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ] + ;
[xmlns:xsd="http://www.w3.org/2001/XMLSchema" ] + ;
[xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ] + ;
[xmlns:urn="urn:ATMWebSvr">] + ;
[<soapenv:Header/>] + ;
[<soapenv:Body>] + ;
[<urn:averbaCTe ] + ;
[soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">] + ;
[<usuario xsi:type="xsd:string">AQUIUSUARIO</usuario>] + ;
[<senha xsi:type="xsd:string">AQUISENHA</senha>] + ;
[<codatm xsi:type="xsd:string">AQUICODATM</codatm>] + ;
[<xmlCTe xsi:type="xsd:string">AQUIXMLCTE</xmlCTe>] + ;
[</urn:averbaCTe>] + ;
[</soapenv:Body>] + ;
[</soapenv:Envelope>]
SetMode( 25, 80 )
CLS
oSefaz := SefazClass():New()
oSefaz:cSoapUrl := "http://webserver.averba.com.br/"
oSefaz:cSoapAction := "urn:ATMWebSvr#averbaCTe"
oSefaz:MicrosoftXmlSoapPost()
? "Retorno:" + oSefaz:cXmlRetorno
Inkey(0)
RETURN
hbmk2: Hint: Install package sefazclass and input file 'sefazclass.hbc' for
missing Harbour function(s): sefazclass()
d:\temp>hbmk2 test sefazclass.hbc
hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (6776e098ad) (2017-10-03 08:08)
Copyright (c) 1999-2017, https://github.com/vszakats/harbour-core/
Compiling 'test.prg'...
Lines 32, Functions/Procedures 1
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_fyb1sr.dir\test.c'... Done.
Retorno:Erro SOAP: XML retorno npo contTm soapenv:Body <?xml version="1.0" encod
ing="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmls
oap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope
/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/200
1/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
><SOAP-ENV:Body><averbaCTeResponse><return xsi:type="xsd:string"><MSGS>
<ERRO>
<NUMDOC>NF</NUMDOC>
<SERIEDOC>NF</SERIEDOC>
<FILIALDOC>NF</FILIALDOC>
<LINHAARQ>NF</LINHAARQ>
<ERRODETALHE>
<CODIGO>900</CODIGO>
<VALORENVIADO></VALORENVIADO>
<VALORESPERADO></VALORESPERADO>
<LIMITE></LIMITE>
<DESCCOMPLETA>Usuario nao informado</DESCCOMPLETA>
</ERRODETALHE>
</ERRO>
</MSGS>
</return></averbaCTeResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
O erro é normal, sem XML de CTE não tem informação.
Mas ok, praticamente 8 linhas de código fonte.
E pra quem ainda não viu, o SOAPUI ajuda.