# Participants

## Écran liste des participants d'un processus

<div align="left"><img src="https://content.gitbook.com/content/pSR0FJub3VUec6MbQZNw/blobs/kIR5ZLj2EqXNgXGfyXCT/ecran_liste_participants_processus.png" alt=""></div>

## Liste des participants

| **Colonnes** | **Remarques**                                                                                                                                                                                                  |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ordre        | Les flèches permettent la modification de l’ordre d’affichage du participant                                                                                                                                   |
| Nom          | <p>Nom du participant (un lien affiche l’écran du participant)<br><br>Le lien <strong>Ajouter</strong> permet d’associer un participant global ou de créer un nouveau participant spécifique au processus.</p> |
| Description  | Description du participant                                                                                                                                                                                     |
| Rôle         | Rôle du participant dans le processus                                                                                                                                                                          |
| Utilisateurs | Nombre d’utilisateurs potentiels du participant                                                                                                                                                                |

## Formulaire participant

<div align="left"><img src="https://content.gitbook.com/content/pSR0FJub3VUec6MbQZNw/blobs/HKG0itBXp1XZjMWXgafa/Screen%20Shot%202021-12-23%20at%204.56.41%20PM.png" alt=""></div>

| **Champs**                         | **Remarques**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Portée                             | Information de portée : Processus ou Global                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Nom \[1]                           | <p><strong>Champ obligatoire</strong></p><p>Identifiant unique pour le participant (même les globaux); doit être conforme à la nomenclature et limité à 30 caractères</p>                                                                                                                                                                                                                                                                                                                                  |
| Description \[1]                   | <p><strong>Champ obligatoire</strong></p><p>Description du participant limité à 255 caractères</p>                                                                                                                                                                                                                                                                                                                                                                                                         |
| Rôle \[2]                          | <p>Rôle du participant dans le processus</p><ul><li>Demandeur</li><li>Acteur</li><li>Superviseur du processus \[5]</li></ul>                                                                                                                                                                                                                                                                                                                                                                               |
| Type de participant \[1]           | <p><strong>Champ obligatoire</strong></p><p>Type de participant, définissant les associations possibles avec l’annuaire :</p><ul><li>Personne</li><li>Liste de personnes</li><li>Liste de personnes avec coordinateur(s)</li></ul>                                                                                                                                                                                                                                                                         |
| Utilisateur(s)                     | <p>Liste des utilisateurs associés au participant</p><p>Un lien permet l’ajout ou la suppression des utilisateurs.</p>                                                                                                                                                                                                                                                                                                                                                                                     |
| Groupe(s) \[3]                     | <p>Liste des groupes associés au participant</p><p>Un lien permet l’ajout ou la suppression des utilisateurs</p>                                                                                                                                                                                                                                                                                                                                                                                           |
| Annuaire(s) \[3]                   | <p>Liste des annuaires associés au participant</p><p>Un lien permet l’ajout ou la suppression des annuaires</p>                                                                                                                                                                                                                                                                                                                                                                                            |
| Coordinateur(s) \[4]               | <p>Liste des coordinateurs associés au participant</p><p>Un lien permet l’ajout ou la suppression des coordinateurs.</p>                                                                                                                                                                                                                                                                                                                                                                                   |
| Suivi graphique                    | Autorise les utilisateurs associés au participant à visualiser le suivi graphique des demandes du process et l’aide graphique du processus depuis le portail d’utilisateur                                                                                                                                                                                                                                                                                                                                 |
| Permissions pour les demandes \[6] | Autorise les utilisateurs associés au participant à accéder à toutes les demandes, les actions et les données du process en **lecture-seule** en mode **utilisateur**.                                                                                                                                                                                                                                                                                                                                     |
| Permissions pour les superviseurs  | <ul><li>Réaffecter les actions en cours</li><li>Annuler les demandes en cours</li><li>Accéder aux statistiques</li></ul>                                                                                                                                                                                                                                                                                                                                                                                   |
| Permissions pour les commentaires  | <ul><li><strong>Aucune</strong> : La liste des commentaires ne sera pas accessible aux utilisateurs du participant</li><li><strong>Lire</strong> : Les utilisateurs du participant peuvent accéder à la liste des commentaires en lecture</li><li><strong>Lire + Écrire</strong> : Les utilisateurs du participant peuvent consulter et envoyer de nouveaux commentaires.</li></ul><p>✏️ <strong>Note :</strong> Les superviseurs du processus auront toujours les permissions de lecture et écriture.</p> |
| Requête (Aide)                     | <p>La fonctionnalité de portée limitée des superviseurs permet aux participants de type « Superviseur de processus » le filtrage dynamique des demandes et des actions</p><p>Un lien pour effectuer un test est disponible pour valider la syntaxe de la requête.</p>                                                                                                                                                                                                                                      |

