Les informations qui suivent permettent de voir les différences de fonctionnement entre les widgets divalto infinty et les widgets divalto one
Rappel : les widgets divalto Infinity
Les widgets permettent de donner une information rapide et visuelle à l’utilisateur.
Dans Divalto infinity, les widgets comportent trois familles
les widgets métier (liste, tableau, feu, jauge,camemberts, graphiques,…) pour afficher des données provenant de l’ERP Divalto
les widgets de fournisseurs externes (météo, flux RSS,…)
les widgets liés à une fonctionnalité (module CRM tâches/agenda et recherche Power search)
Retrouvez toutes les informations concernant ces widgets en suivant ce lien Principe de fonctionnement des widgets
L’expérience divalto one offre toujours les widgets métier, et vient compléter l'étendue avec de nombreux nouveaux widget. De plus, les widgets Divalto infinity étaient limités à un usage dans l’interface d’accueil uniquement, alors que la nouvelle expérience divalto one permet également l’usage dans les entités pour disposer par exemple de widget par client, article, fournisseur, etc…
Les widgets de fournisseurs externes ou liés à une fonctionnalité ne sont pas disponibles actuellement.
Information technique : les widgets présents sous Divalto infinity dans le zoom des widgets (table MWIDGET) sont disponibles en expérience one, et les nouveaux widgets divalto one sont fournis sous forme de fichiers (fichiers JSON de description).
Les widgets en expérience one
Avec l’expérience divalto one, une nouvelle notion est introduite : les dashboard ou tableaux de bord. Retrouvez les informations en suivant ce lien Tableaux de bord et widgets.
Un dashboard est un ensemble de widgets, groupés sous un même nom qui apparaîtra sous forme d'élément cliquable, permettant à l’utilisateur de le sélectionner.
Exemple ici : Mon dashboard des articles
Dashboard IA
Les dashboard ou tableau de bord “Interface d’accueil” sont les dashboard disponibles dans l’interface d’accueil de l’expérience one
Ces dashboard “IA” peuvent recevoir des widgets one et tous les widgets métier existant sous Divalto infinity
Les widgets disponibles dans le zoom des widget (expérience classique MWIDGET) sont uniquement disponibles pour les dashboard IA, comme précédemment en expérience classique
Dashboard entités
Les dashboard ou tableau de bord “Entités” sont les dashboard disponibles dans les zooms des entités en expérience one, comme par exemple une fiche client, une fiche article, …
Ces dashboard entités peuvent recevoir des widgets one qui ont été conçus pour l’entité uniquement. A cette fin il existe la notion de catalogue afin de donner à l’utilisateur une liste de widgets pour son entité
Le fichiers JSON catalogue et widget
Voici quelques informations techniques concernant l’organisation des données qui permettent d’utiliser les widgets.
Les widgets entité sont nécessairement liés à un module diva et à une fonction diva qui retourne les valeurs attendues
Niveau widget entité
Chaque widget entité est décrit via 2 fichier JSON
DATASOURCE
Nommage : codeModule + '_' + famille + typeWidget + nomWidget + “.datasource.json”
par exemple gt_art_graph_TopFournisseurs.datasource.json
indique le module et la fonction diva à appeler, et les colonnes nécessaires au rendu
Exemple de contenu
{ "Type": "infinityGraphSource", "Mapping": { "AbscissLabelField": "abscissLabel", "AbscissValueField": "abscissValue" }, "Module": "gttmdashboard001.dhop", "Function": "art_graph_TopFournisseurs" }
WIDGET
Nommage : codeModule + '_' + famille + typeWidget + codeWidget + “.widget.json”
par exemple gt_art_graph_TopFournisseurs.widget.json
indique le type de rendu/layout de layout, et les informations d’affichage comme le titre, les libellés, la taille. Sert au binding entre le retour de la fonction diva et le rendu visuel
Exemple de contenu
{ "Children": { "graphTest": { "Type": "graph", "Title": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "DataSource": "gt_art_graph_AffairesBesoin_Arbo", "Series": [ { "Label": "EvtCrm", "ValueField": "PieValue", "GraphType": "donut" } ] } }, "Label": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "Icon": "chart-line", "Description": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "ColSpan": 6, "RowSpan": 2 }
Niveau catalogue
Un catalogue de widgets est fichier JSON qui liste les widgets disponibles pour chaque entité.
Nommage : codeModule + '_' + famille + codeCatalogue + “.catalog.json”
par exemple gt_art_vente.catalog.json
liste les widgets entités, pour chaque entité
Exemple de contenu
{ "Label": "Vente", "WidgetNames": [ "gt_art_list_PceVentes", "gt_art_list_tarif_vente", "gt_art_graph_TopClients" ] }
Autre exemple gt_art_prod.catalog.json
{ "Label": "Production", "WidgetNames": [ "gt_art_metric_OF", ] }
NOTES BEL
les widget infinity (donc ceux du mode classique via l’IA) sont disponibles dans one, mais UNIQUEMENT pour placement dans la zone d’accueil one
inversement, seuls les widgets infinity sont disponibles pour la zone d’accueil
les widgets d’entité (nouveaux pour one) sont disponibles, mais UNIQUEMENT pour placement dans un dashboard d’une entité, et propres à l’entité
inversement, seuls les widgets d’entité sont disponibles pour la zone d’entité
Principe:
fichier JSON “catalogue”, par exemple gt_art_vente.catalog.json, liste les widgets entité, pour chaque entité
gt_art_vente.catalog.json { "Label": "Vente", "WidgetNames": [ "gt_art_list_PceVentes", "gt_art_list_tarif_vente", "gt_art_graph_TopClients" ] } gt_art_prod.catalog.json { "Label": "Production", "WidgetNames": [ "gt_art_metric_OF", ] }
2 fichiers JSON par widget entité
par exemple gt_art_graph_TopFournisseurs.datasource.json, indique le module+fonction diva à appeler, et les colonnes nécessaires au rendu
{ "Type": "infinityGraphSource", "Mapping": { "AbscissLabelField": "abscissLabel", "AbscissValueField": "abscissValue" }, "Module": "gttmdashboard001.dhop", "Function": "art_graph_TopFournisseurs" }
?? quels sont les types pour le champ TYPE
par exemple gt_art_graph_TopFournisseurs.widget.json, indique le TYPE de rendu/layout, les informations d’affichage comme titre, librllé, taille ; fait le b
{ "Children": { "graphTest": { "Type": "graph", "Title": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "DataSource": "gt_art_graph_AffairesBesoin_Arbo", "Series": [ { "Label": "EvtCrm", "ValueField": "PieValue", "GraphType": "donut" } ] } }, "Label": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "Icon": "chart-line", "Description": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "ColSpan": 6, "RowSpan": 2 }
fichier JSON “dashboard” qui indique quels sont les catalogues de widgets disponibles pour une entité, et quels sont ceux du dash par défaut
les fichier HOME_xxx.catalog.json sont les dashboard pour l’IA ajoutés pour l’IA one_
Pour accéder aux JSON : installer MS visual code (gratuit) et un composant Divalto qui permet de naviguer dans les fichiers JSON du serveur après connexion au projet
Ensuite modifier le JSON qui fait le lien entre une entité et le catalogue (ici gt_art.catalog.json) pour ajouter un catalogue ‘spé’, puis s’inspirer du catalogue existant
En surcharge de zoom:
il faut créer un fichier nommé “nom du masque” + ‘u' + “.dashboard.json” en faisant une COPIE du fichier “sans le u” (car pas de fusion automatique). Dès que le fichier ‘u’ est trouvé il remplace le 'non u’
il faut nécessairement avoir un masque écran 'u' dans le projet client pour compiler un objet “nom du masque” + u + .dhof pour déclencher la recherche du fichier JSON (même si aucune modification faite dans le zoom)
ajouter dedans ?? une ligne pour faire un has u