wie kann ich auf eine Tabelle die im Dictionary besteht (z.b. sflight) in einem Report eine Sperre setzen, so dass derjenige welcher das Programm zuerst aufgerufen hat und über den ENQUEUE gekommen ist eine reine Schreibsperre setzt.
Die zweite Person die den Report aufruft soll aber die Daten aus der Dictionary Tabelle lesen können, damit eine Anzeige stattfindet.
Liegt es an dem Sperrobjekt, welches angelegt wurde, um daraus die SperrFuBa´s zu bekommen?...das ist mit erweiterte Sperre angelegt.
Da muss man normale schreibsperre nutze oder? Damit dann das oben beschriebene klappt.
Dann können mehrere Personen tatsächlich die Daten anschauen, allerdings keiner darf mehr ändern.
Ich hab mich mit 2 verschiedene Benutzer angemeldet und das Programm jeweils gestartet.
Konnte schön meine Daten anschauen, bei beiden.
Um Änderungen wirksam werden zu lassen, muss man ein button klicken. Damit werden Änderungen bestätigt, noch nicht durchgeführt.(zu diesem Zeitpunkt, wollte ich dann eine Schreibsperre ('E') noch hinzufügen. wenn ich das aber mach sperren sich beide gegenseitig. Sprich ich klick auf den Button (nur bei einem) und bekomm schon die meldung ,dass ein anderer Benutzer das dingens sperrt. Die 'S' Sperre haben ja beide gesetzt.
bei meiner Transaktion läuft das ganze folgendermaßen:
*TA geht im Anzeigemodus auf - keine Sperren gesetzt
*User drückt Anzeigen/Ändern Knopf - Sperre mit MODE X Scope 3 wird gesetzt Daten nochmal aktualisiert
*User ändert Daten
*User sichert
*User drückt Anzeigen/Ändern Knopf - Sperre wird gelöst, Eingaben blockiert
So lassen sich die Anforderungen einer Änderungstransaktion mit Sperre realisieren. Falls ich was falsch verstanden habe frag nochmal.
@Flo: Das würde bei einer Logik wie bei einem View stimmen, bei mir nicht.
Aber ich habs hinbekommen...hab viiiiiel zu kompliziert gedacht, dann ist mir aber die Idee gekommen. Wenn eine Sperre gesetzt ist, darf ja kein anderer mehr ändern....also frag ich doch bloss das auch ab
Sprich, der erste der das Prog startet und Daten einliest, setzt eine Schreibsperre ('E'). Alle anderen würden dann, zu dem Zeitpunkt wo die sperre gesetzt wird, ein Abbruch bekommen (E-Message von Sperrbaustein), weil eben die Sperre da ist.
Ich geb da einfach keine Message aus, setz ein Flag und somit kann jeder lesen, aber nicht mehr ändern. (Das Flag verhindert das dann)
Im grunde total simple...drauf kommen muss man erst