Produktstrukturbrowser (PSB)

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

Alles Rund um SAP®.
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Produktstrukturbrowser (PSB)

Beitrag von Mike81503 ( / / 0 / 3 ) »
Hallo Leute,

kann mir jemand verraten, wie ich im PSB eigene Funktionen reinhängen kann ? Über den BADI CPDMBROWSEREXTENSION konnte ich zumindest die Toolbar schon um einen eigenen button erweitern. Nur ist mir völlig unklar, wo ich den Funktionscode dieses Button abfragen bzw. behandeln kann. Hat jemand einen Tip ? Danke und Gruss.

Michael

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


Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

Die Events sollten in der Methode HANDLE_MENU_FUNC auftauchen. Dort kannst Du dann entsprechend darauf reagieren.

Gruss,
Josef

HANDLE_MENU_FUNC

Beitrag von mike81503 ( / / 0 / 3 ) »
Hallo Josef,

erst einmal Danke, dass Du auf meine Anfrage reagiert hast (habe schon garnicht mehr mit einer Antwort gerechnet). Die von Dir genannte Methode gibt es im BAdI nicht (auch nicht in der Klasse für die Toolbar). Im BAdI gibt es nur die Methode HANDLE_CTMENU_FUNC, ich möchte aber kein Kontextmenü benutzen. Habe ich gerade Tomaten auf den Augen oder einen Knoten im Hirn ? Gib mir bitte mal einen Tip.

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

hab selbst mal nachgefragt und die Antwort bekommen, man solle es mal mit CTMENU_FUNC probieren. Kommst Du damit weiter?

Gruss,
Josef

Produktstrukturbrowser (PSB)

Beitrag von mike81503 ( / / 0 / 3 ) »
Hallo Josef,

das mit dem Kontextmenü möchte ich eigentlich vermeiden, da die Funktion, die ich mittels des Button aufrufen möchte, die bis dahin markierten Daten im PSB verarbeiten soll. Beim Nutzen des Kontextmenüs - sprich beim Benutzen der rechten Maustaste - ist mir die Gefahr zu groß, daß bei einem falschen Klick die markierten Daten entmarkiert werden. Ich habe schon gesehen, dass das mit dem Button irgendwie funktioniert (nur wie?). Die Frage ist, ob ich das Button-Event und das Kontext-Menü-Event irgendwie verknüpfen kann. Das mit dem Kontext-Menü habe ich schon realisiert (als Workaround). Aber Ziel ist es, das mit dem Toolbarbutton hinzubekommen (ohne zu modifizieren). Vielleicht findet sich ja noch eine Antwort. Danke für Deine Mühe.

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

Du hast nicht zufällig ein Beispiel, dass Du hier posten könntest? Dann könnte ich etwas detaillierter rumkramen.
Danke.

Gruß,
Josef

BAdI Implementierung

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Josef,

hier einmal die implementierten Methoden:

in dieser Methode füge ich den Button in die Toolbar:

METHOD if_ex_cpdmbrowserextension~create_product_tree_control.
* ...


INCLUDE <icon>.

*
DATA: aux_event TYPE cntl_simple_event,
aux_events TYPE cntl_simple_events.
DATA: aux_container TYPE REF TO cl_gui_container,
aux_toolbar TYPE REF TO cl_gui_toolbar.
DATA: quickinfo_text TYPE iconquick,
cross TYPE csdata-xfeld VALUE 'X'.

DATA: iconname TYPE iconname.




MOVE: icon_create TO iconname,
'Test' TO quickinfo_text.

CALL METHOD i_toolbar->add_button
EXPORTING fcode = 'OMS'
icon = iconname
butn_type = cntb_btype_button
quickinfo = quickinfo_text
EXCEPTIONS cntl_error = 01.


ENDMETHOD.


In dieser Methode wird der entsprechende Kontextmenüeintrag erzeugt:

METHOD if_ex_cpdmbrowserextension~handle_node_ctmenu_at_start.
* ...


CALL METHOD c_menu->add_function
EXPORTING
fcode = 'OMS'
text = 'Test'.
*

CALL METHOD c_menu->add_separator.

ENDMETHOD.

