Proyecto

General

Perfil

Crear y asignar tarea a roles indicados (CreateTaskRolesMetadataConditional)

Información

Autor David Henriquez
Sitio Web http://www.facebook.com/adapting-lab
Repositorio source:Acciones-America/trunk/src/-CreateTaskRolesMetadata- CreateTaskRolesMetadataConditional
Código fuente http://svn-community.adapting.com:8080/svn/Community/Plugins/Acciones-America/trunk/src/CreateTaskRolesMetadata
Versión Actual v1.0
Compatible con Abox 2.6.3

Resumen

Esta acción crea y asigna una tarea a un(os) usuario(s) especifico, integrante(s) de una organización o a un rol indicados. Esta tarea permanecerá activa hasta el próximo cambio de estado. Aparece el icono de alarma 3 días antes de que caduque la tarea.

Esta guarda es una mejora de la guarda anterior "CreateTask". Las mejoras fueron:
  • Compatibilidad con el metadato RoleLink . Es decir, es posible que el tipo documental o incluso el propio documento defina con un metadato las organizaciones, roles o usuarios que se les asignara la tarea.
  • Se pueden definir las propiedades de Días de vencimiento y Días de alarma en un metadatos de tipo Entero definido en el documento.

Notas de instalación

Descargue el código fuente del plugin y compílelo usando Visual Studio 2010. Luego dependiendo si lo va a integrar en una instalación de Abox o en un proyecto de extensión de Abox sigua las siguientes instrucciones.
En una instalación de Abox¶

Copiar la dll que genera el proyecto, en principio se debe llamar Adapting.CreateTaskRolesMetadataAction.dll, en la carpeta /bin del sitio web donde esta Abox.

Incluya el proyecto en su proyecto para extender Abox, añada una referencia en Adapting.Web al proyecto que acaba de incluir.

Guía de uso

Una vez incluida la clase en el proyecto y recompilado el proyecto, tiene que modificar el XML del workflow para añadir esta acción en las acciones que ejecuta el worlflow al cambiar de estado. Para hacer esto incluya este código en las acciones de la transición en la que quiere que se ejecute.

Para actualizar el metadato se puede hacer de varias maneras:


<action type="CreateTaskRolesMetadata">

<param name="taskName" />
<param name="role" />
<param name="user"/>
<param name="organization" />
<param name="rolesMetadata" />
<param name="alarmDays" />
<param name="metadataAlarmDays" />
<param name="daysToExpire" />
<param name="metadataDaysToExpire" />
<param name="priority" />
<param name="notify" />
<param name="notifyOn" />
<param name="link" />
<param name="comments" />
<param name=".constant_category" />
<param name=".metadata_category" />
<param name="intersectionOperator" />
<param name="selfArchivedState" />
<param name="multipleTasks" />

</action>

Donde,
taskName: Nombre de la tarea
rolesMetadata: Metadato que contiene los roles, organizaciones y usuarios que se le asigna la tarea.
role: Código del rol al que se le asigna la tarea (este parámetro se puede repetir n veces)
user: Código del usuario al que se le asigna la tarea (este parámetro se puede repetir n veces)
organization: Código de la organización al que se le asigna la tarea (este parámetro se puede repetir n veces)
alarmDays: Valor Fijo, Número de días que se mostrará una alarma antes de que caduque la tarea, por defecto 3 días (opcional)
daysToExpire: Valor Fijo, Número de días en que caducará la tarea, por defecto 30 días (obligatorio solo si alarmDays tiene valor)
metadataAlarmDays: Metadato, Cuyo valor puede ser número de días que se mostrará una alarma antes de que caduque la tarea o bien puede ser una fecha concreta. Acepta metadatos tipo fecha ó fecha avanzada. En caso de no especificar colocará por defecto 3 días (opcional)
metadataDaysToExpire: Metadato, Cuyo valor puede ser número de días en que caducará la tarea o bien puede ser una fecha concreta. Acepta metadatos tipo fecha ó fecha avanzada. En caso de no especificar colocará por defecto 30 días (obligatorio solo si metadataAlarmDays tiene valor)
priority: Posibles valores: low, normal (por defecto), high. (opcional)
notify: Envía una notificación por mail a los usuarios que se les ha asignado la tarea (opcional). Posibles valores: 1, 0, true o false.
category: Código de la categoría a la que pertenecerá la tarea (opcional)
notifyOn: Nombre del dominio del sitio web donde se quiere recibir la notificación de la tarea p ej(docs, public o admin). En el caso que no exista se notifica en el sitio web por defecto de abox. (opcional)
intersectionOperator: Lista, Este parámetro es únicamente usado cuando se define el parámetro roleMetadata. Puede recibir and u or, and significa que los usuarios debes estar en todos los roles y organizaciones definidas, mas los usuarios definidos, y or significa todos los usuarios que estén en el rolemetadata.

