Créer des filtres en mode texte complexes à l’aide des instructions EXISTS
Pour plus d’informations sur l’utilisation du mode texte, voir Présentation du mode texte.
Présentation des relations d’objet dans Workfront
Tous les objets sont liés à d’autres objets de la base de données Workfront.
La compréhension de la hiérarchie et de l’interdépendance des objets permet de déterminer les objets qui peuvent être référencés dans les rapports.
Pour plus d’informations sur les objets de Workfront et sur leur hiérarchie et leur interdépendance, voir Présentation des objets Adobe Workfront.
Lors de la création de filtres, vous pouvez référencer d’autres objets connectés à l’objet du filtre dans un rapport allant jusqu’à 2 niveaux à l’aide de l’interface de création de rapports standard.
Par exemple, vous pouvez référencer l’ID de Portfolio dans un filtre de problèmes pour afficher uniquement les problèmes sur les projets associés à un certain portfolio à l’aide de l’interface standard. Dans ce cas, le portefeuille est à 2 niveaux des problèmes.
Cependant, vous ne pouvez pas référencer le propriétaire du Portfolio dans un filtre de problèmes à l’aide de l’interface standard pour afficher uniquement les problèmes provenant de projets associés à des portefeuilles dont le propriétaire est un utilisateur spécifique. Vous devez utiliser le mode texte pour accéder au champ Nom du propriétaire du Portfolio, qui se trouve à trois niveaux des problèmes.
Pour obtenir la liste complète des objets dans Workfront, consultez l’ API Explorer.
Pour plus d’informations sur la navigation dans l’explorateur d’API et la recherche d’objets, voir Utilisation de l’explorateur d’API.
Lors de la création de filtres, vous devez créer des instructions complexes dans l’interface du mode texte pour référencer ces types d’objets.
Pour plus d’informations sur la création de filtres complexes, consultez la section Présentation des filtres de mode de texte complexe qui utilisent des instructions EXISTS de cet article.
Présentation des filtres de mode de texte complexes qui utilisent des instructions EXISTS overview-of-complex-text-mode-filters-that-use-exists-statements
Tenez compte des points suivants lors de la création de filtres qui s’étendent sur plusieurs niveaux dans la hiérarchie d’objets ou qui filtrent les objets manquants :
-
Vous devez créer des filtres complexes lorsque vous souhaitez référencer des objets qui ne sont pas directement connectés à l’objet de filtre.
-
Vous devez utiliser une instruction EXISTS pour effectuer les opérations suivantes :
- Créez des filtres qui s’étendent sur plusieurs niveaux.
- Créez des filtres qui recherchent les objets manquants.
Par exemple, lors de la création d’un rapport d’utilisateur, vous pouvez filtrer les utilisateurs qui n’ont pas effectué de journalisation pendant une certaine période.
Tenez compte des règles suivantes lors de l’utilisation d’instructions EXISTS dans un filtre :
-
Vous pouvez référencer trois objets dans un filtre EXISTS :
- Objet du filtre (objet original).
- Objet dont vous souhaitez référencer le champ (objet cible).
- Objet qui connecte les objets d’origine et de cible s’ils ne sont pas directement connectés les uns aux autres (objet de liaison).
-
Les filtres qui utilisent EXISTS contiennent deux instructions distinctes liées par un signe égal :
- L’instruction précédant le signe égal fait référence à l’objet auquel vous faites référence (la liaison ou l’objet cible).
- L’instruction située après le signe égal fait référence à l’objet à partir duquel vous faites référence (l’objet d’origine).
-
Vous devez utiliser le code d’objet de l’objet de liaison pour connecter vos instructions.
Vous trouverez le code d’objet de tous les objets dans l’explorateur d’API.
Pour plus d’informations sur l’Explorateur d’API, voir l’ Explorateur d’API. -
Lorsqu’un objet de liaison est manquant car les objets d’origine et de cible sont directement connectés les uns aux autres, vous pouvez utiliser le code d’objet de l’objet cible au lieu de l’objet de lien.
-
Vous pouvez faire référence à plusieurs champs (champs cibles) sur le même objet (objet cible), auquel cas vous devez connecter les lignes faisant référence aux champs par AND.
Pour un exemple de filtrage pour plusieurs champs appartenant à l’objet cible, reportez-vous à la section Exemple 4 : filtrer par plusieurs champs : tâches par nom de propriétaire du Portfolio et ID de Fiche d’évaluation d’alignement des Portfolios de cet article. -
Le seul modificateur pris en charge pour une instruction EXISTS est NOTEXISTS.
Conditions d’accès
Vous devez disposer des accès suivants pour effectuer les étapes de cet article :
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header | |
---|---|
Forfait Adobe Workfront | N’importe quelle |
Licence Adobe Workfront |
Nouvelle : standard Ou Actuelle : formule |
Configurations des niveau d’accès* |
Modifier l’accès aux filtres, vues et groupes Modification de l’accès aux rapports, tableaux de bord et calendriers pour la modification des filtres dans un rapport |
Autorisations d’objet |
Gérer les autorisations d’un rapport pour modifier des filtres dans un rapport Gérer les autorisations d’un filtre pour le modifier |
Pour plus d’informations sur ce tableau, consultez Conditions d’accès requises dans la documentation Workfront.
Créez des filtres de mode de texte complexe qui s’étendent sur plusieurs niveaux dans la hiérarchie d’objets.
Vous pouvez créer un filtre qui référence des objets à plusieurs niveaux de la hiérarchie d’objets dans laquelle l’objet de filtre existe. Par exemple, vous pouvez créer un filtre de problèmes pour les problèmes qui se trouvent sur des projets qui ne sont pas associés à un certain propriétaire de Portfolio.
Vous devez toujours utiliser une instruction EXISTS et l’interface du mode texte pour créer ce filtre.
Pour des exemples de filtres, reportez-vous à la section Exemple 1 : filtre pour les problèmes par nom de propriétaire de Portfolio de cet article.
Pour créer un filtre couvrant plusieurs niveaux dans la hiérarchie d’objets :
-
Identifiez l’objet de votre filtre. Nous appelons cet objet l’objet d’origine.
Par exemple, Problème. -
Identifiez le champ en fonction duquel vous souhaitez filtrer les données. Nous appelons cet objet le champ cible qui appartient à un objet cible.
Par exemple, le champ propriétaireID (champ cible), qui appartient à Portfolio (objet cible). -
(Conditionnel) Si l’objet d’origine (problème) et le champ cible (propriétaireID) ne sont pas directement connectés l’un à l’autre, vous devez trouver un troisième objet, un objet de liaison (projet) qui les connecte. L’objet de liaison doit comporter au moins un champ qui est référencé à partir des onglets Champs ou Références de l’objet d’origine (Champ de liaison affiché sur l’objet d’origine). Il doit également comporter un champ de liaison vers l’objet cible affiché dans les onglets Champs ou Références de l’objet de liaison. Le champ Liaison vers l’objet cible qui s’affiche sur l’objet de liaison (ou le champ de liaison affiché sur l’objet de liaison) doit correspondre au champ cible.
Par exemple, l’ID (projet) (champ de liaison affiché sur l’objet d’origine) est référencé à partir de Problèmes (objet d’origine). (Portfolio) ownerID (Association du champ à l’objet cible) s’affiche dans l’onglet Champs du projet (association de l’objet). PropriétaireID du Portfolio est également un champ de l’objet cible (Portfolio). Le champ Liaison de l’objet de liaison correspond au champ cible.
-
À l’aide de l’explorateur d’API, identifiez le code objet de l’objet de liaison (projet).
Par exemple, le code d’objet du projet est PROJ.
-
Créez un filtre pour l’objet original.
Par exemple, créez un filtre Problème .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
Collez l’exemple de formule suivant dans l’interface du mode texte du nouveau filtre et remplacez l’exemple de texte par les objets et les champs appropriés :
EXISTS:A:$$OBJCODE=<Object code of the Linking Object>
EXISTS:A:<Linking Field on the Linking Object>=FIELD:<Linking Field displayed on the Original Object>
EXISTS:A:<Target Object>:<Target Field>=<Your value for the Target Field>
Pour obtenir un exemple en utilisant les champs que nous avons identifiés ci-dessus, reportez-vous à la section Exemple 1 : filtre des problèmes par nom de propriétaire de Portfolio de cet article.
-
Cliquez sur Enregistrer le filtre.
Création de filtres de mode texte complexes pour les objets manquants
Vous pouvez créer un filtre qui référence les objets manquants. Par exemple, vous pouvez créer un filtre utilisateur qui indique les utilisateurs qui n’ont pas effectué d’heures de connexion dans Workfront.
Vous devez toujours utiliser une instruction EXISTS et l’interface du mode texte pour créer ce filtre.
Pour des exemples de filtres pour les objets manquants, reportez-vous aux sections suivantes de cet article :
Pour créer un filtre qui référence les objets manquants :
-
Identifiez l’objet de votre filtre. Nous appelons cet objet l’objet d’origine.
Par exemple, Paramètre ou Champ personnalisé. -
Identifiez le champ en fonction duquel vous souhaitez filtrer les données. Nous appelons cet objet le champ cible qui appartient à un objet cible.
Par exemple, le champ categoryID (champ cible), qui appartient à la catégorie (objet cible). -
Puisque l’objet d’origine (paramètre) et le champ cible (ID de catégorie) ne sont pas directement connectés l’un à l’autre, vous devez trouver un troisième objet, un objet de liaison (un paramètre de catégorie), qui les connecte. L’objet de liaison doit comporter au moins un champ qui est référencé à partir des onglets Champs ou Références de l’objet d’origine (Champ de liaison affiché sur l’objet d’origine). Il doit également comporter un champ de liaison vers l’objet cible affiché dans les onglets Champs ou Références de l’objet de liaison. Le champ Liaison vers l’objet cible qui s’affiche sur l’objet de liaison (ou le champ de liaison affiché sur l’objet de liaison) doit correspondre au champ cible.
Par exemple, l’identifiant du paramètre de catégorie (champ de liaison affiché sur l’objet d’origine) est référencé à partir du paramètre (objet d’origine). parameterID (liaison de champ à l’objet cible) s’affiche dans l’onglet Champs du paramètre de catégorie (liaison d’objet). Le champ Liaison à l’objet cible qui s’affiche sur l’objet de liaison correspond au champ cible.
-
À l’aide de l’explorateur d’API, identifiez le code objet de l’objet de liaison (paramètre de catégorie).
Par exemple, le code d’objet pour le paramètre de catégorie est CTGYPA.
-
Créez un filtre pour l’objet original.
Par exemple, créez un filtre Paramètre .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
(Conditionnel) Si vous filtrez les objets manquants, collez l’exemple de formule suivant dans l’interface du mode texte du nouveau filtre et remplacez le texte d’exemple par les objets et les champs appropriés :
EXISTS:A:$$OBJCODE=<Object code of the Linking Object>
EXISTS:A:<Linking Field displayed on the Linking Object>=FIELD:<Linking Field displayed on the Original Object><br>EXISTS:A:$$EXISTSMOD=NOTEXISTS
Pour un exemple de création de rapports sur les champs personnalisés qui ne sont pas associés à la Forms personnalisée, reportez-vous à la section Exemple 2 : Filtre pour les objets manquants : champs personnalisés qui n'apparaissent dans aucun formulaire personnalisé de cet article.
-
Cliquez sur Enregistrer le filtre.
Exemples de filtres de mode texte s’étendant sur plusieurs niveaux dans la hiérarchie d’objets
Utilisez ces exemples pour créer des filtres de mode texte avec des instructions EXISTS.
Exemple 1 : filtre pour les problèmes par nom de propriétaire de Portfolio example-1-filter-for-issues-by-portfolio-owner-name
À l’aide de l’interface du mode texte, vous pouvez créer un filtre pour une liste de problèmes afin d’afficher uniquement les problèmes qui concernent des projets associés à un portfolio dont le propriétaire est un utilisateur spécifique.
Pour filtrer les problèmes selon le nom du propriétaire du Portfolio :
-
Créez un filtre Problème .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
Reportez-vous au code générique suivant :
EXISTS:A:$$OBJCODE=<Object code of the Linking Object>
EXISTS:A:<Linking Field on the Linking Object>=FIELD:<Linking Field displayed on the Original Object>
EXISTS:A:<Target Object>:<Target Field>=<Your value for the Target Field>
-
Collez le code suivant dans la zone Définir les règles de filtrage pour votre rapport pour remplacer le code générique ci-dessus :
EXISTS:A:$$OBJCODE=PROJ
EXISTS:A:ID=FIELD:projectID
EXISTS:A:portfolio:ownerID=4d94d7da001699b19edf50de15682221
note note NOTE - L’objet original est l’objet du rapport : Problème
- L’objet cible est Portfolio.
- L’objet de liaison est Projet.
- Le champ cible et le champ de liaison à l’objet cible référencé à partir de l’objet de liaison sont ownerID.
- Le code objet de l’objet de liaison ici est PROJ.
- Le champ de liaison affiché sur l’objet d’origine est projectID et le champ de liaison est ID.
-
Remplacez la valeur du champ cible (propriétaireID) dans la dernière instruction par un ID utilisateur de votre environnement.
-
Cliquez sur Enregistrer le filtre.
Exemple 2 : filtrer les objets manquants : champs personnalisés qui n’apparaissent dans aucun formulaire personnalisé example-2-filter-for-missing-objects-custom-fields-that-do-not-appear-in-any-custom-forms
À l’aide de l’interface du mode texte, vous pouvez créer un filtre afin d’afficher les champs personnalisés (paramètres) qui ne sont pas associés à la Forms personnalisée (catégories). Ce filtre lie les paramètres aux catégories, qui sont connectées via un autre objet, le paramètre de catégorie. Comme les deux champs ne sont pas directement connectés les uns aux autres et que vous filtrez les informations manquantes, vous devez utiliser une instruction EXISTS.
Pour filtrer les champs personnalisés qui ne sont pas associés à un formulaire personnalisé :
-
Créez un filtre Paramètre ou Champ personnalisé .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
Reportez-vous au code générique suivant :
EXISTS:A:$$OBJCODE=<Object code of the Linking Object>
EXISTS:A:<Linking Field displayed on the Linking Object>=FIELD:<Linking Field displayed on the Original Object><br>EXISTS:A:$$EXISTSMOD=NOTEXISTS
-
Collez le code suivant dans la zone Définir les règles de filtrage pour votre rapport pour remplacer le code générique ci-dessus :
EXISTS:A:$$OBJCODE=CTGYPA
EXISTS:A:parameterID=FIELD:ID
EXISTS:A:$$EXISTSMOD=NOTEXISTS
note note NOTE - L’objet d’origine est l’objet du rapport : Paramètre.
- L’objet cible est Catégorie.
- L’objet de liaison est un paramètre de catégorie.
- Le code objet de l’objet de liaison est CTGYPA.
- Le champ Lier à l’objet cible est parameterID, car parameterID existe à la fois dans le tableau Objet de liaison et dans le tableau Objet cible.
- Le champ de liaison affiché sur l’objet d’origine est l’identifiant (du paramètre de catégorie).
-
Cliquez sur Enregistrer le filtre.
Exemple 3 : filtre pour les objets manquants : utilisateurs qui n’ont pas consigné de temps pendant une certaine période example-3-filter-for-missing-objects-users-who-did-not-log-time-for-a-certain-period-of-time
À l’aide de l’interface du mode texte, vous pouvez créer un filtre afin d’afficher les utilisateurs qui n’ont pas consigné de temps pendant une certaine période. Ce filtre lie les utilisateurs aux heures, qui sont directement connectés les uns aux autres. Cependant, vous devez utiliser une instruction EXISTS et l’interface du mode texte pour pouvoir filtrer les informations manquantes.
Pour filtrer les utilisateurs qui n’ont pas effectué de journalisation au cours de la semaine précédente :
-
Créez un filtre Utilisateur .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
Reportez-vous au code générique suivant :
EXISTS:A:$$OBJCODE=<Object code of the Linking Object>
EXISTS:A:<Linking Field displayed on the Linking Object>=FIELD:<Linking Field displayed on the Original Object><br>EXISTS:A:$$EXISTSMOD=NOTEXISTS
-
Collez le code suivant dans la zone Définir les règles de filtrage pour votre rapport pour remplacer le code générique ci-dessus :
EXISTS:A:$$OBJCODE=HOUR<br>EXISTS:A:ownerID=FIELD:ID<br>EXISTS:A:entryDate=$$TODAYb-1w<br>EXISTS:A:entryDate_Range=$$TODAYe-1w<br>EXISTS:A:entryDate_Mod=between<br>EXISTS:A:$$EXISTSMOD=NOTEXISTS
note note NOTE - L’objet d’origine est l’objet du rapport : Utilisateur.
- L’objet cible est Heure.
- Dans cet exemple, vous n’avez pas besoin d’objet de liaison, car les utilisateurs et les heures sont directement connectés dans la base de données Workfront.
- Puisqu’il n’existe aucun objet de liaison, vous devez utiliser le code d’objet de l’objet cible : HEURE.
- Le champ Liaison à l’objet cible est ownerID (qui s’affiche sur l’objet d’origine ; l’objet de liaison est manquant).
- Le champ de liaison affiché sur l’objet d’origine est l’identifiant (de l’heure) (qui s’affiche sur l’objet cible ; l’objet de liaison est manquant).
- L’instruction EXISTSentryDate fait référence aux champs qui définissent l’objet cible (heure) et utilisent la même syntaxe que dans une instruction de filtre ordinaire. Vous affichez ainsi uniquement les utilisateurs qui n’ont pas consigné de temps pendant une période spécifique, dans ce cas la semaine précédente.
- Le modificateur NOTEXISTS indique que nous recherchons des éléments (heures) qui n’existent pas pour l’objet du rapport (Utilisateurs).
-
Cliquez sur Enregistrer le filtre.
Exemple 4 : filtrer par plusieurs champs : tâches par nom de propriétaire du Portfolio et identifiant de la Fiche d’évaluation d’alignement des Portfolios example-4-filter-by-multiple-fields-tasks-by-portfolio-owner-name-and-portfolio-alignment-scorecard-id
À l’aide de l’interface du mode texte, vous pouvez créer un filtre qui fait référence à plusieurs champs de l’objet cible. Dans ce cas, les instructions de filtre qui font référence aux champs cibles doivent être connectées par AND.
Par exemple, vous pouvez filtrer une liste de tâches afin de n’afficher que les tâches qui répondent aux critères suivants :
- Ils se trouvent sur un projet associé à un portefeuille dont le propriétaire est un utilisateur spécifique.
- Ils se trouvent sur un projet associé à un portefeuille dont les projets ne sont pas associés à une fiche d’évaluation d’alignement spécifique.
Pour filtrer les tâches selon le nom du propriétaire du Portfolio et l’identifiant de la Fiche d’évaluation de l’alignement des Portfolios :
-
Créez un filtre Tâche .
Pour plus d’informations sur la création de filtres, voir Présentation des filtres. -
Cliquez sur Passer en mode Texte.
-
Collez le code suivant dans la zone Définir les règles de filtrage pour votre rapport :
EXISTS:A:$$OBJCODE=PROJ
EXISTS:A:ID=FIELD:projectID
EXISTS:A:portfolio:ownerID=4d80ce5200000528787d57807732a33f
AND:A:EXISTS:A:$$EXISTSMOD=NOTEXISTS
AND:A:EXISTS:A:$$OBJCODE=PROJ
AND:A:EXISTS:A:ID=FIELD:projectID
AND:A:EXISTS:A:portfolio:alignmentScoreCardID=4da387b00001cbc732bb259355c33dad
note note NOTE - L’objet d’origine est l’objet du filtre : Tâche.
- L’objet cible est Portfolio.
- Le premier champ cible est ownerID.
- Le deuxième champ cible est l’identifiant de la Fiche d’évaluation d’alignement.
- L’objet de liaison est Projet.
- Le code objet de l’objet de liaison est PROJ.
- Le champ Liaison à l’objet cible est l’identifiant (du Portfolio).
- Le champ de liaison affiché sur l’objet d’origine est projectID.
- Remplacez le propriétaireID par un ID utilisateur issu de votre environnement.
-
Cliquez sur Enregistrer le filtre.