Sperren richtig setzen?

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Sperren richtig setzen?

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo Abap-Gemeinde,

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.

Gruß
Markus

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von A6272 (Specialist / 238 / 8 / 36 ) »
Hallo,

folgendes setzt eine reine Schreibsperre, so dass mehrere User gleichzeitig lesen dürfen:
* Sperre setzten
CALL FUNCTION 'ENQUEUE_EZ_ZZET_IST_VF'
EXPORTING
mode_zzet_ist_vf_stat = 'S'
mode_zzet_ist_vferror = 'S'
mandt = sy-mandt
jahr = pd_jahr
monat = pd_mon
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.

und folgendes einer Schreib/Lesesperre
* Sperre setzten
CALL FUNCTION 'ENQUEUE_EZ_ZZET_IST_VF'
EXPORTING
mode_zzet_ist_vf_stat = 'E'
mode_zzet_ist_vferror = 'E'
mandt = sy-mandt
jahr = pd_jahr
monat = pd_mon
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.

E Schreibsperre
S Lesesperre
X erweiterte Schreibsperre

Gruß Alex

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
A6272 hat geschrieben:
E Schreibsperre
S Lesesperre
X erweiterte Schreibsperre

Gruß Alex
Hallo Alex,

aber widerspricht diese zuweisung nicht deine FuBa`s?
Wo nur Schreibsperre gesetzt wird, hast du ein S drin stehen...das beduetet aber Lesesperre

E und X hab ich schon ausprobiert...klappt beides nicht...ist immer voll gesperrt. Werde mal S probieren...

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hab nun auch das S ausprobiert.

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.

Was mach ich falsch???

Gruß
Markus

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Hi,

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.

Gruß,
Flo

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Moin zusammen,

@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 ;)

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2193
Views
loop richtig setzen
von barbara » 08.08.2006 13:57 • Verfasst in ABAP® für Anfänger
4
Antw.
2899
Views
offenen Posten richtig "sperren" (Disputes)
von Matthias_L. » 14.07.2005 18:38 • Verfasst in Financials
3
Antw.
2832
Views
Struktur richtig füllen
von bohne » 04.01.2007 16:50 • Verfasst in ABAP® für Anfänger
0
Antw.
1765
Views
BAPI_ACC_BILLING_REV_POST richtig verwenden
von thomas.klammer » 17.08.2018 11:52 • Verfasst in Financials
2
Antw.
3365
Views
Feldsymbol richtig zuweisen
von 1337 » 13.12.2013 09:12 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Mahnung erstellen
vor 21 Stunden von wreichelt 2 / 42
Absprung VA02 Position
vor 23 Stunden von gs3rr4 gelöst 3 / 55
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 33

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Mahnung erstellen
vor 21 Stunden von wreichelt 2 / 42
Absprung VA02 Position
vor 23 Stunden von gs3rr4 gelöst 3 / 55
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 33

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
Gestern von Manfred K. 1 / 33
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 447