A l'int=C3=A9rieur de JIRA, j'utilise un script runner (d=C3=A9clench=C3=A9=
sur le validator d'une transaction, pour assurer le passage d'une demande =
=C3=A0 l'=C3=A9tat close vers r=C3=A9ouverte).=20
But recherch=C3=A9 : Ce passage est possible si la date syst=C3=A8me est po=
st=C3=A9rieure =C3=A0 maDate ET la diff=C3=A9rence en nombre de jours entre=
la date syst=C3=A8me et ma date <=3D 1.
Voici mon code :
Date now =3D new Date()
Date cfDate =3D new Date(cfValues['maDate'].getTime())
new Boolean(((now.getTime() - cfDate) / 86400000) <=3D 1) && (now.getTime()=
>=3D cfDate ))
Je pense qu'il doit y avoir un souci de syntaxe JAVA dans ce petit bout de =
code, mais je ne vois pas o=C3=B9 ... :-(
commentaire : la m=C3=A9thode getTime permet a priori de r=C3=A9cup=C3=A9re=
r le nombre de secondes =C3=A9coul=C3=A9es depuis 1970. Ensuite, je fais la=
diff=C3=A9rence entre la date syst=C3=A8me et la date de cl=C3=B4ture, et =
je divise par 86400000 (qui correspond =C3=A0 24 * 60 *60 * 1000 pour 24 he=
ures, 60 minutes, 60 secondes et 1000 millisecondes) pour ramener cette dif=
f=C3=A9rence de millisecondes en jour. Du coup, je mets =C3=A7a en conditio=
n (en pr=C3=A9cisant que je veux moins d=E2=80=99un jour ou un jour maxi) e=
t le fait que la date syst=C3=A8me doit =C3=AAtre post=C3=A9rieure ou =C3=
=A9gale =C3=A0 la date de cl=C3=B4ture=E2=80=A6 mais pour le moment, cela n=
e fonctionne pas=E2=80=A6 =C3=A0 vrai dire, je ne sais pas si la syntaxe JA=
VA est correcte ou pas, ne connaissant pas du tout le langage =EF=81=8C ce =
qui est dommage aussi, c=E2=80=99est que je n=E2=80=99arrive pas =C3=A0 aff=
icher le contenu des variables cfDate et now.getTime()
En fait, l'=C3=A9l=C3=A9ment validator va =C3=A9valuer la 3e ligne de code,=
et d=C3=A9terminer si c'est vrai ou faux. Si c'est faux, un message d'erre=
ur est envoy=C3=A9 =C3=A0 l'utilisateur, et la transition n'est pas d=C3=A9=
clench=C3=A9e. L'=C3=A9tat reste =C3=A0 close.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yliur
Le Tue, 9 Jul 2013 08:01:44 -0700 (PDT) a écrit :
A l'intérieur de JIRA, j'utilise un script runner (déclenché sur le validator d'une transaction, pour assurer le passage d'une demande à l'état close vers réouverte).
But recherché : Ce passage est possible si la date système est postérieure à maDate ET la différence en nombre de jours entre la date système et ma date <= 1.
Voici mon code : Date now = new Date() Date cfDate = new Date(cfValues['maDate'].getTime()) new Boolean(((now.getTime() - cfDate) / 86400000) <= 1) && (now.getTime() >= cfDate ))
Je pense qu'il doit y avoir un souci de syntaxe JAVA dans ce petit bout de code, mais je ne vois pas où ... :-(
Est-ce que tu écris ça dans une classe que tu places quelque part ?
Est-ce qu'il y a un message d'erreur quelque part ? Dans le journal de Tomcat (catalina.out) peut-être ?
Est-ce que tu aurais moyen d'exécuter ce code en dehors de JIRA, pour voir ce qui marche ou non ?
A première vue : - Il faut les points-virgules à la fin des instructions. - Je ne sais pas ce que représente cfValues, mais les tableaux Java sont indexés par des nombres, donc cfValues['maDate'] est des plus suspects. - new Boolean (...) ne sert à rien. - now.getTime() renvoie un entier long, cfDate est une date, c'est sans doute now.getTime() - cfDate.getTime(). La division entière risque de ne pas faire ce que tu veux non plus. Peut-être plutôt long tempsEcoule = now.getTime() - cfDate.getTime() ; boolean res = tempsEcoule <= 86400000 && tempsEcoule >= 0 ; Mais il faut aussi faire quelque chose de ce booléen, peut-être le renvoyer ou l'utiliser comme condition d'un if ?
Mieux vaudrait tester le code séparément si tu n'as pas de messages d'erreur pour te guider une fois le code inséré dans JIRA.
commentaire : la méthode getTime permet a priori de récupérer le nombre de secondes écoulées depuis 1970. Ensuite, je fais la différence entre la date système et la date de clôture, et je divise par 86400000 (qui correspond à 24 * 60 *60 * 1000 pour 24 heures, 60 minutes, 60 secondes et 1000 millisecondes) pour ramener cette différence de millisecondes en jour. Du coup, je mets ça en condition (en précisant que je veux moins d’un jour ou un jour maxi) et le fait que la date système doit être postérieure ou égale à la date de clôture… mais pour le moment, cela ne fonctionne pas… à vrai dire, je ne sais pas si la syntaxe JAVA est correcte ou pas, ne connaissant pas du tout le langage ce qui est dommage aussi, c’est que je n’arrive pas à afficher le contenu des variables cfDate et now.getTime()
Avec quels outils travailles-tu ? Comment as-tu tenté d'afficher la valeur de ces variables ?
En fait, l'élément validator va évaluer la 3e ligne de code, et déterminer si c'est vrai ou faux. Si c'est faux, un message d'erreur est envoyé à l'utilisateur, et la transition n'est pas déclenchée. L'état reste à close.
Le Tue, 9 Jul 2013 08:01:44 -0700 (PDT)
pititof92@gmail.com a écrit :
A l'intérieur de JIRA, j'utilise un script runner (déclenché sur le
validator d'une transaction, pour assurer le passage d'une demande à
l'état close vers réouverte).
But recherché : Ce passage est possible si la date système est
postérieure à maDate ET la différence en nombre de jours entre la
date système et ma date <= 1.
Voici mon code :
Date now = new Date()
Date cfDate = new Date(cfValues['maDate'].getTime())
new Boolean(((now.getTime() - cfDate) / 86400000) <= 1) &&
(now.getTime() >= cfDate ))
Je pense qu'il doit y avoir un souci de syntaxe JAVA dans ce petit
bout de code, mais je ne vois pas où ... :-(
Est-ce que tu écris ça dans une classe que tu places quelque part ?
Est-ce qu'il y a un message d'erreur quelque part ? Dans le journal de
Tomcat (catalina.out) peut-être ?
Est-ce que tu aurais moyen d'exécuter ce code en dehors de JIRA, pour
voir ce qui marche ou non ?
A première vue :
- Il faut les points-virgules à la fin des instructions.
- Je ne sais pas ce que représente cfValues, mais les tableaux Java
sont indexés par des nombres, donc cfValues['maDate'] est des
plus suspects.
- new Boolean (...) ne sert à rien.
- now.getTime() renvoie un entier long, cfDate est une date, c'est
sans doute now.getTime() - cfDate.getTime(). La division entière
risque de ne pas faire ce que tu veux non plus. Peut-être plutôt
long tempsEcoule = now.getTime() - cfDate.getTime() ;
boolean res = tempsEcoule <= 86400000 && tempsEcoule >= 0 ;
Mais il faut aussi faire quelque chose de ce booléen, peut-être
le renvoyer ou l'utiliser comme condition d'un if ?
Mieux vaudrait tester le code séparément si tu n'as pas de messages
d'erreur pour te guider une fois le code inséré dans JIRA.
commentaire : la méthode getTime permet a priori de récupérer le
nombre de secondes écoulées depuis 1970. Ensuite, je fais la
différence entre la date système et la date de clôture, et je divise
par 86400000 (qui correspond à 24 * 60 *60 * 1000 pour 24 heures, 60
minutes, 60 secondes et 1000 millisecondes) pour ramener cette
différence de millisecondes en jour. Du coup, je mets ça en condition
(en précisant que je veux moins d’un jour ou un jour maxi) et le fait
que la date système doit être postérieure ou égale à la date de
clôture… mais pour le moment, cela ne fonctionne pas… à vrai dire, je
ne sais pas si la syntaxe JAVA est correcte ou pas, ne connaissant
pas du tout le langage ce qui est dommage aussi, c’est que je
n’arrive pas à afficher le contenu des variables cfDate et
now.getTime()
Avec quels outils travailles-tu ? Comment as-tu tenté d'afficher la
valeur de ces variables ?
En fait, l'élément validator va évaluer la 3e ligne de code, et
déterminer si c'est vrai ou faux. Si c'est faux, un message d'erreur
est envoyé à l'utilisateur, et la transition n'est pas déclenchée.
L'état reste à close.
A l'intérieur de JIRA, j'utilise un script runner (déclenché sur le validator d'une transaction, pour assurer le passage d'une demande à l'état close vers réouverte).
But recherché : Ce passage est possible si la date système est postérieure à maDate ET la différence en nombre de jours entre la date système et ma date <= 1.
Voici mon code : Date now = new Date() Date cfDate = new Date(cfValues['maDate'].getTime()) new Boolean(((now.getTime() - cfDate) / 86400000) <= 1) && (now.getTime() >= cfDate ))
Je pense qu'il doit y avoir un souci de syntaxe JAVA dans ce petit bout de code, mais je ne vois pas où ... :-(
Est-ce que tu écris ça dans une classe que tu places quelque part ?
Est-ce qu'il y a un message d'erreur quelque part ? Dans le journal de Tomcat (catalina.out) peut-être ?
Est-ce que tu aurais moyen d'exécuter ce code en dehors de JIRA, pour voir ce qui marche ou non ?
A première vue : - Il faut les points-virgules à la fin des instructions. - Je ne sais pas ce que représente cfValues, mais les tableaux Java sont indexés par des nombres, donc cfValues['maDate'] est des plus suspects. - new Boolean (...) ne sert à rien. - now.getTime() renvoie un entier long, cfDate est une date, c'est sans doute now.getTime() - cfDate.getTime(). La division entière risque de ne pas faire ce que tu veux non plus. Peut-être plutôt long tempsEcoule = now.getTime() - cfDate.getTime() ; boolean res = tempsEcoule <= 86400000 && tempsEcoule >= 0 ; Mais il faut aussi faire quelque chose de ce booléen, peut-être le renvoyer ou l'utiliser comme condition d'un if ?
Mieux vaudrait tester le code séparément si tu n'as pas de messages d'erreur pour te guider une fois le code inséré dans JIRA.
commentaire : la méthode getTime permet a priori de récupérer le nombre de secondes écoulées depuis 1970. Ensuite, je fais la différence entre la date système et la date de clôture, et je divise par 86400000 (qui correspond à 24 * 60 *60 * 1000 pour 24 heures, 60 minutes, 60 secondes et 1000 millisecondes) pour ramener cette différence de millisecondes en jour. Du coup, je mets ça en condition (en précisant que je veux moins d’un jour ou un jour maxi) et le fait que la date système doit être postérieure ou égale à la date de clôture… mais pour le moment, cela ne fonctionne pas… à vrai dire, je ne sais pas si la syntaxe JAVA est correcte ou pas, ne connaissant pas du tout le langage ce qui est dommage aussi, c’est que je n’arrive pas à afficher le contenu des variables cfDate et now.getTime()
Avec quels outils travailles-tu ? Comment as-tu tenté d'afficher la valeur de ces variables ?
En fait, l'élément validator va évaluer la 3e ligne de code, et déterminer si c'est vrai ou faux. Si c'est faux, un message d'erreur est envoyé à l'utilisateur, et la transition n'est pas déclenchée. L'état reste à close.