Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Variação Cambial
Data/Hora da Publicação: 25/05/2007 00:00:00
Data/Hora Última Alteração: 03/03/2010 13:47:25
Descrição da Nota: CONSISTÊNCIA DA DATA BASE AO EXECUTAR A VARIAÇÃO CAMBIAL
Sintoma
Ao tentar executar a Variação Cambial (/pws/zycer007), verificar se a data-base utilizada está
preenchida. Se não, não permitir a execução da funcionalidade e exibir uma mensagem.
Solução
Inclusão de consistência para verificação do preenchimento da data-base.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03772 Data: 25/05/2007 Hora: 18:03:05
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03772
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00027
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
Texto Rápido:
CONSISTÊNCIA DA DATA BASE AO EXECUTAR A VARIAÇÃO CAMBIAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
VARIAÇÃO, CAMBIAL, DATA, DATA-BASE, CONSISTÊNCIA, VERIFICAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCER007
REPT /PWS/ZYCER007
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER007
...
REFRESH: it_emb_tot,
it_contabil.
ENDAT.
ENDLOOP.
LOOP AT it_erro_data.
WRITE: / it_erro_data-msg COLOR 6.
ENDLOOP.
PERFORM imprime_totais.
ENDFORM.
FORM itens_embarque.
* >> Início da inclusão: FORM ITENS_EMBARQUE
DATA: BEGIN OF itab_erro OCCURS 0,
nrseq TYPE /pws/zycet001-nrseq,
dtvrc TYPE /pws/zycet048-dtvrc,
END OF itab_erro.
* << Fim da inclusão
IF NOT p_nffmes IS INITIAL.
PERFORM datas USING p_dtate
CHANGING v_dtate.
ELSE.
v_dtate = p_dtate.
ENDIF.
CONCATENATE v_dtate(6) '01' INTO v_dtde.
IF p_reimp NE 'X'.
IF p_nfaver EQ 'X' AND p_nffmes NE 'X'.
LOOP AT it_zycet002.
...
...
IF sy-subrc EQ 0.
v_mt = /pws/zycit054-vktra.
ENDIF.
SELECT SINGLE *
FROM /pws/zycet048
INTO /pws/zycet048
WHERE vktrt EQ v_mt.
IF /pws/zycet048-dtvrc IS INITIAL.
CONTINUE.
ELSEIF /pws/zycet048-dtvrc EQ 'DTEMB'.
* >> Início da exclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtemb IS INITIAL OR
it_zycet001-dtemb GT v_dtate.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtemb IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtemb GT v_dtate.
* << Fim da inclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTCRUZE'.
* >> Início da exclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtcruze IS INITIAL OR
it_zycet001-dtcruze GT v_dtate.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtcruze IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtcruze GT v_dtate.
* << Fim da inclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTAVERB'.
* >> Início da exclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtaverb IS INITIAL OR
it_zycet001-dtaverb GT v_dtate.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_EMBARQUE
IF it_zycet001-dtaverb IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtaverb GT v_dtate.
* << Fim da inclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTBL'.
SELECT SINGLE dtbl
FROM /pws/zycet047
INTO /pws/zycet047-dtbl
WHERE nrseq EQ it_zycet001-nrseq.
* >> Início da exclusão: FORM ITENS_EMBARQUE
IF /pws/zycet047-dtbl IS INITIAL OR
/pws/zycet047-dtbl GT v_dtate.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_EMBARQUE
IF /pws/zycet047-dtbl IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF /pws/zycet047-dtbl GT v_dtate.
* << Fim da inclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
...
...
MODIFY it_zycet002 INDEX v_index.
ELSEIF it_zycet002-dtcont GE v_dtde AND
it_zycet002-dtcont LE v_dtate.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ENDIF.
ENDCASE.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM ITENS_EMBARQUE
ENDIF.
IF NOT itab_erro[] IS INITIAL.
SORT itab_erro BY nrseq.
DELETE ADJACENT DUPLICATES FROM itab_erro COMPARING nrseq.
LOOP AT itab_erro.
CASE itab_erro-dtvrc.
WHEN 'DTEMB'.
MESSAGE i000 WITH text-131 itab_erro-nrseq.
WHEN 'DTBL'.
MESSAGE i000 WITH text-132 itab_erro-nrseq.
WHEN 'DTAVERB'.
MESSAGE i000 WITH text-133 itab_erro-nrseq.
WHEN 'DTCRUZE'.
MESSAGE i000 WITH text-134 itab_erro-nrseq.
WHEN OTHERS.
MESSAGE i000 WITH text-135 itab_erro-nrseq.
ENDCASE.
ENDLOOP.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM datas USING p_date1
CHANGING p_date2.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = p_date1
IMPORTING
last_day_of_month = p_date2
EXCEPTIONS
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCER007
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 131
Texto: (46 caracteres)
"Data do Embarque não preenchida para documento"
Comprimento máximo: 46
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 132
Texto: (41 caracteres)
"Data do BL não preenchida para documento"
Comprimento máximo: 41
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 133
Texto: (47 caracteres)
"Data da Averbação não preenchida para documento"
Comprimento máximo: 47
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 134
Texto: (43 caracteres)
"Data do Cruze não preenchida para documento"
Comprimento máximo: 47
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 135
Texto: (34 caracteres)
"Data não preenchida para documento"
Comprimento máximo: 34