Écriture de scripts de formule
Les scripts de formule pour la collecte des données utilisent le JavaScript interprété comme langage de scripting.
Note
Le scripting est désactivé par défaut pour des raisons de sécurité. Pour plus d'informations, voir dans le Guide de sécurité SAP ME
via .
SAP ME prend en charge les méthodes suivantes dans les formules de collecte de données :
callEJB()
executeQuery()
exit()
findSingleParameter()
getEJBProperties()
print()
printAll()
Cette méthode appelle Enterprise JavaBeans (EJB).
call(EJBname, EJBmethod, argument, …)
EJBname
est le nom de l'EJB tel que ItemBO
ou SFCBO
.
EJBmethod
est la méthode d'appel telle que le lancement ou la clôture.
argument
- un ou plusieurs arguments à transférer à la méthode.
Exemple
props = callEJB("SFCBO", "getProperties", SFC_BO, "PRIORITY");
priority = props.get("PRIORITY");
exit(priority);
Cette méthode exécute une requête SQL dans la base de données WIP SAP ME. Elle retourne un objet de données contenant les résultats de la requête. Elle peut être nulle.
La requête SQL doit être valide pour le serveur de base de données utilisé par SAP ME pour la base de données WIP.
Exemple
queryStr = "select PRIORITY from SFC where HANDLE=\'";
queryStr = queryStr + SFC_BO+"\'";
result = executeQuery(queryStr);
priority = result.get("PRIORITY");
exit(priority);
Cette méthode arrête l'exécution du script.
Exemple
exit(A)
Termine l'exécution du script et retourne la valeur de la variable de script A
comme résultat du calcul de la formule. Il s'agit de la valeur qui sera utilisée pour le paramètre de collecte de données auquel la formule appartient.
Vous pouvez utiliser la méthode findSingleParameter
avec les arguments définis ci-dessous :
findSingleParameter("parameter_name", "this" | "subassy", "item_name", "item_revision", "operation_name", "operation_revision", "resource_name", "last")
Notez que vous devez inclure chaque argument entre guillemets simples ou doubles.
Argument | Description |
|---|---|
| Nom du paramètre tel qu'il apparaît dans la zone |
| Utilisez l'un de ces littéraux : |
| Nom de l'article associé au SFC. |
| Version de l'article associé au SFC. |
| Nom de l'opération dans laquelle les données ont été collectées pour le SFC. |
| Version de l'opération dans laquelle les données ont été collectées pour le SFC. |
| Nom de la ressource dans laquelle les données ont été collectées pour le SFC. |
| Littéral requis pour terminer l'argument. |
Notez que vous ne pouvez pas utiliser les symboles mathématiques (+
, -
, *
, /
) dans les noms de paramètres utilisés dans les calculs.
Exemple
Le groupe CD DC1/A
a un paramètre, P1
, du type Numérique
. DC1/A
est affecté à l'opération OP1
.
Le groupe de collecte des données DC2/A
a trois paramètres, définis comme suit :
Nom de paramètre | Type |
|---|---|
|
|
|
|
|
|
DC2/A
est affecté à l'opération OP2
.
L'agent de production collecte les données à OP1
avec le plug-in Saisie de la collecte de données
. En utilisant la formule suivante pour PFORM
, lorsque l'agent de production à OP2
saisit les données pour P2
et P3
puis sauvegarde les entrées, le plug-in Saisie de la collecte des données
calcule la somme de ces deux valeurs plus la valeur sauvegardée saisie pour P1
à OP1
. La valeur calculée est sauvegardée pour le paramètre PFORM
.
a=P2+P3;
b=findSingleParameter("P1", "this", "MAT1", "*", "OP1", "A", "RES1", "last");
c=a+b;
exit(c);
Exemple
value = findSingleParameter("PARAM1", "this", "M1", "A", "O1", "A", "DEFAULT", "last");
exit(value);
Attention
Lors de la création de formules, assurez-vous que les entrées utilisateur ne provoquent pas d'erreurs de division par zéro.
Cette méthode récupère une ou plusieurs propriétés d'Enterprise JavaBeans (EJB).
call(EJBname, objectHandle, property, …)
EJBname
est le nom de l'EJB tel que ItemBO
ou SFCBO
.
objectHandle
est la référence à l'EJB nécessaire pour accéder aux propriétés.
properties
- une ou plusieurs propriétés à récupérer.
Exemple
props = getEJBProperties("SFCBO", SFC_BO, "Priority");
priority = props.get("PRIORITY");
exit(priority);
La méthode print(value,…)
imprime la valeur de chaîne d'une ou plusieurs variables. Cette méthode doit seulement être utilisée pour le débogage et les tests.
La méthode printAll()
imprime les valeurs de chaîne de chacune des variables disponibles dans le script. Cette méthode doit seulement être utilisée pour le débogage et les tests.
Exemple
print(SFC_BO);
printAll();
exit(1);
Vous pouvez afficher les résultats des méthodes print()
et printAll()
dans Affichage du journal (vue Traces développeur
) dans SAP NetWeaver Administrator.
Pour ce faire, configurez Traçage comme suit :
Dans SAP NetWeaver Administrator, sélectionnez Configuration du journal
.
Dans l'écran Configuration du journal : Java
, sélectionnez Positions de traçage
dans la zone Afficher
, saisissez com.sap.me.script.ScriptBOBean dans la zone Position
et sélectionnez Go
pour trouver la position.
Modifiez le degré de gravité
de Erreur
à Débogage
.
Dans l'écran Configuration de la connexion SAP Manufacturing Execution
(), vérifiez que la case Informations de débogage
est cochée.