# Portlet

## Aperçu   <a href="#apercu" id="apercu"></a>

Le module Portlet permet de retrouver les informations provenant de la page d’accueil du portail utilisateur WorkflowGen au format RSS ou autre (par transformation XSL).

Les résultats reçus depuis une requête HTTP sont retournés au format XML RSS et classés par catégories. Ce format permet le traitement et la présentation des données via tous langages capables de lire et d’analyser du contenu XML.

## Paramètres URL et HTTP   <a href="#url-et-parametres-http" id="url-et-parametres-http"></a>

### URL

Vous pouvez obtenir le contenu généré par le module Portlet avec l’URL suivante : `http://votresite/wfgen/show.aspx?QUERY=SHOW_RSS`

### Paramètres

| Paramètre          | Description                                                                                                                                                                                                                                              |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `USERNAME`         | <p>Récupère les données pour cet utilisateur. Le login actuel est supposé si ce paramètre est manquant.</p><p>📌 <strong>Exemple :</strong> <code>wfgen_admin</code></p>                                                                                 |
| `CATEGORY`         | <p>Liste des catégories à récupérer séparées par <code>;</code> (point-virgule). Si ce paramètre est manquant, toutes les catégories disponibles sont retournées.</p><p>📌 <strong>Exemple :</strong> <code>REQUEST_RUNNING_NB;ACTION_TODO_NB</code></p> |
| `PROCESS`          | <p>Permet au contenu d’être filtré par des processus spécifiques. Spécifiez les noms des processus séparés par <code>;</code> (point-virgule).</p><p>📌 <strong>Exemple :</strong> <code>DDE_CONGES</code></p>                                           |
| `PROCESS_CATEGORY` | <p>Permet de filtrer le contenu par des catégories spécifiques de processus. Spécifiez les noms des catégories séparés par <code>;</code> (point-virgule).</p><p>📌 <strong>Exemple :</strong> <code>RH</code></p>                                       |
| `SHOW_NEW_REQUEST` | <p>Récupère la liste des processus que l’utilisateur courant peut lancer.</p><p>📌 <strong>Exemple :</strong> <code>Y</code></p>                                                                                                                         |
| `XSL`              | <p>Chemin de la feuille XSL utilisée pour transformer le contenu RSS.</p><p>📌 <strong>Exemple :</strong> <code>http://votresite/portlet.xsl</code></p>                                                                                                  |

### Exemples

Retrouver toutes les catégories pour l’utilisateur pour lequel le nom d’utilisateur est `jeand` :

```
http://votresite/wfgen/show.aspx?QUERY=SHOW_RSS&USERNAME=jeand
```

Retrouver les actions à faire (normales et en retard) pour l’utilisateur pour lequel le nom d’utilisateur est `jeand` :

```
http://votresite/wfgen/show.aspx?QUERY=SHOW_RSS&USERNAME=jeand&CATEGORY=ACTION_TODO_NB;ACTION_TODO_OVERDUE_NB
```

Retrouver les informations relatives à la catégorie `RH` pour l’utilisateur courant :

```
http://votresite/wfgen/show.aspx?QUERY=SHOW_RSS&PROCESS_CATEGORY=RH
```

### Sécurité

#### Authentification

Pour appeler le module Portlet, vous devez utiliser un compte ayant accès au portail d’utilisateur de l’application WorkflowGen (ex. : `wfgen_admin`).

#### Nom d’utilisateur avec ou sans nom de donnée

Vous devez supprimer le nom de domaine du nom d'utilisateur lors de l'appel du module Portlet si les noms d'utilisateurs sont préfixés par le nom du domaine (voir [Gestion des utilisateurs](gestion-des-utilisateurs) pour plus d'informations).

## Format de spécifications RSS   <a href="#format-de-specifications-rss" id="format-de-specifications-rss"></a>

### Spécifications officielles