Nota: Esta acción es para usarla con workflows de documentos y expedientes.

Historico

29/08/2012 (2.7.2++)
selfArchivedState; Controla el cierre de la tarea, puede tener los siguientes valores [Never] para nunca vencerce, NombreEstado para el nombre del estado donde vencera. Si no se coloca, que es su valor por defecto, la tarea vencera al cambiar de estado.

<action type="CreateTaskRolesMetadata">
          <param name="taskName">Tarea1</param>
          <param name="rolesMetadata">captureDate</param>
          <param name="role">__ALL__</param>
          <param name="selfArchivedState">cerrada</param>
</action>

05/09/2012 (2.7.3++) Acepta metadatos tipo fecha y fecha avanzada en metadataAlarmDays y metadataDaysToExpire.

05/12/2012 2.7.5 Se ha añadido el parámetro "multipleTasks", anteriormente se creaba una sola tarea ahora si este parámetro es igual a true creará una para cada usuario especificado.

          <param name="multipleTasks">true/false</param>

23/01/2013 2.7.6 En el parámetro "taskName" puede utilizar las palabras reservadas [EntityName] [EntityCode] [CaseFolderName] [CaseFolderCode].

20/02/2013 (2.7.7+) Añadido posibilidad de especificar categoria de la tarea a través de constate o metadato.

15/07/2013 2.7.9 En el parámetro "taskName" puede utilizar la palabra reservada [CurrentUser].

09/12/2013 2.7.10 Cuando se usa el "AND" como parametro de interseccion en tre usuarios y dependencias este debe tener asignadas dichas dependencias (Roles y Organizacines)

21/01/2014 2.7.11 Nuevo parametro para asignar la prioridad de la tarea por medio de un metadato tipo String.

          <param name="metadataPriority">Low/Normal/High</param>

11/02/2014 2.7.11 mejora del parametro "Metadatapriority" ahora soporta metedatos tipo lista

agregar a archivo de configuracion del hoteditor

 <param code="metadataPriority" minOccurs="0" maxOccurs="1">
                    <type>metadata</type>
                    <name>Metadato con prioridad</name>
                    <description>Metadato con prioridad en modo texto (o listado)</description>
                </param>

26/04/2014 2.7.11 Mejora para permitir múltiples condiciones en el plugin CreateTaskRolesMetadataConditional

Incluyendo una condición detrás de otra el sistema realiza un AND entre todas ellas para habilitar la acción de creación de la tarea.

<param name="metadata">Doc.DatosRetDisp.RespOblig</param>
<param name="operator">Equal</param>
<param name="constant">true</param>
<param name="metadata">Doc.DatosRetDisp.RespOblig2</param>
<param name="operator">Equal</param>
<param name="constant">false</param> 

El código del XML de configuración es:

                <param code="metadata" minOccurs="0" maxOccurs="*">
                    <type>metadata</type>
                    <name>Codigo del campo a validar</name>
                    <description>Código del campo a validar.</description>
                </param>
                <param code="keyword" minOccurs="0" maxOccurs="*">
                    <type>keyword</type>
                    <name>Palabra reservada a validar</name>
                    <description>Palabra reservada a validar.</description>
                </param>
                <param code="operator" minOccurs="0" maxOccurs="*">
                    <type>list</type>
                    <name>Operador Condición</name>
                    <values>
                        <value code="Equal">igual</value>
                        <value code="Less">menor</value>
                        <value code="Greater">mayor</value>
                        <value code="LessOrEqual">menor o igual</value>
                        <value code="GreaterOrEqual">mayor o igual</value>
                        <value code="Different">diferente</value>
                    </values>
                    <description>Se escoge el tipo de comparación</description>
                </param>
                <param code="constant" minOccurs="0" maxOccurs="*">
                    <type>string</type>
                    <name>Constante a comparar</name>
                    <description>Constante a comparar</description>
                </param>

06/06/2014 2.7.11 Se han añadido las palabras clave [FolderName] y [FolderCode] en los textos del plugin.