1\. En mode lecture seule si le participant est de type global.\
2\. Un demandeur unique est autorisé par processus.\
3\. Accessible seulement aux participants de type **Liste de personnes** et **Liste de personnes avec coordinateur**. \
4\. Accessible seulement aux participants de type **Liste de personnes avec coordinateurs**. \
5\. Le participant superviseur ne doit pas être obligatoirement associé à une action.\
6\. La permission d'accès aux demandes est spécifique à la version du process.

## Association avec un annuaire

| **Champs**  | **Remarques**                                    |
| ----------- | ------------------------------------------------ |
| Nom \*      | Filtre par nom de personne                       |
| Disponible  | Liste des associations possibles avec l’annuaire |
| Sélectionné | Liste des associations actuelles avec l’annuaire |

\* Visible seulement si associé à un utilisateur ou un coordinateur et lorsque le nombre d’utilisateurs dans la base est supérieur à la limite définie par l’administrateur du logiciel.

Un participant de type **Personne** est associé à un seul utilisateur.

Un participant de type **Liste de personnes** est associé à un ou plusieurs utilisateurs ou groupes ou annuaires.

Un participant de type **Liste de personnes avec coordinateur** est associé à un ou plusieurs coordonnateurs et à un ou plusieurs ou groupes ou annuaires.

## Suppression d'un participant

Un participant ne peut pas être supprimé si la personne est associée à une action d’un processus.

## Ajout d’un participant global

Un participant global ne peut être associé qu’une seule fois avec un processus.

## Demandeur d'un processus

Il ne peut y avoir qu’un seul participant de rôle **Demandeur** dans un processus.

## Superviseur d'un processus

Il peut y avoir plusieurs participants de rôle **Superviseur** dans un processus, chacun avec sa propre configuration de sécurité et de suivi précisée dans la requête de portée limitée des superviseurs.

## Modification du type de participant

Les conditions suivantes s'appliquent lors de la modification du type de participant :

* **Personne** à **Liste de personnes** ou **Liste de personnes avec coordinateur(s)** : Le participant ne doit pas être utilisé dans une action de processus.<br>
* **Liste de personnes** à **Personne** : Un seul utilisateur doit être associé au participant et le participant ne doit pas être utilisé dans une action de processus.<br>
* **Liste de personnes** à **Liste de personnes avec coordinateur(s)** : Ajoutez au moins un coordinateur.<br>
* **Liste de personnes avec coordinateur(s)** à **Liste de personnes** : Le participant ne doit pas être utilisé dans une action de processus où l'affectation est effectuée par le coordinateur.

## Portée limitée des superviseurs&#x20;

### Aperçu

La fonctionnalité de portée limitée des superviseurs permet aux participants de type **Superviseur de processus** le filtrage dynamique des suivis des demandes. Lorsqu'un utilisateur est associé à un participant de type Superviseur de processus avec une requête de portée limitée définie, sa page d’accueil de suivis, sa portlet de syndication RSS, ses résultats de recherche de suivis et ses rapports de statistiques seront filtrés d’après la requête. La requête est définie avec des conditions de critères dont la syntaxe est comparable aux conditions de critères SQL. De plus, la définition de la requête, plus spécifiquement les critères de filtrage, supporte l'utilisation les champs du profil d’utilisateur et les données de processus.

