Reportive Studio intègre en standard deux moteurs de calcul. Le premier est intégré aux éléments de génération de tableaux et de graphiques et permet d'adapter les données d'entrée afin de fournir ce qui est requis pour la construction des éléments. Ce moteur exploite une technologie In-Memory permettant de manière très aisée de manipuler les données et de les adapter aux besoins des éléments de rendu. Cette souplesse apporte une richesse sans égale pour une exploitation ad-hoc de ces éléments afin d'analyser vos données.
Ce premier moteur a été conçu dès 1992 et a été grandement amélioré pour pouvoir répondre à des besoins avancés de reporting. Avec le temps, le volume de données à analyser a augmenté et a obligé Reportive à concevoir un moteur de calcul d'un nouveau type exploitant la technologie Data Pipelining afin de pouvoir traiter de très gros volumes de données sur des configurations bureautiques standard.
Cette technologie permet d'adapter la quantité de données à charger en mémoire en fonction du matériel et en fonction de la mémoire disponible sur la machine. Il est ainsi possible de traiter des volumes de plusieurs centaines de millions de lignes de données sur des ordinateurs bureautiques standard sans avoir recours à la mise en place d'un serveur. La version 64-bit du moteur de calcul permet alors d'exploiter pleinement la totalité de la mémoire disponible sur les machines modernes ou sur les serveurs d'entreprise.
Cette technologie permet aussi d'exploiter tous les cœurs de la machine pour exploiter au mieux la puissance disponible. Afin de minimiser la place disque occupée par les opérations de calcul, des compilateurs ont été développés pour permettre de regrouper les traitements de calcul et de générer uniquement les sorties des groupes de calcul, en virtualisant les opérations intermédiaires.

Dans le cas du composant ci-dessus, l'exécution du composant génère la source de données "OLE Data" et les deux flux correspondants aux deux ports de sortie du composant. Tous les flux internes du composant sont virtualisés et ne sont pas sauvegardés sur le disque.
Pour effectuer vos traitements de données (nettoyage, calcul des indicateurs...), Reportive Studio met à votre disposition un certain nombre d'éléments de base que vous pouvez combiner afin de créer vos propres composants de calcul spécialisés :
-
Des éléments spécifiques à la phase de conception. Quand vous travaillez en mode "Design", ces éléments permettent de filtrer les données afin d'accélérer la mise en place et la modification du projet. Lorsque le projet est exécuté en "Production", ces éléments sont court-circuités et permettent alors le traitement de l'intégralité des données.
-
Des composants de calcul (agrégation, filtre, filtre dynamique, formule, jointure, tri), mais aussi quelques éléments plus avancés (complétude de temps, transposition, "Wizard").
-
Des composants avancés: Slicer de données, switch conditionnel, recomposition de listes..
En partant de ces éléments, vous pouvez implémenter vos règles métier, les réutiliser dans d'autres projets de votre espace de travail ou les partager avec les autres grâce aux librairies.
Liste des éléments de calcul

L'interface simple de jointure de données vous permet d'enrichir rapidement vos jeux de données en les combinant. De nouveaux types de jointures (jointures strictes) permettent de s'assurer de la cohérence des données, mais surtout de bloquer les productions si l'une des sources de données n'a pas la cohérence souhaitée.
La combinaison des fonctions de l'ETL à la fonction Error permet d'implémenter tout type de contrôle de données en fonction des exigences de vos projets.
Reportive Studio intègre un itérateur ForEach qui permet d'itérer sur une combinaison de données. Cette fonctionnalité permet par exemple la génération et l'envoi de données/rapports personnalisés en fonction de divers critères (nom de l'utilisateur, son entreprise, les données commandées, le type de données ou de rendu souhaité...).
Dans l'optique de la préparation des objets composites, certains composants spécifiques sont fournis pour vous permettre de vous adapter précisément à vos besoins. Par exemple l'élément "Aggregate" permet de spécifier les axes d'agrégation qu'on souhaite garder, alors que l'élément "Aggregate by remove" permet de spécifier les axes qui ne doivent pas être conservés lors de l'agrégation.
Reportive Studio intègre aussi des éléments d'export permettant de générer des formats standard de données à destination d'outils tiers. On y retrouve en standard l'export au format Reportive Dataset (compressé, protégé), la génération de fichiers texte avec un vaste choix de paramètres (encodage, séparateur...), ou des insertions dans des bases de données (BulkInsert pour Microsoft SQLServer).
L'architecture ouverte permet par ailleurs la mise en place de tout type d'export ou de calcul métier de manière aisée.

Data Mapping
Le Data Mapping est une fonctionnalité unique permettant d'adapter un composant de calcul à un autre contexte. Tous les éléments déclarent les données requises pour le bon fonctionnement du traitement. Ainsi, un composant qui calculerait le "Top n des meilleurs vendeurs du dernier mois" aura besoin dans le jeu de données des axes suivants : Vendeurs, Date, Chiffre d'affaires et le paramètre "n". Ce composant peut alors être publié et réutilisé pour calculer le "Top 5 des vendeurs du dernier mois", mais aussi le "Top 10 des produits les plus vendus le dernier mois".
Cette fonctionnalité permet une très grande souplesse en autorisant l'adaptation du projet aux nouvelles données. Ainsi, si le précédent jeu de données utilisait l'axe "Pays", et si la nouvelle source de données expose l'axe "Country", un simple mapping de données permettra de corriger tout le projet, vous évitant de devoir éditer et corriger tous les éléments.
Les propriétés sont aussi une fonctionnalité importante de Reportive Studio. Chaque élément peut exposer des propriétés (des constantes) qui peuvent être modifiées d'une instance à l'autre et permettre l'adaptation du fonctionnement au contexte courant.

Les propriétés
L'utilisateur peut ainsi décider de renseigner la constante (une valeur "Top N" à 1000 dans le cas présent), ou alors décider de publier le paramètre sur le "conteneur parent". Ce conteneur est en général un groupe, un objet composite ou le projet. On offre ainsi à l'utilisateur une plus grand souplesse dans le paramétrage du comportement.
Une autre fonctionnalité est la transformation de la propriété pour l'exposer sur un port de propriété de l'élément. On peut alors en calculer dynamiquement la valeur et renseigner l'élément ou l'objet composite avec une information déduite du traitement effectué.
Ce paramétrage peut se faire propriété par propriété et à tous les niveaux (élément, groupe, objet composite).
Le projet contient à son tour des variables de configuration permettant de le paramétrer et d'envisager un comportement différent entre le mode "Design" et le mode "Production" (par exemple changer le nom du serveur de la base de données ou le répertoire de publication).