Hochkommata für Hintergrundverarbeitung

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

Hochkommata für Hintergrundverarbeitung

Beitrag von Tobias82 (ForumUser / 6 / 1 / 0 ) »
Hallo Community,

wir haben auf dem System kontextsensitive Berechtigungen. Im kundeneigenen Berechtigungsobjekt haben wir u.a. das Feld "TCD" mit implementiert, um die Berechtigungen auf dezidierte Transaktionen einzuschränken.

Folgendes Szenario:

Ein User führt einen Report online aus und kommt ohne Probleme zum Ergebnis. Das exakt gleiche führt er nun im Hintergrund aus und der Report wird abgebrochen und somit auch kein erzeugter Spool bzw. Ergebnis.
Nach Auswertung der Trace prüft bzw. verlangt die Berechtigung ein Hochkommata ' ' im Feld TCD des kundeneigenen Berechtigungsobjektes. Wird nun in den Berechtigungen im Feld "TCD" das Hochkommata hinzugefügt, so hat der User mit der Hintergrundverarbeitung auch keine Probleme mehr.

Was genau hat es mit dem Hochkommata auf sich? Im Feld "SUBTY" kommt dieses Hochkommata auch hin und wieder mal vor.

Vielen Dank im Voraus für eure konstruktiven Beiträge.

Viele Grüße

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


Re: Hochkommata für Hintergrundverarbeitung

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Das Hochkomma sagt normalerweise aus, dass das Feld leer gelassen werden kann oder anders: ' ' ist ein erlaubter Wert für TCD.

Scheinbar kommt also im Hintergrund euer Feld TCD nicht gefüllt an, oder ihr ruft den AUTHORITY CHECK im Batch anders auf. Wenn dann ' ' kein zulässiger Wert ist, habt ihr keine Berechtigung.

Re: Hochkommata für Hintergrundverarbeitung

Beitrag von Tobias82 (ForumUser / 6 / 1 / 0 ) »
Hallo casman,

vielen Dank für deine schnelle Rückmeldung.

Die Rolle bzw. das kundeneigene Berechtigungsobjekt sieht zusammenfassend wie folgt aus:

Er darf gewisse Infotypen lesen und zwar nur für bestimmte Transaktionen (hier ist dann die Einschränkung im Feld TCD). Bei diesen Transaktionen handelt es sich um Reports. Wenn er dann die berechtigte Transaktion aufruft (bzw. den Report) dann erhält er in der Onlineverarbeitung ein Ergebnis und in der Hintergrundverarbeitung kein Ergebnis. Ist aber der Wert Hochkomma zusätzlich mit im Feld TCD berechtigt, so funktioniert auch die Hintergrundverarbeitung.

Aber warum wird dann bei der Hintergrundverarbeitung nicht einfach der explizite Transaktionscode, den er ja auch tatsächlich ausführt, mitgegeben? Wäre dies so, dann müsste doch in der Trace der Wert der Transaktion ersichtlich sein. Stattdessen wird ein Hochkomma von der Trace verlangt. Aber anscheinend muss das Hochkomma ein zulässiger Wert sein, denn mit diesem Wert kann er die Hintergrundverarbeitung erfolgreich ausführen.
Oder kann man auch sagen, dass generell bei der Hintergrundverarbeitung der Transaktionscode gar nicht mehr übergegeben bzw. abgefragt wird?

Vielen Dank noch mal für ein kurzes Statement.

Re: Hochkommata für Hintergrundverarbeitung

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Aber warum wird dann bei der Hintergrundverarbeitung nicht einfach der explizite Transaktionscode, den er ja auch tatsächlich ausführt, mitgegeben?
Genau das ist die Frage. Wie ruft ihr denn Euer Objekt auf? Irgendwo macht ihr ja was in der Art:

Code: Alles auswählen.

 AUTHORITY-CHECK OBJECT 'Z_IREGENDWAS'
           ID 'TCD' FIELD ?????.
Was übergebt ihr denn da als TCD?

Re: Hochkommata für Hintergrundverarbeitung

Beitrag von Tobias82 (ForumUser / 6 / 1 / 0 ) »
Genau das ist die Frage. Wie ruft ihr denn Euer Objekt auf? Irgendwo macht ihr ja was in der Art:

Code: Alles auswählen.

 AUTHORITY-CHECK OBJECT 'Z_IREGENDWAS'
           ID 'TCD' FIELD ?????.
Was übergebt ihr denn da als TCD?[/quote]


AUTHORITY-CHECK OBJECT 'Z_IRGENDWAS'
ID 'TCD' FIELD SY-TCODE

Re: Hochkommata für Hintergrundverarbeitung

Beitrag von Tobias82 (ForumUser / 6 / 1 / 0 ) »
Wir übergeben folgendes:

AUTHORITY-CHECK OBJECT 'Z_IRGENDWAS'
ID 'TCD' FIELD SY-TCODE

Re: Hochkommata für Hintergrundverarbeitung

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Dacht ich mir. :)

SY_TCODE ist in der Hintergundverarbeitung leer, es sei denn du rufst aus deinem Programm eine Transaktion.

Also musst du für diesen Fall den TCODE mitgeben, irgendwie in der Art:

Code: Alles auswählen.

IF sy-batch = 'X'.
lf_tcode = 'Z_MEIN_TCODE'.
ELSE.
lf_tcode = sy-tcode
ENDIF.
AUTHORITY-CHECK OBJECT 'Z_IRGENDWAS'
ID 'TCD' FIELD lf_tcode

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
Tobias82


Seite 1 von 1

Vergleichbare Themen

2
Antw.
6524
Views
String nach Muster durchsuchen und mit Hochkommata versehen
von Bright4.5 » 12.02.2025 13:16 • Verfasst in ABAP® für Anfänger
4
Antw.
2823
Views
Report-Hintergrundverarbeitung
von Charadin » 22.09.2005 13:23 • Verfasst in ABAP® Core
2
Antw.
2452
Views
Hintergrundverarbeitung im Dialogprogramm?
von eschi78 » 16.11.2006 16:30 • Verfasst in Dialogprogrammierung
1
Antw.
1040
Views
Table Control und Hintergrundverarbeitung
von Obelix1 » 28.04.2014 10:44 • Verfasst in ABAP® Core
3
Antw.
3769
Views
Verzeichnis löschen in Hintergrundverarbeitung
von Precog » 09.09.2008 11:48 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Username als Variable in xdc-Datei?
vor einer Woche von uli3480 1 / 1642
Substitution zum Zeitpunkt 60
vor 3 Wochen von irene 1 / 4243
CDS View Erweitern mit Hierarchie
vor 3 Wochen von Interger 1 / 6901
Intervall mit Beziehungswissen füllen
letzen Monat von wolli 1 / 40963