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.
Pour créer un script GTP, il est nécessaire de déclarer un plan de calcul en utilisant la tâche GTP13
.
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
.
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(...)
Une ou plusieurs chaînes de caractères
@[success]([“Number”, “1 si l’opération s’est déroulée avec succès”])
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(...)
Aucun
String: domaine
Retourne le domaine courant.
V3_getEnvVar
String V3_getEnvVar(String variable)
variable: String
, nom de la variable
String: valeur de la variable
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])
date: Date
, date initiale
dateRef: Date
, date de référence
Number: nombre d’années
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.
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])
select: String
, clause SELECT
from: String
, clause WHERE
index: Number
, index de l’enregistrement. Par défaut 1
String: résultat de la requête
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.
V3_query("UNINPA.LIBELL", "FROM $UNINPA WHERE $UNINPA.NORECO_PK = '1018'")
V3_clearGTPRST
Number V3_clearGTPRST(String type, String record)
type: String
, type de ligne
record: String
, type de record
Number: nombre de lignes supprimées
Supprime toutes les lignes de la tables GTPRST
qui correspondent à type et record.
Retourne le nombre de lignes supprimées.
V3_clearGTPRST("EMP", "VBL")
V3_writeGTPRST
Number V3_writeGTPRST(String type, String record, String variable, String valeur [, Boolean remplace])
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
Number: résultat de l’exécution
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é.
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])
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
Number: résultat de l’exécution
É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é])
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é
Number: résultat de l’exécution
É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])
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)
Number: résultat de l’exécution
É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])
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
Number: nombre d’heures
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
.
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])
valeur: Number
, valeur à arrondir
type: String
, type d’arrondi. Par défaut HALF_UP
decimales: Number
, nombre de décimales
Number: résultat de l’arrondi
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)
type: String
, type de ressource
id: String
, identifiant
target: String
, objets à récupérer
String[]: Liste des valeurs
Retourne la liste des valeurs disctinctes d’un certain type.
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])
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
Number: durée en nombre d’unités des évènements
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
.
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])
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
Number: durée en nombre d’unités des évènements
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
.
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])
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
String: valeur du champ dans la page
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
.
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])
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
Number: nombre de pages actives à la date donnée
Retourne le nombre de pages active d’un dossier à une date donnée. Par défaut la date est la date du jour.
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])
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
String: valeur du champ dans la page
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])
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
String: valeur du champ dans la page
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])
uuid: String
, identifiant unique de la page
field: String
, identifiant du champ
page: String
, nom de la page. Par défaut GTP_CALCULE
String: valeur du champ dans la page
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])
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
Number: 1
si l’écriture s’est effectuée avec succès
É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])
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
Number: 1
si l’écriture s’est effectuée avec succès
É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])
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
Number: 1
si l’écriture s’est effectuée avec succès
É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])
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
String: UUID de la première page active à la date demandée
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])
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
String: UUID de la première page active à la date demandée
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])
id: String
, identifiant du dossier
date: Date
, date à laquelle la page est active
page: String
, nom de la page. Par défaut GTP_CALCULE
String: UUID de la première page active à la date demandée
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])
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
String: UUID de la page précédant la page active à la date demandée
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.
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])
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
String: UUID de la page précédant la page active à la date demandée
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.
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])
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
String: UUID de la page précédant la page active à la date demandée
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.
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])
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Number: nombre de jours pendant lesquels la page est active
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])
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Number: nombre de jours pendant lesquels la page est active
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])
id: String
, uuid de la page
page: String
, nom de la page. Par défaut GTP_CALCULE
Number: nombre de jours pendant lesquels la page est active
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)
date: Date
, date à modifier
unité: String
, type d’unité à ajouter
shift: Number
, valeur à ajouter
Date: date modifiée
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.
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])
date: Date
, date à vérifier
type: String
, type de jour férié
Number: 1
si le jour est férié, 0
sinon
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])
dateDebut: Date
, date de début
dateFin: Date
, date de fin
type: String
, type de jour fériés
Number: nombre de jours fériés entre les deux dates
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)
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Number: nombre de jours travaillés entre les deux dates
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])
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
Number: prorata de la période
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)
date: Date
, date de référence
Number: numéro du mois
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)
date: Date
, date de référence
Number: année
Retourne l’année de la date de référence.
V3_getStartOfMonth
Date V3_getStartOfMonth(Date date)
date: Date
, date de référence
Date: date au début du mois
Retourne la date au début du mois de la date de référence.
V3_getStartOfMonth("2018-01-15")
retourne 2018-01-01
V3_getEndOfMonth
Date V3_getEndOfMonth(Date date)
date: Date
, date de référence
Date: date à la fin du mois
Retourne la date à la fin du mois de la date de référence.
V3_getEndOfMonth("2018-01-15")
retourne 2018-01-31
V3_getDayOfWeek
Number V3_getDayOfWeek(Date date)
date: Date
, date de référence
Number: date de la semaine
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)
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
Number: 1
si l’écriture s’est faite avec succès
Permet d’écrire dans la table GTPCUM
V3_deleteGTPCUM
Number V3_deleteGTPCUM(Date date, String record)
date: Date
record: String
Number: 1
si la suppression s’est faite avec succès
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)
employe: String
, identifiant de l’employé
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Boolean: true
si le poste de l’employé change pendant entre la date de début et la date de fin
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)
employé: String
, identifiant de l’employé
dateDebut: Date
, date de début
dateFin: Date
, date de fin
Boolean: true
si l’employé n’avait pas de poste avant le début de la période
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])
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
Number: nombre de jours de vacances auquel l’employé a droit sur l’année
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)
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])
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
Number: nombre de type de données entre la date de début et la date de fin
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
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)
requete: String
, requête ejbql à exécuter
index: Number
, index
String: élément à l’index index
du résultat de la requête
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.
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)
requete: String
, requête ejbql de type count
à exécuter
Number: résultat de la requête.
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.
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)
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).
String: élément à l’index index
après le découpage de la chaine d’entrée
Permet de découper une chaine de caractères et de retourner l’élément à l’index index
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)
date: Date
, date de référence
Number: jour du mois
Retourne le jour du mois de la date de référence.
V3_compareDates
Number V3_compareDates(Date date1, Date date2)
date1: Date
, première date
date2: Date
, seconde date
Number: différence entres les dates
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])
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
Number: nombre de jours de vacances auquel l’employé a droit sur l’année
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)
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])
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
Number: nombre d’événements chargés.
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).
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)
key: String
, identifiant de la clé
value: Object
, valeur de la clé
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)
key: String
, identifiant de la clé
Object: Valeur de la clé ou ‘null’ si la clé n’existe pas.
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])
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
Number: taux d’activité moyen de l’employé pendant l’année
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)
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])
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
Number: taux de présence de l’employé sur l’année
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)
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