| Lautsprecher |
Transkript |
| Brian Corcoran |
Willkommen zum Morgen-Update. Dies ist mein Vortrag für JMP Discovery Europe 2021. |
| |
Mein Name ist Brian Corcoran und ich bin JMP-Entwicklungsmanager. |
| |
Was also hoffen wir heute zu tun? |
| |
Ich möchte Ihnen zeigen, wie Sie in JMP einen Bericht auf Basis eines internetbasierten Datenanbieters unter Verwendung eines REST-Protokolls erstellen. |
| |
Sobald wir das getan haben, werde ich Ihnen zeigen, wie wir diesen Bericht mithilfe der aktualisierten JMP-Skript-Engine, die wir in JMP 16 integriert haben, in JMP Live veröffentlichen können. |
| |
Abschließend zeige ich Ihnen, wie Sie diesen Test automatisieren können, sodass die Berichte jeden Tag, wenn Sie zur Arbeit kommen, bereits für Sie aktualisiert wurden und Sie sie einfach bei Ihrem Morgenkaffee oder -tee ansehen können. |
| |
Okay, sprechen wir also zunächst über Internet-Datenanbieter. |
| |
Die meisten davon basieren auf einem sogenannten REST-Protokoll. |
| |
Es handelt sich um einen zustandslosen Aufruf, der im Wesentlichen wie eine URL mit angehängten Parametern aussieht. Immer mehr Organisationen nutzen ihn, um ihre öffentlichen Daten Endnutzern zugänglich zu machen. Beispiele hierfür sind die Weltbank, die US-Volkszählung und Google. |
| |
JMP bietet hierfür eine Funktion namens HTTP-Anfrage. Sie ermöglicht Ihnen den Zugriff auf diese Dienste. Üblicherweise wird hierfür ein sogenanntes GET- oder POST-Verb verwendet. HTTP-Anfragen ermöglichen Ihnen die Nutzung dieser Funktionen. |
| |
Für diesen speziellen Bericht werde ich die Johns Hopkins COVID verwenden |
| |
REST-API mit einigen Daten aus der Pandemie. |
| |
Johns Hopkins ist die Universität in den Vereinigten Staaten, die diese Daten aus der ganzen Welt sammelt und dann diese kostenlose öffentliche API für den Zugriff bereitstellt. |
| |
Es gibt auch eine Premiumversion davon, die Ihnen besseren Zugriff und eine detailliertere Darstellung der Daten bietet. Wir werden jedoch vorerst versuchen, mit der kostenlosen Version auszukommen. Hoffentlich können Sie einige der Skripte, die ich Ihnen gebe, selbst ausprobieren. |
| |
Wie sieht also die REST-API aus? Nun, |
| |
lass uns einen Blick darauf werfen. |
| |
Hier ist ein Beispiel von Johns Hopkins. |
| |
Es beginnt mit dieser Basis-URL, in diesem Fall der API, COVID19API.com. Und hier können Sie sich die URL ansehen und sagen: „Hey, wir fragen nach der Gesamtzahl der bestätigten Fälle für ein Land.“ |
| |
Wo Sie dieses eingeklammerte Land sehen, müssen Sie den Namen tatsächlich einfügen. In meinem Fall verwende ich Deutschland (sie verwenden die englischen Namen). |
| |
aber es gibt wahrscheinlich 100 Länder, in denen Sie dies ausprobieren könnten. |
| |
Bei Johns Hopkins müssen Sie ein Start- und Enddatum angeben |
| |
nach dieser Basis-URL, wo Sie das Fragezeichen sehen. Und das sind im Wesentlichen Parameter für diesen API-Aufruf, den Sie tätigen, und das ermöglicht es uns, |
| |
Werte innerhalb des von uns angegebenen Datumsbereichs. |
| |
Und es ist dieses lange Format. Es ist |
| |
der Monat ... das Jahr, der Monat und der Tag, T für Zeit und dann die 24-Stunden-Zeit mit einem angehängten Z. |
| |
Glücklicherweise bietet JMP Funktionen, die Ihnen dabei helfen. Sie können einen Formataufruf verwenden. Heute geben wir Ihnen die genaue Uhrzeit und das Datum an. Wir geben den gewünschten Formatstring an und hängen dann einfach ein Z an das Ende an. |
| |
das Format, das wir für Johns Hopkins brauchen. |
| |
Also, wie ich bereits erwähnte, |
| |
REST-Aufrufe verwenden typischerweise entweder ein GET- oder ein POST-Verb. Johns Hopkins verwendet ein GET; ich werde kurz aus PowerPoint aussteigen, um das zu zeigen. |
| |
Wenn Sie auf die Website gehen, die ich dort hatte, in der |
| |
Folie oder auch im Papier, |
| |
Sie werden sehen, dass die APIs nach Typ bereitgestellt werden und Ihnen im Wesentlichen gezeigt wird, wie Sie die Informationen weitergeben und was Sie hier als Antwort erwarten. |
| |
Also gut, Sie können hier alles durchgehen und nachsehen, was die einzelnen Kategorien erfordern. Außerdem sehen Sie, dass es Premiumkategorien gibt, für deren Zugriff Sie monatlich einen bestimmten Betrag bezahlen müssen. |
| |
Okay. |
| |
Also. |
| |
Was erhalten Sie zurück? Nun, Sie erhalten JSON zurück, das lediglich aus einer Reihe von Zeichenfolgen in Name-Wert-Paaren besteht (z. B. Groß- und Kleinschreibung, Doppelpunkt und dann eine numerische Zeichenfolge). |
| |
das stellt die Anzahl der Fälle für diese spezielle Beobachtung dar, okay. Und JMP bietet tolle Möglichkeiten für den Zugriff auf JSON, das zeigen wir Ihnen gleich. |
| |
Hier ist unser tatsächlicher HTTP-Anforderungsaufruf. Wir übergeben einfach unsere URL, die gewünschte Methode (GET) und dann diese sichere Null. Warum tun wir das? |
| |
Nun, Johns Hopkins ist eine öffentliche API und möchte kein Secure Socket Layer (SSL) verwenden, also müssen wir das ausschalten, sonst schlägt der Aufruf fehl. |
| |
Und dann tätigen wir einfach unseren Aufruf mit dem Sendebefehl und unser JSON wird in den Daten zurückgegeben. |
| |
Schauen wir uns also ein Skript genauer an. Ich verlasse PowerPoint und wir öffnen JMP. |
| |
Ich verwende JMP Pro 16, aber das funktioniert auch mit dem normalen JMP. |
| |
Und ich möchte erwähnen, dass dieses Skript zusammen mit dem Dokument, das wir uns ansehen werden, in den Konferenzmaterialien enthalten ist. |
| |
Okay, also. |
| |
Was muss ich hier einrichten? Zunächst speichere ich meine Daten im Ordner „Dokumente“ in einer Tabelle namens „covid19_de.jmp“. |
| |
Später erstelle ich einen Bericht und achte darauf, dass er immer diesen Namen trägt. In diesem Fall ist ein standardisierter Name sehr wichtig. Ich werde Ihnen später zeigen, warum. |
| |
Schließlich konvertiere ich einfach den Pfad meines Dokuments in meinem Namen und meiner Datei in einen vollständigen Pfad zur Verwendung. |
| |
Okay, wir werden uns hier nicht mit dieser Datumsformatierungsfunktion befassen und uns gleich mit der Frage befassen, wie wir unsere Daten erfassen. |
| |
Also, wir werden hier ein Muster verwenden, und zwar: |
| |
Wir gehen davon aus, dass wir das Skript noch nie ausgeführt haben. Nun, |
| |
Wenn wir keine Datei finden, in der wir bereits Daten gesammelt haben, erstellen wir eine Datentabelle und füllen diese mit Werten. Wenn wir jedoch bereits eine Datentabelle finden, aktualisieren wir diese einfach mit den Daten der letzten Tage – nur einem Wert. |
| |
So müssen wir uns keine Gedanken darüber machen, ob wir das schon einmal ausgeführt haben. Wir können das Skript einfach blind ausführen und es an andere weitergeben. Es funktioniert dann. |
| |
Also gut, hier |
| |
Wir sagen: Wenn unsere Datei, unsere Datentabelle im Dokumentordner existiert, öffnen Sie sie einfach und setzen Sie nebenbei dieses Flag, um anzugeben, dass wir bereits Daten haben. |
| |
Andernfalls erstelle ich eine Datentabelle und erstelle sie mit Datum, Spalte, Fällen und täglicher Änderung. |
| |
Rechts. |
| |
Als Nächstes formatieren wir unsere Strings für den Anruf bei Johns Hopkins. Wir benötigen einen Von- und Bis-Bereich. Hier ist der String, den wir uns bereits angesehen haben. Er ist für den heutigen Wert. |
| |
Also gut, in dem Fall, dass ich nur den Wert von ... brauche … |
| |
der aktuelle Tageswert, ich aktualisiere nur meine Daten. |
| |
Ich gehe im Wesentlichen von gestern nach heute. Also gut, ich erstelle gestern, indem ich sage: heute minus zwei Tage und gehe zu heute. |
| |
Ich mache das an zwei Tagen, denn je nach Uhrzeit und Aktualisierungszeitpunkt der Daten bei Johns Hopkins erhält man manchmal einen Wert und manchmal zwei. |
| |
Wenn ich ... wenn ich zwei bekomme, nehme ich einfach den aktuellsten Wert, aber ich möchte sicherstellen, dass ich etwas bekomme. |
| |
Okay, als Nächstes möchte ich ein Startdatum festlegen, falls ich noch keine Daten erhalten habe. Ich beginne willkürlich am 1. September 2020; Sie können beliebig viele Daten eingeben. Hier sehen Sie, dass ich den 31. August verwende, da Johns Hopkins uns keine Daten zur Verfügung stellt. |
| |
einen Wert für die Veränderung zwischen den Tagen, so dass sie Ihnen nur die Gesamtzahl der kumulierten Fälle für Pandemiedaten liefern. Um die Veränderung zu berechnen, muss ich also subtrahieren |
| |
heutigen Wert vom gestrigen Wert. |
| |
Wenn ich am 1. September beginnen möchte, benötige ich die Daten vom 31. August, um die Änderung für den 1. September zu berechnen. Aus diesem Grund machen wir das. |
| |
Wenn Sie für die Premium-API bei Johns Hopkins bezahlen, können Sie |
| |
Holen Sie sich den Änderungswert. |
| |
Also gut, hier ist unsere URL, die wir vorhin besprochen haben. |
| |
Okay, das ist hier wichtig. Wenn wir Daten haben, die besagen, dass unsere URL erst ab gestern beginnt, was aber nicht der Fall ist und wir diese if-Anweisung verwenden, beginnen wir andernfalls am 1. September, unserem Startdatum. |
| |
Und dann machen wir einfach mit dem heutigen Tag weiter. |
| |
Ich zeige diese URL nur zu Debugzwecken an, aber hier stellen wir dann tatsächlich unsere Anfrage und senden den Anruf. |
| |
Rechts. |
| |
Ich warte ein wenig, um sicherzustellen, dass es ausgeführt werden kann. |
| |
Und hier erhalten wir unsere JSON-Daten zurück, und hier bietet JMP eine wirklich praktische Funktion dafür. |
| |
Parse JSON nimmt diesen großen Stringblock und zerlegt ihn in ein Array von Name-Wert-Paaren. Anschließend können Sie Elemente in diesem Array aufrufen, um die Anzahl der erhaltenen Daten zu ermitteln. |
| |
und Sie können auf diese Daten als Array mit Array-Indizes verweisen. |
| |
Okay. |
| |
Navigieren wir jetzt ein wenig nach unten. |
| |
Hier füllen wir unsere Datentabelle aus. Wenn wir bereits Daten haben, |
| |
dann fügen wir der Tabelle am Ende einfach eine Zeile hinzu, |
| |
und wir werden diesen Datenwert zusammen mit unserer Änderung eintragen, die wir aus dem heutigen Wert im Vergleich zum gestrigen Wert berechnen, in Ordnung. |
| |
Dann speichern wir es einfach ab. |
| |
Jetzt. |
| |
Wenn wir es noch nie zuvor erstellt haben, dann werden wir die Anzahl der Zeilen, die wir haben, minus eins addieren, weil es eine Kopfzeileninformation gibt und dann werden wir das durchgehen und alle unsere täglichen Änderungen berechnen, |
| |
Datumswerte und |
| |
Tragen Sie die Falldaten in die Tabelle ein. Ich denke, ich werde es hoffentlich demonstrieren, indem ich das jetzt von Grund auf ausführe. Wir sind bei etwa 163 Tagen oder so. |
| |
Und dann speichern wir diese Tabelle im Dokumentenordner. |
| |
Okay, da wir jetzt die Daten haben, können wir über die Veröffentlichung auf JMP Live nachdenken. |
| |
Aber dies ist wahrscheinlich eine gute Gelegenheit für mich, zu beschreiben, wie Sie JSL-Programmierung mit JMP Live durchführen und wie wir es in JMP Live 16 und JMP 16 geändert haben. |
| |
Ich möchte Ihnen das zu diesem Vortrag gehörende Dokument zur Verfügung stellen. Sie finden es auch in der Community. |
| |
Also gut, in JMP 16 haben wir das Skripting neu geschrieben, damit es hoffentlich leistungsfähiger, aber auch einfacher zu verwenden ist. Das Skripting dreht sich um die Idee, Verbindungs- oder verwaltete Verbindungsinformationen zu speichern. |
| |
Also. |
| |
Was passiert, ist Folgendes: Lassen Sie uns JMP erneut aufrufen. |
| |
Ich zeige Ihnen, was das bedeutet. Sie gehen zu Datei, Veröffentlichen, Verbindungen verwalten. |
| |
In Ordnung. |
| |
Und wir können eins hinzufügen. |
| |
Geben Sie hier einen Verbindungsnamen Ihrer Wahl und anschließend die URL Ihrer JMP Live-Site an. JMP Live ist im Wesentlichen selbst ein REST-Dienst. Falls Ihr Administrator einen geheimen API-Schlüssel zur Aktivierung der Skripterstellung benötigt, geben Sie diesen hier an. |
| |
Wenn Sie dies tun und auf die Schaltfläche „Weiter“ klicken, werden Sie aufgefordert, die Anmeldeinformationen einzugeben, was höchstwahrscheinlich von Ihrem Authentifizierungsmechanismus abhängt. |
| |
Wenn Sie diese eingeben, erhalten Sie im Wesentlichen ein Zugriffstoken, was bedeutet, dass es für Sie auf der Festplatte gespeichert wird. Dabei handelt es sich nicht um Ihre Anmeldeinformationen, sondern nur um dieses Zugriffstoken, das Ihnen den Zugriff auf diese Site und die Ausführung von Skripten ermöglicht. |
| |
Auf diese Weise können Sie, ohne diese Informationen im Skript angeben zu müssen, einfach auf den von Ihnen angegebenen Verbindungsnamen verweisen. Ich zeige Ihnen beispielsweise JMP Live Daily, das ich verwenden werde. Hier ist meine URL und mein API-Schlüssel. |
| |
Ich kann einfach auf JMP Live Daily verweisen und es weiß, wie die Verbindung innerhalb meines Skripts hergestellt wird. |
| |
Okay. |
| |
Um die Verbindung herzustellen, gebe ich einfach „new JMP Live“ und den Namen meiner Verbindung ein. Hier sage ich: „Lass uns bei Bedarf eine Eingabeaufforderung senden.“ Was bedeutet das? Wenn aus irgendeinem Grund |
| |
Ihre Anmeldeinformationen, wissen Sie, ablaufen oder Ihr Zugriffstoken ist alt, dann werden Sie aufgefordert, Ihre Anmeldeinformationen einzugeben |
| |
Sobald das Skript gestartet ist. Wenn Sie dies nicht angeben und Ihre Anmeldeinformationen abgelaufen sind, schlägt das Skript einfach fehl. |
| |
Okay. Wie veröffentlichen wir also einen Bericht in JMP Live? Hier ist ein Beispiel für eine einfache bivariate Variable, die Ihnen möglicherweise in der Big Class ausgeht. |
| |
Um daraus einen veröffentlichten Bericht zu machen, müssen Sie nur sagen: „Erstellen Sie einen neuen Webbericht“ und weisen Sie ihn einer Variablen zu. |
| |
Und dann nehme ich diese bivariate Referenz und sage: Fügen Sie diesen Bericht dem Webbericht hinzu. |
| |
Und ich werde optional einen Titel und eine Beschreibung angeben. |
| |
Und dann rufe ich einfach „Publish“ auf und „Publish“ gibt ein Ergebnis zurück. |
| |
Okay, und wir veröffentlichen möglicherweise bis zu JMP Live und es sieht ungefähr so aus. |
| |
Wenn wir möchten, wird uns das Ergebnis zeigen, ob wir erfolgreich waren. Und da wir ja die Öffentlichkeit sind ... die Veröffentlichung ist eigentlich wie ein HTTP-Aufruf. Wir können uns den Status ansehen, wenn wir möchten, oder eine Fehlermeldung. Okay. |
| |
In Ordnung. |
| |
Das andere Interessante ist |
| |
Wenn das Ergebnis unserer Operation beispielsweise das Hinzufügen eines Berichts oder Ordners zu JMP Live ist, enthält das Ergebnis, das wir zurückerhalten, Informationen, die uns die weitere Bearbeitung dieses Elements ermöglichen. |
| |
Wir können dies als skriptfähig bezeichnen, um diese Informationen zu verwenden, um ein Objekt innerhalb des Skripts zu erstellen, z. B. einen Bericht, auf den wir dann zugreifen können. Nachdem ich dies getan habe, kann ich beispielsweise den Bericht verwenden und meinen Berichtstitel festlegen. JMP Live wechselt dann zu diesem und ändert den Berichtstitel. |
| |
Okay. |
| |
Die Grundidee von JMP Live dreht sich jetzt um die Bearbeitung von Berichten und Ordnern, das Durchsuchen von Ordnern, das Suchen nach Berichten und ähnliches. |
| |
Der Bericht versteht |
| |
dass es eine Kennung hat. Und diese Kennung ist, wenn man sie sich ansieht, eine lange alphanumerische Zeichenfolge, die in ein Skript einzugeben oder sich zu merken wirklich schwierig wäre. |
| |
Sie müssen den Bericht aber auch eindeutig identifizieren. Nehmen wir an, Sie möchten ihn löschen. |
| |
Sie teilen JMP Live mit, dass Sie den Bericht löschen möchten, und dann kann der Bericht ... Sie können die Get-ID für dieses Berichtsobjekt verwenden, um diese eindeutige ID bereitzustellen, damit JMP Live weiß, welche entfernt werden soll. |
| |
Ich zeige Ihnen diese besonderen Gegenstände, weil sie in unserem |
| |
das ultimative Drehbuch, das wir zu produzieren hoffen. |
| |
Der andere Bereich, in dem es wirklich wichtig sein kann, diese ID zu kennen, ist die Suche. |
| |
Hier kann ich Berichte finden. Angenommen, ich möchte alle bivariaten Berichte finden, die mit „Biv“ beginnen, kann ich JMP Live einfach bitten, Berichte zu suchen und eine Ergebnisliste zurückzugeben. Anschließend kann ich diese Liste in eine Liste mit Berichten umwandeln. |
| |
Es gibt eine Funktion namens „Anzahl der Elemente in dieser Berichtsliste abrufen“, mit der ich jedes Element nach Index durchgehen kann. |
| |
Und wenn ich möchte, kann ich sie alle löschen. Die Suchfunktion ist also neu und hoffentlich leistungsstark genug, um große Operationen auf einer JMP Live-Site durchzuführen. |
| |
Richtig, es gibt also noch eine Operation, die wir noch ansprechen müssen, bevor wir wirklich bereit sind, unser Skript etwas weiter zu präsentieren. |
| |
Und das sind Aktualisierungsdaten. |
| |
In JMP Live 16 |
| |
Wir haben die Möglichkeit hinzugefügt, nur die Daten für einen Bericht zu aktualisieren, ohne den gesamten Bericht wieder in JMP Live veröffentlichen zu müssen. |
| |
Nehmen wir an, Sie erhalten einen Bericht, der genau Ihren Wünschen entspricht. Vielleicht ist er ein wenig individuell angepasst, und Ihnen gefällt das Erscheinungsbild, und Sie möchten keine Änderungen vornehmen. |
| |
Sie möchten die Daten jedoch aktualisieren und neu berechnen lassen. Nun können Sie die Datentabelle für diesen Bericht an JMP Live übergeben und so die Übertragungszeit verkürzen. |
| |
und Sie tun dies, indem Sie „Update Data“ aufrufen, die Berichts-ID angeben und dann nur die Datentabelle mit den aktualisierten Daten. |
| |
Der Bericht wird auf JMP Live neu berechnet, anstatt dies auf Ihrem Desktop tun zu müssen, |
| |
und jeder, der diesen Bericht gerade ansieht, wird auch das Update sehen. |
| |
Okay, jetzt haben wir quasi alle Tools, die wir brauchen, um unser Skript auszuführen, also schauen wir mal nach. |
| |
In Ordnung. |
| |
Also, |
| |
hier erstelle ich meine JMP Live-Verbindung. |
| |
Und jetzt werde ich ein Kontrolldiagramm erstellen. Nun ist ein Kontrolldiagramm nicht wirklich das Ideal |
| |
Analyseplattform für diese Daten. Warum nutze ich sie? Nun, aus zwei Gründen. Erstens ist es schön, die täglichen Veränderungen zu sehen. |
| |
und zweitens kann ich damit Werbung für eine weitere neue Funktion in JMP Live 16 machen, nämlich die Anzeige von Kontrolldiagrammwarnungen. |
| |
Wenn Sie Kontrollkarten veröffentlichen und es Beobachtungen gibt, die außerhalb der Grenzen liegen |
| |
das würde eine Warnung auf dem Desktop erzeugen, also, wenn Sie es in JMP Live veröffentlichen oder die Daten aktualisieren, |
| |
JMP Live kann außerdem Warnungen generieren, die an alle Abonnenten des Berichts gesendet werden, die per E-Mail oder über die Website benachrichtigt werden möchten, wenn etwas nicht den zulässigen Grenzwerten entspricht. Dies kann beispielsweise für die Prozesssteuerung sehr nützlich sein. |
| |
Also meine Kollegen |
| |
halten einen Vortrag über Kontrolldiagrammwarnungen und ich ermutige Sie, sich das auch anzusehen, wenn Sie die Gelegenheit dazu haben. |
| |
Wie habe ich das generiert? Nun, ich habe einfach JMP geöffnet und einige ältere Daten verwendet. Beispielsweise gibt es in JMP eine Funktion, mit der man bei Analysen einfach „Skript im Skriptfenster speichern“ auswählen kann. |
| |
Ich habe diese Informationen einfach genommen und in dieses Skript eingefügt, das ist also ziemlich praktisch. |
| |
Okay. |
| |
Kommen wir also zum Kern der Sache, nämlich wie wir einen Bericht veröffentlichen werden, und ich verspreche Ihnen, wir werden |
| |
führen Sie dies in Kürze aus. |
| |
Okay, also. |
| |
Auch hier werde ich wieder ein Muster haben. Ich werde nach dem Bericht suchen, um zu sehen, ob er bereits auf JMP Live verfügbar ist. |
| |
Wenn nicht, werde ich es veröffentlichen. Wenn es aber schon da ist, dann nehme ich einfach die aktualisierte Datentabelle, die wir zuvor erstellt haben. |
| |
und ich werde dafür sorgen, dass die Daten auf der Serverseite aktualisiert werden und der Bericht neu berechnet wird, wenn dies angebracht erscheint. |
| |
Also gut, wie mache ich das? Zuerst suche ich nach unserem Bericht (und denken Sie daran, dass wir einen standardisierten Berichtsnamen verwenden, den ich zuvor angegeben habe, sodass wir immer nach demselben suchen). |
| |
Und ich werde auch sagen, dass es nur von mir veröffentlicht wurde, nur für den Fall, dass jemand anders einen Bericht mit demselben Namen hat. Das würde ich nicht wollen. |
| |
Gut, ich mache daraus eine Liste, die ich mir ansehen kann. Und wenn die Anzahl der |
| |
Berichte ist Null, das heißt, ich habe keinen zuvor veröffentlichten Bericht gefunden. |
| |
Ich erstelle also einen neuen Webbericht, füge die Ergebnisse meines Kontrolldiagramm-Generators hinzu und veröffentliche ihn. Mit „Öffentlich(1)“ stelle ich sicher, dass er für alle verfügbar ist. |
| |
Wenn ich eines gefunden habe, nehme ich diesen Bericht, verweise auf das erste zurückgegebene Element und aktualisiere die Daten hier mithilfe der aktualisierten Tabellen, die wir zuvor generiert haben. |
| |
Der Rest sind nur Debuginformationen, die ich im Protokoll angezeigt habe, um zu sehen, ob alles richtig gelaufen ist, aber das ist nicht wirklich notwendig. |
| |
Abschließend habe ich hier am Ende eine Quit-Anweisung. |
| |
Wenn wir das später tatsächlich automatisieren, |
| |
Dies ist wichtig, da JMP heruntergefahren und alle Fenster geschlossen werden sollen. Andernfalls könnte es beim nächsten Ausführen zu einer Überprüfung kommen, bei der JMP bereits ausgeführt wird, und der Benutzer könnte denken, dass die Ausführung durch eine vorherige Operation blockiert ist. |
| |
Für den interaktiven Betrieb werde ich dies jedoch gleich auskommentieren. |
| |
Okay. |
| |
Also ich |
| |
Ich denke, wir sind bereit. Wir können es versuchen und hoffen das Beste. Manchmal ist Johns Hopkins sehr beschäftigt und lehnt die Anfrage zur Datenabfrage ab, was bedauerlich wäre, aber |
| |
lass es uns ausprobieren. |
| |
Und nur um es Ihnen zu zeigen: Im Dokumentenordner habe ich zu diesem Zeitpunkt keine JMP-Tabelle mit dem von mir angegebenen Namen. Wenn ich zu |
| |
Auf der JMP Live-Site, auf der ich veröffentlichen möchte, sehen wir keine |
| |
Ausgabe vom Kontrolldiagramm-Generator dort. |
| |
Also gut, versuchen wir es. |
| |
Richtig, da ist unser Kontrolldiagramm. |
| |
Ich werde JMP Live aktualisieren. |
| |
Okay, hier ist die Ausgabe unseres Kontrolldiagramm-Generators. Diese enthielt Warnungen. |
| |
Wenn wir uns dies in JMP Live ansehen, |
| |
Wir können mit der Maus über die Punkte fahren und die aktuellsten Daten sehen. Dies ist der 10. Februar; ich bin am 11., also haben wir aktuelle Daten. Dies sind einige Daten, die aufgrund des gleitenden Durchschnitts von Januar und Ende Dezember als außer Kontrolle geraten gelten. |
| |
So, soweit, so gut. |
| |
Wenn ich |
| |
Öffnen Sie meinen Dokumentenordner und aktualisieren Sie ihn. |
| |
wir können sehen, dass unsere JMP-Tabelle erstellt wurde. |
| |
In Ordnung. |
| |
So, und wir sehen jetzt, dass dies vor einer Minute veröffentlicht wurde. |
| |
Also gut, dann machen wir weiter und beenden das Ganze. |
| |
Und wir werden... eigentlich wollte ich das nicht tun... warten Sie eine Sekunde. |
| |
Wir werden hier ein wenig schummeln. |
| |
Lassen Sie uns fortfahren und den letzten Wert löschen, den wir erhalten haben. Dann speichern wir das |
| |
und schließen Sie es. Wir simulieren also, dass wir es heute noch nicht ausgeführt haben, und führen es dann erneut aus. |
| |
Okay, holen Sie einfach den letzten Wert. |
| |
Und wir gehen auf unsere Website. |
| |
Und wir sehen, dass es vor ein paar Sekunden erneut generiert wurde. In diesem Fall haben wir also gerade die Daten aktualisiert und den letzten Wert erhalten. |
| |
Wenn ich |
| |
erziehen |
| |
meine E-Mail, ich bin zufällig für Warnungen angemeldet und hoffe, |
| |
Vielleicht gibt es auch hier ein kleines Update. Wir erhalten Benachrichtigungen, dass |
| |
es gibt eine Veröffentlichung in diesem Kontrollkarten-Generator und es gab Warnungen, und wenn ich möchte, kann ich nachsehen, wo diese fehlgeschlagen sind und welche Punkte außerhalb der Grenzen liegen. |
| |
Okay. |
| |
Okay, ich denke, wir sind gut aufgestellt, um die automatisierte Aufgabe auszuprobieren. Ich werde also weitermachen und diesen Beitrag löschen. |
| |
Rechts. |
| |
Lasst uns das beenden. |
| |
Beenden Sie das. |
| |
Ich werde unser Beenden dort wieder einfügen, weil wir es jetzt für die automatisierte Einwegausführung benötigen. |
| |
Und ich werde dies schließen. |
| |
Gehen Sie zum Ordner „Dokumente“ und ich werde löschen |
| |
unsere Daten und tun so, als würden wir das von Grund auf neu ausführen. |
| |
Rechts. |
| |
Und stellen wir sicher, dass JMP heruntergefahren wird. |
| |
Okay. |
| |
Jetzt. |
| |
Wenn Sie einige meiner früheren Discovery-Vorträge gesehen haben, haben Sie vielleicht schon einmal gesehen, wie ich den Taskplaner verwende. Das ist ein beliebtes Thema bei mir. |
| |
Sie geben hier unter Windows einfach „Taskplaner“ ein. Ich hoffe, Sie haben das gesehen. |
| |
Auf dem Mac müssten Sie Automator oder einen Chron-Job verwenden. Ich würde Automator vorschlagen. |
| |
In Ordnung, aber mit dem Taskplaner können Sie praktisch alles regelmäßig ausführen. |
| |
Also lasst uns weitermachen und |
| |
Erstellen Sie eine neue Aufgabe. Wir erstellen die Aufgabe einfach hier und nennen sie |
| |
COVID-Daten für Deutschland. |
| |
Ich möchte mit hohen Berechtigungen laufen. |
| |
Ich werde es nur ausführen, wenn der Benutzer angemeldet ist, da ich keine Anmeldedaten eingeben möchte, aber ich würde vorschlagen |
| |
Wählen Sie „Ausführen, wenn der Benutzer angemeldet ist“ oder „Ausführen, wenn nicht“, wenn Sie dies zu Produktionszwecken tun. |
| |
Denn wenn Ihr Computer aufgrund eines Windows-Updates oder aus einem anderen Grund neu gestartet wird, soll er weiterhin funktionieren. Mit dieser Option können Sie dies tun. Sie müssen Ihre Anmeldeinformationen eingeben und die Aufgabe abschließend speichern. |
| |
In Ordnung. |
| |
Was ist also ein Trigger? Das ist der Zeitpunkt, an dem ich es ausführen möchte. Also machen wir weiter und tun das. |
| |
Und nehmen wir an, wir möchten es ab morgen täglich ausführen. |
| |
Und vielleicht möchte ich es einfach um sechs Uhr morgens laufen lassen, bevor ich morgens ankomme, |
| |
was auch immer „reinkommen“ bedeutet. |
| |
Bevor ich aus dem Bett rolle und zur Arbeit gehe. Alles klar. |
| |
Daher werde ich diese Aufgabe stoppen, wenn sie länger als 30 Minuten läuft, weil das wahrscheinlich bedeutet, dass sie hängen geblieben ist. |
| |
Und ansonsten denke ich, dass wir da gut hinkommen. |
| |
Welche Aktion möchten wir also ausführen? Wir möchten JMP ausführen. Navigieren Sie dazu zum Installationsort von jmp.exe: in den Programmdateien, SAS und entweder JMP oder JMP Pro 16. Wählen Sie diese Option aus. |
| |
Und dann ist unser Argument unser JSL-Skript, das Sie hier leider manuell eingeben müssen, |
| |
was ich tun werde. |
| |
Aber seien Sie dabei vorsichtig. |
| |
Okay. |
| |
Unter „Einstellungen“ stelle ich sicher, dass die Option „Immer zulassen“ aktiviert ist. Die Ausführung muss bei Bedarf erfolgen, damit wir es sofort testen und sicherstellen können, dass es richtig funktioniert. |
| |
Und falls bereits ein Task ausgeführt wird, stoppen Sie ihn unbedingt. Das bedeutet wahrscheinlich, dass er hängen geblieben ist. Beenden Sie die Aufgabe erneut, wenn sie länger als eine Stunde läuft, nur für den Fall, dass sie hängen bleibt. |
| |
Okay, das ist also unsere Aufgabe, die jeden Tag ausgeführt wird. Wir können sie also im Wesentlichen debuggen, indem wir sie jetzt ausprobieren, da wir die Ausführung jederzeit ermöglicht haben. Klicken wir einfach mit der rechten Maustaste und wählen Sie „Ausführen“. |
| |
Hoffentlich sehen wir die Taskleiste. JMP wird kurz angezeigt, ausgeführt und dann ausgeblendet. |
| |
Wenn ich hier runterschaue, sehe ich hoffentlich, dass etwas passiert. |
| |
Okay, und dann ist es weg. |
| |
Werfen wir einen Blick auf unsere Website, sie wird aktualisiert. |
| |
Und hier ist unser vor wenigen Sekunden erstellter Bericht. |
| |
Wenn wir uns unseren Ordner ansehen, können wir sehen, dass unsere JMP-Tabelle generiert wurde und hoffentlich morgen früh um 6 Uhr, |
| |
Unsere Aufgabe wird ausgeführt und liefert uns neue Daten und einen aktualisierten Bericht. Und wenn wir mit unserem Kaffee oder Tee nach Hause kommen, können wir uns das ansehen und unsere Entscheidungen für den Tag treffen. |
| |
Damit schließe ich meinen Vortrag. Ich hoffe, dass einer der drei Aspekte, die wir heute besprochen haben, |
| |
internetbasierte Datenerfassung, |
| |
JMP Live-Scripting oder die automatische Aufgabengenerierung hat Ihnen bei Ihrer Arbeit geholfen. |
| |
Vielen Dank für Ihre Teilnahme und ich hoffe, Sie genießen den Rest der Konferenz. Tschüss. |