Attribute in einem Routing-Ausdruck (Abrufen) abrufen
Sie können die Methode PersistableAdapter API Get verwenden, um die Attributwerte abzurufen, um sie in einer Routing-Workflowvorlage zu verwenden. Das folgende Beispiel ruft Attributwerte aus einem primären Geschäftsobjekt ab und verwendet sie im Routing-Ausdruck eines Or Anschlussknotens in einer Routing-Workflowvorlage.
Beschreibung
Die PersistableAdapter API wird ruft den PBO-Attributwert ab, der in einer Workflow-Variable einer zugewiesenen Aktivität verwendet wird.
Anweisungen
Das folgende Verfahren wird verwendet:
1. Fügen Sie einen Oder-Anschlussknoten hinzu.
2. In den Eigenschaften des Anschlusses geben Sie Folgendes an:
a. Unter Routing-Typ wählen Sie Konditional aus.
b. Geben Sie im Feld Routing-Ereignisse den Namen eines oder mehrerer benutzerspezifischer Ereignisse ein. (Schließen Sie Mehrfacheinträge in separaten Zeilen ein.)
c. Geben Sie im Feld Routing-/Zähl-Ausdruck den Code für den Routing-Ausdruck ein, der ein Routing-Ereignis auf Grundlage der Attributwerte des primären Geschäftsobjekts auswählt. Klicken Sie auf Syntax prüfen, um sicherzustellen, dass die Syntax des Ausdrucks korrekt ist. Im folgenden Abschnitt finden Sie ein Beispiel für einen Code eines Routing-Ausdrucks.
d. Klicken Sie auf OK, um das Fenster Bedingungseigenschaften zu schließen.
3. Erstellen Sie einen Aktivitätsknoten für jedes Routing-Ereignis.
4. Erstellen Sie eine Prozessverknüpfung für jedes Routing-Ereignis, das den konditionalen Knoten mit dem zugeordneten Aktivitätsknoten verknüpft. Geben Sie in den Eigenschaften der Prozessverknüpfung die Aktion Starten neben dem anwendbaren Routing-Ereignis unter Ereignis in Konditional an.
5. Schließen Sie die Workflow-Vorlage nach Bedarf ab.
Beispiel für einen Code eines Routing-Ausdrucks
Im nachstehenden Beispiel für einen Code sind vier Routing-Ereignisse auf der Grundlage der Werte von vier Attributen für primäre Geschäftsobjekte angegeben. Der Ausdruck verwendet die PersistableAdapter API, um die Werte von Attributen für primäre Geschäftsobjekte abzurufen. Jeder Wert wird dann in eine Variable umgewandelt, die im Ausdruck ausgewertet wird, um das Routing-Ereignis auszuwählen. Die folgende Tabelle zeigt die internen Namen der Attribute für primäre Geschäftsobjekte (wie im Typ-Manager dargestellt), die Variablennamen, Datentypen und das zugeordnete Routing-Ereignis für jedes Attribut:
Interner Attributname
Workflow-Variablenname
Datentyp
Zugeordnetes Routing-Ereignis
StringAttribute
stringVar
java.lang.String
StringMatch
BooleanAttribute
booleanVar
boolean
BooleanMatch
DateAttribute
dateVar
java.lang.String
DateMatch
IntegerAttribute
integerVar
int
IntegerMatch
* 
Beachten Sie den Code in dem folgenden Beispiel, um den DateAttribute-Wert von einem Zeichenfolge-Datentyp in ein Datumsformat zu formatieren.
wt.part.WTPart part = (wt.part.WTPart)primaryBusinessObject;
com.ptc.core.lwc.server.PersistableAdapter obj = new
com.ptc.core.lwc.server.PersistableAdapter(part,null,null,null);
obj.load("BooleanAttribute","DateAttribute","IntegerAttribute","StringAttribute");
// Retriving Boolean Attribute
Boolean booleanVar = (boolean)obj.get ("BooleanAttribute");
System.out.println("booleanVar = "+booleanVar);
// Retriving String Attribute
String stringVar = (String) obj.get ("StringAttribute");
System.out.println("stringVar = "+stringVar);
// Retriving Integer Attribute
Long integerVar = new java.lang.Long ((java.lang.Long)obj.get ("IntegerAttribute"));
System.out.println("integerVar = "+integerVar);
// Retriving Date Attribute
java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT);
java.sql.Timestamp tempDate = (java.sql.Timestamp)obj.get ("DateAttribute");
java.util.Date dateVar = new java.util.Date(tempDate.getTime());
System.out.println("dateVar = "+dateVar);
java.util.Date today = new java.util.Date();
System.out.println("today = "+today );
if (booleanVar)
{
result="BooleanMatch";
System.out.println("result = "+result);
}
else if(today.compareTo(dateVar) == 0)
{
result = "DateMatch";
System.out.println("result = "+result);
}
else if (integerVar == 123)
{
result= "IntegerMatch";
System.out.println("result = "+result);
}
else if (stringVar.equalsIgnoreCase ("test"))
{
result = "StringMatch";
System.out.println("result = "+result);
}
War dies hilfreich?