Données dynamiques globales
Bien souvent dans les dashboards, les titres des tuiles sont personnalisés avec
des données dynamiques. Chaque dashboard effectue un appel à
la tâche UNI16 à chaque ouverture afin de récupérer une grille de donnée.
La grille de donnée est définie dans le paramétrage de chaque dashboard par
l’attribut gridId
.
<dashboard id="RESPONSABLE_SECTEUR" label="Responsables secteurs" width="24" gridId="CRM_FETCH_CHILDREN_STATES">
...
</dashboard>
Par défaut cette propriété est définie à UNI16_N1
. La tâche UNI16 est une
tâche de saisie simple ce qui permet de définir des valeurs par défaut par société
facilement. L’override du getGridData permet de retourner dynamique des valeurs
en fonction du contexte utilisateur.
La grille de retour est traitée de deux façon
Traitement de base de la grille de retour du UNI16
La grille de retour de UNI16 est traitée de deux façon
Voici un exemple de grille envoyée au serveur :
<GridView ID="MSP_INFOS" Label="informations sur les MSP">
<Column ID="KEY" DataFieldID="ADRDOS.ID_PK" Width="10" />
<Column ID="LABEL" DataFieldID="ADRDOS.DLABEL" Width="Auto" />
</GridView>
Un retour possible de cette grille est :
<GridView ID="MSP_INFOS" Label="informations sur les MSP">
<Column ID="KEY" DataFieldID="ADRDOS.ID_PK" Width="10" />
<Column ID="LABEL" DataFieldID="ADRDOS.DLABEL" Width="Auto" />
25[C]John Smith[L]EX[C]Anne Onyme
</GridView>
Le système va faire un mapping entre la première colonne visible et la deuxième colonne visible.
25 -> John Smith
EX -> Anne Onyme
Ces mappings sont transformées en variables disponible dans les contextes sous la forme habituelle
${25}
et ${EX}
Traitement de la grille de retour du SYS26
Un autre traitement est appliqué aux grilles plus complexes.
Voici un exemple de grille envoyée au serveur :
<GridView ID="MSP_INFOS" Label="informations sur les MSP">
<Column ID="KEY" DataFieldID="ADRDOS.ID_PK" Width="Auto" />
<Column ID="LABEL" DataFieldID="ADRDOS.DLABEL" Width="Auto" />
<Column ID="BIRTH" DataFieldID="ADRDOS.BIRTHDAY" Width="Auto" />
</GridView>
Un retour possible de cette grille est :
<GridView ID="MSP_INFOS" Label="informations sur les MSP">
<Column ID="KEY" DataFieldID="ADRDOS.ID_PK" Width="Auto" />
<Column ID="LABEL" DataFieldID="ADRDOS.DLABEL" Width="Auto" />
<Column ID="BIRTH" DataFieldID="ADRDOS.BIRTHDAY" Width="Auto" />
25[C]John Smith[C]17/03/1990[L]36[C]Anne Onyme[C]25/06/1982
</GridView>
Le système va faire un mapping entre la clé de la grille et les données. Dans ce cas, le résultat obtenu est le suivant:
25 -> { KEY : "25", "LABEL" : "John Smith", "BIRTH": "17/03/1990" }
36 -> { KEY : "36", "LABEL" : "Anne Onyme", "BIRTH": "25/06/1982" }
Ces mappings sont transformées en variables disponible dans les contextes sous la forme
${<KeyId>}[<ColumnId>]
Par exemple, lors du clique sur une ligne et qu’une notification spéciale doit être faite, les autres valeurs des colonnes pour cette clé peuvent être accédées.
Autre exemple, la grille suivante :
<GridView ID="SECTEUR_STATUS" Label="informations sur le secteur">
<Column ID="PERIOD" DataFieldID="CRM_PERIOD"/>
<Column ID="COUNT" DataFieldID="PERIOD_COUNT"/>
</GridView>
retourne la grille donnant le mapping suivant
MORNING -> { PERIOD : "MORNING", "COUNT" : "10" }
AFTERNOON -> { PERIOD : "AFTERNOON", "COUNT" : "12" }
DAY -> { PERIOD : "DAY", "COUNT" : "13" }
Ces informations pourront facilement être affichées dans des tuiles dynamiquement car les valeurs des clés pour le mapping sont connues:
${MORNING}[COUNT]
, ${AFTERNOON}[COUNT]
et ${DAY}[COUNT]
Variables des filtres dans les notifications
Voici un exemple d’une tuile de filtre A qui filtre une autre tuile B. La configuration de la tuile B est par exemple la suivante :
...
<config>
...
<filteredBy>
<tileid>ASSURE_FILTER</tileid>
<filterValue><![CDATA[GTPEVT.STATEDOS : $ADRDOS.ID_PK]]></filterValue>
<visibleOnFilter>VisibleOnSingleValue</visibleOnFilter>
</filteredBy>
...
</config>
...
Lors du clique sur la tuile, l’action peut accéder aux variables venant des filtres appliqués (dans la notification)
Ainsi, il est possible de définir une action comme suit :
...
<action type="Notification">
<notification>SOME_ID</notification>
<notificationSource>Remote</notificationSource>
<notificationTask>ADR02</notificationTask>
<notificationArguments>keys=${ASSURE_FILTER.ADRDOS.ID_PK},labels=${ASSURE_FILTER.ADRDOS.DLABEL}</notificationArguments>
</action>
...
La variable ${ASSURE_FILTER.ADRDOS.ID_PK}
vaudra par exemple “”, “R720” ou “R720 OR R42”