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.
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.
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.
*
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.
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.
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ü.
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.
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.
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.
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.
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.