Um ein Skript durch die Verwendung eines Makros auszuführen, erstellen Sie das Makro in Visual Basic for Applications (VBA).
- Öffnen Sie die Datendatei, die mit dem Skript verknüpft ist, welches Sie ausführen möchten.Anmerkung:
Vergewissern Sie sich, dass Sie eine Datei mit Makros, eine .xlsm-Datei, verwenden.
- Drücken Sie Alt+F11.
- Klicken Sie im VBA-Editor unter Microsoft Excel-Objekte auf das Blatt, welches die Daten enthält, die Sie ausführen möchten.
- Kopieren Sie den unten stehenden Code und fügen Sie ihn in das Fenster ein.
- Ersetzen Sie unten den Datendateipfad, den Skriptdateipfad, den Blattnamen und den Namen für die automatische Anmeldung mit den Informationen für Ihre Dateien und mit Ihrem Namen für die automatische Anmeldung.
- Klicken Sie auf Speichern und schließen Sie den VBA-Editor.
- Klicken Sie in Excel auf die Registerkarte Ansicht und dann auf Makros.
- Klicken Sie auf das Makro, das ausgeführt werden soll, und klicken Sie anschließend auf Ausführen.
Hinweise: Vergewissern Sie sich, dass das Excel Add-In nicht aktiv ist(dass Sie nicht in Connect angemeldet sind).
Asynchrone Makroausführung wird unterstützt.
Transaction Makros
Ein veröffentlichtes Skript ausführen
- Add-In-Objekte definieren.
Dim StudioMacrosAddin, StudioMacros
- Add-In-Objekt aus Excel erhalten.
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- COM-Objekt von Add-In-Objekt erhalten.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Wählen Sie die auszuführende, veröffentlichte Datei und definieren Sie die Ausführungseigenschaften (siehe Eigenschaften für ein Transaction Add-In-Objekt).
Dim StudioMacros.PublishedFile = "MM02_MacroTest"
- Das veröffentlichte Skript öffnen.
StudioMacros.OpenPublishedScript
- AddinObject ausführen, um das Skript auszuführen.
StudioMacros.RunScript
Ein bestehendes Transaction Skript ausführen.
- Add-In-Objekte definieren.
Dim StudioMacrosAddin, StudioMacros
- Add-In-Objekt aus Excel erhalten.
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- COM-Objekt von Add-In-Objekt erhalten.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Wählen Sie das auszuführende Transaction Skript und definieren Sie die Ausführungseigenschaften (siehe Eigenschaften für ein Transaction Add-In-Objekt).
Im Folgenden wird die Lösung lokal ausgeführt: Dim strShuttleFile = "C:\Users\Normal_Tx_Macro.txr" Im Folgenden wir die Lösung von Evolve ausgeführt: StudioMacros.LibraryName = "Transaction" Für von Evolve eingereichte Lösungen auf Lösungsname setzen. strShuttleFile = "MM02"
- Das auszuführende Skript öffnen.
StudioMacros.OpenScript (strShuttleFile)
- AddinObject ausführen, um das Skript auszuführen.
StudioMacros.RunScript
Wenn der Benutzer bei Kettenskripten mit den Einstellungen „Alle von einzelnen“ ein Makro verwendet, um das Skript auf einem SAP-Server vom Typ „SAP Trust“ auszuführen, wird für jedes Skript der SAP-Anmeldedialog angezeigt. Dies kann mit dem Parameter „StudioMacros.UseSameSAPServerForChain = True“ im Makrocode erfolgen, damit die SAP-Sitzung des ersten Skripts für alle nachfolgenden Kettenskripte verwendet wird.
Eigenschaften für ein Transaction Add-In-Objekt
Ausführungseinstellungen oder erweiterte Ausführungsoptionen, die im Skript eingestellt sind, werden während der Ausführung des Makros nicht berücksichtigt. Diese müssen über die verschiedene Eigenschaften eingestellt werden, die für das Add-In-Objekt eingeblendet wurden.
Eigenschaft/Funktion | Wert(e)/Parameter | Beschreibung |
---|---|---|
PublishedFile |
Beschreibung des veröffentlichten Skripts |
Wählt die auszuführende, veröffentlichte Datei aus |
OpenPublishedScript |
NV |
Öffnet das veröffentlichte Skript |
OpenScript() |
Skriptdateipfad |
Öffnet das auszuführende Skript |
LibraryName | Bibliotheksname | Öffnet die Bibliothek mit der Lösung |
StartRow |
Zeilenanzahl |
Excel-Zeile, von der ab der Datenupload beginnen soll |
EndRow |
Zeilenanzahl |
Letzte Excel-Zeile, von der Daten hochgeladen werden sollen |
WriteHeader |
NV |
Schreibt während der Ausführung Kopfzeilen |
LogColumn |
Spalte/Zelle: |
Zeile oder Zelle, in die die Ausführungsprotokolle geschrieben werden sollen |
SheetName |
Name des Blattes |
Name des Blattes, der für die Ausführung verwendet werden soll |
Verbindungsname |
SAP-Verbindungsname |
SAP-Verbindungsname Beispiel StudioMacros.ConnectionName = "w6r" Wird bei Evolve und Studio Manager verwendet. |
RunReason |
Ausführungsgrund-String |
Einen Grund für diese Ausführung angeben |
RunSelectedRows |
NV |
True: Es werden nur die in Excel ausgewählten Zeilen ausgeführt |
RunFilteredRows |
NV |
True: Es werden nur die in Excel angezeigten Zeilen ausgeführt |
RunType |
0 – Angegebenen Bereich ausführen 1 – Ausführen und bei Fehlern anhalten 2 – Erste fünf Zeilen ausführen 3 – Nur Zeilen mit Fehlern ausführen 4 – Nur nicht verarbeitete Zeilen ausführen 5 – Angegebenen Bereich debuggen 6 – Nur erste Zeile debuggen 7 – Angegebenen Bereich validieren 8 – Ersten fünf Zeilen validieren 9 – Nur Fehlerzeilen validieren 10 – Nur nicht verarbeitete Zeilen validieren 11 – Angegebenen Bereich simulieren 12 – Erste fünf Zeilen validieren 13 – Nur Fehlerzeilen simulieren 14 – Nur nicht verarbeitete Zeilen simulieren 15 – Nicht verarbeitete Zeilen und Fehlerzeilen ausführen 16 – Nicht verarbeitete Zeilen und Fehlerzeilen validieren 17 – Nicht verarbeitete Zeilen und Fehlerzeilen simulieren |
Wählen Sie eine Ausführungsart aus den möglichen Werten aus
|
RunScript |
NV |
Skript ausführen |
SyncCall |
NV |
True – Das Skript wird synchron ausgeführt |
Beispielcode: Ein veröffentlichtes Transaction Skript ausführen
Dieser Beispielcode wird mit dem Ausführungstyp „Fehlerzeilen und unbearbeitete Zeilen ausführen“ aktualisiert.
Sub RunPublishedTXRfile() '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with code '---------------------------------------------- ' ' RunPublishedfile Macro ' ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If ' Select the published file to Run StudioMacros.PublishedFile = "MM02_MacroTest" StudioMacros.StartRow = 2 StudioMacros.EndRow = 6 ' Set True to write headers while Run StudioMacros.WriteHeader = True 'StudioMacros.LogColumn = "H" 'StudioMacros.SheetName = "Sheet2" 'StudioMacros.ConnectionName = "w6r-800" ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'StudioMacros.RunSelectedRows = True 'StudioMacros.RunFilteredRows = True ' RunSpecifiedRange = 0, ' RunAndStopOnErrors = 1, ' RunFirstFiveRows = 2, ' RunOnlyErrorRows = 3, ' RunOnlyUnProcessedRows = 4, ' DebugSpecifiedRange = 5, ' DebugFirstRowOnly = 6, ' ValidateSpecifiedRange = 7, ' ValidateFirstFiveRows = 8, ' ValidateOnlyErrorRows = 9, ' ValidateOnlyUnProcessedRows = 10, ' SimulateSpecifiedRange = 11, ' SimulateFirstFiveRows=12, ' SimulateOnlyErrorRows=13, ' SimulateOnlyUnprocessedRows=14, ' RunUnProcessedAndErrorRows=15, ' ValidateUnProcessedAndErrorRows=16, ' SimulateUnProcessedAndErrorRows=17 StudioMacros.RunType = 0 ' Call the Run Function to open published script StudioMacros.OpenPublishedScript ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
Beispielcode: Ein bestehendes Transaction Skript ausführen
Sub RunNormalTXRfile() '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with code '---------------------------------------------- ' ' RunPublishedfile Macro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If
StudioMacros.StartRow = 2 StudioMacros.EndRow = 0 ' Set True to write headers while Run StudioMacros.WriteHeader = True 'StudioMacros.LogColumn = "H" 'StudioMacros.SheetName = "Sheet2" 'StudioMacros.ConnectionName = "w6r-800" ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'StudioMacros.RunSelectedRows = True 'StudioMacros.RunFilteredRows = True ' RunSpecifiedRange = 0, ' RunAndStopOnErrors = 1, ' RunFirstFiveRows = 2, ' RunOnlyErrorRows = 3, ' RunOnlyUnProcessedRows = 4, ' DebugSpecifiedRange = 5, ' DebugFirstRowOnly = 6, ' ValidateSpecifiedRange = 7, ' ValidateFirstFiveRows = 8, ' ValidateOnlyErrorRows = 9, ' ValidateOnlyUnProcessedRows = 10, ' SimulateSpecifiedRange = 11, ' SimulateFirstFiveRows=12, ' SimulateOnlyErrorRows=13, ' SimulateOnlyUnprocessedRows=14, ' RunUnProcessedAndErrorRows=15, ' ValidateUnProcessedAndErrorRows=16, ' SimulateUnProcessedAndErrorRows=17 StudioMacros.RunType = 0 ' Set in case of evolve subitted file StudioMacros.LibraryName = "Transaction" ' Set it to Solution Name in case of evolve submitted file ' For local File,set strShuttleFile to local file path strShuttleFile = "MM02" ' Call the Run Function to open specified script StudioMacros.OpenScript (strShuttleFile) ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
Bekannte Probleme
- Makros, die in Transaction oder Query v10.x erstellt wurden, werden nicht automatisch in das Studio 20.3-Format konvertiert. Makros im Studio 20.3 Format sind nicht mit v10.x kompatibel. Um die Makros auszuführen, müssen Sie manuell konvertiert werden.
- Während Sie Makros verwenden, sollten die Automate Add-Ins nicht geladen werden (Sie sollten nicht bei Evolve/Studio Manager angemeldet sein). Die Automate Add-Ins können aktiviert werden.
- Die Startzeile ist immer 2, außer Sie geben eine andere Zeile an.
- RunSelectedRows und RunFilteredRows sind zwei sich gegenseitig ausschließende Optionen. Das Skript wird die zuletzt aktivierte Option verwenden.
- Datendateien dürfen nicht den Datenprüfungsworkflow anwenden, um durch Makros im Evolve/Studio Manager Modus ausgeführt zu werden.
- „In Evolve/Studio Manager speichern“ funktioniert nicht, wenn ein Makro dazu verwendet wird, die Datendatei im Evolve/Studio Manager Modus auszuführen.