Se installi il monitoraggio come un componente aggiuntivo, puoi avere uno script di uscita. Vedere pagina 526 del manuale di scripting, "Specifica gli script di avvio ed uscita (opzionale)".
Un avvertimento quando si utilizza una tabella condivisa per il tracciamento, ovvero la contesa degli utenti quando 2 utenti tentano di aprire il file. Più specificamente, user1 lo ha aperto, quindi l'utente2 si avvia e prova ad aprirlo. Un paio di modi per affrontare questo:
- metti un try () attorno all'intero script! Perderai il monitoraggio su user2, ma user2 non eseguirà l'errore.
- Blocca file: prima di aprire la tabella JMP, utente1 crea un file "lock.txt", che può essere vuoto. All'avvio di Utente2, lo script verifica innanzitutto la presenza di lock.txt - se è discro, crealo e apre la tabella JMP. Se lock.txt è presente, allora 1) attendere alcuni secondi e riprovare, oppure 2) uscire dallo script in modo pulito senza provare le informazioni di avvio del log. Dopo che l'utente 1 ha terminato di aggiornare la tabella di dati JMP, quindi utente1 cancella il file lock.txt. Il problema che puoi ottenere con questo metodo è che i file lock.txt persistono nella directory condivisa e non vengono eliminati: ciò accadrebbe, ad esempio, se l'utente1 si arrestasse in modo anomalo prima che il file lock.txt fosse cancellato.
- Potresti potenzialmente intercettare l'errore sulla tabella JMP aperta invece di utilizzare i file di blocco. I file di blocco sono validi se l'operazione successiva della tabella richiede molto tempo. Il tuo file di tracciamento JMP aumenterà costantemente di dimensioni e richiederà più tempo per gli utenti di aprirsi ogni volta. Se intercetti l'errore e riprova dopo un breve ritardo, assicurati di mettere un contatore e un numero massimo di tentativi - altrimenti gli usi possono rimanere bloccati in attesa per un file che non diventa mai disponibile.
- Un'alternativa al login in un file è quella di accedere a più file. Quando un utente avvia JMP, crea una tabella JMP - con un nome file che include il datetime e il nome utente. È quindi necessario scrivere uno script che legga tutte queste tabelle JMP a 1 riga e le accoda a 1 grande file.
Ho anche visto il monitoraggio degli utenti effettuato prendendo in prestito metodi di inserzionisti su Internet, ovvero i web beacons. Puoi usare il web () per aprire una pagina web.
Infine, ti consiglio di pubblicare una "informativa sulla privacy" e di far sapere agli utenti che il loro utilizzo viene monitorato, quali dati vengono raccolti e come verranno utilizzati. Se l'uso dei dati cambia in futuro, pubblica una "politica sulla privacy" rivista indicante il nuovo uso (i) dei dati.
Sono d'accordo con klaus819 e dal punto di vista dell'amministratore esistono metodi non JMP per il monitoraggio delle installazioni software e dell'uso del software.
All'interno di JMP, ci sono altre opzioni oltre all'invio di e-mail. Recentemente stavo giocando con un'idea per tracciare il mio uso di JMP usando uno script di avvio JMP. I dettagli su come farlo sono nella Guida allo scripting di JMP, da qualche parte intorno alla pagina 257.
Lo script di seguito è per JMP10 in esecuzione in Windows 7, sono necessari piccoli accorgimenti per altri sistemi operativi o versioni (vedere il riferimento sopra). Questo script scriverà una nuova riga in una tabella di dati ogni volta che viene specificato JMP. È configurato per funzionare senza essere visualizzato.
Ho usato un altro script simile in cui la variabile "evento" ha un'altra definizione e lo script viene eseguito dallo scheduler di Windows in momenti specifici. In questo caso lo script viene eseguito solo se il mio portatile è in esecuzione, il che è un surrogato anche per me.
Lo script dipende dall'avere una tabella dati specifica con nomi di colonne specifici. Questo script di tabella è incluso alla fine dello script qui sotto.
//!
// "//!" sulla prima riga di uno script lascia lo script aperto ed eseguito senza essere visualizzato.
// Quando questo script viene aperto, verrà eseguito e quindi chiuso. Per aprirlo, per modificarlo, fare clic con il pulsante destro su di esso dall'elenco dei file della finestra Home di JMP e // selezionare "Modifica".
//Gli appunti:
// Questo script apre un file chiamato Data1.jmp. Di seguito è riportato lo script per un tavolo vuoto
// In pratica, il file "log" si troverebbe su una directory a cui tutti gli utenti hanno accesso
// Lo script verrà eseguito quando un utente apre JMPon questo computer
//
// Lo script deve avere questo nome: jmpStartAdmin.jsl
// Lo script può trovarsi in diverse posizioni in Windows 7
// ref: Scripting Guide p.257 (JMP 10)
// Salva qui lo script (supponendo che JMP sia installato qui) C: \ ProgramData \ SAS \ JMP \ jmpStartAdmin.jsl
// Se esiste già un file jmpStartAdmin.jsl, probabilmente non sarebbe una buona idea scriverci sopra.
////////////////////////////////////////////////// //////Il copione
Nomi predefiniti qui (1);
//////// Step 1: Ottieni Username e ID (da R. Lucas (grazie))
// Vedi 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 = Carica DLL ("Secur32.dll", AutoDeclare (false));
securDLL << DeclareFunction (
"GetUserNameExW",
Arg (Int32), // Nome in formato (usa il codice dall'alto)
Arg (UnicodeString (80), output), // Name buffer
Arg (UInt32, update) // Lunghezza del buffer
);
UserName = "";
Userid = "";
NameLen = 80;
securDLL << GetUserNameExW (NameDisplay, UserName, NameLen);
securDLL << GetUserNameExW (NameSamCompatible, Userid, NameLen);
Mostra (UserName);
Mostra (ID utente);
ver = JMP Version ();
///////// Passaggio 2: aprire il file a cui si desidera aggiungere informazioni
// nota: devi aggiungere il tuo percorso file per la posizione della tabella dati
dt = open ("C: \ percorso file \ Data1.jmp", invisibile); // l'argomento invisibile lo nasconde all'utente.
//////// Passaggio 3: aggiungere le informazioni alla tabella dei dati
dt << AddRows ({Col1 = today (), Event = "Start Up",: name ("Nome utente") = UserName, UserID = Userid, Version = ver});
//////// Passaggio 4: chiudere la tabella dei dati del registro
close (dt, save ("C: \ percorso file \ Data1.jmp"));
//Uscita(); Questo chiude (esce) JMP subito dopo l'esecuzione dello script
// se questo script fosse eseguito con lo scheduler di Windows, lo farebbe
// essere un buon passo per correre, ma in questo caso sarebbe davvero molto fastidioso.
////////////////////////////////////////////////// ///////////////// fine dello Script
// Questo è lo script di tabella per "Data1.jmp", eseguirlo per creare la tabella di dati vuota iniziale
// Quindi salvalo come percorso file in modo che lo script possa usarlo.
/ *
Nuova tabella ("Dati1",
Aggiungi righe (0),
Nuova colonna ("TimeStamp",
Numerico,
Continuo,
Formato ("m / g / m: m: s", 23, 0),
Formato di input ("m / g / m: m: s", 0),
Imposta valori ([])
),
Nuova colonna ("Event", Character, Nominal, Set Values ({})),
Nuova colonna ("Nome utente", Carattere, Nominale, Imposta selezione, Imposta valori ({})),
Nuova colonna ("UserID", Character, Nominal, Set Values ({})),
Nuova colonna ("Versione",
Numerico,
Continuo,
Formato ("Migliore", 12),
Imposta valori ([])
),
Nuova colonna ("Data",
Numerico,
Continuo,
Formato ("m / d / y", 12),
Formato di input ("m / d / y"),
Formula (: TimeStamp - Time Of Day (: TimeStamp))
),
Nuova colonna ("Durata per completare l'operazione",
Numerico,
Continuo,
Formato ("hr: m", 12),
Formato di input ("hr: m"),
Formula (Ora del giorno (: TimeStamp -: Target Time))
),
Nuova colonna ("Target Time",
Numerico,
Continuo,
Formato ("h: m", 8),
Formato di input ("h: m"),
Imposta valori ([])
),
Nuova colonna ("Giorno della settimana",
Numerico,
Continuo,
Formato ("Migliore", 12),
Formula (Day Of Week (: TimeStamp))
)
)
Puoi avere uno script jsl che viene eseguito automaticamente all'avvio di JMP. Cerca nella guida alla creazione di script JMP pagina 259 (JMP 10).
Questo snippet di seguito dovrebbe inviare una mail con informazioni su Utente e Ora ogni volta che qualcuno avvia JMP. Lo script deve essere denominato jslStart.jsl e posizionato localmente in C: \ ProgramData \ SAS \ JMP \ (potrebbe essere diverso tra le versioni di Windows, consultare la guida allo scripting).
Tuttavia, non sono a conoscenza di un comando che viene attivato uscendo da JMP. Una soluzione OS è probabilmente più potente. Non ho testato lo script qui sotto poiché utilizzo JMP per Macintosh.
// Invia una mail all'avvio di JMP con informazioni su nome utente e ora di inizio
Se ( L'host è ( finestre ) ,
posta (
" to@me.com " ,
"Utente " || parola ( 3 , Ottieni la directory predefinita () , "/" ) || "esegue JMP" ,
"Utente " || parola ( 3 , Ottieni la directory predefinita () , "/" ) || "ha avviato una sessione JMP su" ||
Formato ( Oggi () , "mdy hm" ) || ""
) ,
"La posta è disponibile solo su Windows."
) ;