====== rm29724 DA-Erstellung nicht möglich trotz DA im Status CANCELLED ======
[[https://cust-projects.seeburger.de/redmine/issues/29724|rm29724 DA-Erstellung nicht möglich trotz DA im Status CANCELLED]]
===== Description =====
...
==== Mit eigenen Worten ====
...
===== Analysis =====
==== Versionen ====
=== ASNDAOImpl ===
ASNDAOImpl.java:498 (in createASNModel())
asnModel.setDespatchStatus(ASNModel.ASN_STATUS.values()[rs.getInt("cDespatchStatus")]);
Hier kann passieren, dass:
* die Daten in der DB durch ein anderes Statement manipuliert werden
* die Indizes von Version zu Version geändert wurden (**eher unwahrscheinlich**)
==== Test DAs ====
* rm29724_001
* -> Cancel UE
* => UE.status = CANCELLED, DA = CANCELLED, PO = OPEN
* rm29724_002
===== Misc Ideas =====
* Für ''UEModel.setStatus(UEModel.UE_STATUS.CANCELLED)'' kann mit hoher Wahrscheinlichkeit nur eine Stelle im Code verantwortlich sein:
* ''ASNModelFactory.cancelCompleteASN()'' (Zeile 557)
* Ein Indiz dafür ist, dass an der gleichen Stelle auch UENumber auf "" (leer) gesetzt wird
* Das zweite Indiz dafür ist, dass die Methode ''UEDataActionScreen.cancelUEInUpdateMode( request, asnId )'' die ASN aus der Session zieht
* Das dritte Indiz dafür ist, dass die o.g. Methode beim DA-Update ausgeführt wird. D.h. nach dem Unlock. Das hat die Saskia vermutet.
* Ein Indiz dagegen sind aber die verschiedenen Zeitstempel in der History für UENumber- und UEStatus-Änderungen
* Für ''UEModel.setStatus(UEModel.UE_STATUS.SENT)'' können 2 Stellen im Code verantwortlich sein:
* ''ASNStatusModel.recalculateASNStatusBottomUp()''
* In diesem Fall gibt es folgende Möglichkeiten:
* ''recalculateASNStatusBottomUp()'' funktioniert nicht richtig
* ''recalculateASNStatusBottomUp()'' bekommt nicht die richtigen ''List ueNumbers'' im Parameter
* ?
* ''ASNStatusModel.updateASNStatusToSent()''
* Für manche Operationen das ASNModel wird aus der Session geholt. Vielleicht führt das zu dem Problem?