Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 27/11/2007 00:00:00
Data/Hora Última Alteração: 09/03/2010 11:21:54
Descrição da Nota: NECESSÁRIA UMA EXIT AO ESTORNAR A NOTA FISCAL
Sintoma
necessária uma exit ao estornar a nota fiscal
Solução
criada exit DNF015 ao estornar NF global e remessa.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05325 Data: 27/11/2007 Hora: 11:20:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05325
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00023
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
NECESSÁRIA UMA EXIT AO ESTORNAR A NOTA FISCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXIT - ESTORNO - NOTA FISCAL - NF REMESSA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI016I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF011'.
e_subrc = 0.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF011' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
* >> Início da exclusão: FORM FILL_DATA_J1B1_R
v_tiponf = 'NF'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
v_tiponf = 'NFR'.
* << Fim da inclusão
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
ENDIF.
IF e_subrc = '0'.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B1N'
EXPORTING
v_modo = v_modo_bi
...
...
* >> Início da inclusão: FORM FILL_DATA_J1B3
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF015 '.
v_tiponf = 'NF'.
e_subrc = '0'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF015' BINARY SEARCH.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B3'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_campos = it_zycet004
t_zycet005 = it_zycet005
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
* >> Início da inclusão: FORM FILL_DATA_J1B3
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATA_J1B3
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B3
IF sy-subrc = 0 OR e_subrc EQ '4'.
* << Fim da inclusão
LOOP AT itab_zycit042.
READ TABLE it_zycet005 WITH KEY tcode = text-030
tabela = text-014
cpochv = /pws/zycie041-nfglobal
tpmsg = 'S'.
IF sy-subrc EQ 0.
IF ( v_modalidade NE '99' ) OR
( v_modalidade = '99' AND v_apaga NE 'X' )
AND ( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ).
DELETE FROM /pws/zycit041
...
...
* >> Início da exclusão: FORM EFETUA_CANCELAMENTO_C
FORM efetua_cancelamento_c.
CLEAR: v_cancel.
GET CURSOR FIELD v_campo VALUE v_valor.
IF v_campo EQ '/PWS/ZYCIE042A-DOCNUM_C' AND v_valor > 0.
PERFORM fill_data_j1b2n.
PERFORM fill_data_j1b3_c.
IF v_cancel EQ 'OK'.
CALL SCREEN '0001'.
ENDIF.
PERFORM bi_fb08.
ELSE.
MESSAGE i026.
ENDIF.
ENDFORM.
* << Fim da exclusão
...
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF015 '.
e_subrc = '0'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF015' BINARY SEARCH.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
v_tiponf = 'NFR'.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B3'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_campos = it_zycet004
t_zycet005 = it_zycet005
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
ENDIF.
IF sy-subrc = 0 OR e_subrc EQ '4'.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATA_J1B3_R
IF sy-subrc = 0.
* << Fim da exclusão
LOOP AT itab_zycit044.
READ TABLE it_zycet005 WITH KEY tcode = text-030
tabela = text-025
cpochv = /pws/zycie043-nfremessa
tpmsg = 'S'.
IF sy-subrc EQ 0 OR
( ( v_modalidade = '99' OR t001-land1 EQ 'AR'
OR t001-land1 EQ 'CL' ) AND /pws/zycie043-belnr_mr1m IS INITIAL ).
/pws/zycie043-cancel = 'X'.
UPDATE /pws/zycit043 SET cancel = /pws/zycie043-cancel
...
...
* >> Início da exclusão: FORM FILL_DATA_J1B3_C
FORM fill_data_j1b3_c.
PERFORM clear_date_batch.
it_zycee005-tcode = text-030.
it_zycee005-tabela = text-014.
it_zycee005-cpochv = /pws/zycie041a-nfglobal.
it_zycee005-nrseq = /pws/zycie041a-nrseq.
it_zycee005-docnum = v_valor.
APPEND it_zycee005.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B3'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_campos = it_zycet004
t_zycet005 = it_zycet005
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
LOOP AT itab_zycit042_c WHERE docnum_c = v_valor.
READ TABLE it_zycet005 WITH KEY tcode = text-030
tabela = text-014
cpochv = /pws/zycie041a-nfglobal
tpmsg = 'S'.
IF sy-subrc EQ 0.
UPDATE /pws/zycit042 SET docnum_c = ' '
WHERE nrseq = itab_zycit042_c-nrseq
AND nfglobal = itab_zycit042_c-nfglobal
AND ebeln = itab_zycit042_c-ebeln
AND ebelp = itab_zycit042_c-ebelp
AND tpnf = itab_zycit042_c-tpnf
AND docnum_c = v_valor.
COMMIT WORK.
itab_zycit042_c-docnum_c = space.
MODIFY itab_zycit042_c TRANSPORTING docnum_c.
ELSE.
READ TABLE it_zycet005 WITH KEY tcode = text-030
tabela = text-014
cpochv = /pws/zycie041-nfglobal
tpmsg = 'E'.
IF sy-subrc EQ 0.
LOOP AT it_zycet005.
MESSAGE i015 WITH it_zycet005-msg+0(50)
it_zycet005-msg+50(50).
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR v_modo_bi.
ENDFORM.
* << Fim da exclusão
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016I01
...
WHEN 'CRIARNFC'.
PERFORM cria_nota_fiscal_c.
WHEN 'DRAFT'.
GET CURSOR FIELD v_campo VALUE v_valor.
EXPORT /pws/zycie041-nrseq TO MEMORY ID '001'.
IF v_campo EQ '/PWS/ZYCIE042A-DOCNUM_C'.
SUBMIT /pws/zycir005 WITH pa_nrnot = v_valor AND RETURN.
ELSE.
MESSAGE i026.
ENDIF.
* >> Início da exclusão: MODULE USER_COMMAND_0300
WHEN 'CANCC'.
PERFORM efetua_cancelamento_c.
* << Fim da exclusão
WHEN 'RESUM'.
CALL SCREEN '0400'.
ENDCASE.
ELSEIF sy-tcode EQ '/PWS/ZYCI016_E'.
CASE okcode.
WHEN 'SELE'.
GET CURSOR FIELD v_campo VALUE v_valor.
IF v_campo EQ '/PWS/ZYCIE042A-DOCNUM_C'.
SELECT SINGLE * FROM j_1bnfdoc
WHERE docnum EQ v_valor.
...