IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

W4 Express Java Discussion :

Utilisation des formules sur les attributs Date


Sujet :

W4 Express Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 37
    Points
    37
    Par défaut Utilisation des formules sur les attributs Date
    La version 8.2 a introduit la notion de formule à l'aide la librairie MVEL, peu importe le type d'attribut. En général, c'est assez intuitif malgré le manque de documentation (seulement mentionné dans le roadmap.pdf de la 8.2). Exception d'un cas tordu pour initialiser une clé primaire: il faut utiliser les marques CREATE et READONLY en même temps...

    Rappel pour les débutants:
    Par exemple, pour un attribut texte, il est possible d'indiquer directement java.util.UUID.randomUUID() dans la formule pour générer une clé de type UUID. Il est possible de faire des test 'if', tester les valeurs NULL etc. On peut aussi accéder aux valeurs d'une classe pointée dans une relation etc.

    Là où j'ai une difficulté: les dates. Je n'ai aucune idée comment faire des formules semblables à 'date du jour' + 30. J'ai l'impression que la date est convertie en string quand elle passe dans MVEL. Je me trompe?

  2. #2
    Membre averti

    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par rdmontreal Voir le message
    La version 8.2 a introduit la notion de formule à l'aide la librairie MVEL, peu importe le type d'attribut. En général, c'est assez intuitif malgré le manque de documentation (seulement mentionné dans le roadmap.pdf de la 8.2). Exception d'un cas tordu pour initialiser une clé primaire: il faut utiliser les marques CREATE et READONLY en même temps...

    Rappel pour les débutants:
    Par exemple, pour un attribut texte, il est possible d'indiquer directement java.util.UUID.randomUUID() dans la formule pour générer une clé de type UUID. Il est possible de faire des test 'if', tester les valeurs NULL etc. On peut aussi accéder aux valeurs d'une classe pointée dans une relation etc.

    Là où j'ai une difficulté: les dates. Je n'ai aucune idée comment faire des formules semblables à 'date du jour' + 30. J'ai l'impression que la date est convertie en string quand elle passe dans MVEL. Je me trompe?
    Bonjour,

    Les dates sont utilisables comme en Java dans les formules basées sur MVEL. Pour les calculs, la référence est donc la milliseconde écoulée depuis le 1er Janvier 1970. Par exemple, pour initialiser une date (champ local) à la date courante + 24 heures, on peut utiliser le bout de code suivant dans le champ "Formule" de l'attribut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import java.util.Date;
    ....
    Date now = new Date();
    Date d = new Date(now.getTime()+24*60*60*1000);
    return d;
    Les constructeurs Java de dates supportent aussi des dates sous forme de chaînes (voir doc java).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Merci, cela fonctionne très bien. Je peux aussi remplace now par un autre attribut date.

    C'est ce que je cherchais à faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation des listener sur les objets UML
    Par sanchou dans le forum UML
    Réponses: 2
    Dernier message: 11/08/2010, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo