Welcome Guest! Log in
×

Notice

The forum is in read only mode.
Stambia versions 2.x, 3.x, S17, S18, S19 and S20 are reaching End of Support January, 15th, 2024. Please consider upgrading to the supported Semarchy xDI versions. See Global Policy Support and the Semarchy Documentation.

The Stambia User Community is moving to Semarchy! All the applicable resources have already been moved or are currently being moved to their new location. Read more…

Topic-icon Question Ajouter une condition sur l'exécution du composant SQL Operation

More
09 Dec 2020 10:21 #1 by sdis59
Bonjour la communauté,

J'ai élaboré un process qui se finalise par une SQL opération (appel de procédure stockée) que je souhaiterai soumettre à une condition de type "ne s'exécute que le 10 du mois".

Après lecture des documentations, j'ai vu qu'il était possible d'ajouter une condition via un script dans le bloc "generation condition" du composant.

J'ai donc ajouté le bout de code suivant :
%e(rhino){
const myDate = new java.util.Date();
const day = today.getDay();

if (day == 10) {
__ctx__.retValue = "true"
} else {
__ctx__.retValue = "false"
}
}e(rhino)%

Malgré un certain nombre de variante (avec/sans import de packages, avec/sans ajout du mot clé const, avec/sans %e(rhino), avec/sans %b(rhino), ... je tombe sur une erreur qui me laisse circonspect :

Error during Compilation (compilation.compilationD)
Check the generationCondition of /KP - Livraison RH/Calcul des indicateurs (le 10)
net.sf.saxon.trans.XPathException: XPath syntax error at char 0 in {%}:
Invalid character '%' in expression


Je me rends bien compte que c'est certainement une erreur de débutant mais je n'ai trouvé ni tuto vidéo, ni exemple concret me permettant de m'en sortir.

Merci de votre aide,
More
28 Dec 2020 16:45 #2 by Benjamin M.
Bonjour,

Attention, la partie "generation condition" ne fera pas ce que tu veux. Cette "option" permet de déterminer si, au moment de la compilation du package/delivery, tu souhaites que l'action soit ou non être créée.

Si tu mets par exemple "1" = "0" --> le composant ne sera pas disponible dans le delivery
Si tu mets par exemple "1" = "1" --> le composant sera disponible dans le delivery
Si tu mets par exemple "${param}$" = "0" --> le composant ne sera disponible dans le delivery que si tu déclares un paramètre param qui vaut 0 au moment de la compilation.

Dans ton cas, il faut que tu mettes ton code dans un lien et que tu mettes le code suivant :
%e(rhino){
now = new Date();
day = now.getDate();

if (day == 10) {
__ctx__.retValue = "true"
} else {
__ctx__.retValue = "false"
}
}e(rhino)%

Ainsi, l'action "SQL Operation" ne sera exécutée que le 10 du mois. P

Bonne journée et joyeuses fêtes.
More
30 Dec 2020 11:14 #3 by sdis59
Merci pour la réponse, c'est exactement ce dont j'avais besoin.

Joyeuse fin d'année