Download W4 Engine - Manuel d`exploitation

Transcript
tSel.addSelection(TWFtaskCrit.WF_CRIT_ACTOR_POOL,TWFoperator.WF
_EQUAL,new TWFid(context.getActorId()));
/* ... qui concerne la procédure "testProc" */
tSel.addSelection(TWFtaskCrit.WF_CRIT_PROCEDURE,TWFoperator.WF_
EQUAL,"testProc*");
/* champs de fullTask à récupérer */
TWFTfullTaskFieldName fields = new TWFTfullTaskFieldName();
fields.add(TWFfullTaskFieldName.TASK);
fields.add(TWFfullTaskFieldName.WORKCASE);
/* variable de tâche à récupérer */
TWFTname tTaskVarName = null;
tTaskVarName = new TWFTname();
tTaskVarName.add(new TWFname("maString"));
tTaskVarName.add(new TWFname("maString2"));
tTaskVarName.add(new TWFname("maString3"));
/* lancement de la recherche*/
TWFTfullTask tFullTask = TWFTfullTask.wfSearchFullTask(tSort,
fields,tTaskVarName, null, null, tSel, (short) 0);
4.2.5.2
Lancement d'une tâche
Lors du lancement d'une tâche, l'objectif est de signaler au moteur W4 Engine que la tâche change
d'état puis généralement d'afficher un formulaire de saisie. Dans ce formulaire, les champs peuvent
être remplis à partir des données que l'utilisateur aura éventuellement précédemment entrées (lors
de la suspension d'une tâche, les données sont conservées dans la base technique de W4). Le
formulaire peut également présenter des données propres au dossier. L'exemple de code ci-dessous
montre comment réaliser ces opérations.
Exemple 6 : code de lancement d'une tâche, non optimisé
TWFtaskRef taskRef = new TWFtaskRef(1200);
taskRef.wfProcessTask();
//Récupération des variables de dossier
TWFTrawVariable
taskVariables
=
taskRef.wfGetTaskVariables(true);
//Récupération du dossier
TWFworkcase
case
=
taskRef.wfGetTask().getWorkcaseRef().wfGetCase();
TWFTrawVariable caseVariables = case.wfGetCaseVariables(true);
Ce code est parfaitement fonctionnel mais il n'est absolument pas optimisé puisqu'il comporte cinq
appels au moteur W4 Engine.
Exemple 7 : code de lancement d'une tâche, optimisé
TWFtaskRef taskRef = new TWFtaskRef(1200);
taskRef.wfProcessTask();
//Récupération en un appel des variables de tâche et de dossier
TWFTfullTaskFieldName fields = new TWFTfullTaskFieldName();
fields.add(TWFfullTaskFieldName.TASKVARIABLES);
fields.add(TWFfullTaskFieldName.CASEVARIABLES);
TWFfullTask fullTask = taskRef.wfGetFullTask(fields, null, null)
//Récupération du dossier
TWFTrawVariable taskVariables = fullTask.getTaskVariables();
TWFTrawVariable caseVariables = fullTask.getCaseVariables();
125
Chapitre 4 Optimisation des performances