Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 22/02/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 12:41:14
Descrição da Nota: LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE
Sintoma
Ao efetuar o estorno de liquidação com arbitragem, na volta do saldo ao cliente não esta alimentando
o campo atribuição corretamente.
Solução
Alterar seleção da /pws/zyglt321 para a nova chave de operação, FTE, mapeando os valores na F-30.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06009 Data: 22/02/2008 Hora: 17:04:35
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06009
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00036
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02101 - 00001 - 6.0 - 00025 - LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS
02114 - 00002 - 6.0 - 00025 - LIQUIDAÇÃO DE FATURAS - TEXTO DESCRIVO DOC. CONTÁBIL
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE
CLIENTE
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_30_S
REPS /PWS/MZYCB004F01
REPS /PWS/MZYCB004F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_S
MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCB_TRANSACAO_F_30_S
CARACTERÍSTICAS
IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
V_ULT
* >> Início da inclusão:
V_FLAG_EST_ARB TYPE C '' 'X' '' Flag estorno de arbitragem
* << Fim da inclusão
TEXTO FONTE
...
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-ABPOS'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OSE'.
ENDIF.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=DBR'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',
'BDC_OKCODE' '=PI'.
PERFORM bdc_screen USING 'SAPDF05X' '3100'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
IF v_flag_est_arb EQ 'X'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=BS'.
ELSE.
* << Fim da inclusão
PERFORM bdc_field USING: 'BDC_OKCODE' '=BU'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
ENDIF.
* << Fim da inclusão
IF t_dados-koart EQ 'D'.
v_tela = '0301'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
t_dados-newbs = '04'.
* << Fim da inclusão
ELSEIF t_dados-koart EQ 'K'.
v_tela = '0302'.
ELSEIF t_dados-koart EQ 'S'.
v_tela = '0300'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
ENDIF.
PERFORM verifica_empresas USING t_dados-bukrs
'UMBUCHNG'
t_dados-d_newko
t_dados-koart.
IF NOT t_dados-agums IS INITIAL.
v_tela = '304'.
t_dados-newbs = '09'.
* << Fim da inclusão
ENDIF.
PERFORM bdc_screen USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING:
'BDC_CURSOR' 'RF05A-AZEI1(01)',
'BDC_OKCODE' '=PI'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
CLEAR itab_oculto.
REFRESH itab_oculto.
IF t_dados-koart EQ 'D'.
SELECT SINGLE akont FROM knb1
INTO knb1-akont
WHERE kunnr = t_dados-d_newko
AND bukrs = t_dados-bukrs.
IF NOT t_dados-agums IS INITIAL.
SELECT SINGLE plcontas FROM /pws/zycbt007
INTO /pws/zycbt007-plcontas
WHERE bukrs EQ t_dados-bukrs.
SELECT SINGLE skont FROM t074
INTO v_cconta
WHERE ktopl = /pws/zycbt007-plcontas
AND koart = 'D'
AND hkont = knb1-akont.
IF sy-subrc NE 0.
v_cconta = knb1-akont.
ENDIF.
ELSE.
v_cconta = knb1-akont.
ENDIF.
PERFORM determina_string USING t_dados-newbs
t_dados-bukrs
v_cconta
CHANGING v_string_debito.
ENDIF.
PERFORM trata_string_debito TABLES t_dados
t_campo
itab_oculto
USING v_string_debito.
* << Fim da inclusão
PERFORM bdc_screen USING 'SAPMF05A' v_tela.
PERFORM bdc_field USING: 'BSEG-ZUONR' t_dados-d_zuonr.
IF NOT t_dados-d_sgtxt IS INITIAL.
PERFORM bdc_field USING: 'BSEG-SGTXT' t_dados-d_sgtxt.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_S
ENDIF.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'
chave = 'D'.
IF sy-subrc NE 0 AND NOT t_dados-zfbdt IS INITIAL..
PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.
ENDIF.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-VALUT'
chave = 'D'.
IF sy-subrc NE 0 AND NOT t_dados-d_valut IS INITIAL..
PERFORM bdc_field USING 'BSEG-VALUT' v_valut.
* << Fim da inclusão
ENDIF.
PERFORM bdc_field USING: 'BDC_OKCODE' '=BU'.
IF v_tela EQ '0300'.
IF NOT t_dados-d_valut IS INITIAL.
PERFORM bdc_field USING: 'BSEG-VALUT' v_valut.
ENDIF.
PERFORM bdc_screen USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=ENTE',
'COBL-GSBER' t_dados-d_gsber.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F01
...
itab_zycbt005-waers TO itab_zycbt006-waers_a.
itab_zycbt030-v_kwert2 =
( itab_zycbt030-kwert / itab_zycbt030-s_kwert ) * v_vlmel.
PERFORM busca_conta.
PERFORM encontra_documento.
PERFORM fill_date6_f30_liquid_3.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034 IS INITIAL.
* >> Início da inclusão: FORM LANCAMENTO_LIQUIDA_3
PERFORM unlock_razao USING itab_zycbe033-d_newko
itab_zycbe033-bukrs.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_W'
EXPORTING
v_modo = v_modo_bi
v_vinc_tot = 'X'
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_partidas = itab_partidas
EXCEPTIONS
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
FORM clearing_cli USING value(p_kunnr)
value(p_datum).
PERFORM clear_date_batch.
itab_zycbe033-tcode = 'F-30'.
CONCATENATE itab_zycbt006-nrinvoic itab_zycbt006-nrparcf
INTO itab_zycbe033-cpochv.
itab_zycbe033-tabela = 'ZYCBT030'.
REFRESH itab_zyglt321.
SELECT * FROM /pws/zyglt321
INTO TABLE itab_zyglt321
* >> Início da exclusão: FORM CLEARING_CLI
WHERE ktosl = 'CPT'
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
WHERE ktosl = 'FTE'
* << Fim da inclusão
AND codeven = v_codeven.
itab_zycbe033-budat = p_datum.
itab_zycbe033-bldat = itab_zycbe033-budat.
* >> Início da exclusão: FORM CLEARING_CLI
itab_zycbe033-d_valut = itab_zycbe033-budat.
itab_zycbe033-c_valut = itab_zycbe033-budat.
* << Fim da exclusão
READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic
gsberf = itab_zycbt006-gsberf.
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
* >> Início da exclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'V_TXTINF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'NRINVOIC'.
itab_zycbe033-d_sgtxt = itab_zycbt017-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'NREMB'.
itab_zycbe033-d_sgtxt = itab_zycbt017-nremb.
ELSEIF itab_zyglt321-cpocb = 'OBSERV'.
itab_zycbe033-d_sgtxt = itab_zycbt017-observ.
ELSEIF itab_zyglt321-cpocb = 'V_TXTINF'.
* << Fim da inclusão
itab_zycbe033-d_sgtxt = v_txtinf.
itab_zycbe033-d_sgtxt = v_txtinf.
itab_zycbe033-augtx = v_txtinf.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
itab_zycbt006-ftxt IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_sgtxt = itab_zyglt321-descr.
itab_zycbe033-c_sgtxt = itab_zyglt321-descr.
itab_zycbe033-augtx = itab_zyglt321-descr.
ENDIF.
WHEN 'XBLNR'.
* >> Início da exclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'NRSEQ' OR
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'NRINVOIC'.
itab_zycbe033-xblnr = itab_zycbt017-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'NREMB'.
itab_zycbe033-xblnr = itab_zycbt017-nremb.
ELSEIF itab_zyglt321-cpocb = 'NRSEQ' OR
* << Fim da inclusão
itab_zyglt321-cpocb = 'NRSEQC'.
itab_zycbe033-xblnr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-xblnr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
* >> Início da exclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'DTBL'.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'DTINVOIC'.
itab_zycbe033-zfbdt = itab_zycbt017-dtinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTBL'.
* << Fim da inclusão
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM CLEARING_CLI
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
itab_zycbe033-zfbdt = itab_zycbt017-dtinvoic.
* << Fim da inclusão
ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.
itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'DTINVOIC'.
itab_zycbe033-d_valut = itab_zycbt017-dtinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
ENDIF.
WHEN 'ZUONR'.
* >> Início da exclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'NRCONTR'.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CLI
IF itab_zyglt321-cpocb = 'NRINVOIC'.
itab_zycbe033-d_zuonr = itab_zycbt017-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'NREMB'.
itab_zycbe033-d_zuonr = itab_zycbt017-nremb.
ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.
* << Fim da inclusão
itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_zuonr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZTERM'.
IF itab_zyglt321-cpocb = 'ZTERM'.
itab_zycbe033-zterm = itab_zycbt017-zterm.
...
...
itab_zycbt036-dtdocto = itab_zycbt030-budat_t.
ENDIF.
APPEND itab_zycbt036.
IF itab_zycbt034 IS INITIAL.
PERFORM unlock_cliente USING itab_zycbt006-kunnr
itab_zycbe033-bukrs.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_S'
EXPORTING
v_modo = v_modo_bi
v_ult = 'X'
* >> Início da inclusão: FORM CLEARING_CLI
v_flag_est_arb = 'X'
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
PERFORM enqueue_cliente USING itab_zycbe033-bukrs
...