Ce champ permet de définir le nom d'un traitement complémentaire qui permet de compléter la logique applicative liée aux différents appels de web services utilisés par les widget netvibes.
Si ce traitement existe, on y trouvera des actions correspondant exactement aux sous-programmes présents dans le traitement généré à la validation du paramétrage (le traitement WMNETXXXX, XXXX étant le code du paramétrage. Ces sous-programmes sont décrits dans l'annexe technique de la documentation principale de la fonction, et sont appelés en fin de l'exécution du traitement standard. S'il n'y a rien à ajouter, il suffit de laisser le traitement vide; sinon, on pourra rajouter le code permettant de compléter les informations retournées.
Ce champ contient une formule de calcul permettant de filtrer les lignes renvoyées par la liste : seules les lignes de détail pour lesquelles l'expression logique définie par la formule est vérifiée sont renvoyées par la widget liste.
Ce champ permet de définir le nom d'un traitement complémentaire spécifique qui permet de compléter la logique applicative liée aux différents appels de web services utilisés par les widget netvibes.
Si ce traitement existe, on y trouvera des actions correspondant exactement aux sous-programmes présents dans le traitement généré à la validation du paramétrage (le traitement WMNETXXXX, XXXX étant le code du paramétrage. Ces sous-programmes sont décrits dans l'annexe technique de la documentation principale de la fonction, et sont appelés en fin de l'exécution du traitement standard. S'il n'y a rien à ajouter, il suffit de laisser le traitement vide; sinon, on pourra rajouter le code permettant de compléter les informations retournées.
Dans tout widget liste, il est possible d'afficher en dernière colonne un indicateur coloré (par exemple un feu vert ou rouge). Un exemple du rendu est donné ici sur une widget (en anglais) liée aux articles, où l'indicateur est réputé indiquer le niveau de stocks (satisfaisant=vert, alerte=orange, rupture=rouge)
Ceci se fait en saisissant dans ce champ une formule dont le résultat doit être le nom d'une couleur en HTML, intégrant des champs en ligne dans le contexte. Par exemple, si on désire disposer d'un indicateur vert si A=1, bleu si A=2, rouge si A=3, jaune si A=4, il suffit d'écrire une formule du genre :
string$(A=1,"green")+string$(A=2,"blue")+string$(A=3,"red")+string$(A=4,"yellow")
Les noms des couleurs officiellement reconnus par la norme HTML sont les suivants :
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow
Mais il en existe d'autres reconnus par la plupart des navigateurs HTML (pink, gold, tomato, plum, violet, darkgray pour ne prendre que quelques exemples). Enfin, il est toujours possible de décrire une couleur par son code hexadécimal, par exemple #FA8072 (qui correspond à salmon).
Tableau Champs liste
| Cette colonne indique la table d'où est extraite l'information. Ce peut être soit la table principale de l'objet, soit une des tables du modèle de données. S'il s'agit d'une variable fournie par le traitement complémentaire et cofidiée FLD_N, la table est vide. |
|
| On saisit ici le code des champs qui seront présentés dans la widget liste des tables. L'ensemble des champs des tables déclarées en ligne (via l'objet, ou le modèle de données) peut être sélectionné ici. Si un traitement spécifique est associé au paramétrage, ce traitement peut renvoyer des champs calculés qui ne correspondent pas à des champs de la table; le nom de ces champs doit alors commencer par FLD_, et l'abréviation indiquée dans le tableau est alors L. |
| Lorsque le champ choisi dans la table ou le modèle est un champ avec plusieurs valeurs (champ dimensionné), on indique ici la valeur de l'indice correspondant (qui commence à 1). Par défaut, pour un champ non dimensionné, la valeur est égale à 1 et n'est pas modifiable. |
| Cet intitulé permet de donner un titre aux colonnes de la widget liste. Par défaut, l'intitulé trouvé dans le dictionnaire (pour l'objet ou le modèle de donné) est repris, et ce dans toutes les langues disponibles dans le dictionnaire. Cet intitulé long est utilisé en titre dans les écrans et les états. Cet intitulé est traduisible et est enregistré dans la langue de connexion de l’utilisateur. Si l’on souhaite traduire cet intitulé dans une autre langue, on peut accéder en clic droit à partir de cette zone à la fonction de traduction correspondante. |
| Ce champ affiché définit le type du champ présent dans le tableau. |
| Ce champ indique simplement la longueur maximale du champ tel qu'il sera saisi ou affiché. Issu du dictionnaire des tables, il n'est pas modifiable. |
Tableau Critères
| Cette colonne indique la table d'où est extraite l'information. Ce peut être soit la table principale de l'objet, soit une des tables du modèle de données. S'il s'agit d'une variable fournie par le traitement complémentaire et cofidiée FLD_N, la table est vide. |
| Cette abréviation, affichée, correspond à l'abréviation de la table de laquelle le critère est extrait. |
| On saisit ici le code des champs qui seront utilisés comme critères dans la widget liste et dont la valeur pourra donc être saisie en tête d'un onglet additionel présentant des données filtrées. L'ensemble des champs des tables déclarées en ligne (via l'objet, ou le modèle de données) peut être sélectionné ici. |
| Lorsque le champ choisi dans la table ou le modèle est un champ avec plusieurs valeurs (champ dimensionné), on indique ici la valeur de l'indice correspondant (qui commence à 1). Par défaut, pour un champ non dimensionné, la valeur est égale à 1 et n'est pas modifiable. |
| Cet intitulé permet de donner un titre aux intitulés des champs critères présents dans la widget liste lorsqu'on ajoute un onglet avec une sélection particulière Par défaut, l'intitulé trouvé dans le dictionnaire (pour l'objet ou le modèle de donné) est repris, et ce dans toutes les langues disponibles dans le dictionnaire. Cet intitulé long est utilisé en titre dans les écrans et les états. Cet intitulé est traduisible et est enregistré dans la langue de connexion de l’utilisateur. Si l’on souhaite traduire cet intitulé dans une autre langue, on peut accéder en clic droit à partir de cette zone à la fonction de traduction correspondante. |
| Ce champ affiché définit le type du champ critère présent dans le tableau. |
| Ce champ indique simplement la longueur maximale du champ tel qu'il sera saisi ou affiché. Issu du dictionnaire des tables, il n'est pas modifiable. |
Tableau Champs Détail
| Cette colonne indique la table d'où est extraite l'information. Ce peut être soit la table principale de l'objet, soit une des tables du modèle de données. S'il s'agit d'une variable fournie par le traitement complémentaire et cofidiée FLD_N, la table est vide. |
| Cette abréviation désigne la table en ligne d'où est extrait le champ présent dans le détail de la fiche. |
| On saisit ici le code des champs qui seront présentés dans la widget détail des tables. L'ensemble des champs des tables déclarées en ligne (via l'objet, ou le modèle de données) peut être sélectionné ici. Si un traitement spécifique est associé au paramétrage, ce traitement peut renvoyer des champs calculés qui ne correspondent pas à des champs de la table; le nom de ces champs doit alors commencer par FLD_, et l'abréviation indiquée dans le tableau est alors L. |
| Lorsque le champ choisi dans la table ou le modèle est un champ avec plusieurs valeurs (champ dimensionné), on indique ici la valeur de l'indice correspondant (qui commence à 1). Par défaut, pour un champ non dimensionné, la valeur est égale à 1 et n'est pas modifiable. |
| Cet intitulé permet de donner un titre aux rubriques de la widget détail. Par défaut, l'intitulé trouvé dans le dictionnaire (pour l'objet ou le modèle de donné) est repris, et ce dans toutes les langues disponibles dans le dictionnaire. Cet intitulé long est utilisé en titre dans les écrans et les états. Cet intitulé est traduisible et est enregistré dans la langue de connexion de l’utilisateur. Si l’on souhaite traduire cet intitulé dans une autre langue, on peut accéder en clic droit à partir de cette zone à la fonction de traduction correspondante. |
| Ce champ affiché définit le type du champ présent dans le tableau. |
| Ce champ indique simplement la longueur maximale du champ tel qu'il sera saisi ou affiché. Issu du dictionnaire des tables, il n'est pas modifiable. |
Les tables suivantes sont mises en oeuvre par la fonction :
Table | Intitulé Table |
---|---|
AMENLOC [AML] | Entête messages |
ANETVIBE [ANT] | Paramétrage netvibes |
AOBJET [AOB] | |
ATABIND [ATI] | Dictionnaire des index |
ATABLE [ATB] | |
ATABZON [ATZ] | Dictionnaire des champs |
ATEXTE [ATX] | Messages du dictionnaire |
ATEXTRA [AXX] | Textes à traduire |
ATYPE [ATY] |
La validation de ce paramétrage crée et valide un traitement contenant 5 sous-programmes normalisés. Ces sous-programmes normalisés sont appelés chacun par un web service qui est également créé et publié lors de la validation.
Ces sous-programmes renseignent les variables qu'ils doivent retourner conformément à la définition qui a été faite, mais, s'il est nécessaire de compléter ou de modifier les informations reçues, il est possible de le faire via un traitement standard et un traitement spécifique.
Le traitement spécifique et le traitement détail, s'il existent, sont appelés dans cet ordre, via une étiquette $ACTION. Dans ce sous-programme, la variable ACTION contient un code définissant le web service appelé. La variable GPE est testée en retour du traitement spécifique (si elle vaut 0, le traitement détail s'exécute, sinon la main est rendue directement).
Les sous-programmes créées pour répondre aux web services sont les suivants :
Ce sous-programme, qui correspond au web service D_XXXLIS (XXX étant le code du paramétrage), décrit les informations présente sur la widget Liste afin de permettre à Netvibes de la configurer. Ce sous-programme est généré sous la forme suivante :
# Sous-programme de description du web service de liste
# Ce sous-programme renvoie des informations générales (intitulé pour la widget), et deux tableaux :
# - le tableau des champs renvoyés lors de la liste
# - le tableau des critères
Subprog DESC_LISTE(CODE_OBJ, TITRE_OBJ, NB_CHP, CODE_CHP, INTIT_CHP, TYPE_CHP, LEN_CHP,
& NB_CRIT, CODE_CRIT, INTIT_CRIT, TYPE_CRIT, LEN_CRIT)
Value Char CODE_OBJ()
Variable Char TITRE_OBJ(), CODE_CHP()(1..), INTIT_CHP()(1..)
Variable Integer TYPE_CHP(1..), TYPE_CRIT(1..)
Variable Char CODE_CRIT()(1..), INTIT_CRIT()(1..)
Variable Integer NB_CHP, NB_CRIT
Variable Decimal LEN_CHP(1..), LEN_CRIT(1..)
# Ici, on retrouve la partie du code générée en fonction du paramétrage
...
# Appel du point d'entrée (code simplifié ici car en réalité on vérifie que le traitement existe avant)
GPE = 0
ACTION = "DESC_LEC" : Gosub ACTION From =TRTSPE
If !GPE
ACTION = "DESC_LEC" : Gosub ACTION From =TRTDET
Endif
End
Ce sous-programme, qui correspond au web service N_XXXLIS (XXX étant le code du paramétrage), permet de lire les informations pour remplir la widget liste. Le sous-programme est le suivant :
# Sous-programme de liste
# Le nombre d'arguments (CHP1, CHP2, ... CHPn) et leur type dépend de la description de la liste
# Pour chaque critère (CR1_REC à CR3_REC), l'opérateur OP1_REC à OP3_REC
# peut prendre les valeurs suivantes : '<','<=','>','>=','=','<>', 'LIKE'
# si au moins un caractère % ou * est trouvé, l'opérateur est forcé à 'LIKE'
# NB_LIG donne le nombre de lignes demandées en entrée, et renvoie le nombre de lignes lues
Subprog LISTE(CODE_OBJ, CR1_REC, CR2_REC, CR3_REC, OP1_REC, OP2_REC, OP3_REC, MOD_LEC,
& NB_LIG, CHP1, CHP2)
Value Char COD_OBJ(), OP1_REC(), OP2_REC(), OP3_REC(), CR1_REC(), CR2_REC(), CR3_REC()
Value Char MODE_LEC()
Variable Integer NB_LIG
# Ici, on retrouve la partie du code générée en fonction du paramétrage
...
# Appel du point d'entrée (code simplifié ici car en réalité on vérifie que le traitement existe avant)
GPE = 0
ACTION = "LISTE" : Gosub ACTION From =TRTSPE
If !GPE
ACTION = "LISTE" : Gosub ACTION From =TRTDET
Endif
End
Ce sous-programme, qui correspond au web service D_XXXLEC (XXX étant le code du paramétrage), décrit les informations présente sur la widget Détail afin de permettre à Netvibes de la configurer. Ce sous-programme est le suivant :
# Sous-programme de description du web service de lecture
# On renvoie un tableau contenant la liste des champs et leur description
Subprog DESC_LEC(CODE_OBJ, NB_CHP, CODE_CHP, INTIT_CHP, TYPE_CHP, LEN_CHP)
Value Char CODE_OBJ()
Variable Char CODE_CHP()(1..), INTIT_CHP()(1..)
Variable Integer TYPE_CHP(1..)
Variable Integer NB_CHP
Variable Decimal LEN_CHP(1..)
# Ici, on retrouve la partie du code générée en fonction du paramétrage
...
# Appel du point d'entrée (code simplifié ici car en réalité on vérifie que le traitement existe avant)
GPE = 0
ACTION = "DESC_LEC" : Gosub ACTION From =TRTSPE
If !GPE
ACTION = "DESC_LEC" : Gosub ACTION From =TRTDET
Endif
End
Ce sous-programme, qui correspond au web service N_XXXLEC (XXX étant le code du paramétrage), permet de lire les informations pour remplir la widget liste. Le sous-programme est le suivant :
# Sous-programme de lecture détail
Subprog LECTURE(COD_OBJ, CLE_LEC, CHAMPS_LUS,BLOB_LUS)
Value Char CODE_OBJ()
Value Char CLE_REC()
Variable Char CHAMPS_LUS()(1..)
# Un seul paramètre de type blob est autorisé, il est transmis dans la dernière variable du traitement
Variable Blbfile BLOB_LUS()
# Ici, on retrouve la partie du code générée en fonction du paramétrage
...
# Appel du point d'entrée (code simplifié ici car en réalité on vérifie que le traitement existe avant)
GPE = 0
ACTION = "LECTURE" : Gosub ACTION From =TRTSPE
If !GPE
ACTION = "LECTURE" : Gosub ACTION From =TRTDET
Endif
End
# Ci dessous, un exemple de code inclus dans le traitement détail pour transférer une image depuis
# Sage ERP X3 (table article)
If !clalev([F:CBB]) : Local File CBLOB [CBB] : Endif
If !clalev([F:ITM]) : Local File ITMMASTER [ITM] : Endif
Read [F:ITM]ITM0=CLE_LEC
If fstat=0
Read [CBB]CBB0="ITM";[F:ITM]ITMREF;""
If fstat=0
BLOB_LUS=[F:CBB]BLOB
Endif
Endif
Return
Ce sous-programme, qui correspond au web service R_XXXLEC (XXX étant le code du paramétrage), permet de rafraîchir les lignes présentes dans l'onglet des favoris de la widget liste. Le sous-programme est le suivant :
# Sous-programme de rafraîchissement favoris
# Le nombre et le type des champs (CHP1, CHP2... CHP6) dépend de la description du widget liste
# Le nombre de lignes est celui de la liste des favoris stockée par Netvibes
# Ce nombre peut être renvoyé inférieur à la valeur d'origine, par exemple si certaines clés n'existent plus
# On retassera alors le tableau des favoris
Subprog RAFRAICHIR(NB_LIG, CHP1, CHP2, CHP3, CHP4, CHP5, CHP6)
Variable Integer NB_LIG
Variable Char CHP1()(1..)
Variable Char CHP2()(1..)
Variable Char CHP3()(1..)
Variable Decimal CHP4(1..)
Variable Decimal CHP5(1..)
Variable Char CHP6()(1..)
# Ici, on retrouve la partie du code générée en fonction du paramétrage
...
# Appel du point d'entrée (code simplifié ici car en réalité on vérifie que le traitement existe avant)
GPE = 0
ACTION = "RAFRAICHIR" : Gosub ACTION From =TRTSPE
If !GPE
ACTION = "RAFRAICHIR" : Gosub ACTION From =TRTDET
Endif
EndEnd