Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Variação Cambial
Data/Hora da Publicação: 26/09/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 11:49:50
Descrição da Nota: CORREÇÃO NA GRAVAÇÃO DE DADOS DA VARIAÇÃO CAMBIAL
Sintoma
1) O valor da diferença não era gravado corretamente na /PWS/ZYCET009
2) O sinal dos valores de devolução não eram considerados
Solução
Foi ajustado o cálculo da diferença, para considerar todos os itens.
Apenas os itens de saída passam a ser selecionados.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04830 Data: 26/09/2007 Hora: 13:44:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04830
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00014
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04292 - 00001 - 7.0 - 00002 - ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE
04560 - 00002 - 7.0 - 00002 - TRATAMENTO PARA MELHORAR PERFORMANCE NA VARIAÇÃO CAMBIAL
----------------------------------------------------------------------------------------------------
CORREÇÃO NA GRAVAÇÃO DE DADOS DA VARIAÇÃO CAMBIAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
VARIAÇÃO CAMBIAL COMPLEMENTO ZYCET009
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCEI007
REPS /PWS/ZYCER007
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCEI007
...
dtemb LIKE /pws/zycet001-dtemb,
kurrf_bl LIKE /pws/zycet001-kurrf_bl,
nremb LIKE /pws/zycet001-nremb,
viatrans LIKE /pws/zycet001-viatrans,
werks LIKE /pws/zycet001-werks,
codportd LIKE /pws/zycet001-codportd,
dtcruze LIKE /pws/zycet001-dtcruze,
butxt LIKE t001-butxt,
land1 LIKE t001-land1,
END OF it_zycet001.
* >> Início da exclusão:
DATA: BEGIN OF it_zycet002 OCCURS 0,
nrseq LIKE /pws/zycet002-nrseq,
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,
docnum LIKE /pws/zycet002-docnum,
auart LIKE /pws/zycet002-auart,
waers LIKE /pws/zycet002-waers,
kurrf LIKE /pws/zycet002-kurrf,
zterm LIKE /pws/zycet002-zterm,
ktgrd LIKE /pws/zycet002-ktgrd,
bukrs LIKE /pws/zycet002-bukrs,
kunag LIKE /pws/zycet002-kunag,
gsber LIKE /pws/zycet002-gsber,
matnr LIKE /pws/zycet002-matnr,
werks LIKE /pws/zycet002-werks,
ktgrm LIKE /pws/zycet002-ktgrm,
prctr LIKE /pws/zycet002-prctr,
vkorg_auft LIKE /pws/zycet002-vkorg_auft,
vlemb LIKE /pws/zycet002-vlemb,
nfnum LIKE /pws/zycet002-nfnum,
dtcont LIKE /pws/zycet002-dtcont,
dtnf LIKE /pws/zycet002-dtnf,
belnr5 LIKE /pws/zycet002-belnr5,
shkzg LIKE /pws/zycet002-shkzg,
vrkme LIKE /pws/zycet002-vrkme,
vtweg_auft LIKE /pws/zycet002-vtweg_auft,
spara LIKE /pws/zycet002-spara,
fkdat LIKE /pws/zycet002-fkdat,
aupos LIKE /pws/zycet002-aupos,
fkart LIKE /pws/zycet002-fkart,
vlfob LIKE /pws/zycet002-vlfob,
inco1 LIKE /pws/zycet002-inco1,
fkimg LIKE /pws/zycet002-fkimg,
ntgew LIKE /pws/zycet002-ntgew,
brgew LIKE /pws/zycet002-brgew,
st_vd LIKE /pws/zycet002-st_vd,
st_rm LIKE /pws/zycet002-st_rm,
awkey LIKE bkpf-awkey,
* << Fim da exclusão
* >> Início da inclusão:
DATA: BEGIN OF it_zycet002 OCCURS 0.
INCLUDE TYPE /pws/zycet002.
DATA: awkey LIKE bkpf-awkey,
* << Fim da inclusão
kappl LIKE /pws/zycet037-kappl,
kschl LIKE /pws/zycet037-kschl,
kvsl1 LIKE /pws/zycet037-kvsl1,
nfaver TYPE c,
END OF it_zycet002.
DATA: BEGIN OF it_zycet020 OCCURS 0,
auart LIKE /pws/zycet020-auart,
bukrs LIKE /pws/zycet020-bukrs,
tipodoc LIKE /pws/zycet020-tipodoc,
END OF it_zycet020.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER007
...
WHERE nrseq IN s_emb.
ENDIF.
PERFORM trata_emb.
IF NOT it_zycet001[] IS INITIAL.
LOOP AT it_zycet001.
ON CHANGE OF it_zycet001-bukrs.
PERFORM verifica_autorizacao USING it_zycet001-bukrs
'01'.
ENDON.
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DADOS
IF p_reimp EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
PERFORM seleciona_itens_embarque
USING
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
SELECT nrseq
vbeln_va
vbeln_vf
posnr
vbeln_vl
posnl
docnum
auart
waers
kurrf
zterm
ktgrd
bukrs
kunag
gsber
matnr
werks
ktgrm
prctr
vkorg_auft
vlemb
nfnum
dtcont
dtnf
belnr5
shkzg
vrkme
vtweg_auft
spara
fkdat
aupos
fkart
vlfob
inco1
fkimg
ntgew
brgew
st_vd
st_rm
FROM /pws/zycet002
INTO TABLE it_zycet002
FOR ALL ENTRIES IN it_zycet001
WHERE nrseq EQ it_zycet001-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
it_zycet001[]
p_reimp
CHANGING
it_zycet002[].
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
ELSE.
SELECT nrseq
vbeln_va
vbeln_vf
posnr
vbeln_vl
posnl
docnum
auart
waers
kurrf
zterm
ktgrd
bukrs
kunag
gsber
matnr
werks
ktgrm
prctr
vkorg_auft
vlemb
nfnum
dtcont
dtnf
belnr5
shkzg
vrkme
vtweg_auft
spara
fkdat
aupos
fkart
vlfob
inco1
fkimg
ntgew
brgew
st_vd
st_rm
FROM /pws/zycet002
INTO TABLE it_zycet002
FOR ALL ENTRIES IN it_zycet001
WHERE nrseq EQ it_zycet001-nrseq
AND dtnf EQ '00000000'
AND dtcont EQ '00000000'.
ENDIF.
* << Fim da exclusão
IF NOT it_zycet002[] IS INITIAL.
SELECT * FROM /pws/zycet012 INTO TABLE it_zycet012
FOR ALL ENTRIES IN it_zycet002
WHERE nrseq = it_zycet002-nrseq
AND belnr5 NE space
AND belnr8 EQ space.
IF NOT it_zycet012[] IS INITIAL AND p_reimp IS INITIAL.
LOOP AT it_zycet012.
READ TABLE it_zycet002 WITH KEY nrseq = it_zycet012-nrseq.
IF sy-subrc = 0.
...
...
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ELSE.
PERFORM limpa_tabelas.
ENDIF.
PERFORM limpa_tabelas.
ENDFORM.
FORM fill_data_j1b1.
* >> Início da inclusão: FORM FILL_DATA_J1B1
DATA: wa_emitenf LIKE LINE OF it_emitenf[].
* << Fim da inclusão
IF NOT it_zycee005[] IS INITIAL AND
NOT it_zycet035-nfcref IS INITIAL.
MOVE it_zycee005 TO it_zycee005_aux.
APPEND it_zycee005_aux.
CLEAR it_zycee005.
REFRESH it_zycee005.
ENDIF.
it_zycee005-tabela = text-006.
it_zycee005-nrseq = it_relat-nrseq.
PERFORM verify_null_field USING it_relat-branch
...
...
it_zycee005-taxtyp2 = it_zycet035-tpcod2.
ENDIF.
it_zycee005-docdat = sy-datlo.
it_zycee005-pstdat = sy-datlo.
PERFORM verify_null_field USING it_relat-docnum
'DOCNUM'
text-051.
it_zycee005-docref = it_relat-docnum.
it_zycee005-itmref = it_relat-posnr.
it_zycee005-menge = 1.
* >> Início da exclusão: FORM FILL_DATA_J1B1
it_zycee005-netpr = abs( it_emitenf-difer ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1
LOOP AT it_emitenf INTO wa_emitenf WHERE docnum = it_relat-docnum.
it_zycee005-netpr = it_zycee005-netpr + ABS( wa_emitenf-difer ).
ENDLOOP.
* << Fim da inclusão
PERFORM busca_incoterm TABLES it_zycet002
CHANGING it_zycee005-inco1
it_zycee005-inco2.
PERFORM busca_cond_pagto TABLES it_zycet002
CHANGING it_zycee005-zterm.
APPEND it_zycee005.
LOOP AT it_relat_aux2 WHERE nrseq = it_relat-nrseq
AND branch = it_relat-branch.
READ TABLE it_nfnum WITH KEY nrseq = it_relat_aux2-nrseq
nfnum = it_relat_aux2-nfnum.
...
...
ELSE.
LOOP AT it_nfnum.
it_zycee006-msg = it_nfnum-nfnum.
it_zycee006-indice = sy-tabix.
APPEND it_zycee006.
ENDLOOP.
ENDIF.
ENDFORM.
FORM atualiza_tabelas_j1b1.
READ TABLE it_zycet002 WITH KEY docnum = it_emitenf-docnum.
* >> Início da inclusão: FORM ATUALIZA_TABELAS_J1B1
READ TABLE it_zycee005 WITH KEY docnum = it_emitenf-docnum.
* << Fim da inclusão
/pws/zycet009-nrseq = it_relat-nrseq.
/pws/zycet009-vbeln_va = it_zycet002-vbeln_va.
/pws/zycet009-vbeln_vf = it_zycet002-vbeln_vf.
/pws/zycet009-docnum = it_relat-docnum.
/pws/zycet009-docnum2 = it_zycet005-belnr.
/pws/zycet009-nftype = it_zycee005-nftype.
/pws/zycet009-branch = it_zycee005-branch.
/pws/zycet009-parid = it_zycee005-parid.
/pws/zycet009-waers = it_relat-waers.
/pws/zycet009-bukrs = it_zycee005-bukrs.
...
...
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
ENDIF.
ENDIF.
ENDIF.
ENDON.
ENDLOOP.
IF NOT it_zycee005_aux[] IS INITIAL.
* >> Início da exclusão: FORM CONTABILIZA_J1B1_REF
REFRESH it_zycee005.
MOVE it_zycee005_aux[] TO it_zycee005[].
* << Fim da exclusão
* >> Início da inclusão: FORM CONTABILIZA_J1B1_REF
APPEND LINES OF it_zycee005_aux[] TO it_zycee005[].
* << Fim da inclusão
ENDIF.
IF sy-subrc = 0.
CALL CUSTOMER-FUNCTION '002'.
LOOP AT it_relat.
CLEAR v_execute.
IF NOT it_zycet035-nfcref IS INITIAL.
IF it_relat-nrseq NE r_nrseq1 OR
it_relat-branch NE r_branch1 OR
it_relat-docnum NE r_docnum1.
MOVE 1 TO v_execute.
...
...
ELSE.
CASE itab_zyglt321-cpocb.
WHEN 'NRSEQ'.
p_campo = it_relat-nrseq.
WHEN 'NREMB'.
p_campo = it_relat-nremb.
ENDCASE.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM seleciona_itens_embarque
USING
p_t_zycet001 LIKE it_zycet001[]
p_reimpressao TYPE xfeld
CHANGING
p_t_zycet002 LIKE it_zycet002[].
DATA: wa_zycet001 LIKE LINE OF p_t_zycet001[],
it_itens TYPE STANDARD TABLE OF /pws/zycet002.
LOOP AT p_t_zycet001 INTO wa_zycet001.
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
nrseq = wa_zycet001-nrseq
TABLES
tab_saida = it_itens[]
EXCEPTIONS
OTHERS = 1.
IF p_reimpressao IS INITIAL.
DELETE it_itens[] WHERE NOT dtnf IS initial
OR NOT dtcont IS initial.
ENDIF.
APPEND LINES OF it_itens[] TO p_t_zycet002[].
CLEAR: it_itens[].
ENDLOOP.
ENDFORM.
* << Fim da inclusão