CE PLUS - Nota 005325

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.

Versões Tratadas

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.

...