Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 10/05/2006 00:00:00
Data/Hora Última Alteração: 21/02/2011 16:55:01
Descrição da Nota: ESTORNO DO CÂMBIO QUANDO DATA DO EMBARQUE É MAIOR DO QUE DATA DO DIA
Sintoma
O programa não realiza estorno do câmbio corretamente quando a data do embarque é maior do que a
data atual e, para períodos fiscais diferentes do normal e encerrados, o motivo de estorno estava
sendo levado indevidamente.
Solução
Os programas de agrupamentos foram ajustados para buscar a data do documento a partir da tabela
/PWS/ZYCBT030 e verificar o período fiscal.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01302 Data: 10/05/2006 Hora: 09:42:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01302
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00113
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
ESTORNO DO CÂMBIO QUANDO DATA DO EMBARQUE É MAIOR DO QUE DATA DO DIA
----------------------------------------------------------------------------------------------------
Palavras Chave:
ESTORNO CÂMBIO DATA EMBARQUE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCER089
REPS /PWS/ZYCER306
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER089
* >> Início da inclusão: REPORT /PWS/ZYCER089
REPORT /pws/zycer089 MESSAGE-ID /pws/zycem.
* << Fim da inclusão
* >> Início da exclusão: REPORT /PWS/ZYCER089
REPORT /pws/zycer089a MESSAGE-ID /pws/zycem.
* << Fim da exclusão
TABLES: /pws/zycet002,
/pws/zycet037,
/pws/zycit054,
/pws/zycet047,
/pws/zycet048.
...
itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,
itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,
itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE.
DATA: wa_zycbt011 LIKE /pws/zycbt011,
wa_zycet008 LIKE /pws/zycet008.
* >> Início da inclusão: REPORT /PWS/ZYCER089
TYPES: BEGIN OF ty_per_fiscal,
mes TYPE t001b-frpe1,
ano TYPE t001b-frye1,
END OF ty_per_fiscal.
* << Fim da inclusão
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq
NO INTERVALS
NO-EXTENSION.
...
FORM fill_date_fb08.
* >> Início da exclusão: FORM FILL_DATE_FB08
DATA: v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
DATA: wa_per_fiscal TYPE ty_per_fiscal.
* << Fim da inclusão
CLEAR: itab_zycbt033,
itab_zycbt032,
itab_zycee005.
REFRESH: itab_zycbt033,
itab_zycbt032,
...
itab_zycbt033-budat = wa_zycet001-dtemb.
ELSE.
itab_zycbt033-budat = sy-datum.
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_FB08
v_monat = itab_zycbt033-budat+4(2).
* << Fim da exclusão
itab_zycee005-mandt = sy-mandt.
itab_zycee005-tcode = 'FB08'.
itab_zycee005-tabela = '/PWS/ZYCBT030'.
itab_zycee005-cpochv = wa_zycet001-nrseq.
itab_zycee005-belnr = itab_zycbt030-belnr.
itab_zycee005-bukrs = wa_zycet001-bukrs.
* >> Início da exclusão: FORM FILL_DATE_FB08
SELECT SINGLE budat
FROM bkpf
INTO itab_zycee005-budat
WHERE bukrs = wa_zycet001-bukrs
AND belnr = itab_zycbt030-belnr
AND gjahr = itab_zycbt030_aux-budat.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
IF sy-subrc IS INITIAL.
itab_zycee005-budat = itab_zycee005-bldat = itab_zycbt030_aux-dtbelnr.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATE_FB08
v_monat = itab_zycee005-budat+4(2).
* << Fim da exclusão
itab_zycee005-gjahs = itab_zycee005-budat(4).
* >> Início da inclusão: FORM FILL_DATE_FB08
PERFORM checa_periodo_fiscal CHANGING wa_per_fiscal.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycee005-bukrs
* >> Início da exclusão: FORM FILL_DATE_FB08
i_gjahr = itab_zycee005-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
i_gjahr = wa_per_fiscal-ano
* << Fim da inclusão
i_koart = '+'
* >> Início da exclusão: FORM FILL_DATE_FB08
i_monat = v_monat
* << FIm da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
i_monat = wa_per_fiscal-mes
* << Fim da inclusão
EXCEPTIONS
error_period = 1
error_period_acc = 2
...
* >> FORM CHECA_PERIODO_FISCAL foi incluído em programa /PWS/ZYCER089
FORM checa_periodo_fiscal CHANGING p_fiscal TYPE ty_per_fiscal.
DATA: v_periv TYPE t001-periv.
SELECT SINGLE periv
FROM t001
INTO v_periv
WHERE bukrs EQ wa_zycet001-bukrs.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = itab_zycbt030_aux-budat
version = v_periv
IMPORTING
period = p_fiscal-mes
year = p_fiscal-ano
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
ENDFORM. " checa_periodo_fiscal
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER306
* >> Início da inclusão: REPORT /PWS/ZYCER306
REPORT /pws/zycer306 MESSAGE-ID /pws/zycem.
* << Fim da inclusão
* >> Início da exclusão: REPORT /PWS/ZYCER306
REPORT zycrr057_01 MESSAGE-ID /pws/zycem.
* << Fim da exclusão
TABLES: /pws/zycet001,
/pws/zycet002,
/pws/zycbt011,
/pws/zycet008,
/pws/zycbt030,
...
itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,
itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,
itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE,
wa_zycbt011 LIKE /pws/zycbt011,
wa_zycet008 LIKE /pws/zycet008.
* >> Início da inclusão: REPORT /PWS/ZYCER306
TYPES: BEGIN OF ty_per_fiscal,
mes TYPE t001b-frpe1,
ano TYPE t001b-frye1,
END OF ty_per_fiscal.
* << Fim da inclusão
START-OF-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK -1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq NO INTERVALS
NO-EXTENSION.
PARAMETERS: p_flag(1) TYPE c.
...
FORM fill_date_fb08.
* >> Início da exclusão: FORM FILL_DATE_FB08
DATA: v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
DATA: wa_per_fiscal TYPE ty_per_fiscal.
* << Fim da inclusão
CLEAR: itab_zycbt033, itab_zycbt032.
REFRESH: itab_zycbt033, itab_zycbt032.
CLEAR: itab_zycee005.
REFRESH: itab_zycee005.
itab_zycbt033-mandt = sy-mandt.
itab_zycbt033-tcode = 'FB08'.
itab_zycbt033-cpochv = wa_zycet001-nrseq.
itab_zycbt033-belnr = itab_zycbt030-beln
itab_zycbt033-bukrs = wa_zycet001-bukrs.
itab_zycbt033-budat = wa_zycet001-dtemb.
* >> Início da exclusão: FORM FILL_DATE_FB08
v_monat = itab_zycbt033-budat+4(2).
* << Fim da exclusão
itab_zycee005-mandt = sy-mandt.
itab_zycee005-tcode = 'FB08'.
itab_zycee005-tabela = '/PWS/ZYCBT030'.
itab_zycee005-cpochv = wa_zycet001-nrseq.
itab_zycee005-belnr = itab_zycbt030-belnr.
itab_zycee005-bukrs = wa_zycet001-bukrs.
READ TABLE itab_zycbt030_aux
WITH KEY belnr = itab_zycbt030-belnr.
* >> Início da exclusão: FORM FILL_DATE_FB08
SELECT SINGLE budat FROM bkpf INTO itab_zycee005-budat
WHERE bukrs = wa_zycet001-bukrs AND
belnr = itab_zycbt030-belnr AND
gjahr = itab_zycbt030_aux-budat.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
IF sy-subrc IS INITIAL.
itab_zycee005-budat = itab_zycbt030_aux-dtbelnr.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATE_FB08
v_monat = itab_zycee005-budat+4(2).
* << Fim da exclusão
itab_zycee005-bldat = itab_zycee005-budat.
itab_zycee005-gjahs = itab_zycee005-budat(4).
* >> Início da inclusão: FORM FILL_DATE_FB08
PERFORM checa_periodo_fiscal CHANGING wa_per_fiscal.
* << Fim da inclusão
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = itab_zycee005-bukrs
* >> Início da exclusão: FORM FILL_DATE_FB08
i_gjahr = itab_zycee005-budat+0(4)
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
i_gjahr = wa_per_fiscal-ano
* << Fim da inclusão
i_koart = '+'
* >> Início da exclusão: FORM FILL_DATE_FB08
i_monat = v_monat
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
i_monat = wa_per_fiscal-mes
* << Fim da inclusão
EXCEPTIONS
error_period = 1
error_period_acc = 2
OTHERS = 3.
IF sy-subrc = 0.
...
* >> FORM CHECA_PERIODO_FISCAL foi incluído em programa /PWS/ZYCER089
FORM checa_periodo_fiscal CHANGING p_fiscal TYPE ty_per_fiscal.
DATA: v_periv TYPE t001-periv.
SELECT SINGLE periv
FROM t001
INTO v_periv
WHERE bukrs EQ wa_zycet001-bukrs.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DETERMINE_PERIOD'
EXPORTING
date = itab_zycbt030_aux-budat
version = v_periv
IMPORTING
period = p_fiscal-mes
year = p_fiscal-ano
EXCEPTIONS
period_in_not_valid = 1
period_not_assigned = 2
version_undefined = 3
OTHERS = 4.
ENDFORM. " checa_periodo_fiscal