Sperre auf Material herausfinden

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Sperre auf Material herausfinden

Beitrag von LGiesken (ForumUser / 40 / 14 / 5 ) »
Guten Tag. Ich habe ein kleines Problem. Ich bearbeite grade ein Programm, welches Rückmeldunge für Fertigungsaufträge erstellt. Dieses Programm läuft alle 5 Minuten. Jetzt kann es aber passieren, dass in einem Auftrag mehrere, auch gleiche, Materialien vorkommen können. Wenn es also in einem Auftrag dreimal das gleiche Material gibt, läuft das Programm beim esten Mal auch ganz normal durch. Beim zweiten und dritten Mal ist das Material aber leider noch gesperrt, weil die Rückmeldungen erst am Ende des Programms abgesendet werden.

Ich müsste also während der Laufzeit des Programms feststellen, ob das zu bearbeitende Material gesperrt ist. Das soll über einen Fuba passieren. Ich hab mir dazu schon den enqueue_read angesehen, aber das ganze soll unabhängig von Tabellen passieren. Ich soll also nicht die Sperreinträge von einer Tabelle, sondern von dem Material an sich herausfinden.

Hätte da jemand eine Idee, womit ich das lösen könnte? Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe. Bei weiteren Fragen einfach raus damit und bereits im Vorraus vielen Dank für die Hilfe.

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


Re: Sperre auf Material herausfinden

Beitrag von ralf.wenzel (Top Expert / 3922 / 200 / 280 ) »
LGiesken hat geschrieben:Ich müsste also während der Laufzeit des Programms feststellen, ob das zu bearbeitende Material gesperrt ist.
Versuche, das Material zu sperren. Wenn das nicht geht, ist es gesperrt.


Ralf

Edit: Unpassenden Link entfernt
Zuletzt geändert von ralf.wenzel am 29.03.2017 17:00, insgesamt 1-mal geändert.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Sperre auf Material herausfinden

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Und wenn es gesperrt wurde geht der Baustein nicht mehr ;)

Mit ENQUEUE_READ geht das.
Die Tabelle für Materialdaten heißt MARA bzw MARC (Werksdaten).

Mit den Import-Parametern:

GCLIENT Mandant
GNAME MARA
GARG Mandant+Materialnummer

bzw.

GCLIENT Mandant
GNAME MARC
GARG Mandant+Materialnummer+Werk

bekommst du das gewünschte Ergebnis.

Re: Sperre auf Material herausfinden

Beitrag von ralf.wenzel (Top Expert / 3922 / 200 / 280 ) »
Daniel hat geschrieben:Und wenn es gesperrt wurde geht der Baustein nicht mehr
Dann entsperre ich. Das war einfach ;)


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Sperre auf Material herausfinden

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Ja. Und wenn an dem Aufruf etwas falsch war (was man nie
ausschließen kann) entsperrst du ein Objekt zu Unrecht - mit
der Folge daß die Datenbank inkonsistent wird.
Eine ganz schlechte Lösung!

Re: Sperre auf Material herausfinden

Beitrag von ralf.wenzel (Top Expert / 3922 / 200 / 280 ) »
Daniel hat geschrieben:Ja. Und wenn an dem Aufruf etwas falsch war (was man nie
ausschließen kann) entsperrst du ein Objekt zu Unrecht - mit
der Folge daß die Datenbank inkonsistent wird.
Eine ganz schlechte Lösung!
Ich sag jetzt nicht, vom wem ich die habe ;)

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Sperre auf Material herausfinden

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Von mir. Ist trotzdem eine schlechte Lösung. War aber
auch in einem ganz anderen Zusammenhang.
Und es ist ein Unterschied ob ich Etwas einem Anfänger
oder einem erfahrenen Programmierer vorschlage.

Re: Sperre auf Material herausfinden

Beitrag von ralf.wenzel (Top Expert / 3922 / 200 / 280 ) »
Der Vollständigkeit halber noch ein Wort an den Fragenden:

Du sperrst letztlich IMMER Tabelleneinträge, "das Material" gibt es als Entität in einem SAP-System nicht. Das muss man sich mit Objekten basteln (macht auch Sinn, wenn man ausreichend viel damit macht), aber auf der DB landen dann doch wieder Tabelleneinträge.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Sperre auf Material herausfinden

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
ralf.wenzel hat geschrieben:Der Vollständigkeit halber noch ein Wort an den Fragenden:
Du sperrst letztlich IMMER Tabelleneinträge [...] aber auf der DB landen dann doch wieder Tabelleneinträge.
Das gilt vielleicht im Materialstamm - und selbst da habe ich nicht alle Sperrobjekte die zum Matstamm gehören im Kopf . Aber allgemein sperrt man natürlich keine Tabelleneinträge. Ein Sperrobjekt besteht aus einem Sperrschlüssel - und das sind Felder einer Dictionarystruktur. Dies kann durchaus eine Tabelle sein ( und viele Leute glauben tatsächlich, dass das nur Tabellen sein dürfen weil SAP im Enqueue-Dialog dort das Wort "Primärtabelle" verwendet ), aber dies kann genau so gut eine Struktur oder ein View sein.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Sperre auf Material herausfinden

Beitrag von ralf.wenzel (Top Expert / 3922 / 200 / 280 ) »
Das ist alles richtig, aber ich wollte ja darauf hinaus, dass es "das Material" nicht gibt und man es daher nicht sperren kann.

Genauso verteilen sich Belege auf diverse Tabellen, "den FI-Beleg" gibt es so nicht.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Sperre auf Material herausfinden

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
black_adept hat geschrieben:
ralf.wenzel hat geschrieben:Der Vollständigkeit halber noch ein Wort an den Fragenden:
Du sperrst letztlich IMMER Tabelleneinträge [...] aber auf der DB landen dann doch wieder Tabelleneinträge.
Vom Ansatz her stimmt das schon. SAP hat das eigene Sperr-System
überhaupt nur entwickelt weil das Sperr-System der Datenbank für
ein Dialog-System mit asynchroner Verbuchung ungeeignet ist.
Die Datenbank würde Tabelleneinträge sperren - so wie das in fast
allen ERP-Systemen gemacht wird. Das ersetzt SAP mit der eigenen
Sperrlogik. Es sind logische Sperren die im Coding vorhanden sein
müssen - der Entwickler muss sich also selbst darum kümmern.
Wenn das vergessen wird sind die Folgen verheerend!
Dafür überleben die SAP-Sperren jeden Datenbank-Commit. Ohne
diese Lösung wäre ein großes System nicht operabel, praktisch jede
Transaktion würde in einem Dead-Lock enden.

black_adept hat geschrieben:[
Aber allgemein sperrt man natürlich keine Tabelleneinträge. Ein Sperrobjekt besteht aus einem Sperrschlüssel - und das sind Felder einer Dictionarystruktur. Dies kann durchaus eine Tabelle sein ( und viele Leute glauben tatsächlich, dass das nur Tabellen sein dürfen weil SAP im Enqueue-Dialog dort das Wort "Primärtabelle" verwendet ), aber dies kann genau so gut eine Struktur oder ein View sein.
Der Sperrschlüssel soll ein bestimmtes Objekt sperren. Dazu ist es
nicht notwendig alle betroffenen Tabelleneinträge zu sperren, es
genügt wenn der relevante Eintrag gesperrt wird. Es müssen sich
aber alle Programme daran halten - deshalb auch das Konzept der
Sperrbausteine (das es im R/2 noch nicht gab).
Naheliegenderweise verwendet SAP dazu einen Tabelleneintrag.
Tatsächlich kann man auch "Hugo" sperren - es ist dem Sperrserver
völlig egal welcher String da ankommt - der wird nicht verprobt.
Es müssen sich halt alle an den selben Aufbau halten wenn es
funktionieren soll.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2228
Views
fetch material group,material account 3010 and Plant(WERKS)
von dragospirnut1 » 05.07.2017 12:27 • Verfasst in ABAP Objects®
5
Antw.
6136
Views
Sperre Materialstamm
von SAP_ENTWICKLER » 08.09.2015 09:18 • Verfasst in ABAP® Core
1
Antw.
4726
Views
Frage zu Fakt. Sperre
von Mark33 » 02.03.2012 07:53 • Verfasst in Sales and Distribution
1
Antw.
4697
Views
RFC : sämtliche Debitoren mit einer Sperre
von Hellfire » 15.06.2012 19:49 • Verfasst in Java & SAP®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 23 Minuten von rob_abc 2 / 9
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2083
SAP Trial Version für SAP Fiori
vor 23 Stunden von tar 2 / 1444

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

Zeilenumbrüche ersetzen
vor 23 Minuten von rob_abc 2 / 9
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2083
SAP Trial Version für SAP Fiori
vor 23 Stunden von tar 2 / 1444

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 504
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2143
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8738