Recupero degli attributi in un'espressione di instradamento (Get)
È possibile utilizzare il metodo Get dell'API PersistableAdapter per recuperare i valori di attributo da utilizzare in un modello di workflow di instradamento. Nell'esempio riportato di seguito vengono recuperati valori di attributo da un business object principale e vengono utilizzati tali valori in un'espressione di instradamento di un nodo connettore Or nel modello di workflow di instradamento.
Descrizione
L'API PersistableAdapter recupera il valore di attributo del business object principale da utilizzare in una variabile di workflow di un'attività assegnata.
Istruzioni
Attenersi alla procedura descritta di seguito.
1. Aggiungere un nodo connettore OR.
2. Nelle proprietà del connettore specificare quanto indicato di seguito.
a. In Tipo di instradamento selezionare Condizionale.
b. Nel campo Eventi di instradamento immettere il nome di uno o più eventi personalizzati (includere più voci su righe separate).
c. Nel campo Espressione di instradamento/conteggio immettere il codice dell'espressione di instradamento che seleziona un evento di instradamento in base ai valori di attributo del business object principale. Fare clic su Verifica sintassi per assicurarsi che la sintassi dell'espressione sia corretta. Per un esempio di codice di espressione di instradamento, vedere la sezione riportata di seguito.
d. Fare clic su OK per chiudere la finestra Proprietà condizionali.
3. Creare un nodo di attività per ciascun evento di instradamento.
4. Creare un link di processo per ciascun evento di instradamento che collega il nodo condizionale al nodo di attività associato. Nelle proprietà del link di processo specificare l'azione Avvia accanto all'evento di instradamento applicabile in Evento in Condizionale.
5. Terminare il modello di workflow nel modo appropriato.
Esempio di codice di espressione di instradamento
Nell'esempio di codice che segue sono disponibili quattro eventi di instradamento basati sui valori di quattro attributi del business object principale. L'espressione utilizza l'API PersistableAdapter per ottenere i valori degli attributi del business object principale. Ciascun valore viene quindi convertito in una variabile valutata nell'espressione per selezionare un evento di instradamento. Nella tabella riportata di seguito sono elencati i nomi interni di attributo del business object principale (come mostrato in Gestione tipi), i nomi di variabile, i tipi di dati e l'evento di instradamento associato per ciascun attributo.
Nome interno attributo | Nome variabile workflow | Tipo di dati | Evento di instradamento associato |
StringAttribute | stringVar | java.lang.String | StringMatch |
BooleanAttribute | booleanVar | boolean | BooleanMatch |
DateAttribute | dateVar | java.lang.String | DateMatch |
IntegerAttribute | integerVar | Int | IntegerMatch |
| Nell'esempio seguente si noti il codice per formattare il valore DateAttribute da un tipo di dati stringa in un formato di data. |
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);
}