CE PLUS - Nota 005622

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 14/01/2008 00:00:00

Data/Hora Última Alteração: 03/02/2010 17:00:43

Descrição da Nota: EXIT FAT008 DO PROGRAMA /PWS/SAPMZYCI003

Sintoma

 

Abertura de exit  na criação da fatura.

 

Solução

 

Abertura de exit  na fatura.

Versões Tratadas

7.0

Informações Complementares

 

----------------------------------------------------------------------------------------------------

Nota Número 05622 Data: 14/01/2008 Hora: 09:32:33

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 05622

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00029

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

EXIT FAT008 DO PROGRAMA /PWS/SAPMZYCI003

----------------------------------------------------------------------------------------------------

Palavras Chave:

FAT008 - EXIT

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/SAPMZYCI003

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

 

FORM reverse_document_fb08.

  DATA:

        v_monat LIKE bsis-monat.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'FB08'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  CLEAR v_erro.

  IF v_parcela = 'X'.

    IF itab_zycit132-miro EQ 'X'.

      PERFORM estorn_miro_la.

      EXIT.

    ENDIF.

    itab_zycbe033-tabela = '/PWS/ZYCIT132'.

    itab_zycbe033-cpochv = itab_zycit132-nrseq.

    itab_zycbe033-belnr  = itab_zycit132-belnr_p.

    IF NOT itab_zycit132-dt_belnrp IS INITIAL.

...

 

...

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

    IF sy-subrc = 0.

      PERFORM atualiza_fb08_fat.

    ENDIF.

  ELSEIF sy-subrc EQ '4'.

    PERFORM atualiza_fb08_fat.

  ENDIF.

  PERFORM clear_date_batch.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08

  ENDIF.

* << Fim da inclusão

ENDFORM.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

 

FORM reverse_document_mbst.

  DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.

  DATA: BEGIN OF itab_itens_nf OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit044.

  DATA: END   OF itab_itens_nf.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'MBST'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  itab_zycie033-tcode  = 'MBST'.

  itab_zycie033-tabela = '/PWS/ZYCIT006'.

  itab_zycie033-cpochv = /pws/zycie006-nrseq.

  itab_zycie033-bukrs  = /pws/zycie006-bukrs.

  itab_zycie033-mblnr  = /pws/zycie006-mblnr_mb01.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mb01+0(4).

  v_belnr_ant          = /pws/zycie006-mblnr_mb01.

  itab_zycie033-budat  = /pws/zycie006-dt_mb01.

  IF /pws/zycbt007 IS INITIAL.

    SELECT SINGLE *

...

 

...

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        v_mbst_ok = 'S'.

      ENDIF.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST

    ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDFORM.

FORM reverse_document_mr8m.

  DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'MR8M'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  PERFORM get_parameters_mrm1_receb.

  itab_zycie033-tcode  = 'MR8M'.

  itab_zycie033-tabela = '/PWS/ZYCIT006'.

  itab_zycie033-cpochv = /pws/zycie006-nrseq.

  itab_zycie033-bukrs  = /pws/zycie006-bukrs.

  itab_zycie033-belnr  = /pws/zycie006-belnr_mr1m.

  itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mr1m+0(4).

  v_belnr_ant          = /pws/zycie006-belnr_mr1m.

  itab_zycie033-stgrd  = /pws/zycbt007-percorr.

...

 

...

      CLEAR v_mr1m_ok.

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        v_mr8m_ok = 'S'.

* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M

      ENDIF.

* << Fim da inclusão

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

 

...

 

...

 

FORM fill_date_f_51_docs_miro.

  DATA: v_belnr_miro LIKE rbkp-belnr.

* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'F51MIRO'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  PERFORM clear_date_batch.

  IF v_subrc IS INITIAL.

    PERFORM multiplos_lancamentos_f_51.

  ENDIF.

  PERFORM get_parameters_f-51.

  SELECT SINGLE * FROM rbkp WHERE belnr = /pws/zycie006-belnr_mr1m

                            AND   gjahr = /pws/zycie006-dt_mr1m(4).

  v_belnr_miro = rbkp-stblg.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = 'F-51'.

...

 

...

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-51'

                                        tabela = '/PWS/ZYCIT006'

                                        cpochv = /pws/zycie006-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc = 0.

        MESSAGE i059 WITH itab_zycbt032-belnr.

      ENDIF.

    ENDIF.

  ELSEIF e_subrc EQ '8'.

    EXIT .

* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO

  ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

...

 

FORM reverse_documento_contab_fbra.

  DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'FBRA'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  PERFORM clear_date_batch.

  MOVE: /pws/zycie006-nrseq      TO v_cpochv_fb08,

        /pws/zycie006-belnr_f_51 TO v_belnr_fb08 ,

        /pws/zycie006-bukrs      TO v_bukrs_fb08 ,

        /pws/zycie006-dt_f_51    TO v_bldat_fb08 ,

        /pws/zycie006-belnr_f_51 TO v_docant_fb08.

  itab_zycbe033-tcode  = 'FBRA'.

  itab_zycbe033-tabela = '/PWS/ZYCIT006'.

  itab_zycbe033-cpochv = /pws/zycie006-nrseq.

  itab_zycbe033-belnr  = /pws/zycie006-belnr_f_51.

...

 

...

    ENDLOOP.

    PERFORM popup_message USING text-026 text-025.

    IF v_answer = 'J'.

      PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51

                                          'F-51'.

      CLEAR: /pws/zycie006-statusp_f_51,

             /pws/zycie006-belnr_f_51  ,

             /pws/zycie006-dt_f_51     .

      v_fbra_ok = 'S'.

    ENDIF.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA

  ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM reverse_cocumento_contab_fb08.

  DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.

* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'FB08'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  PERFORM clear_date_batch.

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCIT006'.

  itab_zycbe033-cpochv = v_cpochv_fb08.

  itab_zycbe033-belnr  = v_belnr_fb08.

  itab_zycbe033-bukrs  = /pws/zycie006-bukrs.

  itab_zycbe033-bldat  = v_bldat_fb08.

  v_belnr_ant          = v_docant_fb08.

  CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'

       EXPORTING

...

 

...

    PERFORM atualiza_fb08_rec.

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

    PERFORM clear_date_batch.

  ENDIF.

  CLEAR: v_cpochv_fb08, v_belnr_fb08,

         v_bukrs_fb08 , v_bldat_fb08,

         v_docant_fb08.

* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08

  endif.

* << Fim da inclusão

ENDFORM.

FORM reverse_documento_fatura_mr8m.

  DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'FMR8M'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  PERFORM clear_date_batch.

  itab_zycie033-tcode  = 'MR8M'.

  itab_zycie033-tabela = '/PWS/ZYCIT006'.

  itab_zycie033-cpochv = /pws/zycie006-nrseq.

  itab_zycie033-bukrs  = /pws/zycie006-bukrs.

  itab_zycie033-belnr  = /pws/zycie006-belnr_mr1m.

  itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mr1m+0(4).

  v_belnr_ant          = /pws/zycie006-belnr_mr1m.

  itab_zycie033-stgrd = /pws/zycbt007-percorr.

...

 

...

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycie033

            t_campo         = itab_zycit034

            t_zycit032      = itab_zycit032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

  IF sy-subrc = 0 OR e_subrc EQ 0.

    PERFORM atualiza_mr8m_fat.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M

  ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM reverse_documento_fisico_fbra.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA

  clear v_belnr_ant.

  e_subrc = '0' .

  perform verifica_exit using 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT008'.

  clear itab_zyglt100 .

  read table itab_zyglt100 with key

                   zexit = 'FAT008' binary search.

  if sy-subrc eq 0.

    if not itab_zyglt100-zexit_ativa is initial.

      e_estorno = 'FMBST'.

      perform (itab_zyglt100-formulario) in program

          (itab_zyglt100-programa) if found.

    endif.

  endif.

  if e_subrc eq '0'.

* << Fim da inclusão

  DATA: BEGIN OF itab_itens_nf OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit044.

  DATA: END   OF itab_itens_nf.

  PERFORM clear_date_batch.

  itab_zycie033-tcode  = 'MBST'.

  itab_zycie033-tabela = '/PWS/ZYCIT006'.

  itab_zycie033-cpochv = /pws/zycie006-nrseq.

  itab_zycie033-bukrs  = /pws/zycie006-bukrs.

  itab_zycie033-mblnr  = /pws/zycie006-mblnr_mb01.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mb01+0(4).

...

 

...

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

    PERFORM popup_message USING text-026 text-025.

    IF v_answer = 'J'.

      PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                          'MIGO'.

      CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

             /pws/zycie006-dt_mb01.

      v_mbst_ok = 'S'.

    ENDIF.

* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA

  ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...