L'indicateur requête permet de retourner tout nombre calculé à partir de données présentes dans la base, par une requête SQL.
Comme l'indicateur filtre, il peut prendre en paramètre :
- La date courante,
- L'utilisateur connecté,
- L'entité concernée (Matériel, article, fournisseur, etc.).
Droits
Si l'indicateur doit prendre en compte les droits de l'utilisateur dans le nombre retourné, la requête doit contenir les jointures adéquates.
Paramètres
Les mots-clés des paramètres sont les suivants (voir exemple ci-après)
- Date du jour : {sysDate}
- Utilisateur connecté : {user.id}
- Entité : {bean.id}
Vous pouvez aussi utiliser d'autres mots-clés, et construire des expressions, par exemple :
- {bean.material.id} = Code du Matériel de l'entité.
- {startOfYear} = début de l'année en cours.
- {{startOfYear} - 1 {month}} = début de l'année en cours moins un mois.
Pour la liste des mots-clés, voir Valeur par défaut dynamique.
Créer un indicateur de type Requête
- Dans le module [Analyse], sélectionnez la fonctionnalité [Indicateurs].
→ La liste des indicateurs s'affiche.
- Basculez éventuellement sur l'onglet [Critères], renseignez les critères de recherche et cliquez sur l'onglet [Résultat].
→ La liste des indicateurs correspondant aux critères est affichée.
- Cliquez sur l'indicateur à modifier ou créez directement un nouvel indicateur requête en cliquant sur l'icône d'ajout
.
→ Le formulaire de détail de l'indicateur est affiché, voir Indicateur [Général].
Fonctionnement multi-SGBD
Pour que la requête soit opérationnelle sur tous les SGBD supportés par CARL Source, des mots-clés sont à utiliser dans certains cas.
- Booléens : les valeurs de booléens dans les requêtes doivent être renseignées de la manière suivante :
- {true} pour la valeur "vraie",
- {false} pour la valeur "false".
- Fonctions de date retournant un entier :
- GET_YEAR(datetime) = Année de la date.
- GET_QUARTER(datetime) = Année de la date.
- GET_MONTH(datetime) = Mois de la date.
- GET_WEEK(datetime) = Semaine dans l'année.
- GET_DAYOFYEAR(datetime) = Numéro du jour dans l'année.
- GET_DAY(datetime) = Numéro du jour dans la semaine.
- GET_HOUR(datetime) = Heure de la date.
Exemple : Nombre de commandes réceptionnées en retard pour un fournisseur donné
Type d'entité : VENDOR (Fournisseurs)
Requête :
SELECT COUNT(*)
FROM
cspu_po po,
cspu_pohistostatus poh
WHERE
po.SUPPLIER_ID = {bean.id}
AND poh.ORIGIN_ID = po.ID
AND poh.STATUS_CODE = 'TOTALRECEPT'
AND poh.STATUS_CHANGEDDATE > po.DELIVERYDATE