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.
2158
Views
loop richtig setzen
von barbara » 08.08.2006 13:57 • Verfasst in ABAP® für Anfänger
4
Antw.
2840
Views
offenen Posten richtig "sperren" (Disputes)
von Matthias_L. » 14.07.2005 18:38 • Verfasst in Financials
2
Antw.
3305
Views
Feldsymbol richtig zuweisen
von 1337 » 13.12.2013 09:12 • Verfasst in ABAP® für Anfänger
9
Antw.
5168
Views
Wie benutze ich den Funktionsbaustein richtig?
von SteveOh » 16.06.2010 13:34 • Verfasst in ABAP® für Anfänger
7
Antw.
5474
Views
Suchhilfe richtig anpassen
von smidi » 10.12.2007 10:57 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3006
Daten an Tabelle binden
vor 14 Stunden von Lukas Sanders 2 / 977
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 542

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

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3006
Daten an Tabelle binden
vor 14 Stunden von Lukas Sanders 2 / 977
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 542

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2555
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9136