Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 02/12/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:41:47
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02
Sintoma
Valores Mantidos no Exterior - ATUALIZAÇÃO SALDO APÓS F-02
Solução
gerar a Fb08 do documento F-02(inversa),
pois ao lançar o desmembramento do cliente,
o campo SGTXT é obrigatório e esta vazio,
devido o parâmetro /pws/zyglt321 - fte - 029 não tem a opção SGTXT.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07691 Data: 02/12/2008 Hora: 14:36:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07691
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00007
Agrupamento : 00076
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01882 - 00010 - 6.0 - 00024 - CAPTAÇÃO - DRILL DOWN - ESTORNO
02150 - 00009 - 6.0 - 00025 - ESTORNO LIQUIDAÇÃO FB08 FBRA ANO FISCAL
03155 - 00008 - 6.0 - 00026 - ROTINA MENSAL ESTORNO DOCUMENTO
03240 - 00007 - 6.0 - 00026 - CAPTAÇÃO FB08 - ESTORNAR - CAMPO BUDAT
03662 - 00006 - 7.0 - 00001 - VALORES MANTIDOS NO EXTERIOR - CAMPO ZTERM
05482 - 00005 - 7.0 - 00003 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO
05512 - 00004 - 7.0 - 00004 - TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T
06371 - 00003 - 7.0 - 00005 - VALORES MANTIDOS NO EXTERIOR - DEVOLUÇÃO
07124 - 00002 - 7.0 - 00006 - VALORES MANTIDOS NO EXTERIOR - ANO FISCAL
07272 - 00001 - 7.0 - 00006 - VALORES MANTIDOS NO EXTERIOR-DISPONIBILIDADE-CAMPOS FECHADOS/VALO
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_FB08
REPS /PWS/MZYCB034F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_FB08
...
DATA:
v_data_lanc_char(10) TYPE c,
v_nrmsg TYPE i VALUE 0,
v_transacao(4) TYPE c,
v_mode TYPE c,
v_update TYPE c,
v_msgid LIKE t100-arbgb,
v_date LIKE t009b-bdatj,
v_msgno LIKE t100-msgnr.
TABLES bseg.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_FB08
clear: itab_bdc.
refresh: itab_bdc.
* << Fim da inclusão
LOOP AT t_dados.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = t_dados-bukrs
v_date = t_dados-budat
IMPORTING
v_year = v_date
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
SET PARAMETER ID 'GJR' FIELD v_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ELSE.
MESSAGE e261(sf) WITH 'FB03'.
ENDIF.
ENDCASE.
ENDFORM.
FORM user_command_0100.
DATA: wa_zycbt226 TYPE t_s_zycbe226.
* >> Início da inclusão: FORM USER_COMMAND_0100
DATA: v_erro TYPE c.
* << Fim da inclusão
CASE ok_code.
WHEN 'SAVE'.
* >> Início da inclusão: FORM USER_COMMAND_0100
CLEAR v_erro.
* << Fim da inclusão
LOOP AT itab_zycbt226 INTO wa_zycbt226.
IF sy-tcode NE c_transacao_a.
IF wa_zycbt226-vlr_exterior IS INITIAL.
* >> Início da exclusão: FORM USER_COMMAND_0100
MESSAGE e015 WITH 'Informe'(m49) 'o Valor Ret.no Exterior'(m50).
* << Fim da exclusão
* >> Início da inclusão: FORM USER_COMMAND_0100
MESSAGE w015 WITH
'Informe'(m49) 'o Valor Ret.no Exterior'(m50).
v_erro = 'X'.
EXIT.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM USER_COMMAND_0100
IF NOT v_erro IS INITIAL.
EXIT.
ENDIF.
* << Fim da inclusão
LOOP AT itab_disp_00 INTO wa_disp WHERE NOT vldisp GT 0
AND operacao NE 'E'.
...
...
ENDFORM.
FORM processamento.
DATA: v_excecao(01) TYPE c,
wa_zycbt226 LIKE LINE OF itab_zycbt226, "#EC NEEDED
v_indice_226 TYPE sy-tabix. "#EC NEEDED
PERFORM: seleciona_op,
seleciona_dados,
armazena_dados_antigos.
LOOP AT itab_zycbt226 ASSIGNING <fs_op>.
v_indice_226 = sy-tabix.
* >> Início da exclusão: FORM PROCESSAMENTO
IF <fs_op>-status = 'C'.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAMENTO
IF <fs_op>-status = 'C' OR
( <fs_op>-status EQ 'I' AND
<fs_op>-tipo_op EQ 'E' AND
NOT <fs_op>-belnr_op IS INITIAL AND
<fs_op>-belnr_desmliqand IS INITIAL AND
<fs_op>-belnr_compens IS INITIAL ).
* << Fim da inclusão
IF <fs_op>-operacao = 'E'.
READ TABLE itab_disp_30 WITH KEY nrseq = <fs_op>-nrseq
TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
PERFORM message_store
USING '/PWS/ZYCBM'
'I'
'Ordem de Pagamento'(001)
<fs_op>-nrseq
'tem disponibilidade(s) de 30%.'(041)
...
...
tpmsg = 'S'
INTO wa_zycbt032.
IF sy-subrc EQ 0.
IF p_estorno IS INITIAL.
PERFORM busca_sequencial CHANGING v_novo_nrseq.
IF sy-tcode = c_transacao_c.
<fs_op>-nrseq = v_novo_nrseq.
<fs_op>-belnr_op = wa_zycbt032-belnr.
IF <fs_op>-tipo_op = 'E'.
<fs_op>-status = 'I'.
* >> Início da inclusão: FORM DOC_OP
READ TABLE itab_zycbt030 INTO wa_zycbt030 WITH KEY
nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf.
IF sy-subrc = 0.
wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans -
wa_zycbe033-wrbtr.
UPDATE /pws/zycbt030
SET vlsltrans = wa_zycbt030-vlsltrans
WHERE nrinvoic = wa_zycbt030-nrinvoic
AND nrparcf = wa_zycbt030-nrparcf
AND gsberf = wa_zycbt030-gsberf.
ENDIF.
* << Fim da inclusão
ENDIF.
IF <fs_op>-tipo_op = 'P'.
<fs_op>-status = 'C'.
ENDIF.
MOVE-CORRESPONDING <fs_op> TO wa_tab_op.
MODIFY /pws/zycbt226 FROM wa_tab_op.
ELSE.
<fs_op>-belnr_op = wa_zycbt032-belnr.
IF <fs_op>-tipo_op = 'E'.
<fs_op>-status = 'I'.
...
...
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY
tcode = 'F-30'
tabela = '/PWS/ZYCBT226'
cpochv = wa_zycbe033-cpochv
tpmsg = 'S'
INTO wa_zycbt032.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM DOC_DESM_CLIENTE
<fs_zycbt030>-vlsltrans = <fs_zycbt030>-vlsltrans -
wa_zycbe033-wrbtr.
* << Fim da exclusão
<fs_zycbt030>-belnr6 = wa_zycbt032-belnr.
<fs_zycbt030>-budat = wa_zycbe033-budat.
IF <fs_zycbt030>-belnr_t IS INITIAL.
<fs_zycbt030>-belnr_t = <fs_zycbt030>-belnr6.
<fs_zycbt030>-budat_t = <fs_zycbt030>-budat.
ENDIF.
UPDATE /pws/zycbt030
* >> Início da exclusão: FORM DOC_DESM_CLIENTE
SET vlsltrans = <fs_zycbt030>-vlsltrans
* << Fim da exclusão
* >> Início da inclusão: FORM DOC_DESM_CLIENTE
SET
* << Fim da inclusão
belnr6 = <fs_zycbt030>-belnr6
budat = <fs_zycbt030>-budat
belnr_t = <fs_zycbt030>-belnr_t
budat_t = <fs_zycbt030>-budat_t
WHERE nrinvoic = <fs_zycbt030>-nrinvoic
AND nrparcf = <fs_zycbt030>-nrparcf
AND gsberf = <fs_zycbt030>-gsberf.
<fs_op>-belnr_desm_cli = wa_zycbt032-belnr.
UPDATE /pws/zycbt226
SET belnr_desm_cli = <fs_op>-belnr_desm_cli
...
...
/pws/zycbt089-previsto_usd = wa_zycbt089-previsto_usd.
IF v_total_30 > wa_zycbt089-previsto_usd.
v_msg_previsto = text-028.
ELSE.
CLEAR v_msg_previsto.
ENDIF.
ENDIF.
ENDFORM.
FORM contabilizacoes_estorno.
DATA: v_excecao(1) TYPE c.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
DATA:
v_cpochv TYPE /pws/zycbe033-cpochv,
wa_zycbe033 TYPE t_s_zycbe033.
* << Fim da inclusão
CLEAR: v_belnr_est_f02,
v_dtlancto_est_f02.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
IF <fs_op>-tipo_op EQ 'E' AND
<fs_op>-status EQ 'I' AND
NOT <fs_op>-belnr_op IS INITIAL AND
<fs_op>-belnr_desmliqand IS INITIAL AND
<fs_op>-belnr_desm_cli IS INITIAL AND
<fs_op>-belnr_compens IS INITIAL.
CONCATENATE <fs_op>-bukrs
<fs_op>-nrseq
INTO v_cpochv.
PERFORM estorna_documento
USING <fs_op>-dtlancto
v_cpochv
CHANGING wa_zycbe033
<fs_op>-belnr_op.
IF itab_zycbt034[] IS INITIAL.
CLEAR <fs_op>-belnr_op.
READ TABLE itab_zycbt030 INTO wa_zycbt030 WITH KEY
nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf.
IF sy-subrc = 0.
wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans +
<fs_op>-vlr_exterior.
MODIFY itab_zycbt030 FROM wa_zycbt030
TRANSPORTING vlsltrans
WHERE nrinvoic EQ wa_zycbt030-nrinvoic
AND gsberf EQ wa_zycbt030-gsberf
AND nrparcf EQ wa_zycbt030-nrparcf.
ENDIF.
ENDIF.
ELSE.
* << Fim da inclusão
IF <fs_op>-tipo_op = 'E'.
PERFORM verifica_liq_and.
PERFORM limpa_dados_bi.
PERFORM f02_reversa CHANGING v_belnr_est_f02
v_dtlancto_est_f02.
PERFORM limpa_dados_bi.
PERFORM estorno USING 'C'
v_belnr_est_f02
v_dtlancto_est_f02.
PERFORM limpa_dados_bi.
PERFORM estorno_liq_and USING v_belnr_est_f02
v_dtlancto_est_f02.
PERFORM limpa_dados_bi.
PERFORM estorno USING 'O'
v_belnr_est_f02
v_dtlancto_est_f02.
* >> Início da inclusão: FORM CONTABILIZACOES_ESTORNO
ENDIF.
* << Fim da inclusão
ENDIF.
IF <fs_op>-tipo_op = 'P'.
PERFORM limpa_dados_bi.
PERFORM doc_op USING 'X'
CHANGING v_belnr_est_f02
v_dtlancto_est_f02.
PERFORM limpa_dados_bi.
PERFORM estorno USING 'OC'
v_belnr_est_f02
v_dtlancto_est_f02.
...
...
v_periodo TYPE frper,
v_ano TYPE gjahr,
v_periodo_fechado(1) TYPE c,
wa_mensagem TYPE t_mensagem.
PERFORM limpa_dados_bi.
p_zycbe033-tcode = c_fb08.
p_zycbe033-belnr = p_doc.
p_zycbe033-bldat = p_dtlanc.
p_zycbe033-budat = p_zycbe033-bldat.
p_zycbe033-cpochv = p_cpochv.
* >> Início da inclusão: FORM ESTORNA_DOCUMENTO
p_zycbe033-bukrs = <fs_op>-bukrs.
* << Fim da inclusão
PERFORM determina_periodo_contabil
USING <fs_op>-bukrs
p_dtlanc
CHANGING v_periodo
v_ano.
PERFORM verifica_periodo_contabil
USING
<fs_op>-bukrs
v_periodo
v_ano
...
...
DATA: v_campo(30) TYPE c,
v_value(10) TYPE c,
v_index TYPE sy-tabix,
v_bukrs TYPE /pws/zycbe226-bukrs,
v_gjahr TYPE bkpf-gjahr,
v_nrparcf TYPE /pws/zycbe226-nrparcf,
wa_zycbt017 TYPE t_s_zycbt017.
* >> Início da inclusão: FORM DRILL_DOWN
DATA: v_periodo TYPE frper.
* << Fim da inclusão
FIELD-SYMBOLS:
<fs_contrato> TYPE t_contrato,
<fs_disp> TYPE t_disponibilidade,
<fs_zycbt226> TYPE t_s_zycbe226.
GET CURSOR FIELD v_campo VALUE v_value.
CHECK NOT v_campo IS INITIAL.
...
...
...
...
...