Recuperación de atributos en una expresión de distribución (Get)
Se puede usar el método PersistableAdapterAPIGet para recuperar los valores de atributo con el fin de utilizarlos en una plantilla de proceso de trabajo de distribución. En el siguiente ejemplo, se recuperan los valores de atributo de un objeto de negocio principal y se utilizan en la expresión de distribución de un nodo de conector Or en una plantilla de proceso de trabajo de distribución.
Descripción
La API PersistableAdapter recupera el valor de atributo del objeto de negocio principal que se debe utilizar en una variable de proceso de trabajo de una actividad asignada.
Instrucciones
Se utiliza el siguiente procedimiento:
1. Añada un nodo de conector O.
2. En las propiedades del conector, especifique lo siguiente:
a. En Tipo de distribución, seleccione Condicional.
b. En el campo Eventos de distribución, introduzca el nombre de uno o más eventos personalizados (las entradas múltiples se deben incluir en líneas separadas).
c. En el campo Expresión de distribución/recuento, introduzca el código de la expresión de distribución que selecciona un evento de distribución según los valores de atributo del objeto de negocio principal. Pulse en Verificar sintaxis para asegurarse de que la sintaxis de la expresión sea correcta. Consulte la siguiente sección para ver un ejemplo de código de expresión de distribución.
d. Pulse en Aceptar para cerrar la ventana Propiedades de Condicional.
3. Cree un nodo de actividad para cada evento de distribución.
4. Cree un vínculo de proceso para cada evento de distribución que vincule el nodo condicional al nodo asociado de la actividad. En las propiedades del vínculo de proceso, especifique la acción Inicio junto al evento de distribución aplicable en Evento en Condicional.
5. Finalice la plantilla de proceso de trabajo según corresponda.
Ejemplo de código de expresión de distribución
En el ejemplo de código a continuación, hay cuatro eventos de distribución, basados en los valores de cuatro atributos del objeto de negocio principal. En la expresión se utiliza la API PersistableAdapter para obtener los valores de los atributos del objeto de negocio principal. A continuación, cada valor se convierte en una variable que se evalúa en la expresión para seleccionar un evento de distribución. En la siguiente tabla se muestran los nombres internos de los atributos del objeto de negocio principal (tal como se muestra en el Administrador de tipos), los nombres de variables, los tipos de datos y el evento de distribución asociado para cada atributo:
Nombre interno del atributo
Nombre variable de proceso de trabajo
Tipo de datos
Evento de distribución asociado
StringAttribute
stringVar
java.lang.String
StringMatch
BooleanAttribute
booleanVar
boolean
BooleanMatch
DateAttribute
dateVar
java.lang.String
DateMatch
IntegerAttribute
integerVar
ent
IntegerMatch
* 
Observe el siguiente código del ejemplo para formatear el valor de DateAttribute de un tipo de datos de cadena a un formato de fecha.
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);
}
¿Fue esto útil?