Projet

General

Profil

Rapports et fiches produits

Introduction

Ce document présente le paramétrage et l'administration de rapport BIRT pour le logiciel beCPG. Elle est destinée aux administrateurs du logiciel beCPG.
Cette vidéo présente la modification d'un rapport BIRT:
http://www.youtube.com/watch?v=pZPZc3bmd_s

Installation

Les différentes versions de BIRT sont accessibles à cette page:
http://download.eclipse.org/birt/downloads/

Version pour windows:
http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-4_3_0-201306131152/birt-rcp-report-designer-4_3_0.zip

Types de rapport

Les rapports Fiche Produit

Il existe 2 types de rapports pour les fiches "Produit":
  • rapport système (toujours généré par le système, en automatique);
  • rapport utilisateur (choisi par l'utilisateur lorsqu'il édite le produit). Ce type de rapport est un rapport à la demande.

Les rapports de fiches Produit sont définis dans le dossier /Système/Rapports/Rapports de fiche produit.

L'ajout d'un nouveau rapport se fait ainsi (vous pouvez copier un rapport de produit) :
  1. Ajouter un dossier;
  2. Ajouter le fichier *.rptdesign puis éditer ses métadonnées :
  • Le nom du rapport;
  • Le type de produit pour définir à quel type de produit le rapport est applicable
  • Matière première en mettant la valuer {http://www.bcpg.fr/model/becpg/1.0}rawMaterial
  • Semi fini en mettant la valeur {http://www.bcpg.fr/model/becpg/1.0}semiFinishedProduct
  • Produit fini en mettant la valeur {http://www.bcpg.fr/model/becpg/1.0}finishedProduct
  • Emballage en mettant la valeur {http://www.bcpg.fr/model/becpg/1.0}packagingMaterial

Il est aussi possible de renseigner un type général. Le rapport avec le type général sera visible pour toutes les entités:

  • Type général : {http://www.bcpg.fr/model/becpg/1.0}product
  • Le type de modèle:
  • Modèle système pour indiquer si le rapport est généré automatiquement pour ce type de produit. Dans le cas, où ce rapport n'est pas un rapport système, l'utilisateur doit le sélectionner lorsqu'il édite le produit.
  • Modèle par défaut, pour indiquer que le rapport est le rapport par défaut du produit, c'est à dire, que ce sera le rapport affiché lorsque l'on sera sur la fiche du produit. Il ne peut y avoir qu'un rapport par défaut pour un type de produit. Les rapports qui ne sont pas des rapports par défaut sont mis dans le dossier « Documents » du produit lors de la génération du rapport.
  • L'extension du rapport

Lorsqu'un produit est créé ou édité, le système génère un rapport par modèle de rapport associé au produit.

Les rapports d'extraction d'une recherche

Ces rapports sont définis dans le dossier /Système/Rapports/Exports de recherche.

Ces rapport sont des rapports BIRT qui exportent le résultat d'une recherche.

L'ajout d'un nouveau rapport se fait ainsi :

  1. Ajouter un dossier;
  2. Dans le dossier, ajouter le rapport BIRT ou Excel en renseignant le nom et ses métadonnées. Le nom sera affiché sur la page de résultats d'une recherche. L'extension du fichier doit être xls pour un rapport Excel et rptdesign pour un rapport BIRT.
  3. Définir les permissions sur le dossier du rapport. Les personnes doivent avoir la permission en lecture pour voir le rapport dans le résultat d'une recherche.
Uniquement pour les rapports BIRT:
  • La définition des données à exporter pour le rapport, est définit dans ExportSearchQuery.xml. Ce fichier définit les attributs du produit à exporter pour l'exécution du rapport :
    • propriétés du produit (nom, état, etc...);
    • associations du produit (fournisseurs, clients, etc...);
    • caractéristiques du produit (coûts, nutriments, allergènes, etc...).

Pour créer ou modifier un rapport BIRT, se référer au chapitre « Modification d'un modèle de rapport produit ».

Les rapports Excel sont facile à créer. Dans Excel sur le premier onglet vous devez définir le type principal à extraire comme suit :

TYPE    bcpg:finishedProduct                
COLUMNS    cm:name    bcpg:code    bcpg:erpCode    bcpg:productHierarchy1    bcpg:productHierarchy2
#    Nom    Code    Code ERP    Famille    Sous famille

Sur les onglets suivants vous pouvez extraire les datalists du type principal. Exemple pour la composition:

TYPE    bcpg:compoList            
COLUMNS    bcpg:erpCode    bcpg:compoListProduct    bcpg:compoListProduct_bcpg:erpCode    bcpg:compoListProduct_bcpg:productHierarchy1
#    Produit    Composant    Composant – Code ERP    Composant – Famille

Vous pouvez utiliser le prefix entity_ pour afficher des propriétés de l'entité dans les onglets de type datalists.

Vous pouvez Aussi utiliser dyn_nome du propriété pour afficher les propriétés dynamiques dans les listes composition, emballage ou la liste des process.

Pour les types bcpg:compoList et bcpg:packagingList vous pouvez utiliser des paramètres d'extraction multiniveau ( AllLevel, MaxLevel2, OnlyLevel2) ainsi que des formules (formula|props["qty"])

TYPE    bcpg:compoList    OnlyLevel2    
COLUMNS    bcpg:erpCode    bcpg:compoListProduct    bcpg:compoListProduct_bcpg:erpCode    bcpg:compoListProduct_bcpg:productHierarchy1   formula|props["qty"]
#    Produit    Composant    Composant – Code ERP    Composant – Famille

Vous pouvez insérer des onglets supplémentaires avec des formules excel, la première case (A1) doit contenir le symbole # .

Les attributs des colonnes et des types sont les noms interne données au champs. Un exemple de fichier est fournit ci-joint.

Comment retrouver les champs internes à beCPG ?

Les champs internes se trouvent à 2 endroits, sur les propriétés d'un produit et au niveau de sa liste (composition, emballage, etc).

Pour retrouver les champs internes d'un produit, il faut effectuer une édition multiple:

Pour accéder aux champs internes liés aux listes :

Modification d'un modèle de rapport produit

Chaque rapport beCPG possède un modèle BIRT dont l'extension est *.rptdesign.

Introduction à BIRT

beCPG se base sur la solution de reporting BIRT (Business Intelligence and Reporting Tools).

  • Reporting: synthétiser des données sous forme de rapports.
  • BIRT:
  • outil de reporting "Open Source" reposant sur Eclipse.
  • outil graphique, c’est-à-dire qu’il dispose d’une palette permettant de sélectionner l’élément devant être placé sur le rapport.

Le rapport BIRT peut être connecté avec une base de données afin de pouvoir afficher le résultat d’une requête SQL sur une feuille de travail. Pour cela, il est nécessaire d’ajouter une « Data Source » permettant de se connecter à la base de données.

Ensuite, une « Data set », contenant la requête SQL, est ajoutée pour générer des requêtes statiques mais aussi dynamiques en ajoutant des paramètres modifiables lors de l’exécution du rapport.

Le « Data cube » permet de créer un tableau croisé. Cela permet notamment l’affichage de données par colonne et le calcul du total automatique pour les statistiques.

L'exécution d'un rapport beCPG se fait ainsi :
  1. Génération de la source de données XML par le moteur beCPG
  2. Chargement du modèle BIRT
  3. Exécution du rapport qui donnera une sortie *.pdf, *.doc, *.xls

Design du rapport

Le design du rapport se fait dans le designer Eclipse où l'on trouve :
  • La boite à outil (Palette) qui fournit des contrôles de rendu tels que : des tableaux, listes, zone de texte etc...
  • La source de données XML (Data Explorer);
  • La mise en forme du rapport (Layout);
  • La page maître (Master page): pour modifier l'entête et le pied de page;
  • La prévisualisation du rapport (Preview).

Le paramétrage d'un rapport consiste donc à :
  • disposer les contrôles de rendu zone de texte, tableau
  • définir où seront placés les données via du drag 'n drop des attributs de la source de données, dans le rapport.

Création du rapport

  1. Window > Open perspective > Other > Report Design
  2. File> New> Project> Business Intelligence and Reporting Tools> Report project, puis nommer le projet.
  3. File> New> Report puis nommer le rapport et choisir la trame de départ.

Exploration des données (Data Explorer)

Pour explorer les données, il faut sélectionner l'onglet « Data Explorer ».

Un exemple de source de données XML est :

<entity name="Assortiment 8 sushis" code="1009" 
    store-identifier="SpacesStore" 
    productQty="0.200" productUnit="kg" productState="ToValidate" 
    productEAN="8001456682" />

Cet XML peut être obtenu via l'url:

http://{serveur}:8080/alfresco/service/becpg/report/datasource?nodeRef=workspace://SpacesStore/2aad6284-afc2-4d89-8bbf-bd3dd50ff1bc

ou

http://{serveur}:8080/share/proxy/alfresco/becpg/report/datasource?nodeRef=workspace://SpacesStore/2aad6284-afc2-4d89-8bbf-bd3dd50ff1bc

où workspace://SpacesStore/2aad6284-afc2-4d89-8bbf-bd3dd50ff1bc correspond à l'identifiant d'un produit (disponible dans l'url du navigateur quand on est sur un produit).
Cette url affiche le XML qui peut être sauvegardé sur son pc en faisant "sauvegarder sous".

Pour indenter le XML:

xmllint --format datasource.xml > datasource-pretty-print.xml

Choix de la source de données (datasource)

Pour modifier une datasource, voici la procédure à suivre :
  • Data explorer> Data source> New data source;
  • Sélectionner « XML Data Source » ;
  • Clique droit, « Edit »;
  • Faire Browse pour aller chercher la data source;
  • Sélectionner le XML sauvegardé sur son pc;
  • Cliquer sur « Test connection » et renseigner le compte et mot de passe de l'admin.
  • Sii « Ping succeedeed » apparait, c’est OK.
  • Appuyer sur « Finish ».

Choix du XML

Choix XML

Data Sets

Les dataset permettent de requêter la datasource et de sélectionner les attributs.

  1. Data set> New data set puis cliquer sur la data source précédemment rentrée et cliquer sur OK.
  2. Sélectionner la donnée à requêter (XPath qui permet de sélectionner les nœuds XML qui alimentent le dataset)
  3. Sélectionner les attributs des nœuds XML qui alimentent les colonnes du dataset

Choix xPath

Ajout d'une propriété

Ajout prop datasource

Il est possible de prévisualiser le contenu du dataset en cliquant sur "Preview results".
Une fois que le dataset est paramétré, il faut glisser déposer ses données dans le rapport.

Vue du rapport

Les vues de rapport sont sélectionnées par les onglets en bas de la section principale

Layout

Permet de construire le rapport :
  • Ajout des contrôles
  • Ajout des données

Page maître (Master page)

La page maître permet de renseigner :
  • Les entêtes et pieds de page du rapport
  • la largeur, la hauteur du rapport

Script

Il est possible de programmer des fonctions utilisables dans le rapport en les stockant dans l’onglet « Script ». Ces scripts peuvent être exécutés au démarrage du rapport ou à la fermeture de ce dernier, pour un élément précis ou pour le rapport dans son intégralité. Le code source XML est accessible.

XML Source

Affiche le XML du rapport.

Preview

Affiche la prévisualisation du rapport, comme s'il était exécuté par beCPG: Run> View report> Format de sortie (PDF).

Palette de contrôles

La palette est sélectionnée par l'onglet « Palette ». Cela permet notamment d'ajouter un texte en dur.

Contrôles disponibles
  • Label : A utiliser par défaut pour afficher du texte statique;
  • Text
  • Dynamic Text: texte dynamique. Exemple : pour mettre en gras des mots sur l’étiquette, on utilise des balises HTML;
  • Data : Rarement nécessaire car les données sont ajoutées depuis Exporer Data
  • Image
  • Grid : tableau statique (on peut mettre des tables dedans);
  • List : liste dynamique en fonction du nombre de ligne du dataset
  • Table : tableau dynamique en fonction du nombre de ligne du dataset (on peut mettre des listes dedans);
  • Chart : graphique
  • Cross tab : tableau croisé dynamique
Ajout d'un contrôle dans le rapport

L'ajout d'un contrôle se fait par glisser-déposer.

Ajout d'une image

L'ajout d'une image statique est simple.

L'ajout d'un image dynamique est plus complexe, il s'agit du cas où le moteur beCPG récupère une image associée au produit et l'envoie à la datasource du rapport lors de l'exécution.
La procédure est la suivante :
  • Ajouter l'image
  • Dynamic Image en référençant l'id de l'image passé à la datasource, ex : row["productImage"]
Expression pour les champs de type données

Les champs de type données peuvent être soumis à des conditions ou être la concaténation de plusieurs attributs, ex :
"Emballage : " + dataSetRow["palletBoxName"] + ", tare indicative (g) : " + dataSetRow["pmBoxTare"] + ", dimensions (mm) : " + dataSetRow["pmBoxDimensions"]

Pour éditer cette mise en forme, il faut faire :
  1. Clique droit sur l'attribut data
  2. Edit Value/Expression
  3. Renseigner l'expression

Visibilité

Il est possible de masquer des champs ou des images selon des conditions.
Pour cela, il faut :
  • Afficher les propriétés du contrôle
  • Sélectionner l'onglet Visibility
  • Renseigner l'expression qui indique quand masquer le contrôle

Mise en forme

Il est possible de définir des styles de mise en forme dans un rapport, pour cela :
  • Clique droit sur un contrôle
  • Style => New Style

Ensuite, les styles peuvent être appliqués aux contrôles, édités ou supprimés en faisant un clique droit sur un contrôle, puis Style.

Déploiement

Une fois le rapport édité sous eclipse, le sauvegarder au format .rptdesign.

  1. Fiches techniques: se place dans Entrepôt> Système> Rapports> Rapports de fiche produit> Entité et déposer le rapport
  2. Fichiers de langues (properties): se place dans Entrepôt> Système> Rapports> Rapports de fiche produit et déposer le rapport

Pour les fichiers .rptdesign > Changer le type > Modèle de rapport

Dans "Editer les propriétés":

  • Cocher Modèle système si le rapport doit être attribué à tous les produits de même type.
  • Cocher Modèle par défaut s'il existe plusieurs modèles et que celui-ci doit être affiché par défaut.
  • Si rien n'est coché, il faudra aller dans le produit concerné et sélectionner le rapport à la main via le bouton "paramètres rapport"

Pour que le rapport soit traduit en différentes langues, sélectionner des fichiers de langues associées.
Sélectionner également les différentes langues concernées dans la liste déroulante. Puis sélectionner les différentes langues dans les 'paramètres rapport' d'un produit.

Paramétrage de l'extracteur (Partie 1)

Introduction

L'extracteur permet de créer la datasource. La version 2.1 de beCPG offre la possibilité d'extraire des données spécifiques via des paramètres prédéfinis.

Les paramètres se placent dans le fichier [instance]/becpg/classes/beCPG.properties.
Les paramètres avec un astérisque, dans le titre, peuvent prendre plusieurs valeurs, les valeurs doivent être séparées par une virgule ",".

Paramètres

becpg.reportServerUrl

Ce paramètre permet d'indiquer le serveur sur lequel se trouve le module BIRT.

Valeur par défaut:
  • becpg.reportServerUrl=http://localhost:8080/becpg-report

beCPG.report.name.format

Ce paramètre indique au module BIRT, comment codifier le nom du rapport généré.

Valeur par défaut:
  • beCPG.report.name.format={entity_cm:name} - {report_cm:name} - {locale}

beCPG.entity.report.mltext.fields

Permet d'extraire toutes les langues saisies d'un champs.

Exemple:
Si le champs nom légale (bcpg:legalName) est saisie en 2 langues (anglais et français), et qu'il faut afficher ces 2 langues dans le rapport, la configuration nécessaire est la suivante :

  • beCPG.entity.report.mltext.fields=bcpg:legalName

beCPG.product.report.multiLevel

Permet d'activer l'extraction en multi-niveau. Elle peut prendre 2 valeurs possibles, 'true' et 'false'.

Exemple :
Si ce paramètre est :
  • Faux : seuls les éléments de niveau 1 sont remontés (voir image ci-dessous, encadré en rouge).
  • Vrai : les éléments de tous les niveaux sont remontés.

Valeur par défaut:
  • beCPG.product.report.multiLevel=false

beCPG.product.report.priceBreaks

Permet d'afficher la liste coût en fonction des quantités d'achats. Elle prend 2 valeurs possibles, 'true' et 'false'.

Par défaut, sa valeur est à faux.

beCPG.product.report.assocsToExtract*

Les champs 'Titre' et le champs 'Clients' sont des propriétés d'un produit fini; le premier est une propriété simple et la seconde est une propriété associée (association).
Par défaut, l'extracteur remonte uniquement le champs 'name' de l'association mais il arrive que l'on veuille récupérer toutes les données d'un client ( adresse, Tel, Fax, etc). Pour ce faire, ce paramètre permet d'extraire sur un produit, toute les propriétés d'une association.

Valeur par défaut:
  • beCPG.product.report.assocsToExtract=bcpg:plants,bcpg:suppliers,bcpg:storageConditionsRef,bcpg:precautionOfUseRef

beCPG.product.report.assocsToExtractWithImage*

Un Produit Fini possède une propriété 'Clients', qui permet d'associer une entité client au produit.
Par défaut, l'extracteur ne remonte pas les images du client lors de l'extraction du produit Fini. Pour ce faire, ce paramètre permet d'indiquer à l'extracteur qu'il faut remonter les images du client dans la datasource.

Exemple: Pour remonter les images du client, passer la valeur bcpg:clients:

beCPG.product.report.assocsToExtractWithImage=bcpg:clients

Valeur par défaut:
  • beCPG.product.report.assocsToExtractWithImage=

beCPG.product.report.assocsToExtractWithDataList*

Similaire à "beCPG.product.report.assocsToExtract" mais permet d'extraire la dataList d'une association.

Valeur par défaut:

  • beCPG.product.report.assocsToExtractWithDataList=

beCPG.product.report.componentDatalistsToExtract*

Un composant peut être une "Matière Première" (MP), un Semi-Fini (SF), un "Emballage" ou un "Kit Emballage".

Un produit contient des composants dans chacune de ses listes (Compositions, Emballages, etc). Lors d'une extraction simple, les composants sont extraits sans leurs Listes. Ce paramètre rend possible l'extraction des listes des composants.

Exemple : La configuration suivante permet d'extraire la dataList des composants de la composition d'un produit :

  • beCPG.product.report.componentDatalistsToExtract=bcpg:compoListProduct

Valeur par défaut:

  • beCPG.product.report.componentDatalistsToExtract=

Paramétrage de l'extracteur (Partie 2)

Introduction

Comme vous avez pu le constater, le paramétrage de l’extracteur se fait dans le fichier beCPG.properties et nécessitait le redémarrage du serveur pour prendre en compte la nouvelle configuration.

Aujourd’hui, depuis la version 2.2.2, il est possible de paramétrer l’extracteur de rapport directement dans le PLM et sans avoir besoin de redémarrer le serveur.

Principes

BeCPG est installé sur un système avec une configuration par défaut de l’extracteur (beCPG.properties). Cette configuration peut être surchargée via le nouveau champs Paramètres texte situé dans le formulaire d’édition de propriété d’un rapport. (voir encadré vert de l’image ci-dessous).

Cette surcharge de configuration ne nécessite pas le redémarrage du serveur et est prise en compte immédiatement pour les prochaines extractions.

Paramètre texte contient un objet JSON qui comprend une liste de clés.

Voyons en un 1er temps la liste des clés disponibles puis en un second temps, leurs rôle et pour finir , un cas d’utilisation.

Liste des clés

  • iterationKey
  • params
  • prefs
    • extractInMultiLevel
    • componentDataListsToExtract
    • extractPriceBreaks
    • mlTextFields
    • assocsToExtract
    • assocsToExtractWithDataList
    • assocsToExtractWithImage
  • nameFormat
  • titleFormat

Rôle des clés

iterationKey : permet de spécifier sur quelle liste qu’il faut effectuer une itération sur chaque composant qu’elle contient. Elle est utilisée en partenariat avec la clé params.

params : est un tableau de paramètres. Chaque paramètre comporte 2 clés :
  • id : est un nom d’une variable donné arbitrairement pour pouvoir l’exploiter avec d’autre clé, tel que nameFormat et titleFormat.
  • prop : permet de spécifier la valeur à récupérer pour la stocker dans id.

prefs : est un objet et permet de régler le comportement de l’extracteur. La liste des paramètres pris en compte est :

  • REMARQUE : cliquer sur l’un des paramètres ci-dessus pour voir son rôle.

nameFormat : permet de codifier le nom du rapport PDF. Par défaut, la codification est la suivante : {entity_cm:name } - {report_cm :name} - {locale} : ce qui donne «Quiche Lorraine – Fiche technique - fr» pour le PF Quiche Lorraine.

Exemple :

Si l’on souhaite faire apparaître le code beCPG d’un composant de la composition, nameFormat aura la valeur :

«{entity_cm:name} – {report_cm:name} - {locale}– {param1}»

{param1} est une variable qui est définit dans le JSON, nous verrons comment la définir lors du Cas d'utilisation.

titleFormat : permet de codifier le nom du rapport placé dans la liste des rapports. La liste des rapports générés se trouve dans la liste Fiches techniques d’une entité.

Cas d'utilisation

Prenons l’exemple d’un fournisseur qui possède plusieurs usines et vous avez besoin de générer un rapport par usine pour ce fournisseur.
Chaque rapport doit contenir dans leur nom, le nom de l’usine en question.
Pour se faire, vous aurez au préalable créé la liste «Fiches Techniques» sur le modèle fournisseur. Une fois, le rapport fournisseur crée et déployé, il vous reste à placer dans Paramètre texte le JSON suivant afin de terminer la configuration du rapport :

{
   iterationKey : "bcpg:plant",
   params : [{
      id: "param1",
      prop : "cm:name" 
   }],
   prefs : {
      assocsToExtract : "bcpg:plants,bcpg:suppliers,bcpg:storageConditionsRef,bcpg:precautionOfUseRef,bcpg:nutListNut",
      assocsToExtractWithDataList : "bcpg:compoListProduct" 
   },
   nameFormat : "{entity_cm:name}- {report_cm:name}  - {locale} - {param1} ",
   titleFormat : " {report_cm:name} -  {locale} - {param1}" 
}

Puis à générer les rapports du fournisseur.

À savoir

  • Le tableau params s’utilise avec la clé iterationKey. Il est donc inutile d’utiliser l’un sans l’autre.
  • Si vous avez surchargé une clé (mlTextfields, assocsToExtract,…) et que vous l’enlevez du Paramètre texte, l’extracteur utilisera la valeur par défaut.
  • Les Paramètres définis dans la clé params du JSON sont extrait dans la dataSource (XML) du rapport.
    • Exemple :

Si vous avez params qui vaut :

{
   ...

   params : [{
      id: "nomUsine" 
      prop: "cm:name" 
   },
   {
      id: "nomCertifUsine" 
      prop: "bcpg:plantCertifications|cm:name" 
   }],

   ...
}

Le Noeud XML correspondant au résultat du paramètre JSON sera :

<entity>
...
<reportParams>
   <nomUsine nodeRef="workspace://SpacesStore/108624b8-49da-44a0-be1f-7735b7a35143" prop="cm:name" value="Usine XY"/>
   <nomCertifUsine nodeRef="workspace://SpacesStore/108624b8-49da-44a0-be1f-7735b7a35143" prop="bcpg:plantCertifications|cm:name" value="Certification X1"/>
</reportParams>
</entity>

Remarquez que :

  • Le nom du noeud est la valeur spécifiée dans id.
  • L'attribut nodeRef est le nodeRef du composants courant.
  • L'attribut prop est la chaîne de texte saisie dans le JSON.
  • L'attribut value est la valeur stockée dans "nomUsine".

Il existe 2 solutions pour récupérer la dataSource contenant le noeud reportParams. La 1ère est d'activer le mode debug en Java. La 2nd est de consulter l'attribut rep:reportTextParameters du noeud du rapport généré.
Nous allons voir la seconde solution, moins lourde à effectuer.

Après avoir configuré le rapport et l'avoir généré :
  1. aller dans le dossier Document de l'entité (fournisseur dans notre exemple) et cliquer sur un rapport PDF.
  2. récupérer le nodeRefs du document PDF puis retrouver le document via le navigateur de noeud. (Pour savoir comment récupérer un nodeRef et utiliser le navigateur de noeud, *lire ceci*)
  3. Une fois sur le noeud du document, son attribut rep:reportTextParameters contient un JSON sous la forme :
    {
      "titleFormat":" {report_cm:name} - {nomUsine} - (fr - {locale} )",
      "nameFormat":"{entity_cm:name} - {report_cm:name} - {nomUsine} - (fr - {locale} )",
      "params":[
        {
          "nodeRef":"workspace://SpacesStore/108624b8-49da-44a0-be1f-7735b7a35143","prop":"cm:name","id":"nomUsine","value":"Usine XY" 
        },
        {
          "nodeRef":"workspace://SpacesStore/108624b8-49da-44a0-be1f-7735b7a35143","prop":"bcpg:plantCertifications|cm:name","id":"nomCertifUsine","value":"Certification X1" 
        }
      ],
      "prefs":{...}
      ...
    }
    

Avec le système de correspondance vous êtes en mesure de reconstituer le noeud XML <reportParams> pour vos tests en local.

Paramétrage de l'extracteur (Partie 3)

Filtrage de données

1- Filtrage par sous-type de rapport :

Depuis la version 2.2.3, ce filtrage vous permet de masquer les lignes d’une liste dans un rapport.

Au début il faut ajouter les sous-types de rapport dans la liste : Sous-type de rapport
Administration beCPG >Listes de valeurs >Sous-types de rapport

Ensuite, déclarer le sous-type de rapport sur les modèles de rapport

Le mécanisme de filtrage par sous-type de rapport se base sur l'ajout d'une nouvelle colonne sous-type de rapport dans une liste

Exemple :
Dans la liste nutriments on peut masquer les nutriments selon l’algorithme suivant :

Par défaut le système affichera les nutriments dans tous les rapports si le sous-type de rapport n’est pas choisit sur une ligne (nutriment).

Une fois vous cochez le sous-type de rapport sur une linge de nutriment les autres linges seront masquer dans le rapport.

2- Filtrage par les paramètres rapport

Vous pouvez masquer une liste, une propriété ou un élément d’une liste dans tous les rapports ou dans un sous-type de rapport spécifique
Dans la liste Paramètres rapports  vous ajoutez des paramètres sous forme de :

[show/hide]#[(reportKind|optionnel)]#[listName|propertyName|assocName]

show : par défaut c’est de masquer l’élément, pour l’afficher il faut la cocher dans les paramètre du rapport de l’entité

hide : par défaut afficher l’élément, pour le masquer il faut la cocher dans les paramètre du rapport de l’entité

reportKind : c’est une option pour dire dans quel modèle de rapport vous allez masquer ou afficher l’élément.

La dernière partie c’est le nom de l’élément que vous voulez le masquer et qui peut être une liste, une propriété ou une association

NB : Pour les propriétés de l’entité il faut spécifier le préfixe exemple : cm_name mais ce n'est pas le cas pour les noms des listes ou le nom d'une colonnes (propriété d'une liste).

Maintenant il vous reste que cocher les paramètres sur votre produit (entité).
Fiches techniques >Paramétrer les rapports

Création d'une liste "Fiches Techniques" et création d'une liste "Documents"

Introduction

Les entités (Produit-Fini, Matière Première, etc) possèdent des listes par défaut ("Fiches Techniques", "Composition",...). Certaines entités n'en possèdent pas certaines, par exemple, la liste "Fiches Techniques" pour le Fournisseur.

Procédure

Pour rajouter une liste "Fiches Techniques" sur le modèle Fournisseur, il faut :

1. Sélection le modèle "Fournisseur" situé dans "Entrepôt > Système > Modèles d'entités" .

2. Cliquer sur "Nouvelle liste" (cf image ci-dessous, encadré en rouge) puis dans la liste des types, sélectionner "Vue personnalisée" (cf image ci-dessous, encadré en vert).

3. Puis remplir les champs du formulaire avec le mêmes valeurs que l'image ci-dessous puis enregistrer:

La nouvelle liste Fiches Techniques est ainsi créée.

4. Si vous souhaitez créer une liste document (si elle n'existe pas encore), la procédure est la même. Il faut simplement modifier à cette étape les champs suivant :

"Nom de la vue personnalisé", mettre : View-documents
"Titre", mettre : Documents

Bonnes Pratiques - BIRT

Dans la section Rapports et fiches produits vous vous êtes familiarisé avec le Designer Birt. Notamment avec les onglets: explorateur de données (contient les jeux de données, la dataSource, etc), la Palette (contient les éléments label, grille, image,…), le Layout (vue permettant la mise en forme).

Durant vos divers utilisation de Birt Designer, vous avez sûrement remarqué l’onglet Outline qui côtoie l’onglet navigateur. Cet onglet, présente la structure du rapport, (cf: image ci dessous).

Ce recueil de bonne pratique abordera certaines sections présent dans la structure.

Déclaration d'une fonction

Il y a des cas où un développeur déclare une même fonction dans plusieurs éléments (text, data, Dynamic text,...) du rapport.
Procéder de cette manière alourdit le rapport et lorsqu'une maintenance est effectuée sur cette même fonction, cela entraîne une modification sur chaque élément qui la contient.

Afin d'optimiser le temps de maintenance, la meilleur façon de procéder est mutualiser la fonction dans l'événement "Initialize" du rapport.
La fonction est alors disponible dans tout le rapport.

Avantage de la mutualisation d'une fonction :

  • Rapport moins lourd via l'absence de la duplication de fonction.
  • Réduction du temps de maintenance.

Utilisation d'Alias

L’utilisation d’un Alias au niveau des champs d’une dataSet s’avère utile lorsque la clé d’un champs diffère trop du nom affiché au client. L’utilisation de l’alias permet de gagner du temps lorsqu’il faut chercher un champs pour un traitement spécifique.

Gestion des images dans Birt

Afin de minimiser la taille du rapport, s'assurer qu'après chaque modification de rapport, que toutes les "images intégrées" non utilisées, soient supprimées.

Pour une raison d'efficacité, effectuer la suppression, l'ajout et le renommage d'image via l'onglet Outline d'éclipse.

Gestion des scripts (événement)

Birt offre la possibilité de définir des script JS, à différent niveau d'événement (Initialize, onPrepare, onRender,...). Lorsqu'un événement contient du code, l'événement s'affiche alors dans la section Scripts de l'onglet Outline. Il est alors possible d’avoir une vision globale de tous les éléments du rapport, ayant un script associé à un événement.

Avant la livraison d’un rapport, vérifier qu’aucun script, non utilisé, reste dans le rapport.

Accéder à une clé de langue

C'est possible d' afficher une clé de langue en anglais (US) dans un rapport configuré en français (FR) par exemple, en utilisant la commande suivante :
var lc = new java.util.Locale("us_US");
reportContext.getMessage("decisionTree.no", lc);

Il suffit de modifier la locale us_US afin d'afficher cette clé de langue dans la langue désirée .

Pour en savoir plus sur les événements et scripts BIRT, lire cette documentation .