Ich möchte in der Lage sein, eine Liste von Benutzern als Kandidaten für eine Aufgabe zu übergeben. Die Benutzer werden aus einer Datenliste abgerufen und sind nicht als Gruppe verfügbar. Activiti: candidateUsers scheint der richtige Ansatz zu sein.Wie übermittle ich eine Liste der Kandidatenbenutzer an einen Aktivitäts-Workflow-Task in Alfresco?
Angenommen, die Benutzer wurden in der Variablen ipw_reviwers ermittelt und eingestellt.
<serviceTask id="alfrescoScripttask1" name="Alfresco Script Task" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate">
<extensionElements>
<activiti:field name="script">
<activiti:string>logger.log("IPW - setup task");
execution.setVariable('ipw_reviwers', "tom, dick, harry");</activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
Die folgenden verwendet die Variable ipw_reviewers
<userTask id="adhocTask" name="Adhoc Task" activiti:candidateUsers="${ipw_reviewers}" activiti:formKey="wf:activitiReviewTask">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>logger.log("IPW - create task");
if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
Niemand die Aufgabe, zu sehen oder zu behaupten vermag. Wenn nur ein Benutzer in der Liste vorhanden ist, kann dieser Benutzer die Aufgabe beanspruchen.
Wenn Activiti: candidateUsers als
activiti:candidateUsers="tom, dick, harry"
deklariert wird dann alle drei Benutzer sind in der Lage, die Aufgabe zu erreichen.
Kann eine Liste der Benutzer an activiti: candidateUsers in einer Variablen übergeben werden oder sollte ein anderer Ansatz verwendet werden?
ist meine Antwort zu arbeiten? –
Ähnlich wie bei der letzten Antwort von user68910801 können Sie auch eine Liste in Rhino-basiertem JavaScript (in Alfresco verwendet) erstellen. Es ist nur ein bisschen nerviger zu handhaben, da a) Sie nicht die 'Java.type()' Operation haben (stattdessen verwenden Sie 'Packages.java.util.ArrayList'), b) den JavaScript String Typ in Rhino nicht zu Java String zugeordnet, und c) eine Liste wird implizit wie ein Array-ähnliches Objekt behandelt und einige ihrer Methoden (wie Add) können ausgeblendet werden –