Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Agrupamento de Câmbio
Data/Hora da Publicação: 28/08/2007 00:00:00
Data/Hora Última Alteração: 10/03/2010 16:53:58
Descrição da Nota: EXPORTAÇÃO AGRUPAMENTO DE FATURAS
Sintoma
No agrupamento de faturas, ao selecionar a fatura pelo match code o programa abre a relação de
faturas, porém, ao seleciona-la a table controll não está listando a fatura selecionada.
Solução
Alterado o programa para chamar o match code não mais standard e sim o standard do produto, onde o
usuário poderá escolher mais de um item trazendo para tela.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04546 Data: 28/08/2007 Hora: 11:02:28
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04546
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00010
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
EXPORTAÇÃO AGRUPAMENTO DE FATURAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO, AGRUPAMENTO, FATURAS
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCB010 0100
REPS /PWS/MZYCB010F01
REPS /PWS/MZYCB010I01
REPS /PWS/MZYCB010TOP
SHLP /PWS/ZYCBA068
TABD /PWS/ZYCBE005
----------------------------------------------------------------------------------------------------
Modificações efetuadas em SHLP /PWS/ZYCBA068
Entrar na SE11 "Ajuda pesquisa", chamando o objeto /PWS/ZYCBA068, apagar este objeto e fazer uma
copia do objeto /PWS/ZYCBA008 com o nome de /PWS/ZYCBA068.
Depois entrar na Estrutura /PWS/ZYCBE005 tirar a ajuda de pesquisa /PWS/ZYCBA008 e passar para a
ajuda de pesquisa /PWS/ZYCBA068, como segue logo abaixo:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBE005
MODIFICAR ESTRUTURA: /PWS/ZYCBE005
DESCRIÇÃO BREVE: CB - Estrutura para Vinculações
COMPONENTES NOVOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
NRINVOIC /PWS/ZYCBL084 /PWS/ZYCBT017 /PWS/ZYCBA068
COMPONENTES EXCLUÍDOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
NRINVOIC /PWS/ZYCBL084 /PWS/ZYCBT017 /PWS/ZYCBA008
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCB010 0100
...
module verifica_saldo.
module altera_itab_zycbt005.
endloop.
module:
calcula_juros,
verifica_fatura,
calcula_montante,
user_command_0100,
user_command_exit at exit-command.
* >> Início da inclusão:PROCESS AFTER INPUT
process on value-request.
field /pws/zycbe005-nrinvoic module get_invoice.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB010F01
...
ENDIF.
APPEND 'endform. ' TO t_prog.
GENERATE SUBROUTINE POOL t_prog NAME w_prog.
IF sy-subrc = 0.
PERFORM log IN PROGRAM (w_prog) USING p_dados
p_tabela
CHANGING p_wa_log
IF FOUND.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM adiciona_linha_tc
USING
value(p_fieldname) TYPE dynpread-fieldname
value(p_fieldvalue)
value(p_stepl) TYPE dynpread-stepl
CHANGING
p_itab_dynpread TYPE t_itab_dynpread.
DATA:
wa_dynpread TYPE dynpread.
wa_dynpread-fieldname = p_fieldname.
wa_dynpread-fieldvalue = p_fieldvalue.
wa_dynpread-stepl = p_stepl.
APPEND wa_dynpread TO p_itab_dynpread.
ENDFORM.
FORM transfere_campos
USING
p_itab_zycbt017_chave TYPE t_itab_zycbt017_chave
CHANGING
p_itab_dynpread TYPE t_itab_dynpread.
TYPES:
BEGIN OF t_zycbt017,
nrinvoic TYPE /pws/zycbt017-nrinvoic,
nrparcf TYPE /pws/zycbt017-nrparcf,
gsberf TYPE /pws/zycbt017-gsberf,
kunag TYPE /pws/zycbt017-kunag,
dtvencto TYPE /pws/zycbt017-dtvencto,
waers TYPE /pws/zycbt017-waers,
codmod TYPE /pws/zycbt017-codmod,
prazo TYPE /pws/zycbt017-prazo,
werks TYPE /pws/zycbt017-werks,
END OF t_zycbt017,
t_itab_zycbt017 TYPE SORTED TABLE OF t_zycbt017
WITH UNIQUE KEY nrinvoic nrparcf gsberf.
DATA:
itab_zycbt017 TYPE t_itab_zycbt017,
v_data_aux(10) TYPE c,
v_index TYPE i VALUE 0.
FIELD-SYMBOLS:
<fs_zycbt017> TYPE t_zycbt017.
CHECK NOT p_itab_zycbt017_chave IS INITIAL.
SELECT
nrinvoic nrparcf gsberf kunag dtvencto waers
codmod prazo werks
FROM /pws/zycbt017
INTO TABLE itab_zycbt017
FOR ALL ENTRIES IN p_itab_zycbt017_chave
WHERE
nrinvoic EQ p_itab_zycbt017_chave-nrinvoic AND
nrparcf EQ p_itab_zycbt017_chave-nrparcf AND
gsberf EQ p_itab_zycbt017_chave-gsberf.
LOOP AT itab_zycbt017
ASSIGNING <fs_zycbt017>.
CLEAR itab_zycbt005.
READ TABLE itab_zycbt005
WITH KEY
nrinvoic = <fs_zycbt017>-nrinvoic
nrparcf = <fs_zycbt017>-nrparcf
gsberf = <fs_zycbt017>-gsberf
TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
MESSAGE i061 WITH text-059 <fs_zycbt017>-nrinvoic.
CONTINUE.
ENDIF.
v_index = v_index + 1.
IF v_index GT 1.
v_line = v_line + 1.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_TRATA_DATA'
EXPORTING
i_trdata = <fs_zycbt017>-dtvencto
IMPORTING
e_trdata = v_data_aux
EXCEPTIONS
v_dtbranco = 1.
PERFORM adiciona_linha_tc:
USING
'/PWS/ZYCBE005-NRINVOIC' <fs_zycbt017>-nrinvoic v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-NRPARCF' <fs_zycbt017>-nrparcf v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-GSBERF' <fs_zycbt017>-gsberf v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-KUNNR' <fs_zycbt017>-kunag v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-DTVENCTO' v_data_aux v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-WAERS' <fs_zycbt017>-waers v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE005-PRAZO' <fs_zycbt017>-prazo v_line
CHANGING
p_itab_dynpread,
USING
'/PWS/ZYCBE209-WERKS' <fs_zycbt017>-werks v_line
CHANGING
p_itab_dynpread.
itab_zycbt005-nrinvoic = <fs_zycbt017>-nrinvoic.
itab_zycbt005-nrparcf = <fs_zycbt017>-nrparcf.
itab_zycbt005-gsberf = <fs_zycbt017>-gsberf.
itab_zycbt005-kunnr = <fs_zycbt017>-kunag.
itab_zycbt005-dtvencto = <fs_zycbt017>-dtvencto.
itab_zycbt005-waers = <fs_zycbt017>-waers.
itab_zycbt005-werks = <fs_zycbt017>-werks.
APPEND itab_zycbt005.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB010I01
...
MODULE user_command_0051 INPUT.
CASE ok_code.
WHEN 'BC'.
CALL METHOD html_control->go_back.
CLEAR ok_code.
WHEN 'AVAN'.
CALL METHOD html_control->go_forward.
CLEAR ok_code.
ENDCASE.
ENDMODULE.
* >> Início da inclusão:
MODULE get_invoice INPUT.
TYPES: BEGIN OF shlp_intdescr_t,
issimple LIKE dd30v-issimple,
hotkey LIKE dd30v-hotkey,
selmtype LIKE dd30v-selmtype,
selmethod LIKE dd30v-selmethod,
texttab LIKE dd30v-texttab,
selmexit LIKE dd30v-selmexit,
dialogtype LIKE dd30v-dialogtype,
ddlanguage LIKE dd30v-ddlanguage,
ddtext LIKE dd30v-ddtext,
dialoginfo(1) TYPE c,
f4state(1) TYPE c,
tabname LIKE dd02v-tabname,
fieldname LIKE dd03p-fieldname,
title LIKE dd04v-ddtext,
history,
handle TYPE sy-tabix,
END OF shlp_intdescr_t.
TYPES: BEGIN OF shlp_descr_t,
shlpname LIKE dd30v-shlpname,
shlptype LIKE ddshdescr-shlptype,
intdescr TYPE shlp_intdescr_t,
interface LIKE ddshiface OCCURS 0,
fielddescr LIKE dfies OCCURS 0,
fieldprop LIKE ddshfprop OCCURS 0,
selopt LIKE ddshselopt OCCURS 0,
END OF shlp_descr_t.
DATA:
itab_zycbt017_chave TYPE t_itab_zycbt017_chave,
wa_zycbt017_chave TYPE t_zycbt017_chave,
v_pos1 TYPE i,
v_pos2 TYPE i,
v_pos3 TYPE i.
DATA: BEGIN OF itab_result OCCURS 0.
INCLUDE STRUCTURE ddshretval.
DATA: END OF itab_result.
DATA: BEGIN OF record_tab OCCURS 0.
INCLUDE STRUCTURE seahlpres.
DATA: END OF record_tab.
DATA: v_line2 LIKE sy-lilli,
l_display(1) TYPE c,
shlp_struc LIKE /pws/zycbv204,
shlp_curr TYPE shlp_descr_t,
tdynpread LIKE dynpread OCCURS 0 WITH HEADER LINE.
CLEAR tdynpread.
REFRESH tdynpread.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
povstepl = v_line.
tdynpread-fieldname = '/PWS/ZYCBE005-NRINVOIC'.
tdynpread-stepl = v_line.
APPEND tdynpread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = '/PWS/SAPMZYCB010'
dynumb = '0100'
TABLES
dynpfields = tdynpread.
IF sy-subrc EQ 0 AND NOT
tdynpread-fieldvalue IS INITIAL.
EXIT.
ENDIF.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = '/PWS/ZYCBE005'
fieldname = 'NRINVOIC'
searchhelp = '/PWS/ZYCBA068'
shlpparam = 'NRINVOIC'
multiple_choice = 'X'
display = l_display
TABLES
return_tab = itab_result
EXCEPTIONS
OTHERS = 5.
CHECK sy-subrc EQ 0 AND l_display EQ space.
IMPORT record_tab FROM MEMORY ID 'mcx_record_tab'.
IMPORT shlp_curr FROM MEMORY ID 'mcx_shlp_curr'.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
povstepl = v_line.
DO v_line TIMES.
CLEAR tdynpread.
REFRESH tdynpread.
tdynpread-fieldname = '/PWS/ZYCBE005-NRINVOIC'.
tdynpread-stepl = v_line - 1.
APPEND tdynpread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = '/PWS/SAPMZYCB010'
dynumb = '0100'
TABLES
dynpfields = tdynpread.
IF sy-subrc EQ 0 AND
tdynpread-fieldvalue IS INITIAL AND
tdynpread-stepl GT 0.
v_line = tdynpread-stepl.
ELSEIF sy-subrc EQ 0 AND
NOT tdynpread-fieldvalue IS INITIAL.
EXIT.
ENDIF.
ENDDO.
CLEAR tdynpread.
REFRESH tdynpread.
READ TABLE record_tab INDEX 1.
IF sy-subrc EQ 0.
REFRESH itab_zycbt017_chave.
SELECT SINGLE *
FROM /pws/zycbt017
WHERE
nrinvoic EQ record_tab-string+03(15) AND
nrparcf EQ record_tab-string+31(02) AND
gsberf EQ record_tab-string+27(04).
IF sy-subrc EQ 0.
v_pos1 = 3.
v_pos2 = 31.
v_pos3 = 27.
ELSE.
v_pos1 = 0.
v_pos2 = 28.
v_pos3 = 24.
ENDIF.
LOOP AT record_tab.
wa_zycbt017_chave-nrinvoic = record_tab+v_pos1(15).
wa_zycbt017_chave-nrparcf = record_tab+v_pos2(02).
wa_zycbt017_chave-gsberf = record_tab+v_pos3(04).
INSERT wa_zycbt017_chave INTO TABLE itab_zycbt017_chave.
ENDLOOP.
PERFORM transfere_campos
USING
itab_zycbt017_chave
CHANGING
tdynpread[].
ENDIF.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = '0100'
TABLES
dynpfields = tdynpread
EXCEPTIONS
OTHERS = 8.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB010TOP
PROGRAM /pws/sapmzycb010 MESSAGE-ID /pws/zycbm.
* >> Início da inclusão:
TYPES:
BEGIN OF t_zycbt017_chave,
nrinvoic TYPE /pws/zycbt017-nrinvoic,
nrparcf TYPE /pws/zycbt017-nrparcf,
gsberf TYPE /pws/zycbt017-gsberf,
END OF t_zycbt017_chave,
t_itab_zycbt017_chave TYPE SORTED TABLE OF t_zycbt017_chave
WITH UNIQUE KEY nrinvoic nrparcf gsberf,
t_itab_dynpread TYPE TABLE OF dynpread.
* << Fim da inclusão
INCLUDE /pws/zygli100.
INCLUDE /pws/mzycb010x01.
DATA: itab_zyglt100 LIKE /pws/zyglt100 OCCURS 0 WITH HEADER LINE.
INCLUDE /pws/zygli101.
DATA v_tela_help LIKE sy-dynnr VALUE '0052'.
TABLES:
/pws/zycbt004,
/pws/zycbt007,
/pws/zycbt016,
/pws/zycbt017,
...
...
v_tot_aux LIKE /pws/zycbe001-vlme,
v_tot_vlme LIKE /pws/zycbe001-vlme,
v_vlslf(1) TYPE c,
v_initial(1) TYPE c,
v_nrseqc_ant LIKE /pws/zycbe001-nrseqc,
v_fatura(1),
v_txtinfaux(50) TYPE c,
v_totalvlslf(22) TYPE c,
tpcontr LIKE /pws/zycbt016-txtdesc,
v_syrepid LIKE sy-repid,
* >> Início da exclusão:
v_status.
* << Fim da exclusão
* >> Início da inclusão:
v_status,
v_line TYPE i.
* << Fim da inclusão
CONTROLS: tc_faturas TYPE TABLEVIEW USING SCREEN '0100'.
DATA: wa_cols TYPE cxtab_column.
DATA: v_campo(20),
v_valor(20),
v_index_sl LIKE sy-tabix,
v_vljur_acc LIKE /pws/zycbt005-vljur,
v_vljur_ace LIKE /pws/zycbt005-vljur.
SELECTION-SCREEN BEGIN OF SCREEN 201 TITLE text-058.
SELECT-OPTIONS: s_nrinv FOR /pws/zycbe017-nrinvoic MODIF ID fat
MATCHCODE OBJECT /pws/zycba168,
...