Les requêtes parents

Modifié le 22/03/2024 14:12

Definition

Une requête parent définit un ensemble d'informations homogènes d'une base de données permettant de travailler sur un même thème.

EndDefinition
  • Elle sert de support à la construction de différents objets de Service Manager, en donnant accès à une liste de champs issus de tables et vues SQL.
  • Des champs supplémentaires peuvent être ajoutés manuellement à une requête parent (sous réserve de disposer des droits).

Périmètre d'une requête parent

  • Une requête parent est définie à partir d'une table du modèle de données : table principale de la requête.
  • Le périmètre de cette table principale peut ensuite être étendu pour inclure des vues SQL et les tables liées à la table principale.
    Puis, par extension, pour inclure les tables liées aux tables liées.
  • Tous les champs des tables / vues SQL incluses dans ce périmètre peuvent être rendus disponibles dans la requête parent.
  • Des champs supplémentaires peuvent être ajoutés manuellement :
    • Champs appartenant à une table / jointure de la requête parent
    • Champs référencés dans une table liée à l'une des tables de la requête parent
    • Champs référencés dans une vue SQL comportant une jointure avec l'une des tables de la requête parent

(1) Sélection de la table principale SD_REQUEST : tous les champs de la table deviennent disponibles dans la requête parent.

(2) Ajout de la table liée SD_URGENCY - La clé de liaison entre les 2 tables est le champ URGENCY_ID.

(3) Ajout de la table SD_SLA qui est une table liée à SD_URGENCY - La clé de liaison entre les 2 tables est le champ SLA_ID.

==> La requête parent peut inclure tous les champs de la table principale SD_REQUEST ainsi que tous les champs des tables liées SD_URGENCY et SD_SLA.

Parent query - Main table and related tables.png

Nature des requêtes parents

Requêtes parents supportant les objets standard de Service Manager

==> Fiches, listes de valeurs, filtres, filtres rapides, vues, assistants

  • Les requêtes parents fonctionnent au travers des entrées de menu et sont définies par EasyVista.
  • Toutes les entrées de menu rattachées à une même requête parent peuvent utiliser les mêmes champs définis pour cette requête.
  • Des champs supplémentaires peuvent être ajoutés manuellement à la requête parent d'une entrée de menu (Note : Sauf pour les assistants).
    • Ces champs deviennent disponibles uniquement pour cette entrée de menu.
    • Ils ne sont pas disponibles dans les autres entrées de menu ni sur les outils de reporting internes à Service Manager.

Requêtes parents supportant les outils de reporting internes à Service Manager

==> Indicateurs, alertes, reportings

  • Les outils de reporting peuvent utiliser toutes les requêtes parents supportant les objets standard de Service Manager.
  • Ils peuvent également utiliser des requêtes parents propres aux outils de reporting.
  • Des champs supplémentaires peuvent être ajoutés manuellement à la requête parent d'un outil de reporting.
    • Ces champs deviennent disponibles pour tous les outils de reporting.
    • Ils ne sont pas disponibles sur les objets standard de Service Manager.

Requêtes parents supportant les purges

  • Les purges peuvent uniquement utiliser une liste définie de requêtes parents supportant certains objets de Service Manager (contrats, CI, demandes, incidents, licences, ...).
  • Des champs supplémentaires peuvent être ajoutés manuellement à la requête parent d'une purge.
    • Ces champs deviennent disponibles pour toutes les purges et pour tous les outils de reporting internes à Service Manager.
    • Ils ne sont pas disponibles sur les objets standard de Service Manager.

Exemples

  • Requêtes parents supportant un objet standard de Service Manager
    • La requête parent Incidents est associée à la fiche Incident, au filtre Incidents non résolus cette semaine et à la vue Liste des incidents.
    • Ces 3 objets peuvent utiliser tous les champs disponibles dans le périmètre de la requête parent.
    • Le champ Destinataire VIP est ajouté manuellement à la requête parent pour pouvoir être affiché dans le filtre.
  • Requête parent supportant un indicateur
    • Indicateur Nombre d'incidents créés ce mois-ci bâti à partir de la requête parent Incident
    • Le champ N° de l'incident lié depuis le problème est ajouté à la requête.
      • Il devient disponible uniquement dans les outils de reporting utilisant cette requête.
      • Il n'apparaît pas au niveau des objets rattachés à une entrée de menu utilisant la requête parent Incident.

