Créer ou modifier la requête SQL pour un algorithme

04 juin 2018

Les utilisateurs avancés peuvent utiliser la boîte de dialogue Implémentation de l’algorithme pour créer ou modifier la requête SQL brute qui comprend la logique d’un algorithme dans un rapport personnalisé.

La boîte de dialogue Implémentation de l’algorithme est divisée en deux horizontalement :

  • Partie supérieure : zone d’édition de texte dans laquelle vous créez et modifiez la requête SQL.
  • Partie inférieure : affiche les résultats de la requête lorsque vous cliquez sur Tester SQL.

Ouvrir la boîte de dialogue Implémentation de l’algorithme

Vous pouvez ouvrir la boîte de dialogue Implémentation de l’algorithme lorsque vous créez un nouvel algorithme de rapport personnalisé que vous définissez vous-même :

  1. Sur le côté gauche de l’écran Gestionnaire de rapports personnalisés, recherchez le groupe d’algorithmes dans lequel vous souhaitez créer le nouvel algorithme.
  2. Cliquez avec le bouton droit sur le groupe d’algorithmes et, dans le menu contextuel, choisissez Nouvel algorithme.
  3. Travaillez normalement dans l’assistant Nouvel algorithme.
  4. Sur la cinquième page de l’Assistant, choisissez l’option Avancé, puis cliquez sur Aller à. La boîte de dialogue Implémentation de l’algorithme s’ouvre.

Pour les algorithmes de rapport personnalisés créés à l’aide de l’option Avancé, vous pouvez ouvrir la boîte de dialogue Implémentation de l’algorithme comme suit :

  1. Localisez l’algorithme dans le côté gauche de l’écran Gestionnaire de rapports personnalisés.
  2. Cliquez avec le bouton droit de la souris et, dans le menu contextuel, choisissez Modifier l’implémentation.

Remarque : vous ne pouvez pas ouvrir la boîte de dialogue Implémentation de l’algorithme pour un algorithme de rapport personnalisé basé sur un algorithme fourni par Citrix.

Spécifications

  • La requête SQL doit être une instruction SELECT qui renvoie des données relatives aux applications qui déclenchent l’algorithme.
  • La première colonne du jeu de résultats doit être l’ID de l’application.
  • Vous devez inclure la balise {APP_IDS}, qui est remplacée au moment de l’exécution par la liste des applications actuellement sélectionnées. En règle générale, vous placez cette balise dans la clause WHERE.
  • Si vous utilisez la syntaxe AS pour attribuer un alias aux tables ou aux colonnes, le nom de l’alias doit être conforme aux règles des identificateurs réguliers, qu’il soit entre crochets ([ ]) ou guillemets doubles ( » « ). Par exemple, un nom d’alias ne doit pas contenir d’espaces ou d’apostrophes (‘). Pour plus d’informations sur les identificateurs réguliers, reportez-vous à la section http://msdn.microsoft.com/en-us/library/aa223962(SQL.80).aspx.

Pour une documentation complète de l’instruction SELECT, reportez-vous à la section http://msdn.microsoft.com/en-us/library/aa259187(SQL.80).aspx.

Attention : Citrix ne peut pas garantir que les requêtes que vous écrivez fonctionneront dans les futures versions d’AppDNA, car la structure de la base de données peut changer d’une version à l’autre.

Exemple

Lorsque vous ouvrez la boîte de dialogue lors de la création d’un nouvel algorithme, la partie supérieure de la boîte de dialogue contient un exemple de requête comme suit :

pre codeblock 1 SELECT mf.[application_id], mf.[long_filename] , mf.[target_path], mf.[version], mf.[version_number], mf.language 2 FROM [dbo].[msi_file] mf 3 4 WHERE 5 ( 6 mf.[language] NOT LIKE '%1033%' 7 AND 8 (mf.[language] != '0' 9 AND 10 mf.[language] is NOT null 11 AND 12 mf.[language] != '' 13 ) 14 ) 15 AND mf.application_id IN ( {APP_IDS} ) 16 ORDER BY mf.[application_id]

Cela récupère toutes les applications qui contiennent des fichiers qui ne sont pas anglais américain.

Lignes 1-2 — Sélectionne six colonnes nommées dans la table dbo.msi_file, qui reçoit l’alias mf.

Ligne 3 — La clause WHERE définit un filtre qui limite les résultats à ceux qui répondent aux critères suivants :

  • Lignes 6 à 12 — La valeur de la colonne de langue ne correspond pas au code de langue pour l’anglais américain et n’est pas vide, zéro ou Null.
  • Ligne 15 — Et l’ID d’application est inclus dans la liste des ID d’application actuellement sélectionnés qui remplacent la balise {APP_IDS} au moment de l’exécution.
  • Ligne 16 — Ordre les résultats en fonction de l’ID de l’application.

Cet exemple fournit un point de départ seulement et n’est pas destiné à être prescriptif. Vous pouvez utiliser SQL Server Management Studio pour parcourir les tables de la base de données AppDNA. Toutefois, notez que Citrix ne peut pas garantir que les requêtes que vous écrivez fonctionneront dans les futures versions d’AppDNA, car la structure de la base de données peut changer d’une version à l’autre.

Créer ou modifier la requête SQL pour un algorithme