Wenn Sie Ihr Tracking als Add-In installieren, können Sie ein Exit-Skript verwenden. Siehe Seite 526 des Skript-Handbuchs, "Festlegen von Start- und Beendigungsskripts (optional)".
Eine Warnung bei der Verwendung einer gemeinsam genutzten Tabelle für die Nachverfolgung - nämlich Benutzerkonflikte, wenn zwei Benutzer versuchen, die Datei zu öffnen. Genauer gesagt, Benutzer1 hat es geöffnet - dann startet Benutzer2 und versucht, es zu öffnen. Einige Möglichkeiten, um dies zu beheben:
- Versuchen Sie es mit dem ganzen Skript! Du verlierst das Tracking auf Benutzer2, aber Benutzer2 gibt keinen Fehler aus.
- Sperren von Dateien - Vor dem Öffnen der JMP-Tabelle erstellt Benutzer1 eine "lock.txt" -Datei, die leer sein kann. Wenn User2 startet, prüft das Skript zuerst, ob lock.txt vorhanden ist. Falls nicht vorhanden, erstellen Sie es und öffnen Sie die JMP-Tabelle. Wenn lock.txt vorhanden ist, warten Sie entweder ein paar Sekunden und versuchen Sie es erneut, oder 2) beenden Sie das Skript sauber, ohne die Startinformationen des Protokolls zu versuchen. Nachdem Benutzer1 die JMP-Datentabelle aktualisiert hat, löscht Benutzer1 die Datei lock.txt. Das Problem, das bei dieser Methode auftreten kann, ist, dass lock.txt-Dateien im freigegebenen Verzeichnis verbleiben und nicht gelöscht werden. Dies könnte beispielsweise der Fall sein, wenn user1 abstürzt, bevor lock.txt gelöscht wurde.
- Sie können den Fehler möglicherweise auch beim Öffnen der JMP-Tabelle abfangen, anstatt Sperrdateien zu verwenden. Sperrdateien sind gut, wenn die nachfolgende Tabellenoperation lange dauert. Ihre JMP-Tracking-Datei wird ständig größer und dauert bei jedem Öffnen länger. Wenn Sie den Fehler abfangen und es nach einer kurzen Verzögerung erneut versuchen, stellen Sie sicher, dass Sie einen Zähler und eine maximale Anzahl von Wiederholungen setzen für eine Datei, die niemals verfügbar wird.
- Eine Alternative zum Anmelden in einer Datei ist das Anmelden in mehreren Dateien. Wenn ein Benutzer JMP startet, erstellt er eine JMP-Tabelle - mit einem Dateinamen, der Datumszeit und Benutzername enthält. Sie müssen dann ein Skript schreiben, das alle diese einzeiligen JMP-Tabellen liest und sie an eine große Datei anfügt.
Ich habe auch Benutzer-Tracking durch Ausleihen von Methoden von Werbetreibenden im Internet gesehen, nämlich Web Beacons. Sie können das Web () verwenden, um eine Webseite zu öffnen.
Schließlich würde ich empfehlen, dass Sie eine "Datenschutzrichtlinie" veröffentlichen und den Benutzern mitteilen, dass ihre Nutzung überwacht wird, welche Daten erfasst werden und wie sie verwendet werden. Wenn sich die Verwendung der Daten in der Zukunft ändert, veröffentlichen Sie eine überarbeitete Datenschutzrichtlinie, in der die neue Verwendung der Daten angegeben wird.
Ich stimme mit klaus819 überein, und aus Sicht eines Administrators gibt es Nicht-JMP-Methoden zum Nachverfolgen von Softwareinstallationen und der Verwendung von Software.
In JMP gibt es neben dem Senden von E-Mails noch einige andere Optionen. Ich habe vor kurzem mit der Idee gespielt, meine eigene Verwendung von JMP mithilfe eines JMP-Startskripts zu verfolgen. Einzelheiten dazu finden Sie im JMP Scripting Guide, irgendwo auf Seite 257.
Das folgende Skript bezieht sich auf JMP10, das unter Windows 7 ausgeführt wird. Für andere Betriebssysteme oder Versionen sind geringfügige Änderungen erforderlich (siehe Referenz oben). Dieses Skript schreibt bei jeder Angabe von JMP eine neue Zeile in eine Datentabelle. Es ist so eingerichtet, dass es ohne Anzeige läuft.
Ich habe ein anderes ähnliches Skript verwendet, bei dem die "event" -Variable eine andere Definition hat und das Skript zu bestimmten Zeiten vom Windows-Scheduler ausgeführt wird. In diesem Fall wird das Skript nur ausgeführt, wenn mein Laptop ausgeführt wird. Dies ist auch ein Ersatz für mich.
Das Skript hängt davon ab, ob eine bestimmte Datentabelle mit bestimmten Spaltennamen vorhanden ist. Dieses Tabellenskript ist am Ende des unten stehenden Skripts enthalten.
//!
// "//!" In der ersten Zeile eines Skripts kann das Skript geöffnet und ohne Anzeige ausgeführt werden.
// Wenn dieses Skript geöffnet ist, wird es ausgeführt und dann geschlossen. Um es zu öffnen, klicken Sie mit der rechten Maustaste darauf in der JMP Home Window-Dateiliste und // wählen Sie "Bearbeiten".
//Anmerkungen:
// Dieses Skript öffnet eine Datei mit dem Namen Data1.jmp. Das Skript für eine leere Tabelle ist unten enthalten
// In der Praxis würde sich die Protokolldatei in einem Verzeichnis befinden, auf das alle Benutzer Zugriff haben
// Das Skript wird ausgeführt, wenn ein Benutzer JMP auf diesem Computer öffnet
//
// Das Skript muss den folgenden Namen haben: jmpStartAdmin.jsl
// Das Skript kann sich an mehreren Stellen in Windows 7 befinden
// ref: Skripthandbuch S.257 (JMP 10)
// Speichern Sie das Skript hier (vorausgesetzt, JMP ist hier installiert) C: \ ProgramData \ SAS \ JMP \ jmpStartAdmin.jsl
// Wenn es bereits eine jmpStartAdmin.jsl-Datei gibt, ist es wahrscheinlich keine gute Idee, darüber zu schreiben.
//////////////////////////////////////////// ////// Das Skript
Namensvorgabe bis hier (1);
//////// Schritt 1: Holen Sie sich den Benutzernamen und die ID (von R. Lucas (Danke))
// Sehen http://msdn2.microsoft.com/en-us/library/ms724435.aspx
NameUnknown = 0;
NameFullyQualifiedDN = 1;
NameSamCompatible = 2;
NameDisplay = 3;
NameUniqueId = 6;
NameCanonical = 7;
NameUserPrincipal = 8;
NameCanonicalEx = 9;
NameServicePrincipal = 10;
NameDnsDomain = 12;
securDll = DLL laden ("Secur32.dll", AutoDeclare (false));
securDLL << DeclareFunction (
"GetUserNameExW",
Arg (Int32), // Namensformat (Code von oben verwenden)
Arg (UnicodeString (80), Ausgabe), // Namenszwischenspeicher
Arg (UInt32, Aktualisierung) // Pufferlänge
);
Benutzername = "";
Userid = "";
NameLen = 80;
securDLL << GetUserNameExW (NameDisplay, UserName, NameLen);
securDLL << GetUserNameExW (NameSamCompatible, Userid, NameLen);
Show (Benutzername);
Show (Benutzer-ID);
ver = JMP-Version ();
///////// Schritt 2: Öffnen Sie die Datei, zu der Sie Informationen hinzufügen möchten
// Hinweis: Sie müssen einen eigenen Dateipfad für den Speicherort der Datentabelle hinzufügen
dt = open ("C: \ Dateipfad \ Data1.jmp", unsichtbar); // das unsichtbare Argument verbirgt es vor dem Benutzer.
//////// Schritt 3: Fügen Sie die Informationen der Datentabelle hinzu
dt << AddRows ({Col1 = today (), Event = "Start Up",: name ("Benutzername") = Benutzername, UserID = Userid, Version = ver});
//////// Schritt 4: Schließen Sie die Protokolldatentabelle
close (dt, save ("C: \ Dateipfad \ Data1.jmp"));
//Ausgang(); Dies schließt JMP direkt nach der Ausführung des Skripts
// Wenn dieses Skript mit dem Windows-Scheduler ausgeführt würde, wäre dies der Fall
// ein bequemer Schritt zum Laufen, aber in diesem Fall wäre es wirklich sehr ärgerlich.
//////////////////////////////////////////// ///////////////// Ende des Skripts
// Dies ist das Tabellenskript für "Data1.jmp". Führen Sie dies aus, um die anfängliche leere Datentabelle zu erstellen
// Dann speichern Sie es als Dateipfad, damit das Skript es verwenden kann.
/ *
Neue Tabelle ("Data1",
Zeilen hinzufügen (0),
Neue Spalte ("TimeStamp")
Numerisch,
Kontinuierlich,
Format ("m / d / yh: m: s", 23, 0),
Eingabeformat ("m / d / yh: m: s", 0),
Werte setzen ([])
)
Neue Spalte ("Ereignis", Zeichen, Nennwert, Werte setzen ({})),
Neue Spalte ("Benutzername", Zeichen, Nominalwert, Ausgewählte Werte festlegen, Werte festlegen ({})),
Neue Spalte ("UserID", Character, Nominal, Set Values ({})),
Neue Spalte ("Version",
Numerisch,
Kontinuierlich,
Format ("Best", 12),
Werte setzen ([])
)
Neue Spalte ("Datum",
Numerisch,
Kontinuierlich,
Format ("m / d / y", 12),
Eingabeformat ("m / d / y"),
Formel (: TimeStamp - Uhrzeit (: TimeStamp))
)
Neue Spalte ("Dauer bis zum Abschluss der Aufgabe")
Numerisch,
Kontinuierlich,
Format ("hr: m", 12),
Eingabeformat ("hr: m"),
Formel (Tageszeit (: Zeitstempel -: Zielzeit))
)
Neue Spalte ("Zielzeit",
Numerisch,
Kontinuierlich,
Format ("h: m", 8),
Eingabeformat ("h: m"),
Werte setzen ([])
)
Neue Spalte ("Wochentag")
Numerisch,
Kontinuierlich,
Format ("Best", 12),
Formel (Wochentag (: Zeitstempel))
)
)
Sie können ein jsl-Skript haben, das automatisch ausgeführt wird, wenn JMP gestartet wird. Weitere Informationen finden Sie im JMP-Skripthandbuch auf Seite 259 (JMP 10).
Dieses Snippet unten sollte bei jedem Start von JMP eine E-Mail mit Benutzer- und Zeitinformationen senden. Das Skript muss den Namen "jslStart.jsl" haben und lokal in "C: \ ProgramData \ SAS \ JMP \" abgelegt sein.
Mir ist jedoch kein Befehl bekannt, der durch das Beenden von JMP aktiviert wird. Eine Betriebssystemlösung ist wahrscheinlich leistungsfähiger. Ich habe das folgende Skript nicht getestet, da ich JMP für Macintosh verwende.
// Sendet eine E-Mail, wenn JMP mit Informationen zu Benutzername und Startzeit gestartet wird
Ob ( Gastgeber ist ( Windows ) .
Mail (
" to@me.com " .
"Nutzer " || Wort ( 3 . Standardverzeichnis abrufen () . "/" ) || "läuft JMP" .
"Nutzer " || Wort ( 3 . Standardverzeichnis abrufen () . "/" ) || "hat eine JMP-Sitzung am" ||
Format ( Heute () . "mdy hm" ) || "."
) .
"Mail ist nur unter Windows verfügbar."
) ;