Fermer

août 27, 2024

Extension des rapports ACS AEM Commons

Extension des rapports ACS AEM Commons


ACS AEM Commons Reporting est un ensemble d’outils et d’utilitaires de création de rapports conçus pour améliorer les capacités de création de rapports au sein d’AEM. Il offre une base solide pour générer des rapports perspicaces, mais que se passe-t-il si vous devez adapter les fonctionnalités de reporting pour répondre aux besoins spécifiques de votre entreprise ? C’est là que l’extension d’ACS AEM Commons Reporting entre en jeu.

Énoncé du problème

La colonne de l’éditeur de rapport prête à l’emploi dans ACS AEM Commons permet aux utilisateurs de rediriger vers l’URL ou la page lors de l’exécution du rapport. Cependant, lors du téléchargement du rapport, il n’existe aucune colonne pour l’URL ou le chemin de la page. Pour résoudre ce problème, nous devons étendre sa fonctionnalité par défaut pour inclure une colonne avec le chemin de la page dans le rapport téléchargé.

exécuter

Exécuter le rapport

Ici, vous pouvez voir dans l’image qu’il n’y a pas de colonne d’édition dans le rapport téléchargé.

modifier

Rapport téléchargé

Pour que les rapports soient vraiment efficaces et conviviaux, ils doivent fournir des liens directs et cliquables vers chaque page. Cette limitation persiste même dans la dernière version d’ACS AEM Commons.

Approche de solution

Étendez les rapports ACS AEM Commons pour inclure l’URL complète.

Étapes pour parvenir à la solution

Étape 1. Créez un composant personnalisé :

Définir le composant avec

sling:resourceSuperType= "acs-commons/components/utilities/report-builder/columns/editor".

Configuration XML du composant :

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
          xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:Component"
    jcr:title="Custom Report Builder Editor Column"
    sling:resourceSuperType="acs-commons/components/utilities/report-builder/columns/editor"
    componentGroup="ACS Commons - Report Builder Column"/>

Étape 2. Configurez la boîte de dialogue :

Ajoutez un exportateur à la boîte de dialogue avec la valeur pointant vers le modèle personnalisé pour l’exportation CSV. L’exportateur est responsable de l’ajout de la colonne URL au fichier CSV.

Configuration XML de la boîte de dialogue :

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
    jcr:primaryType="nt:unstructured"
    jcr:title="Report Editor Column"
    sling:resourceType="cq/gui/components/authoring/dialog"
    helpPath="https://adobe-consulting-services.github.io/acs-aem-commons/features/reports">
    <content
       jcr:primaryType="nt:unstructured"
       sling:resourceType="granite/ui/components/foundation/container">
       <layout
          jcr:primaryType="nt:unstructured"
          sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>
       <items jcr:primaryType="nt:unstructured">
          <column
             jcr:primaryType="nt:unstructured"
             sling:resourceType="granite/ui/components/foundation/container">
             <items jcr:primaryType="nt:unstructured">
                <exporter
                      jcr:primaryType="nt:unstructured"
                      sling:resourceType="granite/ui/components/foundation/form/hidden"
                      name="./exporter"
                      value="com.mysite.core.models.CustomPathReportCellCSVExporter" />
             </items>
          </column>
       </items>
    </content>
</jcr:root>

Étape 3. Création de modèle

Nous allons créer notre modèle personnalisé qui implémente ReportCellCSVExporter et ici nous écrirons notre logique personnalisée pour obtenir une URL pleine page.

Classe Java pour l’implémentation du modèle :

import com.adobe.acs.commons.reports.api.ReportCellCSVExporter;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.Optional;
import org.apache.sling.models.annotations.injectorspecific.OSGiService;
import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;
import javax.annotation.PostConstruct;
import java.util.Objects;

@Model(adaptables = Resource.class)
public class CustomPathReportCellCSVExporter implements ReportCellCSVExporter {
    @ValueMapValue
    private String editor;

    @ValueMapValue @Optional
    private String customEditor;

    @PostConstruct
    protected void init() {
    customEditor = customEditor != null ? customEditor : "";
    }

    @Override
    public String getValue(Object result) {
        Resource resource = (Resource) result;
        String url = "http://localhost:4502/"
        if(Objects.equals(editor, "custom")) {
            return url + customEditor + resource.getPath();
        }
        else{
            return url + editor + resource.getPath();
        }
    }
}

Création du rapport

Accédez à Création de rapport

  • Accédez à AEM UI Tools => ACS AEM Commons => Rapports.
  • Ajoutez le titre et cliquez sur le bouton « Ajouter un rapport ».

Ajouter et modifier un rapport

  • Initialement, le rapport nouvellement créé apparaîtra dans la liste.
  • Modifiez le rapport pour le configurer.
Personnalisé

Rapport de page personnalisé

Configurer les détails du rapport

  • Configurez le générateur de rapports selon vos besoins.
  • Paramètres de recherche : définissez les paramètres souhaités pour votre rapport.
  • Colonnes de résultats : utilisez votre composant personnalisé (colonne de l’éditeur de rapport personnalisé) pour afficher l’URL.
Éditeur de rapport

Colonne de l’éditeur de rapport

Téléchargez le rapport

  • Sélectionnez le rapport sur les pages publiées personnalisées.
  • Téléchargez votre rapport maintenant, vous pourrez voir une colonne Modifier avec une URL de page complète.

maintenant, vous pourrez voir une colonne Modifier avec une URL de page complète.

télécharger

Télécharger le rapport

Conclusion

ACS AEM Commons Reporting propose des outils robustes permettant aux utilisateurs d’AEM d’extraire des informations et d’optimiser les expériences numériques. Les développeurs peuvent étendre ses fonctionnalités pour répondre à des besoins commerciaux spécifiques, améliorant ainsi les efforts d’analyse. Ce blog décrit les étapes à suivre pour tirer parti d’ACS AEM Commons Reporting pour des initiatives numériques réussies.

Références

VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE






Source link