letzte Woche war da wieder so ein Fall wo über ein Domino Frontend ein Endanwender durch eine vermutlich in dieser Kombination "verbotenen" Abfolge von Aktionen einfach mal so einen Stammdatensatz von KUNDENDATEN aus einer angedockten DB2-Datenbank löschte.
Ist der Endanwender Schuld: HELL NO. Die Anwendung darf sowas nie zulassen, ohne jede Diskussion.
Wenn ich mit sowas konfrontiert werde, stösst das mich immer in eine gefährliche Mischung aus Aggression, Wut und Verzweifelung. Sowohl in .NET als auch in J2EE ist es klar: Das Frontend spricht mit dem Business Layer der Business Layer spricht mit den Backend Systemen (RDBMS, SAP, Host). Alles andere wird als im Grunde genommen nicht kontrollierbarer Wahnsinn angesehen. Es sei denn, es gibt einen der alle 25 Jahre auftauchenden Sonderfälle, wo es anders gemacht werden muß.
Habs nicht zum ersten mal erlebt, dass dies auf kreativen Groupware-Plattformen nicht so gemacht wird. Da wird so'n Kundendatensatz eben mal im querysave gelöscht, wenn FeldX im Dokument auf einen bestimmten Wert steht. Hat ja im Test supi gefunzt.
Rem log nothing and have a nice weekend.
if doc.FeldA(0) = "wert" then call thisFancyBigDestroyerFunction(doc.KDNR(0))
Rem log nothing and have a nice weekend.
FeldA besitzt eine komplexere Formel und kann irgendwie durch den User zur Verfügung stehenden Agenten oder sonstwas umgeswitcht werden.
Ich hatte noch Glück, dass ich das hinreichend belegen konnte, dass die Operation von einer Anwenderin ausgelöst wurde und zwar nur durch das letzte Änderungsdatum eines bestimmten Dokuments (Glück) und doch verhandene Logs im Kontext des DB2 Zugriffs aus Notes-Agenten (die dann aber leider mit Server-Berechtigung laufen). Sowie die Zeitstempel dieser verstreuten Log-Spuren.
Da sind wir einer Meinung, dass das coden von sowas einen Fall von gravierenden anti-sozialen Verhalten von Seiten des Programmierers darstellt, oder?
Irgendwelche Gegenmeinungen
Gruß Axel