# Applications

## Écran des applications

Cliquez sur ![](https://content.gitbook.com/content/m3LX7TFQlx4LtknyqwiZ/blobs/awKhrOD4rJnoezSgmpD3/image.png) dans le menu de gauche du module d'administration pour ouvrir l'écran **Applications**.

<figure><img src="https://content.gitbook.com/content/m3LX7TFQlx4LtknyqwiZ/blobs/POHvp1EABVqmQdSPDa88/%C3%A9cran_applications.png" alt=""><figcaption></figcaption></figure>

## Barre de menu

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

## 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**                               |
| -------------------- | ------------------------------------------- |
| Actives              | Affiche uniquement les applications actives |

## Liste des applications

<table data-header-hidden><thead><tr><th width="262.5">Colonnes</th><th>Remarques</th></tr></thead><tbody><tr><td><strong>Colonnes</strong></td><td><strong>Remarques</strong></td></tr><tr><td>Ordre</td><td>Ordre d’affichage de l’application dans la liste</td></tr><tr><td>Nom</td><td>Nom de l’application (un lien permet d’afficher la fiche d’édition de l’application)</td></tr><tr><td>Description</td><td>Description de l’application</td></tr><tr><td>Actif</td><td>L’application est active</td></tr><tr><td>Utilisation</td><td>Nombre d’actions dans lesquelles l’application est utilisée</td></tr></tbody></table>

## Formulaire application

### Onglet Général

{% hint style="info" %}
Ces champs sont affichés selon le type d'application sélectionné.
{% endhint %}

| **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/9.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                                                                                                                                                                                                  |
| Type de contenu        | <p>Type d'encodage des données utilisé lors du retour de l’application vers WorkflowGen :</p><ul><li><code>application/x-www-form-urlencoded</code></li><li><code>application/xml; charset=UTF-8</code></li><li><code>application/json</code></li><li><code>multipart/form-data</code></li></ul> |
| Format du context      | <p>Définit le type de format des paramètres de contexte échangés entre l'application et WorkflowGen :</p><ul><li>JSON</li><li>XML ADO.NET DataSet (schéma WorkflowGen par défaut)</li><li>XML ADO Recordset</li></ul>                                                                            |
| Schéma embarqué        | Si cette case est cochée, le schéma sera intégré en ligne dans le XML (pour les formats de contexte XML uniquement)                                                                                                                                                                              |
| 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                                                                                                                                                                                                                                                |

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

### Onglet paramètres

<figure><img src="https://content.gitbook.com/content/m3LX7TFQlx4LtknyqwiZ/blobs/8x3eF7bkaTTmVAeNMjNL/applications_onglet_param%C3%A8tres.png" alt=""><figcaption></figcaption></figure>

| **Colonnes**   | **Remarques**                                                                                          |
| -------------- | ------------------------------------------------------------------------------------------------------ |
| Nom            | Nom du paramètre de l’application                                                                      |
| Description    | Description 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 facultatif affiché dans la liste des paramètres des actions en fonction de l’action actuelle |

### Ajouter un paramètre

Cliquez sur le bouton **Nouveau paramètre** pour ouvrir le panneau **Ajouter un paramètre d'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 (envoyer la valeur dans le paramètre)</li><li>OUT : Sortie (récupérer la valeur du paramètre)</li><li>INOUT : Entrée/Sortie (envoyer et récupérer la valeur du paramètre)</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 (active la propriété par défaut)</li></ul>                                                                                                          |
| Par 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 doivent respecter les conventions d'appellation XML suivantes :

* Commencer par une lettre ou par un tiret bas
* Contenir uniquement des lettres, des chiffres, des traits d'union, des tirets bas et des points
* Ne pas contenir des espaces
* 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.
2. Dans le module d’administration, cliquez ![](https://content.gitbook.com/content/m3LX7TFQlx4LtknyqwiZ/blobs/zBQjo2ZmhkHhGDXDWL9i/image.png) sur dans le menu de gauche, puis cliquez sur **Nouvelle application**.
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`&#x20;
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) &#x20;
* `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 ![](https://content.gitbook.com/content/m3LX7TFQlx4LtknyqwiZ/blobs/vTYRfTaFxhGGnQdvINdE/image.png) dans le menu de gauche, puis cliquez sur **Nouvelle application**.
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`&#x20;
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 WorkflowGen valide
   * **Mot de passe :** Le mot de passe valide pour le nom d’utilisateur
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.
* `WFG_WS_URL` : Spécifie un URL de service Web pour outrepasser l'URL prédéfini.
* `WFG_WS_USERNAME` : Spécifie un nom d’utilisateur pour outrepasser le nom d’utilisateur prédéfini.
* `WFG_WS_PASSWORD`  : Spécifie un mot de passe pour outrepasser le mot de passe prédéfini.
