Comment puis-je obtenir les noms de balises PI du serveur Web PI ?Chère communauté d'utilisateurs JMP,
moi et mon collègue travaillons actuellement sur un complément JMP qui permettrait à nos utilisateurs internes d'interroger les balises PI comme ils le souhaitent et de les regrouper toutes dans un seul tableau avec quelques scripts joints et certaines étapes de manipulation des données effectuées à l'avance.
Donc, essentiellement, nous souhaitons reproduire et utiliser la fonctionnalité « Importer depuis le serveur OSIsoft PI » dans JMP, mais avec quelques ajustements à nos besoins.
Nous sommes actuellement bloqués dans la récupération dynamique des noms de balises PI souhaitées à partir du serveur Web PI que nous souhaitons ensuite stocker dans une liste sur laquelle exécuter le client PI. Pour l'instant, nous disposons d'une liste codée en dur de certaines balises PI, mais comme le nom peut changer ou que de nouvelles balises Pi peuvent être ajoutées, ce n'est pas une solution idéale.
L'utilisation d'un caractère générique comme % nous aiderait à créer des catégories plus fines de pitags - ces catégories dépendront de la sélection préalable de l'utilisateur, par exemple l'étape du processus, la ligne de production - mais nous n'avons pas eu de chance de trouver une contrepartie en jsl pour les listes.
De plus, nous ne pouvons pas utiliser SQL pour interroger le serveur Web PI.
Voici notre chemin AF :

Asset_DB et Stat_DB sont des listes dont le contenu est basé sur la sélection de l'utilisateur. Pitags est actuellement une liste codée en dur de quelques balises pi, mais nous souhaitons qu'elle soit également basée sur la sélection de l'utilisateur.
Ma question : Comment avez-vous (développeurs JMP) récupéré les noms de balises pi du serveur Web en fonction de la sélection de l'utilisateur ?
Merci beaucoup d'avance!
Il y a un
Automatisation et scriptsAccès aux donnéesRe : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Il y a un,
Pour obtenir les éléments enfants à un niveau particulier de la hiérarchie AF, JMP utilise la méthode API Web "Element - Get Elements", documentée ici : https://docs.aveva.com/bundle/pi-web-api- référence/page/help/controllers/element/actions/getelements.html
JMP émet une requête qui ressemble à ceci :
GET elements/{webId}/elements?webidtype=idonly&selectedfields=items.webid;items.name;items.description;items.path;items.haschildren;items.templatename
Le {webId} est remplacé par le webId de la hiérarchie de chemins pour laquelle vous souhaitez les enfants. Cela renvoie une description JSON des éléments enfants, y compris leurs noms, descriptions, webIds, s'ils ont des enfants et à quel modèle ils appartiennent, le cas échéant. Vous n'aurez peut-être pas besoin de tous ces attributs, vous pourrez donc réduire le paramètre de requête 'selectedfields' à ce dont vous avez besoin. Vous devriez pouvoir envoyer une requête comme celle-ci en utilisant les méthodes 'HTTP Request' de JSL. Vous pouvez ensuite analyser le résultat à l'aide de la fonction « Parse JSON » de JSL.
J'espère que cela t'aides!
--Michael
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Je n'ai pas fait ça depuis un moment... Je me souviens qu'il existait un moyen d'obtenir un tableau Excel de toutes les balises pi. Une fois que vous l'avez, ouvrez-le dans JMP et transposez-le pour que les noms de balises soient dans la première colonne. À partir de là, vous pouvez analyser et filtrer les noms pour générer des listes que vous pouvez utiliser dans vos scripts.
..désolé, je ne pourrais pas être plus précis.
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Bonjour Byron,
merci beaucoup pour votre réponse !
J'avais aussi cette option en tête, mais j'espérais qu'il existe un moyen plus simple.
Meilleur,
Il y a un
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Salut Michael,
merci beaucoup pour cette solution intéressante!
Nous allons continuer et essayer de mettre en œuvre cette méthode.:)
Meilleurs vœux,
Il y a un
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Bonjour Michael,
nous avons essayé la fonction "New HTTP Request" pour récupérer les balises pi de la hiérarchie AF.
Comme ça:

Le script est en cours d'exécution, mais nous obtenons le message d'erreur suivant. Connaissez-vous cette erreur ?

Puisque nous pouvons interroger les tags PI avec la fonction « Nouveau client PI », l'absence d'autorisation ne semble pas être le problème. Notre responsable des systèmes PI a confirmé nos droits d'accès et n'a pas trouvé de problème avec les droits d'accès manquants.
Merci beaucoup d'avance!
Il y a un
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Votre serveur Pi nécessite-t-il, par exemple, une autorisation de base ? si c'est le cas, vous voudriez utiliser :
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),<BR />Username([your username]),<BR />Password([your password]),<BR />Authentication Method("BASIC"),
QueryString(qrry)
) << Send
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Merci Bryan, nous avons implémenté votre solution en utilisant Kerberos.
Re : Comment puis-je obtenir les noms de balises PI à partir du serveur Web PI ?Était-ce quelque chose comme :
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),Authentication Method("KERBEROS"),
QueryString(qrry)
) << Send