Le SmartObject Composite

Avec une appellation pour le moins explicite vous l’aurez compris nous allons parler d’associations de plusieurs sources de données entre elles dans cet article . Même s’il nous est fréquent de vous sortir des billets sur les nouveautés K2 Five, je me suis dit que cette semaine vous aurez le droit à des explications concernant le SmartObject Composite qu’on peut qualifier de fonctionnalité “fossile” sur la plateforme K2 (Arrivé avec K2 blackpearl, en 2007), mais tout du moins très utile.

Explication

Afin de résumer l’intérêt et l’utilité de ce principe je vous invite à parcourir le schéma ci-dessous :

Schéma de la composition du SmO Composite

Comme vous le voyez ci-dessus, l’idée est de mettre en place un SmO dont les propriétés proviennent de source de données différentes, de façon à abstraire la complexité de récupération de ces informations pour le concepteur.

Nous avons donc à gauche les 2 sources de données qui composeront notre SmO, pour cela je récupère dans chacune les propriétés souhaitées, sans oublier de récupérer la propriété me permettant de faire la jointure pour faire le lien entre les deux tables dans la partie méthode. Dans le cas présent LoginName (SQL Service Object) et Name (AAD Service Object).

Théorie

Pour commencer je souhaite énumérer quelques points théoriques fondamentaux liés à cet article :

  • Joindre ses données selon différentes sources
  • Les sources utilisées peuvent être jointent selon une ou plusieurs propriété(s)
  • Lors de la création, mapper les propriétés des différentes méthodes de service object dans le SmO

Je reviendrai sur ces points durant la pratique…

Pratique

1/ Pour commencer, veillez à disposer de deux sources de données (au minimum) x et y, que celles-si soient accessibles via K2 (haha ). Créez un nouveau SmartObject de type "Advanced SmartObject" vous voilà ensuite dans la partie “Properties & Methods”. Image ci-dessous.

Création du SmartObject

2/ Il vous faut ensuite choisir la première source de données dans le serviceObject Explorer ainsi que sa méthode, pour l’article j’ai créé une source de données Commandes et une autre, qui sera une liste SharePoint Client.

  • Je sélectionne ma table Commande dans le browser, sa méthode et je fais un glisser-déposer dans la fenêtre de configuration du SmO. Image ci-dessous.
Configuration de la méthode
Ajout de la première source de données ainsi que sa méthode

3/ La fenêtre qui s’ouvre vous permet de configurer les différents paramètres de la méthode que vous souhaitez ajouter, les propriétés de base suffisent à la création d’un SmO composite classique. Vous pouvez si vous le souhaitez dans l’onglet Details :

  • Changer le nom de la méthode
  • Ajouter une description
  • Son type (Create, Delete, Read…)
  • La possibilité de configurer une liste méthode par défaut via le check box “Default list method” (uniquement avec le type de méthode “List” )
  • La manière dont la méthode va récolter les données via “Transaction” (Continue, Rollback, Stop)
  • Vous pouvez aussi ajouter des paramètres à votre méthode

Cliquez ensuite sur le bouton Next

Configuration de la méthode
Propriétés basique de la méthode

4/ Onglet “Inputs & Outputs”, dans cette partie de la configuration il vous est demandé de soit créer, ou assigner les propriétés de votre source mère dont vous avez besoin en sortie. Pour ma part un "Create All" suffit amplement à cette seconde étape. Image ci-dessous.

Cliquez ensuite sur le bouton Next

Configuration de la méthode
Mapping des données en sortie

5/ Il est maintenant temps d’ajouter votre seconde source de données (troisième, quatrième…) et de créer les liaisons entre les tables. Votre première table apparaît en tête de liste avec le nom de méthode définit, il vous ne reste plus qu’à :

  • Cliquez sur le bouton Add, un nouveau pop up apparaît, cliquez sur les pointillés à droite de la flèche rouge. Répétez l’étape 2 pour votre seconde (troisième, quatrième…) source de données.
Browser de source de données
Ajout de ma liste SharePoint “Client”
  • Cette fois-ci, vous allez répéter l’étape 4, ou presque. Le principe est le même, il vous est demandé de créer ou assigner les valeurs de cette seconde source dans votre source mère. Dans l’idée où nous cherchons à associer des valeurs de deux sources de données différentes dans cet article, il vous est “obligatoire” de créer les valeurs en sortie. Pour cela :
    • Sélectionnez une ligne dans les “Return property name” puis cliquez sur Assign, il vous est ensuite demandé l’endroit où mapper cette valeur.
    • Dans le cas de notre article, il est inutile de chercher la valeur associée dans le SmO source, il vous suffit donc de cliquer sur Create et le tour est joué ! Répétez l’action pour toutes les valeurs de votre seconde source que vous souhaitez voir apparaître dans le SmO Composite. Série d’images ci-dessous.
Mapping des valeurs Y dans le SmO Composite
Création des différentes valeurs dans le SmO Composite
Voici les 2 tables configurées dans votre SmO Composite

6/ Nous voilà arrivés à la dernière étape de ce cas pratique, l’onglet "Service Method Link" qui va nous permettre de réaliser la jointure entre nos deux tables ! Le principe étant de choisir laquelle des deux méthodes réalisées sera la méthode 1, et la méthode 2, puis choisir le type de jointure souhaité. Après cela, dans la liste des valeurs de votre source principale il vous faut joindre sa clé primaire à la clé primaire de votre seconde source.

Pour cela :

  • Commencez par cliquer sur Add,  déterminez laquelle de vos deux méthodes sera la méthode 1, idem pour la méthode 2, le type de jointure souhaité
  • Sélectionnez la valeur correspondant à votre clé primaire, assignez la à la clé primaire de la seconde table. Image ci-dessous.

 

Jointure des 2 clés primaires (Source x to source y)

7/ Cliquez sur OK puis finish et il ne vous reste plus qu’à vérifier le contenu de ce SmO. Image ci-dessous.

Liste de mon SmartObject Composite

Voilà tout, nous en avons finis pour cet article, il fût rapide et assez simple j’espère que vous en aurez apprécié la lecture.

C’est tout pour ce billet, on se retrouve plus tard pour présenter d’autres fonctionnalités.

Enjoy 

Vincenzo

Consultant Junior Pre-Sales at K2 Linkedin: Vincenzo Denis

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.