un truc bête mais as tu essayé avec un browser ldap (exemple Jexplorer) de mettre à jour une entrée de ton annuaire ?
un truc bête mais as tu essayé avec un browser ldap (exemple Jexplorer) de mettre à jour une entrée de ton annuaire ?
Oui pour mettre à jour tous les champs dont j'ai besoin, afin que le reverse d'ODI me ramène ces champs.
J'utilise LDAPadmin.
c'est très étrange cette histoire .... la seule hypothèse c'est une histoire de clé de mise à jour.
pour l'attribut qui correspond à ta clé de mise à jour as tu bien l'option clé de mise à jour de coché ....
As tu essayé avec une autre clé comme le nom ou autre en plus ?
Pour pouvoir cocher "clé de mise à jour" sur le champ uid, j'ai du supprimer la clé primaire du modèle.
Dans ce cas, l'insert et la mise à jour fonctionne pour insérer mon utilisateurs de test.
Par contre, lorsque je veux en intégrer plusieurs, j'ai l'erreur suivante :
Cette colonne est décochée dans le maping. Si je l'active, j'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 0 : null : java.sql.SQLException: Try to insert null into a non-nullable column: column: PERSONNE_NAMEPK table: PERSONNE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 0 : null : java.sql.SQLException: failed batch java.sql.SQLException: failed batch at com.sunopsis.ldap.jdbc.driver.g.executeBatch(g.java) at com.sunopsis.ldap.jdbc.driver.h.executeBatch(h.java) at com.sunopsis.sql.SnpsQuery.executeBatch(SnpsQuery.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java) at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java) at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java) at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java) at com.sunopsis.dwg.cmd.e.i(e.java) at com.sunopsis.dwg.cmd.g.y(g.java) at com.sunopsis.dwg.cmd.e.run(e.java) at java.lang.Thread.run(Unknown Source)
donc on progresse la mise à jour fonctionne donc....
sinon tu essaies de renseigner à null un attribut de ton annuaire ldap et cela openLdap n'aime pas trop ....
tu alimentes à partir de quel type de source ton annuaire ?
La source est une base oracle.
Oui on progresse, et merci pour le temps que tu passes à m'aider.
j'ai pas mal galéré à l'époque sur le même type de projet ... alimenter un annuaire ldap via sunopsis maintenant ODI.
vérifies les valeurs null et mets un blanc à la place ...
vérifies si l'insert fonctionne bien ....
par contre je me rappelle que l'update de clé comme l'UID ne fonctionne pas ....
C'est bon ca tourne, l'erreur "FAILED BATCH" était générée par un caractère spécial ("°") qui se trouvait dans une valeur à insérer.
Il me reste un souci avec les champs à valeurs multiples. Il ne retrouve pas ses petits par rapports à la clé primaire de la table des personnes. Je cherche.
En cas de valeur multiple tu dois avoir une table hiérarchique que tu ne peux obtenir par le reverse que si tu as renseigné ton annuaire LDAP avec deux veleurs minimum pour cet attribut.
normalement la table reprend une clé dite FK qui doit correspondre à une clé dit PK dans ta table principale ... par contre je ne sais plus comment est généré cette clé ... je crois que c'est sunopsis qui se l'impose.
Oui c'est exact, j'ai tout ce qu'il faut dans le modèle. Chaque champ multiple a créé une table relationnelle avec le champ à renseigner et le second est un clé étrangère qui se réfère à la clé primaire de ma table person.
J'ai constamment cette erreur en alimentant cette table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 0 : null : java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [insert into PERSONNE_CODE_RESPONSABLE ( CODE_RESPONSABLE, PERSONNE_NAMEFK ) select CODE_RESPONSABLE, PERSONNE_NAMEFK from I$_PERSONNE_CODE_RESPO where IND_UPDATE = 'I'] java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [insert into PERSONNE_SANDERS_CODE_RESPONSABLE ( CODE_RESPONSABLE, PERSONNE_NAMEFK ) select _CODE_RESPONSABLE, PERSONNE_NAMEFK from I$_PERSONNE_CODE_RESPO where IND_UPDATE = 'I'] at com.sunopsis.ldap.jdbc.driver.g.executeUpdate(g.java) at com.sunopsis.ldap.jdbc.driver.h.executeUpdate(h.java) at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt(SnpSessTaskSqlI.java) at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java) at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java) at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java) at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java) at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java) at com.sunopsis.dwg.cmd.e.i(e.java) at com.sunopsis.dwg.cmd.g.y(g.java) at com.sunopsis.dwg.cmd.e.run(e.java) at java.lang.Thread.run(Unknown Source)
je pense qu'il doit chercher à insérer une valeur null .... et il n'aime pas du tout
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager