Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Associação Ordem de Pagamento
Data/Hora da Publicação: 27/04/2011 00:00:00
Data/Hora Última Alteração: 28/04/2011 14:14:12
Descrição da Nota: ASSOCIAÇÃO DE ORDENS DE PAGAMENTO, CRIAÇÃO DE EXIT
Sintoma
Criação de 2 Pontos de Exit no Programa /pws/sapmzycb035. Ponto de Exit para Criação da Associação e
para Estorno.
Solução
Criado os 2 Pontos de Exit no programa /pws/sapmzycb035, ponto de Exit para Criação da Associação e
para Estorno. Criado os Pontos ASOP003 e ASOP004.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11123 Data: 27/04/2011 Hora: 16:25:28
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11123
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00068
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
10858 - 00001 - 8.0 - 00006 - ASSOCIAÇÃO DE ORDEM DE PAGAMENTO - PONTO DE EXIT
10887 - 00002 - 8.0 - 00006 - ASSOCIAÇAO DE ORDENS DE PAGAMENTO - PONTO DE EXIT
----------------------------------------------------------------------------------------------------
ASSOCIAÇÃO DE ORDENS DE PAGAMENTO, CRIAÇÃO DE EXIT
----------------------------------------------------------------------------------------------------
Palavras Chave:
ASSOCIAÇÃO DE ORDENS DE PAGAMENTO, EXIT
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB035F02
REPS /PWS/MZYCB035F03
REPS /PWS/MZYCB035T01
REPS /PWS/MZYCB035TOP
REPS /PWS/MZYCB035X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035F02
...
inconsistent_range_severity = 2
OTHERS = 3.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDFORM.
FORM bloqueia_contas.
CONSTANTS
c_conta_cliente TYPE koart VALUE 'D'.
DATA:
* >> Início da exclusão: FORM BLOQUEIA_CONTAS
itab_zycbe224 TYPE t_t_zycbe224,
* << Fim da exclusão
wa_zycbe224 LIKE LINE OF itab_zycbe224,
v_saldo LIKE /pws/zycbe227a-vlsltrans.
FIELD-SYMBOLS:
<fs_zycbe224> LIKE LINE OF itab_zycbe224,
<fs_zycbt209> LIKE LINE OF itab_zycbt209,
<fs_zycbt226> LIKE LINE OF itab_zycbt226,
<fs_zycbt228a> LIKE LINE OF itab_zycbt228a.
* >> Início da inclusão: FORM BLOQUEIA_CONTAS
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
wa_zycbe224-mandt = sy-mandt.
wa_zycbe224-modo = c_modo_bloqueio.
IF wa_controle-processo = c_flag_embarque.
v_saldo = /pws/zycbe227a-vlsltrans.
LOOP AT itab_zycbt209 ASSIGNING <fs_zycbt209>.
CHECK <fs_zycbt209>-saldo > 0.
PERFORM verifica_conta_itab_zycbe224
USING
<fs_zycbt209>-bukrs
<fs_zycbt209>-koart
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035F03
...
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_gjahr) type t_s_zycbt228a-gjahr
value(p_parid) type t_s_zycbt228a-parid
changing
p_saldo type t_s_zycbt227-vlr_associado.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_DESMEMB_LIQ_AND
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_saldo type t_s_zycbt209-saldo,
v_zuonr type /pws/zycbt036-zuonr.
field-symbols:
<fs_zycbt209> like line of itab_zycbt209,
<fs_belnr> type /pws/zycbe033-belnr,
<fs_bldat> type d,
<fs_budat> type d.
* >> Início da inclusão: FORM EFETUA_DESMEMB_LIQ_AND
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
check wa_controle-processo = c_flag_embarque.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
/pws/zycbe227a-budat to <fs_budat>.
loop at itab_zycbt209 assigning <fs_zycbt209>.
check <fs_zycbt209>-saldo > 0.
if <fs_zycbt209>-saldo > p_saldo.
v_saldo = p_saldo.
else.
v_saldo = <fs_zycbt209>-saldo.
endif.
...
...
form efetua_desmemb_cliente
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_gjahr) type t_s_zycbt228a-gjahr
value(p_saldo) type t_s_zycbt227-vlr_associado
value(p_parid) type t_s_zycbt228a-parid.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_DESMEMB_CLIENTE
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbt209 like line of itab_zycbt209,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_zuonr type /pws/zycbt036-zuonr,
v_data type d,
v_mensagem type /pws/zycbt032-msg.
field-symbols:
<fs_belnr> type /pws/zycbe033-belnr,
<fs_bldat> type d,
<fs_budat> type d,
<fs_codmod> like c_codmod,
<fs_ktosl> type /pws/zyglt321-ktosl,
<fs_codeven> type /pws/zyglt321-codeven.
* >> Início da inclusão: FORM EFETUA_DESMEMB_CLIENTE
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
if wa_controle-processo = c_flag_embarque.
concatenate /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf
/pws/zycbe227a-gsberf into v_cpochv.
concatenate /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf
/pws/zycbe227a-gsberf 'A' into v_zuonr.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
/pws/zycbe227a-budat to <fs_budat>,
c_codmod to <fs_codmod>,
c_ktosl_cliente to <fs_ktosl>,
c_codeven_cliente to <fs_codeven>.
...
...
endloop.
free wa_mensagem.
endif.
endform.
form efetua_desmemb_ordem_pagto
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_DESMEMB_ORDEM_PAGTO
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbt209 like line of itab_zycbt209,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_zuonr type /pws/zycbt036-zuonr,
v_data type d.
field-symbols:
<fs_zycbt226> like line of itab_zycbt226,
<fs_belnr> type /pws/zycbe033-belnr,
<fs_bukrs> type /pws/zycbe033-bukrs,
<fs_bldat> type d,
<fs_budat> type d.
* >> Início da inclusão: FORM EFETUA_DESMEMB_ORDEM_PAGTO
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
if wa_controle-processo = c_flag_embarque.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
/pws/zycbe227a-budat to <fs_budat>,
/pws/zycbe227a-bukrs to <fs_bukrs>.
else.
assign: /pws/zycbe229a-dtassoc to <fs_bldat>,
/pws/zycbe229a-budat to <fs_budat>,
/pws/zycbe229a-bukrs to <fs_bukrs>.
endif.
v_cpochv = p_wa_zycbt228a-nrseq.
...
...
p_wa_zycbt228a-vlr_associado
wa_zycbt209
p_wa_zycbt228a-nrseq
changing itab_zycbe224.
endif.
perform preenche_zycbe036_desmemb
using
v_cpochv
p_wa_zycbt228a-vlr_associado
v_zuonr.
* >> Início da inclusão: FORM EFETUA_DESMEMB_ORDEM_PAGTO
perform executa_exit using 'ASOP003'.
* << Fim da inclusão
if itab_zycbt034 is initial.
perform executa_f30 using 'P' 'X' itab_zycbe224.
free itab_zycbe224.
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
perform verifica_contabilizacao
using
c_f30
c_zycbt228
v_cpochv
...
...
endloop.
free wa_mensagem.
endif.
endform.
form efetua_comp_associacao
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_COMP_ASSOCIACAO
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbt209 like line of itab_zycbt209,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_data type d.
field-symbols:
<fs_bldat> type d,
<fs_budat> type d,
<fs_codmod> like c_codmod,
<fs_ktosl> type /pws/zyglt321-ktosl,
<fs_codeven> type /pws/zyglt321-codeven.
* >> Início da inclusão: FORM EFETUA_COMP_ASSOCIACAO
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
if wa_controle-processo = c_flag_embarque.
concatenate /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf
/pws/zycbe227a-gsberf into v_cpochv.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
/pws/zycbe227a-budat to <fs_budat>,
c_codmod to <fs_codmod>,
c_ktosl_associa to <fs_ktosl>.
if sy-tcode+13(3) ne 'SML'.
assign: c_codeven_associa to <fs_codeven>.
elseif sy-tcode+13(3) eq 'SML'.
...
...
endform.
form efetua_estorno_associacao
using
value(p_nrseq) type t_s_zycbt228a-nrseq
value(p_belnr) type t_s_zycbt228a-belnr.
constants:
c_fbra type /pws/zycbt032-tcode value 'FBRA',
c_fb08 type /pws/zycbt032-tcode value 'FB08',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_ESTORNO_ASSOCIACAO
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv.
field-symbols:
<fs_bldat> type d,
<fs_budat> type d.
* >> Início da inclusão: FORM EFETUA_ESTORNO_ASSOCIACAO
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
if wa_controle-processo = c_flag_embarque.
...
...
endif.
endif.
endform.
form efetua_clearing_ordem_pagto
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228',
c_koart type t_s_zycbe224-koart value 'D'.
data:
* >> Início da exclusão: FORM EFETUA_CLEARING_ORDEM_PAGTO
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbe224 like line of itab_zycbe224,
wa_zycbt209 like line of itab_zycbt209,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_zuonr type /pws/zycbt036-zuonr,
v_vlr_associado type t_s_zycbt228-vlr_associado.
field-symbols:
<fs_zycbt226> like line of itab_zycbt226,
<fs_zycbt228> like line of itab_zycbt228,
<fs_zycbt230> like line of itab_zycbt230,
<fs_bukrs> type /pws/zycbe227a-bukrs,
<fs_bldat> type d,
<fs_budat> type d,
<fs_belnr> type belnr_d,
<fs_dtdocto> type d.
* >> Início da inclusão: FORM EFETUA_CLEARING_ORDEM_PAGTO
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
check not p_wa_zycbt228a is initial.
if wa_controle-processo = c_flag_embarque.
read table itab_zycbt228
with key
nrseq = p_wa_zycbt228a-nrseq
tp_docto = c_tp_desm_ordem
assigning <fs_zycbt228>.
check <fs_zycbt228> is assigned.
v_vlr_associado = <fs_zycbt228>-vlr_associado.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
...
...
<fs_dtdocto>
v_vlr_associado.
endif.
if itab_zycbt034 is initial.
wa_zycbe224-mandt = sy-mandt.
wa_zycbe224-modo = c_modo_bloqueio.
wa_zycbe224-bukrs = <fs_bukrs>.
wa_zycbe224-koart = c_koart.
wa_zycbe224-saknr = <fs_zycbt226>-kunag.
append wa_zycbe224 to itab_zycbe224.
* >> Início da inclusão: FORM EFETUA_CLEARING_ORDEM_PAGTO
perform executa_exit using 'ASOP004'.
* << Fim da inclusão
perform executa_f30 using 'C' 'X' itab_zycbe224.
free itab_zycbe224.
wa_mensagem-bukrs = <fs_bukrs>.
wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.
perform verifica_contabilizacao
using
c_f30
c_zycbt228
v_cpochv
'Clearing do cliente RZE (Ordem de pagamento)'(m44)
...
...
free wa_mensagem.
endif.
endform.
form efetua_clearing_cliente
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228',
c_koart type t_s_zycbe224-koart value 'D'.
data:
* >> Início da exclusão: FORM EFETUA_CLEARING_CLIENTE
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbe224 like line of itab_zycbe224,
wa_zycbt209 like line of itab_zycbt209,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_zuonr type /pws/zycbt036-zuonr,
v_vlr_associado type t_s_zycbt228a-vlr_associado,
v_mensagem type /pws/zycbt032-msg.
field-symbols:
<fs_zycbt228> like line of itab_zycbt228,
<fs_zycbt230> like line of itab_zycbt230,
...
...
<fs_ktosl> type /pws/zyglt321-ktosl,
<fs_codeven> type /pws/zyglt321-codeven,
<fs_bldat> type d,
<fs_budat> type d,
<fs_bukrs> type /pws/zycbe227a-bukrs,
<fs_kunnr> type /pws/zycbe227a-kunag,
<fs_belnr_orig> type belnr_d,
<fs_dtdocto_orig> type d,
<fs_belnr_proc> type belnr_d,
<fs_dtdocto_proc> type d.
* >> Início da inclusão: FORM EFETUA_CLEARING_CLIENTE
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
check not p_wa_zycbt228a is initial.
if wa_controle-processo = c_flag_embarque.
read table itab_zycbt228
with key
nrinvoic = /pws/zycbe227a-nrinvoic
nrparcf = /pws/zycbe227a-nrparcf
gsberf = /pws/zycbe227a-gsberf
nrseq = p_wa_zycbt228a-nrseq
tp_docto = c_tp_desm_cliente
assigning <fs_zycbt228>.
...
...
endloop.
free wa_mensagem.
endif.
endform.
form efetua_clearing_liq_and
using value(p_wa_zycbt228a) like line of itab_zycbt228a.
constants:
c_f30 type /pws/zycbt032-tcode value 'F-30',
c_zycbt228 type /pws/zycbt032-tabela value 'ZYCBT228'.
data:
* >> Início da exclusão: FORM EFETUA_CLEARING_LIQ_AND
itab_zycbe224 type t_t_zycbe224,
* << Fim da exclusão
wa_zycbe224 like line of itab_zycbe224,
wa_mensagem like line of itab_mensagem,
v_cpochv type /pws/zycbe033-cpochv,
v_zuonr type /pws/zycbt036-zuonr.
field-symbols:
<fs_zycbt209> like line of itab_zycbt209,
<fs_zycbt228> like line of itab_zycbt228,
<fs_bldat> type d,
<fs_budat> type d.
* >> Início da inclusão: FORM EFETUA_CLEARING_LIQ_AND
clear: itab_zycbe224.
refresh: itab_zycbe224.
* << Fim da inclusão
check wa_controle-processo = c_flag_embarque.
check not p_wa_zycbt228a is initial.
assign: /pws/zycbe227a-dtassoc to <fs_bldat>,
/pws/zycbe227a-budat to <fs_budat>.
v_cpochv = p_wa_zycbt228a-nrseq.
loop at itab_zycbt209 assigning <fs_zycbt209>.
read table itab_zycbt228
with key
nrinvoic = <fs_zycbt209>-nrinvoic
nrparcf = <fs_zycbt209>-nrparcf
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035T01
...
DATA:
itab_kna1 TYPE t_t_kna1,
itab_j_1bbranch TYPE t_t_j_1bbranch,
itab_adrc TYPE t_t_adrc,
itab_t001w TYPE t_t_t001w,
itab_t001 TYPE t_t_t001,
itab_zycbt007 TYPE t_t_zycbt007,
itab_zycbt089 TYPE t_t_zycbt089,
itab_zycbt009 TYPE t_t_zycbt009,
itab_zycbt011 TYPE t_t_zycbt011,
* >> Início da exclusão:
itab_zycbt032 TYPE t_t_zycbt032,
itab_zycbe033 TYPE t_t_zycbe033,
itab_zycbt034 TYPE t_t_zycbt034,
itab_zycbt036 TYPE t_t_zycbt036,
itab_partidas TYPE t_t_zycbe033,
* << Fim da exclusão
itab_zycbt039 TYPE t_t_zycbt039,
itab_zycet048 TYPE t_t_zycet048,
itab_zycit054 TYPE t_t_zycit054,
itab_zyglt100 TYPE t_t_zyglt100,
itab_zyglt321 TYPE t_t_zyglt321.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035TOP
program /pws/sapmzycb035 message-id /pws/zycbm.
type-pools:
shlp.
include:
/pws/zygli100,
/pws/zygli101,
/pws/mzycb035t01,
* >> Início da exclusão:
/pws/mzycb035t02.
* << Fim da exclusão
* >> Início da inclusão:
/pws/mzycb035t02,
/pws/mzycb035x01.
* << Fim da inclusão
constants:
c_codmod(1) type c value 'E',
c_codmod_remessa(1) type c value 'F',
c_programa type sy-cprog value '/PWS/SAPMZYCB035',
c_embarque type feld-name value 'EMBARQUE',
c_remessa type feld-name value 'REMESSA',
c_flag_embarque(1) type c value 'E',
c_flag_remessa(1) type c value 'R',
c_transacao_a type sy-tcode value '/PWS/ZYCB035_A',
c_transacao_c type sy-tcode value '/PWS/ZYCB035_C',
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035X01
* >> Início da inclusão:
data: begin of common part c.
data:
itab_zycbt032 type t_t_zycbt032,
itab_zycbe033 type t_t_zycbe033,
itab_zycbt034 type t_t_zycbt034,
itab_zycbt036 type t_t_zycbt036,
itab_partidas type t_t_zycbe033,
itab_zycbe224 type t_t_zycbe224.
data: end of common part.
* << Fim da inclusão