Données dynamiques globales

Bien souvent dans les dashboards, on souhaite personnaliser les titres des tuiles 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

Prenons 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.

Prenons 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. On obtient donc dans ce cas

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 lorsqu’on clique sur une ligne et qu’on veut faire une notification custom. On a alors accès aux autres valeurs des colonnes pour cette clé.

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 dans ce cas on connait les valeurs des clés pour le mapping

On sait à l’avancer que l’on a accès à

${MORNING}[COUNT], ${AFTERNOON}[COUNT] et ${DAY}[COUNT]


Variables des filtres dans les notifications

Prenons l’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>
...

Lorsqu’on clique sur la tuile, l’action peut dans les notifications accéder aux variables venant des filtres appliqués

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”