* Ini : BAT-BI v 1.3 ----------------- 07.01.2005
define bi_create.
data: bi_tab like bdcdata occurs 0 with header line,
bi_err like BDCMSGCOLL occurs 0 with header line,
bi_mod(1) value 'N',
bi_upd(1) value 'S',
bi_wt100 like t100,
bi_tt like tline occurs 0 with header line,
bi_tout(255) occurs 0 with header line,
bi_amp type x value 80. "Truco
field-symbols: <bi_fs>.
end-of-definition.
define bi_clear.
clear: bi_tab, bi_err, bi_tt, bi_tout.
refresh: bi_tab, bi_err, bi_tt, bi_tout.
end-of-definition.
define bi_add.
clear bi_tab.
if not &1 is initial.
bi_tab-program = &2.
bi_tab-dynpro = &3.
bi_tab-dynbegin = 'X'.
if &1 ne 'X'.
append bi_tab.
clear bi_tab.
bi_tab-fnam = 'BDC_OKCODE'.
bi_tab-fval = &1.
endif.
else.
bi_tab-fnam = &2.
bi_tab-fval = &3.
endif.
append bi_tab.
end-of-definition.
define bi_call.
call transaction &1 using bi_tab mode bi_mod update bi_upd
messages into bi_err.
end-of-definition.
define bi_error.
refresh bi_tt.
describe table bi_err lines sy-pexpi.
check sy-pexpi gt 0.
sort bi_err.
delete adjacent duplicates from bi_err.
* Se subrimen los mensajes de tipo 'S' num: 402:"Campo tranf. a visu" y
* num: 432:"Sistema ha ejecutado c.
delete bi_err where msgtyp = 'S'
and ( msgnr = '402' or msgnr = '432'
or msgnr = '000' ).
loop at bi_err.
clear bi_wt100.
select single text into bi_wt100-text from t100
where sprsl = sy-langu and
arbgb = bi_err-msgid and
msgnr = bi_err-msgnr.
if sy-subrc = 0 and not bi_wt100-text is initial.
* d_len = strlen( bi_err-msgv1 ).
clear sy-pexpi.
translate bi_wt100-text using ' ~'.
split bi_wt100-text at bi_amp into table bi_tout.
clear bi_wt100-text.
loop at bi_tout.
check not bi_tout is initial.
add 1 to sy-pexpi.
if sy-pexpi < 5.
concatenate 'bi_err-msgv' sy-pexpi into sy-REPI2.
assign (sy-REPI2) to <bi_fs>.
endif.
concatenate bi_wt100-text bi_tout <bi_fs> into bi_wt100-text.
condense bi_wt100-text no-gaps.
endloop.
condense bi_wt100-text no-gaps.
translate bi_wt100-text using '~ '.
bi_tt-tdline = bi_wt100-text.
append bi_tt.
endif.
endloop.
describe table bi_tt lines sy-pexpi.
check sy-pexpi > 0.
* Si contiene errores.se muestran en una ventana.
call function 'COPO_POPUP_TO_DISPLAY_TEXTLIST'
exporting TASK = 'DISPLAY'
titel = 'Errores en transaccin'
tables text_table = bi_tt.
end-of-definition.
* Fin : BAT-BI v 1.3 ----------------- 07.01.2005
*Ejemplo
end-of-selection.
bi_create.
bi_clear.
bi_add: 'X' 'SAPLWBABAP' '0100',
' ' 'BDC_OKCODE' '=BACK'.
bi_call 'SE38'.