So schreiben Sie selbstaktualisierende JMP-Add-InsDurch die Einrichtung eines „Add-in-Depots“ können Sie ganz einfach eine Sammlung selbstaktualisierender JMP-Add-ins verwalten. In diesem Beispiel ist das Depot nichts anderes als ein Ordner, der Folgendes enthält:
- Die JMP-Add-In-Datei „com.jmp.brady.addin1.jmpaddin“.
- Eine Metadatendatei, „File Metadata.jmp“.
In einem typischen Fall befindet sich das Add-In-Depot in einem Serverordner, auf den Add-In-Benutzer Lesezugriff haben. Die Metadatendatei ist eine JMP-Tabelle, die Informationen zu jedem Add-In im Depot speichert. In diesem Beispiel überprüfen wir damit, wann das Add-In zuletzt veröffentlicht wurde.
Wenn das Add-In aktuell ist, wenn der Benutzer es ausführt, wird das Add-In ohne großes Aufsehen ausgeführt. Wenn der Benutzer jedoch versucht, eine veraltete Version des Add-Ins auszuführen, wird er oder sie aufgefordert, die neue Version zu installieren:
Wenn der Benutzer auf „Abbrechen“ klickt, wird das aktuelle Add-In ausgeführt. Wenn er oder sie auf „OK“ klickt, wird das Update automatisch installiert und die veraltete Version überschrieben. In diesem Beispiel wird der Benutzer über die Installation informiert und aufgefordert, das Add-In erneut auszuführen:

Selbstaktualisierende JMP-Add-Ins: ein Schritt-für-Schritt-Beispiel.
- Öffnen Sie „Hello Script.jsl“.
- Stellen Sie sicher, dass in Zeile 10 zwischen den Anführungszeichen das Datum 01.08.2012 steht.
- Stellen Sie sicher, dass Zeile 22 die Zeichenfolge „Hello world“ als Textfeldargument enthält.
- Hinweis: Zeile 15 ruft die auf auf Updates prüfen Funktion, die nicht in unserem Hauptskript, sondern in „update_functions.jsl“ enthalten ist. Dies ist der Grund dafür enthalten Aussage in Zeile 13. Das ist schön, weil es unser Hauptskript einfacher hält, aber wir müssen sicherstellen, dass wir „update_functions.jsl“ als zusätzliche Datei einschließen, wenn wir ein Add-In erstellen.
- Speichern und schließen Sie die Datei.

- Öffnen Sie „Datei Metadata.jmp“:
- Beachten Sie, dass der Dateiname in der Spalte „Datei“ mit der Zeichenfolge übereinstimmen muss, die „Addin_Name“ in Zeile 11 des obigen Skripts zugewiesen wurde.
- Stellen Sie sicher, dass das Veröffentlichungsdatum der 01.08.2012 ist. Ändern Sie es bei Bedarf, speichern Sie es und schließen Sie es.

- Öffnen Sie „update_functions.jsl“:
- Legen Sie in Zeile 4 die Variable „depot_path“ auf den Ordner fest, den Sie für Ihr Depot verwenden möchten.
- Beachten Sie, dass die Variable meta_file in Zeile 5 mit dem Namen der Metadatendatei übereinstimmen muss.
- Speichern und schließen Sie diese Datei.

- Erstellen Sie das Add-In:
- Wählen Sie im JMP-Menü Datei >> Neu >> Neues Add-In
- Auf der Registerkarte „Allgemeine Informationen“:
- Geben Sie den Namen des Add-Ins ein, in diesem Beispiel „Hello World“.
- Geben Sie die Add-In-ID ein. Was auch immer Sie hier eingeben, muss genau mit der Spalte „Datei“ in der Metadatendatei und der Zeichenfolge „Addin_Name“ in „Hello Script.jsl“ übereinstimmen.

- Auf der Registerkarte „Menüelemente“:
- Klicken Sie auf die Schaltfläche „Hinzufügen“.
- Geben Sie im Textfeld „Name des Menüelements“ des Bedienfelds „Allgemein“ den Namen ein, der im Dropdown-Menü des Add-Ins angezeigt werden soll.
- Wählen Sie im Bereich „Aktion“ das Optionsfeld „JSL in dieser Datei ausführen:“ aus.
- Klicken Sie auf „Durchsuchen“ und fügen Sie die Datei „Hello Script.jsl“ hinzu.

- Auf der Registerkarte „Zusätzliche Dateien“:
- Klicken Sie auf „Hinzufügen“.
- Navigieren Sie zur Datei „update_functions.jsl“ und fügen Sie sie hinzu.
- Klicken Sie auf „Speichern“ und speichern Sie die neue .jmpaddin-Datei an einem geeigneten Ort.

