insertion d'une date dans mysql

Je suis en mesure d’enregistrer les données de type texte ou de type numérique en base de données. Mais je suis incapable de stocker une date saisie par l’utilisateur
si je met de type string s’était récupéré mais j’aime utiliser le type “date” de bonita pour utiliser l’agenda prédéfini de bonita

d’aprés une petite recherche sur net ce que j’ai compris que la format date de bonita et format date de mysql incompatible l’un de forme anglais et l’autre de forme francais
Ci-dessous est la requête que je utilise lors de la configuration du connecteur d’accès MS.
INSERT INTO utilisateur (nom, prénom, date) VALUES (‘$ {FirstName}’, ‘$ {lastName}’, '$ {date} ');
merci d’avance

Bonjour.

Le type date de Bonita ne correspond pas au type date de sql.
Pour insérer une date dans une base de données, il faut transformer la date au bon format.
Pour faire cela j’utilise un script java avant de faire ma requête sql :

import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
String dateAInsererDansBDD = formatter.format(dateDeBonita);

Avec ça tu vas pouvoir transformer ta date en une String qui va pouvoir être stockée dans ta base de données.

merci yannick pour votre aide
j’ai suivi cette démarche mais j’ai pas récupéré ma variable date dans mysql
comme je vous informé que je choisi le type date dans bonita et dans mysql pour mon attribut que j’essaye a le récupérer
D’ou vient le prob !!
merci d’avance

Merci pour cette solution,
cela fonctionne
Louis

Bonjour,
j’utilise un type date dans MySQL et un type date dans mon process.

bonjour ;
merci pour la réponse , me comme je suis débutante en bonita ou je dois mettre ce syntaxe ?
j’a utilisé ce syntaxe comme ca avant la saisie de requête lors de création d’un connecteur
import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
String date= formatter.format(date);
INSERT INTO exemple.client ( ‘nom’, ‘date’) VALUES (‘${nom}’, ‘${date}’);

mais ca marche pas pour date (j’ai pas trouver la récupération de date dans base mysql )
en attente de votre explication
merci

J’utilise la version anglaise de Bonita BPM, en français ça doit s’appeler différemment.
Du coup un dessin vaut mieux qu’un long discours :
Pour la solution 1, dans le connecteur, il faut cliquer ici :
“Swith editor”

Après avoir cliqué sur le crayon, il faut entrer le script comme ceci :
Script

bonjour ;
en fait j’ai déjà utilisé la première méthode directement dans le connecteur
dans l’endroit requête ou script batch j’ai copier tous le corps
mais vous m’avez dit de faire : il faut d’abord cliquer sur “Switch editor to create a condition…” puis cliquer sur le crayon pour ajouter un script
je travaille sur bonita 6.3.1 et j’ai affecté ma variable "date_entrée " de type date dans bonita et de type date dans mysql

C’est normal que ça ne fonctionne pas de cette manière, il ne faut pas mélanger SQL et Java.

Il y a plusieurs endroit possible où intégrer le code que j’ai indiqué.

  1. Soit directement dans le connecteur, dans la case “Query or Batch Script”, il faut d’abord cliquer sur “Switch editor to create a condition…” puis cliquer sur le crayon pour ajouter un script.
    Dans ce cas, le script java sera quelque chose du genre : (peut aussi être écrit en Groovy mais je n’y connais pas grand chose)

    import java.text.SimpleDateFormat;
    SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
    String dateAInsererDansBDD = formatter.format(date);
    return “INSERT INTO exemple.client ( nom, date) VALUES ('”+nom+“', '”+dateAInsererDansBDD +“')”;

  2. Une autre possibilité serait de créer une variable “dateString” dans le processus, et de créer une tache de type script qui va retourner la date sous forme de String pouvant être insérée dans une requête SQL.
    Dans ce cas là, le code ressemblera à :

    import java.text.SimpleDateFormat;
    SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
    return formatter.format(date);

    Et ensuite dans le connecteur, il faudra juste mettre la requête :

    INSERT INTO exemple.client ( nom, ddate) VALUES (‘${nom}’, ‘${dateString}’);

Bonjour,
J’ai utilisé des types dates dans les deux.
cordialement

bonjour
j’ai bien suivi la première démarche mais j’arrive pas a récupérer ma variable et j’ai sais pas d’ou vient le problème
ci joint mon exemple sachant que (mon variable dans la base Mysql declaré datebdd de type date )
svp est-il possible de vous vérifiez avec moi d’ou vient le problème
URGENT!!!
merci pour votre collaboration

[exemple date]
[exemple date]: https://www.dropbox.com/s/txl12lsegsj52p5/date-1.0.bos?dl=0

Je pense que l’erreur vient du script que tu as mal modifié.

Tu as :

return “INSERT INTO exemple.hh (‘date’) VALUES (‘${datebdd}’)”;

Mais il faut :

return “INSERT INTO exemple.hh (date) VALUES ('”+datebdd+“')”;

EDIT : Je viens de tester en corrigeant, c’est bien ça le probleme.

bonjour Yannick ;
merci pour votre aide j’ai déjà modifier mon code suivant votre remarque mais malheureusement j’avais toujours le même problème (pas de récupération dans la base mysql)
merci de me répondre
exemple

Pour moi c’est tout correct. Ca va être très difficile de t’aider si tu ne mets pas tes logs ni l’erreur que tu rencontre.

y a pas en fait aucune erreur lors de l’exécution s’était bien passé sauf que je ne trouve pas la valeur dans la base
ci joint fichier log fichier log

Il y a plein d’erreur dans ce fichier log.
Je lis par exemple :

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘exemple’.‘hh’ (date) VALUES (‘2015-06-12 00:00:00’)’ at line 1

Pour cette erreur, la requête était :

INSERT INTO ‘exemple’.‘hh’ (date) VALUES (‘2015-06-12 00:00:00’)

Je pense que le problème provient des apostrophes autour de exemple et hh.
Il faudrait les enlever pour avoir la requête :

INSERT INTO exemple.hh (date) VALUES (‘2015-06-12 00:00:00’)

merci pour votre aide
je ne veux pas vous déranger plus
mais s’étais juste un test de ma part pour ça INSERT INTO ‘exemple’.‘hh’ (DATE) VALUES (‘2015-06-12 00:00:00’) lorsque cette façon ne marche pas INSERT INTO exemple.hh (DATE) VALUES (‘2015-06-12 00:00:00’)
merci pour votre aide
je veux essayer plus de trouver une solution

bonjour louis ;
stp quelle type que vous utiliser bans bonita et dans mysql pour votre variable
car pour moi n’est pas fonctionnable

Bonjour louis;
moi aussi j’ai choisi le type date pour bonita et mysql
et j’ai bien suivi la première démarche mais j’arrive pas a récupérer ma variable et j’ai sais pas d’ou vient le problème (t’a changé quelque chose du corps de yannick sauf les noms des variables) !!!
merci pour votre aide et explication