Base de conocimiento

Introduzca su búsqueda por palabra clave en el cuadro de texto

ecaldima.com | Soporte | Contacto

TEC-23 – Agregar los campos del solicitante y usuario final en todas las tareas y validaciones

Here

Versión(s)

ECALDIMA 2.0 y superior

Descripción

Durante una validación o una tarea, es conveniente ver los datos del solicitante y del usuario final de una solicitud de servicio.
Los campos se pueden agregar manualmente desde un clic derecho en la validación o tarea en el árbol de procesos del Diseñador.

Si desea que aparezcan estos campos sistemáticamente, el siguiente script lo hará en una sola acción.

Instalación

Los valores de las variables al comienzo del script se pueden modificar para determinar los campos que deberían aparecer
De forma predeterminada, los campos Compañía, Departamento y Ubicación de usuario final y solicitante se asociaran con todas las validaciones y tareas.
Indicar el valor 0 (cero) para no utilizar un campo.
El script puede ser ejecutado varias veces.
La modificación será visible sobre las nuevas solicitudes.

Uso

USE ECALDIMA
GO
--Parameters
--Set the parameter to 1 to associate the field to the tasks and validations. Otherwise set it to 0 (zero)
Declare @AddRequesterCompany int = 1
Declare @AddRequesterDepartment int = 1
Declare @AddRequesterLocation int = 1
Declare @AddEndUserCompany int = 1
Declare @AddEndUserDepartment int = 1
Declare @AddEndUserLocation int = 1

--End of parameters


Declare @ServiceId int
Declare @ProcessId int
Declare @HasEndUserField int
Declare @ProcessNodeId int

Declare c_cur CURSOR FOR
SELECT Id, ProcessId FROM [Service]
JOIN Service_ProcessAssociation ON [Service].Id = Service_ProcessAssociation.ServiceId



SELECT @HasEndUserField = 0
OPEN c_cur
FETCH NEXT FROM c_cur INTO @ServiceId,@ProcessId
WHILE @@FETCH_STATUS = 0
BEGIN
       SELECT @HasEndUserField = 0
       SELECT @HasEndUserField = COUNT(*) FROM Service_FieldAssociation WHERE ServiceId = @ServiceId AND FieldId = -7

       Declare obj_cur CURSOR FOR SELECT Id FROM dbo.fn_GetProcessTreeByRootId(@ProcessId) WHERE NodeType IN ('VALIDATION','TASK')
       OPEN obj_cur
       FETCH NEXT FROM obj_cur INTO @ProcessNodeId
       WHILE @@FETCH_STATUS = 0
       BEGIN
              IF NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -3) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-3,1,-8)
              IF @AddRequesterCompany = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -12) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-12,1,-7)
              IF @AddRequesterDepartment = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -9) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-9,1,-5)
              IF @AddRequesterLocation = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -10) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-10,1,-6)
              
              If @HasEndUserField = 1
              BEGIN
                     IF NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -7) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-7,1,-4)
                     IF @AddEndUserCompany = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -16) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-16,1,-3)
                     IF @AddEndUserDepartment = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -13) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-13,1,-1)
                     IF @AddEndUserLocation = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -14) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-14,1,-2)
              END
              FETCH NEXT FROM obj_cur INTO @ProcessNodeId
       END
       CLOSE obj_cur
       DEALLOCATE obj_cur

       
       FETCH NEXT FROM c_cur INTO @ServiceId,@ProcessId
END
CLOSE c_cur
DEALLOCATE c_cur

Declare @ArticleId int
Declare c_cur CURSOR FOR
SELECT ServiceId, Article_ProcessAssociation.ArticleId, ProcessId 
FROM Article_ProcessAssociation
JOIN Service_ArticleAssociation ON Service_ArticleAssociation.ArticleId = Article_ProcessAssociation.ArticleId

SELECT @HasEndUserField = 0
OPEN c_cur
FETCH NEXT FROM c_cur INTO @ServiceId,@ArticleId,@ProcessId
WHILE @@FETCH_STATUS = 0
BEGIN
       SELECT @HasEndUserField = 0
       SELECT @HasEndUserField = COUNT(*) FROM Service_FieldAssociation WHERE ServiceId = @ServiceId AND FieldId = -7
       Declare obj_cur CURSOR FOR SELECT Id FROM dbo.fn_GetProcessTreeByRootId(@ProcessId) WHERE NodeType IN ('VALIDATION','TASK')
       OPEN obj_cur
       FETCH NEXT FROM obj_cur INTO @ProcessNodeId
       WHILE @@FETCH_STATUS = 0
       BEGIN
              IF NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -3) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-3,1,-8)
              IF @AddRequesterCompany = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -12) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-12,1,-7)
              IF @AddRequesterDepartment = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -9) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-9,1,-5)
              IF @AddRequesterLocation = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -10) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-10,1,-6)
              If @HasEndUserField = 1
              BEGIN
                     IF NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -7) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-7,1,-4)
                     IF @AddEndUserCompany = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -16) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-16,1,-3)
                     IF @AddEndUserDepartment = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -13) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-13,1,-1)
                     IF @AddEndUserLocation = 1 AND NOT EXISTS(SELECT 1 FROM ProcessFieldVisibility WHERE ProcessId = @ProcessNodeId AND FieldId = -14) INSERT ProcessFieldVisibility([ProcessId],[FieldId],[Visible],[Sort]) VALUES (@ProcessNodeId,-14,1,-2)
              END
              FETCH NEXT FROM obj_cur INTO @ProcessNodeId
       END
       CLOSE obj_cur
       DEALLOCATE obj_cur
       FETCH NEXT FROM c_cur INTO @ServiceId,@ArticleId,@ProcessId
END
CLOSE c_cur
DEALLOCATE c_cur
¿Fue útil este artículo?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
¿Cómo podemos mejorar este artículo?
Please submit the reason for your vote so that we can improve the article.
KB Ecaldima