Will man z.B. eine Einbildtransaktion für die MM02 Transaktion kreieren, so kann es unter Umständen performanter sein, die Daten direkt ab der Datenbank mittels eines RFC-Zugriffs zu lessen, anstatt die Daten mittels eines InputScriptes ab dem Screen zu lesen. Im SAP ERP System existiert der FUBA „MATERIAL_READ_ALL_SINGLE“ mit welchem man mehr oder weniger alle notwendigen Tabellen des Materialstammes lesen kann.

Hier ein kleines Beispiel, wie man dies bewerkstelligen kann:

SAPLSMTR_NAVIGATION.0100.TXT

// kleines Beispiel um Daten von Materialstamm direkt auf SAP Easy Access
// anzuzeigen // 07.02.2014 / Gérald Koehn / Koehn Consulting / www.guixt.ch
pos X[IMAGE_CONTAINER] (10,0) // X[IMAGE_CONTAINER]
Inputfield (0,1) "zu lesendes Material" (0,30) Name="MM02MATNR" Size="18"

Inputfield (1,1) "Kurztext" (1,30) Name="MM02_MAKTX" Size="40" -Readonly
Inputfield  (2,1) "Standardpreis" (2,30) Name="MM02_STPRS" Size="10" -Readonly -Alignright
Inputfield (3,1) "Gesamtbestand" (3,30) Name="MM02_LBKUM" Size="10" -Readonly -Alignright
Text (3,42) "&V[MM02_MEINS]"
Text (2,42) "&V[T_T001](T001-WAERS)"

on "Enter" Process="READ_MATNR.TXT"

READ_MATNR.TXT

// Beispiel für Lesen Materialstamm mittels RFC Zugriff
// 07.02.2014 / Gérald Koehn / Koehn Consulting / www.guixt.ch

// Initialisieren aller Felder
Set V[MM02_*] ""

ProcessingOption  leadingspace="on"
set V[schluessel](MTCOM-MATNR) "&V[MM02MATNR]"  // Material
set V[schluessel](MTCOM-BUKRS) "1000"           // Buchungskreis
set V[schluessel](MTCOM-WERKS) "1200"   	// Werk
set V[schluessel](MTCOM-BWKEY) "1200"           // Bewertungskey
set V[schluessel](MTCOM-SPRAS) "&V[_language]"	// Sprache
set V[schluessel](MTCOM-LGORT) "0001"           // Lagerort
set V[schluessel](MTCOM-VKORG) "1000"		// Verkaufsorganisation
set V[schluessel](MTCOM-VTWEG) "10"		// Vertriebsweg
call "MATERIAL_READ_ALL_SINGLE" -try In.HERKUNFT="Z" In.SCHLUESSEL="&V[schluessel]"
if Q[ok]
  call "MATERIAL_READ_ALL_SINGLE" cache="session" In.HERKUNFT="Z" In.SCHLUESSEL="&V[schluessel]" Out.TMAKT="tmakt" Out.TMARA="tmara" Out.TMARC="tmarc" Out.TMBEW="tmbew"
else
  Return "E: Material &V[MM02MATNR] existiert nicht" -Statusline
endif
// Setzen der einzelnen Variablen, welche im Screen von MM02 verwendet werden
ProcessingOption  leadingspace="off"
Set V[MM02_MAKTX] "&V[tmakt](MAKT-MAKTX)"
Set V[MM02_GROES]	"&V[tmara](MARA-GROES)"
Set V[MM02_STPRS]	"&V[tmbew](MBEW-STPRS)" -unpack
Set V[MM02_STPRS] &[MM02_STPRS] / 100 Decimals="2" DecimalSeparator="userdefault" GroupSeparator="userdefault"
Set V[MM02_LBKUM] "&V[tmbew](MBEW-LBKUM)" -unpack
Set V[MM02_LBKUM]  &[MM02_LBKUM] / 1000 Decimals="0" DecimalSeparator="userdefault" GroupSeparator="userdefault"
Set V[MM02_MEINS]	"&V[tmara](MARA-MEINS)" 
Set V[MM02_WAERS] "EUR"

Empfehlen