In der Methode
METHOD if_ex_cpdmbrowserextension~handle_ctmenu_func.
wird dann die entsprechende (ausgesteuert am FCode) Funktion ausgelöst.

Ich habe leider bisher nicht herausgefunden, wo ich den Ok-Code durch den Toolbar-Button sonst abfangen kann. Es wird im Badi eine Form CONTROL_DISPATCH durchlaufen, die lässt aber keinen anderen von außen definierten Ok-Code zu. Ich wollte schon einen Standard Ok-code von der Anwendung mißbrauchen, was es aber auch nicht sein kann. Vielleicht findest Du eine Möglichkeit einer Implementierung des BAdIs CPDMBROWSEREXTENSION, bei der der Ok-Code der Toolbar abgefangen werden kann.

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

ich denke das ist ein grundsätzliches Problem im BADI. Da scheint noch was zu fehlen. Hab mal mit dem Entwickler selbst gesprochen, der meint, er müsse da noch was erweitern. Wenn Du willst sag ich Dir Bescheid, wenn sich was getan hat. Kann allerdings ein bisschen dauern. Bis dahin: workaround über Kontextmenü.

Gruss,
Josef

Silberstreif am Horizont

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Josef,

Danke für Deine Hilfe und dass Du Dir die Mühe gemacht hast, dem Problem nachzugehen (ich schmeiss Dir gern auch mal einen Stein in den Garten ;-) ). Zumindest muss ich nicht mehr an meinem (Sach-)Verstand zweifeln. Lohnt es sich dann dafür eine OSS-Meldung aufzumachen, damit es einen Hinweis dafür gibt oder kann man in einem der nächsten Support-Packages mit einer Lösung rechnen ? Danke auf jeden Fall und bis vielleicht demnächst.

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hi Michael,

brauchst keine OSS-Meldung aufmachen. Hab dem Entwickler schon Bescheid gesagt und er hat versprochen, sich darum zu kümmern. Werd Dir in nächster Zeit sicherlich mehr sagen können. Wird mit ziemlicher Sicherheit nächste Woche werden. Sobald ich was hab, post ich es Dir hier rein.

Gruss,
Josef

Schon was Neues ?

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Josef,

gibt es schon irgendwelche Neuigkeiten von der PSB-BAdI Front ?

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

leider verzögert sich das ganze im Moment aufgrund administrativer Probleme. Der Entwickler ist aber dran, ich hab extra nochmals nachgefragt. Sobald es eine Lösung (Hinweis) gibt, wird sie hier sofort gepostet.

Gruss,
Josef

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

wir haben gerade folgendes herausgefunden:
Die Tabelle TCPDM01 ist eine Tabelle mit Funktionsbausteinen und deren Zuordnung von Funktionscodes an der Toolbar für den Produktstrukturbrowser. Wichtig ist, dass der 'echte' Funktionscode Mit $USR anfängt, da diese ersten 4 Zeichen beim Vergleich gegen die obige Tabelle abgeschnitten werden.
Beispielsweise würde $USRFCT1 nach 'FCT1' in dieser Tabelle suchen.

Der Aufruf erfolgt dann so:

Code: Alles auswählen.

          CALL FUNCTION lcl_fct_module
               EXPORTING function         = okcode

               TABLES    selected_objects = lcl_sel_objects.
Schau Dir dazu den Hinweis 436704 an.

Gruss,
Josef

Support Package

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Josef,

den Hinweis gibt es ja schon länger. Bedeutet das, dass diese Änderungen nie im Standard ausgeliefert werden ? Oder kann man doch irgendwann in einem Support-Package damit rechnen ? Danke für Deine Antwort.

Gruss Michael

Beitrag von Josef ( / / 0 / 3 ) »
Hallo Michael,

ich denke man kann davon ausgehen, das es in den Standard zieht. Leider kann ich Dir nichts genaueres sagen, ich hoffe, das reicht Dir :-)

Gruss,
Josef


Ü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

LSMW-Problem
vor 4 Tagen von mazu gelöst 5 / 1253
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1253

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

LSMW-Problem
vor 4 Tagen von mazu gelöst 5 / 1253
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1253

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 87057
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 140285