CE PLUS - Nota 013089

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Função

Data/Hora da Publicação: 01/07/2013 00:00:00

Data/Hora Última Alteração: 19/08/2013 13:54:49

Descrição da Nota: TRATAMENTO MENSAGEM AUTOMATICA NA NOTA FISCAL.

Sintoma

Ao criar a nota fiscal ocorre erro no batch input ao preencher as mensagens da nota pois a função de

batch input tenta utilizar uma linha q já foi utilizada.

 

 

Solução

Modificada sequencia de batch input para preencher a mensagem antes de lançar os itens da nota,

assim o programa de nota fiscal ainda não terá gerado nenhuma mensagem automatica.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

INFORMAR A CONDIÇÃO DE PAGAMENTO NA NOTA FISCAL GLOBAL

AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA MENSAGEM

Informações Complementares

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

Nota Número 13089 Data: 01/07/2013 Hora: 08:58:03

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

 

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

Nota Número              : 13089

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00005

Agrupamento              : 00158

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

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

05047  - 00001 - 7.0    - 00003  - AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA M

10138  - 00002 - 8.0    - 00003  - INFORMAR A CONDIÇÃO DE PAGAMENTO NA NOTA FISCAL GLOBAL

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

TRATAMENTO MENSAGEM AUTOMATICA NA NOTA FISCAL.

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

Palavras Chave:

CRIAR - NOTA - FISCAL - MENSAGEM - AUTOMATICA - ERRO - BATCH - INPUT

/PWS/ZYCI_TRANSACAO_J1B1N - FUNÇÃO

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

Objetos da nota:

FUNC /PWS/ZYCI_TRANSACAO_J1B1N

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_J1B1N

 

...

                    'J_1BDYDOC-INCO2'         t_dados-inco2,

                    'BDC_OKCODE'       '=TAB1'.

    ELSE.

      PERFORM bdc_campo USING:

     'J_1BDYDOC-NTGEW'     v_ntgew,

                   'J_1BDYDOC-BRGEW'     v_brgew,

     'J_1BDYDOC-GEWEI'         t_dados-gewei,

                    'BDC_OKCODE'       '=TAB1'.

    ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=TAB4'.

    FREE t_msg_aux.

    LOOP AT t_message WHERE nrseq  = t_dados-nrseq

                        AND branch = t_dados-branch.

      t_msg_aux = t_message.

      APPEND t_msg_aux.

    ENDLOOP.

    CLEAR: v_msgicms, v_msgipi.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=ENTE'.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    ADD 1 TO v_indice.

    CLEAR v_campo.

    CONCATENATE 'LINESEL(' v_indice ')' INTO v_campo.

    PERFORM bdc_campo  USING:

     'BDC_CURSOR'           v_campo,

       v_campo              'X'.

    CLEAR v_campo.

    CONCATENATE 'J_1BDYFTX-MESSAGE(' v_indice ')' INTO v_campo.

    PERFORM bdc_campo  USING:

       v_campo                   '*',

       'BDC_OKCODE'              '=ENTE'.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=LONG'.

    DESCRIBE TABLE t_msg_aux LINES v_lines.

    CLEAR v_cont.

    LOOP AT t_msg_aux.

      v_cont = v_cont + 1.

      IF sy-saprl = '46B'.

        PERFORM bdc_tela USING 'SAPLEDITOR_START' '2110'.

      ELSE.

        PERFORM bdc_tela USING 'SAPLS38E' '0600'.

      ENDIF.

      IF v_cont EQ 1.

        PERFORM bdc_campo  USING:

               'BDC_CURSOR'              'RSTXP-TDLINE(01)',

               'RSTXP-TDLINE(01)'        t_msg_aux-msg.

      ELSE.

        PERFORM bdc_campo  USING:

               'BDC_CURSOR'              'RSTXP-TDLINE(02)',

               'RSTXP-TDLINE(02)'        t_msg_aux-msg.

      ENDIF.

      IF v_cont NE v_lines.

        PERFORM bdc_campo  USING:

               'BDC_OKCODE'              '=ACIL'.

      ELSE.

        IF sy-saprl = '46B'.

          PERFORM bdc_campo  USING:

                 'BDC_OKCODE'              '=TTU'.

        ELSE.

          PERFORM bdc_campo  USING:

                 'BDC_OKCODE'              '=WB_SAVE'.

        ENDIF.

      ENDIF.

    ENDLOOP.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo USING:

                    'BDC_OKCODE'       '=TAB1'.

