# Applications

## Écran des applications

<div align="left"><img src="https://2686250513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXBRnD0Rtpm0LaDmoTE%2F-LXBSGlHM6wKCvMPYlWR%2F-LXBSMlc_kXVkZGnsgLP%2Fecran_liste_applications%20(2).png?generation=1548544751186720&#x26;alt=media" alt=""></div>

## Barre de menu

| Liens                | Remarques                                                |
| -------------------- | -------------------------------------------------------- |
| Nouvelle application | Affiche l’écran d’édition des applications en mode ajout |
| Rafraîchir           | Rafraîchit la liste des applications                     |

## Filtres

| Filtrer sur \* | Remarques                            |
| -------------- | ------------------------------------ |
| Nom            | Filtre par nom d’application         |
| Description    | Filtre par description d’application |

\* Un filtre peut s’appliquer à une partie d’un champ.

| Filtres externes  | Remarques                                  |
| ----------------- | ------------------------------------------ |
| Active uniquement | Affiche seulement les applications actives |

## Formulaire application

| Champs                 | Remarques                                                                                                                                                                                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Nom                    | Identifiant unique pour l’application; doit être conforme à la nomenclature et limité à 30 caractères (champ obligatoire)                                                                                                                         |
| Description            | Description de l’application limitée à 255 caractères (champ obligatoire)                                                                                                                                                                         |
| Type                   | <p>Types d’application possible :</p><ul><li>Application Web</li><li>Assembly</li><li>Client non interactif</li><li>Procédure Web</li><li>Procédure Web Asynchrone</li><li>Service WCF</li><li>Service Web</li><li>Webhook entrant</li></ul>      |
| URL                    | URL relative ou absolue de l’application (champ obligatoire)                                                                                                                                                                                      |
| WSDL                   | L’URL de WSDL pour définir un service Web (si nécessaire); voir la section [Services Web WSDL](https://docs.workflowgen.com/admin-fr/8.1/informations-generales/..#services-web-wsdl) pour plus de renseignements sur les services Web avec WSDL. |
| Nom d’utilisateur \*   | Nom d’utilisateur utilisé si une authentification est demandée pour accéder à l’URL de l’application                                                                                                                                              |
| Mot de passe \*        | Mot de passe utilisé si une authentification est demandée pour accéder à l’URL de l’application                                                                                                                                                   |
| Encodage               | <p>Type d’encodage des données utilisé lors du retour de l’application vers WorkflowGen :</p><ul><li>Par défaut (application/x-www-form-urlencoded)</li><li>Upload (multipart/form-data)</li><li>application/xml; charset=UTF-8</li></ul>         |
| Paramètres             | Paramètres de l’application (un lien permet d’afficher la fiche d’édition des paramètres)                                                                                                                                                         |
| Application par défaut | L’application est celle par défaut si l’option est sélectionnée                                                                                                                                                                                   |
| Actif                  | L’application active si l’option est sélectionnée                                                                                                                                                                                                 |
| Schéma XML             | Choisissez le type de Schéma XML entre **ADO recordset** ou **WorkflowGen**                                                                                                                                                                       |
| Schéma embarqué        | Le Schéma sera incorporé au XML si l’option est sélectionnée                                                                                                                                                                                      |

\* Requis seulement pour les procédures Web et les services Web.

## Écran liste des applications

<div align="left"><img src="https://2686250513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXBRnD0Rtpm0LaDmoTE%2F-LXBSGlHM6wKCvMPYlWR%2F-LXBSMlfXaOIUFdbWUny%2Fecran_liste_applications.png?generation=1548544751033222&#x26;alt=media" alt=""></div>

## Liste des applications

| Colonnes    | Remarques                                                                            |
| ----------- | ------------------------------------------------------------------------------------ |
| Ordre       | Ordre d’affichage de l’application dans la liste                                     |
| Nom         | Nom de l’application (un lien permet d’afficher la fiche d’édition de l’application) |
| Description | Description de l’application                                                         |
| Actif       | L’application est active                                                             |
| Utilisation | Nombre d’actions dans lesquelles l’application est utilisée                          |

## Écran liste des paramètres d’une application

<div align="left"><img src="https://2686250513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXBRnD0Rtpm0LaDmoTE%2F-LXBSGlHM6wKCvMPYlWR%2F-LXBSMlhDGIIofGjJbME%2Fliste_parametres_application_624x323.png?generation=1548544750509118&#x26;alt=media" alt=""></div>

| Colonnes       | Remarques                                                                                             |
| -------------- | ----------------------------------------------------------------------------------------------------- |
| Nom            | Nom du paramètre de l’application                                                                     |
| Type de donnée | Type de donnée du paramètre de l’application                                                          |
| Direction      | Direction du paramètre de l’application                                                               |
| Obligatoire    | Paramètre obligatoire                                                                                 |
| Par défaut     | Paramètre optionnel affiché dans la liste des paramètres des actions en fonction de l’action actuelle |
| Suppression \* | Lien permettant la suppression du paramètre de l’application                                          |

\* Le lien de suppression est identifié par un **`x`** visible uniquement si l'application n'est pas utilisée par une action de processus.

Pour ajouter un paramètre, cliquez sur le lien **Paramètres** sur l'écran d'édition de l'application, puis cliquez sur **Ajouter** sur l'écran **Liste des paramètres**.

## Édition des paramètres d’une application

| Champs         | Remarques                                                                                                                                                        |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Nom            | Nom du paramètre de l’application (champ obligatoire)                                                                                                            |
| Description    | Description du paramètre de l’application (champ obligatoire)                                                                                                    |
| Type de donnée | <p>Type de donnée du paramètre de l’application :</p><ul><li>Texte</li><li>Numérique</li><li>Date/Heure</li><li>Fichier</li></ul>                                |
| Direction      | <p>Direction du paramètre de l’application :</p><ul><li>IN : Entrée (Input)</li><li>OUT : Sortie (Output)</li><li>INOUT : Entrée/Sortie (Input/Output)</li></ul> |
| Obligatoire    | <p>Le paramètre est-il obligatoire ?</p><ul><li>Oui (désactive la propriété par défaut)</li><li>Non (autorise la propriété par défaut)</li></ul>                 |
| Défaut         | Le paramètre est affiché dans la liste des paramètres de l’action de l’application actuelle si cette option est sélectionnée                                     |

{% hint style="info" %}
Les noms des paramètres des applications devraient respecter les conventions d'appellation XML suivantes :

* Commencer par une lettre ou par un tiret bas<br>
* Contenir uniquement des lettres, des chiffres, des traits d'union, des tirets bas et des points<br>
* Ne pas contenir des espaces<br>
* Ne pas commencer par les lettres `XML` dans n'importe quelle casse (p.ex. `xml` ou `Xml`)

Pour plus d'informations, voir <https://www.w3schools.com/xml/xml_elements.asp>.
{% endhint %}

## Suppression d’une application

Une application ne peut pas être supprimée si elle est utilisée dans un processus.

## Suppression d’un paramètre

Un paramètre ne peut pas être supprimé si son application est utilisée dans un processus.

## Application de type assembly

Ce type d’application vous permet de déclarer une méthode .NET d’une classe comme une application de workflow. C'est la solution la plus rapide pour développer une application de workflow personnalisée (par rapport à des services Web). La performance d'exécution est exceptionnelle car WorkflowGen instancie directement l’assembly sans communication réseau ou d'authentification du service Web.

### Exemple

1. Copiez un assembly .DLL dans le répertoire `\wfgen\bin` de WorkflowGen.<br>
2. Dans le module d’administration, cliquez sur **Applications**, puis **Nouvelle application**.<br>
3. Saisissez les informations suivantes :
   * **Nom :** `SAMPLE_GET_STRING`
   * **Description :** Retourne une chaîne de caractères avec `!` (point d’exclamation)
   * **Type :** Assembly
   * **Nom ou chemin de l’assembly :** `WorkflowAppSample` <br>
4. Cliquez sur **Enregistrer**.
   * Nom de la classe : Sélectionnez la class désirée `WorkflowApp.Test`
   * Méthode : Sélectionnez la méthode désirée `GetString`

Les paramètres suivants sont automatiquement générés :

* `IN message` (texte)  <br>
* `OUT RETURN_VALUE` (texte)

Vous pouvez maintenant utiliser votre application de workflow dans vos processus.

## Application de type service Web WCF

Ce type d’application vous permet de déclarer un proxy client d’un service Web WCF comme application de workflow.

### Exemple

1. Dans le module d’administration, cliquez sur **Applications**, puis sur **Nouvelle application**.<br>
2. Saisissez les informations suivantes :
   * **Nom :** `WCFSERVICE_SAMPLE_GET_STRING`
   * **Description :** Retourne une chaîne de caractères avec `!` (point d’exclamation)
   * **Type :** Service WCF
   * **Nom ou chemin de l’assembly :** `WorkflowAppWCFSampleTest` <br>
3. Cliquez sur **Enregistrer**.
   * Nom de la classe : Sélectionnez la classe désirée `workflowAppWCFSampleTest.ServiceClient`
   * Méthode : Sélectionnez la méthode désirée `GetString`

Les paramètres suivants sont automatiquement générés :

* `IN message (texte)`
* `OUT RETURN_VALUE (texte)`

Vous pouvez maintenant utiliser votre application de workflow dans vos processus.

Nom : `WCFSERVICE_SAMPLE_GET_STRING`

## Services Web WSDL

### Aperçu

WorkflowGen supporte les Web Services basés sur le standard SOAP. Les Web Services peuvent s’intégrer avec WorkflowGen sans programmation et être utilisés par des actions de processus. Vous pouvez prédéfinir des services web et les références en utilisant leurs fichiers WSDL (Web Services Description Language).

Il est nécessaire d’avoir un URL qui pointe au fichier de définition WSDL pour que les méthodes web se rendent disponibles à WorkflowGen. Suite à l’ajout du WSDL (dans le répertoire d’application WorkflowGen), la sélection d’un service web sera disponible, et les paramètres de l’application WorkflowGen sont générés automatiquement.

Les types de données des paramètres sont associés aux types des données WorkflowGen correspondants (numérique, texte, datetime, fichier). Tous les types XML complexes sont associés à une donnée de type fichier.

### Services Web publics

Les services de Web publics sont disponibles pour consomption publique. Pour voir un exemple WorkflowGen, suivez l'exemple ci-dessous.

### Créer un service Web WSDL

1. Dans le module d’administration, créez une nouvelle application et définissez ce qui suit :
   * Nom
   * Description
   * Type : Service Web
   * Nom d’utilisateur : \[un administrateur valide de WorkflowGen]
   * Mot de passe : \[le mot de passe valide pour le nom d’utilisateur]<br>
2. Définissez un URL service Web valide et son WSDL associé, et sauvez l’application.<br>

   📌 **Exemple d'URL :**

   ```
   http://quickstarts.asp.net/QuickStartv20/webservices/Samples/MathService/vb/Server/MathService.asmx
   ```

   📌 **Exemple de WSDL :**

   ```
   http://quickstarts.asp.net/QuickStartv20/webservices/Samples/MathService/vb/Server/MathService.asmx?WSDL
   ```
3. Choisissez la méthode à employer. Le WSDL définit quelles méthodes sont disponibles. Suite à la sélection d’une méthode Web, les paramètres associés seront automatiquement associés et l'application pourra être employée par les actions de processus.

## Exemple d’un service Web privé

### Aperçu

Les services de Web privés sont des services de Web qui ne sont pas disponibles pour être réutilisés au public. Ils emploient généralement un URL qui exige de l'authentification interne à votre organisation. Pour voir un exemple WorkflowGen, suivez l'exemple ci-dessous.

### Créer un service Web WSDL

1. Dans le module d’administration, créez une nouvelle application et définir ce qui suit :
   * Nom
   * Description
   * Type : Service Web
   * Nom d’utilisateur : \[un administrateur valide de WorkflowGen]
   * Mot de passe : \[le mot de passe valide pour le nom d’utilisateur]<br>
2. Définissez un URL Web Service valide et son WSDL associé et sauvegardez l'application. \
   \
   L'exemple ci-dessous décrit l'utilisation d'un service Web situé sur un site Web 2007 de SharePoint. Dans cet exemple, le Web Service s'appelle `lists.asmx`. Pour plus d'information, référez-vous à <https://msdn.microsoft.com/fr-fr/library/ms445760.aspx>.<br>

   📌 **Exemple d'URL :**

   ```
   http://myspsserver/_vti_bin/lists.asmx
   ```

   📌 **Exemple de WSDL :**

   ```
   http://myspsserver/_vti_bin/lists.asmx?WSDL
   ```
3. Choisissez la méthode à employer. Le WSDL définit quelles méthodes sont disponibles. Suite à la sélection d’une méthode Web, les paramètres associés seront automatiquement associés et l'application pourra être employée par les actions de processus.

## Action de service Web de WSDL : paramètres supplémentaires

### Aperçu

WorkflowGen créera quelques paramètres supplémentaires en mettant en référence un WSDL. Ces autres paramètres peuvent être employés en plus de ceux déjà définis dans le dossier de WSDL.

### Paramètres supplémentaires

Les autres paramètres qui sont définis par WorkflowGen sont les suivants :

* `RETURN_VALUE` : Si le service Web renvoie une valeur, WorkflowGen ajoutera automatiquement un paramètre OUT.<br>
* `WFG_WS_URL` : Spécifie un URL de service Web pour outrepasser l'URL prédéfini.<br>
* `WFG_WS_USERNAME` : Spécifie un nom d’utilisateur pour outrepasser le nom d’utilisateur prédéfini.<br>
* `WFG_WS_PASSWORD`  : Spécifie un mot de passe pour outrepasser le mot de passe prédéfini.
