...
Ziel ist es diverse Transaktionen durchzuführen und Daten auomatisiert in lokale Dateien zu extrahieren. (z.B. den Export der Daten aus RSPARAM (Transakion SA38))...
Hi Snaky,
die RSPARAM ist nur eine Struktur, die im Gegensatz zu einer transparenten Tabelle keine Daten enthält. Zumindest nicht in tabellarischer Form.
Welche Programme ( SAP-Standard? ) willst Du denn mit SA38 ausführen, um deren Ergebnis zu extrahieren?
Kannst Du ggf. mit deinem User bestehende
RFC-Bausteine aufrufen ( z.B. rfc_get_table_entries )?
Außerdem gibt es eine Komponente, mit der man die SAP-
GUI fernsteuern kann / konnte.
Damit kann man direkt Eingabefelder per Namen anspringen, dort Wert eintragen und auslesen...
Delphi-Quellcode:
Sap := TSapEvent.Create( Application.MainForm );
bOK := Sap.Connect( frmHaupt.edHost.Text, frmHaupt.edHostID.Text, 2050); // SapGuiMerlin or SapGuiFullMenu
OKCheck(bOK, 'Verbindung erstellen');
Sap.RowDimension := 24;
Sap.RowListDimension := 24;
Sap.ColumnDimension := 80;
Sap.ColumnListDimension := 80;
Sap.SetSizeFlag := True;
OKCheck(bOK, 'Verbindung einstellen');
Application.ProcessMessages;
iCtrl := Sap.FindByField('RSYST-MANDT', 0, 2); // Mandant (index 1);
bOK := Sap.SetControlValue(iCtrl, frmHaupt.edMandant.Text);
OKCheck(bOK, 'Mandant einstellen');
Application.ProcessMessages;
iCtrl := Sap.FindByField('RSYST-BNAME', 0, 2); // Benutzer (index 3);
bOK := Sap.SetControlValue(iCtrl, frmHaupt.edBenutzer.Text );
OKCheck(bOK, 'Benuter einstellen');
Application.ProcessMessages;
iCtrl := Sap.FindByField('RSYST-BCODE', 0, 3); // Kennwort (index 5);
bOK := Sap.SetControlValue(iCtrl, frmHaupt.edPasswort.Text);
OKCheck(bOK, 'Passwort einstellen');
Application.ProcessMessages;
iCtrl := Sap.FindByField('RSYST-LANGU', 0, 2); // Sprache (index 7);
bOK := Sap.SetControlValue(iCtrl, 'd');
OKCheck(bOK, 'Sprache einstellen');
bOK := Sap.SetCursorByControl(iCtrl);
OKCheck(bOK, 'Cursor positionieren');
Die
Unit/das Control hieß SapAutoGuiOcx_TLB glaube ich aus meinem alten Code zu entnehmen.
Damit kannst Du fast beliebige Aktionen in der SAP-
Gui durchführen, inkl. der Auswertung, was jeweil nach einem "Tastendruck" passiert ist...
Habe ich vor vielen Jahren mal verwendet, um Massendaten automatisiert aus lokalen Datenbanken in SAP zu erfassen und dabei das Laufzeitverhalten auszuwerten...
HTH,
Tim