26/08/2014 2.7.12 Mejora para permitir que la acción CreateTaskRolesMetadataConditional pueda enviar tareas a un UserLink. Se ha modificado la acción para que pueda recibir en su parámetro "rolesmetadata" un metadato ya sea de tipo RoleLink o también UserLink.

01/02/2016 3.2.0.3769 Se añadio un nuevo parametro a esta accion , el cual es un booleano que mientras este en True enviara un recordatorio formato .ICS de un evento basado en una tarea creada por abox, este parametro no es obligatorio, dicho esto si se coloca en false o no se coloca tendrá el mismo efecto y no enviara dicho evento.

<param name="icalnotify">(true/false)</param>

agregar a archivo de configuracion del hoteditor

 <param code="icalnotify" minOccurs="0" maxOccurs="1">
        <type>boolean</type>
        <name>Recordatorio ICAL</name>
        <description>Envia un recordatorio en formato .ICS para  recordar el calendario</description>
 </param>

Esta funcionalidad respeta la configuración de abox de notificar tareas con integración a agendas electrónicas.
------------------------------------------------

ATENCIÓN: El plugin vigente "CreateTaskRolesMetadataConditional", sólo éste se sigue manteniendo !!!

24/08/2018 se ajusta el envio de correos para que sea igual al que se envia desde el sistema nativo.

keywords que se pueden usar desde cuerpo del correo:

  • [taskName] -> Nombre de la tarea
  • [taskPriority] -> Prioridad de la tarea (alta/normal/baja)
  • [taskCategory] -> Nombre de la categoria de la tarea
  • [EntityName] -> Nombre del contenido asosiado a la tarea
  • [EntityCode] -> Codigo del contenido asociado a la tarea
  • [FolderName] -> Nombre del padre del contenido asociado a la tarea
  • [FolderCode] -> Codigo del padre del contenido asociado a la tarea
  • [taskCreateDate] -> Fecha de creacion de la tarea
  • [taskExpirationDate] -> Fecha en la que expira la tarea
  • [taskWorkflowName] -> Nombre del flujo asociado a la tarea
  • [taskLink] -> Enlace directo a la tarea
  • [getFileLink] -> Enlace para descarga de anexo principal del documento
  • [sourceLink] -> Enlace al contenido asociado a la tarea

NOTA: el cuerpo del correo se esta tomando desde el archivo de recursos Messages, SendAlarmTaskMessage

26/04/2019 Permitir hacer un AND completo con todos los roles y/o organizaciones pasados en el RoleLink (intersectionOperator=true)

Se evalúa la intersección es entre roles & organizaciones y usuario colocados en el RoleLink.

26/03/2020 Ajuste de la funcionalidad CreateTask para no repetir las mismas tareas

Se añade un nuevo parámetro no obligatorio tipo booleano el cual NO permitirá repetir tareas. Entendiendo una tarea repetida como:
  • tengan el mismo contenido origen (SourceId)
  • la misma categoría de tarea (Category)
  • el mismo estado final del contenido (SourceState)
  • los mismo roles/usuarios destinatarios de la tarea (Roles)
<param name="norepetition">(true/false)</param>

 <param code="norepetition" minOccurs="0" maxOccurs="1">
        <type>boolean</type>
        <name>No Repetir Tareas</name>
        <description>Indica si no se va a permitir repetir tareas.</description>
 </param>

30/03/2020 Se añade la una nueva lógica que reactivará las tareas ya creadas cuando su nombre no contengan la palabra "[confirmed]", esto en el caso de que el paramento "noRepetition=TRUE" y la tarea ya exista (que se cumpla la lógica de tareas iguales).

1/07/2020 Se agrega la opción de enviar la palabra clave "[today]" en el parámetro alarmDays, el cual toma la fecha/hora de creación de la tarea como fecha de alarma

05/08/2020 Se agregó validación para evitar error que pasaba al ejecutar esta acción desde el job "TransitionEventsJob".

18/01/2022 Se agregro un nuevo parametro que sera opcional y se encargara de que las tareas sean asignadas a un usuario en especifico por medio de un metadato de tipo entero

 <param name="selectUserInRolesMetadataByOrder">Codigo del metadato entero</param>*

8/02/2023 Modificación técnica: Se agrega parámetro "SourceDateCreate" al momento de crear la tarea esto a raíz de la mejora - http://lab.adapting.com:83/redmine/issues/5365.
Apartir de la versión 6145 es requerido la versión del plugin actualizada en intranet - http://intranet.adapting.com/intranet/Document/Documents/Show/ADP-2017-0266-I

Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)