Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 22/10/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:15:36
Descrição da Nota: AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA MENSAGEM
Sintoma
AO CRIAR Nota Fiscal QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NO MOMENTO DA CRIAÇÃO DA
MENSAGEM da Nota Fiscal.
Solução
Ajustar tratamento do batch input para quando houver dois direitos fiscais diferentes com mensagem
para um mesmo imposto.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05047 Data: 22/10/2007 Hora: 17:51:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05047
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00018
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03588 - 00001 - 7.0 - 00001 - LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL
----------------------------------------------------------------------------------------------------
AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA MENSAGEM
----------------------------------------------------------------------------------------------------
Palavras Chave:
NF - MAIS DE UM ITEM - NOTA FISCAL - ERRO DE BATCH INPUT - MENSAGEM
NFE
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_TRANSACAO_J1B1N
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_J1B1N
...
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
v_indice TYPE n,
v_indice2 TYPE n,
v_indice_aux TYPE n,
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
v_indice(02) TYPE n,
v_indice2(02) TYPE n,
v_indice_aux(02) TYPE n,
* << Fim da inclusão
...
...
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
v_aliqcof(8).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
v_campo(30),
v_aliqcof(8),
v_direito like t_itens-taxlw1.
* << Fim da inclusão
...
...
SELECT SINGLE * FROM dd02l
WHERE tabname = c_cof_t.
IF sy-subrc NE 0.
v_msgcof = 'X'.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
clear t_itens.
SORT t_itens BY leipis.
clear v_direito.
* << Fim da inclusão
LOOP AT t_itens.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
IF NOT t_itens-leipis IS INITIAL AND
v_msgpis IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
if v_direito ne t_itens-leipis.
v_direito = t_itens-leipis.
IF NOT t_itens-leipis IS INITIAL.
* << Fim da inclusão
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.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
ENDLOOP.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
IF NOT t_itens-leicofins IS INITIAL AND
v_msgcof IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
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.
* << Fim da inclusão
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.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
IF v_msgicms IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
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.
* << Fim da inclusão
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.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
IF v_msgipi IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
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.
* << Fim da inclusão
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.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
IF v_indice EQ 4.
EXIT.
* << Fim da exclusão
ENDIF.
ENDLOOP.
PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.
PERFORM bdc_campo USING:
'BDC_OKCODE' '=ENTE'.
PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
CASE v_indice.
WHEN 1.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
add 1 to v_indice.
clear v_campo.
concatenate 'LINESEL(' v_indice ')' into v_campo.
* << Fim da inclusão
PERFORM bdc_campo USING:
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
'BDC_CURSOR' 'LINESEL(02)',
'LINESEL(02)' 'X',
'J_1BDYFTX-MESSAGE(02)' '*',
'BDC_OKCODE' '=ENTE'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
'BDC_CURSOR' v_campo,
v_campo 'X'.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
WHEN 2.
PERFORM bdc_campo USING:
'BDC_CURSOR' 'LINESEL(03)',
'LINESEL(03)' 'X',
'J_1BDYFTX-MESSAGE(03)' '*',
'BDC_OKCODE' '=ENTE'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
clear v_campo.
concatenate 'J_1BDYFTX-MESSAGE(' v_indice ')' into v_campo.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
WHEN 3.
* << Fim da exclusão
PERFORM bdc_campo USING:
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
'BDC_CURSOR' 'LINESEL(04)',
'LINESEL(04)' 'X',
'J_1BDYFTX-MESSAGE(04)' '*',
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
v_campo '*',
* << Fim da inclusão
'BDC_OKCODE' '=ENTE'.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
WHEN 4.
PERFORM bdc_campo USING:
'BDC_CURSOR' 'LINESEL(05)',
'LINESEL(05)' 'X',
'J_1BDYFTX-MESSAGE(05)' '*',
'BDC_OKCODE' '=ENTE'.
WHEN OTHERS.
PERFORM bdc_campo USING:
'BDC_CURSOR' 'LINESEL(01)',
'LINESEL(01)' 'X',
'J_1BDYFTX-MESSAGE(01)' '*',
'BDC_OKCODE' '=ENTE'.
ENDCASE.
* << Fim da exclusão
PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.
PERFORM bdc_campo USING:
'BDC_OKCODE' '=LONG'.
DESCRIBE TABLE t_msg_aux LINES v_lines.
CLEAR v_cont.
...