Ersatz MS VBA / VBS am Arbeitsplatz (z.B. auch zur SAP Ansteuerung)

serie300

Well-Known Member
Hallo

es wird ja (seit Jahren) das Ende von VBA / VBS verkündet (vielleicht so wie vor Jahrzehnten das Ende von Cobol). Jetzt verwenden wir das ganz erfolgeich am Arbeitsplatz (mit Excel, SAP und Win) um z.B. eine Zeile aus dem Paste Buffer auszulesen , auszuwerten, dann mit diesen Daten aus SAP über die VBA Remotesteuerung in SAPGUI Daten zu ziehen , eine Plausibilitätsprüfung durchzuführen, die Daten ein bisschen zu verrühren und dann z.B. eine Mail zu generieren. Nix großartiges, aber es verhindert Flüchtigkeitsfehler und Abschreibearbeit (SAP = Schreib's auf Papier). Debugging auf dem Interpreter ist auch bequem einfach. Bevor einer fragt: ABAP ist für uns abgeschalten. Nachdem es heißt VBA wird abgeschalten (und man bei MS nie sicher sein kann wie weit sie die Verunannehmlichungstaktik fahren) wollt euch mal fragen wie ihr das seht.
1. Alles Gerede. Wenn sie das abschalten, haben sie einen / den entscheidenden Teil der Excel Kundschaft gegen sich. Weitermachen.
2. Zügig auf was anderes umsteigen ? -> Auf was ?

Z.B. Python emfinde ich jetzt für die für mich typischen Anwendungen nicht gerade als Fortschritt (und nicht weil ich mich weigere umzusteigen oder neue Konzepte zu lernen, ich habe schon mehrere "Exoten" programmiert), auch weiß ich nicht wie man damit SAP steuern sollte, und die Powershell empfinde ich auch nicht als Fortschritt zum Programmieren von Miniapplikationen.

Wie seht ihr das? Was würde sich ggf. lohnen als Programmiersprache einzuphasen (so VBA tatsächlich in Kürze sterben sollte)

Bitte keine Grundsatzdiskussionen über Programmiersprachen !
 
1. Alles Gerede. Wenn sie das abschalten, haben sie einen / den entscheidenden Teil der Excel Kundschaft gegen sich. Weitermachen.

Finde das ist nen wichtiger Punkt, diese ganzen VBA-Bastel-Lösungen die teilw. auch schon ewig in Verwndung sind, sind ein absoluter Kern warum sich MS die letzten 20 Jahre so durchgesetzt haben.

Da gibt es auch imho wenig Alternativen

2. Zügig auf was anderes umsteigen ? -> Auf was ?

Z.B. Python emfinde ich jetzt für die für mich typischen Anwendungen nicht gerade als Fortschritt (und nicht weil ich mich weigere umzusteigen oder neue Konzepte zu lernen, ich habe schon mehrere "Exoten" programmiert), auch weiß ich nicht wie man damit SAP steuern sollte, und die Powershell empfinde ich auch nicht als Fortschritt zum Programmieren von Miniapplikationen.

Ich würde hier vermuten das hier MS die eigenen Lieblings-Sprachen empfehlen würde - .net und alles drumherum was ich so als Nicht-Programmierer kaum kenne.

Power-Shell hab ich immer eher für System-Administrative sachen verstanden als nachfolger von cmd, ein bisschen oberhalb von sh(bash, ksh etc) angesiedelt aber auch nicht so weit weg - aber halt mit dem ganzen Ökosystem kombiniert.

Ob es sinn macht das dann zu lernen wenn du eher bei vba bislang unterwegs warst weiß ich auch nicht :)
 
Ich kenne SAP nur aus der Ferne, aber mal andersrum gefragt: Was wären Gründe gegen Python?
 
Ich kenne SAP nur aus der Ferne, aber mal andersrum gefragt: Was wären Gründe gegen Python?
Python harmoniert (soweit ich bisher weiß) nicht mit dem MS Universum. Also sowas wie mit (Pseudocode ! ):
With outlook.message .To="mueller; mayer" .Reason="Hallihallo" .Body="Hallo"
oder eben mit Excel Objekten.
Ausserdem mag ich keine Sprachen bei denen die Schleifenebene durch die Zahl der Leerzeichen bestimmt wird (aber das ist persönliche Ansichtsache).

Das SAP (besser die SAPGUI !) kann über VB Elemente steuern. Dazu kann man auch in SAPGUI "Macrorecorder" drücken und der zeichnet dann ein VB-Script auf mit den "Tastendrücken" in SAP (ja das beschreibt es am besten); ist echt grußelig.
Also z.B. so (von SAP Web Seite)
session.findById("wnd[0]/usr/cmbRMMG1-MBRSH").key = "1" session.findById("wnd[0]/usr/cmbRMMG1-MTART").key = "ROH" session.findById("wnd[0]/usr/cmbRMMG1-MTART").setFocus session.findById("wnd[0]/tbar[1]/btn[5]").press session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW").getAbsoluteRow(0).selected = t session.findById("wnd[1]/tbar[0]/btn[0]").press
 
Zurück
Oben