Remarques

  • Droits suivant la nature de la requête parent :
    • Requêtes parents supportant les objets standard de Service Manager (fiches, listes de valeurs, filtres, filtres rapides, vues, assistants) :
      • Chaque objet est associé à une requête parent. Il n'est pas possible d'en sélectionner une autre.
      • Les requêtes parents sont fournies par EasyVista. Il n'est pas possible d'en ajouter.
      • Leur périmètre est défini par EasyVista. 
      • Des tables liées / vues SQL / champs supplémentaires peuvent être ajoutées manuellement (Note : Sauf pour les assistants), sous réserve de disposer des droits  - Open url.png voir Profils utilisateurs > Droits d'édition et d'affichage
         
    • Requêtes parents supportant les outils de reporting internes à Service Manager  (indicateurs, alertes, reportings) :
      • La requête parent est sélectionnée parmi les requêtes supportant les objets standard de Service Manager et celles définies au niveau des outils de reporting.
      • La création d'une requête est autorisée sans condition de droits, uniquement en mode Création d'un outil de reporting.
      • La modification d'une requête est autorisée au niveau de chacun des outils de reporting, sous réserve de disposer des droits  - Open url.png voir Profils utilisateurs > Droits d'édition et d'affichage
      • Les requêtes parents créées / modifiées sont disponibles uniquement au niveau des outils de reporting.
         
    • Requêtes parents supportant les purges :
      • Chaque purge est associée à une requête parent sélectionnée parmi une liste définie par EasyVista.
      • Les requêtes concernent uniquement les tables principales suivantes : Contrats, Éléments de configuration (CI), Incidents et Demandes, Historique (Discovery), Matériels (Discovery), Employés, Evènements, Licences, Matériels (Asset Management), Résultats de recherche dans la base de connaissance, Cycle de vie des matériels.
      • La modification d'une requête est autorisée au niveau de chaque purge, sous réserve de disposer des droits  - Open url.png voir Profils utilisateurs > Droits d'édition et d'affichage
         
  • Une requête parent peut être créée uniquement à partir d'une table du modèle de données (table principale de la requête).
    • Elle ne peut pas être créée à partir d'une vue SQL.
    • Des tables commençant par V_ peuvent apparaître dans la liste des tables du modèle de données. Il s'agit de vues SQL qui ont été transformées en tables et qui ont conservé le nom de la vue d'origine.
              SQL view names.png

      exemple  

      • Tables V_PRIORITY, V_SD_CATALOG : Le nom de la vue SQL a été conservé.
      • Table T_V_PM_TASK : Le nom est précédé de T_V, ce qui évite toute confusion avec une vue SQL.
  • Les champs appartenant au périmètre d'origine d'une requête parent ne peuvent pas être supprimés.
  • Seuls les champs ajoutés manuellement dans une requête parent peuvent être supprimés via Delete icon.png .

Attention

  • Ne confondez pas les vues SQL (utilisées comme des tables virtuelles au niveau des requêtes parents pour ajouter des champs) avec les vues Service Manager.

Bonnes pratiques

  • Lorsque vous effectuez une liaison entre la table principale et une table liée / vue SQL, indiquez quelles lignes de la table principale vous souhaitez afficher via les options OUTER et INNER.
    • Conservez la valeur par défaut OUTER qui permet d'afficher toutes les lignes de la table principale, même s'il n'y a pas de correspondance avec la table liée / vue SQL. 
    • Si vous sélectionnez l'option INNER, les lignes de la table principale qui n'ont pas de correspondance dans la table liée / vue SQL sont masquées, pouvant donner l'impression que des enregistrements ont été perdus.

Parent query - Main table and related tables - Inner Outer options.png

Inner : Uniquement les lignes de la table principale ayant une correspondance dans la table liée (intersection des 2 tables)

Outer : Toutes les lignes de la table principale, même si elles n'ont pas de correspondance dans la table liée

  • Les champs créés manuellement doivent impérativement respecter les règles ci-dessous pour ne pas être impactés lors d'un changement de version.
    • Type de champ :
      • Obligatoirement l'un des types suivants : nvarchar, nvarchar(max), float, int, datetime, uniqueidentifier, bit, real, smallint
    • Nom du champ :
      • Il doit être préfixé par E_.
      • Il doit être écrit en majuscules.
      • Il ne doit pas comporter de caractères accentués.
      • Il ne doit pas comporter d'espace. Pour insérer un espace, utilisez le caractère souligné _.
      • Il ne doit pas dépasser 31 caractères (contrainte liée à Report Designer).

exemple  E_BIRTHDAY_DATE

Spécificités des versions 2016 et antérieures

