Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 02/07/2007 00:00:00
Data/Hora Última Alteração: 09/03/2010 10:02:18
Descrição da Nota: EXIT NA SELEÇÃO DE NF GLOBAL OU REMESSA NO RECEBIMENTO OU ENCERRAMENTO.
Sintoma
Necessária abertura de exit na seleção de nota fiscal remessa ou global ao criar recebimento ou
encerramento.
Solução
criada exit RCB014 no programa '/PWS/SAPMZYCI017' e ENC005 no programa '/PWS/SAPMZYCI037'.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04074 Data: 02/07/2007 Hora: 09:20:17
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04074
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00002
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
EXIT NA SELEÇÃO DE NF GLOBAL OU REMESSA NO RECEBIMENTO OU ENCERRAMENTO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXIT - SELEÇÃO - NOTA FISCAL GLOBAL -
NOTA FISCAL REMESSA - EXIT DE RECEBIMENTO - EXIT DE ENCERRAMENTO.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F01
REPS /PWS/MZYCI017F03
REPS /PWS/MZYCI037F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F01
FORM seleciona_itens_nf.
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
DATA v_reg TYPE i.
* << Fim da exclusão
...
...
IF /pws/zycie043a-subser IS INITIAL.
itab_subser-option = 'EQ'.
ELSE.
itab_subser-option = 'BT'.
ENDIF.
itab_subser-low = /pws/zycie043-subser.
itab_subser-high = /pws/zycie043a-subser.
APPEND itab_subser.
ENDIF.
FREE itab_nfg.
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
IF v_nrseqdi+7(3) EQ 'P06'.
IF NOT /pws/zycie442-nrdi IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NF
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI017'
'RCB014'.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
SELECT * FROM /pws/zycit442
INTO TABLE itab_zycit442
WHERE nrdi EQ /pws/zycie442-nrdi.
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NF
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'RCB014' BINARY SEARCH.
IF sy-subrc EQ 0.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
FOR ALL ENTRIES IN itab_zycit442
WHERE nrseq EQ /pws/zycie043-nrseq
AND nrseq EQ itab_zycit442-nrseqda
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ENDIF.
ELSE.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nrseq EQ /pws/zycie043-nrseq
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NF
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM SELECIONA_ITENS_NF
PERFORM select_tables.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
IF NOT /pws/zycie085-nrdi IS INITIAL.
SELECT * FROM /pws/zycit085
INTO TABLE itab_zycit085
WHERE nrdi EQ /pws/zycie085-nrdi.
IF sy-subrc = 0.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
FOR ALL ENTRIES IN itab_zycit085
WHERE nrseq EQ /pws/zycie043-nrseq
AND nrseq EQ itab_zycit085-nrseqdi
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
ELSE.
IF /pws/zycie043-nrseq NE '0000000000'.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nrseq EQ /pws/zycie043-nrseq
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ELSE.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
CHECK sy-subrc = 0.
DESCRIBE TABLE itab_nfg LINES v_reg.
IF v_reg > 1.
MESSAGE w015 WITH text-260 text-261.
EXIT.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
READ TABLE itab_nfg INDEX 1.
MOVE itab_nfg-nrseq TO /pws/zycie043-nrseq.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NF
PERFORM select_tables.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
FREE itab_nf.
LOOP AT itab_nfg.
SELECT * FROM /pws/zycit043
APPENDING CORRESPONDING FIELDS OF TABLE itab_nf
WHERE nrseq = itab_nfg-nrseq
AND nrdi = itab_nfg-nrdi
AND nfglobal = itab_nfg-nfglobal
AND docnumnfg = itab_nfg-docnum
AND cancel = ' '.
IF sy-subrc EQ 0.
itab_nfg-delete = 'S'.
MODIFY itab_nfg.
ENDIF.
ENDLOOP.
READ TABLE itab_nfg INDEX 1.
SELECT SINGLE * FROM /pws/zycit100 WHERE nrseqdi = itab_nfg-nrseq.
SELECT SINGLE * FROM /pws/zycit001 WHERE nrseq = /pws/zycit100-nrseq.
IF /pws/zycit001-modalidade = '99'.
READ TABLE itab_nf INDEX 1.
IF sy-subrc NE 0.
MESSAGE s015 WITH text-060.
EXIT.
ENDIF.
ENDIF.
LOOP AT itab_nf.
itab_nf-remessa = 'S'.
MODIFY itab_nf.
ENDLOOP.
CLEAR itab_nf.
LOOP AT itab_nfg.
IF itab_nfg-delete NE 'S'.
MOVE itab_nfg TO itab_nf.
APPEND itab_nf.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_ITENS_NF
ENDLOOP.
* << Fim da exclusão
DESCRIBE TABLE itab_nf LINES v_nolin.
IF v_nolin IS INITIAL.
MESSAGE w009.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F03
...
* >> Início da inclusão:
form select_tables.
DATA v_reg TYPE i.
IF v_nrseqdi+7(3) EQ 'P06'.
IF NOT /pws/zycie442-nrdi IS INITIAL.
SELECT * FROM /pws/zycit442
INTO TABLE itab_zycit442
WHERE nrdi EQ /pws/zycie442-nrdi.
IF sy-subrc = 0.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
FOR ALL ENTRIES IN itab_zycit442
WHERE nrseq EQ /pws/zycie043-nrseq
AND nrseq EQ itab_zycit442-nrseqda
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ENDIF.
ELSE.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nrseq EQ /pws/zycie043-nrseq
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ENDIF.
ELSE.
IF NOT /pws/zycie085-nrdi IS INITIAL.
SELECT * FROM /pws/zycit085
INTO TABLE itab_zycit085
WHERE nrdi EQ /pws/zycie085-nrdi.
IF sy-subrc = 0.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
FOR ALL ENTRIES IN itab_zycit085
WHERE nrseq EQ /pws/zycie043-nrseq
AND nrseq EQ itab_zycit085-nrseqdi
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ENDIF.
ELSE.
IF /pws/zycie043-nrseq NE '0000000000'.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nrseq EQ /pws/zycie043-nrseq
AND nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
ELSE.
SELECT * FROM /pws/zycit041
INTO CORRESPONDING FIELDS OF TABLE itab_nfg
WHERE nfnum IN itab_nfnum
AND series IN itab_series
AND subser IN itab_subser
AND cancel EQ ' '.
CHECK sy-subrc = 0.
DESCRIBE TABLE itab_nfg LINES v_reg.
IF v_reg > 1.
MESSAGE w015 WITH text-260 text-261.
EXIT.
ELSE.
READ TABLE itab_nfg INDEX 1.
MOVE itab_nfg-nrseq TO /pws/zycie043-nrseq.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
FREE itab_nf.
LOOP AT itab_nfg.
SELECT * FROM /pws/zycit043
APPENDING CORRESPONDING FIELDS OF TABLE itab_nf
WHERE nrseq = itab_nfg-nrseq
AND nrdi = itab_nfg-nrdi
AND nfglobal = itab_nfg-nfglobal
AND docnumnfg = itab_nfg-docnum
AND cancel = ' '.
IF sy-subrc EQ 0.
itab_nfg-delete = 'S'.
MODIFY itab_nfg.
ENDIF.
ENDLOOP.
READ TABLE itab_nfg INDEX 1.
SELECT SINGLE * FROM /pws/zycit100 WHERE nrseqdi = itab_nfg-nrseq.
SELECT SINGLE * FROM /pws/zycit001 WHERE nrseq = /pws/zycit100-nrseq.
IF /pws/zycit001-modalidade = '99'.
READ TABLE itab_nf INDEX 1.
IF sy-subrc NE 0.
MESSAGE s015 WITH text-060.
EXIT.
ENDIF.
ENDIF.
LOOP AT itab_nf.
itab_nf-remessa = 'S'.
MODIFY itab_nf.
ENDLOOP.
CLEAR itab_nf.
LOOP AT itab_nfg.
IF itab_nfg-delete NE 'S'.
MOVE itab_nfg TO itab_nf.
APPEND itab_nf.
ENDIF.
ENDLOOP.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017TOP
...
* >> Início da exclusão:
DATA: BEGIN OF itab_cta OCCURS 0.
INCLUDE STRUCTURE /pws/zygle316.
DATA: END OF itab_cta.
DATA: BEGIN OF itab_nf OCCURS 0.
INCLUDE STRUCTURE /pws/zycit043.
DATA: remessa,
marc,
lgort LIKE /pws/zycit042-lgort.
DATA: END OF itab_nf.
DATA: BEGIN OF itab_nfg OCCURS 0.
INCLUDE STRUCTURE /pws/zycit043.
DATA: delete .
DATA: END OF itab_nfg.
* << Fim da exclusão
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017X01
...
* >> Início da inclusão:
DATA: BEGIN OF itab_cta OCCURS 0.
INCLUDE STRUCTURE /pws/zygle316.
DATA: END OF itab_cta.
DATA: BEGIN OF itab_nf OCCURS 0.
INCLUDE STRUCTURE /pws/zycit043.
DATA: remessa,
marc,
lgort LIKE /pws/zycit042-lgort.
DATA: END OF itab_nf.
DATA: BEGIN OF itab_nfg OCCURS 0.
INCLUDE STRUCTURE /pws/zycit043.
DATA: delete .
DATA: END OF itab_nfg.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI017 0010
PROCESS BEFORE OUTPUT.
MODULE: STATUS_0010,
SET_SCREEN,
carrega_nf,
* <<Inicio da inclusão
exit_tela .
* << Fim da inclusão
LOOP AT ITAB_NF
CURSOR TC_LISTA_NF-CURRENT_LINE.
MODULE CARREGA_ZYCIE043A_LISTA.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT ITAB_NF.
MODULE ATUALIZA_ITAB_NF.
ENDLOOP.
MODULE: USER_COMMAND_EXIT AT EXIT-COMMAND,
USER_COMMAND_0010.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI037F01
...
ENDSELECT.
CLEAR: itab_docscont.
SELECT belnr_f02 dtlanc FROM /pws/zycit016 INTO
(itab_docscont-belnr, itab_docscont-bldat)
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc EQ 0 AND NOT itab_docscont-belnr IS INITIAL.
MOVE text-047 TO itab_docscont-evento.
COLLECT itab_docscont.
ENDIF.
ENDSELECT.
* >> Início da inclusão: FORM CARREGA_NRO_DOCUMENTOS
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI037'
'ENC005'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'ENC005' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ELSE.
IF NOT it_zycit003_cont[] IS INITIAL.
SELECT * FROM /pws/zycit042
INTO TABLE it_zycit042_cont
FOR ALL ENTRIES IN it_zycit003_cont
WHERE nrseq EQ it_zycit003_cont-nrseq.
ENDIF.
READ TABLE it_zycit042_cont INDEX 1.
SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041
WHERE nrseq EQ it_zycit042_cont-nrseqnf AND
cancel EQ space.
READ TABLE itab_zycit041 INDEX 1.
SELECT * FROM /pws/zycit043 INTO TABLE itab_zycit043
WHERE nrseq = itab_zycit041-nrseq AND
cancel EQ space.
ENDIF.
ELSE.
* << Fim da inclusão
IF NOT it_zycit003_cont[] IS INITIAL.
SELECT * FROM /pws/zycit042
INTO TABLE it_zycit042_cont
FOR ALL ENTRIES IN it_zycit003_cont
WHERE nrseq EQ it_zycit003_cont-nrseq.
ENDIF.
READ TABLE it_zycit042_cont INDEX 1.
SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041
WHERE nrseq EQ it_zycit042_cont-nrseqnf AND
cancel EQ space.
READ TABLE itab_zycit041 INDEX 1.
SELECT * FROM /pws/zycit043 INTO TABLE itab_zycit043
WHERE nrseq = itab_zycit041-nrseq AND
cancel EQ space.
* >> Início da exclusão: FORM CARREGA_NRO_DOCUMENTOS
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_NRO_DOCUMENTOS
ENDIF.
IF itab_zycit043[] IS INITIAL.
* << Fim da inclusão
LOOP AT itab_zycit041.
CLEAR: itab_docscont.
IF NOT itab_zycit041-belnr_f_51 IS INITIAL.
MOVE: text-048 TO itab_docscont-evento,
itab_zycit041-dt_f_51 TO itab_docscont-bldat,
itab_zycit041-belnr_f_51 TO itab_docscont-belnr .
COLLECT itab_docscont.
ENDIF.
IF NOT itab_zycit041-belnr_f_02 IS INITIAL.
MOVE: text-049 TO itab_docscont-evento,
...
...
COLLECT itab_docscont.
ENDIF.
IF NOT itab_zycit041-belnrf02que IS INITIAL.
MOVE: text-063 TO itab_docscont-evento,
itab_zycit041-dt_f02que TO itab_docscont-bldat,
itab_zycit041-belnrf02que TO itab_docscont-belnr .
COLLECT itab_docscont.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM CARREGA_NRO_DOCUMENTOS
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM CARREGA_NRO_DOCUMENTOS
ENDIF.
* << Fim da exclusão
LOOP AT it_zycit202.
IF NOT it_zycit202-belnr_f_02 IS INITIAL.
CLEAR: itab_docscont.
MOVE: text-051 TO itab_docscont-evento,
it_zycit202-dt_f_02 TO itab_docscont-bldat,
it_zycit202-belnr_f_02 TO itab_docscont-belnr .
COLLECT itab_docscont.
ENDIF.
IF NOT it_zycit202-belnr_f51_mt0 IS INITIAL.
CLEAR: itab_docscont.
...