Effectuez une recherche dans notre base de connaissances
TEC-23 – Ajout des champs du demandeur et de l’utilisateur final sur toutes les tâches et validations
Version(s)
ECALDIMA 2.0 et supérieure
Description
Lors d’une validation ou d’une tâche il s’avère pratique de voir apparaitre les données du demandeur et de l’utilisateur final d’une demande de service. C’est champs peuvent être ajoutés manuellement depuis un click de droite sur la validation ou la tâche dans l’arbre de processus du Concepteur. Si l’on souhaite faire apparaitre ces champs systématiquement, le script ci-dessous permettra de le faire en une seule action.
Si l’on souhaite faire apparaitre ces champs systématiquement, le script ci-dessous permettra de le faire en une seule action.
Installation
Les valeurs des variables au début du script peuvent être modifiées afin de déterminer les champs qui doivent apparaitre. Par défaut ce sont les champs Société, Service et Emplacement du demandeur et de l’utilisateur final qui seront associés à toutes les validations et tâches. Indiquer la valeur 0 (zéro) pour ne pas utiliser un champ. Le script peut être exécuté plusieurs fois. La modification sera visible sur les nouvelles demandes.
Utilisation
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