Vous pouvez obtenir plus d’informations officielles (en anglais) sur le standard RSS 2.0 à l’adresse suivante : [http://blogs.law.harvard.edu/tech/rss](http://blogs.law.harvard.edu/tech/rss).

### Exemple de contenu

```markup
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
        <title>WorkflowGen</title>
        <description>WorkflowGen</description>
        <pubdate>Fri, 24 Oct 2011 15:19:42 GMT</pubdate>
        <language>en-US</language>
        <item>
            <title>Ongoing requests</title>
            <link>http://yoursite/wfgen/...</link>
            <description>15</description>
            <category>REQUEST_RUNNING_NB</category>
        </item>
        <item>
            <title>Actions to do</title>
            <link>http://yoursite/wfgen/...</link>
            <description>10</description>
            <category>ACTION_TODO_NB</category>
        </item>
    </channel>
</rss>
```

### Description des nœuds XML RSS

| Nom           | Chemin             | Description                                                                              |
| ------------- | ------------------ | ---------------------------------------------------------------------------------------- |
| `channel`     | `rss`              | Nœud racine                                                                              |
| `title`       | `rss/channel`      | <p>Titre du canal</p><p>📌 <strong>Exemple :</strong> <code>WorkflowGen</code></p>       |
| `description` | `rss/channel`      | <p>Description du canal</p><p>📌 <strong>Exemple :</strong> <code>WorkflowGen</code></p> |
| `pubdate`     | `rss/channel`      | Date de publication du contenu du canal                                                  |
| `language`    | `rss/channel`      | Langue du canal                                                                          |
| `item`        | `rss/channel`      | Nœud de conteneur de catégories                                                          |
| `title`       | `rss/channel/item` | Titre de la catégorie                                                                    |
| `link`        | `rss/channel/item` | Lien contextuel de la catégorie dans WorkflowGen                                         |
| `description` | `rss/channel/item` | Valeur de la catégorie                                                                   |
| `category`    | `rss/channel/item` | Nom de la catégorie                                                                      |

## Liste des catégories disponibles   <a href="#liste-des-categories-disponibles" id="liste-des-categories-disponibles"></a>

Les catégories disponibles sont décrites ci-dessous :

| Nom                           | Description                                                     |
| ----------------------------- | --------------------------------------------------------------- |
| `REQUEST_RUNNING_NB`          | Nombre de demandes en cours                                     |
| `REQUEST_RUNNING_OVERDUE_NB`  | Nombre de demandes en cours en retard                           |
| `ACTION_TODO_NB`              | Nombre d’actions à faire                                        |
| `ACTION_TODO_OVERDUE_NB`      | Nombre d’actions à faire en retard                              |
| `ACTION_TEAM_NB`              | Nombre d’actions d’équipe à faire                               |
| `ACTION_TEAM_OVERDUE_NB`      | Nombre d’actions d’équipe à faire en retard                     |
| `ACTION_TOASSIGN_NB`          | Nombre d’actions à affecter                                     |
| `ACTION_TOASSIGN_OVERDUE_NB`  | Nombre d’actions à affecter en retard                           |
| `REQUEST_CLOSED_NB`           | Nombre de demandes clôturées depuis mon dernier accès           |
| `REQUEST_CLOSED_OVERDUE_NB`   | Nombre de demandes en retard clôturées depuis mon dernier accès |
| `REQUEST_TOFOLLOW_NB`         | Nombre de demandes à suivre                                     |
| `REQUEST_TOFOLLOW_OVERDUE_NB` | Nombre de demandes en retard à suivre                           |
| `ACTION_TOFOLLOW_NB`          | Nombre d’actions à suivre                                       |
| `ACTION_TOFOLLOW_OVERDUE_NB`  | Nombre d’actions en retard à suivre                             |
| `NEW_REQUEST`                 | Liste des processus disponibles que l’utilisateur peut lancer   |

{% hint style="info" %}
Si une catégorie est vide à l’exécution, elle n’est pas ajoutée au contenu RSS.
{% endhint %}

## Erreurs possibles

Lorsqu’une erreur survient, le statut HTTP de la page est modifié et une erreur à l’exécution sera affichée avec un numéro personnalisé.

Les erreurs suivantes peuvent survenir durant l’exécution du script :

| Titre                                                  | Description                                                                                                  | Numéro | Statut HTTP |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------ | ----------- |
| Unable to connect to the database                      | La base de données n’est pas disponible.                                                                     | `100`  | `500`       |
| Unknown user                                           | L’utilisateur envoyé par le paramètre `USERNAME` ne correspond pas à un utilisateur existant de WorkflowGen. | `101`  | `500`       |
| Error during the execution of the request `<CATEGORY>` | Une erreur survient durant l’exécution de la requête SQL correspondant à la catégorie `<CATEGORY>`.          | `102`  | `500`       |
