TEST DES SCRIPTS D'AUTOMATISATION
TEST DES SCRIPTS D'AUTOMATISATION AVEC LA NOUVELLE MÉTHODE "SCRIPTSCRIPT" DE MAXIMO 7.6 (PARTIE 1: SCRIPTS BASÉS SUR MBO)
Maximo a présenté avec la version 7.6 une nouvelle fonctionnalité qui vous permet de tester vos scripts d'automatisation dans le contexte d'un Mbo nouveau ou existant ainsi que dans le contexte du MIF (Maximo Integration Framework). L'inconvénient de cette nouvelle fonction est que je n'ai actuellement trouvé aucune bonne documentation et que certaines fonctionnalités comme la syntaxe du chemin d'objet ne s'expliquent pas d'elles-mêmes. Dans cette série en deux parties, je voudrais vous présenter la nouvelle fonctionnalité "Testscript" et expliquer à quel point il est facile à utiliser pour vos tests de script quotidiens. Dans la partie 1, nous allons couvrir le test des scripts dans le contexte d'un Mbo et dans la deuxième partie, je vais vous montrer comment tester dans le contexte de la MIF.
L'ancien test "Exécuter le script" n'est plus visible mais peut être réactivé en utilisant l'astuce dans mon autre post .
La première chose à mentionner si vous voulez tester un script avec la nouvelle fonctionnalité Mbo-Test est que vous devez avoir un script avec un objet Launchpoint. Les scripts avec points de lancement d'attribut ne sont pas testés, ou pire si vous avez les deux: un point de lancement d'objet et un point de lancement d'attribut sur le même Mbo toujours exécuté, même si vous sélectionnez le script de lancement d'attribut! (Peut-être déroutant!). D'un autre côté, vous pouvez utiliser un script Script Objectpointpoint pour définir un certain attribut dans un Mbo qui déclenche le lancement de l'attribut.
Maintenant, créons un script très simple avec un point de lancement d'objet pour l'objet ASSET comme ceci:
print "Hello World"
print mbo.getString("ASSETNUM")
Appuyez sur le bouton "Test Script" et vous verrez la boîte de dialogue suivante:

En haut, vous verrez des informations sur le script et le Launchpoint sélectionné.
Avec 1. vous choisirez si nous voulons que le script soit testé par rapport à un objet nouvellement créé ou à un objet existant.
Dans 2. un chemin d'objet peut être spécifié si nous voulons référencer un objet existant. Le format que je trouve actuellement est:
1 <OBJECT>[<SQL-WHERE>]
Des exemples pourraient être:
ASSET[ASSETNUM='11200']
ASSET[ASSETNUM like '11%']
ASSET[ISRUNNING = 1]
ITEM[ITEMNUM='0815']
Important à retenir, vous obtenez toujours un seul enregistrement résultant de votre script. C'est le comportement par défaut pour un script d'objet, où l'ensemble résultant est stocké dans la variable implicite Launchpoint mbo.
Si vous sélectionnez un objet existant et spécifiez un chemin d'objet (n'oubliez pas de copier le chemin de l'objet dans le presse-papiers - vous devez le ressaisir pour chaque test!), Vous pouvez appuyer sur le bouton Test .
Vous pourriez voir un résultat comme suit:

- Les données contiennent le MBO résultant au format XML.
- Le journal contient la sortie des instructions Print du script.
Avec la section Définir les valeurs d'attribut, vous pouvez spécifier les attributs qui sont remplacés du résultat d'origine. C'est une fonctionnalité intéressante lorsque vous avez besoin de certaines données de test avec certaines spécifications (eG Nous avons besoin d'un actif en état de ne pas fonctionner (ISRUNNING = 0), donc nous avons juste besoin de spécifier:

Jusqu'à présent, nous avons juste discuté du chemin de l' objet existant . Si vous aimez créer un nouvel objet, cela peut également être fait avec la fonction de test. La fonction de test appelle essentiellement une fonction mboSet.addAtEnd () pour ajouter un nouvel enregistrement au MboSet donné. Avec l'utilisation des valeurs d'attribut Set, vous pouvez prédéfinir les champs du Mbo nouvellement créé avant de le transmettre au script Jython.
Un peu étrange est que, si vous essayez de créer un objet Asset et que vous ne spécifiez pas un ASSETNUM, vous obtiendrez une erreur, que le champ d'actif doit être spécifié. Si vous définissez le champ ASSETNUM, vous obtiendrez une erreur, elle est en lecture seule et ne peut pas être définie.
La seule solution que j'ai trouvée jusqu'ici est d'écraser à peine la vérification en lecture seule en utilisant l' indicateur de champ "NOACCESSCHECK":
from psdi.mbo import MboConstants
mbo.setValue("ASSETNUM", "ASS0815", MboConstants.NOACCESSCHECK )
mbo.setValue("DESCRIPTION", "New Test Asset!")
Jusqu'à présent pour ce premier tutoriel sur la nouvelle fonctionnalité de script de test. Dans la partie suivante, je couvrirai la possibilité de tester des scripts d'automatisation personnalisant l'interface MIF.