Formelskripte schreiben
Formelskripte für die Datenerfassung verwenden interpretiertes JavaScript als Scripting-Sprache.
Hinweis
Das Scripting ist aus Sicherheitsgründen im Standard deaktiviert. Weitere Informationen finden Sie unter im SAP ME Security Guide
. Dieser liegt unter .
SAP ME unterstützt in Datenerfassungsformeln die folgenden Methoden:
callEJB()
executeQuery()
exit()
findSingleParameter()
getEJBProperties()
print()
printAll()
Diese Methode ruft Enterprise JavaBeans (EJB) auf.
call(EJBname, EJBmethod, argument, …)
EJBname
ist der Name des EBJ, z.B. ItemBO
oderSFCBO
.
EJBmethod
ist die aufzurufende Methode, z.B. Starten oder Beenden.
argument
- mindestens ein an die Methode zu übergebendes Argument.
Beispiel
props = callEJB("SFCBO", "getProperties", SFC_BO, "PRIORITY");
priority = props.get("PRIORITY");
exit(priority);
Diese Methode führt eine SQL-Abfrage in der SAP-ME-WIP-Datenbank aus. Sie gibt ein Datenobjekt mit den Abfrageergebnissen zurück. Dieses kann leer sein.
Die SQL muss für den Datenbankserver, den SAP ME für die WIP-Datenbank verwendet, gültig sein.
Beispiel
queryStr = "select PRIORITY from SFC where HANDLE=\'";
queryStr = queryStr + SFC_BO+"\'";
result = executeQuery(queryStr);
priority = result.get("PRIORITY");
exit(priority);
Diese Methode stoppt die Ausführung des Skripts.
Beispiel
exit(A)
Beendet die Skriptausführung und gibt den Wert der Skriptvariablen A
als Ergebnis der Formelberechnung aus. Das ist der Wert, der für den Datenerfassungsparameter verwendet wird, zu dem die Formel gehört.
Sie können die Methode findSingleParameter
mit folgenden Argumenten verwenden:
findSingleParameter("parameter_name", "this" | "subassy", "item_name", "item_revision", "operation_name", "operation_revision", "resource_name", "last")
Beachten Sie, dass Sie alle Argumente entweder in doppelte oder einfache Anführungszeichen einschließen.
Argument | Beschreibung |
|---|---|
| Name des Parameters wie er im Feld |
| Verwenden Sie eines dieser Literale: |
| Name des Materials, das mit der PSN verknüpft ist |
| Version des Materials, das mit der PSN verknüpft ist |
| Name des Vorgangs, an dem Daten für die PSN erfasst wurden |
| Version des Vorgangs, an dem Daten für die PSN erfasst wurden |
| Name der Ressource, an der Daten für die PSN erfasst wurden |
| erforderliches Wort am Ende des Arguments |
Beachten Sie, dass Sie keine mathematischen Symbole (+
, -
, *
, /
) in Parameternamen verwenden können, die für Berechnungen Anwendung finden.
Beispiel
Die Datenerfassungsgruppe DC1/A
hat einen Parameter, P1
, Typ Numerisch
.DC1/A
ist an den Vorgang OP1
angehängt.
Die Datenerfassungsgruppe DC2/A
hat drei wie folgt definierte Parameter:
Parametername | Typ |
|---|---|
|
|
|
|
|
|
DC2/A
ist an den Vorgang OP2
angehängt.
Der Werker erfasst Daten an OP1
über den Plug-In Datenerfassung
. Wird die Formel PFORM
verwendet, wenn ein Werker am Vorgang OP2
Daten für P2
und P3
eingibt und die Eingaben sichert, berechnet der Plug-In Datenerfassung
die Summe der beiden Werte und des gesicherten Wertes, den Sie an OP1
für P1
eingegeben haben. Der berechnete Wert wird für den Parameter PFORM
gesichert.
a=P2+P3;
b=findSingleParameter("P1", "this", "MAT1", "*", "OP1", "A", "RES1", "last");
c=a+b;
exit(c);
Beispiel
value = findSingleParameter("PARAM1", "this", "M1", "A", "O1", "A", "DEFAULT", "last");
exit(value);
Achtung
Stellen Sie beim Anlegen von Formeln sicher, dass Benutzereingaben keine Division duch Null verursachen.
Diese Methode ruft eine oder mehrere Eigenschaften von Enterprise JavaBeans (EJB) ab.
call(EJBname, objectHandle, property, …)
EJBname
ist der Name des EBJ, z.B. ItemBO
oderSFCBO
.
objectHandle
ist der Verweis zum EBJ für den Abruf der Eigenschaften.
properties
- eine oder mehrere abzurufende Eigenschaften.
Beispiel
props = getEJBProperties("SFCBO", SFC_BO, "Priority");
priority = props.get("PRIORITY");
exit(priority);
Die Methode print(value,…)
druckt den Stringwert einer oder mehrerer Variablen. Diese Methode sollte nur für Zwecke der Fehlerbeseitigung und für Tests verwendet werden.
Die Methode printAll()
druckt die Stringwerte aller Variablen, die im Skript verfügbar sind. Diese Methode sollte nur für Zwecke der Fehlerbeseitigung und für Tests verwendet werden.
Beispiel
print(SFC_BO);
printAll();
exit(1);
Die Ergebnisse der Methoden print()
und printAll()
können Sie im Protokoll-Viewer (Sicht Entwickler-Traces
) in SAP NetWeaver Administrator anzeigen.
Konfigurieren Sie dafür das Tracing wie folgt:
Wählen Sie in SAP NetWeaver Administrator Protokollkonfiguration
.
Wählen Sie in der Sicht Protokollkonfiguration: Java
im Feld Anzeigen
die Option Trace-Orte
. Geben Sie com.sap.me.script.ScriptBOBean in das Feld Lokation
ein, und wählen Sie Starten
, um die Lokation zu suchen.
Ändern Sie Schweregrad
von Fehler
in Fehlersuche
.
Stellen Sie sicher, dass im Bild SAP Manufacturing Execution Logging Configuration
() das Ankreuzfeld Debugging-Information
ausgewählt wurde.