### Définitions

La requête de portée limitée des superviseurs peuvent être défini par les participants de type **Superviseur de processus** seulement. Pour activer la fonctionnalité de la portée limitée, il s’agit seulement de définir la requête pour un superviseur de process existant ou en créant un participant à nouveaux. La requête est limitée à un maximum de 255 caractères.

Si la requête non définie, le superviseur peuvent accéder tous les demandes et tous les actions d’un processus.

### Aide

L’aide en ligne est disponible pour la requête de portée limitée des superviseurs en cliquant le lien **Aide**.

### Validation de la syntaxe de la requête

Cliquez le lien **Test** pour valider la syntaxe de la requête de portée limitée. Une sauvegarde d’une requête non valide n’est pas autorisée.

### Liste des champs et macros disponibles pour l’usage dans la requête

Voici une liste des champs et macros disponibles pour l’utilisation dans une demande de portée limitée des superviseurs. Les champs disponibles sont ceux disponibles dans le profil des utilisateurs. Les données d’un processus peuvent aussi être utilisées comme valeur de comparaison dans les critères de conditions pour que la requête puisse filtrer les résultats.

| **Champs disponibles**         | **Définitions**                           |
| ------------------------------ | ----------------------------------------- |
| `LASTNAME`                     | Nom                                       |
| `FIRSTNAME`                    | Prénom                                    |
| `USERNAME`                     | Nom d'utilisateur                         |
| `EMAIL`                        | Email                                     |
| `PHONE`                        | Téléphone                                 |
| `MOBILE`                       | Portable                                  |
| `PAGER`                        | Téléavertisseur                           |
| `FAX`                          | Fax                                       |
| `OFFICE`                       | Bureau                                    |
| `DEPARTMENT`                   | Département                               |
| `COMPANY`                      | Société                                   |
| `JOBTITLE`                     | Fonction                                  |
| `PERSONALTITLE`                | Titre                                     |
| `EMPLOYEENUMBER`               | Matricule                                 |
| `EMPLOYEETYPE`                 | Type d’employé                            |
| `POSTALADDRESS`                | Adresse postale                           |
| `POSTALCODE`                   | Code postal                               |
| `CITY`                         | Ville                                     |
| `STATE`                        | État/Région                               |
| `COUNTRY`                      | Pays                                      |
| `EXTATT_1`                     | Champ personnalisé 1                      |
| `EXTATT_2`                     | Champ personnalisé 2                      |
| `EXTATT_3`                     | Champ personnalisé 3                      |
| `EXTATT_4`                     | Champ personnalisé 4                      |
| `EXTATT_5`                     | Champ personnalisé 5                      |
| **Macros disponibles**         | **Définitions**                           |
| `{ISMEMBER(groupname)}` \*     | Membre du groupe `groupname`              |
| `{ISMANAGER(username)}` \*     | Responsable de l’utilisateur `username`   |
| `{ISSTAFFMEMBER(username)}` \* | Collaborateur de l’utilisateur `username` |

\* Les macros supportent seulement du texte statique comme paramètre. Indiquer le nom d’un champ dans le processus n’est supporté. Par exemple :

* Valide : `{ISMEMBER(my_group_name)}`
* Non valide : `{ISMEMBER(@GROUP_NAME)}`

### Exemples de requêtes

Cet exemple produit les demandes/actions pour les utilisateurs dans la province de Québec :

```
STATE = 'QC'
```

Cet exemple produit les demandes/actions pour les utilisateurs dont l’adresse email se termine avec `advantys.com` :

```
EMAIL LIKE '%ADVANTYS.COM'
```

Cet exemple produit les demandes/actions pour les utilisateurs faisant parti du groupe `MONGROUPE` :

```
{ISMEMBER(MONGROUPE)}
```

Cet exemple produit les demandes/actions dont le département est égal à la valeur d’une donnée de processus `DEPT_DATA` :

```
DEPARTMENT = @DEPT_DATA
```

