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

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.

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.

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