- Richten Sie das Depot ein:
- Platzieren Sie die soeben erstellte .jmpaddin-Datei zusammen mit der Datei „File Metadata.jmp“ in dem Ordner, den Sie als Add-In-Depot-Ordner angegeben haben (Zeile 4 der Datei „update_functions.jsl“).
- Testen Sie das Add-In:
- Wählen Sie in der JMP-Menüleiste Add-Ins >> Hello World (oder was auch immer Sie als Menüelementtext eingegeben haben) und das einfache Fenster „Hello World“ wird angezeigt.
- Klicken Sie auf „OK“, um das Fenster zu schließen.
- Erstellen Sie eine aktualisierte Version des Add-Ins:
- Öffnen Sie „Hello Script.jsl“.
- Ändern Sie Zeile 10 so, dass zwischen den Anführungszeichen das Datum 01.10.2012 steht.
- Ändern Sie Zeile 22 so, dass sie die Zeichenfolge „Hellooooooooo world“ als Textfeldargument enthält.
- Speichern und schließen Sie die Datei.
- Führen Sie die Schritte 4a bis 4d genau wie zuvor aus, mit folgender wichtiger Ausnahme:
- Beim Erstellen des Add-Ins auf der Registerkarte „Allgemeine Informationen“ Stellen Sie sicher, dass das Kontrollkästchen „Nach dem Speichern installieren“ NICHT aktiviert ist.
- Platzieren Sie die gerade erstellte .jmpaddin-Datei im Depot und überschreiben Sie dabei die ältere .jmpaddin-Datei.
Beachten Sie, dass wir dies noch nicht getan haben veröffentlicht das Add-in, da wir das Veröffentlichungsdatum in der Metadatendatei noch ändern müssen. Um dies anzuzeigen, wählen Sie im JMP-Menü Add-Ins >> Hello World (oder was auch immer Sie als Menüpunkttext eingegeben haben) und das Fenster „Hello World“ wird wie zuvor angezeigt.
- Veröffentlichen Sie das Add-In:
- Öffnen Sie „Datei Metadata.jmp“. Ändern Sie das Veröffentlichungsdatum auf den 01.10.2012. Speichern und schließen Sie die Datei.
- Testen Sie das automatische Update:
- Wählen Sie im JMP-Menü Add-Ins >> Hello World. Das Add-in stellt fest, dass ein Update verfügbar ist, und zeigt Ihnen das Update-Fenster an.
- Klicken Sie auf „Abbrechen“, um das Update abzulehnen und das „Hello World“-Fenster wie zuvor anzuzeigen.
- Wählen Sie Add-Ins >> Hello World, um das Add-In erneut auszuführen.
- Wenn dieses Mal das Update-Fenster erscheint, klicken Sie auf „OK“, um das Update zu akzeptieren.
- Klicken Sie auf „OK“, um das Bestätigungsfenster zu schließen.
- Führen Sie das Add-In erneut aus. Das neue Add-In wird ausgeführt und zeigt „Hellooooooooo World“ als Fenstertext an.
Betreff: So schreiben Sie selbstaktualisierende JMP-Add-Ins@ivan_j_moore Ich hatte das gleiche Problem (internationales Unternehmen), also bin ich dazu übergegangen, die Add-in-Versionsnummer anstelle des Datums zu verwenden. Also im Grunde genommen:
// Get the installed JMP AddIn version
installedAddIn = Get Addin( "com.jmp.brady.addin1.jmpaddin" );
installedAddInVer = installedAddIn << version;
addinLocation = "http://gitlab.contoso.com/addin/updateLocation/addin1.jmpaddin";
depot_path = "http://gitlab.contoso.com/addin/updateLocation/";
meta_file = "File Metadata.csv";
Try(
dtm = Open( depot_path || meta_file, invisible );
r = ((dtm << selectwhere( :File == "addin1.jmpaddin" )) << get selected rows)[1];
mostrecent = Column( dtm, "Version" )[r];,
print("Cannot access update site.");
mostrecent = installedAddInVer;
Throw("AddIn cannot check for updates.");
);
If( mostrecent != installedAddInVer,
requestUpdate( mostrecent, installedAddInVer, addinLocation);
);
Close( dtm, nosave );Der Nachteil (so könnte man es wohl nennen?) besteht darin, dass die Versionsnummer im AddIn und die Versionsspalte (anstelle der Datumsspalte) in den Dateimetadaten für jede neue Version gleich sein müssen, aber das ist nicht so groß ein Deal (das Datum muss sowieso noch aktualisiert werden). Ich habe auch für Dateimetadaten auf .csv umgestellt, weil ich ein Python-Skript habe, das JMP-Add-Ins erstellt, und Python keine .jmp-Dateien schreiben kann. Ich sollte wirklich einen Beitrag über dieses Drehbuch verfassen ...
Betreff: So schreiben Sie selbstaktualisierende JMP-Add-InsHallo Jeff,
Dies funktioniert sehr gut für die Steuerung von Add-Ins mit einer Gruppe oder einem Team.
Ich habe ein kleines Problem damit. Wenn ich das Update gemäß Ihrer Anleitung durchführe, erhalte ich immer diese Meldung.
„Update-Version ist noch verfügbar“
Wenn ich auf „OK“ klicke, wird die Installation durchgeführt, aber beim nächsten Mal erscheint die Meldung erneut.
Ich glaube, es hat etwas mit den unterschiedlichen Zeitzonen zu tun, ich bin in Großbritannien.
Ich habe die Zeitzone in der Metadatei „Veröffentlichungsdatum“ auf d/m/y aktualisiert.
Ich habe den Anfang der Skriptzeile 10 „im Format“ auf dd/mm/yyyy aktualisiert.
Muss in der Datei „Update-Funktion“ etwas aktualisiert werden?
Jede Hilfe wird geschätzt.
Betreff: So schreiben Sie selbstaktualisierende JMP-Add-Ins<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, das hört sich sehr nützlich an. Leider hat es bei mir nicht funktioniert (bis zum letzten Punkt f. war alles in Ordnung).
Ist es möglich, dass etwas (Root? Ordner?) in der „Datei Metadata.jmp“ geändert werden?
Bearbeiten:
In meinem Fall gab es ein Namensproblem. Ich konnte das Problem beheben, indem ich die folgenden Namen identisch festlegte:
- Add-In-Name
- Add-In-ID
- Datei in „File Metadata.jmp“
– der Dateiname des jmpaddin
Ich habe alle diese benannt: „Foo.jmpaddin“
Jetzt funktioniert es wie ein Zauber!