Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal Remessa
Data/Hora da Publicação: 08/02/2007 00:00:00
Data/Hora Última Alteração: 10/11/2011 13:15:45
Descrição da Nota: NO MOMENTO QUE É GERADO A NF, NÃO GERA A NOTA NEM VAI PARA OS ITENS
Sintoma
Valor C&F e dos impostos estava em duplicidade no custo efetivo.
Foi criado um documento para emissão de Nota Fiscal no PWCE e o mesmo somente
aparece no SAP.
Solução
Tratar programa da NF para atualizar dados do CE após contabilização.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03061 Data: 08/02/2007 Hora: 14:00:55
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03061
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00151
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02595 - 00003 - 6.0 - 00025 - AO CRIAR NF NÃO ATUALIZA TABELAS DO CE E DUPLICA VALORES DE IMPOS
02845 - 00002 - 6.0 - 00026 - ATUALIZAÇÃO DO DOCNUM NA NOTA FISCAL
01972 - 00001 - 6.0 - 00024 - ERRO NA NF QUANDO POSSUI QUEBRAS DE ITENS. VALOR DUPLICADO NO CUS
----------------------------------------------------------------------------------------------------
NO MOMENTO QUE É GERADO A NF, NÃO GERA A NOTA NEM VAI PARA OS ITENS
----------------------------------------------------------------------------------------------------
Palavras Chave:
GERAÇÃO DE NF - EXIT - ITENS DA NF - TRATAMENTO DE EXIT
TABELA DE EXIT
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF it_zycet004 IS INITIAL.
CLEAR: sy-subrc.
IF v_modalidade NE '99' AND ( t001-land1 NE 'AR' AND
t001-land1 NE 'CL' ) OR
( v_modalidade = '99' AND
v_libera = 'X' ).
* >> Início da inclusão: FORM FILL_DATA_J1B1
*Verificação da existência de exit.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
' '.
e_subrc = '0'.
v_tiponf = 'NF'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF003' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
EXPORT: v_modo_bi TO MEMORY ID 'MODOBI' ,
it_zycet004[] TO MEMORY ID 'CET004',
it_zycet005[] TO MEMORY ID 'CET005',
it_zycee006[] TO MEMORY ID 'CEE006'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES itab_zycit042_d
itab_zycit042
it_zycee005
it_zycee007
USING /pws/zycie041
v_tiponf
CHANGING e_subrc
IF FOUND .
IMPORT : it_zycet004[] FROM MEMORY ID 'CET004_04',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycee006[] FROM MEMORY ID 'CEE006_06'.
ENDIF.
ELSE.
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF011' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
ENDIF.
IF e_subrc = '0'.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATA_J1B1
* REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF003'.
e_subrc = '0'.
v_tiponf = 'NF'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF003' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
EXPORT: v_modo_bi TO MEMORY ID 'MODOBI' ,
it_zycet004[] TO MEMORY ID 'CET004',
it_zycet005[] TO MEMORY ID 'CET005',
it_zycee006[] TO MEMORY ID 'CEE006'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES itab_zycit042_d
itab_zycit042
it_zycee005
it_zycee007
USING /pws/zycie041
v_tiponf
CHANGING e_subrc
IF FOUND .
IMPORT : it_zycet004[] FROM MEMORY ID 'CET004_04',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycee006[] FROM MEMORY ID 'CEE006_06'.
ENDIF.
ENDIF.
IF e_subrc = '0'.
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.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc = '0'.
* << Fim da exclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B1N'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_itens = it_zycee007
t_campos = it_zycet004
t_zycet005 = it_zycet005
t_message = it_zycee006
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND tpnf EQ itab_zycit042_aux-tpnf
AND lifnr EQ itab_zycit042_aux-lifnr
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND tpnf EQ itab_zycit042_aux-tpnf
AND lifnr EQ itab_zycit042_aux-lifnr
AND lifnr EQ itab_zycit042_aux-lifnr
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
* >> Início da exclusão: FORM FILL_DATA_J1B1
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND tpnf EQ itab_zycit042_aux-tpnf
AND lifnr EQ itab_zycit042_aux-lifnr
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
* << Fim da exclusão
ENDIF.
IF v_modalidade = '99'
OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
IF v_modalidade = '99' AND
v_libera IS INITIAL.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-014.
it_zycet005-cpochv = /pws/zycie041-nfglobal.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '9999999999'.
APPEND it_zycet005.
ELSEIF t001-land1 EQ 'AR' OR t001-land1 EQ 'CL'.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-014.
it_zycet005-cpochv = /pws/zycie041-nfglobal.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '8888888888'.
APPEND it_zycet005.
ENDIF.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND tpnf EQ itab_zycit042_aux-tpnf
AND lifnr EQ itab_zycit042_aux-lifnr
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
v_qtditem = wa_zycit048-qtd_item.
IF v_counter >= v_qtditem.
v_tpnf = 0.
ENDIF.
ENDIF.
ELSE.
CALL SCREEN '0050'.
ENDIF.
ENDIF.
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE e015 WITH text-043.
ENDIF.
ELSE. "Não QUEBRA POR TIPO DE NOTA
LOOP AT itab_zycit042_aux WHERE ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' ) AND
NOT ebeln IS initial AND
processado IS initial AND
mark EQ 'X'.
IF v_lifnr NE itab_zycit042_aux-lifnr OR
v_j_1bbranch NE itab_zycit042-j_1bbranch.
v_j_1bbranch = itab_zycit042_aux-j_1bbranch.
v_lifnr = itab_zycit042_aux-lifnr.
CLEAR v_counter.
PERFORM clear_date_batch.
PERFORM cabecalho_nf.
IF ( v_resp EQ 'S' ) OR
( v_libera = 'X' AND v_modalidade = '99' ).
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
SELECT SINGLE tpembal quant descr
INTO (local_embal,it_zycee005-quant,
it_zycee005-shpmrk)
FROM /pws/zycit014
WHERE nrseq = /pws/zycit085-nrbl.
IF sy-subrc EQ 0.
SELECT SINGLE traty FROM /pws/zycit015 INTO
it_zycee005-traty
WHERE tpembal = local_embal.
ENDIF.
IF /pws/zycie041-nfexterna EQ 'X'.
it_zycee005-nftype = wa_zycit048-catnfext.
it_zycee005-nfnum = itab_zycit042_aux-nfnum.
it_zycee005-series = itab_zycit042_aux-series.
it_zycee005-subser = itab_zycit042_aux-subser.
ELSE.
"Se for Sucata, manda tiponf de sucata
IF v_urf2 = 1.
it_zycee005-nftype = wa_zyglt369-catnfint.
ELSE.
it_zycee005-nftype = wa_zycit048-catnfint.
ENDIF.
ENDIF.
LOOP AT itab_zycit042 WHERE nrseq
EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND j_1bbranch = itab_zycit042_aux-j_1bbranch
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado IS initial.
itab_zycit042-processado = 'X'.
MODIFY itab_zycit042 TRANSPORTING processado.
itab_zycit042_aux-processado = 'X'.
MODIFY itab_zycit042_aux TRANSPORTING processado WHERE
nrseq EQ itab_zycit042-nrseq
AND j_1bbranch = itab_zycit042-j_1bbranch
AND lifnr = itab_zycit042-lifnr
AND nfglobal EQ itab_zycit042-nfglobal
AND ebeln EQ itab_zycit042-ebeln
AND ebelp EQ itab_zycit042-ebelp.
READ TABLE itab_t001w WITH KEY werks = itab_zycit042-werks.
READ TABLE itab_zycit042_d WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
CLEAR v_subrc.
MOVE: itab_zycit042 TO wa_zycit042_exit,
itab_zycit042_d TO wa_zycit042_exit_d.
CALL CUSTOMER-FUNCTION '001'
EXPORTING
wa_zycit042 = wa_zycit042_exit
wa_zycit042_d = wa_zycit042_exit_d
wa_zycit041 = /pws/zycie041
v_parametro = '01'
IMPORTING
v_subrc = v_subrc
TABLES
it_zycee007 = it_zycee007
itab_zycit036 = itab_zycit036
itab_zycit036_di = itab_zycit036_di.
IF v_subrc NE 'X'.
READ TABLE itab_zycit033 WITH KEY tpnf = itab_zycit042-tpnf
regio = itab_t001w-regio.
IF sy-subrc EQ 0.
PERFORM itens_nf.
ELSE.
READ TABLE itab_zycit033 WITH KEY tpnf = itab_zycit042-tpnf
regio = space.
PERFORM itens_nf.
ENDIF.
ENDIF.
ENDIF.
CLEAR itab_zycit033.
PERFORM peso_global_n.
v_counter = v_counter + 1.
v_qtditem = wa_zycit048-qtd_item.
IF v_counter >= v_qtditem.
EXIT.
ENDIF.
ENDLOOP.
it_zycee005-transpnac = /pws/zycie041-transpnac.
APPEND it_zycee005.
PERFORM mensagens_nf.
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
IF it_zycet004 IS INITIAL.
IF ( v_modalidade NE '99' AND t001-land1 NE 'AR'
AND t001-land1 NE 'CL' ) OR
( v_modalidade = '99' AND
v_libera = 'X' ).
* >> Início da inclusão: FORM FILL_DATA_J1B1
*Verificação da existência de exit.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
' '.
e_subrc = '0'.
v_tiponf = 'NF'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF003' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
EXPORT: v_modo_bi TO MEMORY ID 'MODOBI' ,
it_zycet004[] TO MEMORY ID 'CET004',
it_zycet005[] TO MEMORY ID 'CET005',
it_zycee006[] TO MEMORY ID 'CEE006'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES itab_zycit042_d
itab_zycit042
it_zycee005
it_zycee007
USING /pws/zycie041
v_tiponf
CHANGING e_subrc
IF FOUND.
IMPORT : it_zycet004[] FROM MEMORY ID 'CET004_04',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycee006[] FROM MEMORY ID 'CEE006_06'.
ENDIF.
ELSE.
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF011' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
if e_subrc = '0'.
* >> Início da exclusão: FORM FILL_DATA_J1B1
*Verificação da existência de exit.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF003'.
e_subrc = '0'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF003' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
EXPORT: v_modo_bi TO MEMORY ID 'MODOBI' ,
it_zycet004[] TO MEMORY ID 'CET004',
it_zycet005[] TO MEMORY ID 'CET005',
it_zycee006[] TO MEMORY ID 'CEE006'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES itab_zycit042_d
itab_zycit042
it_zycee005
it_zycee007
USING /pws/zycie041
v_tiponf
CHANGING e_subrc
IF FOUND.
IMPORT : it_zycet004[] FROM MEMORY ID 'CET004_04',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycee006[] FROM MEMORY ID 'CEE006_06'.
ENDIF.
ENDIF.
IF e_subrc = '0'.
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.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc = '0'.
* << Fim da exclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B1N'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_itens = it_zycee007
t_campos = it_zycet004
t_zycet005 = it_zycet005
t_message = it_zycee006
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND j_1bbranch = itab_zycit042_aux-j_1bbranch
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-n
AND nfglobal EQ itab_zycit042_aux-nf
AND j_1bbranch = itab_zycit042_aux-j_1b
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
* >> Início da exclusão: FORM FILL_DATA_J1B1
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND j_1bbranch = itab_zycit042_aux-j_1bbranch
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDIF.
IF sy-subrc = 0 OR v_modalidade = '99' OR
( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
IF v_modalidade = '99' AND
v_libera IS INITIAL.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-014.
it_zycet005-cpochv = /pws/zycie041-nfglobal.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '9999999999'.
APPEND it_zycet005.
ELSEIF t001-land1 EQ 'AR' OR t001-land1 EQ 'CL'.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-014.
it_zycet005-cpochv = /pws/zycie041-nfglobal.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '8888888888'.
APPEND it_zycet005.
ENDIF.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND j_1bbranch = itab_zycit042_aux-j_1bbranch
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
ENDIF.
ENDIF.
ELSE.
CALL SCREEN '0050'.
ENDIF.
ENDIF.
ENDLOOP.
...
...
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
IF it_zycet004 IS INITIAL.
*Verificação da existência de exit.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF004'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF004' BINARY SEARCH.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NFR'.
EXPORT: v_modo_bi TO MEMORY ID 'MODOBI' ,
it_zycet004[] TO MEMORY ID 'CET004',
it_zycet005[] TO MEMORY ID 'CET005',
it_zycee006[] TO MEMORY ID 'CEE006'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES itab_zycit042_d
itab_zycit044
it_zycee005
it_zycee007
USING v_tiponf
/pws/zycie043
CHANGING e_subrc
IF FOUND.
IMPORT : it_zycet004[] FROM MEMORY ID 'CET004_04',
it_zycet005[] FROM MEMORY ID 'CET005_05',
it_zycee006[] FROM MEMORY ID 'CEE006_06'.
ENDIF.
ENDIF.
IF e_subrc = '0'.
" Campos da tela ok, porém resultado igual 'S' ou 'E'
IF v_modalidade = '99' OR
( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
IF v_modalidade = '99'.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-025.
it_zycet005-cpochv = /pws/zycie043-nfremessa.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '9999999999'.
APPEND it_zycet005.
ELSEIF t001-land1 EQ 'AR' OR t001-land1 EQ 'CL'.
it_zycet005-tcode = text-065.
it_zycet005-tabela = text-025.
it_zycet005-cpochv = /pws/zycie043-nfremessa.
it_zycet005-tpmsg = 'S'.
it_zycet005-belnr = '8888888888'.
APPEND it_zycet005.
ENDIF.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
ENDLOOP.
* >> Início da exclusão: FORM FILL_DATA_J1B1_R
ENDIF.
* << Fim da exclusão
ELSEIF v_modalidade NE '99' AND
( t001-land1 NE 'AR' AND t001-land1 NE 'CL' )..
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.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
"Para verificar o tipo da NF e diferenciar seus
"tratamentos
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
ENDIF.
* << Fim da inclusão
IF e_subrc = '0'.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_J1B1N'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycee005
t_itens = it_zycee007
t_campos = it_zycet004
t_zycet005 = it_zycet005
t_message = it_zycee006
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
ENDLOOP.
ELSE.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
ENDLOOP.
...
...
IMPORT /pws/zycee007 FROM MEMORY ID 'I016D'.
MOVE /pws/zycee007 TO it_zycee007.
APPEND it_zycee007.
CLEAR it_zycee007.
ELSE.
* >> Início da inclusão: FORM ITENS_NF
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF012'.
e_subrc = 0.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF012' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
v_tiponf = 'NF'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc = '0'.
* << Fim da inclusão
PERFORM itens_nfnew.
ENDIF.
* >> Início da inclusão: FORM ITENS_NF
ENDIF.
* << Fim da inclusão
EXPORT space TO MEMORY ID 'I016A'.
EXPORT space TO MEMORY ID 'I016B'.
ENDIF.
ENDFORM.
FORM itens_nf_r.
...
...
SET PARAMETER ID 'BSP' FIELD space.
SET PARAMETER ID '/pws/ZYCBP001' FIELD space.
EXPORT space TO MEMORY ID 'I016A'.
EXPORT space TO MEMORY ID 'I016B'.
ELSE.
* >> Início da inclusão: FORM ITENS_NF_R
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF012'.
e_subrc = 0.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF012' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
v_tiponf = 'NFR'.
e_subrc = '0'.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc = '0'.
* << Fim da inclusão
PERFORM itens_nfrnew.
* >> Início da inclusão: FORM ITENS_NF_R
ENDIF.
* << Fim da inclusão
ENDIF.
...