CE PLUS - Nota 005293

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal Remessa

Data/Hora da Publicação: 23/11/2007 00:00:00

Data/Hora Última Alteração: 09/03/2010 11:06:20

Descrição da Nota: A EXIT DO DRAFT DA NF REMESSA NÃO FUNCIONA QUANDO EXIBIMOS

Sintoma

 

A exit do draft da nf remessa não funciona quando exibimos

 

Solução

 

Abertura de exit na Nota fiscal remessa.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 05293 Data: 23/11/2007 Hora: 10:20:43

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

 

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

Nota Número              : 05293

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00022

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

A EXIT DO DRAFT DA NF REMESSA NÃO FUNCIONA QUANDO EXIBIMOS

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

Palavras Chave:

EXIT - DRAFT - NOTA FISCAL - NF - REMESSA

DNF001

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

Objetos da nota:

REPS /PWS/MZYCI016I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI016I01

 

...

      ENDIF.

      APPEND itab_zycit044.

      APPEND itab_zycit044 TO itab_zycit044_aux.

    ELSE.

      MESSAGE w061 WITH text-002 itab_zycit003-ebelp

                        text-005 itab_zycit003-ebeln.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE user_command_0200 INPUT.

* >> Início da exclusão: MODULE USER_COMMAND_0200

  IF sy-tcode EQ '/PWS/ZYCI016_C' OR sy-tcode EQ '/PWS/ZYCI016_A'.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0200

  DATA: v_autoriza TYPE c.

  IF sy-tcode EQ '/PWS/ZYCI016_C' OR

     sy-tcode EQ '/PWS/ZYCI016_A'.

* << Fim da inclusão

    CASE okcode.

* >> Início da exclusão: MODULE USER_COMMAND_0200

      WHEN 'OBS'.

        CALL SCREEN '0210' STARTING AT 2 2.

* << Fim da exclusão

      WHEN 'ITENSNFR'.

        CALL SCREEN '0220' STARTING AT 2 2.

* >> Início da exclusão: MODULE USER_COMMAND_0200

      WHEN 'SELE'.

        GET CURSOR FIELD v_campo VALUE v_valor.

        IF v_campo EQ '/PWS/ZYCIE044-DOCNUM'.

          SELECT SINGLE * FROM j_1bnfdoc

            WHERE docnum EQ v_valor.

          IF sy-subrc EQ 0.

            i_docnum = v_valor.

            SET PARAMETER ID 'JEF' FIELD i_docnum.

            CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN.

          ELSE.

            MESSAGE i025.

          ENDIF.

        ELSEIF v_campo EQ '/PWS/ZYCIE044-NRSEQ' .

          /pws/zycie042-nrseq = v_valor.

          EXPORT  /pws/zycie042-nrseq TO MEMORY ID '002'.

          v_status_s = 0.

          CALL TRANSACTION '/PWS/ZYCI001_E' AND SKIP FIRST SCREEN.

        ELSEIF v_campo EQ '/PWS/ZYCIE044-EBELN'.

          i_ebeln = v_valor.

          SELECT SINGLE * FROM ekko

            INTO ekko

            WHERE ebeln = v_valor.

          IF ekko-bstyp = 'L'.

            SET PARAMETER ID 'VRT' FIELD i_ebeln.

            AUTHORITY-CHECK OBJECT 'S_TCODE'

            ID 'TCD' FIELD 'ME33'.

            IF sy-subrc EQ 0.

              CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.

            ELSE.

              MESSAGE e261(sf) WITH 'ME33'.

            ENDIF.

          ELSE.

            SET PARAMETER ID 'BES' FIELD i_ebeln.

            AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD 'ME23N'.

            IF sy-subrc EQ 0.

              CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

            ELSE.

              MESSAGE e261(sf) WITH 'ME23N'.

            ENDIF.

          ENDIF.

        ENDIF.

* << Fim da exclusão

      WHEN 'ENTE'.

        IF /pws/zycie043-nfexterna NE wa_zycit048-nfext.

         v_ok = 'A'.

        ENDIF.

        itab_zycit044-nfnum  = /pws/zycie044-nfnum.

        itab_zycit044-series = /pws/zycie044-series.

        itab_zycit044-subser = /pws/zycie044-subser.

      WHEN 'DELE'.

        LOOP AT itab_zycit044

          WHERE mark = 'X'.

...

 

...

        LOOP AT itab_zycit044.

          itab_zycit044-mark = 'X'.

          MODIFY itab_zycit044.

        ENDLOOP.

      WHEN 'DESM'.

        LOOP AT itab_zycit044.

          itab_zycit044-mark = ' '.

          MODIFY itab_zycit044.

        ENDLOOP.

      WHEN 'MODO'.

* >> Início da exclusão: MODULE USER_COMMAND_0200

        DATA: v_autoriza TYPE c.

