Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 11/06/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:07:57
Descrição da Nota: AJUSTE DE PERFORMANCE NA CRIAÇÃO DA FATURA
Sintoma
Ao criar a fatura o sistema está muito lento, quando possui muitos itens.
A mensagem que mostra o valor da fatura que está sendo criada, aparece na tela novamente depois de
colocar o valor, e só desaparece de ser enter.
Solução
ajustes para performance na criação da fatura .
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03893 Data: 11/06/2007 Hora: 16:51:26
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03893
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00170
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02396 - 00001 - 6.0 - 00025 - FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO
02421 - 00002 - 6.0 - 00025 - FATURA NÃO ESTA CONTABILIZANDO APOS NF
02593 - 00003 - 6.0 - 00025 - FATURA TIPO P ESTÁ CONTABILIZANDO ANTES DA DI/DSI.
03089 - 00006 - 6.0 - 00026 - SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMB
03092 - 00004 - 6.0 - 00026 - DECLARAÇÃO DE TABELAS UTILIZADAS EM BATCH INPUT DA FATURA
03654 - 00005 - 7.0 - 00001 - AO GERAR A NOTA FISCAL OS VALORES DO CUSTO FICAM INCORRETOS.
----------------------------------------------------------------------------------------------------
AJUSTE DE PERFORMANCE NA CRIAÇÃO DA FATURA
----------------------------------------------------------------------------------------------------
Palavras Chave:
PERFORMANCE - PROGRAMA - CRIAÇÃO - FATURA
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI003 0100
DYNP /PWS/SAPMZYCI003 0101
DYNP /PWS/SAPMZYCI003 0106
RELE F6DK947041 20070611 103112 PWSCI
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0101
...
MODULE: user_command_0101,
atualiza_zycie006,
* >> Início da inclusão:
check_total.
* << Fim da inclusão
PROCESS ON VALUE-REQUEST.
FIELD /pws/zycie006-zterm MODULE valuerequest_zterm.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0106
...
FIELD /pws/zycie003-vlreal MODULE trata_obrigatorio.
MODULE altera_itab_zycit003.
ENDLOOP.
* >> Início da exclusão:
* MODULE: check_total,
* calcula_peso,
* << Fim da exclusão
* >> Início da inclusão:
MODULE: calcula_peso,
* << Fim da inclusão
user_command_0102.
PROCESS ON VALUE-REQUEST.
FIELD : v_ratval MODULE seta_matchcode.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
DELETE FROM /pws/zycit036
WHERE nrseq EQ itab_zycit003_ini-nrseq AND
ebeln EQ itab_zycit003_ini-ebeln AND
ebelp EQ itab_zycit003_ini-ebelp AND
codigo EQ /pws/zycit031-inco1_ci AND
origem EQ 'FAT' AND
nrseqori EQ /pws/zycie006-nrseq.
ENDIF.
ENDLOOP.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM CUSTEANDO_DESPESA_INCO
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036
* >> Início da exclusão: FORM CUSTEANDO_DESPESA_INCO
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
codigo = /pws/zycit031-inco1_ci AND
origem = 'FAT' AND
nrseqori = /pws/zycie006-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEANDO_DESPESA_INCO
WHERE nrseq = itab_zycit003-nrseq
AND codigo = /pws/zycit031-inco1_ci
AND origem = 'FAT'
AND nrseqori = /pws/zycie006-nrseq.
* << Fim da inclusão
ENDIF.
DESCRIBE TABLE itab_zycit003 LINES v_line.
LOOP AT itab_zycit003.
v_tabix = sy-tabix.
/pws/zycie036-nrseq = itab_zycit003-nrseq.
/pws/zycie036-ebeln = itab_zycit003-ebeln.
/pws/zycie036-ebelp = itab_zycit003-ebelp.
/pws/zycie036-werks = itab_zycit003-werks.
/pws/zycie036-nrseqori = /pws/zycie006-nrseq.
/pws/zycie036-embarca = /pws/zycie001-embarca.
...
...
v_itens_inconsistentes = 'X'.
ELSEIF wa_zycit003-inco1 NE /pws/zycie006-inco1.
v_itens_inconsistentes = 'X'.
ENDIF.
ENDIF.
FREE itab_zycit263_aux.
CLEAR itab_zycit263_aux.
REFRESH itab_zycit263_aux.
IF NOT itab_zycit003_aux[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263_aux
* >> Início da exclusão: FORM SELECIONAR_ITENS
FOR ALL ENTRIES IN itab_zycit003_aux WHERE
nrseq = itab_zycit003_aux-nrseq AND
ebeln = itab_zycit003_aux-ebeln AND
ebelp = itab_zycit003_aux-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS
WHERE nrseq = itab_zycit003_aux-nrseq
and eliminado = space.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
...
...
ENDIF.
IF /pws/zycie006-lifnr IS INITIAL.
IF NOT /pws/zycie006-tpfatura EQ '02' AND
NOT /pws/zycie006-tpfatura EQ '03'.
/pws/zycie006-lifnr = wa_zycit003-lifnr.
ENDIF.
ENDIF.
ENDIF.
IF /pws/zycie006-tpfatura EQ '01' OR /pws/zycie006-tpfatura EQ '02'.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM SELECIONAR_ITENS
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT nrseq modalidade FROM /pws/zycit001 INTO TABLE itab_serv
* >> Início da exclusão: FORM SELECIONAR_ITENS
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq EQ itab_zycit003-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS
WHERE nrseq EQ itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
CLEAR v_serv.
...
...
i_paramoeda_nao_encontrado = 2
i_ctmoeda_nao_encontrado = 3
i_dtbase_nao_encontrada = 4
taxa_nao_encontrada = 5
fator_nao_encontrado = 6
i_montante_nao_encontrado = 7
OTHERS = 8.
ENDFORM.
FORM trata_decimais USING p_waers
CHANGING p_valplan.
* >> Início da inclusão: FORM TRATA_DECIMAIS
READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_waers.
IF sy-subrc NE 0.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = p_waers.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
* >> Início da inclusão: FORM TRATA_DECIMAIS
tcurx-currkey = p_waers.
APPEND tcurx TO itab_tcurx .
ENDIF.
* << Fim da inclusão
p_valplan = p_valplan * ( 10 ** ( tcurx-currdec - 2 ) ).
...
...
FORM load_mdpg.
CLEAR: a_modpa.
SELECT SINGLE descricao FROM /pws/zycit193 INTO a_modpa WHERE
codmodpag = /pws/zycie006-mdpgto.
ENDFORM.
FORM consiste_regime.
DATA: itab_zycit001_aux LIKE /pws/zycit001 OCCURS 0 WITH HEADER LINE,
v_tpdecl LIKE /pws/zycit001-tpdecl,
v_regime LIKE /pws/zycit001-regime.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM CONSISTE_REGIME
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001_aux
* >> Início da exclusão: FORM CONSISTE_REGIME
FOR ALL ENTRIES IN itab_zycit003
* << Fim da exclusão
WHERE nrseq = itab_zycit003-nrseq.
READ TABLE itab_zycit001_aux INDEX 1.
MOVE: itab_zycit001_aux-tpdecl TO v_tpdecl,
itab_zycit001_aux-regime TO v_regime.
LOOP AT itab_zycit001_aux WHERE tpdecl NE v_tpdecl.
ENDLOOP.
...
...
wa_zycie006_ini-ratval NE /pws/zycie006-ratval OR
wa_zycie006_ini-zterm NE /pws/zycie006-zterm OR
wa_zycie006_ini-lifnr NE /pws/zycie006-lifnr OR
wa_zycie006_ini-j_1bbranch NE /pws/zycie006-j_1bbranch OR
v_contabiliza EQ 'S' OR
wa_zycie006_ini-dtvencto NE /pws/zycie006-dtvencto OR
wa_zycie006_ini-ebene NE /pws/zycie006-ebene OR
wa_zycie006_ini-dataprvtsr NE /pws/zycie006-dataprvtsr OR
/pws/zycie006-belnr_p IS INITIAL.
IF v_congela IS INITIAL.
* >> Início da exclusão: FORM ROTINA_DE_CONTABILIZACAO
SELECT *
* << Fim da exclusão
* >> Início da inclusão: FORM ROTINA_DE_CONTABILIZACAO
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE *
* << Fim da inclusão
FROM /pws/zycit042
* >> Início da exclusão: FORM ROTINA_DE_CONTABILIZACAO
FOR ALL ENTRIES IN itab_zycit003
* << Fim da exclusão
WHERE nrseq EQ itab_zycit003-nrseq
* >> Início da exclusão: FORM ROTINA_DE_CONTABILIZACAO
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
* << Fim da exclusão
AND docnum NE ''.
* >> Início da exclusão: FORM ROTINA_DE_CONTABILIZACAO
ENDSELECT.
* << Fim da exclusão
IF sy-subrc NE 0 OR /pws/zycie006-tpfatura NE '01'.
PERFORM contabilizacao_f-02_ou_f-43.
ELSE.
MESSAGE i015 WITH text-169.
ENDIF.
ELSE.
MESSAGE i015 WITH text-135.
ENDIF.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
p_t_zycit032-tabela = p_t_dados-tabela.
p_t_zycit032-cpochv = p_t_dados-cpochv.
p_t_zycit032-tpmsg = 'S'.
p_t_zycit032-nrmsg = p_nrmsg.
APPEND p_t_zycit032.
ENDIF.
REFRESH: p_itab_bdc.
ENDFORM.
FORM retorna_decimais USING p_waers
CHANGING p_valplan.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_waers.
IF sy-subrc NE 0.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = p_waers.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
tcurx-currkey = p_waers.
APPEND tcurx TO itab_tcurx .
ENDIF.
* << Fim da inclusão
p_valplan = p_valplan / ( 10 ** ( tcurx-currdec - 2 ) ).
...
...
CHANGING p_valor.
SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM.
FORM calc_vlreal.
REFRESH: itab_zycit263.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM CALC_VLREAL
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM CALC_VLREAL
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_VLREAL
WHERE nrseq = itab_zycit003-nrseq
AND eliminado = space.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: FORM CALC_VLREAL
REFRESH itab_fat_temp.
LOOP AT itab_zycit263.
itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_fat_temp.
ENDLOOP.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: FORM CALC_VLREAL
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_VLREAL
FOR ALL ENTRIES IN itab_fat_temp
WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat.
* << Fim da inclusão
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
itab_zycit263-eliminado = 'X'.
MODIFY itab_zycit263 INDEX v_tabix.
MODIFY /pws/zycit263 FROM itab_zycit263 .
ENDIF.
...
...
v_tot_ntgew = itab_zycit263-ntgew + v_tot_ntgew.
v_tot_qtd = itab_zycit263-qtd_iten + v_tot_qtd.
ENDLOOP.
IF NOT v_tot_ntgew IS INITIAL AND
NOT v_tot_qtd IS INITIAL.
itab_zycit003-ntgew = v_tot_ntgew / v_tot_qtd *
itab_zycit003-toinv.
MODIFY itab_zycit003 INDEX v_tabix TRANSPORTING ntgew.
ELSE.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM CALCULA_PESO
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT nrseq ebeln ebelp ntgew qtd_iten
FROM /pws/zycit003 INTO TABLE itab_peso
* >> Início da exclusão: FORM CALCULA_PESO
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_PESO
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit003.
READ TABLE itab_peso WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
...
...
v_tot_ntgew = itab_zycit263-ntgew + v_tot_ntgew.
v_tot_qtd = itab_zycit263-qtd_iten + v_tot_qtd.
ENDLOOP.
IF NOT v_tot_ntgew IS INITIAL AND
NOT v_tot_qtd IS INITIAL.
itab_zycit003-ntgew = v_tot_ntgew / v_tot_qtd *
itab_zycit003-toinv.
MODIFY itab_zycit003 INDEX v_tabix TRANSPORTING ntgew.
ELSE.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM CALCULA_TOTAL_PLANEJADO
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT nrseq ebeln ebelp ntgew qtd_iten
FROM /pws/zycit003 INTO TABLE itab_peso
* >> Início da exclusão: FORM CALCULA_TOTAL_PLANEJADO
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_TOTAL_PLANEJADO
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit003.
READ TABLE itab_peso WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-ntgew = itab_peso-ntgew /
itab_peso-qtd_iten * itab_zycit003-toinv.
MODIFY itab_zycit003.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
IF sy-subrc NE 0.
MESSAGE e015 WITH text-068.
ENDIF.
ENDIF.
IF /pws/zycie006-flagdesc = 'X'.
CLEAR /pws/zycie006-bcofav.
ENDIF.
ENDMODULE.
MODULE consiste_cobertura_cambial INPUT.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da exclusão: MODULE CONSISTE_COBERTURA_CAMBIAL
SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001_at
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_COBERTURA_CAMBIAL
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit001
INTO itab_zycit001_at
WHERE nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
APPEND itab_zycit001_at.
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit001_at[] IS INITIAL.
SELECT * FROM /pws/zycit024 INTO TABLE itab_zycit024
FOR ALL ENTRIES IN itab_zycit001_at
WHERE regime = itab_zycit001_at-regime
AND tpdecl = itab_zycit001_at-tpdecl.
ENDIF.
READ TABLE itab_zycit024 INDEX 1.
MOVE itab_zycit024-cobcambial TO v_cobcambial.
LOOP AT itab_zycit024 WHERE cobcambial NE v_cobcambial.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
itab_pf_status-fcode = 'FRETECLP'.
APPEND itab_pf_status.
ENDIF.
ENDIF.
SET PF-STATUS '0100' EXCLUDING itab_pf_status.
ENDIF.
SET TITLEBAR '0100'.
ENDMODULE.
MODULE load_data OUTPUT.
DATA v_peso.
* >> Início da inclusão: MODULE LOAD_DATA
DATA: BEGIN OF itab_lfa1b OCCURS 0.
DATA: lifnr TYPE lfa1-lifnr.
DATA: END OF itab_lfa1b.
* << Fim da inclusão
SET PARAMETER ID 'LRE' FIELD ' ' .
IF itab_sele[] IS INITIAL.
IMPORT itab_sele[]
FROM MEMORY ID 'IP003B'.
IF sy-subrc = 0.
v_importou = 'X'.
ENDIF.
ENDIF.
IMPORT /pws/zycie001-embarca
/pws/zycie001-nrseq
...
...
READ TABLE itab_zycit003 INDEX 1.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001
WHERE nrseq EQ itab_zycit003-nrseq.
ENDIF.
ELSEIF sy-subrc EQ 0.
IF NOT itab_sele[] IS INITIAL AND
itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003
* >> Início da exclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_sele
WHERE ebeln = itab_sele-ebeln
AND ebelp = itab_sele-ebelp
AND nrseq = /pws/zycie001-nrseq.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
WHERE nrseq = /pws/zycie001-nrseq.
LOOP AT itab_zycit003.
READ TABLE itab_sele WITH KEY ebeln = itab_sele-ebeln
ebelp = itab_sele-ebelp.
IF sy-subrc NE 0.
DELETE itab_zycit003.
ENDIF.
ENDLOOP.
* << Fim da inclusão
ENDIF.
CLEAR okcode.
MOVE: /pws/zycie001-bukrs TO /pws/zycie006-bukrs ,
/pws/zycie001-inco1 TO /pws/zycie006-inco1,
/pws/zycie001-waers TO /pws/zycie006-waers_emb.
IF ( NOT /pws/zycie006-tpfatura EQ '02' OR
NOT /pws/zycie006-tpfatura EQ '03' OR
NOT /pws/zycie006-tpfatura EQ '04' )
AND /pws/zycie006-lifnr IS INITIAL
.
...
...
AND belnr_p NE space.
IF sy-subrc = 0.
IF v_existe_bol IS INITIAL.
MESSAGE i015 WITH text-110.
ENDIF.
v_existe_bol = 'X'.
ELSE.
CLEAR v_existe_bol.
ENDIF.
ENDIF.
* >> Início da inclusão: MODULE LOAD_DATA
IF /pws/zycit001-nrseq NE /pws/zycie001-nrseq.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit001
WHERE nrseq = /pws/zycie001-nrseq.
* >> Início da inclusão: MODULE LOAD_DATA
ENDIF.
* << Fim da inclusão
IF v_prof = 'X' AND /pws/zycie006-dtincl IS INITIAL.
/pws/zycie006-dtincl = /pws/zycit001-dt_recorigem.
ENDIF.
SELECT SINGLE * FROM /pws/zycit024
WHERE regime = /pws/zycit001-regime.
...
...
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
IF NOT itab_matuse[] IS INITIAL.
SELECT matnr mfrpn FROM mara
INTO TABLE itab_mara
FOR ALL ENTRIES IN itab_matuse
WHERE matnr EQ itab_matuse-matnr.
ENDIF.
REFRESH itab_zycit263.
* >> Início da inclusão: MODULE LOAD_DATA
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp .
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
WHERE nrseq = itab_zycit003-nrseq .
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA
REFRESH itab_fat_temp.
LOOP AT itab_zycit263.
itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_fat_temp.
ENDLOOP.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_fat_temp
WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat.
* << Fim da inclusão
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
itab_zycit263-eliminado = 'X'.
MODIFY itab_zycit263 INDEX v_tabix.
* >> Início da exclusão: MODULE LOAD_DATA
MODIFY /pws/zycit263 FROM itab_zycit263 .
* << Fim da exclusão
ENDIF.
ENDLOOP.
* >> Início da inclusão: MODULE LOAD_DATA
MODIFY /pws/zycit263 FROM TABLE itab_zycit263 .
* << Fim da inclusão
LOOP AT itab_zycit006.
v_tabix = sy-tabix.
READ TABLE itab_zycit263 WITH KEY
nrseq_pgfat = itab_zycit006-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
itab_zycit006-eliminado = 'X'.
MODIFY itab_zycit006 INDEX v_tabix.
* >> Início da exclusão: MODULE LOAD_DATA
MODIFY /pws/zycit006 FROM itab_zycit006 .
* << Fim da exclusão
ENDIF.
ENDLOOP.
* >> Início da inclusão: MODULE LOAD_DATA
MODIFY /pws/zycit006 FROM TABLE itab_zycit006 .
* << Fim da inclusão
DELETE itab_zycit006 WHERE eliminado = 'X'.
DELETE itab_zycit263 WHERE eliminado = 'X'.
ENDIF.
LOOP AT itab_zycit003.
READ TABLE itab_matuse WITH KEY ebeln = itab_zycit003-ebeln
...
...
v_moeda = itab_zycit003-waers.
ENDIF.
LOOP AT itab_zycit003 WHERE waers NE v_moeda.
v_waers_diferente = 'X'.
ENDLOOP.
IF sy-subrc NE 0.
v_waers_diferente = space.
ENDIF.
IF v_existe_di NE 'S'.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100
* >> Início da exclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq
AND ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
IF sy-subrc EQ 0.
READ TABLE itab_zycit100 INDEX 1.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = itab_zycit100-nrseqdi.
IF sy-subrc EQ 0.
v_existe_di = 'S'.
ENDIF.
ENDIF.
ELSEIF NOT /pws/zycie006-nrseqce IS INITIAL.
SELECT SINGLE * FROM /pws/zycit085
...
...
ENDIF.
IF itab_mfrnr[] IS INITIAL.
LOOP AT itab_zycit003.
MOVE : itab_zycit003-ebeln TO itab_mfrnr-ebeln,
itab_zycit003-ebelp TO itab_mfrnr-ebelp,
itab_zycit003-lifnrfabr TO itab_mfrnr-mfrnr.
APPEND itab_mfrnr.
ENDLOOP.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA
REFRESH itab_lfa1b.
LOOP AT itab_zycit003.
itab_lfa1b-lifnr = itab_zycit003-lifnrfabr.
COLLECT itab_lfa1b.
ENDLOOP.
* << Fim da inclusão
SELECT lifnr land1 name1 FROM lfa1
INTO TABLE itab_lfa1
* >> Início da exclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_zycit003
WHERE lifnr EQ itab_zycit003-lifnrfabr.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
FOR ALL ENTRIES IN itab_lfa1b
WHERE lifnr EQ itab_lfa1b-lifnr.
* << Fim da inclusão
ENDIF.
ENDMODULE.
MODULE carrega_zycie006 OUTPUT.
MOVE: itab_zycit006-nrseq TO /pws/zycie006-nrseq,
itab_zycit006-nrfat TO /pws/zycie006-nrfat,
itab_zycit006-belnr_p TO /pws/zycie006-belnr_p,
itab_zycit006-tpfatura TO /pws/zycie006-tpfatura,
itab_zycit006-eliminado TO /pws/zycie006-eliminado,
itab_zycit006-dtincl TO /pws/zycie006-dtincl,
itab_zycit006-waers TO /pws/zycie006-waers,
...
...
MOVE:
/pws/zycie001-bukrs TO /pws/zycie006-bukrs ,
/pws/zycie001-j_1bbranch TO /pws/zycie006-j_1bbranch,
/pws/zycie001-inco1 TO /pws/zycie006-inco1,
/pws/zycie001-waers TO /pws/zycie006-waers_emb.
ENDIF.
IF NOT /pws/zycie001-nrseq IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
WHERE nrseq EQ /pws/zycie001-nrseq.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA_001
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: MODULE LOAD_DATA_001
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA_001
WHERE nrseq EQ itab_zycit003-nrseq.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA_001
REFRESH itab_fat_temp.
LOOP AT itab_zycit263.
itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_fat_temp .
ENDLOOP.
* << Fim da inclusão
SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006
* >> Início da exclusão: MODULE LOAD_DATA_001
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA_001
FOR ALL ENTRIES IN itab_fat_temp
WHERE nrseq_pgfat = itab_fat_temp-nrseq_pgfat.
* << Fim da inclusão
ENDIF.
ENDIF.
SELECT SINGLE * FROM /pws/zycit094 INTO /pws/zycie094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit006 APPENDING TABLE itab_zycit006
WHERE nrseqce = /pws/zycie094-nrseqce AND
( tpfatura = '02' OR
tpfatura = '03' OR
tpfatura = '04' ).
...
...
SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001 WHERE nrseq =
/pws/zycie001-nrseq.
ENDIF.
IF /pws/zycie001-modalidade EQ '02'.
REFRESH itab_zycit263.
SELECT *
FROM /pws/zycit263
INTO TABLE itab_zycit263
WHERE nrseq = /pws/zycie001-nrseq.
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: MODULE LOAD_DATA_001
REFRESH itab_fat_temp.
LOOP AT itab_zycit263.
itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_fat_temp .
ENDLOOP.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: MODULE LOAD_DATA_001
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA_001
FOR ALL ENTRIES IN itab_fat_temp
WHERE nrseq_pgfat = itab_fat_temp-nrseq_pgfat.
* << Fim da inclusão
ENDIF.
SELECT * FROM /pws/zycit006 APPENDING TABLE itab_zycit006
WHERE nrseqf = /pws/zycie001-nrseq AND
tpfatura = '04'.
ENDIF.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT006'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'FAT006'.
...
...
ENDIF.
IF screen-name EQ 'BOT1'.
screen-input = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF ( screen-name EQ '/PWS/ZYCIE006-VLMERC' OR
screen-name EQ '/PWS/ZYCIE003-VLREAL' OR
screen-name EQ '/PWS/ZYCIE036-VLDIF' ) AND
/pws/zycie006-tpfatura EQ '01'.
* >> Início da exclusão: MODULE SET_SCREEN
SELECT *
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
SELECT SINGLE *
* << Fim da inclusão
FROM /pws/zycit042
* >> Início da exclusão: MODULE SET_SCREEN
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
WHERE nrseq EQ /pws/zycit003-nrseq
* << Fim da inclusão
AND docnum NE ''.
* >> Início da exclusão: MODULE SET_SCREEN
ENDSELECT.
* << Fim da exclusão
IF sy-subrc EQ 0.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
...
...
LOOP AT SCREEN.
IF v_status_s = 0 OR sy-tcode = '/PWS/ZYCI003_M'.
screen-input = '0'.
MODIFY SCREEN.
ELSEIF v_status_s = 1 AND screen-group1 NE 'OUT'.
screen-input = '1' .
MODIFY SCREEN.
ENDIF.
IF ( screen-name = '/PWS/ZYCIE006-RATVAL' OR
screen-name = 'V_RATVAL' ) AND /pws/zycie006-tpfatura = '01'.
* >> Início da exclusão: MODULE SET_SCREEN
SELECT *
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
IF NOT /pws/zycit003-nrseq IS INITIAL.
SELECT SINGLE *
* << Fim da inclusão
FROM /pws/zycit042
* >> Início da exclusão: MODULE SET_SCREEN
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND docnum NE ''.
ENDSELECT.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
WHERE nrseq EQ /pws/zycit003-nrseq
AND docnum NE space.
ENDIF.
* << Fim da inclusão
IF sy-subrc EQ 0.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
IF v_status_s = 0 OR sy-tcode = '/PWS/ZYCI003_M'.
LOOP AT tc_itens-cols INTO wa_cols.
wa_cols-screen-input = '0'.
MODIFY tc_itens-cols FROM wa_cols.
...
...
IF screen-name = '/PWS/ZYCIE003-PAISFAB' .
IF sy-tcode NE '/PWS/ZYCIE003_E'.
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
ENDIF.
IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR
screen-name = '/PWS/ZYCIE036-VLDIF' ) AND
/pws/zycie006-tpfatura EQ '01'.
* >> Início da exclusão: MODULE SET_SCREEN_TC_0106
SELECT *
FROM /pws/zycit042
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND docnum NE ''.
ENDSELECT.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_TC_0106
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit042
WHERE nrseq EQ /pws/zycit003-nrseq.
* << Fim da inclusão
IF sy-subrc EQ 0.
screen-input = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
MODULE conta_itens OUTPUT.
CLEAR v_nitens.
LOOP AT itab_zycit003
...
...
IF screen-name = '/PWS/ZYCIE003-NTGEW'.
IF /pws/zycie006-rateio = 'S'.
screen-input = 0.
ELSEIF /pws/zycie006-rateio = 'N' AND v_status_s = '1'.
screen-input = 1.
ENDIF.
ENDIF.
IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR
screen-name = '/PWS/ZYCIE036-VLDIF' ) AND
/pws/zycie006-tpfatura EQ '01'.
* >> Início da exclusão: MODULE SET_SCREEN_0400
SELECT *
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_0400
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
SELECT SINGLE *
* << Fim da inclusão
FROM /pws/zycit042
* >> Início da exclusão: MODULE SET_SCREEN_0400
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_0400
WHERE nrseq EQ /pws/zycit003-nrseq
* << Fim da inclusão
AND docnum NE ''.
* >> Início da exclusão: MODULE SET_SCREEN_0400
ENDSELECT.
* << Fim da exclusão
IF sy-subrc EQ 0.
screen-input = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
DATA BEGIN OF itab_zycit006_atual OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA END OF itab_zycit006_atual.
DATA: BEGIN OF itab_zycbt035_aux2 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbe035.
DATA knttp LIKE ekpo-knttp.
DATA: END OF itab_zycbt035_aux2.
DATA: BEGIN OF itab_contas OCCURS 0.
INCLUDE STRUCTURE /pws/zycbe035.
DATA: END OF itab_contas.
* >> Início da inclusão:
DATA: BEGIN OF itab_fat_temp OCCURS 0.
DATA: nrseq_pgfat TYPE /pws/zycit263-nrseq_pgfat.
DATA: END OF itab_fat_temp.
DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE .
* << Fim da inclusão
DATA: END OF COMMON PART.