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.

Nenhum comentário:

Postar um comentário