Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: SML - Associação Ordem Pagamento
Data/Hora da Publicação: 06/04/2011 00:00:00
Data/Hora Última Alteração: 06/04/2011 15:00:57
Descrição da Nota: SISTEMA DE PAGAMENTOS EM MOEDA LOCAL
Sintoma
O sistema exibia no matchcode as faturas criadas em moedas diferentes da moeda local da empresa
Solução
Foi incluída no matchcode um tratamento para exibir apenas as faturas criadas utilizando
a moeda nacional da empresa
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11070 Data: 06/04/2011 Hora: 14:29:54
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11070
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00065
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote Descrição Breve
04061 - 00001 - 7.0 - 00002 - ASSOCIAÇÃO FATURAS X ORDEM PAGAMENTO - AJUDA DE PESQUISA
----------------------------------------------------------------------------------------------------
Texto Rápido:
SISTEMA DE PAGAMENTOS EM MOEDA LOCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
SISTEMA DE PAGAMENTOS EM MOEDA LOCAL - SELEÇÃO FATURAS
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCBA276
FUNC /PWS/ZYCBA278
PARA /PWS/ZYCBP035
REPS /PWS/MZYCB035F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCBA276
...
gsberf TYPE /pws/zycbt209-gsberf,
saldo TYPE /pws/zycbt209-saldo,
END OF t_s_liq_and,
t_t_liq_and TYPE SORTED TABLE OF t_s_liq_and
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf,
BEGIN OF t_s_invoice,
nrinvoic TYPE /pws/zycbv216-nrinvoic,
nrparcf TYPE /pws/zycbv216-nrparcf,
gsberf TYPE /pws/zycbv216-gsberf,
vlsltrans TYPE /pws/zycbv216-vlsltrans,
* >> Início da inclusão: FUNCTION /PWS/ZYCBA276
bukrs TYPE /pws/zycbv216-bukrs,
waers TYPE /pws/zycbv216-waers,
* << Fim da inclusão
END OF t_s_invoice,
t_t_invoice TYPE STANDARD TABLE OF t_s_invoice
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf.
DATA:
itab_zycbt209 TYPE t_t_liq_and,
itab_liq_and TYPE t_t_liq_and,
itab_invoice TYPE t_t_invoice,
v_fieldname TYPE dfies-lfieldname,
* >> Início da exclusão: FUNCTION /PWS/ZYCBA276
v_tabix LIKE sy-tabix.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA276
v_tabix LIKE sy-tabix,
itab_zycbt007 TYPE TABLE OF /pws/zycbt007,
v_tp_op(3) TYPE c.
CONSTANTS: c_vme(3) TYPE c VALUE 'VME',
c_sml(3) TYPE c VALUE 'SML'.
* << Fim da inclusão
FIELD-SYMBOLS:
<fs_shlp> LIKE LINE OF shlp_tab,
<fs_fielddescr> LIKE LINE OF shlp_tab-fielddescr,
<fs_zycbt209> LIKE LINE OF itab_zycbt209,
* >> Início da exclusão: FUNCTION /PWS/ZYCBA276
<fs_invoice> LIKE LINE OF itab_invoice.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA276
<fs_invoice> LIKE LINE OF itab_invoice,
<fs_zycbt007> LIKE LINE OF itab_zycbt007.
* << Fim da inclusão
CLEAR callcontrol-maxrecords.
IF callcontrol-step = 'DISP'.
READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.
CHECK <fs_shlp> IS ASSIGNED.
LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.
CHECK: <fs_fielddescr>-fieldname = 'NRINVOIC' OR
<fs_fielddescr>-fieldname = 'NRPARCF' OR
<fs_fielddescr>-fieldname = 'GSBERF' OR
* >> Início da exclusão: FUNCTION /PWS/ZYCBA276
<fs_fielddescr>-fieldname = 'VLSLTRANS'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA276
<fs_fielddescr>-fieldname = 'VLSLTRANS' OR
<fs_fielddescr>-fieldname = 'BUKRS' OR
<fs_fielddescr>-fieldname = 'WAERS'.
* << Fim da inclusão
v_fieldname = <fs_fielddescr>-fieldname.
CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
parameter = <fs_fielddescr>-fieldname
fieldname = v_fieldname
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
results_tab = itab_invoice
CHANGING
...
...
READ TABLE itab_liq_and
WITH TABLE KEY
nrinvoic = <fs_invoice>-nrinvoic
nrparcf = <fs_invoice>-nrparcf
gsberf = <fs_invoice>-gsberf
TRANSPORTING NO FIELDS.
CHECK sy-subrc <> 0.
DELETE record_tab INDEX v_tabix.
DELETE itab_invoice.
ENDLOOP.
* >> Início da inclusão: FUNCTION /PWS/ZYCBA276
IF NOT itab_invoice[] IS INITIAL.
SELECT * FROM /pws/zycbt007
INTO TABLE itab_zycbt007
FOR ALL ENTRIES IN itab_invoice
WHERE bukrs = itab_invoice-bukrs OR
bukrs = ' '.
GET PARAMETER ID '/PWS/ZYCBP035' FIELD v_tp_op.
LOOP AT itab_invoice ASSIGNING <fs_invoice>.
v_tabix = sy-tabix.
READ TABLE itab_zycbt007 ASSIGNING <fs_zycbt007>
WITH KEY bukrs = <fs_invoice>-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycbt007 ASSIGNING <fs_zycbt007>
WITH KEY bukrs = ' '.
ENDIF.
IF <fs_zycbt007> IS ASSIGNED.
IF v_tp_op EQ c_vme.
IF <fs_invoice>-waers EQ <fs_zycbt007>-waersb.
DELETE record_tab INDEX v_tabix.
DELETE itab_invoice.
ENDIF.
ELSEIF v_tp_op EQ c_sml.
IF <fs_invoice>-waers NE <fs_zycbt007>-waersb.
DELETE record_tab INDEX v_tabix.
DELETE itab_invoice.
ENDIF.
ENDIF.
UNASSIGN <fs_zycbt007>.
ENDIF.
ENDLOOP.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCBA278
FUNCTION /pws/zycba278.
TYPE-POOLS:
shlp.
TYPES:
BEGIN OF t_s_invoice,
nrinvoic TYPE /pws/zycbv218-nrinvoic,
nrparcf TYPE /pws/zycbv218-nrparcf,
gsberf TYPE /pws/zycbv218-gsberf,
dtvencto TYPE /pws/zycbv218-dtvencto,
* >> Início da inclusão: FUNCTION /PWS/ZYCBA278
bukrs TYPE /pws/zycbv218-bukrs,
waers TYPE /pws/zycbv218-waers,
* << Fim da inclusão
END OF t_s_invoice,
t_t_invoice TYPE STANDARD TABLE OF t_s_invoice
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf.
DATA:
itab_invoice TYPE t_t_invoice,
wa_invoice LIKE LINE OF itab_invoice,
* >> Início da exclusão: FUNCTION /PWS/ZYCBA278
v_fieldname TYPE dfies-lfieldname.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA278
v_fieldname TYPE dfies-lfieldname,
v_tabix LIKE sy-tabix,
itab_zycbt007 TYPE TABLE OF /pws/zycbt007,
v_tp_op(3) TYPE c.
CONSTANTS: c_vme(3) TYPE c VALUE 'VME',
c_sml(3) TYPE c VALUE 'SML'.
* << Fim da inclusão
FIELD-SYMBOLS:
<fs_shlp> LIKE LINE OF shlp_tab,
<fs_fielddescr> LIKE LINE OF shlp_tab-fielddescr,
* >> Início da exclusão: FUNCTION /PWS/ZYCBA278
<fs_invoice> LIKE LINE OF itab_invoice.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA278
<fs_invoice> LIKE LINE OF itab_invoice,
<fs_zycbt007> LIKE LINE OF itab_zycbt007.
* << Fim da inclusão
IF callcontrol-step = 'DISP'.
READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.
CHECK <fs_shlp> IS ASSIGNED.
LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.
CHECK: <fs_fielddescr>-fieldname = 'NRINVOIC' OR
<fs_fielddescr>-fieldname = 'NRPARCF' OR
<fs_fielddescr>-fieldname = 'GSBERF' OR
* >> Início da exclusão: FUNCTION /PWS/ZYCBA278
<fs_fielddescr>-fieldname = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCBA278
<fs_fielddescr>-fieldname = 'DTVENCTO' or
<fs_fielddescr>-fieldname = 'BUKRS' OR
<fs_fielddescr>-fieldname = 'WAERS'.
* << Fim da inclusão
v_fieldname = <fs_fielddescr>-fieldname.
CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
parameter = <fs_fielddescr>-fieldname
fieldname = v_fieldname
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
results_tab = itab_invoice
CHANGING
...
...
ENDLOOP.
UNASSIGN: <fs_shlp>, <fs_fielddescr>.
LOOP AT itab_invoice ASSIGNING <fs_invoice>.
IF <fs_invoice> = wa_invoice.
DELETE record_tab INDEX sy-tabix.
DELETE itab_invoice.
ELSE.
wa_invoice = <fs_invoice>.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FUNCTION /PWS/ZYCBA278
IF NOT itab_invoice[] IS INITIAL.
SELECT * FROM /pws/zycbt007
INTO TABLE itab_zycbt007
FOR ALL ENTRIES IN itab_invoice
WHERE bukrs = itab_invoice-bukrs OR
bukrs = ' '.
GET PARAMETER ID '/PWS/ZYCBP035' FIELD v_tp_op.
LOOP AT itab_invoice ASSIGNING <fs_invoice>.
v_tabix = sy-tabix.
READ TABLE itab_zycbt007 ASSIGNING <fs_zycbt007>
WITH KEY bukrs = <fs_invoice>-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycbt007 ASSIGNING <fs_zycbt007>
WITH KEY bukrs = ' '.
ENDIF.
IF <fs_zycbt007> IS ASSIGNED.
IF v_tp_op EQ c_vme.
IF <fs_invoice>-waers EQ <fs_zycbt007>-waersb.
DELETE record_tab INDEX v_tabix.
DELETE itab_invoice.
ENDIF.
ELSEIF v_tp_op EQ c_sml.
IF <fs_invoice>-waers NE <fs_zycbt007>-waersb.
DELETE record_tab INDEX v_tabix.
DELETE itab_invoice.
ENDIF.
ENDIF.
UNASSIGN <fs_zycbt007>.
ENDIF.
ENDLOOP.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em PARA /PWS/ZYCBP035
Criar o Parameter SET/GET /PWS/ZYCBP035 na classe de desenvolvimento /PWS/ZYCB
com a descrição 'Tp. Ordem Pagamento - VME/SML'
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB035F01
...
c_searchhelp_c type shlpname value '/PWS/ZYCBA276',
c_searchhelp_a type shlpname value '/PWS/ZYCBA278'. "#EC *
data:
v_searchhelp(14) type c,
wa_fatura type t_s_fatura,
record_tab type standard table of seahlpres,
itab_dynpread type t_t_dynpread,
v_pos1 type i,
v_pos2 type i,
v_pos3 type i.
* >> Início da inclusão: FORM AJUDA_FATURA
constants: c_vme(3) type c value 'VME',
c_sml(3) type c value 'SML'.
* << Fim da inclusão
field-symbols:
<fs_searchhelp> type shlpname,
<fs_record> like line of record_tab.
if sy-tcode = c_transacao_c
or sy-tcode = c_trans_sml_c.
v_searchhelp = 'C_SEARCHHELP_C'.
else.
v_searchhelp = 'C_SEARCHHELP_A'.
endif.
if not v_searchhelp is initial.
* >> Início da inclusão: FORM AJUDA_FATURA
IF sy-tcode = c_transacao_c OR
sy-tcode = c_transacao_a OR
sy-tcode = c_transacao_e.
SET PARAMETER ID '/PWS/ZYCBP035' FIELD c_vme.
ELSEIF sy-tcode = c_trans_sml_c OR
sy-tcode = c_trans_sml_a OR
sy-tcode = c_trans_sml_e.
SET PARAMETER ID '/PWS/ZYCBP035' FIELD c_sml.
ENDIF.
* << Fim da inclusão
assign (v_searchhelp) to <fs_searchhelp>.
call function 'F4IF_FIELD_VALUE_REQUEST'
exporting
tabname = c_tabname
fieldname = c_fieldname
searchhelp = <fs_searchhelp>
exceptions
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
...
...
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
others = 8.
if sy-subrc <> 0.
exit.
endif.
endif.
* >> Início da inclusão: FORM AJUDA_FATURA
SET PARAMETER ID '/PWS/ZYCBP035' FIELD space.
* << Fim da inclusão
endif.
endform.
form ajuda_remessa.
constants:
c_tabname type dfies-tabname value '/PWS/ZYCBE229A',
c_fieldname type dfies-fieldname value 'NRSEQ',
c_dynprofield type help_info-dynprofld
value '/PWS/ZYCBE229A-NRSEQ', "#EC *
c_searchhelp_c type shlpname value '/PWS/ZYCAA025',
c_searchhelp_a type shlpname value '/PWS/ZYCAA026'. "#EC *
...