Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Relatórios
Data/Hora da Publicação: 23/10/2007 00:00:00
Data/Hora Última Alteração: 04/03/2010 13:44:11
Descrição da Nota: MELHORIA DE PERFORMANCE EM RELATÓRIO KPI
Sintoma
Baixa performance em grandes períodos.
Solução
Refatoração de seleção de dados.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05055 Data: 23/10/2007 Hora: 11:22:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05055
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 7.0
Pacote : 00003
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
Texto Rápido:
MELHORIA DE PERFORMANCE EM RELATÓRIO KPI
----------------------------------------------------------------------------------------------------
Palavras Chave:
MELHORIA DE PERFORMANCE KPI
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCER216
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER216
...
nrrota_tr LIKE /pws/zycet046-nrrota_tr,
vdatu LIKE vbak-vdatu,
kurrf LIKE /pws/zycet002-kurrf,
dtbl_ LIKE /pws/zycet047-dtbl,
knumv LIKE konv-knumv,
knump LIKE konv-knumv,
auart LIKE vbak-auart,
selk(1) TYPE c,
END OF itab_kpi.
DATA: BEGIN OF itab_embarques OCCURS 0,
* >> Início da exclusão:
nrseq LIKE /pws/zycet001-nrseq,
bukrs LIKE /pws/zycet001-bukrs,
dtaverb LIKE /pws/zycet001-dtaverb,
dtemb LIKE /pws/zycet001-dtemb,
dteta LIKE /pws/zycet001-dteta,
dtprev LIKE /pws/zycet001-dtprev,
viatrans LIKE /pws/zycet001-viatrans,
dtcruze LIKE /pws/zycet001-dtcruze,
dtenvcamb LIKE /pws/zycet001-dtenvcamb,
vbeln_va LIKE /pws/zycet002-vbeln_va,
vbeln_vf LIKE /pws/zycet002-vbeln_vf,
posnr LIKE /pws/zycet002-posnr,
vbeln_vl LIKE /pws/zycet002-vbeln_vl,
posnl LIKE /pws/zycet002-posnl,
auart LIKE /pws/zycet002-auart,
waers LIKE /pws/zycet002-waers,
inco1 LIKE /pws/zycet002-inco1,
kurrf LIKE /pws/zycet002-kurrf,
land1 LIKE /pws/zycet002-land1,
matnr LIKE /pws/zycet002-matnr,
aupos LIKE /pws/zycet002-aupos,
erdat LIKE vbak-erdat,
vkgrp LIKE vbak-vkgrp,
kunnr LIKE vbak-kunnr,
* << Fim da exclusão
* >> Início da inclusão:
nrseq LIKE /pws/zycet001-nrseq,
bukrs LIKE /pws/zycet001-bukrs,
dtaverb LIKE /pws/zycet001-dtaverb,
dtemb LIKE /pws/zycet001-dtemb,
dteta LIKE /pws/zycet001-dteta,
dtprev LIKE /pws/zycet001-dtprev,
viatrans LIKE /pws/zycet001-viatrans,
dtcruze LIKE /pws/zycet001-dtcruze,
dtenvcamb LIKE /pws/zycet001-dtenvcamb,
vbeln_va LIKE /pws/zycet002-vbeln_va,
vbeln_vf LIKE /pws/zycet002-vbeln_vf,
posnr LIKE /pws/zycet002-posnr,
vbeln_vl LIKE /pws/zycet002-vbeln_vl,
posnl LIKE /pws/zycet002-posnl,
auart LIKE /pws/zycet002-auart,
waers LIKE /pws/zycet002-waers,
inco1 LIKE /pws/zycet002-inco1,
kurrf LIKE /pws/zycet002-kurrf,
land1 LIKE /pws/zycet002-land1,
matnr LIKE /pws/zycet002-matnr,
aupos LIKE /pws/zycet002-aupos,
vlme LIKE /pws/zycet002-vlme,
vlemb LIKE /pws/zycet002-vlemb,
vlagente_r LIKE /pws/zycet002-vlagente_r,
erdat LIKE vbak-erdat,
vkgrp LIKE vbak-vkgrp,
kunnr LIKE vbak-kunnr,
* << Fim da inclusão
END OF itab_embarques.
DATA: BEGIN OF itab_kpi_ordens OCCURS 0,
nrseq LIKE /pws/zycet002-nrseq,
vbeln_va LIKE /pws/zycet002-vbeln_va,
knumv LIKE konv-knumv,
kwert LIKE konv-kwert,
END OF itab_kpi_ordens.
DATA: BEGIN OF itab_carga OCCURS 0,
nrseqcg LIKE /pws/zycet053-nrseqcg,
nrseq LIKE /pws/zycet054-nrseq,
...
...
p_layout
p_laytxt.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
PERFORM f4_for_variant CHANGING g_variant
p_layout.
START-OF-SELECTION.
PERFORM select_parametros.
PERFORM select_embarques_itens.
PERFORM select_zycet262.
PERFORM select_vbak.
* >> Início da exclusão:
PERFORM total_fatura_comercial_2.
* << Fim da exclusão
* >> Início da inclusão:
PERFORM acumula_valores.
* << Fim da inclusão
PERFORM data_nota_com_embarque.
PERFORM select_zycet015.
PERFORM select_zycet225.
PERFORM select_zycet046.
PERFORM select_zycet102.
PERFORM select_zycet053.
PERFORM select_zycet101.
PERFORM select_zycet100.
PERFORM select_zycet047.
PERFORM select_vbfa.
PERFORM select_vbkd.
PERFORM select_kna1.
PERFORM select_lips.
PERFORM select_likp.
* >> Início da exclusão:
PERFORM select_konv.
* << Fim da exclusão
PERFORM select_t005.
* >> Início da exclusão:
PERFORM select_vbrp.
* << Fim da exclusão
PERFORM select_j_1bnflin.
PERFORM select_j_1bnfdoc.
PERFORM select_zycet265.
PERFORM fatura_e_data_eta.
PERFORM calcula_dias_atraso.
PERFORM parametros_campos_ocultos.
* >> Início da exclusão:
PERFORM select_zycet008.
* << Fim da exclusão
IF itab_kpi[] IS INITIAL.
MESSAGE i008.
STOP.
ENDIF.
DELETE ADJACENT DUPLICATES FROM itab_kpi.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM f_fieldcat_fill.
PERFORM monta_rel_alv.
FORM select_vbak.
DATA: BEGIN OF itab_vbak OCCURS 0,
...
...
IF sy-subrc = 0.
MOVE itab_kna1-name1 TO itab_kpi-name1.
MOVE itab_kna1-land1 TO itab_kpi-land1.
MODIFY itab_kpi.
ELSEIF NOT s_name1 IS INITIAL.
DELETE itab_kpi.
ENDIF.
ENDLOOP.
DELETE itab_kpi WHERE NOT land1 IN s_land1.
ENDFORM.
* >> Início da exclusão: FORM SELECT_VBRP
FORM select_vbrp.
DATA: BEGIN OF itab_vbrp OCCURS 1.
INCLUDE STRUCTURE vbrp.
DATA: END OF itab_vbrp.
IF NOT itab_kpi[] IS INITIAL.
SELECT * FROM vbrp
APPENDING CORRESPONDING FIELDS OF TABLE itab_vbrp
FOR ALL ENTRIES IN itab_kpi
WHERE vgbel = itab_kpi-vbeln_vl AND
vgpos = itab_kpi-posnl.
ENDIF.
SORT itab_vbrp BY vgbel vgpos.
LOOP AT itab_kpi.
READ TABLE itab_vbrp WITH KEY vgbel = itab_kpi-vbeln_vl
vgpos = itab_kpi-posnl
BINARY SEARCH.
IF sy-subrc = 0.
MOVE itab_vbrp-vbeln TO itab_kpi-vbeln_vf.
MOVE itab_vbrp-posnr TO itab_kpi-posnr .
MODIFY itab_kpi.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM select_j_1bnflin.
DATA: BEGIN OF itab_j_1bnflin OCCURS 1.
INCLUDE STRUCTURE j_1bnflin.
DATA: END OF itab_j_1bnflin.
LOOP AT itab_kpi.
MOVE itab_kpi-vbeln_vf TO itab_kpi-refkey.
MODIFY itab_kpi.
ENDLOOP.
IF NOT itab_kpi[] IS INITIAL.
SELECT * FROM j_1bnflin
...
...
WHERE nrseq EQ itab_embarques-nrseq.
ENDIF.
LOOP AT itab_kpi.
READ TABLE itab_zycet047 WITH KEY nrseq = itab_kpi-nrseq.
IF sy-subrc EQ 0.
MOVE itab_zycet047-dtbl TO itab_kpi-dtbl.
MODIFY itab_kpi TRANSPORTING dtbl.
ENDIF.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM DAY_ATTRIBUTES_GET
FORM day_attributes_get USING data1 data2 dias sinal.
* << Fim da exclusão
* >> Início da inclusão: FORM DAY_ATTRIBUTES_GET
FORM day_attributes_get USING
data1 TYPE datum
data2 TYPE datum
dias TYPE num03
sinal TYPE char1.
* << Fim da inclusão
DATA: iday_attributes LIKE casdayattr OCCURS 1 WITH HEADER LINE.
DATA: data_aux LIKE sy-datlo.
CHECK NOT data1 IS INITIAL.
CHECK NOT data2 IS INITIAL.
CLEAR data_aux.
IF data2 GT data1.
data_aux = data1.
data1 = data2.
data2 = data_aux.
sinal = '-'.
...
...
APPEND afield TO i_fieldcat.
ENDFORM.
FORM fatura_e_data_eta.
LOOP AT itab_kpi.
MOVE itab_kpi-erdat TO itab_kpi-erdat_.
MOVE itab_kpi-nrseq TO itab_kpi-nrseq_.
MOVE itab_kpi-dtbl TO itab_kpi-dtbl_.
MODIFY itab_kpi.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM SELECT_ZYCET008
FORM select_zycet008.
DATA: BEGIN OF itab_zycet008 OCCURS 1.
INCLUDE STRUCTURE /pws/zycet008.
DATA: END OF itab_zycet008 .
DATA: BEGIN OF itab_zycet008_aux OCCURS 1.
INCLUDE STRUCTURE /pws/zycet008.
DATA: END OF itab_zycet008_aux .
DATA: BEGIN OF itab_zycbt011 OCCURS 1.
INCLUDE STRUCTURE /pws/zycbt011.
DATA: END OF itab_zycbt011.
DATA: v_kurrf LIKE /pws/zycet002-kurrf,
v_tabix LIKE sy-tabix,
v_defator TYPE tcurr-ffact,
v_parafator TYPE tcurr-ffact.
IF NOT itab_kpi[] IS INITIAL.
SELECT * FROM /pws/zycet008
APPENDING CORRESPONDING FIELDS OF TABLE itab_zycet008_aux
FOR ALL ENTRIES IN itab_kpi
WHERE nrseq EQ itab_kpi-nrseq.
LOOP AT itab_zycet008_aux.
READ TABLE itab_zycet156
WITH KEY codigo = itab_zycet008_aux-codigo.
IF itab_zycet156-proccond EQ 'FOB'.
MOVE itab_zycet008_aux TO itab_zycet008.
APPEND itab_zycet008.
ENDIF.
ENDLOOP.
ENDIF.
SORT itab_zycet008 BY nrseq.
SELECT * FROM /pws/zycbt011
APPENDING CORRESPONDING FIELDS OF TABLE itab_zycbt011
WHERE codeven = '001' AND
codmod = 'X'.
READ TABLE itab_zycbt011 INDEX 1.
LOOP AT itab_kpi WHERE NOT dtaverb IS initial.
READ TABLE it_moedas INTO wa_moedas WITH KEY bukrs = itab_kpi-bukrs.
READ TABLE itab_zycet008 WITH KEY nrseq = itab_kpi-nrseq.
CHECK itab_zycet008-waers NE wa_moedas-waersa.
CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'
EXPORTING
i_montante = 1
i_demoeda = itab_zycet008-waers
i_paramoeda = wa_moedas-waersa
i_ctmoeda = itab_zycbt011-ctmoed
i_dtbase = itab_kpi-dtaverb
IMPORTING
e_txc = v_kurrf
e_defator = v_defator
e_parafator = v_parafator
EXCEPTIONS
i_demoeda_nao_encontrado = 1
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
tabela_categ_nao_configurada = 8
OTHERS = 9.
IF sy-subrc = 0.
itab_kpi-vlme = itab_kpi-vlme *
( ( v_kurrf / v_defator ) * v_parafator ).
itab_kpi-waers = wa_moedas-waersa.
MODIFY itab_kpi.
ENDIF.
ENDLOOP.
FREE itab_zycet008.
CLEAR itab_zycet008.
IF NOT itab_kpi[] IS INITIAL.
LOOP AT itab_zycet008_aux.
READ TABLE itab_zycet156
WITH KEY codigo = itab_zycet008_aux-codigo.
IF itab_zycet156-proccond EQ 'COM'.
MOVE itab_zycet008_aux TO itab_zycet008.
APPEND itab_zycet008.
ENDIF.
ENDLOOP.
ENDIF.
READ TABLE itab_zycet156 WITH KEY codmod = c_codmod_x
codigo = c_codigo_9.
SORT itab_zycet008 BY nrseq.
CLEAR: itab_kpi_ordens.
FREE : itab_kpi_ordens.
LOOP AT itab_kpi.
itab_kpi_ordens-nrseq = itab_kpi-nrseq.
itab_kpi_ordens-vbeln_va = itab_kpi-vbeln_va.
itab_kpi_ordens-knumv = itab_kpi-knumv.
APPEND itab_kpi_ordens.
CLEAR itab_kpi_ordens.
ENDLOOP.
SORT itab_kpi_ordens BY nrseq vbeln_va knumv.
DELETE ADJACENT DUPLICATES FROM itab_kpi_ordens
COMPARING nrseq vbeln_va.
LOOP AT itab_kpi_ordens.
v_tabix = sy-tabix.
READ TABLE itab_zycet008 WITH KEY nrseq = itab_kpi_ordens-nrseq
BINARY SEARCH.
IF sy-subrc = 0.
IF NOT itab_zycet008-vlme_f IS INITIAL.
READ TABLE itab_kpi WITH KEY nrseq = itab_kpi_ordens-nrseq.
IF sy-subrc IS INITIAL.
v_tabix = sy-tabix.
MOVE itab_zycet008-vlme_f TO itab_kpi-vlme_f.
MODIFY itab_kpi INDEX v_tabix.
ENDIF.
ELSE.
PERFORM busca_comissao_agente_ordem.
itab_kpi_ordens-kwert = v_kwert_tot.
MODIFY itab_kpi_ordens INDEX v_tabix.
ENDIF.
ENDIF.
ENDLOOP.
CLEAR v_kwert_tot.
LOOP AT itab_kpi.
v_tabix = sy-tabix.
ON CHANGE OF itab_kpi-nrseq.
IF itab_kpi-vlme_f IS INITIAL.
LOOP AT itab_kpi_ordens WHERE nrseq EQ itab_kpi-nrseq.
v_kwert_tot = v_kwert_tot + itab_kpi_ordens-kwert.
ENDLOOP.
itab_kpi-vlme_f = v_kwert_tot.
MODIFY itab_kpi INDEX v_tabix.
CLEAR v_kwert_tot.
ENDIF.
ENDON.
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM select_t005.
DATA: BEGIN OF itab_t005 OCCURS 1.
INCLUDE STRUCTURE t005.
DATA: END OF itab_t005.
IF NOT itab_kpi[] IS INITIAL.
SELECT * FROM t005
APPENDING CORRESPONDING FIELDS OF TABLE itab_t005
FOR ALL ENTRIES IN itab_kpi
WHERE land1 = itab_kpi-land1 AND
/pws/cotne IN s_cotne AND
...
...
b~posnr
b~vbeln_vl
b~posnl
b~auart
b~waers
b~inco1
b~kurrf
b~land1
b~matnr
b~aupos
* >> Início da inclusão: FORM SELECT_EMBARQUES_ITENS
b~vlme
b~vlemb
b~vlagente_r
* << Fim da inclusão
INTO TABLE itab_embarques
FROM /pws/zycet001 AS a
LEFT OUTER JOIN /pws/zycet002 AS b
ON a~nrseq EQ b~nrseq
WHERE a~nrseq IN s_nrseq
AND a~nremb IN s_nremb
AND a~viatrans IN s_via
AND a~dtemb IN s_dtemb.
LOOP AT itab_embarques.
itab_kpi-nrseq = itab_embarques-nrseq.
...
...
itab_kpi-viatrans = itab_embarques-viatrans.
itab_kpi-dtenvcamb = itab_embarques-dtenvcamb.
itab_kpi-vbeln_va = itab_embarques-vbeln_va.
itab_kpi-vbeln_vf = itab_embarques-vbeln_vf.
itab_kpi-vbeln_vl = itab_embarques-vbeln_vl.
itab_kpi-auart = itab_embarques-auart.
itab_kpi-waers = itab_embarques-waers.
itab_kpi-inco1 = itab_embarques-inco1.
itab_kpi-kurrf = itab_embarques-kurrf.
itab_kpi-land1 = itab_embarques-land1.
* >> Início da inclusão: FORM SELECT_EMBARQUES_ITENS
itab_kpi-vlme = itab_embarques-vlme.
itab_kpi-totfatcom = itab_embarques-vlemb.
itab_kpi-vlme_f = itab_embarques-vlagente_r.
* << Fim da inclusão
IF itab_embarques-viatrans EQ c_rd.
itab_kpi-dtcruze = itab_embarques-dtcruze.
ELSE.
CLEAR itab_kpi-dtcruze.
ENDIF.
COLLECT itab_kpi.
CLEAR itab_kpi.
CALL FUNCTION 'K_PROGRESS_INDICATOR_PERCENT'
EXPORTING
i_processed = sy-tabix
i_total = sy-tfill.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM SELECT_KONV
FORM select_konv.
READ TABLE itab_zycet156 INDEX 1.
LOOP AT itab_kpi.
CLEAR: itab_konv, v_kwert_tot.
FREE : itab_konv.
LOOP AT itab_embarques WHERE vbeln_vl = itab_kpi-vbeln_vl.
CLEAR: itab_konv.
FREE : itab_konv.
SELECT knumv
kposn
kschl
waers
kwert
INTO TABLE itab_konv
FROM konv
WHERE knumv EQ itab_kpi-knump
AND kposn EQ itab_kpi-posnl
AND kschl EQ itab_zycet156-kschl.
LOOP AT itab_konv.
v_kwert_tot = v_kwert_tot + ABS( itab_konv-kwert ).
ENDLOOP.
ENDLOOP.
itab_kpi-vlme = v_kwert_tot.
MODIFY itab_kpi.
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM select_zycet053.
CLEAR itab_carga.
FREE itab_carga.
IF NOT itab_kpi[] IS INITIAL.
SELECT a~nrseqcg
a~nrseq
b~dtconsolida
INTO TABLE itab_carga
FROM /pws/zycet054 AS a
INNER JOIN /pws/zycet053 AS b
...
...
READ TABLE itab_zycet262 WITH KEY
nrseq = itab_kpi-nrseq
BINARY SEARCH.
IF sy-subrc IS INITIAL.
itab_kpi-dtchegf = itab_zycet262-dtchegf.
MODIFY itab_kpi.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM BUSCA_COMISSAO_AGENTE_ORDEM
FORM busca_comissao_agente_ordem.
CLEAR: itab_konv, v_kwert_tot.
FREE : itab_konv.
SELECT knumv
kposn
kschl
waers
kwert
INTO TABLE itab_konv
FROM konv
WHERE knumv EQ itab_kpi_ordens-knumv
AND kschl EQ itab_zycet156-kschl.
LOOP AT itab_konv.
v_kwert_tot = v_kwert_tot + ABS( itab_konv-kwert ).
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM f4_for_variant CHANGING p_disvariant TYPE disvariant
p_variant TYPE disvariant-variant.
DATA: local_variant TYPE disvariant,
exit.
p_disvariant-report = sy-repid.
p_disvariant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = p_disvariant
i_save = 'A'
...
...
CLEAR: p_disvariant,
p_variant,
p_text.
ENDIF.
ELSE.
CLEAR: p_disvariant,
p_variant,
p_text.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
FORM total_fatura_comercial_2.
DATA: BEGIN OF itab_zycet065 OCCURS 1.
INCLUDE STRUCTURE /pws/zycet065.
DATA: END OF itab_zycet065.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
FORM acumula_valores.
FIELD-SYMBOLS <fs_kpi> LIKE LINE OF itab_kpi.
DATA:
v_totfatcom LIKE itab_kpi-totfatcom,
v_vlme_f LIKE itab_kpi-vlme_f.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
DATA: BEGIN OF itab_zycet008 OCCURS 1.
INCLUDE STRUCTURE /pws/zycet008.
DATA: END OF itab_zycet008.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
CLEAR:
v_totfatcom,
v_vlme_f.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
DATA: BEGIN OF itab_zycet008_aux OCCURS 1.
INCLUDE STRUCTURE /pws/zycet008.
DATA: END OF itab_zycet008_aux.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
LOOP AT itab_kpi ASSIGNING <fs_kpi>.
ADD:
<fs_kpi>-totfatcom TO v_totfatcom,
<fs_kpi>-vlme_f TO v_vlme_f.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
SELECT * FROM /pws/zycet065
APPENDING CORRESPONDING FIELDS OF TABLE itab_zycet065.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
CLEAR:
<fs_kpi>-totfatcom,
<fs_kpi>-vlme_f.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
IF NOT itab_kpi[] IS INITIAL.
SELECT * FROM /pws/zycet156 INTO TABLE itab_zycet156
FOR ALL ENTRIES IN itab_kpi
WHERE bukrs EQ itab_kpi-bukrs.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
AT END OF <fs_kpi>-nrseq.
<fs_kpi>-totfatcom = v_totfatcom.
<fs_kpi>-vlme_f = v_vlme_f.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
SELECT * FROM /pws/zycet008
APPENDING CORRESPONDING FIELDS OF TABLE itab_zycet008
FOR ALL ENTRIES IN itab_kpi
WHERE nrseq = itab_kpi-nrseq.
ENDIF.
LOOP AT itab_kpi.
ON CHANGE OF itab_kpi-nrseq.
CLEAR itab_zycet008_aux.
REFRESH itab_zycet008_aux.
LOOP AT itab_zycet008 WHERE nrseq = itab_kpi-nrseq.
MOVE itab_zycet008 TO itab_zycet008_aux.
APPEND itab_zycet008_aux.
ENDLOOP.
CLEAR /pws/zycee313.
CALL FUNCTION '/PWS/ZYCE_CALC_VALOR_CONDITION'
IMPORTING
/pws/zycee313 = /pws/zycee313
TABLES
itab_zycet008 = itab_zycet008_aux.
CLEAR itab_kpi-totfatcom.
READ TABLE itab_zycet065 WITH KEY inco1 = itab_kpi-inco1.
IF sy-subrc = 0.
IF NOT itab_zycet065-fob IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_fob.
ENDIF.
IF NOT itab_zycet065-frete IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_frt.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM TOTAL_FATURA_COMERCIAL_2
CLEAR:
v_totfatcom,
v_vlme_f.
ENDAT.
* << Fim da inclusão
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
IF NOT itab_zycet065-seguro IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_seg.
ENDIF.
IF NOT itab_zycet065-outras_desp IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_out.
ENDIF.
IF NOT itab_zycet065-desconto IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom -
ABS( /pws/zycee313-vlme_des ).
ENDIF.
IF NOT itab_zycet065-acrescimo IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_acr.
ENDIF.
IF NOT itab_zycet065-comissao IS INITIAL.
itab_kpi-totfatcom = itab_kpi-totfatcom +
/pws/zycee313-vlme_com.
ENDIF.
MODIFY itab_kpi.
ENDIF.
ENDON.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM TOTAL_FATURA_COMERCIAL_2
ENDFORM.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECT_PARAMETROS
ENDFORM.
* << Fim da inclusão
FORM select_parametros.
SELECT bukrs waersa
FROM /pws/zycbt007
...