Développement d'une fonction
Développement d'une fonction
Une fonction est une méthode de traitement. Elle permet de récupérer des informations de YellowBox, depuis le contexte d’appel, et de réaliser un traitement de tout type.
Une fonction peut être explicitement applicable à une fiche YellowBox, auquel cas les paramètres d’entrée seront des informations de la fiche de lancement de l’appel et le ou les paramètres de sortie seront les champs d’informations automatiquement mis à jour à la fin du traitement.
L’intégration dans YellowBox d’une fonction se fait à travers une automatisation de processus ou via l’intégration automatique d’un bouton d’exécution.
Création de la classe principale
Pour créer une fonction, il faut créer une classe qui étend de la classe com.yellowbox.plugin.v3.Function
.
Pour ce faire, il faut cliquer droit sur le projet puis “New” -> “Class”.
Saisir un nom de package, de la même manière que pour le Header. Dans notre cas com.dimosoftware.example.functions
.
Saisir un nom pour la classe, par exemple “ExampleFunction”.
Dans la zone Superclass, cliquer sur le bouton “Browse” et entrer “Function” puis sélectionner la classe com.yellowbox.plugin.v3.Function
, cliquer sur le bouton “OK” puis “Finish”.
Méthode getParams()
La méthode getParams()
permet de définir l’ensemble des paramètres d’entrée et/ou de sortie nécessaires au traitement de la fonction. Elle retourne un objet Params
.
L’objet Params
contient une liste d’objet Param
.
Pour ajouter un Param
dans un Params
, il est possible d’écrire le code suivant :
Params parameters = new Params();
Param param = parameters.addNew(Type.STRING, InOut.IN, "nom du param", VARNAME);
param.setDescription("Description du param" );
param.setMandatory(true);
Les différents attributs d’un objet Param
sont définis ci-dessous :
type
peut prendre les valeurs suivantes :Type.STRING
: il s’agit d’une valeur alphanumérique qui sera récupérée dans ce paramètreType.INT
: il s’agit d’une valeur de type entier qui sera récupérée dans ce paramètreType.FLOAT
: il s’agit d’une valeur de type float qui sera récupérée dans ce paramètreType.BOOLEAN
: il s’agit d’une valeur de type booléen qui sera récupérée dans ce paramètreType.COLOR
: il s’agit d’une valeur de type couleur qui sera récupérée dans ce paramètreType.DATE
: il s’agit d’une valeur de type date qui sera récupérée dans ce paramètreType.PHONENUMBER
: il s’agit d’une valeur de type téléphone qui sera récupérée dans ce paramètreType.LONGTEXT
: il s’agit d’une valeur de type zone de texte qui sera récupérée dans ce paramètreType.IDFIELD
: ce paramètre récupère la référence interne du champ selectionnéType.IDTABLE
: ce paramètre récupère la référence interne de la table selectionnéeType.IDRECHERCHE
: ce paramètre récupère la référence interne de la recherche selectionnéeType.MULTISELECTOR[DEPRECATED]
: ce paramètre récupère la liste des références internes des champs selectionnés (séparés par des virgules). Le type Multiselector ne prend pas en compte l’attributdependsOn
. Ce type de paramètre est déprécié, lui préférer un paramètre de typeIDFIELD
avec l’attributmulti
défini àtrue
.
inOut
: définit s’il s’agit d’un paramètre d’entrée (InOut.IN
) ou de sortie (InOut.OUT
)name
: nom du paramètre tel que présenté lors de l’instanciation du pluginvarName
: nom de variable du paramètre. Utilisé pour récupérer la valeur dans le code de la fonctionmandatory
: permet de définir si le paramètre est obligatoire lors du paramétrage du plugindescription
: la description sera affichée dans la fenêtre de paramétrage du plugin dans YellowBox et est de ce fait destinée aux utilisateursdependsOn
: il est possible d’utiliser la méthodesetDependsOn(String)
sur les paramètres de type Table, Champ ou Recherche avec pour effet de les rendre dépendant du paramètre de type Table fourni. Un paramètre de type Recherche dépendant d’un paramètre Table ne proposera que les recherches liées à cette table. Un paramètre de type Champ dépendant d’une table ne proposera que les champs de cette table. Un paramètre de type Table dépendant d’une table ne proposera que les tables liées à cette table. Un paramètre dépendant d’un champ de type IDFIELD proposera les valeurs issues de la liste de mots-clés dont il dépend, ou les valeurs résultant de la recherche liée dans le cas d’un champ capture, ou la liste des utilisateurs et des groupes dans le cas d’un champ gestionnaire.multi
: il est possible d’utiliser la méthodesetMulti(boolean)
sur les paramètres pour déclarer qu’ils acceptent plusieurs valeurs. Si l’attribut multi est déclaré true pour un paramètre, son sélecteur permettra la sélection de plusieurs valeurs et il sera possible de récupérer ces valeurs sous la forme d’une liste. Cette fonction n’est pas disponible pour les paramètres de type BOOLEAN et LONGTEXT.
Méthode getName()
Il s’agit ici de fournir le nom de la fonction sans espace ni caractères spéciaux qui sera utilisé comme ID de la fonction.
Méthode getTitle()
Il s’agit ici de fournir la traduction de la fonction, telle qu’elle sera présentée lors de la sélection de la fonction, en instanciation du plugin dans YellowBox.
Si la méthode n’est pas implémentée, la méthode getName() sera utilisée à la place.
Méthode getDescription()
Il s’agit de fournir une description à la fonction. Cette description sera visible dans la fiche détaillée d’information du plugin.
Méthode call()
Cette méthode contient l’exécution du traitement correspondant à votre fonction.
Elle retourne un objet ParamValues
à utiliser pour récupérer les valeurs de sortie.
La méthode getParamValues()
permet de récupérer les valeurs contenues dans les paramètres.
La classe ParamValues
contient un ensemble de méthode pour récupérer les valeurs des paramètres en fonction du type. Par exemple, il existe les méthodes getStringValue(String varName)
, getPhoneNumberValue(String varName)
, getIdFieldValue(String varName)
…
Pour récupérer le paramètre précédemment défini, il faut appeler la méthode suivante :
String valeurParam = getParamValues().getStringValue(VARNAME);
Méthode getParamInstanceUI()
Cette méthode permet de définir l’interface de paramétrage du plugin dans YellowBox. Par défaut, si cette méthode n’est pas implémentée, le paramétrage d’une instance du plugin affichera les paramètres les uns en dessous des autres dans l’ordre de définition de la méthode getParams.
Des objets sont disponibles pour implémenter cette méthode. On retrouve les objets associés dans la librairie yellowbox_plugin dans le package com.yellowbox.plugin.v3.ui
.
Librairie d’objets UI
UIRow
: Définition d’une ligne (contexte de grille Bootstrap). Une méthode ‘add’ permet d’insérer des objets dans cette ligne. Le nombre de colonnes disponibles est de 12. La répartition du nombre de colonnes se fait sur le nombre d’objets insérésUICol
: Généré par défaut lors de l’insertion d’un objet dans une Row. Il est possible de la prédéfinir et de lui associer sépcifuquement un nombre de colonneUIPanel
: Permet de décrire un cadre dans lequel insérer des objets.UIHtml
: Objet d’affichage de son contenu, écrit au format HTMLUILink
: Définition d’un lien vers une url. Possibilité de proposer un lien URL ou un appel de méthode javascript (propriété Javascript à définir à true dans ce cas)UIText
: Permet l’écriture d’un texte brutUIParamDefault
: Utilisé pour insérer un paramètre. L’affichage comprendra alors le titre, la description et à droite le paramètreUIParamName
: Utilisé pour insérer le titre d’un paramètre, indépendamment de ce paramètre.UIParamDescription
: Utilisé pour insérer la description d’un paramètre, indépendamment de ce paramètre.UIParamField
: Utilisé pour insérer le paramètre lui-même, indépendamment de son titre et description.
Méthode getParamServlets()
Cette méthode permet d’associer à l’interface de paramétrage du plugin des méthodes exécutées suite à des interactions utilisateur définies via des liens dans la méthode getParamInstanceUI(). Elle recence les classes Java qui étendent de ParamServlet qui implémentent les traitements de chaque interaction.