terça-feira, 29 de setembro de 2015

Webservice - GNRE-ES - outros detalhes para envio e consulta de recibo

Cabeçalho SOAP HEADER

*Example code:
  datalr_header_protocol TYPE REF TO IF_WSPROTOCOL_WS_HEADER.

    DATAixml         TYPE REF TO if_ixml,
          xml_document TYPE REF TO if_ixml_document,
          xml_root     TYPE REF TO if_ixml_element,
          xml_element  TYPE REF TO if_ixml_element,
          xml_node     TYPE REF TO if_ixml_node.
    DATA l_xstring TYPE xstring.
    DATA l_string TYPE string.

    DATAname      TYPE string,
          namespace TYPE string.
    CONCATENATE
      '<soapenv:Header>'
          '<n0:DuaServiceHeader xmlns:n0="http://www.sefaz.es.gov.br/duae">'
             '<n1:versao xmlns:n1="http://www.sefaz.es.gov.br/duae">1.00</n1:versao>'
          '</n0:DuaServiceHeader>'
       '</soapenv:Header>'
    INTO l_string.

   lr_header_protocol ?= GO_Proxy->get_protocolif_wsprotocol=>ws_header ).

*    convert to xstring
    l_xstring cl_proxy_service=>cstring2xstringl_string ).
    IF l_string IS NOT INITIAL.
*    create ixml dom document from xml xstring
      CALL FUNCTION 'SDIXML_XML_TO_DOM'
        EXPORTING
          xml           l_xstring
        IMPORTING
          document      xml_document
        EXCEPTIONS
          invalid_input 1
          OTHERS        2.

      IF sy-subrc AND xml_document IS NOT INITIAL.
        xml_root xml_document->get_root_element).
        xml_element ?= xml_root->get_first_child).
*    add header element by element to soap header
        WHILE xml_element IS NOT INITIAL.
          name xml_element->get_name).
          namespace xml_element->get_namespace_uri).
          lr_header_protocol->set_request_headername name namespace namespace dom xml_element ).
          xml_element ?= xml_element->get_next).
        ENDWHILE.
      ENDIF.
    ENDIF.

Webservice - GNRE-PE - outros detalhes para envio e consulta de recibo

  Cabeçalho SOAP HEADER.

    DATAlr_header_protocol TYPE REF TO if_wsprotocol_ws_header.

    DATAixml         TYPE REF TO if_ixml,
          xml_document TYPE REF TO if_ixml_document,
          xml_root     TYPE REF TO if_ixml_element,
          xml_element  TYPE REF TO if_ixml_element,
          xml_node     TYPE REF TO if_ixml_node.
    DATA l_xstring TYPE xstring.
    DATA l_string TYPE string.

    DATAname      TYPE string,
          namespace TYPE string.
    CONCATENATE
      '<soapenv:Header>'
          '<n2:gnreCabecMsg xmlns:n2="http://www.gnre.pe.gov.br/webservice/GnreLoteRecepcao">'
             '<n2:versaoDados>1.00</n2:versaoDados>'
          '</n2:gnreCabecMsg>'
       '</soapenv:Header>'
    INTO l_string.

    lr_header_protocol ?= go_proxy->get_protocolif_wsprotocol=>ws_header ).

*    convert to xstring
    l_xstring cl_proxy_service=>cstring2xstringl_string ).
    IF l_string IS NOT INITIAL.
*    create ixml dom document from xml xstring
      CALL FUNCTION 'SDIXML_XML_TO_DOM'
        EXPORTING
          xml           l_xstring
        IMPORTING
          document      xml_document
        EXCEPTIONS
          invalid_input 1
          OTHERS        2.

      IF sy-subrc AND xml_document IS NOT INITIAL.
        xml_root xml_document->get_root_element).
        xml_element ?= xml_root->get_first_child).
*    add header element by element to soap header
        WHILE xml_element IS NOT INITIAL.
          name xml_element->get_name).
          namespace xml_element->get_namespace_uri).
          lr_header_protocol->set_request_headername name namespace namespace dom xml_element ).
          xml_element ?= xml_element->get_next).
        ENDWHILE.
      ENDIF.
    ENDIF.




====================================================

Na configuração do certificado digital STRUST adicionar na identidade o certificado do SEFAZ do PE também.


======================================================

Na configuração do SOAMANAGER deixar como texto HTML.
 

Webservice GNRE-ES - WSDL sem conexão PI

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://www.sefaz.es.gov.br/duae"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://www.sefaz.es.gov.br/duae"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.sefaz.es.gov.br/duae">

          <s:complexType name="SRetAcesso">
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string"/>
            </s:sequence>
          </s:complexType>
   
        <s:complexType name="SEmi">
            <s:sequence>
                <s:element minOccurs="1" name="tpAmb"   type="s:string"/>
                <s:element minOccurs="0" name="cnpjEmi" type="s:string"/>
                <s:element minOccurs="1" name="cnpjOrg" type="s:string"/>
                <s:element minOccurs="1" name="cArea"   type="s:string"/>
                <s:element minOccurs="1" name="cServ"   type="s:string"/>
                <s:element minOccurs="1" name="cnpjPes" type="s:string"/>
                <s:element minOccurs="1" name="dRef"    type="s:string"/>
                <s:element minOccurs="1" name="dVen"    type="s:string"/>
                <s:element minOccurs="1" name="dPag"    type="s:string"/>
                <s:element minOccurs="1" name="cMun"    type="s:string"/>
                <s:element minOccurs="1" name="xInf"    type="s:string"/>
                <s:element minOccurs="0" name="vMul"    type="s:string"/>
                <s:element minOccurs="0" name="vJur"    type="s:string"/>
                <s:element minOccurs="0" name="vAtu"    type="s:string"/>
                <s:element minOccurs="1" name="vRec"    type="s:decimal"/>
                <s:element minOccurs="1" name="qtde"    type="s:decimal"/>
                <s:element minOccurs="1" name="xIde"    type="s:string"/>
            </s:sequence>
            <s:attribute name="versao" type="s:string" use="required"/>    
        </s:complexType>
       
        <s:complexType name="TEmi">   
            <s:sequence>
                <s:element name="emisDua" maxOccurs="1" minOccurs="1" type="tns:SEmi"/>
            </s:sequence>       
        </s:complexType>                   
       
       <s:element name="duaEmissao">
            <s:complexType>
                <s:sequence>
                    <s:element name="duaDadosMsg" maxOccurs="0" minOccurs="1" type="tns:TEmi"/>
                </s:sequence>           
            </s:complexType>           
        </s:element>
       
        <s:complexType name="Sdua">
            <s:sequence>
                <s:element name="nDua" minOccurs="0" type="s:string"/>
                <s:element name="dEmi" minOccurs="0" type="s:string"/>
                <s:element name="vTot" minOccurs="0" type="s:string"/>
                <s:element name="nBar" minOccurs="0" type="s:string"/>
            </s:sequence>     
        </s:complexType>
       
        <s:complexType name="SRetEmi">
            <s:sequence>
                 <s:element minOccurs="0" name="tpAmb"   type="s:string"/>
                <s:element minOccurs="0" name="dRet"    type="s:string"/>
                <s:element minOccurs="0" name="nProt"   type="s:string"/>
                <s:element minOccurs="0" name="tProc"   type="s:string"/>
                <s:element minOccurs="0" name="cStat"   type="s:string"/>
                <s:element minOccurs="0" name="xMotivo" type="s:string"/>
                <s:element minOccurs="0" name="dua" type="tns:Sdua"/>
            </s:sequence>
            <s:attribute name="versao" type="s:string" use="required"/>
        </s:complexType>   
       
        <s:complexType name="TRetEmi">   
            <s:sequence>
                <s:element name="retEmisDua" minOccurs="0" maxOccurs="1"  type="tns:SRetEmi"/>
                <s:element name="retEmisDUAe"  minOccurs="0" maxOccurs="1" type="tns:SRetAcesso"/>
            </s:sequence>           
        </s:complexType>                   
       
        <s:element name="duaEmissaoResponse">
            <s:complexType>
                <s:sequence>
                    <s:element name="duaEmissaoResult" maxOccurs="1" minOccurs="0" type="tns:TRetEmi"/>
                </s:sequence>
            </s:complexType>
        </s:element>

      <s:element name="DuaServiceHeader" type="tns:DuaServiceHeader" />
      <s:complexType name="DuaServiceHeader">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="versao" type="s:string" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
     
     
      <s:complexType name="SCDAe1">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
          <s:element minOccurs="0" maxOccurs="1" name="cnpjPes" type="s:string"/>
          <s:element minOccurs="0" maxOccurs="1" name="nCda" type="s:string"/>         
        </s:sequence>
        <s:attribute name="versao" type="s:string" use="required"/>
      </s:complexType>
     
      <s:complexType name="SCDAe0">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="emisDuaCda" type="tns:SCDAe1" />
        </s:sequence>
      </s:complexType>
     
      <s:element name="duaCdaEmissao">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SCDAe0"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
      <s:complexType name="SCDAeRet1">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="dRet" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="nProt" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="tProc" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="dua" type="tns:Sdua" />         
        </s:sequence>
        <s:attribute name="versao" type="s:string" use="required"/>
      </s:complexType>           
     
      <s:complexType name="SCDAeRet0">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="retEmisDua" type="tns:SCDAeRet1" />
          <s:element minOccurs="0" maxOccurs="1" name="retAcesso" type="tns:SRetAcesso"/>
        </s:sequence>
      </s:complexType>     
     
      <s:element name="duaCdaEmissaoResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaCdaEmissaoResult"  type="tns:SCDAeRet0"/>
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:complexType name="SCons1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nDua" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="cpf" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cnpj" type="s:string"/>
          </s:sequence>
          <s:attribute name="versao" type="s:string" use="required"/>    
      </s:complexType>
     
      <s:complexType name="SCons0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="consDua" type="tns:SCons1"/>
          </s:sequence>
      </s:complexType>

      <s:element name="duaConsulta">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SCons0"/>
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:complexType name="Side">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="nDUA" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="dEmis" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cBarra" type="s:string"/>
         </s:sequence>   
      </s:complexType>
     
      <s:complexType name="SOrgao">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cnpj" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="cOrg" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xNome" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xSigla" type="s:string"/>
         </s:sequence>   
      </s:complexType>
     
      <s:complexType name="Sarea">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cArea" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="xNome" type="s:string"/>
         </s:sequence>   
      </s:complexType>

      <s:complexType name="SServ">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cServ" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="xNome" type="s:string"/>
         </s:sequence>         
      </s:complexType>
     
      <s:complexType name="SRece">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cRece" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="VRece" type="s:string"/>
         </s:sequence>         
      </s:complexType>
     
      <s:complexType name="SData">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="dRef" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="dVen" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dPag" type="s:string"/>
         </s:sequence>         
      </s:complexType>     
     
      <s:complexType name="SContri">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cnpj" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="xNome" type="s:string"/>
         </s:sequence>         
      </s:complexType>
     
      <s:complexType name="SValor">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="vMul" type="s:string"/>   
            <s:element minOccurs="0" maxOccurs="1" name="vJur" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="vAtu" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="vCred" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="vTot" type="s:string"/>
         </s:sequence>               
      </s:complexType>
     
      <s:complexType name="SPgto">
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="cPgto" type="s:string"/>   
         </s:sequence>         
      </s:complexType>
     
      <s:complexType name="SinfDUAe">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="ide" type="tns:Side"/>
            <s:element minOccurs="0" maxOccurs="1" name="orgao" type="tns:SOrgao"/>
            <s:element minOccurs="0" maxOccurs="1" name="area" type="tns:Sarea"/>
            <s:element minOccurs="0" maxOccurs="1" name="serv" type="tns:SServ"/>
            <s:element minOccurs="0" maxOccurs="1" name="rece" type="tns:SRece"/>
            <s:element minOccurs="0" maxOccurs="1" name="contri" type="tns:SContri"/>
            <s:element minOccurs="0" maxOccurs="1" name="data" type="tns:SData"/>
            <s:element minOccurs="0" maxOccurs="1" name="valor" type="tns:SValor"/>
            <s:element minOccurs="0" maxOccurs="1" name="infComp" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="pgto" type="tns:SPgto"/>
         </s:sequence>   
         <s:attribute name="versao" type="s:string" use="required"/>
      </s:complexType>
     
      <s:complexType name="SDua">
         <s:sequence>
         <s:element minOccurs="0" maxOccurs="1" name="infDUAe" type="tns:SinfDUAe"/>
         </s:sequence>   
      </s:complexType>
     
      <s:complexType name="SConsRet1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dRet" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nProt" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="tProc" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dua" type="tns:SDua"/>
          </s:sequence>
          <s:attribute name="versao" type="s:string"/>
      </s:complexType>

      <s:complexType name="SConsRet0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="retConsDua" type="tns:SConsRet1"/>
            <s:element minOccurs="0" maxOccurs="1" name="retAcesso" type="tns:SRetAcesso"/>
          </s:sequence>
      </s:complexType>
     
      <s:element name="duaConsultaResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaConsultaResult" type="tns:SConsRet0"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
      <s:complexType name="SConsAS1">
         <s:sequence>
                <s:element minOccurs="1" name="tpAmb" type="s:string"/>
                <s:element minOccurs="1" name="cnpj" type="s:string"/>
         </s:sequence>
         <s:attribute name="versao" type="s:string" use="required"/>
      </s:complexType>     
     
      <s:complexType name="SConsAS0">
         <s:sequence>
            <s:element minOccurs="1" name="consAreaServico" type="tns:SConsAS1"/>
         </s:sequence>
      </s:complexType>           
     
      <s:element name="duaConsultaAreaServico">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SConsAS0"/>
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:complexType name="SServAS">
        <s:attribute name="cod" type="s:string"/>
        <s:attribute name="desc" type="s:string"/>
        <s:attribute name="codReceita" type="s:string"/>
        <s:attribute name="valor" type="s:string"/>
        <s:attribute name="tipoUnidade" type="s:string"/>
        <s:attribute name="flagDecimal" type="s:string"/>
      </s:complexType>          
     
      <s:complexType name="SAreaAS">
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="servico" type="tns:SServAS"/>
         </s:sequence>
        <s:attribute name="cod" type="s:string"/>
        <s:attribute name="desc" type="s:string"/>
      </s:complexType>          
     
        <s:complexType name="SOrgaoAS">
         <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="area" type="tns:SAreaAS"/>
         </s:sequence>
        <s:attribute name="cnpj" type="s:string"/>
        <s:attribute name="nome" type="s:string"/>
        <s:attribute name="sigla" type="s:string"/>
      </s:complexType>   
     
     
      <s:complexType name="SConsASRet1">
         <s:sequence>
                <s:element minOccurs="1" name="tpAmb" type="s:string"/>
                <s:element minOccurs="1" name="dRet" type="s:string"/>
                <s:element minOccurs="1" name="nProt" type="s:string"/>
                <s:element minOccurs="1" name="tProc" type="s:string"/>
                <s:element minOccurs="1" name="cStat" type="s:string"/>   
                <s:element minOccurs="1" name="xMotivo" type="s:string"/>
                <s:element minOccurs="0" name="orgao" type="tns:SOrgaoAS"/>
         </s:sequence>
         <s:attribute name="versao" type="s:string"/>
      </s:complexType>     
     
      <s:complexType name="SConsASRet0">
         <s:sequence>
            <s:element minOccurs="0" name="retConsAreaServico" type="tns:SConsASRet1"/>
            <s:element minOccurs="0" maxOccurs="1" name="retAcesso" type="tns:SRetAcesso"/>
         </s:sequence>
      </s:complexType>           
     
      <s:element name="duaConsultaAreaServicoResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="0" name="duaConsultaAreaServicoResult" type="tns:SConsASRet0"/>
          </s:sequence>
        </s:complexType>
      </s:element>     
     
      <s:complexType name="SConsMunF">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
          </s:sequence>       
          <s:attribute name="versao" type="s:string"/>
      </s:complexType>
     
      <s:complexType name="SConsMun">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="consMunicipio" type="tns:SConsMunF"/>
          </s:sequence>       
      </s:complexType>
     
      <s:element name="duaConsultaMunicipio">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SConsMun"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
      <s:complexType name="SMun">
        <s:attribute name="cod" type="s:string"/>
        <s:attribute name="desc" type="s:string"/>           
      </s:complexType>
     
      <s:complexType name="SConsMunResF">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dRet" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nProt" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="tProc" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="unbounded" name="municipio" type="tns:SMun"/>
        </s:sequence>
        <s:attribute name="versao" type="s:string"/>
      </s:complexType>
     
      <s:complexType name="SConsMunRes">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="retConsMunicipio" type="tns:SConsMunResF"/>
            <s:element minOccurs="0" maxOccurs="1" name="retAcesso" type="tns:SRetAcesso"/>
          </s:sequence>       
      </s:complexType>     

      <s:element name="duaConsultaMunicipioResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaConsultaMunicipioResult" type="tns:SConsMunRes"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
        <s:complexType name="SPDF1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nDua" type="s:string"/>           
            <s:element minOccurs="0" maxOccurs="1" name="cpf" type="s:string"/>           
            <s:element minOccurs="0" maxOccurs="1" name="cnpj" type="s:string"/>           
          </s:sequence>
          <s:attribute name="versao" type="s:string" use="required"/>
        </s:complexType>           
     
        <s:complexType name="SPDF0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="obterPdfDua" type="tns:SPDF1"/>
          </s:sequence>
        </s:complexType>     
     
      <s:element name="duaObterPdf">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SPDF0"/>
          </s:sequence>
        </s:complexType>
      </s:element>

        <s:complexType name="SPDFRet1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dRet" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nProt" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="tProc" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xPdf" type="s:string"/>           
          </s:sequence>
          <s:attribute name="versao" type="s:string" use="required"/>
        </s:complexType>

        <s:complexType name="SPDFRet0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="retEmisDua" type="tns:SPDFRet1"/>
          </s:sequence>
        </s:complexType>
     
      <s:element name="duaObterPdfResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaObterPdfResult" type="tns:SPDFRet0"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
        <s:complexType name="SVlrSrv1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cnpj" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cArea" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cServ" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="qtde" type="s:string"/>           
          </s:sequence>
          <s:attribute name="versao" type="s:string" use="required"/>
        </s:complexType>           
     
        <s:complexType name="SVlrSrv0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="consValorServico" type="tns:SVlrSrv1"/>
          </s:sequence>
        </s:complexType>     
     
      <s:element name="duaConsultaValorServico">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaDadosMsg" type="tns:SVlrSrv0"/>
          </s:sequence>
        </s:complexType>
      </s:element>

      <s:complexType name="SOrgao1">
        <s:attribute name="cnpj" type="s:string"/>
        <s:attribute name="nome" type="s:string"/>
        <s:attribute name="sigla" type="s:string"/>           
      </s:complexType>
     
      <s:complexType name="SArea1">
        <s:attribute name="cod" type="s:string"/>
        <s:attribute name="desc" type="s:string"/>
      </s:complexType>     
     
      <s:complexType name="SServ1">
        <s:attribute name="cod" type="s:string"/>
        <s:attribute name="desc" type="s:string"/>
        <s:attribute name="codReceita" type="s:string"/>
        <s:attribute name="valor" type="s:string"/>
      </s:complexType>           
     
        <s:complexType name="SVlvSrvRet1">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="tpAmb" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="dRet" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="nProt" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="tProc" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="cStat" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="xMotivo" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="orgao" type="tns:SOrgao1"/>           
            <s:element minOccurs="0" maxOccurs="1" name="area" type="tns:SArea1"/>           
            <s:element minOccurs="0" maxOccurs="1" name="servico" type="tns:SServ1"/>           
          </s:sequence>
          <s:attribute name="versao" type="s:string"/>
        </s:complexType>     
     
        <s:complexType name="SVlvSrvRet0">
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="retConsValorServico" type="tns:SVlvSrvRet1"/>
          </s:sequence>
        </s:complexType>     
     
      <s:element name="duaConsultaValorServicoResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="duaConsultaValorServicoResult" type="tns:SVlvSrvRet0"/>
          </s:sequence>
        </s:complexType>
      </s:element>
     
    </s:schema>
  </wsdl:types>
  <wsdl:message name="duaEmissaoSoapIn">
    <wsdl:part name="parameters" element="tns:duaEmissao" />
  </wsdl:message>
  <wsdl:message name="duaEmissaoSoapOut">
    <wsdl:part name="parameters" element="tns:duaEmissaoResponse" />
  </wsdl:message>
  <wsdl:message name="duaEmissaoDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaCdaEmissaoSoapIn">
    <wsdl:part name="parameters" element="tns:duaCdaEmissao" />
  </wsdl:message>
  <wsdl:message name="duaCdaEmissaoSoapOut">
    <wsdl:part name="parameters" element="tns:duaCdaEmissaoResponse" />
  </wsdl:message>
  <wsdl:message name="duaCdaEmissaoDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaConsultaSoapIn">
    <wsdl:part name="parameters" element="tns:duaConsulta" />
  </wsdl:message>
  <wsdl:message name="duaConsultaSoapOut">
    <wsdl:part name="parameters" element="tns:duaConsultaResponse" />
  </wsdl:message>
  <wsdl:message name="duaConsultaDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaConsultaAreaServicoSoapIn">
    <wsdl:part name="parameters" element="tns:duaConsultaAreaServico" />
  </wsdl:message>
  <wsdl:message name="duaConsultaAreaServicoSoapOut">
    <wsdl:part name="parameters" element="tns:duaConsultaAreaServicoResponse" />
  </wsdl:message>
  <wsdl:message name="duaConsultaAreaServicoDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaConsultaMunicipioSoapIn">
    <wsdl:part name="parameters" element="tns:duaConsultaMunicipio" />
  </wsdl:message>
  <wsdl:message name="duaConsultaMunicipioSoapOut">
    <wsdl:part name="parameters" element="tns:duaConsultaMunicipioResponse" />
  </wsdl:message>
  <wsdl:message name="duaConsultaMunicipioDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaObterPdfSoapIn">
    <wsdl:part name="parameters" element="tns:duaObterPdf" />
  </wsdl:message>
  <wsdl:message name="duaObterPdfSoapOut">
    <wsdl:part name="parameters" element="tns:duaObterPdfResponse" />
  </wsdl:message>
  <wsdl:message name="duaObterPdfDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:message name="duaConsultaValorServicoSoapIn">
    <wsdl:part name="parameters" element="tns:duaConsultaValorServico" />
  </wsdl:message>
  <wsdl:message name="duaConsultaValorServicoSoapOut">
    <wsdl:part name="parameters" element="tns:duaConsultaValorServicoResponse" />
  </wsdl:message>
  <wsdl:message name="duaConsultaValorServicoDuaServiceHeader">
    <wsdl:part name="DuaServiceHeader" element="tns:DuaServiceHeader" />
  </wsdl:message>
  <wsdl:portType name="DuaServiceSoap">
    <wsdl:operation name="duaEmissao">
      <wsdl:input message="tns:duaEmissaoSoapIn" />
      <wsdl:output message="tns:duaEmissaoSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaCdaEmissao">
      <wsdl:input message="tns:duaCdaEmissaoSoapIn" />
      <wsdl:output message="tns:duaCdaEmissaoSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaConsulta">
      <wsdl:input message="tns:duaConsultaSoapIn" />
      <wsdl:output message="tns:duaConsultaSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaConsultaAreaServico">
      <wsdl:input message="tns:duaConsultaAreaServicoSoapIn" />
      <wsdl:output message="tns:duaConsultaAreaServicoSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaConsultaMunicipio">
      <wsdl:input message="tns:duaConsultaMunicipioSoapIn" />
      <wsdl:output message="tns:duaConsultaMunicipioSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaObterPdf">
      <wsdl:input message="tns:duaObterPdfSoapIn" />
      <wsdl:output message="tns:duaObterPdfSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="duaConsultaValorServico">
      <wsdl:input message="tns:duaConsultaValorServicoSoapIn" />
      <wsdl:output message="tns:duaConsultaValorServicoSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="DuaServiceSoap" type="tns:DuaServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="duaEmissao">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaEmissao" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaEmissaoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaCdaEmissao">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaCdaEmissao" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaCdaEmissaoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsulta">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsulta" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaConsultaDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaAreaServico">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaAreaServico" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaConsultaAreaServicoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaMunicipio">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaMunicipio" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaConsultaMunicipioDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaObterPdf">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaObterPdf" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaObterPdfDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaValorServico">
      <soap:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaValorServico" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:duaConsultaValorServicoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="DuaServiceSoap12" type="tns:DuaServiceSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="duaEmissao">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaEmissao" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaEmissaoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaCdaEmissao">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaCdaEmissao" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaCdaEmissaoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsulta">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsulta" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaConsultaDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaAreaServico">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaAreaServico" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaConsultaAreaServicoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaMunicipio">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaMunicipio" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaConsultaMunicipioDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaObterPdf">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaObterPdf" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaObterPdfDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="duaConsultaValorServico">
      <soap12:operation soapAction="http://www.sefaz.es.gov.br/duae/duaConsultaValorServico" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:duaConsultaValorServicoDuaServiceHeader" part="DuaServiceHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="DuaService">
    <wsdl:port name="DuaServiceSoap" binding="tns:DuaServiceSoap">
      <soap:address location="https://homologacao.sefaz.es.gov.br/WsDua/DuaService.asmx" />
    </wsdl:port>
    <wsdl:port name="DuaServiceSoap12" binding="tns:DuaServiceSoap12">
      <soap12:address location="https://homologacao.sefaz.es.gov.br/WsDua/DuaService.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Webservice GNRE-PE - RESULTADO - WSDL montado para conexão sem PI

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions
targetNamespace="http://www.gnre.pe.gov.br/webservice/GnreResultadoLote"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:tns="http://www.gnre.pe.gov.br/webservice/GnreResultadoLote"    
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:d="http://www.gnre.pe.gov.br"
>
    <wsdl:types>
   
        <xsd:schema xmlns:d="http://www.gnre.pe.gov.br" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             targetNamespace="http://www.gnre.pe.gov.br" elementFormDefault="qualified"
             attributeFormDefault="qualified">
   
                <xsd:complexType name="SconsLote_GNRE">
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="0" name="ambiente" type="xsd:string"/>
                        <xsd:element maxOccurs="1" minOccurs="0" name="numeroRecibo" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
             
              <xsd:element name="TConsLote_GNRE" type="d:SconsLote_GNRE"/>

            <xsd:complexType name="SSituacaoProcess">
                <xsd:sequence>
                    <xsd:element maxOccurs="1" minOccurs="0" name="codigo" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="descricao" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>           
           
            <xsd:complexType name="SresultLote_GNRE">
                <xsd:sequence>
                    <xsd:element maxOccurs="1" minOccurs="0" name="ambiente"          type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="situacaoProcess"   type="d:SSituacaoProcess"/>
                    <xsd:element minOccurs="0" name="resultado" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>           
           
            <xsd:element name="TResultLote_GNRE" type="d:SresultLote_GNRE"/>
             
        </xsd:schema>   
   
        <xsd:schema targetNamespace="http://www.gnre.pe.gov.br/webservice/GnreResultadoLote"
            elementFormDefault="unqualified"
            attributeFormDefault="unqualified"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://www.gnre.pe.gov.br">
           
            <xsd:import namespace="http://www.gnre.pe.gov.br"/>
           
            <xsd:element name="gnreDadosMsg">
                <xsd:complexType>
                    <xsd:sequence>
                      <xsd:element ref="d:TConsLote_GNRE"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>

            <xsd:element name="gnreRespostaMsg">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element ref="d:TResultLote_GNRE"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
           
            <xsd:element name="gnreCabecMsg">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="versaoDados" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
               
        </xsd:schema>   
       
       
    </wsdl:types>
    <wsdl:message name="processarSoapIn">
        <wsdl:part element="tns:gnreDadosMsg" name="gnreDadosMsg"/>
    </wsdl:message>
    <wsdl:message name="processarSoapOut">
        <wsdl:part element="tns:gnreRespostaMsg" name="gnreRespostaMsg"/>
    </wsdl:message>
    <wsdl:message name="processarSoapHeader">
        <wsdl:part element="tns:gnreCabecMsg" name="gnreCabecMsg"/>
    </wsdl:message>
    <wsdl:portType name="GnreLoteRecepcaoSoap">
        <wsdl:operation name="consultar">
            <wsdl:input message="tns:processarSoapIn"/>
            <wsdl:output message="tns:processarSoapOut"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="GnreResultadoLote" type="tns:GnreLoteRecepcaoSoap">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="consultar">
            <soap12:operation soapAction="http://www.gnre.pe.gov.br/webservice/GnreResultadoLote/consultar" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
                <soap12:header message="tns:processarSoapHeader" part="gnreCabecMsg" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="GnreResultadoLote">
        <wsdl:port binding="tns:GnreResultadoLote" name="GnreResultadoLote">
            <soap12:address location="http://www.testegnre.pe.gov.br/gnreWS/services/GnreResultadoLote"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>