Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 08/08/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:16:05
Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE
Sintoma
Ao executar a rotina mensal de exportação, esta ocorrendo erros nos valores de ACC/ACE, dependendo
do parâmetro da /pws/zygl007.
Solução
Prever novos cenários com todas as condições de parâmetro da /pws/zygl007.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07111 Data: 08/08/2008 Hora: 12:14:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07111
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00059
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01309 - 00001 - 6.0 - 00023 - ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = S
03221 - 00002 - 6.0 - 00026 - ROTINA MENSAL EXPORTAÇÃO - CONTA DÉBITO NA MÃO COM 17 CARACTERES
06809 - 00003 - 7.0 - 00006 - ROTINA MENSAL EXPORTAÇÃO - RETIRAR FILTRO /PWS/ZYCBT154 POR GSBER
----------------------------------------------------------------------------------------------------
ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE
----------------------------------------------------------------------------------------------------
Palavras Chave:
ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBI003
REPS /PWS/ZYCBR003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBI003
...
v_nrcorresp LIKE /pws/zycbt154-nrcorresp,
v_vlrjprov LIKE /pws/zycbt154-vlme,
v_vlirprov LIKE /pws/zycbt154-vlme,
v_faux,
v_waers LIKE /pws/zycbt001-waers,
v_nrdias(8) TYPE n,
v_tjuros LIKE /pws/zycbt004-vlme,
v_primeiro TYPE c,
v_conta_dif TYPE c,
v_vlmej2 LIKE /pws/zycbt001-vlme,
* >> Início da exclusão: FORM EXIBE_RELATORIO
v_vlmeir2 LIKE /pws/zycbt001-vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
v_vlmeir2 LIKE /pws/zycbt001-vlme,
v_conta_dif_parametro TYPE c.
* << Fim da inclusão
DATA: BEGIN OF itab_sub_tipo OCCURS 5,
tpcontab(02) TYPE c,
tpcontr LIKE /pws/zycbt001-tpcontr,
waers LIKE /pws/zycbt001-waers,
vlmej LIKE /pws/zycbt001-vlme,
vlme_mes LIKE /pws/zycbt001-vlme,
vlmeir LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlmi,
vlmi_mes LIKE /pws/zycbt001-vlmi,
END OF itab_sub_tipo.
...
...
SELECT lifnr name1
FROM lfa1
INTO TABLE itab_lfa1
FOR ALL ENTRIES IN itab_relat
WHERE lifnr = itab_relat-bco.
ENDIF.
v_sytabix = 0.
DESCRIBE TABLE itab_relat LINES v_lin.
READ TABLE itab_relat INDEX 1.
PERFORM exibe_top_relatorio.
* >> Início da inclusão: FORM EXIBE_RELATORIO
itab_relat_aux[] = itab_relat[].
* << Fim da inclusão
LOOP AT itab_relat.
IF itab_relat-vlmej > 0.
PERFORM calcula_vlmi USING itab_relat-tpcontr
itab_relat-waers
itab_relat-vlmej
itab_relat-txc
CHANGING itab_relat-vlmij.
ENDIF.
IF itab_relat-vlmej_ace > 0.
PERFORM calcula_vlmi USING itab_relat-tpcontr
...
...
v_separa EQ 'X'.
CLEAR: v_vlrjprov, v_vlirprov.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
AND waers EQ aux_relat-waers
AND tpcontr EQ aux_relat-tpcontr
AND codmodul NE 'C'
AND codmodul NE 'CD'
AND codmodul NE 'CF'
AND codmodul NE 'CI'.
* >> Início da exclusão: FORM EXIBE_RELATORIO
PERFORM verifica_conta_acc_ace CHANGING v_conta_dif.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
PERFORM verifica_conta_acc_ace CHANGING v_conta_dif
v_conta_dif_parametro.
* << Fim da inclusão
IF v_conta_dif IS INITIAL.
IF itab_zycbt154-codmodul EQ 'IR'.
ADD itab_zycbt154-vlme TO v_vlirprov.
ELSE.
ADD itab_zycbt154-vlme TO v_vlrjprov.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM EXIBE_RELATORIO
LOOP AT itab_relat_aux WHERE nrseqc EQ itab_relat-nrseqc
AND tpcontab EQ itab_relat-tpcontab
AND ftpj NE itab_relat-ftpj.
EXIT.
ENDLOOP.
IF sy-subrc NE 0 OR not v_conta_dif_parametro IS INITIAL OR
( sy-subrc EQ 0 AND itab_relat-ftpj = 'E' ).
* << Fim da inclusão
itab_relat-vlrprov = v_vlmej2 - v_vlrjprov.
itab_relat-vlirprov = v_vlmeir2 - v_vlirprov.
* >> Início da exclusão: FORM EXIBE_RELATORIO
MODIFY itab_relat INDEX v_sytabix TRANSPORTING vlrprov vlirprov.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
MODIFY itab_relat INDEX v_sytabix
TRANSPORTING vlrprov vlirprov.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF NOT v_conta_dif_parametro IS INITIAL.
* << Fim da inclusão
CLEAR: v_vlmej2, v_vlmeir2.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDIF.
* << Fim da inclusão
ENDAT.
AT END OF nrseqc.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR003
...
READ TABLE itab_tcurx WITH KEY currkey = p_waers TRANSPORTING currdec.
IF sy-subrc EQ 0 AND
itab_tcurx-currdec EQ 0.
v_vlmeaux = p_vlme / ( 10 ** ( itab_tcurx-currdec - 2 ) ).
ELSE.
itab_tcurx-currdec = 2.
v_vlmeaux = p_vlme.
ENDIF.
p_vlmi = ( ( p_taxa / v_defator ) * v_parafator ) * v_vlmeaux.
ENDFORM.
* >> Início da exclusão: FORM VERIFICA_CONTA_ACC_ACE
FORM verifica_conta_acc_ace CHANGING p_conta_dif.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_CONTA_ACC_ACE
FORM verifica_conta_acc_ace CHANGING p_conta_dif
p_conta_dif_parametro.
* << Fim da inclusão
DATA: v_codaux2 LIKE /pws/zyglt316-codaux2,
* >> Início da exclusão: FORM VERIFICA_CONTA_ACC_ACE
v_codaux3 LIKE /pws/zyglt316-codaux3.
CLEAR p_conta_dif.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_CONTA_ACC_ACE
v_codaux3 LIKE /pws/zyglt316-codaux3,
v_conta type /pws/zyglt316-konts.
CLEAR: p_conta_dif, p_conta_dif_parametro.
* << Fim da inclusão
v_codaux1 = 'J'.
v_codaux2 = aux_relat-tpcontr.
IF aux_relat-ftpj = 'A'.
v_codaux3 = 'ACC'.
ELSEIF aux_relat-ftpj = 'E'.
v_codaux3 = 'ACE'.
ENDIF.
REFRESH itab_contas.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
...
...
WHEN 2.
WHEN 3.
ENDCASE.
READ TABLE itab_contas INDEX 1.
IF sy-subrc = 0.
IF itab_zycbt154-d_newko NE itab_contas-konts.
p_conta_dif = 'X'.
ENDIF.
IF itab_zycbt154-d_newko+7 EQ itab_contas-konts.
CLEAR p_conta_dif.
* >> Início da inclusão: FORM VERIFICA_CONTA_ACC_ACE
ENDIF.
ELSE.
EXIT.
ENDIF.
v_conta = itab_contas-konts.
IF aux_relat-ftpj = 'A'.
v_codaux3 = 'ACE'.
ELSEIF aux_relat-ftpj = 'E'.
v_codaux3 = 'ACC'.
ENDIF.
REFRESH itab_contas.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = aux_relat-bukrs
ktosl = 'DSE'
codaux1 = v_codaux1
codaux2 = v_codaux2
codaux3 = v_codaux3
TABLES
account = itab_contas
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 1.
WHEN 2.
WHEN 3.
ENDCASE.
READ TABLE itab_contas INDEX 1.
IF sy-subrc = 0.
IF v_conta NE itab_contas-konts.
p_conta_dif_parametro = 'X'.
* << Fim da inclusão
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDFORM.
FORM verifica_provisao_liquidacao CHANGING p_separa.
DATA: v_cont TYPE i.
CLEAR p_separa.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
...