Hinzufügen des PowerPoint-Exports zum Workflow Builder
DerIngenieur-Mailbag
Folge 8: Die letzte Meile
Hin und wieder stoßen wir als Systemingenieure auf interessante Fragen, die etwas außerhalb des typischen Bereichs liegen.JMPManchmal ist die Frage einfach nur interessant und gibt mir die Gelegenheit, die tieferliegenden Gründe dafür zu erforschen, warum wir in JMP die Dinge so tun, wie wir sie tun.
Diese Frage ist schon unzählige Male aufgetaucht. Ich habe zwar keine E-Mail-Adresse zur Hand, aber gehen wir einfach mal davon aus, dass einige Antworten eingegangen sind. Es gab auch schon Fragen dazu im Internet.JMP-Community-Forum.Und ich kann kein Seminar zu diesem Thema halten, ohne dass es zur Sprache kommt.
So, genug der Vorrede. Welche bahnbrechende Frage werden wir heute angehen? Wie der Titel schon sagt, werden wir den PowerPoint-Export in den Workflow Builder integrieren.
Die Frage
FürMir wird diese Frage meist gestellt, nachdem ich alle coolen Funktionen des Workflow Builders gezeigt habe. Ich habe demonstriert, wie er die Ausführung des Query Builders erfasst, wie man langwierige Datenbereinigungsprozesse auf einen einzigen Klick reduziert und wie man automatisch einen wichtigen Bericht generiert, den man beispielsweise einem Entscheidungsträger vorlegen möchte. Und dann höre ich unweigerlich: „Wie kann ich das als PowerPoint-Datei exportieren?“ (oder etwas Ähnliches).
Die Antwort
ZuEhrlich gesagt war ich mit meiner bisherigen Antwort nie ganz zufrieden. Das war auch ein Grund, warum ich dem Blogbeitrag eine kleine Anleitung beifüge. Wenn Sie, liebe Leserin, lieber Leser, sich nicht für die Details meiner neuen Lösung interessieren und sie einfach nur anwenden möchten, können Sie direkt zum Abschnitt springen, in dem ich die Nutzung des beigefügten Downloads erkläre.
Meine vorherige Antwort auf diese Frage lautete: „Im Skriptindex gibt es ein Beispiel für die Funktion Save Presentation(), die als benutzerdefinierter Schritt hinzugefügt werden kann.“

