cancel
Showing results for 
Search instead for 
Did you mean: 

Gerar arquivo XML para todos os clientes

Former Member
0 Kudos

Olá,

Necessito gerar o arquivo XML que é gerado pela interface NTB2B para todos os clientes. E aqui no projeto não querem ter que cadastrar toda vez um cliente novo na tabela da SPRO que ativa o serviço B2B. Alguém tem uma ideia de como posso fazer para disponibilizar este xml para todos os clientes?

Grata,

Érica

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Não há uma maneira de habilitar no GRC para que sempre envie xml ao parceiro automaticamente ? Preciso sempre preencher cada parceiro que deve receber XML na tabela ?

former_member182503
Active Contributor
0 Kudos

No ambiente do GRC, criei esta função e habilitei ela como RFC:

FUNCTION ZBR_NFE_TB2B_UPDATE.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_DELETE_ALL) TYPE  XFELD OPTIONAL
*"  TABLES
*"      T_TB2B STRUCTURE  /XNFE/TB2B
*"      T_RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------

  DATA: v_count   TYPE sytfill,
        v_type    LIKE  bapireturn-type,
        v_cl      LIKE  sy-msgid,
        v_number  LIKE  sy-msgno,
        v_par1    LIKE  sy-msgv1,
        v_par2    LIKE  sy-msgv2,
        v_par3    LIKE  sy-msgv3,
        v_par4    LIKE  sy-msgv4.
  DATA: wa_return TYPE bapiret2.


  REFRESH t_return.
  CLEAR wa_return.

  "Delete entire table if required.
  IF i_delete_all EQ 'X'.
    DELETE FROM /xnfe/tb2b.
  ENDIF.

  "Store row count to compare with the inserted/modified row count
  DESCRIBE TABLE t_tb2b LINES v_count.

  "Do the insert/update
  MODIFY /xnfe/tb2b FROM TABLE t_tb2b.

  "Handle error/success
  IF sy-subrc NE 0.
    IF sy-dbcnt > 0 AND sy-dbcnt < v_count.
      v_type    = 'W'.
    ELSE.
      v_type    = 'E'.
    ENDIF.
    v_cl      = '/XNFE/APP'.
    v_number  = '001'.
    v_par1    = 'MODIFY'.
    v_par2    = 'XNFE/TB2B'.
    ROLLBACK WORK.
  ELSE.
    v_type    = 'S'.
    v_cl      = '/XNFE/APP'.
    v_number  = '039'.
    v_par1 = sy-dbcnt.
    SHIFT v_par1 LEFT DELETING LEADING space.
    v_par2 = 'rows inserted/updated in table /XNFE/TB2B.'.
    "Commit if everything ok
    COMMIT WORK.
  ENDIF.

  "Set return msg
  CALL FUNCTION 'BALW_BAPIRETURN_GET2'
  EXPORTING
    TYPE             = v_type
    CL               = v_cl
    NUMBER           = v_number
    PAR1             = v_par1
    PAR2             = v_par2
    PAR3             = v_par3
    PAR4             = v_par4
  IMPORTING
    RETURN           = wa_return.

  "Append the msg
  APPEND wa_return TO t_return.

ENDFUNCTION.

No R/3, você pode utiliza-la para replicar os dados de cadastro do R/3 nessa tabela do B2B, desenvolvendo um programa que lê o seu cadastro de cliente e pega todos cnpj e chama essa RFC apontando pro destination do GRC.

former_member182503
Active Contributor
0 Kudos

Complementando... o código de chamada:


"Type declaration
TYPES: BEGIN OF ty_tb2b,
        mandt       TYPE mandt,
        cnpj        TYPE stcd1,
        b2b_aktiv   TYPE flag,
       END OF ty_tb2b.

DATA: t_tb2b TYPE TABLE OF ty_tb2b.


"gv_rfc_dest = seu rfc destination p/ o GRC
CALL FUNCTION 'ZBR_NFE_TB2B_UPDATE' DESTINATION gv_rfc_dest
        EXPORTING
          i_delete_all = gv_delete_all
        TABLES
          t_tb2b    = t_tb2b_tmp
          t_return  = t_return_tmp.

Former Member
0 Kudos

OK, vou passar aqui pro pessoal essa ídeia.

Grata,

Érica

Former Member
0 Kudos

Olá você pode usar a transação NACE e configurar seu output mensager, para enviar o xml gerado para seus clientes via email ou outro modo o qual escolher.

Boa sorte.

Jorge Bernardino- SAP SD