• Aucun résultat trouvé

Tag HTML pour un lien vers un autre HTML

- Il faut modifier le titre du lien : value= « chemin du fichier ».

- Il faut modifier le chemin du fichier HTML : onclick="window.open('./ « chemin du fichier HTML »).

Nous obtenons ce résultat durant les phases de tests utilisateurs (12 licences utilisées au maximum) :

Figure 22 : Page web principale Licence monitoring

Ce graphique linéaire est obtenu en vue d’être placé sur le serveur de production, c’est-à-dire pour les trois villes. A ce titre, il a été convenu de stipuler dans un champ juxtaposé au graphique :

- Le nom du pack licence, c’est-à-dire Pro/ENGINEER.

- Le nombre total et réel des licences effectivement achetées pour ce module, en l’occurrence 51 licences pour le modules PRO/E FOUNDATION.

J’ai choisi, après consultation de mettre une marge pour cette ordonnée afin d’avoir une meilleure visibilité sur le graphique linéaire, ainsi, cette ordonnée est statique et est graduée de 0 à 60.

Tous les graphiques linéaires contiennent les mesures d’utilisation d’une semaine au maximum ; par conséquent, l’utilisateur final pourra suivre quotidiennement l’utilisation de ces licences. De plus, si je place la souris d’ordinateur en un point précis du graphique linéaire, des données supplémentaires apparaissent indiquant précisément, le jour, l’heure et le nombre exact de licences utilisées.

4.2.8 Une macro VBA du monitoring Licence Pro/ENGINEER a) Les fichiers *.ini

Les fichiers *.ini sont des fichiers textes utilisés pour enregistrer les options d'un programme. Ces fichiers me permettent de garder en mémoire certaines informations afin de contrôler les dates, les pics, l’émission de mails, les pics pour pouvoir les comparer ultérieurement.

Pour l’utiliser en VBA, il faut ajouter deux déclarations dans le module et utiliser deux fonctions, la fonction Lire le format string (représente le texte à lire) et écrire un texte (cf. annexe D

PARAMETERS.INI et exemple ci-dessous « MaxLicence.xlsm!userwogroup.userwogroup »). Néanmoins, une nouvelle fonction est écrite afin de lire une donnée de format date.

b) Lire un texte et écrire dans un texte

Pour écrire des données sans en supprimer dans l’ensemble de mes fichiers *.dat et *.txt, j’utilise la fonction « Append ». (cf. http://warin.developpez.com/access/fichiers/ et exemple ci-dessous « MaxLicence.xlsm!userwogroup.userwogroup »)

c) La mise à jour des données provenant d’une source externe

La mise à jour de données externes à Excel, c’est-à-dire à partir d’un fichier texte (comme

« UserGroup.txt ») ou d’un fichier *.dat (comme « ProE_08_Tolerance_Analysis.dat ») s’effectue grâce à la fonction « Selection.QueryTable.Refresh BackgroundQuery:=False » en VBA.

Mais avant de pouvoir effectuer le rafraichissement des données, il faut paramétrer le fichier Excel en lui spécifiant une base de données externe. J’ai donc suivi le tutoriel Windows en premier lieu (cf.

http://www.excel-online.net/donnees_ext.html )

Exemple d’un programme utilisant les principes listés : MaxLicence.xlsm!userwogroup.userwogroup ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

‘Déclaration des Fonctions nécessaires aux fichiers *.ini ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName AsString, ByVal lpKeyName As Any, ByVal lpDefault AsString, _ ByVal lpReturnedStringAsString, ByVal nSize AsLong, ByVal lpFileName AsString) AsLong Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA"

_

(ByVal lpApplicationName AsString, ByVal lpKeyName As Any, ByVal lpStringAs Any, _ ByVal lpFileName AsString) AsLong

’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Fin Déclaration des Fonctions nécessaires aux fichiers ini ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

‘Début du programme

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Déclaration des variables

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

Dim texte AsString, intFic AsInteger

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Fin Déclaration des variables ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Supprimer le précédent fichier regroupant les utilisateurs non liés à un groupe

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ Kill ("C:\Inetpub\wwwroot\ptcstat\unkwown_group_user.txt")

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Lire les nouveaux utilisateurs non liés à un groupe dans parameters.ini (cf. ANNEXE A)

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ texte = LireINI("unkwown_group_user", "MaVariable")

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Créer le fichier unkwown_group_user.txt et écrire les nouveaux utilisateurs non

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ intFic = FreeFile

Open "C:\Inetpub\wwwroot\ptcstat\unkwown_group_user.txt"For Append As intFic Print #intFic, texte

Close intFic EndSub ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Fin du programme ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Fonction Lire et écrire dans parameters.ini

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

Function EcrireINI(Entete AsString, Variable AsString, Valeur AsString) AsString

Fichier = "C:\Inetpub\wwwroot\ptcstat\Parameters.ini"

WriteINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)

EndFunction

Function LireINI(Entete AsString, Variable AsString) AsString

Dim Retour AsString

Fichier = "C:\Inetpub\wwwroot\ptcstat\Parameters.ini"

Retour = String(255, Chr(0))

LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), Fichier))

EndFunction

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ‘Fin de la fonction Lire et écrire dans parameters.ini

4.2.9 Exemple d’utilisation du script Perl pour le projet Pro/ENGINEER

Le programme écrit en Perl (get_lice.pl) a plusieurs fonctionnalités, il exécute les actions suivantes :

- Connexion au serveur de licences. - Recherche de la date en cours.

- Insertion des données dans un fichier *.dat pour chacune des cinq licences.

Chaque licence possède son fichier, avec pour option de toujours accumuler les données sans écraser ou supprimer des données.

De plus, ce programme Perl permet de spécifier l’intervalle de temps (l’abscisse de chaque graphique) qui sera affiché via le NEOPOST_PROE_LICENSE_MONITORING.htm.

Le script Perl nous permet de trouver directement le nombre d’utilisateurs par type de licences. Mais, avant cette étape, il faut trouver l’ID de la licence dans le fichier « ptc_license.dat » fourni par PTC.

Tableau 3 : Liste des licences Pro/ENGINEER

License Name License id

Mechanism_Design 127 Advanced_Assembly_SET 10119 Tolerance_Analysis 275 Pro/CABLING 48 Pro/DIAGRAM 54 Pro/HARNESS-MFG 57 PROE_FoundationAdv PROE_FoundationAdv ISDO_II_SET 10124

Dès que chacune des licences est identifiée, il faut dans le fichier Perl : - Déclarer la variable :