Allerdings hat SAP in der Methode "_CHECK_TRANSACTION" der Klasse CL_SWN_HTTP_SHORTCUT die erlaubten Transaktionen eingeschränkt. Hier müsstest du ggf. eingreifen.
Code: Alles auswählen.
" local data
data: l_wafnam like line of e_r_fnam.
data: l_waservlist type icm_sinfo.
data: l_itservlist like standard table of l_waservlist.
"get server info
call function 'ICM_GET_INFO'
* importing
* info_data = info_data
tables
servlist = l_itservlist
* thrlist = thrlist
exceptions
icm_error = 0
icm_timeout = 0.
loop at l_itservlist
into l_waservlist
where protocol = 1.
exit.
endloop.
set extended check off.
"create shortcut to call transaction
concatenate '<A href="http://'
l_waservlist-hostname ':'
l_waservlist-service
'/sap/public/bc/workflow/shortcut?'
'sysid=' sy-sysid
'&logonid=&client=' sy-mandt
'&uname=' '|UNAME|'
'&langu=' '|LANGU|'
'&transaction=' '*MM03'
'¶m=' 'RMMG1-MATNR'
'%3d' '|MATNR|'
'%3b+DYNP_OKCODE%3d' 'BILD'
'">' '|MATNR|'
'</A>'
into e_shortcut.
Dann frag mal ewx, wie die SAPGUI auf einem zeitgemäßen Display (4k) aussieht. Oder versuche die mal plattformübergreifend zu benutzen (auf einem iPad zum Beispiel) und so weiter und so fort.Dele hat geschrieben:das geht sehr wohl und sogar mit SAPGUI (den ich im Übrigen nicht als Relikt aus vergangenen Zeiten halte; bei uns zumindest ist der SAPGUI sehr aktuell) .
Code: Alles auswählen.
"create shortcut to call transaction
CONCATENATE '<A href="http://'
l_waservlist-hostname ':'
l_waservlist-service
'/sap/public/bc/workflow/shortcut?'
'sysid=' sy-sysid
'&logonid=&client=' '400'
'&uname=' sy-uname "---> ohne Hochkomma
'&langu=' 'DE'
'&transaction=' '*MM03' "--> mit * an erster Stelle
'&param=' 'RMMG1-MATNR' "---> hier muss der Screen-Feldname stehen
'%3d' '1500211003' "---> hier die Materialnummer angegeben
'%3b+DYNP_OKCODE%3d' 'BILD'
'">' '1500211003' "---> das ist der Link-Text die Materialnummer
'</A>'
INTO html_string.
Damit der externe Breakpoint wirkt, musst du in den Debugging-Einstellungen auch einen Usernamen setzten, mit dem du den Link testest.Du solltest in der Transaktion SICF prüfen, ob der Service auch aktiv ist.