Messages d'erreur lors de l'abandon d'un processus métier

Messages d'erreur lors de l'abandon d'un processus métier
0

#1

Dans un processus métier, si je clique sur « Abandoner le processus » après avoir traité une (ou plusieurs) étape de création, j’obtiens beaucoup de message d’erreur dans la console. C’est comme si on essaie de supprimer les lignes créées précédemment dans le processus mais sans succès.

Voici un exemple d’abandon à l’étape de création « ImmoPropertyMin » juste après l’étape de création d’un bien (ImmoProperty) qui crée à son tour une ligne dans ImmoHabilitationProperty.

J’ai remplacé certaines lignes par …

2018-12-12 22:37:23,740 ERROR [] No row found. 
    
2018-12-12 22:37:23,740 INFO [] Action: delete
2018-12-12 22:37:23,740 INFO [] New record key row_id
…
2018-12-12 22:37:23,740 INFO [] Found field propertyMinLabel = [Test 14]
2018-12-12 22:37:23,740 INFO [] Start import object ImmoPropertyMin:
2018-12-12 22:37:23,740 ERROR [com.simplicite.util.integration.SAXImportXML] SIMPLICITE|http://e3m.simplicite.io:10028||ECOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||Erreur I/O: Import object ImmoPropertyMin, status = KO
2018-12-12 22:37:23,738 ERROR [] No row found. 
    
2018-12-12 22:37:23,738 INFO [] Action: delete
2018-12-12 22:37:23,738 INFO [] New record key row_id
2018-12-12 22:37:23,737 INFO [] Found field propertyImmoBuildingId.buildingImmoAddressId = []
2018-12-12 22:37:23,737 INFO [] Found field propertyImmoBuildingId = []
…
2018-12-12 22:37:23,737 INFO [] Found field propertyStatus = [IDE]
2018-12-12 22:37:23,737 INFO [] Found field propertyLabel = [Test 14]
2018-12-12 22:37:23,737 INFO [] Found field propertyId = [BIEN-00287]
2018-12-12 22:37:23,735 INFO [] Start import object ImmoProperty:
2018-12-12 22:37:23,738 ERROR [com.simplicite.util.integration.SAXImportXML] SIMPLICITE|http://e3m.simplicite.io:10028||ECOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||Erreur I/O: Import object ImmoProperty, status = KO
2018-12-12 22:37:23,736 ERROR [com.simplicite.util.ObjectField] SIMPLICITE|http://e3m.simplicite.io:10028||ERROR|designer|com.simplicite.util.ObjectField|evalDefault||Evénement: Default value expression evaluation error 
    com.simplicite.util.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped java.lang.NumberFormatException: For input string: "" (ImmoProperty#1) in ImmoProperty at line number 1 
     at com.simplicite.util.ScriptedObjectDB.evalExpression(ScriptedObjectDB.java:262) 
…
2018-12-12 22:37:23,718 ERROR [] No row found. 
    
2018-12-12 22:37:23,718 INFO [] Action: delete
2018-12-12 22:37:23,718 INFO [] New record key row_id
2018-12-12 22:37:23,717 INFO [] Found field 
…
2018-12-12 22:37:23,717 INFO [] Found field habPropertyDroits = [M]
2018-12-12 22:37:23,717 INFO [] Found field habPropertyImmoPropertyId.propertyId = [BIEN-00000]
2018-12-12 22:37:23,717 INFO [] Found field habPropertyUserIdSaisie = [designer]
2018-12-12 22:37:23,709 INFO [] Start import object ImmoHabilitationProperty:
2018-12-12 22:37:23,718 ERROR [com.simplicite.util.integration.SAXImportXML] SIMPLICITE|http://e3m.simplicite.io:10028||ECOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||Erreur I/O: Import object ImmoHabilitationProperty, status = KO
2018-12-12 22:37:23,717 WARN [com.simplicite.util.engine.ObjectManager] SIMPLICITE|http://e3m.simplicite.io:10028||WARN|system|com.simplicite.util.engine.ObjectManager|findIdRefWhere||Evénement: Unable to find reference: habPropertyImmoPropertyId of object ImmoHabilitationProperty
2018-12-12 22:37:23,695 INFO [com.simplicite.util.engine.Interface] SIMPLICITE|http://e3m.simplicite.io:10028||ICOREIO001|designer|com.simplicite.util.engine.Interface|importData||Information I/O: Start scanning data, origin: _UNDO_REDO_PATCH_XML_


Auriez-vous une idée de ce qui peut générer toutes ces erreurs ?

Pour info, toutes mes étapes sont en « Modifiable sans impact descendant », pas de code dans le pre/post Abandon et rien n’est supprimé après l’abandon.

Je compte gérer plus tard dans le preAbandon la suppression de ce qu’il y a à supprimer en cas d’abandon du processus.

Merci d’avance.

Abed.


(François Genestin) #2

Il faut donc savoir si vos objets sont bien supprimés ou non, il s’agit alors plus d’un warning ou il cherche à le supprimer 2 fois.

Tout ce qui se passe au travers des activités ou des objets du Processus est mémorisé dans un flux XML d’undo/redo.

En cas d’abandon, Simplicité lance le patch undo que vous pouvez consulter dans la supervision des imports sous le nom _UNDO_REDO_PATCH_XML_ et y trouver la source XML et la log d’import.

Dans vos logs :

Action: delete
No row found.

Il ne retrouve pas l’objet : soit déjà supprimé, soit clé fonctionnelle insuffisante…

NumberFormatException : on ne peut peut plus vous aider que ce que disent les logs :

evalDefault||Evénement: Default value expression evaluation error
Wrapped java.lang.NumberFormatException: For input string: “” (ImmoProperty#1) in ImmoProperty at line number 1
at com.simplicite.util.ScriptedObjectDB.evalExpression(ScriptedObjectDB.java:262)

Il y a un champ numérique avec valeur par défaut chaine vide qui ne peut pas être évalué.


#3

Merci @francois.
Je me retrouve donc face à un pb important puisque beaucoup de nos objets ont comme clé fonctionnelle une valeur remplie par défaut sur la base du row_id et qu’apparemment le patch undo ne gère pas puisqu’il ne sauvegarde pas les valeurs affectées lors des créations des objets, et donc ne les retrouve pas lors des delete.

J’ai trouvé une solution : Si je passe le paramètre système “USE_UNDO_REDO” à no, plus de message d’erreur, et c’est moi qui gère dans le preAbandon les suppressions nécessaires. Je l’ai testé et cela marche très bien pour nos objets.

Est-ce que vous y voyez un inconvénient ? Est-ce qu’il y a un risque que ce paramètre soit retiré ? (marqué comme “experimental” dans sa description)