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:true renvoie 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 :

  1. 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.

  2. Testez-le dans un environnement inférieur avant de l’appliquer à l’exploitation.

  3. Modifiez les filtres de requête. Utilisez l’opérateur STARTS_WITH pour _path au lieu de EQUALS dans 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é.

  4. 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
             }
           }
         }
    
  5. 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.

  6. Recherchez les fragments de contenu non valides où les modèles de contenu associés sont manquants.

  7. Nettoyez les fragments non valides ou rendez-les valides en les associant aux modèles appropriés.

  8. 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.

  9. 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

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f