Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Registro de Exportação (RE)
Data/Hora da Publicação: 22/11/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 10:05:14
Descrição da Nota: SUBSTITUIÇÃO DE FUNÇÃO PARA CÁLCULO DE MONTANTE
Sintoma
Substituição da função para cálculo de montante nas rotinas de agrupamento de RE.
Solução
Substituição da função para cálculo de montante nas rotinas de agrupamento de RE.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05292 Data: 22/11/2007 Hora: 17:51:49
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05292
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00022
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05105 - 00001 - 7.0 - 00003 - CORREÇÃO CONVERSÃO DE MONTANTE NO AGRUPAMENTO DE OV
----------------------------------------------------------------------------------------------------
SUBSTITUIÇÃO DE FUNÇÃO PARA CÁLCULO DE MONTANTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
MONTANTE, CONVERSÃO, FUNÇÃO, TAXA
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCE_AGRUPA_OV_RE
FUNC /PWS/ZYCE_AGRUPA_PERMISO
FUNC /PWS/ZYCE_AGRUPA_RE_ITEM
REPS /PWS/LZYCEGF6F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_OV_RE
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_PERMISO
FUNCTION /pws/zyce_agrupa_permiso.
DATA: v_index LIKE sy-tabix,
v_codnrseq TYPE i,
v_vrkme LIKE /pws/zycet118-vrkme,
v_ncm LIKE /pws/zycet118-ncm,
v_ownpr LIKE mbew-ownpr,
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
v_taxa LIKE /pws/zycee033-kurrf.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
v_taxa LIKE /pws/zycee033-kurrf,
v_montante LIKE /pws/zycet002-vlme.
* << Fim da inclusão
DATA : BEGIN OF itab_zycet301_aux1 OCCURS 10.
INCLUDE STRUCTURE /pws/zycet301.
DATA : ownpr LIKE mbew-ownpr,
preco LIKE /pws/zycet118-netpr,
charg LIKE lips-charg,
preuni LIKE /pws/zycet118-netpr,
index LIKE sy-tabix,
preunifob LIKE /pws/zycet118-netpr.
DATA : END OF itab_zycet301_aux1.
DATA : BEGIN OF itab_codigo OCCURS 0,
...
...
vbeln_va LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
netpr LIKE vbap-netpr,
END OF itab_vbap,
BEGIN OF itab_docfat OCCURS 10,
vbeln_vf LIKE /pws/zycet118-vbeln_vf,
END OF itab_docfat,
BEGIN OF itab_vbrk OCCURS 10,
vbeln_vf LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
bukrs like vbrk-bukrs,
* << Fim da inclusão
END OF itab_vbrk.
READ TABLE itab_zycet300 WITH KEY codint = '000001'
mark = 'X'.
IF sy-subrc = 0.
MOVE: itab_zycet300-codint TO itab_codigo-codigo.
ENDIF.
APPEND itab_codigo.
SELECT matnr bwkey ownpr
FROM mbew
INTO TABLE itab_mbew
...
...
LOOP AT itab_zycet301_aux1.
IF NOT itab_zycet301_aux1-vbeln_vf IS INITIAL.
MOVE itab_zycet301_aux1-vbeln_vf TO
itab_docfat-vbeln_vf.
APPEND itab_docfat.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM itab_docfat
COMPARING vbeln_vf.
IF NOT itab_docfat[] IS INITIAL.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
SELECT vbeln fkdat
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
SELECT vbeln fkdat bukrs
* << Fim da inclusão
FROM vbrk
INTO TABLE itab_vbrk
FOR ALL ENTRIES IN itab_docfat
WHERE vbeln EQ itab_docfat-vbeln_vf.
ENDIF.
LOOP AT itab_zycet301_aux1.
v_index = sy-tabix.
READ TABLE itab_vbap WITH KEY vbeln_va = itab_zycet301_aux1-vbeln_va
posnr = itab_zycet301_aux1-aupos.
IF sy-subrc = 0.
MOVE : itab_vbap-netpr TO itab_zycet301_aux1-preco.
itab_zycet301_aux1-preunifob = itab_zycet301_aux1-vlfob /
itab_zycet301_aux1-fkimg.
READ TABLE itab_vbrk WITH KEY vbeln_vf =
itab_zycet301_aux1-vbeln_vf.
IF sy-subrc = 0.
IF itab_zycet301_aux1-waers NE 'USD'.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'
EXPORTING
i_montante = 1
i_demoeda = itab_zycet301_aux1-waers
i_paramoeda = 'USD'
i_ctmoeda = 'G'
i_dtbase = itab_vbrk-fkdat
IMPORTING
e_txc = v_taxa
EXCEPTIONS
taxa_nao_encontrada = 5.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO
PERFORM busca_moeda_americana
USING
itab_vbrk-bukrs
CHANGING
v_waersa.
PERFORM busca_taxa_cambio_valor_dse
USING
itab_vbrk-bukrs
CHANGING
v_kurst_dse.
PERFORM busca_taxa USING '1'
itab_zycet118_aux1-waers
v_waersa
v_kurst_dse
v_vbrk-fkdat
CHANGING v_montante
v_taxa.
* << Fim da inclusão
IF sy-subrc = 0.
itab_zycet301_aux1-preuni = itab_zycet301_aux1-preuni
* v_taxa.
ENDIF.
ENDIF.
ENDIF.
MODIFY itab_zycet301_aux1 INDEX v_index.
ENDIF.
ENDLOOP.
READ TABLE itab_codigo INDEX 1.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_RE_ITEM
FUNCTION /pws/zyce_agrupa_re_item.
DATA: v_index LIKE sy-tabix,
v_int(1) TYPE c,
v_charg LIKE lips-charg,
v_taxa LIKE /pws/zycee033-kurrf,
v_codnrseq TYPE i,
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
v_anexos TYPE i.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
v_anexos TYPE i,
v_montante LIKE /pws/zycet002-vlme.
* << Fim da inclusão
DATA: BEGIN OF itab_zycet118 OCCURS 10.
INCLUDE STRUCTURE /pws/zycet118.
DATA: ownpr LIKE mbew-ownpr,
preco LIKE /pws/zycet118-netpr,
charg LIKE lips-charg,
preuni LIKE /pws/zycet118-netpr,
index LIKE sy-tabix,
preunifob LIKE /pws/zycet118-netpr.
DATA: END OF itab_zycet118.
DATA: BEGIN OF itab_lips OCCURS 10.
INCLUDE STRUCTURE lips.
DATA: END OF itab_lips.
DATA: BEGIN OF itab_vbap OCCURS 10,
vbeln_va LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
netpr LIKE vbap-netpr,
END OF itab_vbap.
DATA: BEGIN OF itab_vbrk OCCURS 10,
vbeln_vf LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
bukrs like vbrk-bukrs,
* << Fim da inclusão
END OF itab_vbrk.
DATA : BEGIN OF itab_seq OCCURS 10,
codnrseq LIKE /pws/zycet118-codnrseq,
END OF itab_seq.
MOVE-CORRESPONDING itab_zycee118_i TO itab_zycet118.
APPEND itab_zycet118.
SELECT SINGLE ownpr
FROM mbew
INTO itab_zycet118-ownpr
WHERE matnr EQ itab_zycet118-matnr
AND bwkey EQ werks.
SELECT vbeln posnr netpr
FROM vbap
INTO TABLE itab_vbap
WHERE vbeln EQ itab_zycet118-vbeln_va
AND posnr EQ itab_zycet118-aupos.
READ TABLE itab_zycet118 WITH KEY vbeln_vf = space
posnr = space.
IF sy-subrc = 4.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
SELECT vbeln fkdat FROM vbrk INTO TABLE itab_vbrk
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
SELECT vbeln fkdat bukrs FROM vbrk INTO TABLE itab_vbrk
* << Fim da inclusão
FOR ALL ENTRIES IN itab_zycet118
WHERE vbeln = itab_zycet118-vbeln_vf.
ENDIF.
LOOP AT itab_zycet118.
v_index = sy-tabix.
READ TABLE itab_vbap WITH KEY vbeln_va = itab_zycet118-vbeln_va
posnr = itab_zycet118-aupos.
IF sy-subrc = 0.
MOVE : itab_vbap-netpr TO itab_zycet118-preco.
itab_zycet118-preunifob = itab_zycet118-vfob /
itab_zycet118-fkimg.
itab_zycet118-preuni = itab_zycet118-netpr /
itab_zycet118-fkimg.
READ TABLE itab_vbrk WITH KEY vbeln_vf = itab_zycet118-vbeln_vf.
IF sy-subrc = 0.
IF itab_zycet118-waers NE 'USD'.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'
EXPORTING
i_montante = 1
i_demoeda = itab_zycet118-waers
i_paramoeda = 'USD'
i_ctmoeda = 'G'
i_dtbase = itab_vbrk-fkdat
IMPORTING
e_txc = v_taxa
EXCEPTIONS
taxa_nao_encontrada = 5.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM
PERFORM busca_moeda_americana
USING
itab_vbrk-bukrs
CHANGING
v_waersa.
PERFORM busca_taxa_cambio_valor_dse
USING
itab_vbrk-bukrs
CHANGING
v_kurst_dse.
PERFORM busca_taxa USING '1'
itab_zycet118_aux1-waers
v_waersa
v_kurst_dse
v_vbrk-fkdat
CHANGING v_montante
v_taxa.
* << Fim da inclusão
IF sy-subrc = 0.
itab_zycet118-preuni = itab_zycet118-preuni *
v_taxa.
ENDIF.
ENDIF.
ENDIF.
MODIFY itab_zycet118 INDEX v_index.
ENDIF.
ENDLOOP.
SORT itab_zycet092 BY codnrseq.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCEGF6F01
...
FORM busca_taxa USING p_montante
p_demoeda
p_paramoeda
p_ctmoeda
p_dtbase
CHANGING p_montante2
p_taxa.
DATA: v_montante LIKE /pws/zycet002-vlme,
v_montante2 LIKE /pws/zycet002-vlme.
MOVE p_montante TO v_montante.
* >> Início da exclusão: FORM BUSCA_TAXA
CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA
CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM BUSCA_TAXA
i_montante = v_montante
i_demoeda = p_demoeda
i_paramoeda = p_paramoeda
i_ctmoeda = p_ctmoeda
i_dtbase = p_dtbase
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA
i_montante = v_montante
i_demoeda = p_demoeda
i_paramoeda = p_paramoeda
i_ctmoeda = p_ctmoeda
i_dtbase = p_dtbase
* << Fim da inclusão
IMPORTING
* >> Início da exclusão: FORM BUSCA_TAXA
e_montante = v_montante2
e_txc = p_taxa
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA
e_montante = v_montante2
E_TXC = p_taxa
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM BUSCA_TAXA
taxa_nao_encontrada = 5.
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA
TAXA_NAO_ENCONTRADA = 5 .
* << Fim da inclusão
IF sy-subrc EQ 0.
MOVE v_montante2 TO p_montante2.
ENDIF.
ENDFORM.
FORM preenche_092 USING it_zycet118 LIKE itab_zycet118_aux
CHANGING it_zycet092 LIKE itab_auxiliar.
MOVE: it_zycet118-nrseqre TO it_zycet092-nrseqre,
it_zycet118-ncm TO it_zycet092-ncm,
it_zycet118-naladi TO it_zycet092-naladi,
it_zycet118-vrkme TO it_zycet092-vrkme,
...