#### Comparaison d'un texte à une donnée de demande

Pour comparer un texte à une donnée de demande, vous devez **inverser l'ordre de comparaison**, avec le texte en premier suivi de l'opérateur et la donnée.

Cet exemple produit les demandes/actions dont la ville de l’utilisateur est égale à la valeur d’une donnée de process `MA_VILLE` et le pays de l’utilisateur est égal à la valeur d’une donnée de process `MON_PAYS` :

```
CITY = @MA_VILLE AND 'CANADA' = @MON_PAYS
```

### Opérateurs de comparaison

Vous pouvez utiliser les opérateurs de comparaison standards SQL tels que `=`, `!=`, `<>`, `IS NULL`, `NOT IS NULL`, `LIKE`, `NOT LIKE`, etc...

Pour une meilleure compatibilité, il est recommandé d’utiliser les opérateurs standards qui sont supportés par la base de données hébergeant WorkflowGen.

#### 📌 Exemple

Cet exemple produit les demandes/actions des utilisateurs qui ne sont pas situés à Montréal :

`CITY <> 'MONTREAL'`

### Opérateurs logiques et parenthèses

Vous pouvez utiliser les opérateurs standards de SQL tels que `AND` et `OR` pour combiner plusieurs critères de conditions jusqu’à un maximum de 255 caractères. Il est fortement recommandé d’utiliser des parenthèses pour logiquement enclore plusieurs critères ensembles.

#### 📌 Exemple

Cet exemple produit les demandes/actions dont l’utilisateur est situé au Canada, plus précisément soit à Toronto ou à la valeur contenue dans la donnée du processus `CITY_DATA` :

```
COUNTRY = 'CANADA' AND (CITY = 'TORONTO' OR CITY = @CITY_DATA)
```

### Valeurs texte

Les valeurs texte utilisé dans les critères de conditions doivent être comprises entre apostrophes. Les guillemets ne sont pas supportés comme délimiteurs mais sont valide comme valeur de critère. Les caractères de remplacement tels que `%*` et `_` peuvent être utilisé avec l’opérateur `LIKE`.

#### 📌 Exemple

Cet exemple produit les demandes/actions dont le nom débute avec `AN` :

```
LASTNAME LIKE 'AN%'
```

### Données de processus

Vous pouvez utiliser les données du processus dans les critères de conditions pour filtrer les demandes dynamiquement car la valeur des données peuvent différer d’une demande à l’autre. Vous devez tout simplement faire appel aux données de processus et les préfixer avec le caractère `@` (a-commercial).

#### 📌 Exemple

Cet exemple renvoie les demandes/actions dont la société de l’utilisateur est égale à la valeur de la donnée de processus `DATA1` :

```
COMPANY = @DATA1
```

(`DATA1` est utilisé comme exemple; n’importe quelle donnée de processus peut être utilisée.)

{% hint style="info" %}
Assurez-vous que les noms des données du processus utilisés comme critères de conditions soient identiques à ceux définis dans WorkflowGen.
{% endhint %}

### Macros

Vous pouvez aussi utiliser des macros dans les critères de conditions des requêtes. Vous devez tous simplement ajouter une macro de la liste des macros disponibles à votre critère de conditions.

#### 📌 Exemple

Cet exemple produit les demandes/actions dont l’utilisateur est membre du groupe `Dev` situé à Montréal.

```
CITY = 'MONTREAL' and {ISMEMBER(Dev)}
```

{% hint style="warning" %}
Il est très important de respecter la syntaxe des macros disponibles dans la liste de macros.
{% endhint %}

### Impacts d’exécution

La portée limitée est appliquée avec des opérateurs `LIKE` et/ou les caractères de substitution (`%`, `_`) dans les critères de conditions. La raison est due à la grande quantité d’information qui aura besoin d’être filtré par le moteur de workflow avant d’être affichée aux utilisateurs.

Nous suggérons de tester l’impact de la requête de portée limitée des superviseurs dans un environnement de développement avant de la mettre en production.
