Scripts GTP
Les scripts GTP permettent de réaliser des calculs sur la base des évènements de la gestion des temps. Les résultats des calculs peuvent ensuite servir à alimenter des pages de dossier ou des variables de salaire.
Plan de calcul
Pour créer un script GTP, il est nécessaire de déclarer un plan de calcul en utilisant la tâche GTP13
.
Lignes de calcul
Une fois le plan de calcul déclaré, une ligne de calcul doit êre ajoutée au plan. L’ajout se fait dans la tâche GTP02
en sélectionnant un plan de calcul et en cliquant sur le bouton Nouveau
.
Scripts
Les scripts sont un ensemble d’opérations de base exécutées sur le serveur. Ces opérations peuvent être de plusieurs types:
- exécution d’une fonction
- exécution d’une opération de base
- affectation de variables
- évaluation d’une condition (if, for, while, …)
V3_log
Number V3_log(...)
Paramètres
Une ou plusieurs chaînes de caractères
Retour
@[success]([“Number”, “1 si l’opération s’est déroulée avec succès”])
Description
Ajoute une ligne de log contenant l’ensemble des paramètres dans la log technique récupérable avec l’AdminClient
.
Cette fonction est notamment utile pour débugger un script par un utilisateur avancé.
V3_getDomain
String V3_getDomain(...)
Paramètres
Aucun
Retour
String: domaine
Description
Retourne le domaine courant.
V3_getEnvVar
String V3_getEnvVar(String variable)
Paramètres
variable: String
, nom de la variable
Retour
String: valeur de la variable
Description
Retourne la valeur de la variable d’environnement variable
.
Si la variable n’existe pas, retourne la chaîne de caractère null.
V3_getAge
Number V3_getAge(Date date [, Date dateRef])
Paramètres
date: Date
, date initiale
dateRef: Date
, date de référence
Retour
Number: nombre d’années
Description
Retourne le nombre d’années de différence entre date
et dateRef
.
Si dateRef
n’est pas spécifié, la date du jour qui est utilisée.
Le format des dates est yyyy-MM-dd
.
Remarque: le nombre renvoyé se base uniquement sur les années.
Exemples
V3_getAge(“2017-31-12”,”2018-01-01”)
V3_getAge(“2017-01-01”,”2018-31-12”)
Dans les deux cas, le résultat est 1
.
V3_query
String V3_query(String select, String from [, Number index])
Paramètres
select: String
, clause SELECT
from: String
, clause WHERE
index: Number
, index de l’enregistrement. Par défaut 1
Retour
String: résultat de la requête
Description
Permet de récupérer des données en fournissant une clause SELECT et FROM au format SAINet, et éventuellement l’index du premier enregistrement (par défaut = 1).
Retourne null si l’index est supérieur au nombre de résultats.
Exemples
V3_query("UNINPA.LIBELL", "FROM $UNINPA WHERE $UNINPA.NORECO_PK = '1018'")
V3_clearGTPRST
Number V3_clearGTPRST(String type, String record)
Paramètres
type: String
, type de ligne
record: String
, type de record
Retour
Number: nombre de lignes supprimées
Description
Supprime toutes les lignes de la tables GTPRST
qui correspondent à type et record.
Retourne le nombre de lignes supprimées.
Exemples
V3_clearGTPRST("EMP", "VBL")
V3_writeGTPRST
Number V3_writeGTPRST(String type, String record, String variable, String valeur [, Boolean remplace])
Paramètres
type: String
, type de ligne
record: String
, type de record
variable: String
, nom de la variable
valeur: String
, valeur de l’entrée
remplace: Boolean
, remplacer l’entrée. Par défaut true
Retour
Number: résultat de l’exécution
Description
Insert une entrée dans la table GTPRST
avec les valeurs spécifiées.
Cette table permet au paramétreur de suivre le déroulement du script.
Si remplace est à true
, la valeur de l’entrée existante est remplacée, sinon une nouvelle entrée est créée.
Retourne 1
en cas de succès, 0
si le mode debug est désactivé.
Exemples
V3_writeGTPRST("EMP", "VBL", "Nb vacances",20)
V3_writeSALVEM
Number V3_writeSALVEM(String noligne, Number heures, Number tauxbase, String libellé [, Date début, Date fin, String employé, String type])
Paramètres
noligne: String
, numéro de la ligne
heures: Number
, nombre d’heures
tauxbase: Number
taux de base
libellé: String
, libellé
début: Date
, date de début de validité. Par défaut null
fin: Date
, date de fin de validité. Par défaut null
employé: String
, numéro d’employé
type: String
, type de calcul. Par défaut 2
Retour
Number: résultat de l’exécution
Description
Écrit dans la table SALVEM
(tâche SAL21
) et retourne 1
.
Par défaut, l’employé est celui récupéré dans la variable d’environnement RECORD
qui correspond à celui sur lequel le script est en train de s’exécuter.
Le type de calcul par défaut correspond à nombre d’heure x taux de base.
V3_writeSALVEM_mon
Number V3_writeSALVEM_mon(String noligne, Number montant, String libellé [, Date début, Date fin, String employé])
Paramètres
noligne: String
, numéro de la ligne
montant: Number
, montant
libellé: String
,libellé
début: Date
, date de début de validité. Par défaut null
fin: Date
, date de fin de validité. Par défaut null
employé: String
, numéro d’employé
Retour
Number: résultat de l’exécution
Description
Écrit un montant dans la table SALVEM
(tâche SAL21
) et retourne 1
.
Par défaut, l’employé est celui récupéré dans la variable d’environnement RECORD
qui correspond à celui sur lequel le script est en train de s’exécuter.
V3_writeSTOFAC
Number V3_writeSTOFAC(String noArt, String noDeb, String libel, Date date, Number quantité [, String noDepa, String noChan, String noBanque])
Paramètres
noart: String
, numéro de l’article (STO02
)
nodeb: String
, nombre d’heures (DEB02
)
variable: String
, taux de base
libel: String
,libellé
date: Date
, date de début de validité
quantité: Number
, quantité
noDepa: String
, numéro de département (DEB06
)
noChan: String
, numéro de chantier (CHA02
)
noBanque: String
, numéro de banque (DEB02
- panel2)
Retour
Number: résultat de l’exécution
Description
Écrit dans la table STOFAC
(tâche STO17
) et retourne 1
.
V3_writeSumTimeWithState
Number V3_writeSumTimeWithState(String employé, Date dateStart, Date dateEnd, String type [, Number dureeEvenementSource, String typeDureeEvenement, Number dureePause, String typeDureePause])
Paramètres
employé: String
, identifiant de l’employé
dateStart: Date
, date de début
dateEnd: Date
, date de fin
type: String
, type d’évènement
dureeEvenementSource: Number
, durée à partir de laquelle la pause s’applique sur l’évènement
typeDureeEvenement: String
, unité dans laquelle la durée de l’évènement est exprimée
dureePause: Number
, durée de la pause
typeDureePause: String
, unité dans laquelle la durée de la pause est exprimée
Retour
Number: nombre d’heures
Description
Retourne le nombre d’heures des évènements du type sélectionné entre la date de début et la date de fin. Le type d’évènement peut être "1"
pour les présences ou "2"
pour les absences.
Si les paramètres optionnels sont renseignés, une durée de pause sera décomptée à tous les évènements dont la durée est supérieure à dureeEvenementSource
.
Les valeurs possibles pour les types de durées sont HOUR
et MINUTE
.
Exemples
V3_writeSumTimeWithState("VBL", "2018-01-06 00:00:00", "2018-01-07 00:00:00", 1, 4, "HOURS", 30, "MINUTES")
retournera le nombre d’heures de présence le 06/01/2018 en soustrayant 30 minutes aux évènements de plus de 4 heures.
Ainsi, si la journée contenait un évènement de 8 heures, le résultat sera 7,5 heures.
Si la journée contenait deux évènements de 4 heures, le résultat sera 8 heures.
V3_round
Number V3_round(Number valeur [, String type, Number decimales])
Paramètres
valeur: Number
, valeur à arrondir
type: String
, type d’arrondi. Par défaut HALF_UP
decimales: Number
, nombre de décimales
Retour
Number: résultat de l’arrondi
Description
Arrondi la valeur en paramètre. Le type d’arrondi peut être UP
(supérieur) ou DOWN
(inférieur). Par defaut, l’arrondi se fait à la valeur la plus proche.
V3_distinctValues
Number V3_distinctValues(String type, String id, String target)
Paramètres
type: String
, type de ressource
id: String
, identifiant
target: String
, objets à récupérer
Retour
String[]: Liste des valeurs
Description
Retourne la liste des valeurs disctinctes d’un certain type.
Exemples
V3 distinctValues("CLI", "dossier1", "DEP")
Retourne la listes des départements du client “dossier1”.
V3_calcTime
Number V3_calcTime(String type, String id, String condition, String debut, String fin, String resolution [Boolean evenementsDansIntervalle, Number dureeEvenementSource, String typeDureeEvenement, Number dureePause, String typeDureePause])
Paramètres
type: String
, type de ressource
id: String
, identifiant de la ressource
condition: String
, condition sur les évènements
debut: String
, date de début
fin: String
, date de fin
resolution: String
, unités de mesure de la durée des évènements
evenementsDansIntervalle: Boolean
, indique si les évènements doivent être récupérés dans l’intervalle de la fonction (true) ou dans les limites du formulaire de calcul (false)
dureeEvenementSource: Number
, durée à partir de laquelle la pause s’applique sur l’évènement
typeDureeEvenement: String
, unité dans laquelle la durée de l’évènement est exprimée
dureePause: Number
, durée de la pause
typeDureePause: String
, unité dans laquelle la durée de la pause est exprimée
Retour
Number: durée en nombre d’unités des évènements
Description
Retourne la durée cumulée de tous les évènements portant sur la ressource demandée.
Si les paramètres optionnels sont renseignés, une durée de pause sera décomptée à tous les évènements dont la durée est supérieure à dureeEvenementSource
.
Il est possible de précharger les événements pris en compte avec V3_loadEventsForCalcTime
Type de ressource: le type de ressource peut être CLI (ADR02
), EMP (SAL04
), COL (ADR03
), STR (ADR08
), LOC (ADR09
), CHA (CHA03
), USR (SYS02
), DEP (GTP16
), FUN.
Condition: La condition cond peut contenir un ou plusieurs prédicats, séparés par des points-virgules ou opérateurs booléean (&
/&&
ou |
/||
).
Ces prédicats doivent tous êtres positifs afin que l’événement soit considéré (les ; correspondent à des AND).
Par exemple, pour ne considérer que les événements de type P.SITE, le prédicat suivant peut être utilisé: FULLTYPE=P.SITE
.
Pour ne considérer que les absences qui ”annulent” des présences, il suffit de remplacer le =
par -
, ce qui donne: TYPE-2
.
Généralement, il est souhaitable de ne compter que les temps d’un type d’événement (A.MALADIE
) qui recouvrent une présence. Dans ce cas, les prédicats peuvent être combinés pour donner la condition suivante:
FULLTYPE=A.MALADIE && TYPE-2
.
Il est possible d’être plus général en comptant toutes les absences qui annulent des présences (TYPE=1 && TYPE-2
) ou d’être plus précis en spécifiant l’annulation d’un type d’événement précis (FULLTYPE=A.MALADIE && FULLTYPE-P.SITE
).
précis (FULLTYPE=A.MALADIE && FULLTYPE-P.SITE
). Les prédicats peuvent être parenthésés: (FULLTYPE=P.PRESENCE || FULLTYPE=P.FORMATION) && TYPE-1
.
Il est également possible d’utiliser les propriétés suivantes:
FULLTYPE
: id de l’événement (GTP18).TYPE
: type d’événement (1=absence, 2=présence).DEP
: nom du département (GTP16).STR
: structure (ADR08).LOC
: place (ADR09).FUN
: fonction.
Résolution: les résolutions possible pour les durées sont DAY
, HALFDAY
,HOUR
,MINUTE
. A noter que HALFDAY
peut être suivi par une heure pour définir l’heure de de découpe de la journée : HALFDAY12:30
. Le format est HALFDAYhh:mm
.
Type de durée: Les valeurs possibles pour les types de durées sont HOUR
et MINUTE
.
evenementsDansIntervalle: Par défaut, seuls les évènements situés entre la date de début et la date de fin de la tâche GTP24 sont pris en compte. Si l’argument a la valeur true
, alors tous les évènments entre debut et fin sont pris en compte. La valeur par défaut est false
.
Exemples
V3_writeSumTimeWithState("EMP", "VBL", "FULLTYPE=P.THEORIQUE", "2018-01-06 00:00:00", "2018-01-07 00:00:00", "MINUTES", 4, "HOURS", 30, "MINUTES")
retournera le nombre de minutes de présence théorique le 06/01/2018 en soustrayant 30 minutes aux évènements de plus de 4 heures.
Ainsi, si la journée contenait un évènement de 8 heures, le résultat sera 450 minutes (7.5 heures).
Si la journée contenait deux évènements de 4 heures, le résultat sera 480 minutes (8 heures).
V3_calcAllTimes
Number V3_calcAllTimes(String type, String id, String target, String condition, String debut, String fin, String resolution [, Number dureeEvenementSource, String typeDureeEvenement, Number dureePause, String typeDureePause])
Paramètres
type: String
, type de ressource
id: String
, identifiant de la ressource
target: String
, ressource à prendre en compte
condition: String
, condition sur les évènements
debut: String
, date de début
fin: String
, date de fin
resolution: String
, unités de mesure de la durée des évènements
dureeEvenementSource: Number
, durée à partir de laquelle la pause s’applique sur l’évènement
typeDureeEvenement: String
, unité dans laquelle la durée de l’évènement est exprimée
dureePause: Number
, durée de la pause
typeDureePause: String
, unité dans laquelle la durée de la pause est exprimée
Retour
Number: durée en nombre d’unités des évènements
Description
Retourne la durée cumulée de tous les évènements portant sur la ressource demandée.
Si les paramètres optionnels sont renseignés, une durée de pause sera décomptée à tous les évènements dont la durée est supérieure à dureeEvenementSource
.
Type de ressource: le type de ressource peut être CLI (ADR02
), EMP (SAL04
), COL (ADR03
), STR (ADR08
), LOC (ADR09
), CHA (CHA03
), USR (SYS02
), DEP (GTP16
), FUN.
Condition: La condition cond peut contenir un ou plusieurs prédicats, séparés par des points-virgules.
Ces prédicats doivent tous êtres positifs afin que l’événement soit considéré (les ; correspondent à des AND).
Par exemple, pour ne considérer que les événements de type P.SITE, le prédicat suivant peut être utilisé: FULLTYPE=P.SITE
.
Pour ne considérer que les absences ”annulent” des présences, il suffit de remplacer le =
par -
, ce qui donne: TYPE-2
.
Généralement, il est souhaitable de ne compter que les temps d’un type d’événement (A.MALADIE
) qui recouvrent une présence. Dans ce cas, les prédicats peuvent être combinés pour donner la condition suivante:
FULLTYPE=A.MALADIE;TYPE-2
.
Il est possible d’être plus général en comptant toutes les absences qui annulent des présences (TYPE=1;TYPE-2
) ou d’être plus précis en spécifiant l’annulation d’un type d’événement précis (FULLTYPE=A.MALADIE;FULLTYPE-P.SITE
).
précis (FULLTYPE=A.MALADIE;FULLTYPE-P.SITE
).
Dans cond, il est possible d’utiliser les propriétés suivantes:
FULLTYPE
: id de l’événement (GTP18).TYPE
: type d’événement (1=absence, 2=présence).DEP
: nom du département (GTP16).STR
: structure (ADR08).LOC
: place (ADR09).FUN
: fonction.
Résolution: les résolutions possible pour les durées sont DAY
, HALFDAY
,HOUR
,MINUTES
. A noter que HALFDAY
peut être suivi par une heure pour définir l’heure de de découpe de la journée : HALFDAY12:30
. Le format est HALFDAYhh:mm
.
Type de durée: Les valeurs possibles pour les types de durées sont HOUR
et MINUTE
.
Exemple
V3 calcAllTimes("DEP", "dep1", "COL", "FULLTYPE=P.SITE", start, end, "HOUR")
calcule la somme des heures de tous les collaborateurs du département dep1.
V3_writeSumTimeWithState("DEP", "dep1", "COL", "FULLTYPE=P.THEORIQUE", "2018-01-06 00:00:00", "2018-01-07 00:00:00", "HOURS", 4, "HOURS", 30, "MINUTES")
retournera le nombre d’heures de présence théorique des collaborateur du département dep1 le 06/01/2018 en soustrayant 30 minutes aux évènements de plus de 4 heures.
Ainsi, les évènement de 8 heures sont décomptés 7.5 heures
V3_readDossierField
String V3_readDossierField(String table, String dossier, String page, String field[, Date date, Number occurrence])
Paramètres
table: String
, table du dossier
dossier: String
, identifiant du dossier
page: String
, nom de la page contenant le champ
field: String
, identifiant du champ (Field ID)
date: Date
, date à laquelle la page doit être active
occurrence: Number
, numéro d’occurrence de la page
Retour
String: valeur du champ dans la page
Description
Retourne la valeur d’un champ dans une page.
Si la page peut avoir plusieurs occurrences, la date
permet de définir à quelle date la page doit être active. Par défaut, c’est la date du jour qui est sélectionnée.
Si plusieurs pages peuvent être actives en même temps, alors c’est la page avec l’occurrence occurrence
qui est sélectionnée. Par défaut il s’agit de la page avec l’occurrence 1
.
Exemple
V3_readDossierField("SALEMP", "VBL", "STRUCTURE", "TAUXACTIVITE", "2018-01-01")
retourne la valeur du champ TAUXACTIVITE
de la première page STRUCTURE
active au 2018-01-01
du dossier employé VBL
.
V3_countActivePages
Number V3_countActivePages(String table, String dossier, String page [, Date date])
Paramètres
table: String
, table du dossier
dossier: String
, identifiant du dossier
page: String
, nom de la page contenant le champ
date: String
, date à laquelle la page doit être active
Retour
Number: nombre de pages actives à la date donnée
Description
Retourne le nombre de pages active d’un dossier à une date donnée. Par défaut la date est la date du jour.
Exemple
V3_countActivePages("SALEMP", "VBL", "STRUCTURE")
retourne le nombre de pages STRUCTURE
actives à la date du jour pour le dossier employé VBL
.
V3_readPageValue
String V3_readPageValue(String uuid, String field[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: valeur du champ dans la page
Description
Retourne la valeur d’un champ de la page de dossier SALEMP
ayant l’uuid spécifié.
V3_readColPageValue
String V3_readColPageValue(String uuid, String field[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: valeur du champ dans la page
Description
Retourne la valeur d’un champ de la page de dossier ADRCOL
ayant l’uuid spécifié.
V3_readDptPageValue
String V3_readDptPageValue(String uuid, String field[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: valeur du champ dans la page
Description
Retourne la valeur d’un champ de la page de dossier ADRDPT
ayant l’uuid spécifié.
V3_writePageValue
Number V3_writePageValue(String uuid, String field, String value[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
value: String
, valeur du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: 1
si l’écriture s’est effectuée avec succès
Description
Écrit la valeur d’un champ de la page de dossier SALEMP
ayant l’uuid spécifié.
V3_writeColPageValue
Number V3_writeColPageValue(String uuid, String field, String value[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
value: String
, valeur du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: 1
si l’écriture s’est effectuée avec succès
Description
Écrit la valeur d’un champ de la page de dossier ADRCOL
ayant l’uuid spécifié.
V3_writeDptPageValue
Number V3_writeDptPageValue(String uuid, String field, String value[, String page])
Paramètres
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
value: String
, valeur du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: 1
si l’écriture s’est effectuée avec succès
Description
Écrit la valeur d’un champ de la page de dossier ADRDPT
ayant l’uuid spécifié.
V3_lookupPageUUID
String V3_lookupPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la première page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page active du dossier SALEMP
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
V3_lookupColPageUUID
String V3_lookupColPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la première page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page active du dossier ADRCOL
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
V3_lookupDptPageUUID
String V3_lookupDptPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la première page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page active du dossier ADRDPT
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
V3_lookupPrevPageUUID
String V3_lookupPrevPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page actuelle est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la page précédant la page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page précédant la page active du dossier SALEMP
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
Exemple
Si le dossier VBL
contient 2 pages GTP_CALCULE
:
- Page 1: UUID=123456, début=‘2017-12-01’, fin=‘2017-12-31’
- Page 2: UUID=987654, début=‘2018-01-01’, fin=‘2018-01-31’ alors
V3_lookupPrevPageUUID("VBL", "2018-01-01")
retournera 123456
V3_lookupColPrevPageUUID
String V3_lookupColPrevPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page actuelle est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la page précédant la page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page précédant la page active du dossier ADRCOL
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
Exemple
Si le dossier VBL
contient 2 pages GTP_CALCULE
:
- Page 1: UUID=123456, début=‘2017-12-01’, fin=‘2017-12-31’
- Page 2: UUID=987654, début=‘2018-01-01’, fin=‘2018-01-31’ alors
V3_lookupPrevPageUUID("VBL", "2018-01-01")
retournera 123456
V3_lookupDptPrevPageUUID
String V3_lookupDptPrevPageUUID(String id, Date date [, String page])
Paramètres
id: String
, identifiant du dossier
date: Date
, date à laquelle la page actuelle est active
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
String: UUID de la page précédant la page active à la date demandée
Description
Retourne l’identifiant unique (UUID
) de la page précédant la page active du dossier ADRDPT
à la date demandée.
Si plusieurs pages sont actives à la date demandée, seul l’UUID de la première page sera retourné.
Si la page n’a pas d’UUID
défini, c’est la valeur N
qui est retournée.
Exemple
Si le dossier VBL
contient 2 pages GTP_CALCULE
:
- Page 1: UUID=123456, début=‘2017-12-01’, fin=‘2017-12-31’
- Page 2: UUID=987654, début=‘2018-01-01’, fin=‘2018-01-31’ alors
V3_lookupPrevPageUUID("VBL", "2018-01-01")
retournera 123456
V3_lookupPageSpan
Number V3_lookupPageSpan(String uuid[, String page])
Paramètres
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: nombre de jours pendant lesquels la page est active
Description
Retourne le nombre de jours pendant lesquels la page sélectionnée du dossier SALEMP
est active. Le calcul s’effectue sur la base des champs FM_PAGE_START_DATE
et FM_PAGE_END_DATE
. Si ces champs ne sont pas définis, une erreur est envoyée.
V3_lookupColPageSpan
Number V3_lookupColPageSpan(String uuid[, String page])
Paramètres
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: nombre de jours pendant lesquels la page est active
Description
Retourne le nombre de jours pendant lesquels la page sélectionnée du dossier ADRCOL
est active. Le calcul s’effectue sur la base des champs FM_PAGE_START_DATE
et FM_PAGE_END_DATE
. Si ces champs ne sont pas définis, une erreur est envoyée.
V3_lookupDptPageSpan
Number V3_lookupDptPageSpan(String uuid[, String page])
Paramètres
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Retour
Number: nombre de jours pendant lesquels la page est active
Description
Retourne le nombre de jours pendant lesquels la page sélectionnée du dossier ADRDPT
est active. Le calcul s’effectue sur la base des champs FM_PAGE_START_DATE
et FM_PAGE_END_DATE
. Si ces champs ne sont pas définis, une erreur est envoyée.
V3_modDate
Date V3_modDate(Date date, String unité, Number shift)
Paramètres
date: Date
, date à modifier
unité: String
, type d’unité à ajouter
shift: Number
, valeur à ajouter
Retour
Date: date modifiée
Description
Retourne la date modifié en ajoutant un nombre donné d’unités à la date donnée.
Les unités peuvent être DAY
, WEEK
, MONTH
ou YEAR
.
La valeur du shift peut être positive ou négative.
Exemples
V3_modDate("2018-01-01", "DAY", 1)
ajout un jour à la date du 2018-01-01
et retourn 2018-01-02
V3_modDate("2018-01-01", "MONTH", -1)
retire un mois à la date du 2018-01-01
et retourn 2017-12-31
V3_isHoliday
Number V3_isHoliday(Date date [, String type])
Paramètres
date: Date
, date à vérifier
type: String
, type de jour férié
Retour
Number: 1
si le jour est férié, 0
sinon
Description
Indique si la date correspond à un jour férié du type donné (``). Si aucun type n’est mentionné, la fonction indique si la date correspond à un jour férié de n’importe quel type.
V3_countHoliday
Number V3_countHoliday(Date dateDebut, Date dateFin [, String type])
Paramètres
dateDebut: Date
, date de début
dateFin: Date
, date de fin
type: String
, type de jour fériés
Retour
Number: nombre de jours fériés entre les deux dates
Description
Retourne le nombre de jours fériés du type donné entre les deux dates (GTP03
). Si aucun type n’est mentionné, retourne le nombre de jours fériés de n’importe quel type entre les deux dates.
V3_countWorkday
Number V3_countWorkday(Date dateDebut, Date dateFin)
Paramètres
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Retour
Number: nombre de jours travaillés entre les deux dates
Description
Retourne le nombre de jours travaillés entre les deux dates. Un jour est considéré comme travaillé s’il ne s’agit pas d’un samedi, d’un dimanche ou d’un jour férié.
V3_prorata
Number V3_prorata(Date dateDebut, Date dateFin [, Date periodeDebut, Date periodeFin])
Paramètres
dateDebut: Date
, date de début
dateFin: Date
, date de fin
periodeFin: Date
, date de début de la période
dateFin: Date
, date de fin de la période
Retour
Number: prorata de la période
Description
Calcule le proprata de la période par rapport aux dates dateDebut
et dateFin
. Si les dates de la période ne sont pas définies, la fonction retourne 1
.
V3_getMonth
Number V3_getMonth(Date date)
Paramètres
date: Date
, date de référence
Retour
Number: numéro du mois
Description
Retourne le numéro du mois de la date de référence. Les numéros de mois sont compris entre 1 et 12.
V3_getYear
Number V3_getYear(Date date)
Paramètres
date: Date
, date de référence
Retour
Number: année
Description
Retourne l’année de la date de référence.
V3_getStartOfMonth
Date V3_getStartOfMonth(Date date)
Paramètres
date: Date
, date de référence
Retour
Date: date au début du mois
Description
Retourne la date au début du mois de la date de référence.
Exemples
V3_getStartOfMonth("2018-01-15")
retourne 2018-01-01
V3_getEndOfMonth
Date V3_getEndOfMonth(Date date)
Paramètres
date: Date
, date de référence
Retour
Date: date à la fin du mois
Description
Retourne la date à la fin du mois de la date de référence.
Exemples
V3_getEndOfMonth("2018-01-15")
retourne 2018-01-31
V3_getDayOfWeek
Number V3_getDayOfWeek(Date date)
Paramètres
date: Date
, date de référence
Retour
Number: date de la semaine
Description
Retourne le numéro du jour de la semaine compris entre 1
(dimanche) et 7
(samedi)
V3_setGTPCUM
Number V3_setGTPCUM(String id, Date date, String ligne, String plan, String record, String srcTrig, String stateChantier, String setStateclient, String stateCol, String stateEmp, String stateLoc, String stateLoc, String type, String typCum, String val, String varName)
Paramètres
id: String
date: Date
ligne: String
plan: String
record: String
srcTrig: String
stateChantier: String
setStateclient: String
stateCol: String
stateEmp: String
stateLoc: String
statestr: String
type: String
typCum: String
val: String
varName: String
Retour
Number: 1
si l’écriture s’est faite avec succès
Description
Permet d’écrire dans la table GTPCUM
V3_deleteGTPCUM
Number V3_deleteGTPCUM(Date date, String record)
Paramètres
date: Date
record: String
Retour
Number: 1
si la suppression s’est faite avec succès
Description
Supprime une entrée dans la table GTPCUM
ayant les valeurs passées en paramètre
V3_isChangingStructure
Boolean V3_isChangingStructure(String employe, Date dateDebut, Date dateFin)
Paramètres
employe: String
, identifiant de l’employé
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Retour
Boolean: true
si le poste de l’employé change pendant entre la date de début et la date de fin
Description
Permet de savoir si un employé change de poste entre la date de début et la date de fin
V3_isNewEmployee
Boolean V3_isNewEmployee(String employé, Date dateDebut, Date dateFin)
Paramètres
employé: String
, identifiant de l’employé
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Retour
Boolean: true
si l’employé n’avait pas de poste avant le début de la période
Description
Permet de savoir si l’employé a obtenu un poste pour première fois au cours de la période donnée.
V3_countAnnualVacations
Number V3_countAnnualVacations(String employé, Date date [, Number precision, String typeArrondi, Boolean appliquerTaux])
Paramètres
employé: String
, identifiant de l’employé
date: Date
, date de référence
precision: Number
, précision du résultat. Par défaut 0.5
typeArrondi: String
, type d’arrondi. Par défaut HALF_UP
appliquerTaux: Boolean
appliquer le taux d’activité sur le nombre de jours de vacances. Par défaut true
Retour
Number: nombre de jours de vacances auquel l’employé a droit sur l’année
Description
Permet de connaître le nombre de jours de vacances auquel l’employé a le droit pour l’année de la date passée en paramètre. le calcul prend en compte tous les postes occupés pendant l’année.
Si appliquerTaux vaut true
, le calcul prend en compte les taux d’occupation.
Précision: La précision permet d’arrondir le résultat à un jour ou a 0.5 jour.
Type d’arrondi: Les types d’arrondi sont
UP
: à la valeur supérieureDOWN
: à la valeur inférieureCEILING
: à la valeur absolue supérieure (0.5 devient 1, -0.5 devient -1)FLOOR
: à la valeur absolue inférieure (0.5 devient 0, -0.5 devient 0)HALF_UP
: au plus proche avec arrondi supérieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 1)HALF_DOWN
: au plus proche avec arrondi inférieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 0)
Exemples
Si l’employé VBL
occupe les postes suivants :
- Poste 1 : début=
01-01-2018
, fin=31-05-2018
, taux=80%
, droit=20 jours/ans
- Poste 2 : début=
01-06-2018
, fin=31-12-2018
, taux=100%
, droit=23 jours/ans
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 19.5
Si l’employé VBL
occupe le poste suivant :
- Poste 1 : début=
01-01-2018
, fin=31-12-2018
, taux=80%
, droit=25 jours/ans
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 20
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP", false)
retournera 25
V3_getElapsedTime
Number V3_getElapsedTime(Date dateDebut, Date dateFin , String type [, Boolean inclureDateFin, String dateFormat])
Paramètres
dateDebut: Date
, date de début
dateFin: Date
, date de fin
type: String
, type de données
inclureDateFin: Boolean
, inclure la date de fin dans le calcul. Par défaut false
dateFormat: String
Format des dates utilisées. Par défaut yyyy-MM-dd
Retour
Number: nombre de type de données entre la date de début et la date de fin
Description
Permet de connaître le nombre de jours, mois ou années entre deux dates. Le booléen inclureDateFin
permet d’indiquer si la date de fin doit être comptabilisées ou non
type: Les types de données possibles sont
DAYS
: nombre de joursMONTHS
: nombre de moisYEARS
: nombre d’années
Exemples
V3_getElapsedTime("2018-01-01", "2018-01-31", "DAYS")
retournera 30
V3_getElapsedTime("2018-01-01 00:00:00", "2018-01-31 00:00:00", "DAYS", "true", "yyyy-MM-dd HH:mm:ss")
retournera 31
V3_ejbqlQuery
String V3_ejbqlQuery(String requete, Number index)
Paramètres
requete: String
, requête ejbql à exécuter
index: Number
, index
Retour
String: élément à l’index index
du résultat de la requête
Description
Permet d’exécuter une requête ejbql et de renvoyer un seul élément situé à l’index index
.
Si la requête le contient pas de résultats, une chaine vide est retournée.
Si la requête contient plusieurs colonnes, les colonnes sont séparées par des @
.
Il est fortement recommandé d’utiliser la fonction V3_ejbqlCountQuery avant afin de connaitre le nombre de résultats de la requête.
Exemples
V3_ejbqlQuery("SELECT e.eventstart, e.eventend FROM Gtpevt e WHERE e.eventstart < '2018-01-02 00:00:00' AND e.eventend > '2018-01-01 00:00:00' ORDER BY e.eventstart ASC", 1)
retournera la date de début et de fin du premier évènement actif le 01/01/2018, par exemple 2018-01-01 07:30@2018-01-01 09:30
V3_ejbqlCountQuery
Number V3_ejbqlCountQuery(String requete)
Paramètres
requete: String
, requête ejbql de type count
à exécuter
Retour
Number: résultat de la requête.
Description
Permet d’exécuter une requête ejbql de type count
et de renvoyer le résultat.
Il est fortement recommandé d’utiliser cette fonction avant l’appel à la fonction V3_ejbqlQuery.
Exemples
V3_ejbqlCountQuery("SELECT count(e.eventstart) FROM Gtpevt e WHERE e.eventstart < '2018-01-02 00:00:00' AND e.eventend > '2018-01-01 00:00:00' ORDER BY e.eventstart ASC")
retournera le nombre d’évènements actifs le 01/01/2018, par exemple 5
V3_split
Number V3_split(String input, String separateur, Number index)
Paramètres
input: String
, chaine de caractère devant être découpée.
separateur: String
, chaine de caractère servant de séparateur.
index: Number
, index de l’élément à retourner (à partir de 0).
Retour
String: élément à l’index index
après le découpage de la chaine d’entrée
Description
Permet de découper une chaine de caractères et de retourner l’élément à l’index index
Exemples
V3_split("2018-01-01 00:00:00@2018-06-01 00:00:00@80","@",0)
retournera 2018-01-01 00:00:00
V3_getDayOfMonth
Number V3_getDayOfMonth(Date date)
Paramètres
date: Date
, date de référence
Retour
Number: jour du mois
Description
Retourne le jour du mois de la date de référence.
V3_compareDates
Number V3_compareDates(Date date1, Date date2)
Paramètres
date1: Date
, première date
date2: Date
, seconde date
Retour
Number: différence entres les dates
Description
Retourne 0 si les dates sont égales, -1 si la date1 est avant la date2, 1 si la date1 est après la date2
V3_countAnnualVacationsMonthly
Number V3_countAnnualVacationsMonthly(String employé, Date date [, Number precision, String typeArrondi, Boolean appliquerTaux])
Paramètres
employé: String
, identifiant de l’employé
date: Date
, date de référence
precision: Number
, précision du résultat. Par défaut 0.5
typeArrondi: String
, type d’arrondi. Par défaut HALF_UP
appliquerTaux: Boolean
appliquer le taux d’activité sur le nombre de jours de vacances. Par défaut true
Retour
Number: nombre de jours de vacances auquel l’employé a droit sur l’année
Description
Permet de connaître le nombre de jours de vacances auquel l’employé a le droit pour l’année de la date passée en paramètre. le calcul prend en compte tous les postes occupés pendant l’année.
Dans ce mode de calcul, chaque mois travaillé donne droit à la même quantité de vacances, quelque soit le nombre de jours ouverts dans le mois.
Si appliquerTaux vaut true
, le calcul prend en compte les taux d’occupation.
Précision: La précision permet d’arrondir le résultat à un jour ou a 0.5 jour.
Type d’arrondi: Les types d’arrondi sont
UP
: à la valeur supérieureDOWN
: à la valeur inférieureCEILING
: à la valeur absolue supérieure (0.5 devient 1, -0.5 devient -1)FLOOR
: à la valeur absolue inférieure (0.5 devient 0, -0.5 devient 0)HALF_UP
: au plus proche avec arrondi supérieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 1)HALF_DOWN
: au plus proche avec arrondi inférieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 0)
Exemples
Si l’employé VBL
occupe les postes suivants :
- Poste 1 : début=
01-01-2018
, fin=31-05-2018
, taux=80%
, droit=20 jours/ans
- Poste 2 : début=
01-06-2018
, fin=31-12-2018
, taux=100%
, droit=23 jours/ans
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 20.00
Si l’employé VBL
occupe le poste suivant :
- Poste 1 : début=
01-01-2018
, fin=31-12-2018
, taux=80%
, droit=25 jours/ans
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 20
V3_countAnnualVacations("VBL", "2018-01-06", 0.5, "HALF_UP", false)
retournera 25
V3_loadEventsForCalcTime
Number V3_loadEventsForCalcTime(String type, String id,String debut, String fin, [Boolean evenementsDansIntervalle, String filtre])
Paramètres
type: String
, type de ressource
id: String
, identifiant de la ressource
debut: String
, date de début
fin: String
, date de fin
evenementsDansIntervalle: Boolean
, indique si les évènements doivent être récupérés dans l’intervalle de la fonction (true) ou dans les limites du formulaire de calcul (false)
filtre: String
, condition sur les événements à récupérer
Retour
Number: nombre d’événements chargés.
Description
Précharger les événements qui seront utilisés par la fonction v3_calcTime.
Cette fonction permet notamment de filtrer les événements qui doivent être pris en compte pour le calcul des temps.
Type de ressource: le type de ressource peut être CLI (ADR02
), EMP (SAL04
), COL (ADR03
), STR (ADR08
), LOC (ADR09
), CHA (CHA03
), USR (SYS02
), DEP (GTP16
), FUN.
evenementsDansIntervalle: Par défaut, seuls les évènements situés entre la date de début et la date de fin de la tâche GTP24 sont pris en compte. Si l’argument a la valeur true
, alors tous les évènments entre debut et fin sont pris en compte. La valeur par défaut est false
.
Filtre: La condition cond peut contenir un ou plusieurs prédicats, séparés par des points-virgules (voir v3_calcTime).
Exemples
V3_loadEventsForCalcTime("CLI", "19-000005", "2018-01-06 00:00:00", "2018-01-07 00:00:00", true, "FULLTYPE=P.PRESTATION.REPAS || TYPE=1")
chargera tous les événements entre le 06.01.2018 et le 07.01.2018 qui sont des P.PRESTATION.REPAS
ou de type absence. Les autres événements seront ignorés.
V3_setResultVar
Void V3_setResultVar(String key, Object value)
Paramètres
key: String
, identifiant de la clé
value: Object
, valeur de la clé
Description
Permet de stocker des variables dans le contexte du plan de ligne. Ces variables sont ensuite
accessibles par les autres lignes du plan via la fonction V3_getResultVar
.
V3_getResultVar
Object V3_getResultVar(String key)
Paramètres
key: String
, identifiant de la clé
Retour
Object: Valeur de la clé ou ‘null’ si la clé n’existe pas.
Description
Permet de récupérer une variable dans le contexte du plan de ligne enregistrée
par la fonction V3_setResultVar
.
V3_getAverageAnnuelOccupation
Number V3_getAverageAnnuelOccupation(String employé, Date date [, Number precision, String typeArrondi])
Paramètres
employé: String
, identifiant de l’employé
date: Date
, date de référence
precision: Number
, précision du résultat. Par défaut 0.5
typeArrondi: String
, type d’arrondi. Par défaut HALF_UP
Retour
Number: taux d’activité moyen de l’employé pendant l’année
Description
Permet de connaître le taux d’activité moyen de l’employé pour l’année de la date passée en paramètre. Le calcul prend en compte tous les postes occupés pendant l’année.
Précision: La précision permet d’arrondir le résultat à un jour ou a 0.5 jour.
Type d’arrondi: Les types d’arrondi sont
UP
: à la valeur supérieureDOWN
: à la valeur inférieureCEILING
: à la valeur absolue supérieure (0.5 devient 1, -0.5 devient -1)FLOOR
: à la valeur absolue inférieure (0.5 devient 0, -0.5 devient 0)HALF_UP
: au plus proche avec arrondi supérieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 1)HALF_DOWN
: au plus proche avec arrondi inférieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 0)
Exemples
Si l’employé VBL
occupe les postes suivants :
- Poste 1 : début=
01-01-2018
, fin=31-05-2018
, taux=80%
, droit=25 jours/ans
- Poste 2 : début=
01-06-2018
, fin=31-12-2018
, taux=100%
, droit=25 jours/ans
V3_getAverageAnnuelOccupation("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 90
V3_getAnnualPresence
Number V3_getAnnualPresence(String employé, Date date [, Number precision, String typeArrondi])
Paramètres
employé: String
, identifiant de l’employé
date: Date
, date de référence
precision: Number
, précision du résultat. Par défaut 0.5
typeArrondi: String
, type d’arrondi. Par défaut HALF_UP
Retour
Number: taux de présence de l’employé sur l’année
Description
Permet de connaître le taux de présence de l’employé pour l’année de la date passée en paramètre. Le calcul prend en compte tous les postes occupés pendant l’année avec un pourcentage d’activité supérieur à 0.
Précision: La précision permet d’arrondir le résultat
Type d’arrondi: Les types d’arrondi sont
UP
: à la valeur supérieureDOWN
: à la valeur inférieureCEILING
: à la valeur absolue supérieure (0.5 devient 1, -0.5 devient -1)FLOOR
: à la valeur absolue inférieure (0.5 devient 0, -0.5 devient 0)HALF_UP
: au plus proche avec arrondi supérieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 1)HALF_DOWN
: au plus proche avec arrondi inférieur en cas d’équidistance (0.1 devient 0, 0.6 devient 1, 0.5 devient 0)
Exemples
Si l’employé VBL
occupe les postes suivants :
- Poste 1 : début=
01-01-2018
, fin=31-05-2018
, taux=80%
, droit=25 jours/ans
- Poste 2 : début=
01-06-2018
, fin=31-06-2018
, taux=100%
, droit=25 jours/ans
V3_getAnnualPresence("VBL", "2018-01-06", 0.5, "HALF_UP")
retournera 0.5