Les requêtes parents des versions 2016 et antérieures présentent certaines différences.

  • Les droits d'édition des affichages nécessaires pour créer / modifier une requête parent sont accordés par profil au niveau du module auquel est rattachée l'entrée de menu utilisant la requête parent  - Open url.png voir Profils utilisateur
  • Les requêtes parents servent également à définir les critères de la recherche globale.

Accès

  • Requêtes parents supportant les objets standard de Service Manager (Note : Sauf pour les assistants) : en mode Liste, Tools icon.png dans la barre de titre > option Éditer (Note : Sous réserve de disposer des droits d'édition des affichages)
  • Requêtes parents supportant les outils de reporting internes à Service Manager et les purges : via la fiche de l'objet > champ Requête parent

Description de l'écran

         Parent query.png

Nom : Liste des champs définis dans l'une des tables issues de la requête parent, les éventuelles jointures avec des vues SQL et les éventuelles tables liées ajoutées manuellement.

  • Renseignez les alias multilingues via Multilingual labels icon.png.

Nom du champ (Note : Non modifiable) : Nom physique du champ dans le modèle de données.

Recherche par (Note : Non disponible pour les champs résultant d'un calcul) : Indique si le champ est disponible comme critère du filtre rapide (activé via Quick filter icon.png en mode Liste) (case cochée) ou non (case non cochée).

Recherche par - Valeur par défaut : Indique si le champ est proposé par défaut comme critère du filtre rapide (bouton radio sélectionné) ou non (bouton radio non sélectionné).

AddViewTableField

Ajouter une vue : Crée une liaison entre un champ d'une vue SQL et un champ d'une table liée à la requête parent  - Open url.png voir Procédure Modifier une requête parent

  • La vue SQL devient sélectionnable comme toute autre table de la requête parent.
  • Le type de lignes à retourner peut être sélectionné (Note : En fonction de la requête parent)  - Open url.png voir Exemple
    • option OUTER : Toutes les lignes de la table principale sont retournées, même s'il n'y a pas de correspondance avec la vue
    • option INNER : Seules les lignes de la table principale ayant une correspondance avec la vue SQL sont retournées.
  • Un alias peut être attribué à la vue SQL lors de la sauvegarde.
     

Ajouter une table : Crée une liaison entre l'une des tables de la requête parent et l'une des tables liées dans le modèle de données  - Open url.png voir Procédure Modifier une requête parent

  • La table liée devient sélectionnable comme toute autre table de la requête parent. 
  • Pour chaque table liée, la liste des relations dans le modèle de données est affichée sous la forme Champ clé dans la table liée / Champ clé dans la table de la requête parent.
  • Le type de lignes à retourner peut être sélectionné (Note : En fonction de la requête parent)  - Open url.png voir Exemple
    • option OUTER : Toutes les lignes de la table principale sont retournées, même s'il n'y a pas de correspondance avec la table liée.
    • option INNER : Seules les lignes de la table principale ayant une correspondance avec la table liée sont retournées.
  • Un alias peut être attribué à la table liée lors de la sauvegarde.
     

Ajouter un champ : Ajoute un champ parmi ceux définis dans l'une des tables de la requête parent et les éventuelles tables liées / vues SQL ajoutées manuellement  - Open url.png voir Procédure Modifier une requête parent

  • Le champ est affiché en bas de la liste des champs de la requête parent sous son nom d'alias (ou nom logique).
  • Il est précédé de Delete icon.png (permettant de le supprimer de la requête).
  • Si l'alias n'est pas renseigné, le nom physique du champ est affiché.

    exemple  

    • Nom d'alias : Téléphone  ;  Nom physique : PHONE_NUMBER
    • Nom d'alias : N° de série  ;  Nom physique : AM_ASSET.SERIAL_NUMBER
EndAddViewTableField

Procédures

Comment créer une requête parent

  La création d'une requête parent est autorisée uniquement pour un outil de reporting interne à Service Manager. Elle s'effectue uniquement lorsque vous créez une nouvelle fiche pour cet outil.

Étape 1 : Création de la nouvelle requête parent

1. Allez sur l'un des outils de reporting internes à Service Manager.

  • Indicateurs : Administration > Indicateurs > Indicateurs
  • Reportings : Administration > Reporting > Reporting
  • Alertes : Administration > Alertes > Alertes planifiées

2. Créez une nouvelle fiche via Add icon.png.

3. Cliquez sur Add icon.png en regard du champ Requête parent.

Toutes les tables du modèle de données sont affichées.

   Des tables commençant par V_ peuvent apparaître dans la liste des tables du modèle de données. Il s'agit de vues SQL qui ont été transformées en tables et qui ont conservé le nom de la vue d'origine.

Étape 2 : Création de la nouvelle requête parent

1. Saisissez le nom de la requête parent.

2. Sélectionnez sa table principale parmi les tables du modèle de données.

   La requête parent peut être créée uniquement à partir d'une table du modèle de données (table principale de la requête). Elle ne peut pas être créée à partir d'une vue SQL.

3. Ajoutez les champs que vous souhaitez rendre disponibles dans la requête parent, via Ajouter un champ  - Open url.png voir Procédure Modifier une requête parent

  • Vous pouvez sélectionner des champs dans des tables liées à la table principale, et dans les tables liées aux tables liées. Ajoutez au préalable ces tables dans le périmètre de la requête parent, via Ajouter une table  - Open url.png voir Exemple dans le périmètre d'une requête parent
  • Vous pouvez sélectionner des champs dans des vues SQL. Ajoutez au préalable ces vues dans le périmètre de la requête parent, via Ajouter une vue.

4. Cliquez sur Enregistrer.

  • La nouvelle requête parent est créée. Elle peut être uilisée par l'ensemble des outils de reporting.
  • Vous revenez sur la fiche de l'outil de reporting. La requête est disponible dans la liste déroulante Requête parent.

Comment modifier une requête parent

Étape 1 : Ouverture de la requête parent

Requête parent supportant un objet standard de Service Manager (fiches, listes de valeurs, filtres, filtres rapides, vues)

   Vous devez être attaché à un profil ayant les droits d'édition des affichages.

1. Allez sur l'entrée de menu utilisant la requête parent à modifier.

L'écran en ouvert en mode Liste.

2. Cliquez sur Tools icon.png dans la barre de titre > option Éditer.

La liste des champs issus de la requête parent associée à l'entrée de menu et les éventuels champs supplémentaires ajoutés manuellement est affichée.

Requêtes parents supportant un outil de reporting interne à Service Manager (indicateurs, alertes, reportings) ou une purge

1. Allez sur l'entrée de menu de l'objet.

2. Cliquez sur Edit icon.png en regard de la fiche.

La liste des champs issus de la requête parent associée à la fiche de l'objet et les éventuels champs supplémentaires ajoutés manuellement est affichée.

Étape 2 : Saisie des informations pour les filtres rapides et l'affichage sur mobile

1. Cochez dans la colonne Recherche par... les champs servant de critères dans le filtre rapide, et indiquez s'il s'agit du champ par défaut.

2. Cochez dans la colonne Affichage mobile les champs à afficher sur les écrans des smartphones.

   L'affichage de la colonne dépend de l'entrée de menu sélectionnée.

Étape 3 (optionnelle) : Ajout d'une table liée ou d'une vue SQL dans la requête parent

   Effectuez cette étape si vous souhaitez ajouter des champs qui n'appartiennent pas à une table / jointure de la requête parent. La nouvelle table liée et / ou vue SQL deviennent alors sélectionnables comme toute autre table de la requête parent.

Ajout d'une table liée à l'une des tables de la requête parent

1. Cliquez sur Ajouter une table.

La liste des tables liées à chaque table de la requête parent est affichée.

  • Cliquez sur Plus black icon.png en regard de la table liée à laquelle appartient le champ à ajouter à la requête parent.
    La liste des tables liées à cette table est affichée.
  • Sélectionnez la table liée à laquelle appartient le champ à ajouter.
  • Allez en bas de l'écran et sélectionnez le type de lignes à retourner via les options INNER, OUTER.
             Parent query - Add table.png

2. (optionnel) Renommez l'alias proposé par défaut pour identifier facilement la nouvelle liaison.

  • Vous revenez sur la liste des champs disponibles.
  • Tous les champs de la nouvelle table liée peuvent être sélectionnés via Ajouter un champ (voir étape 4).

Ajout d'une vue SQL

1. Cliquez sur Ajouter une vue.

  • Sélectionnez la vue SQL souhaitée.
  • Sélectionnez la table de la requête parent sur laquelle se fait la liaison.
             Parent query - Add view.png

2. Cliquez sur Jointure.

  • Sélectionnez les champs faisant la correspondance entre la vue SQL et la table.
  • Sélectionnez le type de lignes à retourner via les options INNER, OUTER.
             Parent query - Add view - Join.png

3. Cliquez sur Ajouter la liaison.

4. (optionnel) Renommez l'alias proposé par défaut pour identifier facilement la nouvelle jointure.

  • Vous revenez sur la liste des champs disponibles.
  • Tous les champs de la vue SQL peuvent être sélectionnés via Ajouter un champ (voir étape 4).

 

Étape 4 : Ajout de champs dans la requête parent

1. Cliquez sur Ajouter un champ.

La liste de toutes les tables / jointures est affichée.
         Parent query - Add field.png

2. Cliquez sur Plus black icon.png en regard de la table / jointure à laquelle appartient le champ.

3. Sélectionnez le champ à ajouter à la requête parent.

  • Vous revenez sur la liste des champs disponibles.
  • Le champ est ajouté en bas de la liste, précédé de Delete icon.png, permettant de le supprimer de la requête.

   Les champs incluent dans le périmètre d'origine de la requête parent ne peuvent pas être supprimés.

Étape 5 : Sauvegarde de la requête parent

1. Cliquez sur Enregistrer.

Les champs ajoutés manuellement deviennent disponibles dans le contexte dans lequel ils ont été ajoutés : soit au niveau des objets standard de Service Manager, soit au niveau des outils de reporting internes à Service Manager / purges.

Comment récupérer les liaisons d'une requête parent

1. Exécutez la requête permettant de récupérer le contenu du champ XML de la table C_QUERY, dans le schéma de CONFIG.

2. Cliquez droit sur la fenêtre de résultats et sélectionnez l'option Save result as....

3. Enregistrez le résultat au format Texte.

exemple  Requête permettant de récupérer les liaisons de la requête parent HD_ACTIONS (QUERY_ID = 49)

SELECT [query_id],[name_fr],[xml]
FROM [EVO_CONFIG40000].[EVO_CONFIG40000].[c_query]
WHERE query_id = 49

     Résultat :
Parent query - Example relations.png

Cas d'utilisation : Afficher la langue de l'employé dans la vue Liste des employés

  • La vue Liste des employés utilise la requête parent Employés.
  • Par défaut, la table AM_LANGUAGE n'est pas présente dans la liste des tables de cette requête parent.
  • Pour afficher la langue de l'employé dans la vue Liste des employés, vous devez :
    • ajouter une jointure entre la table AM_LANGUAGE et la table AM_EMPLOYEE (clé de liaison Identifiant de la langue) ;
    • ajouter manuellement le champ contenant les libellés multilingues de la langue de l'employé à la requête parent Employés ;
    • ajouter le champ dans la vue.
       

   Vous devez être attaché à un profil ayant les droits d'édition des affichages pour pouvoir modifier la requête parent, et les droits d'édition des vues pour pouvoir modifier la vue Liste des employés.

1. Allez sur l'écran Asset Management > Annuaires > Employés.

L'écran en ouvert en mode Liste.

2. Cliquez sur Tools icon.png dans la barre de titre > option Éditer.

La liste des champs issus de la requête parent Employés et les éventuels champs supplémentaires ajoutés manuellement est affichée.

3. Ajoutez la table AM_LANGUAGE à la requête parent.

  • Cliquez sur Ajouter une table.
  • Cliquez sur Plus black icon.png en regard de la table AM_EMPLOYEE.
    La liste des tables liées à la table AM_EMPLOYEE est affichée.
  • Sélectionnez la liaison AM_LANGUAGE ===> AM_LANGUAGE.LANGUAGE_ID = AM_EMPLOYEE.LANGUAGE_ID.
  • (optionnel) Renommez l'alias proposé par défaut pour identifier cette nouvelle table.
  • Cliquez sur OK.
    La table AM_LANGUAGE devient disponible dans la requête parent Employés.

4. Ajoutez le champ contenant les libellés multilingues de la langue de l'employé.

  • Cliquez sur Ajouter un champ.
  • Cliquez sur Plus black icon.png en regard de la table AM_LANGUAGE.
    La liste des champs disponible dans la table AM_LANGUAGE est affichée.
  • Sélectionnez le champ LANGUAGE_SYSTEM_ALIAS_$lng.
    Le champ est ajouté en bas de la liste des champs de la requête parent.
  • (optionnel) Renommez l'alias du champ (par défaut, son nom physique).
  • Cliquez sur Enregistrer.
    Le champ devient disponible dans la requête parent Employés.

5. Ajoutez la langue dans la vue Liste des employés.

  • Cliquez sur Edit icon.png à droite de la liste déroulante Vue.
    L'éditeur de vue est ouvert.
  • Ajoutez le champ LANGUAGE_SYSTEM_ALIAS_$lng dans la vue.
  • Cliquez sur Enregistrer.
    La langue de l'employé est affichée dans la vue Liste des employés.
Tags :
Powered by XWiki © EasyVista 2024