Modules:Analytics Generation Cubes/fr
Languages: |
English | Français | Translate this article... |
Étendre la Génération de Cubes
Il est possible de définir un Cube en tant que Modèle, comme expliqué dans la Documentation, et utiliser ensuite ce Modèle pour générer les Cubes en cours pour les différentes sociétés. Ceci est dû au fait que les Définitions de Cubes peuvent dépendre des données Société.
En générant un Cube basé sur un Modèle, il est possible de remplacer certaines expressions par les données Société en cours. Par exemple, par défaut l'expression @ad_client_id@ est remplacé par le Client Id en cours.
Mais dans certains scénarios cela ne suffit pas. C'est pourquoi il est possible d'étendre le traitement qui génère les Cubes pour prendre en compte certains besoins.
Un exemple de cette fonctionnalité peut être trouvé dans les Rapports Financiers Multi-Dimensionnels.
Exemple
Un Module va étendre la génération des Cubes afin d'ajouter un autre paramètre à remplacer, dans ce cas le paramètre @first_invoice_id@ sera remplacé par l'Id de la première facture créée pour une Société.
public class GeneratePAndLCubeFromTemplate extends GenerateFinancialCubesFromTemplate { private static final Logger log = Logger.getLogger(GeneratePAndLCubeFromTemplate.class); @Override public Set<String> getCubeTemplatesToGenerate() { Set<String> set = new HashSet<String>(); set.add("1E3B7EA7D12340618952D742E9B69EC2"); return set; } @Override public void processCube(JSONObject request, JSONObject params, CubeDefinition cube, CubeDefinition cubeTemplate, Client client) throws OBException { super.processCube(request, params, cube, cubeTemplate, client); cube.setSqlfilter(cube.getSqlfilter().replace("@first_invoice_id@ ", getFirstInvoiceId(client))); } }
- La première chose à noter est que la classe Java doit étendre la classe GenerateFinancialCubesFromTemplate.
- Donc, elle doit implémenter à la fois les méthodes getCubeTemplatesToGenerate et processCube.
- La méthode getCubeTemplatesToGenerate retourne un ensemble de chaînes de caractères qui contient l'ID des modèles de cube qui vont être affectés par ce code. Dans cet exemple, seuls les cubes générés utilisant le Modèle de Cube avec l'Id 1E3B7EA7D12340618952D742E9B69EC2 seront affectés.
- processCube est la méthode qui contient la logique de traitement du Cube.
- Dans cet exemple, les appels à la méthode processCube de la classe GenerateFinancialCubesFromTemplate, qui crée un Cube pour chaque Société et remplace @ad_client_id@ par le Client Id en cours.
- Donc, pour le Cube généré, ce code remplace le paramètre @first_invoice_id@ avec l'Id en cours de la première facture de la société dans le filtre SQL.
- La Classe GenerateFinancialCubesFromTemplate génère tous les Cubes pour chaque Société et ensuite, dans une boucle, appelle la méthode processCube pour chaque Cube.