* << Fim da inclusão

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo USING:

  'BDC_OKCODE'       '=ADIT'.

    CLEAR v_cont.

    DESCRIBE TABLE t_itens LINES v_lines.

    LOOP AT t_itens.

...

 

...

      IF NOT v_lines = v_tabix.

        PERFORM bdc_tela USING 'SAPLJ1BB2' '3000'.

        PERFORM bdc_campo  USING:

               'BDC_OKCODE'              '=ADIT'.

      ENDIF.

    ENDLOOP.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '3000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=BACK'.

 

 

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

* << Fim da exclusão

    IF NOT t_dados-zterm IS INITIAL.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

* << Fim da inclusão

      PERFORM bdc_campo  USING:

             'BDC_OKCODE'                '=TAB6'.

      PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

      PERFORM bdc_campo  USING:

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

             'J_1BDYDOC-ZTERM'  t_dados-zterm.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

             'J_1BDYDOC-ZTERM'  t_dados-zterm,

             'BDC_OKCODE'                '=ENTE'.

* << Fim da inclusão

    ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=TAB4'.

    FREE t_msg_aux.

    LOOP AT t_message WHERE nrseq  = t_dados-nrseq

                        AND branch = t_dados-branch.

      t_msg_aux = t_message.

      APPEND t_msg_aux.

    ENDLOOP.

    CLEAR: v_msgicms, v_msgipi.

    CLEAR: v_indice.

    SELECT SINGLE * FROM dd02l

     WHERE tabname = c_pis_t.

    IF sy-subrc NE 0.

      v_msgpis = 'X'.

    ENDIF.

    SELECT SINGLE * FROM dd02l

     WHERE tabname = c_cof_t.

    IF sy-subrc NE 0.

      v_msgcof = 'X'.

    ENDIF.

    CLEAR t_itens.

    SORT t_itens BY leipis.

    CLEAR v_direito.

    LOOP AT t_itens.

      IF v_direito NE t_itens-leipis.

        v_direito = t_itens-leipis.

        IF NOT t_itens-leipis IS INITIAL.

          CLEAR: wa_text_law.

          SELECT SINGLE * FROM (c_pis_t)

               INTO wa_text_law

              WHERE langu EQ sy-langu

                AND taxlaw EQ t_itens-leipis.

          IF  NOT wa_text_law-line1 IS INITIAL

            OR NOT wa_text_law-line2 IS INITIAL

            OR NOT wa_text_law-line3 IS INITIAL

            OR NOT wa_text_law-line4 IS INITIAL.

            v_msgpis = 'X'.

            ADD 1 TO v_indice.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDLOOP.

    CLEAR t_itens.

    SORT t_itens BY leicofins.

    CLEAR v_direito.

    LOOP AT t_itens.

      IF v_direito NE t_itens-leicofins.

        v_direito = t_itens-leicofins.

        IF NOT t_itens-leicofins IS INITIAL.

          CLEAR: wa_text_law.

          SELECT SINGLE * FROM (c_cof_t)

               INTO wa_text_law

              WHERE langu EQ sy-langu

                AND taxlaw EQ t_itens-leicofins.

          IF  NOT wa_text_law-line1 IS INITIAL

            OR NOT wa_text_law-line2 IS INITIAL

            OR NOT wa_text_law-line3 IS INITIAL

            OR NOT wa_text_law-line4 IS INITIAL.

            v_msgcof = 'X'.

            ADD 1 TO v_indice.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDLOOP.

    CLEAR t_itens.

    SORT t_itens BY taxlw1.

    CLEAR v_direito.

    LOOP AT t_itens.

      IF v_direito NE t_itens-taxlw1.

        v_direito = t_itens-taxlw1.

        SELECT SINGLE * FROM j_1batl1t

          WHERE langu EQ sy-langu

            AND taxlaw EQ t_itens-taxlw1.

        IF NOT j_1batl1t-line1 IS INITIAL

          OR NOT j_1batl1t-line2 IS INITIAL

          OR NOT j_1batl1t-line3 IS INITIAL

          OR NOT j_1batl1t-line4 IS INITIAL.

          v_msgicms = '01'.

          ADD 1 TO v_indice.

        ENDIF.

      ENDIF.

    ENDLOOP.

    CLEAR t_itens.

    SORT t_itens BY taxlw2.

    CLEAR v_direito.

    LOOP AT t_itens.

      IF v_direito NE t_itens-taxlw2.

        v_direito = t_itens-taxlw2.

        SELECT SINGLE * FROM j_1batl2t

          WHERE langu EQ sy-langu

            AND taxlaw EQ t_itens-taxlw2.

        IF NOT j_1batl2t-line1 IS INITIAL

          OR NOT j_1batl2t-line2 IS INITIAL

          OR NOT j_1batl2t-line3 IS INITIAL

          OR NOT j_1batl2t-line4 IS INITIAL.

          v_msgipi = '02'.

          ADD 1 TO v_indice.

        ENDIF.

      ENDIF.

    ENDLOOP.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

             'J_1BDYDOC-ZTERM'  t_dados-zterm,

           'BDC_OKCODE'                '=ENTE'.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    ADD 1 TO v_indice.

    CLEAR v_campo.

    CONCATENATE 'LINESEL(' v_indice ')' INTO v_campo.

    PERFORM bdc_campo  USING:

     'BDC_CURSOR'           v_campo,

       v_campo              'X'.

    CLEAR v_campo.

    CONCATENATE 'J_1BDYFTX-MESSAGE(' v_indice ')' INTO v_campo.

    PERFORM bdc_campo  USING:

       v_campo                   '*',

       'BDC_OKCODE'              '=ENTE'.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=LONG'.

    DESCRIBE TABLE t_msg_aux LINES v_lines.

    CLEAR v_cont.

    LOOP AT t_msg_aux.

      v_cont = v_cont + 1.

      IF sy-saprl = '46B'.

        PERFORM bdc_tela USING 'SAPLEDITOR_START' '2110'.

      ELSE.

        PERFORM bdc_tela USING 'SAPLS38E' '0600'.

      ENDIF.

      IF v_cont EQ 1.

        PERFORM bdc_campo  USING:

               'BDC_CURSOR'              'RSTXP-TDLINE(01)',

               'RSTXP-TDLINE(01)'        t_msg_aux-msg.

      ELSE.

        PERFORM bdc_campo  USING:

               'BDC_CURSOR'              'RSTXP-TDLINE(02)',

               'RSTXP-TDLINE(02)'        t_msg_aux-msg.

      ENDIF.

      IF v_cont NE v_lines.

        PERFORM bdc_campo  USING:

               'BDC_OKCODE'              '=ACIL'.

      ELSE.

        IF sy-saprl = '46B'.

          PERFORM bdc_campo  USING:

                 'BDC_OKCODE'              '=TTU'.

        ELSE.

          PERFORM bdc_campo  USING:

                 'BDC_OKCODE'              '=WB_SAVE'.

        ENDIF.

      ENDIF.

    ENDLOOP.

* << Fim da exclusão

    IF NOT t_dados-transpnac IS INITIAL.

      PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

      PERFORM bdc_campo  USING:

           'BDC_OKCODE'              '=TAB3'.

      PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

...