* << Fim da exclusão

        CALL FUNCTION '/PWS/ZYGL_AUTORIZA_MODO_BATCH'

             EXPORTING

                  codmod   = 'D'

                  usuario  = sy-uname

                  func     = 'NFR'

             IMPORTING

                  autoriza = v_autoriza.

        IF v_autoriza  = 'X'.

          PERFORM modo_batch_input.

        ELSE.

          MESSAGE w013 WITH text-094 text-095.

        ENDIF.

      WHEN 'CRIARNFR'.

        IF /pws/zycie043-transpnac IS INITIAL.

          SELECT SINGLE * FROM /pws/zyglt217

          WHERE arbgb EQ '/PWS/ZYCIM'

          AND   msgnr EQ '111'.

          IF sy-subrc EQ 0 AND NOT /pws/zyglt217-msgtp IS INITIAL.

          MESSAGE ID '/PWS/ZYCIM' TYPE /pws/zyglt217-msgtp NUMBER '111'.

* >> Início da inclusão: MODULE USER_COMMAND_0200

          ENDIF.

        ENDIF.

        PERFORM cria_nota_fiscal_r.

      WHEN 'CANCR'.

        PERFORM efetua_cancelamento_r.

    ENDCASE.

  ELSEIF sy-tcode EQ '/PWS/ZYCI016_E'.

    CASE okcode.

      WHEN 'CRIARNFR'.

        PERFORM cria_nota_fiscal_r.

      WHEN OTHERS.

        IF NOT okcode IS INITIAL.

          MESSAGE s015 WITH text-006.

* << Fim da inclusão

          ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0200

    ENDCASE.

* << Fim da inclusão

        ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_0200

        PERFORM cria_nota_fiscal_r.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0200

  CASE okcode.

* << Fim da inclusão

      WHEN 'DRAFT'.

        GET CURSOR FIELD v_campo VALUE v_valor.

        EXPORT /pws/zycie041-nrseq TO MEMORY ID '001'.

        IF v_campo EQ '/PWS/ZYCIE044-DOCNUM'.

          PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI016'

                              'DNF001'.

          CLEAR itab_zyglt100 .

          READ TABLE itab_zyglt100 WITH KEY zexit = 'DNF001'.

          IF itab_zyglt100-zexit_ativa NE 'X'.

            SUBMIT /pws/zycir005 WITH pa_nrnot = v_valor AND RETURN.

          ELSE.

            SUBMIT (itab_zyglt100-programa) WITH

                                          pa_nrnot = v_valor AND RETURN.

          ENDIF.

          MESSAGE i026.

        ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_0200

      WHEN 'CANCR'.

        PERFORM efetua_cancelamento_r.

    ENDCASE.

  ELSEIF sy-tcode EQ '/PWS/ZYCI016_E'.

    CASE okcode.

* << Fim da exclusão

      WHEN 'OBS'.

        CALL SCREEN '0210' STARTING AT 2 2.

* >> Início da exclusão: MODULE USER_COMMAND_0200

      WHEN 'CRIARNFR'.

        PERFORM cria_nota_fiscal_r.

* << Fim da exclusão

      WHEN 'SELE'.

        GET CURSOR FIELD v_campo VALUE v_valor.

        IF v_campo EQ '/PWS/ZYCIE044-DOCNUM'.

          SELECT SINGLE * FROM j_1bnfdoc

...

 

...

                MESSAGE e261(sf) WITH 'ME33'.

              ENDIF.

            ELSE.

              SET PARAMETER ID 'BES' FIELD i_ebeln.

              AUTHORITY-CHECK OBJECT 'S_TCODE'

              ID 'TCD' FIELD 'ME23N'.

              IF sy-subrc EQ 0.

                CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

              ELSE.

                MESSAGE e261(sf) WITH 'ME23N'.

* >> Início da exclusão: MODULE USER_COMMAND_0200

              ENDIF.

* << Fim da exclusão

            ENDIF.

          ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_0200

        ENDIF.

      WHEN 'DRAFT'.

        GET CURSOR FIELD v_campo VALUE v_valor.

        IF v_campo EQ '/PWS/ZYCIE044-DOCNUM'.

          SUBMIT /pws/zycir005 WITH pa_nrnot = v_valor AND RETURN.

        ELSE.

          MESSAGE i026.

* << Fim da exclusão

        ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_0200

      WHEN OTHERS.

        IF NOT okcode IS INITIAL.

          MESSAGE s015 WITH text-006.

* << Fim da exclusão

        ENDIF.

    ENDCASE.

* >> Início da exclusão: MODULE USER_COMMAND_0200

  ENDIF.

* << Fim da exclusão

  CLEAR: okcode.

ENDMODULE.

MODULE user_command_0210 INPUT.

  CASE okcode.

    WHEN 'ENTE'.

      LEAVE TO SCREEN 0.

  ENDCASE.

ENDMODULE.

MODULE user_command_0220 INPUT.

  CASE okcode.

...