Aber diese Antwort hat mich einfach genervt. Ich erspare euch jetzt meine lange Tirade darüber, warum, aber kurz gesagt, sie wirkte nicht gerade… naja… JMP-typisch. Jedenfalls habe ich mir neulich vorgenommen, es ein letztes Mal zu sagen! Schluss damit!
Folgendes habe ich getan.
PowerPoint-Export erstellen
InJMP 18, Workflow Builder, bot unter anderem Unterstützung für if/else-Anweisungen und Meldungen. Dank dieser beiden Funktionen und etwas undurchsichtigem JSL-Code konnte ich das Ganze zum Laufen bringen. (Randbemerkung: DieJMP-Skripting-Index ist euer Freund, Leute!
In meiner Vorstellung sollte dieser Schritt das Exportieren einer neuen Präsentationsdatei oder das Hinzufügen einer Folie zu einer bestehenden Präsentation mithilfe der Option „Anhängen“ der Funktion „Präsentation speichern()“ umfassen. Das bedeutete zweierlei: Erstens benötigte ich einen Dialog, um zwischen den beiden Varianten des Schritts „Präsentation speichern()“ zu wechseln, und zweitens eine Möglichkeit, zwischen ihnen umzuschalten.
Die Logik für jeden Schritt ist einfach. Fügen Sie die Wenn-/Sonst-Anweisungen über das erweiterte Menü hinzu, indem Sie im Workflow-Builder auf das rote Dreieck klicken. Platzieren Sie anschließend in jedem Schritt eine Nachricht im Feld „Beim Start“ der Schritt-Aktions-Zeitleiste. Bearbeiten Sie dann das Bedingungsskript, sodass es mit den in den Nachrichten definierten Variablen übereinstimmt. Unten finden Sie ein kurzes Video, das die einzelnen Schritte zeigt.
Nachdem die if- und else-Anweisungen eingerichtet sind, können wir zum erweiterten Untermenü (rotes Dreieck) zurückkehren, benutzerdefinierte Schritte hinzufügen und diese in die if- und else-Anweisungen verschieben. Ich habe die Namen im Screenshot geändert, damit die Funktion der einzelnen Schritte klar ist.

Hier sind Screenshots des benutzerdefinierten Prozesses, der im Anfügeschritt benötigt wird:

Und die Schritte für eine neue Präsentation:


Der Clou dieser allgemeinen Lösung liegt im JSL-Code für die benutzerdefinierten Schritte, insbesondere in der Funktion `CurrentReport()`. Dank meiner frühen JSL-Kenntnisse (vielen Dank an Di Michelson vom JMP-Schulungsteam!) weiß ich, dass JMP Aktionen automatisch im aktuellen Fenster oder Objekt ausführt, sofern ich nicht explizit etwas anderes anweise. Außerdem weiß ich, dass das zuletzt erstellte Objekt immer das aktuelle ist, es sei denn, mein Code ändert dies. Wenn ich also den Schritt, den ich erstelle (die if/else-Anweisung), nach dem Erstellen eines Berichts einfüge, ist der aktuelle Bericht der soeben erstellte Bericht. Die Funktion `CurrentReport()` gibt dann eine Referenz auf diesen Bericht zurück. Diese Referenz kann ich anschließend an `SavePresentation` übergeben, indem ich einfach die Variable verwende, die die Berichtsreferenz enthält.
Die Funktionen `PickFile()` und `PickDirectory()` generieren automatisch Dialoge und geben Pfade zurück. Durch die Kombination dieser beiden Funktionen im Argument `SavePresentation()` kann ich anhand der Position im Workflow erkennen, welcher Bericht bearbeitet werden soll. Ich kann den Benutzer außerdem fragen, welche Präsentation aktualisiert oder wo eine neue erstellt werden soll.
PowerPoint-Export verwenden
FürAlle, die den Programmierteil übersprungen haben: Willkommen zurück! Schauen wir uns an, was sich in der ZIP-Datei aus dem Downloadbereich zu diesem Artikel befindet. Darin finden Sie drei Dateien:

Die PowerPointExport-Datei ist ein eigenständiger Workflow-Builder-Schritt, der entweder eine bestehende Präsentationsdatei anhängen oder eine neue erstellen kann. Die beiden anderen Schritte arbeiten zusammen und sind für einen speziellen Anwendungsfall gedacht, den ich gleich genauer erläutern werde. Zunächst betrachten wir einen einfachen Fall. Ich habe ein kurzes Video erstellt, das die einzelnen Schritte zeigt:
Nun zu den beiden anderen Dateien. Es gibt Fälle, in denen ein Workflow mehrere Berichte erzeugen kann. Anstatt die Eingabeaufforderungen für jeden Bericht einzeln durchzugehen, arbeiten die beiden anderen Dateien zusammen. Der Schritt „PowerPoint erstellen“ enthält die Eingabeaufforderungen zum Erstellen der Präsentationsdatei und stellt außerdem den Speicherort dieser Datei für jede Instanz des Schritts „PowerPoint anhängen“ im selben Workflow bereit. Dadurch lässt sich die Erstellung eines kompletten Foliensatzes mit minimalem Benutzereingriff automatisieren. Hier finden Sie eine Videoanleitung zur Einrichtung eines Workflows für diese Situation und zum Ergebnis:
AlsoVoilà! PowerPoint-Unterstützung für den Workflow Builder – ganz ohne Programmierung. Dank der intuitiven Bedienung bleiben Sie voll und ganz auf Ihre Daten und Erkenntnisse fokussiert – typisch JMP eben. 