AIRS-1809 Concession - New uniqueness validation for NCR-Create interface (@Jira)
Concession - New uniqueness validation for NCR-Create interface (@Confluence)
NCRManagerEJB.isUniqueNCR()NCRStateEngine.checkSupplierReferenceIdUniqueness()Für den Fall “Update” ist wichtig folgendes zu testen. Wir haben 2 NCRs erzeugt. Beide mit verschiedenen Tripeln Supplier Reference + Customer Reference + Customer Revision:
Beide sind im Status “INCOMPLETE”. Bisher alles in Ordnung. Nun will der Supplier die Supplier Reference editieren. Die Oberfläche muss es erlauben, da sonst der Prozess blockiert ist. Eine solche Konstellation wird nämlich über das “Split-Szenario” permanent vorkommen.
Um ein Satz updaten zu können ist es wichtig den kompletten Schlüssel (SupplierRefNo + CustomerRefNo + CustomerRevision) zu haben. Aber in einem Szenario wird es nicht funktionieren. Das geht nämlich so:
Man kann auch nicht einfach nur nach der SupplierRefNo schauen, da es bereits Sätze geben kann, die mit anderen CustomerRefNo und CustomerRevision angelegt wurden. Deshalb wurde folgende Lösung vorgeschalgen:
SupplierRefNo + CustomerRefNo + <null> gesucht. Wenn dann auch nichts gefunden wird, wird nach SupplierRefNo + <null> + <null> gesucht. A+<null>+<null> und A+B+B nicht unterscheiden. Und da unsere “Lock”-Methode einfach den ersten Satz liefert, werden wir u.U. den falschen Satz updaten.