Buenos días:
Con todo casi listo en mi trabajo de aproximación a Alfresco, me encuentro con un pequeño problema. He buscado en todos los sitios posibles y o bien la información no es correcta o directamente no existe.
En todos los sitios donde he encontrado info se indica que utilizando en el script del WF...
workflow.parameters["initiator"] = people.getPerson("username");
Debería ser posible forzar el usuario iniciador de un WF, de manera que cuando este se complete, sea el el que reciba la notificación y la tarea de cierre correspondiente, pero en todas mis pruebas esto no sucede. He probado también con:
workflow.parameters["wf:initiator"] = people.getPerson("username");
workflow.parameters["bpm:initiator"] = people.getPerson("username");
Pero el resultado es siempre el mismo. Por supuesto, el usuario que pretendo sea iniciador existe y tiene permisos.
El WF se inicia correctamente pero siempre desde el usuario que está logado en el sistema.
¿Existe otra forma de hacerlo?
Gracias por adelantado
Diría que el nombre de la variable es "initiator", pero no lo he probado:
Debería ser el nombre del usuario como String, no un objeto de tipo Person.
Gracias Ángel:
He probado creo que todas las combinaciones posibles:
workflow.parameters["initiator"] = "user_name"; workflow.parameters["initiator"] = 'user_name'; workflow.parameters.initiator = "user_name";
He probado también a usar initiatorhome, y nada...
Seguiré investigando. Gracias de nuevo
Hola de nuevo.
Finalmente y tras mucho investigar me he olvidado de buscar el parametro dichoso entre otras cosas por que no es posible.
He tirado por la implementación de un Run As que he encontrado por ahí y lo he instalado como módulo. Si a alguien le interesa el AMP ya compilado puede pedirmelo por privado a falta de encontrar un sitio donde dejarlo.
Una vez instalado solo hay que ejecutar lo que se quiera dentro de:
runAsUserUtil.runAs("usuario que suplanta la acción",function(){ Script o acciones a realizar });
En mi caso:
runAsUserUtil.runAs("avelazquez",function(){ function createAdvancedWorkflow(docNode) { logger.system.out("Dentro de la función"); var workflow = actions.create("start-workflow"); workflow.parameters.workflowName = "activiti$activitiReview"; workflow.parameters["bpm:workflowDescription"] = "Iniciado como AVelazquez: "+docNode.name; workflow.parameters["bpm:assignee"] = people.getPerson("apineda"); var futureDate = new Date(); futureDate.setDate(futureDate.getDate() + 3); workflow.parameters["bpm:workflowDueDate"] = futureDate; workflow.execute(docNode); } function main() { var docNode = search.findNode(document.nodeRef); createAdvancedWorkflow(docNode); } main(); });
Donde el usuario avelazquez actua como iniciador del workflow a pesar de que para ello estoy validado como admin.
Funciona con cualquier usuario y al menos hasta la versión 5.2
Enjoy
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.