Si vous installez votre suivi en tant que complément, vous pouvez avoir un script de sortie. Reportez-vous à la page 526 du manuel de script, "Spécifier les scripts de démarrage et de sortie (facultatif)".
Une précaution lors de l'utilisation d'une table partagée pour le suivi, à savoir le conflit entre utilisateurs lorsque deux utilisateurs tentent d'ouvrir le fichier. Plus spécifiquement, l'utilisateur1 l'a ouvert - puis l'utilisateur2 démarre et essaie de l'ouvrir. Quelques façons de résoudre ce problème:
- mettez un try () autour du script entier! Vous perdrez le suivi sur l'utilisateur2, mais l'utilisateur2 ne générera pas d'erreur.
- Verrouiller les fichiers - avant d'ouvrir la table JMP, l'utilisateur1 crée un fichier "lock.txt", qui peut être vide. Lorsque l'utilisateur 2 démarre, le script vérifie d'abord la présence de lock.txt. S'il est absent, créez-le et ouvrez la table JMP. Si lock.txt est présent, alors 1) attendez quelques secondes et réessayez, ou 2) quittez le script proprement sans essayer d’essayer les informations de démarrage du journal. Une fois que l'utilisateur1 a mis à jour la table de données JMP, il supprime le fichier lock.txt. Le problème que vous pouvez obtenir avec cette méthode est que les fichiers lock.txt persistent dans le répertoire partagé et ne sont pas supprimés. Cela peut se produire, par exemple, si l'utilisateur1 se bloque avant la suppression de lock.txt.
- Vous pouvez également potentiellement intercepter l'erreur lorsque la table JMP est ouverte au lieu d'utiliser des fichiers de verrouillage. Les fichiers de verrouillage sont bons si l'opération de table suivante prend beaucoup de temps. La taille de votre fichier de suivi JMP augmentera progressivement et les utilisateurs s’ouvriront plus longtemps à chaque fois. Si vous interceptez l’erreur et réessayez après un bref délai, veillez à placer un compteur et un nombre maximal de tentatives; sinon, les utilisateurs risquent de rester bloqués pour un fichier qui ne devient jamais disponible.
- Une alternative à la connexion à 1 fichier consiste à se connecter à plusieurs fichiers. Lorsqu'un utilisateur démarre JMP, il crée une table JMP - avec un nom de fichier qui comprend l'heure et le nom d'utilisateur. Vous devez ensuite écrire un script qui lit toutes ces tables JMP à une ligne et les ajoute à un grand fichier.
J'ai également constaté que le suivi des utilisateurs était effectué à l'aide de méthodes d'emprunt utilisées par les annonceurs sur Internet, à savoir des balises Web. Vous pouvez utiliser le Web () pour ouvrir une page Web.
Enfin, je vous recommanderais de publier une "politique de confidentialité" et d'indiquer aux utilisateurs que leur utilisation est surveillée, quelles données sont collectées et comment elles vont être utilisées. Si l'utilisation des données change à l'avenir, publiez une "politique de confidentialité" révisée indiquant les nouvelles utilisations des données.
Je suis d'accord avec klaus819 et, du point de vue d'un administrateur, il existe des méthodes non-JMP permettant de suivre les installations et l'utilisation du logiciel.
À l'intérieur de JMP, il existe d'autres options que l'envoi de courrier électronique. Je jouais récemment avec une idée de suivre ma propre utilisation de JMP à l'aide d'un script de démarrage JMP. Les détails sur la procédure à suivre figurent dans le Guide de rédaction de scripts JMP, à la page 257 environ.
Le script ci-dessous concerne JMP10 sous Windows 7; de petites modifications sont nécessaires pour les autres systèmes d'exploitation ou versions (voir la référence ci-dessus). Ce script écrit une nouvelle ligne dans une table de données chaque fois que JMP est indiqué. Sa mise en place pour fonctionner sans être affiché.
J'ai utilisé un autre script similaire dans lequel la variable "event" a une autre définition et le script est exécuté par le planificateur de fenêtres à des moments précis. Dans ce cas, le script ne s'exécute que si mon ordinateur portable est en cours d'exécution, ce qui est également une substitution pour moi.
Le script dépend d’une table de données spécifique avec des noms de colonne spécifiques. Ce script de table est inclus à la fin du script ci-dessous.
//!
// "//!" sur la première ligne d'un script, le script s'ouvre et s'exécute sans être affiché.
// Lorsque ce script est ouvert, il s'exécutera, puis se fermera. Pour l'ouvrir, pour l'éditer, cliquez dessus avec le bouton droit de la souris et // sélectionnez "Éditer".
//Remarques:
// Ce script ouvre un fichier appelé Data1.jmp. Le script pour une table vide est inclus ci-dessous
// En pratique, le fichier "log" se trouverait dans un répertoire accessible à tous les utilisateurs.
// Le script sera exécuté lorsqu'un utilisateur ouvrira JMP sur cet ordinateur.
//
// Le script doit avoir ce nom: jmpStartAdmin.jsl
// Le script peut être à plusieurs endroits dans Windows 7
// ref: Guide de script p.257 (JMP 10)
// Enregistrez le script ici (en supposant que JMP y soit installé) C: \ ProgramData \ SAS \ JMP \ jmpStartAdmin.jsl
// S'il existe déjà un fichier jmpStartAdmin.jsl, ce ne serait probablement pas une bonne idée de l'écraser.
////////////////////////////////////////////////////////// //////Le scénario
Noms par défaut ici (1);
//////// Étape 1: Obtenez le nom d'utilisateur et l'ID (de R. Lucas (merci))
// voir 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 = Charger la DLL ("Secur32.dll", AutoDeclare (false));
securDLL << DeclareFunction (
"GetUserNameExW",
Arg (Int32), // Format du nom (utilisez le code ci-dessus)
Arg (UnicodeString (80), sortie), // Tampon de nom
Arg (UInt32, update) // Longueur du tampon
)
UserName = "";
Userid = "";
NameLen = 80;
securDLL << GetUserNameExW (NameDisplay, UserName, NameLen);
securDLL << GetUserNameExW (NameSamCompatible, ID utilisateur, NameLen);
Show (Nom d'utilisateur);
Show (ID utilisateur);
ver = version JMP ();
///////// Étape 2: Ouvrez le fichier auquel vous souhaitez ajouter des informations.
// remarque: vous devez ajouter votre propre chemin de fichier pour l'emplacement de la table de données
dt = open ("C: \ chemin du fichier \ Data1.jmp", invisible); // l'argument invisible le cache à l'utilisateur.
//////// Étape 3: Ajouter les informations à la table de données
dt << AddRows ({Col1 = today (), Event = "Start Up",: name ("Nom d'utilisateur") = UserName, UserID = Userid, Version = ver});
//////// Étape 4: fermez le tableau de données du journal
close (dt, save ("C: \ chemin du fichier \ Data1.jmp"));
//Sortie(); Ceci ferme (quitte) JMP juste après l'exécution du script
// si ce script était exécuté avec le programmateur Windows, cela
// est une étape commode à exécuter, mais dans ce cas, ce serait vraiment très ennuyant.
////////////////////////////////////////////////////////// /////////////////// fin du script
// Ceci est le script de table pour "Data1.jmp", lancez-le pour créer la table de données vide initiale
// Puis enregistrez-le en tant que chemin de fichier afin que le script puisse l'utiliser.
/ *
Nouvelle table ("Data1",
Ajouter des lignes (0),
Nouvelle colonne ("TimeStamp",
Numérique,
Continu,
Format ("m / j / yh: m: s", 23, 0),
Format d'entrée ("m / j / yh: m: s", 0),
Définir les valeurs ([])
),
Nouvelle colonne ("Evénement", Caractère, Nominal, Valeurs définies ({})),
Nouvelle colonne ("Nom d'utilisateur", Caractère, Nominal, Définir sélectionné, Définir les valeurs ({})),
Nouvelle colonne ("UserID", Caractère, Nominal, Valeurs définies ({})),
Nouvelle colonne ("Version",
Numérique,
Continu,
Format ("Meilleur", 12),
Définir les valeurs ([])
),
Nouvelle colonne ("Date",
Numérique,
Continu,
Format ("m / d / y", 12),
Format d'entrée ("m / j / y"),
Formule (: TimeStamp - Heure du jour (: TimeStamp))
),
Nouvelle colonne ("Durée de la tâche",
Numérique,
Continu,
Format ("hr: m", 12),
Format d'entrée ("hr: m"),
Formule (heure du jour (: TimeStamp -: heure cible))
),
Nouvelle colonne ("Heure cible",
Numérique,
Continu,
Format ("h: m", 8),
Format d'entrée ("h: m"),
Définir les valeurs ([])
),
Nouvelle colonne ("Jour de la semaine",
Numérique,
Continu,
Format ("Meilleur", 12),
Formule (Jour de la semaine (: TimeStamp))
)
)
Vous pouvez avoir un script jsl qui s'exécute automatiquement au démarrage de JMP. Consultez le guide de script JMP à la page 259 (JMP 10).
Cet extrait de code ci-dessous doit envoyer un courrier électronique contenant les informations sur l'utilisateur et l'heure à chaque démarrage de JMP. Le script doit être nommé jslStart.jsl et placé localement dans C: \ ProgramData \ SAS \ JMP \ (il peut différer d’une version Windows à une autre, consultez le guide de script).
Cependant, je ne suis pas au courant d'une commande activée en quittant JMP. Une solution de système d'exploitation est probablement plus puissante. Je n'ai pas testé le script ci-dessous car j'utilise JMP pour Macintosh.
// Envoie un courrier électronique au démarrage de JMP avec des informations sur le nom d'utilisateur et l'heure de début.
Si ( L'hôte est ( les fenêtres ) ,
Courrier (
" to@me.com " ,
"Utilisateur" || Mot ( 3 , Obtenir le répertoire par défaut () , "/" ) || "exécute JMP" ,
"Utilisateur" || Mot ( 3 , Obtenir le répertoire par défaut () , "/" ) || "a démarré une session JMP sur" ||
Format ( Aujourd'hui () , "hm hm" ) || "."
) ,
"Le courrier n'est disponible que sous Windows."
) ;