DATA: lcl_xml TYPE REF TO cl_xml_document.
CREATE OBJECT lcl_xml.
CALL METHOD lcl_xml->create_empty_document
RECEIVING
retcode = l_subrc.
IF l_subrc <> 0.
RAISE erro_xml.
ENDIF.
CALL METHOD lcl_xml->set_encoding
EXPORTING
charset = 'UTF-8'.
CALL METHOD lcl_xml->m_document->set_standalone
EXPORTING
standalone = l_boolean.
CALL METHOD lcl_xml->m_document->create_element
EXPORTING
name = 'TLote_GNRE'
RECEIVING
rval = lcl_lotes_element.
"Atributos ---------------------------------------------------
"xmlns
CALL METHOD lcl_lotes_element->set_attribute
EXPORTING
name = 'xmlns'
value = 'http://www.gnre.pe.gov.br'
RECEIVING
rval = l_rval.
CALL METHOD lcl_xml->m_document->create_element
EXPORTING
name = 'guias'
RECEIVING
rval = lcl_guias_element.
LOOP AT it_gnre INTO lw_gnre.
PERFORM f_xml_lote USING lw_gnre
lcl_lotes_element
lcl_guias_element
CHANGING lcl_xml.
ENDLOOP.
CALL METHOD lcl_lotes_element->append_child
EXPORTING
new_child = lcl_guias_element
RECEIVING
rval = l_rval.
CALL METHOD lcl_xml->m_document->append_child
EXPORTING
new_child = lcl_lotes_element
RECEIVING
rval = l_rval.
IF i_display = '1'.
CALL METHOD lcl_xml->display.
ENDIF.
lcl_xml->export_to_file( filename = l_full_path ).
=========================== CÓDIGO DO PERFORM
FORM f_xml_lote USING fw_gnre TYPE ztgnre
fcl_lote TYPE REF TO if_ixml_element
fcl_guias TYPE REF TO if_ixml_element
CHANGING fcl_xml TYPE REF TO cl_xml_document.
DATA: lcl_dados_e TYPE REF TO if_ixml_element,
lcl_emi_e TYPE REF TO if_ixml_element,
lcl_des_e TYPE REF TO if_ixml_element,
lcl_aux TYPE REF TO if_ixml_element.
DATA: lw_nfdoc TYPE ztnfdoc,
lw_sadr TYPE sadr,
lw_parnad TYPE j_1binnad.
DATA: l_cgc TYPE c LENGTH 20,
l_nome TYPE zze_nome_emp70.
DATA: l_rval TYPE i,
l_insc TYPE char20,
l_stains TYPE j_1bstains,
l_value TYPE string,
l_descr TYPE sf_descr50.
DEFINE lm_set_att.
CALL METHOD fcl_xml->m_document->create_element
EXPORTING
name = &2
RECEIVING
rval = lcl_aux.
call method lcl_aux->set_value
exporting
value = &3
receiving
rval = &4.
CALL METHOD &1->append_child
EXPORTING
new_child = lcl_aux
RECEIVING
rval = l_rval.
END-OF-DEFINITION.
SELECT SINGLE *
INTO lw_nfdoc
FROM j_1bnfdoc
WHERE docnum EQ fw_gnre-docnum.
CHECK sy-subrc = 0.
"Dados do favorecido
CALL FUNCTION 'ZGET_BRANCH_NAME'
EXPORTING
i_bukrs = lw_nfdoc-bukrs
i_branch = lw_nfdoc-branch
IMPORTING
e_nome = l_nome
e_cgc = l_cgc
e_address = lw_sadr
e_insc_estadual = l_stains.
"Dados do cliente
CALL FUNCTION 'ZNF_PARTNER_READ'
EXPORTING
partner_type = lw_nfdoc-partyp
partner_id = lw_nfdoc-parid
IMPORTING
parnad = lw_parnad
EXCEPTIONS
partner_not_found = 1
partner_type_not_found = 2
OTHERS = 3.
CALL METHOD fcl_xml->m_document->create_element
EXPORTING
name = 'TDadosGNRE'
RECEIVING
rval = lcl_dados_e.
l_value = lw_parnad-regio.
lm_set_att lcl_dados_e 'c01_UfFavorecida' l_value l_rval.
l_value = fw_gnre-origtp.
lm_set_att lcl_dados_e 'c02_receita' l_value l_rval.
SELECT SINGLE descr
INTO l_descr
FROM z023t
WHERE spras EQ sy-langu
AND regio EQ lw_parnad-regio
AND origtp EQ fw_gnre-origtp.
l_value = l_descr.
lm_set_att lcl_dados_e 'c25_detalhamentoReceita' l_value l_rval.
l_value = fw_gnre-codproduto.
lm_set_att lcl_dados_e 'c26_produto' l_value l_rval.
l_value = '1'.
lm_set_att lcl_dados_e 'c27_tipoIdentificacaoEmitente' l_value l_rval.
CALL METHOD fcl_xml->m_document->create_element
EXPORTING
name = 'c03_idContribuinteEmitente'
RECEIVING
rval = lcl_emi_e.
l_value = space.
lm_set_att lcl_emi_e 'CPF' l_value l_rval.
l_value = l_cgc.
lm_set_att lcl_emi_e 'CNPJ' l_value l_rval.
CALL METHOD lcl_dados_e->append_child
EXPORTING
new_child = lcl_emi_e
RECEIVING
rval = l_rval.
l_value = '10'. "Nota Fiscal
lm_set_att lcl_dados_e 'c28_tipoDocOrigem' l_value l_rval.
IF lw_nfdoc-nfe = 'X'.
l_value = lw_nfdoc-nfenum.
ELSE.
l_value = lw_nfdoc-nfnum.
ENDIF.
lm_set_att lcl_dados_e 'c04_docOrigem' l_value l_rval. "NF
l_value = fw_gnre-vlr_princ.
lm_set_att lcl_dados_e 'c06_valorPrincipal' l_value l_rval.
l_value = fw_gnre-vlr_princ + fw_gnre-vlr_atua +
fw_gnre-vlr_multa + fw_gnre-vlr_juros.
lm_set_att lcl_dados_e 'c10_valorTotal' l_value l_rval.
l_value = fw_gnre-vencimento.
lm_set_att lcl_dados_e 'c14_dataVencimento' l_value l_rval.
l_value = space.
lm_set_att lcl_dados_e 'c15_convenio' l_value l_rval.
l_value = l_nome.
lm_set_att lcl_dados_e 'c16_razaoSocialEmitente' l_value l_rval.
CALL FUNCTION 'ZGFGNRE_INSC_ESTAD'
EXPORTING
i_bukrs = fw_gnre-bukrs
i_branch = fw_gnre-branch
i_regio = fw_gnre-regio
CHANGING
c_inscr_estadual = l_insc.
l_value = l_insc.
lm_set_att lcl_dados_e 'c17_inscricaoEstadualEmitente' l_value l_rval.
l_value = lw_sadr-stras.
lm_set_att lcl_dados_e 'c18_enderecoEmitente' l_value l_rval. "Local de negócio
l_value = lw_sadr-ort01.
lm_set_att lcl_dados_e 'c19_municipioEmitente' l_value l_rval. "Local de negócio
l_value = lw_sadr-regio.
lm_set_att lcl_dados_e 'c20_ufEnderecoEmitente' l_value l_rval. "Local de negócio
l_value = lw_sadr-pstlz.
lm_set_att lcl_dados_e 'c21_cepEmitente' l_value l_rval. "Local de negócio
l_value = lw_sadr-telf1.
lm_set_att lcl_dados_e 'c22_telefoneEmitente' l_value l_rval. "Local de negócio
IF lw_parnad-cgc IS NOT INITIAL.
l_value = '1'.
ELSE.
l_value = '2'.
ENDIF.
lm_set_att lcl_dados_e 'c34_tipoIdentificacaoDestinatario' l_value l_rval. "1 ou 2
CALL METHOD fcl_xml->m_document->create_element
EXPORTING
name = 'c35_idContribuinteDestinatario'
RECEIVING
rval = lcl_des_e.
l_value = lw_parnad-cpf.
lm_set_att lcl_des_e 'CPF' l_value l_rval.
l_value = lw_parnad-cgc.
lm_set_att lcl_des_e 'CNPJ' l_value l_rval.
CALL METHOD lcl_dados_e->append_child
EXPORTING
new_child = lcl_des_e
RECEIVING
rval = l_rval.
l_value = lw_parnad-stains.
lm_set_att lcl_dados_e 'c36_inscricaoEstadualDestinatario' l_value l_rval.
l_value = lw_parnad-name1.
lm_set_att lcl_dados_e 'c37_razaoSocialDestinatario' l_value l_rval.
l_value = lw_parnad-ort01.
lm_set_att lcl_dados_e 'c38_municipioDestinatario' l_value l_rval.
l_value = fw_gnre-vencimento.
lm_set_att lcl_dados_e 'c33_dataPagamento' l_value l_rval.
CALL METHOD fcl_guias->append_child
EXPORTING
new_child = lcl_dados_e
RECEIVING
rval = l_rval.
CALL METHOD fcl_lote->append_child
EXPORTING
new_child = fcl_guias
RECEIVING
rval = l_rval.
ENDFORM. " F_XML_LOTE
+++++++++++++++++++++++++++++++++++++++++++=
saída do arquivo
+++++++++++++++++++++++++++++++++++++++++++=
<?xml
version="1.0" encoding="utf-8" standalone="yes" ?>
<c01_UfFavorecida>PR</c01_UfFavorecida>
<c02_receita>1210</c02_receita>
<c25_detalhamentoReceita>Recolhimento Antecipado - Entradas do
Exterior.</c25_detalhamentoReceita>
<c26_produto />
<c27_tipoIdentificacaoEmitente>1</c27_tipoIdentificacaoEmitente>
<CPF />
<CNPJ>74.544.297/0001-92</CNPJ>
</c03_idContribuinteEmitente>
<c28_tipoDocOrigem>10</c28_tipoDocOrigem>
<c04_docOrigem>000000046</c04_docOrigem>
<c06_valorPrincipal>213.50</c06_valorPrincipal>
<c10_valorTotal>213.50</c10_valorTotal>
<c14_dataVencimento>20100731</c14_dataVencimento>
<c15_convenio />
<c16_razaoSocialEmitente>FH Consultoria Empresarial Ltda</c16_razaoSocialEmitente>
<c17_inscricaoEstadualEmitente>1017622974</c17_inscricaoEstadualEmitente>
<c18_enderecoEmitente>Rua Visconde de Nac 1440, 13º
andar</c18_enderecoEmitente>
<c19_municipioEmitente>Curitiba</c19_municipioEmitente>
<c20_ufEnderecoEmitente>PR</c20_ufEnderecoEmitente>
<c21_cepEmitente>80410-201</c21_cepEmitente>
<c22_telefoneEmitente>(41) 3593-3223</c22_telefoneEmitente>
<c34_tipoIdentificacaoDestinatario>1</c34_tipoIdentificacaoDestinatario>
<CPF>00000000000</CPF>
<CNPJ>61194080000158</CNPJ>
</c35_idContribuinteDestinatario>
<c36_inscricaoEstadualDestinatario />
<c37_razaoSocialDestinatario>Fornecedor nacional Paraná</c37_razaoSocialDestinatario>
<c38_municipioDestinatario>Curitiba</c38_municipioDestinatario>
<c33_dataPagamento>20100731</c33_dataPagamento>
</TDadosGNRE>
</guias>
</TLote_GNRE>
Obrigada!!!!!!!!!!
ResponderExcluir