GraphQL « includeVariations » renvoie vide avec des filtres dans AEMaaCS.
Dans AEMaaCS, le paramètre includeVariations:true d’une requête GraphQL renvoie des résultats vides lorsqu’un filtre supplémentaire (par exemple, _path) est appliqué. Cela se produit lors de la récupération de variations de fragments de contenu avec des filtres spécifiques. Pour résoudre ce problème, activez le filtrage hybride et modifiez le filtre de requête.
Description description
Environnement
- Produit : Adobe Experience Manager (AEM) as a Cloud Service - Sites
- Instance: Développement
Problème/Symptômes
- L’utilisation de
includeVariations:truerenvoie des résultats corrects. - L’ajout de filtres (par exemple,
_path) entraîne une sortie de requête vide. - Se produit lors de la récupération de variations de fragments de contenu avec des filtres
Résolution resolution
Pour résoudre ce problème, procédez comme suit :
-
Activez le filtrage hybride en ajoutant la propriété
cfGlobalVersion=1à/content/dam. Il améliore les performances des requêtes et corrige les problèmes de filtrage basé sur les chemins d’accès. Pour plus d’informations, consultez la documentation Utilisation du filtrage hybride AEM GraphQL. -
Testez-le dans un environnement inférieur avant de l’appliquer à l’exploitation.
-
Modifiez les filtres de requête. Utilisez l’opérateur
STARTS_WITHpour_pathau lieu deEQUALSdans les expressions :code language-none [ { value: "/content/dam/content-fragments/sites/example-path/", _operator: STARTS_WITH } ]Remarque : cette solution de contournement ne fonctionne pas si le filtrage hybride est activé.
-
Si plusieurs variations sont requises, interrogez explicitement chaque variation à l’aide d’alias, comme illustré ci-dessous :
code language-none query($path: String!) { standard: pageByPath(_path: $path, variation: "standard") { item { _path title _variation } } premier: pageByPath(_path: $path, variation: "premier") { item { _path title _variation } } } -
Pour optimiser la conception de la requête, si une seule variation spécifique est nécessaire, spécifiez-la directement dans la requête à l’aide du paramètre de variation au lieu de vous fier à
includeVariations: true. -
Recherchez les fragments de contenu non valides où les modèles de contenu associés sont manquants.
-
Nettoyez les fragments non valides ou rendez-les valides en les associant aux modèles appropriés.
-
Après avoir activé le filtrage hybride ou apporté des modifications, vérifiez les journaux sur les instances de création et de publication pour confirmer que les paramètres sont appliqués correctement.
-
Utilisez les requêtes de liste avec parcimonie lorsqu’un seul fragment est nécessaire ; préférez les requêtes ciblées (par exemple,
pageByPath).
Lecture connexe
- Mise à jour des fragments de contenu pour un filtrage GraphQL optimisé dans le guide d’utilisation d’AEM as a Cloud Service.
- Optimisation des requêtes GraphQL dans la documentation d’AEM.