anonymous Log in
Search
Recents:
v3.0
gxflow-l
Re: Obtener Workitems de colaboradores
04/05/20 16:26

plusvalia

Replies: 0

Bueno, ya parece que lo logré así que les comparto el código (todavía no lo probé bien, solo me funcionó una vez y no lo he probado con casos más complejos o realistas). Como quien dice…tomar AS IS
RULES:
parm(in:&WorkflowWorkItem);
CODIGO:
&WorkflowServer.Connect(&WFAdministratorUserName, &WFAdministratorPassword)
For &CollaboratorWorkflowUser in &WorkflowWorkItem.Collaborators
//Msg(Format('Found collaborator %1', &CollaboratorWorkflowUser.Name))
&WorkflowFilter.ProcessInstance = &WorkflowWorkItem.ProcessInstance
//&WorkflowFilter.ObjectType = WorkflowObjectType.WORKITEM
&WorkflowFilter.Activity = &WorkflowWorkItem.Activity
&WorkflowFilter.User = &CollaboratorWorkflowUser
&WorkflowFilter.State = WorkflowWorkItemState.OPEN

For &CollaboratorWorkflowWorkItem in &WorkflowServer.ListWorkitemsOrderBy(&WorkflowFilter, WorkflowOrder.CREATED_DESC)
Msg(Format('Found collaborator task %1', &CollaboratorWorkflowWorkItem.Id.ToString()))
&CollaboratorWorkflowWorkItem.Complete()
If &CollaboratorWorkflowWorkItem.Error.Code = 0
Commit
Else
&Message = DVMessageError(&CollaboratorWorkflowWorkItem.Error.Message)
Msg(&Message.Description)
EndIf
EndFor
Msg(&WorkflowServer.Error.Message)
EndFor
No puse el código para obtener el usuario y contraseña del usuario para conectarse al WorkflowServer ya que eso depende de la implementación de cada uno. En prototipación/test pueden usar “WFADMINISTRATOR” para ambos valores.
Saludos y buena semana!
Mateo Fernández
Executive Partner
Email: mateofd@plusvalialabs.com
LinkedIn: https://www.linkedin.com/in/mateofd <https://www.linkedin.com/in/mateofd>
Web: http://www.plusvalialabs.com <http://www.plusvalialabs.com/>
Make Tech Work for You...not the other way around
Don't print this email unless you have to. Let's protect the Environment.
No imprima este correo electrónico si no es necesario. Protejamos el Medio Ambiente.
> On May 4, 2020, at 1:01 PM, Mateo Fernández (Plusvalía Labs) <mateofd@plusvalialabs.com> wrote:
>
> Estimados,
>
> Espero que todos se encuentren bien!
>
> Dado un Workitem quiero obtener los Workitems de los colaboradores con el propósito de completarlos o cancelarlos.
>
> Básicamente tendría que ver las llamadas a la Workflow API que se hacen en el siguiente diálogo del Workflow Client estándar para poder replicarlas en mi KB:
>
> <PastedGraphic-1.tiff>
>
> Busqué en el Custom Client este diálogo pero no lo encuentro.
>
> Hasta el momento llegué a conseguir los usuarios colaboradores utilizando el método &WorkflowWorkItem.Collaborators.
>
> Una vez obtenidos los usuarios intenté con el método GetWorklist pero no funciona ya que en principio solo es para el usuario logueado (lo cual obviamente no es el caso).
>
> En este momento estoy comenzando a probar con el método &WorkflowServer.ListWorkitemsOrderBy a ver si por ahí puedo. Pero pensé en escribirles a ver si alguien ya ha resuelto esto, o si los amigos de GeneXus pueden pasar el código de como están implementando el diálogo que mostré más arriba.
>
> Parecería ser algo trivial tener que recorrer listas, pero a veces les gusta hacerlo rebuscado. Además la documentación sobre la API de Workflow es bastante precaria.
>
> Saludos y Gracias!
>
> Mateo Fernández
> Executive Partner
> Email: mateofd@plusvalialabs.com <mailto:mateofd@plusvalialabs.com>
> LinkedIn: https://www.linkedin.com/in/mateofd <https://www.linkedin.com/in/mateofd>
> Web: http://www.plusvalialabs.com <http://www.plusvalialabs.com/>
>
>
> <PastedGraphic-3.tiff>
>
>
>
> Make Tech Work for You...not the other way around
>
> Don't print this email unless you have to. Let's protect the Environment.
> No imprima este correo electrónico si no es necesario. Protejamos el Medio Ambiente.
>
---------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,7
Por consultas owner-gxflow-l@gxtech.com.uy


Back to gxflow-l