Développer avec RBS Change : initData Customer : messages d'erreur

  • 49094.1

    03/01/2012 10:38


    fdurrieu
    Rang : Membre
    Bonjour,

    J'essaie sans succès de créer des customer à partir d'un initData.
    Après avoir regardé les différents exemples que vous proposez dans plusieurs modules j'ai essayé les commandes suivantes :

    <customer user-refid="personne1" id="customer1" />
    Error line 182 (/home/fdurrieu/workspacePHP/XXXXXX.fr/rbschange/framework/framework-3.5.2/persistentdocument/TransactionManager.class.php): Transaction cancelled: Transaction cancelled: Version (4) of document (11866) is obsolete.

    <customer byLogin="personne1" id="customer1" />
    Error line 17 (/home/fdurrieu/workspacePHP/XXXXXX.fr/rbschange/modules/customer/customer-3.5.2/persistentdocument/import/CustomerScriptDocumentElement.class.php): Invalid login : personne1

    <customer byUser-refid="personne1" id="customer1" /> lui ne semble pas être géré

    Les websitefrontendusers liés sont bien créés comme suit :

    <websitefrontenduser byLogin="personne1" label="Personne 1" id="personne1"
    title-refid="Monsieur" firstname="Personne" lastname="Un"
    passwordmd5="XXXXXXXX" email="personne@un.com"
    publicationstatus="ACTIVE" website-refid="XXXXX" department-refid="dep" status="XXX" groups-refids="group_front" />

    Merci d'avance pour votre aide
  • 49094.2 en réponse à 49094.1 écrit par fdurrieu

    03/01/2012 10:54


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Normalement c'est bien la première solution qu'il faut utiliser.

    Pourriez-vous préciser dans quel contexte vous obtenez l'exception ? Est-ce déjà lors de la première exécution du script ou lors d'une seconde exécution par la suite ?

    Quoiqu'il en soit pour en savoir plus il me faudrait la trace d'exécution de l'exception pour comprendre ce qui se passe. Et savoir à quel document correspond l'id 11866 donné dans le message d'erreur pourrait aider aussi (cette information peut se trouver facilement dans la table f_document qui contient les correspondance entre chaque id et le type de document associé).



    Sinon, s'il s'agit de faire un script qui puisse être ré-exécuté plusieurs fois de suite, il sera sans doute utile de rajoute un by... le plus simple reste de renseigner la propriété codeReference et donc d'utiliser un byCodeReference pour identifier la bonne instance.
  • 49094.3

    03/01/2012 11:11


    fdurrieu
    Rang : Membre
    C'est lors de la première exécution, et aussi lors d'une seconde exécution si les éléments customer ne sont pas pris en compte dans la première.

    Je n'ai pas précisé en effet, le document_id 11866 réfère à mon user "personne1"

    J'utilise en permanance le by en effet, les essaies sans by étaient pour vérifier que l'erreur ne venait pas de là.
  • 49094.4 en réponse à 49094.3 écrit par fdurrieu

    03/01/2012 11:15


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Ok...

    Comme dit plus haut, il me faudrait la trace d'exécution de l'exception pour pouvoir en dire plus.
  • 49094.5

    03/01/2012 11:25


    fdurrieu
    Rang : Membre
    La voici pour la dernière erreur que j'ai rencontré :

    2012-01-03 09:21:09 [EXCEPTION] Exception: Version (4) of document (11866) is obsolete.
    #0 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(410): f_persistentdocument_DocumentService->updateDocumentVersion(Object(users_persistentdocument_websitefrontenduser))
    #1 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(125): f_persistentdocument_DocumentService->update(Object(users_persistentdocument_websitefrontenduser), NULL)
    #2 rbschange/framework/framework-3.5.2/persistentdocument/PersistentDocumentImpl.class.php(750): f_persistentdocument_DocumentService->save(Object(users_persistentdocument_websitefrontenduser), NULL)
    #3 rbschange/framework/framework-3.5.2/persistentdocument/PersistentDocumentImpl.class.php(274): f_persistentdocument_PersistentDocumentImpl->save()
    #4 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(465): f_persistentdocument_PersistentDocumentImpl->saveDocumentsInverse()
    #5 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(125): f_persistentdocument_DocumentService->update(Object(users_persistentdocument_websitefrontendgroup), NULL)
    #6 rbschange/framework/framework-3.5.2/persistentdocument/PersistentDocumentImpl.class.php(750): f_persistentdocument_DocumentService->save(Object(users_persistentdocument_websitefrontendgroup), NULL)
    #7 rbschange/framework/framework-3.5.2/persistentdocument/PersistentProvider.class.php(4138): f_persistentdocument_PersistentDocumentImpl->save()
    #8 rbschange/framework/framework-3.5.2/persistentdocument/PersistentProvider.class.php(1395): f_persistentdocument_PersistentProvider->cascadeSaveDocumentArray(Object(f_persistentdocument_PersistentDocumentArray))
    #9 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(464): f_persistentdocument_PersistentProvider->updateDocument(Object(users_persistentdocument_websitefrontenduser))
    #10 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(125): f_persistentdocument_DocumentService->update(Object(users_persistentdocument_websitefrontenduser), NULL)
    #11 rbschange/framework/framework-3.5.2/persistentdocument/PersistentDocumentImpl.class.php(750): f_persistentdocument_DocumentService->save(Object(users_persistentdocument_websitefrontenduser), NULL)
    #12 rbschange/framework/framework-3.5.2/persistentdocument/PersistentProvider.class.php(4138): f_persistentdocument_PersistentDocumentImpl->save()
    #13 rbschange/framework/framework-3.5.2/persistentdocument/PersistentProvider.class.php(1807): f_persistentdocument_PersistentProvider->cascadeSaveDocumentArray(Object(f_persistentdocument_PersistentDocumentArray))
    #14 rbschange/framework/framework-3.5.2/persistentdocument/PersistentProvider.class.php(1205): f_persistentdocument_PersistentProvider->_insertDocument('12952', Object(customer_persistentdocument_customer))
    #15 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(300): f_persistentdocument_PersistentProvider->insertDocument(Object(customer_persistentdocument_customer))
    #16 rbschange/framework/framework-3.5.2/persistentdocument/DocumentService.class.php(121): f_persistentdocument_DocumentService->insert(Object(customer_persistentdocument_customer), NULL)
    #17 rbschange/framework/framework-3.5.2/persistentdocument/PersistentDocumentImpl.class.php(750): f_persistentdocument_DocumentService->save(Object(customer_persistentdocument_customer), NULL)
    #18 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptDocumentElement.class.php(184): f_persistentdocument_PersistentDocumentImpl->save(NULL)
    #19 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptDocumentElement.class.php(126): import_ScriptDocumentElement->saveDocument()
    #20 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(316): import_ScriptDocumentElement->process()
    #21 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(172): import_ScriptReader->processElement(Object(customer_CustomerScriptDocumentElement), 'customer1')
    #22 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(106): import_ScriptReader->parse(Object(XMLReader))
    #23 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptBindingElement.class.php(11): import_ScriptReader->executeInternal('/home/fdurrieu/...')
    #24 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(316): import_ScriptBindingElement->process()
    #25 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(172): import_ScriptReader->processElement(Object(import_ScriptBindingElement), NULL)
    #26 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(106): import_ScriptReader->parse(Object(XMLReader))
    #27 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptBindingElement.class.php(11): import_ScriptReader->executeInternal('/home/fdurrieu/...')
    #28 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(316): import_ScriptBindingElement->process()
    #29 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(172): import_ScriptReader->processElement(Object(import_ScriptBindingElement), NULL)
    #30 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(106): import_ScriptReader->parse(Object(XMLReader))
    #31 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(90): import_ScriptReader->executeInternal('/home/fdurrieu/...')
    #32 rbschange/framework/framework-3.5.2/persistentdocument/import/ScriptReader.class.php(75): import_ScriptReader->execute('/home/fdurrieu/...', Array)
    #33 rbschange/framework/framework-3.5.2/change-commands/ImportData.php(78): import_ScriptReader->executeModuleScript('pompiers', 'base-dev.xml')
    #34 rbschange/framework/framework-3.5.2/bin/includes/ChangescriptCommand.php(372): commands_ImportData->_execute(Array, Array)
    #35 rbschange/framework/framework-3.5.2/bin/includes/Changescript.php(215): c_ChangescriptCommand->execute(Array, Array)
    #36 rbschange/framework/framework-3.5.2/bin/includes/Changescript.php(135): c_Changescript->_executeCommand('id', Array)
    #37 rbschange/framework/framework-3.5.2/bin/change_script.inc(61): c_Changescript->execute(Array)
    #38 rbschange/framework/framework-3.5.2/bin/change.php(24): require('/home/fdurrieu/...')
    #39 {main}
  • 49094.6 en réponse à 49094.5 écrit par fdurrieu

    04/01/2012 10:26


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Ok du coup j'ai pu trouver un scénario où j'arrive à le reproduire chez moi. J'ai donc créé un ticket (Exception à l'import XML de comptes clients) sur le sujet afin que ce soit corrigé.

    En fait ça ne semble pas marcher pour la création d'un compte client sur un utilisateur déjà existant en base. Donc en attendant le correctif, il suffit nettoyer votre base des utilisateurs sans compte qui auraient été importés par le script pour que ça passe.
  • 49094.7 en réponse à 49094.6 écrit par Gaël Port

    04/01/2012 11:46


    fdurrieu
    Rang : Membre
    Comment est il possible de créer des customers sans qu'un utilisateur lui soit lié?
  • 49094.8 en réponse à 49094.7 écrit par fdurrieu

    04/01/2012 12:00


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    En fait ce n'est pas ça que je voulais dire, un client est forcément lié à un utilisateur.

    Là d'après mes tests, le cas qui pose problème c'est quand l'utilisateur a été créé à un moment donné et qu'on tente de lui associer un compte client par la suite plutôt que de créer les deux au même moment.
  • 49094.9

    05/01/2012 10:50


    fdurrieu
    Rang : Membre
    Ca a bien marché, la création de customer marche bien avec le "user-refid" juste après la création de l'utilisateur.

    Merci pour votre aide
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1471 membres
Aucun membre connecté