Funktionsbausteine berechtigen

Funktionsbausteine (FuBa) sind überall im SAP-System im Einsatz. Der Standard liefert bereits eine Vielzahl FuBas aus. Zusätzlich können Entwickler kundeneigene Funktionsbausteine anlegen. Nicht immer müssen die separat berechtigt werden. Doch wenn Sie Funktionsbausteine berechtigen müssen, erfahren Sie hier, wie das funktioniert.

Was sind Funktionsbausteine?

Funktionsbausteine sind für Entwickler wie Textbausteine für Bürosachbearbeiter: Eine Abkürzung, um häufig verwendete, wiederkehrende „Texte“ nicht jedes Mal vollständig neu tippen zu müssen. Funktionsbausteine aka FuBas enthalten allerdings keinen Text für Anschreiben und Co, sondern Code.

Code, der an verschiedenen Stellen des Systems benötigt wird, wird in einem Funktionsbaustein gekapselt. Brauchen Entwickler nun genau diesen Code, müssen sie ihn nicht selbst schreiben, sondern fügen an der entsprechenden Stelle in ihrem Programm einfach den jeweiligen Funktionsbaustein ein. Das spart Zeit, macht den Code übersichtlicher und reduziert die Fehleranfälligkeit. Dabei verfügen Funktionsbausteine immer auch über eine Schnittstelle für den Datenaustausch und sind über das gesamte System hinweg eindeutig benannt, damit sie systemweit für alle Anwendungen genutzt werden können.

Damit FuBas im System funktionieren, müssen sie in eine Funktionsgruppe aufgenommen werden. Das sind ABAP-Programme, die als Container dienen. Das Besondere daran: Funktionsgruppen können nicht nur gleichzeitig mehrere Funktionsbausteine bündeln. Sie können zusätzlich andere Unterprogramme, Dynpros usw. enthalten, die allen Funktionsbausteinen innerhalt der Funktionsgruppe zur Verfügung stehen.

Funktionsbausteine berechtigen

Nehmen wir an, ein Entwickler in Ihrem Unternehmen hat eine Z-Transaktion angelegt, mit der komplexe Arbeitsvorgänge gesteuert werden. Innerhalb dieser Z-Transaktion hat er einen Funktionsbaustein verwendet. Für die Ausführung der Z-Transaktion muss auch der FuBa berechtigt werden. Dafür haben Sie verschiedene Möglichkeiten:

SU24 pflegen

Im besten Fall ist die SU24 zur Z-Transaktion korrekt gepflegt. Das bedeutet, dass alle Berechtigungsobjekte, die bei Aufruf und Ausführung der Transaktion geprüft werden, mit Vorschlagswerten versehen sind. Fügen Sie nun die Z-Transaktion ins Rollenmenü ein, werden diese Objekte inkl. der Vorschlagswerte bereits fertig in die Rolle gezogen.

Gerade bei Eigenentwicklung dürfte das aber eher die Ausnahme als die Regel sein. Deshalb kann es gut sein, dass Sie den Funktionsbaustein separat berechtigen müssen.

FuBa im Rollenmenü pflegen

Sie können RFC-Funktionsbausteine einfach ins Rollenmenü einhängen – so wie Sie das von Transaktionen gewöhnt sind.

Öffnen Sie dafür die Rolle in der PFCG, klicken Sie auf der Schaltfläche „Transaktion“ auf den kleinen Pfeil in der rechten unteren Ecke. Es öffnet sich ein Auswahlmenü. Wählen Sie hier „Berechtigungsvorschlag“ aus. In der Tabelle, die Sie nun sehen, öffnen Sie oben das Drop-Down-Menü und wählen „RFC-Funktionsbaustein“ aus. Anschließend können Sie den oder die Funktionsbausteine in die Tabelle eintragen. Und sie durch Bestätigen in das Rollenmenü aufnehmen.

Damit wird gleichzeitig ein Eintrag im Berechtigungsobjekt S_RFC erstellt. Der ist notwendig, damit die Berechtigung greifen kann.

Vorteil dieser Methode: Sie sehen übersichtlich im Rollenmenü, welche Funktionsbausteine in dieser Rolle berechtigt sind und können Sie auch relativ einfach darüber wieder entziehen. Tipp: Legen Sie im Menü einen Ordner „FuBas“ an, damit Sie den Überblick behalten – vor allem, wenn das Menü sehr viele Einträge enthält.

Nachteile dieser Methode: Sie können lediglich Funktionsbausteine berechtigen. Es ist über die Menüeinträge nicht möglich, Funktionsgruppen oder eine Range von Funktionsbausteinen zu berechtigen, wie etwa pauschal alle Z-FuBas.

FuBa über S_RFC pflegen

Deshalb können Sie die Funktionsbausteine auch direkt im Berechtigungsobjekt S_RFC pflegen. Das Objekt enthält 3 Berechtigungsfelder:

RFC_TYPE:

Hier geben Sie den Typ des RFC-Objekts an, also ob Sie einen Funktionsbaustein (FUNC) oder eine Funktionsgruppe (FUGR) berechtigen wollen.

RFC_NAME:

Hier geben Sie den Namen des FuBas oder der Funktionsgruppe an. Und hier können Sie auch eine ganze Range auf einmal berechtigen. Um das Beispiel der Z-FuBas aufzugreifen: Wenn Sie pauschal alle kundeneigenen Funktionsbausteine berechtigen wollen, können Sie hier zum Beispiel mit Einträgen wie „Z*“ arbeiten oder Sie berechtigen „Z_A*“ bis „Z_G*“.

ACTVT:

Hier geben Sie die Aktivität an, wobei nur ACTVT 16 zur Verfügung steht. Mit dieser Aktivität kann der User im Zielsystem den oben eingetragenen Funktionsbaustein.

Weitere Berechtigungen berücksichtigen

Kommen wir noch mal auf unser Eingangsbeispiel zurück. Ihr Entwickler hat eine Z-Transaktion gebaut. Damit die funktioniert, reicht es natürlich nicht, den Funktionsbaustein zu berechtigen. Und da Funktionsbausteine an allen möglichen Stellen im System für alle möglichen Anwendung eingesetzt werden können, müssen Sie in jedem Fall neu prüfen, welche Berechtigungen sie außerdem vergeben müssen.

Im Fall der Z-Transaktion brauchen Sie mindestens einen Eintrag in S_TCODE für die Startberechtigung der Transaktion selbst. Außerdem brauchen Sie – je nachdem, was die Transaktion ausführt – weitere (fachliche) Berechtigungsobjekte. Wird ein Programm ausgeführt, ist eventuell zusätzlich S_PROGRAM oder S_PROGNAM auszuprägen usw.

Exkurs: BaPi

BaPis (Business Application Programming Interface) sind Methoden, die auf Funktionsbausteinen basieren. Sie sind notwendig, um Daten aus SAP Business Objekten aufzurufen. Wenn Sie beispielsweise alle Kostenstellen sehen wollen, die Ihr System kennt, ist diese Auflistung nur möglich, weil das Business Objekt „CostCenter (Kostenstelle)“ ein BaPi „GetList“ mitbringt.

Grundsätzlich gilt: Nicht jeder Funktionsbaustein ist ein BaPi, aber jedes BaPi ist ein Funktionsbaustein. Entsprechend werden sie, wo nötig, auch genauso berechtigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert