Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 11/08/2010 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:03:14
Descrição da Nota: CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'
Sintoma
time-out nas tabelas BSAD e BSAS por conter muitos registros.
Solução
Cliente que não quer fazer indice nas tabelas BSAD e BSAS, utiliza a exit para nova seleção nessas
tabelas.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10487 Data: 11/08/2010 Hora: 12:03:38
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10487
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00004
Agrupamento : 00034
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09444 - 00007 - 8.0 - 00001 - LIQUIDAÇÃO - LANÇAMENTOS DE CLIENTE/LIQ. AND COM CHAVE CPT(INCORR
09890 - 00006 - 8.0 - 00002 - DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS
09980 - 00005 - 8.0 - 00003 - VINCULAÇÃO COM LIQ AUTOMÁTICA - MENSAGEM INCORRETA DOCUMENTO COMP
10020 - 00004 - 8.0 - 00003 - LIQUIDAÇÃO - ARBITRAGEM - CONTA ARB INCORRETA PT-NÃO FAZ ARREDOND
10204 - 00003 - 8.0 - 00003 - LIQUIDAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.
10270 - 00002 - 8.0 - 00003 - LIQUIDAÇÃO - ERRO ATUALIZAÇÃO SALDO NO ESTORNO
10436 - 00001 - 8.0 - 00004 - VINCULAÇÃO-ATRIBUIÇÃO INCORRETA, LIQUIDAÇÃO-CHAVE DE REFERÊNCIA V
----------------------------------------------------------------------------------------------------
CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'
----------------------------------------------------------------------------------------------------
Palavras Chave:
CAMBIO EXPORTAÇÃO - LIQUIDAÇÃO - EXIT 'LIQ034'
PARA TRATAMENTO ANTES DA SELEÇÃO DAS TABELAS BSAD E BSAS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB004X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
data: begin of itab_bsad occurs 0,
bukrs like bsad-bukrs,
kunnr like bsad-kunnr,
umskz like bsad-umskz,
augdt type bsad-augdt,
augbl type bsad-augbl,
gjahr like bsad-gjahr,
belnr like bsad-belnr,
bschl like bsad-bschl,
gsber like bsad-gsber,
wrbtr like bsad-wrbtr,
sgtxt like bsad-sgtxt,
zuonr like bsad-zuonr,
budat like bsad-budat,
end of itab_bsad.
data: begin of itab_bsas occurs 0,
bukrs like bsas-bukrs,
hkont like bsas-hkont,
augdt type bsas-augdt,
augbl type bsas-augbl,
gjahr like bsas-gjahr,
belnr like bsas-belnr,
bschl like bsas-bschl,
gsber like bsas-gsber,
wrbtr like bsas-wrbtr,
sgtxt like bsas-sgtxt,
zuonr like bsas-zuonr,
budat like bsas-budat,
end of itab_bsas.
* << Fim da exclusão
...
itab_zycbt006_aux4-gjahr = v_year.
APPEND itab_zycbt006_aux4.
itab_zycbt006_aux4-belnr = itab_zycbt006-belnr.
APPEND itab_zycbt006_aux4.
itab_zycbt006_aux4-belnr = itab_zycbt006-belnr_f28.
APPEND itab_zycbt006_aux4.
ENDIF.
ENDLOOP.
ENDLOOP.
IF NOT itab_zycbt006_aux4[] IS INITIAL.
* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
CLEAR itab_zyglt100.
REFRESH: itab_zyglt100.
IF itab_zyglt100[] IS INITIAL.
v_syrepid = sy-repid.
CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
EXPORTING
i_codmod = 'E'
i_func = v_syrepid
TABLES
itab_zyglt100 = itab_zyglt100
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
IF sy-subrc = 0 .
ELSE.
ENDIF.
ENDIF.
READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.
IF sy-subrc EQ 0 and
NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa)
USING ok_code
CHANGING e_subrc.
IF e_subrc NE 0.
EXIT.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT bukrs kunnr umskz augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
INTO TABLE itab_bsad
FROM bsad
FOR ALL ENTRIES IN itab_zycbt006_aux4
WHERE bukrs EQ itab_zycbt006_aux4-bukrs
AND augdt EQ itab_zycbt006_aux4-dtpagto
AND augbl EQ itab_zycbt006_aux4-belnr
AND gjahr EQ itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
ENDIF.
* << Fim da exclusão
DELETE itab_bsad WHERE kunnr = space
OR kunnr = ' '.
* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
ENDIF.
ENDIF.
* << Fim da inclusão
LOOP AT itab_bsad.
v_tabix = sy-tabix.
LOOP AT itab_zycbt006_aux4 WHERE bukrs = itab_bsad-bukrs
AND dtpagto = itab_bsad-augdt
AND belnr = itab_bsad-augbl
AND gjahr = itab_bsad-gjahr
AND belnr = itab_bsad-belnr.
DELETE itab_bsad INDEX v_tabix.
EXIT.
ENDLOOP.
ENDLOOP.
IF NOT itab_zycbt006_aux4[] IS INITIAL.
* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
CLEAR itab_zyglt100.
REFRESH: itab_zyglt100.
IF itab_zyglt100[] IS INITIAL.
v_syrepid = sy-repid.
CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
EXPORTING
i_codmod = 'E'
i_func = v_syrepid
TABLES
itab_zyglt100 = itab_zyglt100
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
IF sy-subrc = 0 .
ELSE.
ENDIF.
ENDIF.
READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.
IF sy-subrc EQ 0 and
NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa)
USING ok_code
CHANGING e_subrc.
IF e_subrc NE 0.
EXIT.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT bukrs hkont augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
INTO TABLE itab_bsas
FROM bsas
FOR ALL ENTRIES IN itab_zycbt006_aux4
WHERE bukrs EQ itab_zycbt006_aux4-bukrs
AND augdt EQ itab_zycbt006_aux4-dtpagto
AND augbl EQ itab_zycbt006_aux4-belnr
AND gjahr EQ itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
ENDIF.
* << Fim da exclusão
DELETE itab_bsas WHERE hkont = space
OR hkont = ' '.
* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3
ENDIF.
ENDIF.
* << Fim da inclusão
LOOP AT itab_bsas.
v_tabix = sy-tabix.
IF itab_bsas-bschl NE '40' AND itab_bsas-bschl NE '50'.
...
...
* >> Início da exclusão: FORM ESTORNO_PERIODO_FEC_PERF
data: begin of itab_bsad occurs 0,
bukrs like bsad-bukrs,
kunnr like bsad-kunnr,
umskz like bsad-umskz,
augdt type bsad-augdt,
augbl type bsad-augbl,
gjahr like bsad-gjahr,
belnr like bsad-belnr,
bschl like bsad-bschl,
gsber like bsad-gsber,
wrbtr like bsad-wrbtr,
sgtxt like bsad-sgtxt,
zuonr like bsad-zuonr,
budat like bsad-budat,
end of itab_bsad.
data: begin of itab_bsas occurs 0,
bukrs like bsas-bukrs,
hkont like bsas-hkont,
augdt type bsas-augdt,
augbl type bsas-augbl,
gjahr like bsas-gjahr,
belnr like bsas-belnr,
bschl like bsas-bschl,
gsber like bsas-gsber,
wrbtr like bsas-wrbtr,
sgtxt like bsas-sgtxt,
zuonr like bsas-zuonr,
budat like bsas-budat,
end of itab_bsas.
* << Fim da exclusão
...
itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.
itab_zycbt006_aux4-belnr = itab_zycbt209-belnr.
itab_zycbt006_aux4-gjahr = v_year.
APPEND itab_zycbt006_aux4.
itab_zycbt006_aux4-belnr = itab_zycbt006-belnr.
APPEND itab_zycbt006_aux4.
ENDIF.
ENDLOOP.
ENDLOOP.
IF NOT itab_zycbt006_aux4[] IS INITIAL.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF
CLEAR itab_zyglt100.
REFRESH: itab_zyglt100.
IF itab_zyglt100[] IS INITIAL.
v_syrepid = sy-repid.
CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
EXPORTING
i_codmod = 'E'
i_func = v_syrepid
TABLES
itab_zyglt100 = itab_zyglt100
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
IF sy-subrc = 0 .
ELSE.
ENDIF.
ENDIF.
READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.
IF sy-subrc EQ 0 and
NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa)
USING ok_code
CHANGING e_subrc.
IF e_subrc NE 0.
EXIT.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT bukrs kunnr umskz augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
INTO TABLE itab_bsad
FROM bsad
FOR ALL ENTRIES IN itab_zycbt006_aux4
WHERE bukrs EQ itab_zycbt006_aux4-bukrs
AND augdt EQ itab_zycbt006_aux4-dtpagto
AND augbl EQ itab_zycbt006_aux4-belnr
AND gjahr EQ itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FEC_PERF
ENDIF.
* << Fim da exclusão
DELETE itab_bsad WHERE kunnr = space
OR kunnr = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF
ENDIF.
ENDIF.
* << Fim da inclusão
LOOP AT itab_bsad.
v_tabix = sy-tabix.
LOOP AT itab_zycbt006_aux4 WHERE bukrs = itab_bsad-bukrs
AND dtpagto = itab_bsad-augdt
AND gjahr = itab_bsad-gjahr
AND belnr = itab_bsad-augbl
AND belnr = itab_bsad-belnr.
DELETE itab_bsad INDEX v_tabix.
EXIT.
ENDLOOP.
ENDLOOP.
IF NOT itab_zycbt006_aux4[] IS INITIAL.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF
CLEAR itab_zyglt100.
REFRESH: itab_zyglt100.
IF itab_zyglt100[] IS INITIAL.
v_syrepid = sy-repid.
CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
EXPORTING
i_codmod = 'E'
i_func = v_syrepid
TABLES
itab_zyglt100 = itab_zyglt100
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
IF sy-subrc = 0 .
ELSE.
ENDIF.
ENDIF.
READ TABLE itab_zyglt100 WITH KEY zexit = 'LIQ034' BINARY SEARCH.
IF sy-subrc EQ 0 and
NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa)
USING ok_code
CHANGING e_subrc.
IF e_subrc NE 0.
EXIT.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT bukrs hkont augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
INTO TABLE itab_bsas
FROM bsas
FOR ALL ENTRIES IN itab_zycbt006_aux4
WHERE bukrs EQ itab_zycbt006_aux4-bukrs
AND augdt EQ itab_zycbt006_aux4-dtpagto
AND augbl EQ itab_zycbt006_aux4-belnr
AND gjahr EQ itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FEC_PERF
ENDIF.
* << Fim da exclusão
DELETE itab_bsas WHERE hkont = space
OR hkont = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FEC_PERF
ENDIF.
ENDIF.
* << Fim da inclusão
LOOP AT itab_bsas.
v_tabix = sy-tabix.
IF itab_bsas-bschl NE '40' AND itab_bsas-bschl NE '50'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
data: begin of itab_bsas occurs 0,
bukrs like bsas-bukrs,
hkont like bsas-hkont,
augdt like bsas-augdt,
augbl like bsas-augbl,
gjahr like bsas-gjahr,
belnr like bsas-belnr,
budat like bsas-budat,
wrbtr like bsas-wrbtr,
end of itab_bsas.
data: begin of itab_bsad occurs 0,
bukrs like bsad-bukrs,
kunnr like bsad-kunnr,
umskz like bsad-umskz,
augdt like bsad-augdt,
augbl like bsad-augbl,
gjahr like bsad-gjahr,
belnr like bsad-belnr,
wrbtr like bsad-wrbtr,
budat like bsad-budat,
end of itab_bsad.
* << Fim da exclusão
...
version_undefined = 6
others = 7.
itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.
itab_zycbt006_aux4-belnr = itab_zycbt209-belnr.
itab_zycbt006_aux4-gjahr = v_year.
append itab_zycbt006_aux4.
endif.
endloop.
endloop.
if not itab_zycbt006_aux4[] is initial.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
select bukrs hkont augdt augbl gjahr belnr budat wrbtr
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
select bukrs hkont augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
* << Fim da inclusão
from bsas
into table itab_bsas
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs and
augdt eq itab_zycbt006_aux4-dtpagto and
augbl eq itab_zycbt006_aux4-belnr and
gjahr eq itab_zycbt006_aux4-gjahr.
delete itab_bsas where hkont = space
or hkont = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
endif.
* << Fim da inclusão
loop at itab_bsas.
v_tabix = sy-tabix.
loop at itab_zycbt006_aux4 where bukrs = itab_bsas-bukrs
and dtpagto = itab_bsas-augdt
and belnr = itab_bsas-augbl
and gjahr = itab_bsas-gjahr
and belnr = itab_bsas-belnr.
delete itab_bsas index v_tabix.
exit.
endloop.
endloop.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO
select bukrs kunnr umskz augdt augbl gjahr belnr
wrbtr
budat
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
select bukrs kunnr umskz augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
* << Fim da inclusão
from bsad
into table itab_bsad
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs and
augdt eq itab_zycbt006_aux4-dtpagto and
augbl eq itab_zycbt006_aux4-belnr and
gjahr eq itab_zycbt006_aux4-gjahr.
delete itab_bsad where kunnr = space
or kunnr = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO
endif.
* << Fim da inclusão
loop at itab_bsad.
v_tabix = sy-tabix.
loop at itab_zycbt006_aux4 where bukrs = itab_bsad-bukrs
and dtpagto = itab_bsad-augdt
and belnr = itab_bsad-augbl
and gjahr = itab_bsad-gjahr
and belnr = itab_bsad-belnr.
delete itab_bsad index v_tabix.
exit.
endloop.
...
...
if /pws/zycbt089-tp_liq_and ne 'D'.
v_kunnr = itab_zycbt006-kunnr.
else.
if /pws/zycbt089-liq_and_cod_cli is initial.
select single ktokd from kna1
into v_ktokd
where kunnr eq itab_zycbt006-kunnr.
select single codtrans
from /pws/zyglt368
into v_kunnr
where ktokd = v_ktokd. "#EC CI_NOFIRST
else.
v_kunnr = /pws/zycbt089-liq_and_cod_cli.
endif.
endif.
if itab_zycbt006_aux4[] > itab_zycbt006[].
loop at itab_zycbt006_aux4
where nrinvoic = itab_zycbt006-nrinvoic
and nrparcf = itab_zycbt006-nrparcf
and gsberf = itab_zycbt006-gsberf.
loop at itab_bsad
...
...
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
data: begin of itab_bsad occurs 0,
bukrs like bsad-bukrs,
kunnr like bsad-kunnr,
umskz like bsad-umskz,
augdt type bsad-augdt,
augbl type bsad-augbl,
gjahr like bsad-gjahr,
belnr like bsad-belnr,
bschl like bsad-bschl,
gsber like bsad-gsber,
wrbtr like bsad-wrbtr,
sgtxt like bsad-sgtxt,
zuonr like bsad-zuonr,
budat like bsad-budat,
end of itab_bsad.
data: begin of itab_bsas occurs 0,
bukrs like bsas-bukrs,
hkont like bsas-hkont,
augdt type bsas-augdt,
augbl type bsas-augbl,
gjahr like bsas-gjahr,
belnr like bsas-belnr,
bschl like bsas-bschl,
gsber like bsas-gsber,
wrbtr like bsas-wrbtr,
sgtxt like bsas-sgtxt,
zuonr like bsas-zuonr,
budat like bsas-budat,
end of itab_bsas.
* << Fim da exclusão
...
itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.
itab_zycbt006_aux4-belnr = itab_zycbt209-belnr.
itab_zycbt006_aux4-gjahr = v_year.
append itab_zycbt006_aux4.
itab_zycbt006_aux4-belnr = itab_zycbt006-belnr.
append itab_zycbt006_aux4.
endif.
endloop.
endloop.
if not itab_zycbt006_aux4[] is initial.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
select bukrs kunnr umskz augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
into table itab_bsad
from bsad
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs
and augdt eq itab_zycbt006_aux4-dtpagto
and augbl eq itab_zycbt006_aux4-belnr
and gjahr eq itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
endif.
* << Fim da exclusão
delete itab_bsad where kunnr = space
or kunnr = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
endif.
endif.
* << Fim da inclusão
loop at itab_bsad.
v_tabix = sy-tabix.
loop at itab_zycbt006_aux4 where bukrs = itab_bsad-bukrs
and dtpagto = itab_bsad-augdt
and belnr = itab_bsad-augbl
and gjahr = itab_bsad-gjahr
and belnr = itab_bsad-belnr.
delete itab_bsad index v_tabix.
exit.
endloop.
endloop.
if not itab_zycbt006_aux4[] is initial.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
select bukrs hkont augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
into table itab_bsas
from bsas
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs
and augdt eq itab_zycbt006_aux4-dtpagto
and augbl eq itab_zycbt006_aux4-belnr
and gjahr eq itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO
endif.
* << Fim da exclusão
delete itab_bsas where hkont = space
or hkont = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO
endif.
endif.
* << Fim da inclusão
loop at itab_bsas.
v_tabix = sy-tabix.
if itab_bsas-bschl ne '40' and itab_bsas-bschl ne '50'.
...
...
version_undefined = 6
others = 7.
itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.
itab_zycbt006_aux4-belnr = itab_zycbt209-belnr.
itab_zycbt006_aux4-gjahr = v_year.
append itab_zycbt006_aux4.
endif.
endloop.
endloop.
if not itab_zycbt006_aux4[] is initial.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
* >> Início da exclusão: FORM ESTORNO_PERIODO_AB_PERF
select bukrs hkont augdt augbl gjahr belnr budat wrbtr
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
select bukrs hkont augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
* << Fim da inclusão
from bsas
into table itab_bsas
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs and
augdt eq itab_zycbt006_aux4-dtpagto and
augbl eq itab_zycbt006_aux4-belnr and
gjahr eq itab_zycbt006_aux4-gjahr.
delete itab_bsas where hkont = space
or hkont = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
endif.
* << Fim da inclusão
loop at itab_bsas.
v_tabix = sy-tabix.
loop at itab_zycbt006_aux4 where bukrs = itab_bsas-bukrs
and dtpagto = itab_bsas-augdt
and belnr = itab_bsas-augbl
and gjahr = itab_bsas-gjahr
and belnr = itab_bsas-belnr.
delete itab_bsas index v_tabix.
exit.
endloop.
endloop.
if not itab_zycbt006_aux4[] is initial.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
clear itab_zyglt100.
refresh: itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
if sy-subrc = 0 .
else.
endif.
endif.
read table itab_zyglt100 with key zexit = 'LIQ034' binary search.
if sy-subrc eq 0 and
not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa)
using ok_code
changing e_subrc.
if e_subrc ne 0.
exit.
endif.
else.
* << Fim da inclusão
* >> Início da exclusão: FORM ESTORNO_PERIODO_AB_PERF
select bukrs kunnr umskz augdt augbl gjahr belnr
wrbtr
budat
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
select bukrs kunnr umskz augdt augbl gjahr belnr bschl
gsber wrbtr sgtxt zuonr budat
* << Fim da inclusão
from bsad
into table itab_bsad
for all entries in itab_zycbt006_aux4
where bukrs eq itab_zycbt006_aux4-bukrs and
augdt eq itab_zycbt006_aux4-dtpagto and
augbl eq itab_zycbt006_aux4-belnr and
gjahr eq itab_zycbt006_aux4-gjahr.
* >> Início da exclusão: FORM ESTORNO_PERIODO_AB_PERF
endif.
* << Fim da exclusão
delete itab_bsad where kunnr = space
or kunnr = ' '.
* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF
endif.
endif.
* << Fim da inclusão
loop at itab_bsad.
v_tabix = sy-tabix.
loop at itab_zycbt006_aux4 where bukrs = itab_bsad-bukrs
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004X01
* >> Início da inclusão:
data: begin of itab_bsad occurs 0,
bukrs like bsad-bukrs,
kunnr like bsad-kunnr,
umskz like bsad-umskz,
augdt type bsad-augdt,
augbl type bsad-augbl,
gjahr like bsad-gjahr,
belnr like bsad-belnr,
bschl like bsad-bschl,
gsber like bsad-gsber,
wrbtr like bsad-wrbtr,
sgtxt like bsad-sgtxt,
zuonr like bsad-zuonr,
budat like bsad-budat,
end of itab_bsad.
data: begin of itab_bsas occurs 0,
bukrs like bsas-bukrs,
hkont like bsas-hkont,
augdt type bsas-augdt,
augbl type bsas-augbl,
gjahr like bsas-gjahr,
belnr like bsas-belnr,
bschl like bsas-bschl,
gsber like bsas-gsber,
wrbtr like bsas-wrbtr,
sgtxt like bsas-sgtxt,
zuonr like bsas-zuonr,
budat like bsas-budat,
end of itab_bsas.
* << Fim da inclusão