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érieure
  • DOWN : à la valeur inférieure
  • CEILING : à 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 jours
  • MONTHS : nombre de mois
  • YEARS : 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érieure
  • DOWN : à la valeur inférieure
  • CEILING : à 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érieure
  • DOWN : à la valeur inférieure
  • CEILING : à 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érieure
  • DOWN : à la valeur inférieure
  • CEILING : à 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