Administration de base > Prise en charge de la collaboration > Administration des processus > Outils de processus > Administration des modèles de processus > Exemples de codes de processus > Exemples d'automate d'expression > Attributs d'objet métier principal en tant que variables de processus > Modification d'attributs avec des variables de processus (Set)
  
Modification d'attributs avec des variables de processus (Set)
Cette rubrique contient un exemple d'utilisation des variables de processus et du noeud de l'automate d'expression pour modifier un attribut associé à un objet métier principal. Cela peut s'avérer utile lorsque le participant ne dispose d'aucune permission lui permettant de modifier directement un objet correspondant à l'objet d'une tâche affectée audit participant.
Description
L'API PersistableAdapter permet d'obtenir et de définir la valeur d'attribut d'objet métier principal en fonction de la variable de processus d'une activité affectée. La valeur de cette variable est dérivée de l'entrée utilisateur effectuée dans une tâche.
Instructions
La procédure générale utilisée est la suivante :
1. Dans un modèle de processus, créez une ou plusieurs variables de processus. Ces variables représentent les attributs d'objet métier principal que vous souhaitez modifier. Sélectionnez une valeur pour le champ Nom du type (type de données), à savoir entier, booléen ou chaîne java.lang.string. Assurez-vous que les variables correspondent à Visible et Réinitialisable.
Pour plus d'informations sur les propriétés de processus, et notamment sur les variables, consultez les rubriques Onglet Variables et Définition des variables de processus.
2. Dans l'onglet Variables du noeud d'activité correspondant à la tâche affectée, créez des variables d'activité pour l'initialisation, copiez-les et collez-les dans le dossier des variables de processus que vous avez créées lors de l'étape précédente. Ces variables permettent d'obtenir les entrées utilisateur afin d'acquérir les valeurs adéquates. Ces dernières sont ensuite copiées et collées dans le dossier des variables de processus.
3. Créez un automate d'expression. Dans l'onglet Expression, saisissez le code permettant de mettre à jour les attributs de l'objet métier principal en fonction de la variable de processus (ses valeurs ayant été obtenues au moyen des entrées utilisateur correspondant à l'activité affectée). Pour découvrir un exemple de code d'expression, consultez la section ci-après.
Exemple de code d'expression
Dans l'exemple de code qui suit figurent quatre variables, qui présentent les noms internes (indiqués par le gestionnaire des types), les noms de variable et les types de données suivants :
Nom d'attribut interne
Nom de la variable de processus
Type de données
StringAttribute
StringAttributeVariable
java.lang.String
BooleanAttribute
BooleanAttributeVariable
boolean
DateAttribute
DateAttributeVariable
java.lang.String
IntegerAttribute
IntegerAttributeVariable
int
* 
L'exemple ci-après fournit également des instructions sur le formatage de la valeur DateAttribute à partir de données de type chaîne.
wt.part.WTPart part = (wt.part.WTPart)primaryBusinessObject;
//Get check out folder for the current user in the session
wt.folder.Folder checkoutFolder = wt.vc.wip.WorkInProgressHelper.service.getCheckoutFolder();
//Check out object
wt.vc.wip.CheckoutLink chklink = wt.vc.wip.WorkInProgressHelper.service.checkout(part, checkoutFolder, "Check out comment");
wt.part.WTPart wrk = (wt.part.WTPart) chklink.getWorkingCopy();
System.out.println("\nChecked out WTPart ......"+wrk.getName()+"\t"+wrk.getCheckoutInfo());
com.ptc.core.lwc.server.PersistableAdapter pbo = new com.ptc.core.lwc.server.PersistableAdapter(wrk, null, null, null);
System.out.println("\nGot pbo...."+pbo.toString());
pbo.load("StringAttribute","BooleanAttribute","DateAttribute","IntegerAttribute");
System.out.println("Loading Attributes");
System.out.println("StringAttribute : "+pbo.get("StringAttribute"));
System.out.println("BooleanAttribute : "+pbo.get("BooleanAttribute"));
System.out.println("DateAttribute : "+pbo.get("DateAttribute"));
System.out.println("IntegerAttribute : "+pbo.get("IntegerAttribute"));
pbo.set("StringAttribute", StringAttributeVariable);
pbo.set("BooleanAttribute", BooleanAttributeVariable);
pbo.set("IntegerAttribute", new java.lang.Long(IntegerAttributeVariable));
//Date attribute is more complex
java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat SHORT);
String tempDate= DateAttributeVariable;
java.util.Date objectDate = df.parse(tempDate);
pbo.set("DateAttribute", new java.sql.timestamp(objectDate.gettime()));

wt.fc.Persistable p = pbo.apply();
//Modify attributes
wt.fc.PersistenceHelper manager.modify(p);
try
{
// Check in object
wt.vc.wip.WorkInProgressHelper.service.checkin((wt.vc.wip.Workable) p, "Check in comment");
}
catch (wt.util.WTException e)
{
e.printStackStrace();
}
catch (wt.util.WTPropertyVetoException e)
{
e.printStackTrace();
}