benutzerdefinierter GUI-Status in Plantafel/Terminplanung

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

Benutzeroberflächen in SAP®-Systemen.
25 Beiträge • Seite 1 von 2 (current) Nächste
25 Beiträge Seite 1 von 2 (current) Nächste

benutzerdefinierter GUI-Status in Plantafel/Terminplanung

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hallo,

hat schon mal jemand in der Plantafen/Terminplanung des Klinischen Arbeitsplatzes einen eigenen GUI-Status definiert und kann mir einen brauchbaren Link/Doku hier listen? Ich möchte einen zusätzlichen Button einfügen, der bei Klick in den Patorganizer des im Terminplan markierten Patienten springt. Dazu gibt es auch Userexits (Erweiterung N1USEGUI), die aber halt so einen Z-GUI-Status verlangen.

Noch besser wäre, den Patorganizer ins Kontextmenü des markierten Patienten einzublenden, was aber nicht zu gehen scheint.

Für hilfreiche Seitentritte wäre ich dankbar.

Viele Grüße
sapdepp

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


Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Allgemeiner Tipp:
Im Menü unter System->Status findet man das aktuelle Dynpro.
Bei der Plantafel ist es SAPLN1_PLANNING_GRID 0100.

Dort im PBO nach dem SET PF-STATUS Aufruf suchen.
Im Falle der Plantafel ist das etwas versteckt in den Methoden CL_ISHMED_PLANNING_GRID=>PROCESS_BEFORE_OUTPUT bzw. CL_ISHMED_PLANNING_GRID=>INITIALIZE_CUA. Da findet sich dann der Baustein ISHMED_SET_CUA und die zugehörige Customizingtabelle N1GUISTATUS.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hallo, ADT,

besten Dank, wieder was gelernt.

Die N1GUISTATUS ist über die SM30 pflegbar. Da es keine F4-Auswahlhilfe für die FuGru und den GUI-Status gibt, nehme ich an, dass man hier im Z-Namensraum frei Schnauze Namen vergeben kann. FuGru und GUI-Status könnten dann später angelegt werden, oder müssen die vorher schon vorhanden sein im Dictionary?
Merkwürdig ist auch, dass in unserem System zu einer SAP-FuGru N1L5 ein Z-GUI-Status gepflegt wurde. Das geht doch nur per Modifikation? Komisch.

Bild

VG
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
sapdepp hat geschrieben:FuGru und GUI-Status könnten dann später angelegt werden, oder müssen die vorher schon vorhanden sein im Dictionary?
Wenn sie zum Zeitpunkt des Aufrufs von SET PF-STATUS nicht existieren kommt glaub ich ein Kurzdump.
sapdepp hat geschrieben:Merkwürdig ist auch, dass in unserem System zu einer SAP-FuGru N1L5 ein Z-GUI-Status gepflegt wurde. Das geht doch nur per Modifikation?
Ja. Haben wir (früher) auch einige so angelegt damit die Einstellungen der Standard-Funktionstasten auch vom Standard gezogen werden (Ikone, Text, usw.) und keine "Kopie" sind. Mittlerweile machen wir das aber nicht mehr.

LG ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hi ADT,

ich hatte das ganze "Gelumpsch" inzwischen hinbekommen, indem ich die FuGru N1SL5 in den Z-Namensraum kopiert habe und dort einen Z-GUI-Status angelegt habe. Später habe ich dann den Mausklick auf den Button im Userexit ZXN1USERSEXITSGUIU03 ausprogrammiert mit Hilfe von FuBa ZXN1USERSEXITSGUIU03.
Will damit sagen, dass alles klappt.

VD + vG
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hi AdT,

die Kollegen wollen nun einen zweiten Status-Button, der bei Klick ändernd in den Klinischen Auftrag des markierten Termins springen soll. Das Anlegen ist dank deines Tipps von oben nicht das Problem.

Beim KLAT bewegen wir uns wieder in ABAP OO. Um dem neuen Button 'ZKLAT' mitzuteilen, er möge bei Klick ändernd in den KLAT springen, muss ich ein Objekt lr_planning_grid vom Typ cl_ishmed_planning_grid vorladen. Es gibt u. a. den FuBa 'ISHMED_CALL_PLANNING_GRID', der das aber auch nur schafft, wenn lr_planning_grid referenziert ist. Der FuBa des Userexits hat das Planning-Grid-Objekt natürlich nicht in der Schnittstelle drin.
Gibt's `ne feine Möglichkeit, die aktuelle Plantafel, die ich gerade auf dem Bildschirm sehe, bei Klick auf 'ZKLAT' vorzuladen (so eine Art PBO ...), um dann mit dem markierten Termin ändern in den KLAT zu springen ohne den Dump OBJECTS_OBJREF_NOT_ASSIGNED? Im Debugging habe ich leider weder unter Locals noch Globals mein Planning-Grid-Objekt in irgendeiner Variable referenziert. :-(

Besten Dank und viele Grüße
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Wir haben sowas zwar nicht in Verwendung, aber aus meiner Erfahrung heraus würde ich NICHT die Plantafel erneut laden/instanzieren, sondern gleich den KLAT direkt aufrufen.
Normalerweise bekommst du im User-Exit ISHMED_CALL_SAPLN1PLANT_USF/EXIT_SAPLN1PLANT_USF bzw. Include ZXN1USERSEXITSGUIU03 im Parameter T_DATA_PRV die angezeigten Elemente der Plantafel mitgeliefert. Die müsstest du nur auf einen Termin casten und kannst dann, glaub ich, die Bearbeitung des KLATs daraus aufrufen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Okay. Das mit dem T_DATA_PRV ist Mist:
Tabelle mit nicht gespeicherten Daten (Daten, die sich noch nicht auf der Datenbank befinden).
Du musst dir wohl oder übel deine Objekte aus den T_NTMN, T_NAPP usw. zusammenbauen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hi AdT,

die T_NAPP und T_NTMN werden geladen, jedoch benötige ich, um den KLAT ändernd aufzurufen (habe es über mehrere Wege probiert), immer die olle Klasse CL_ISHMED_PLANNING_GRID, die bei Klick auf 'ZKLAT' aber nicht referenziert ist. Die hat ´ne schicke Methode im Bauch 'CORDER_CHANGE', wo intern über eine weitere Protected Method lr_corder und lr_cordpos übergeben werden und der Auftrag ändernd gezündet wird.

Gibt's da nicht eine Möglichkeit, irgendwie ein Objekt fürs aktuelle CL_ISHMED_PLANNING_GRID zu laden und das zu übergeben? Oder – ich vermute, dass es das gibt - eine völlig unabhängige Klasse samt Methode oder einen FuBa zu verwenden, der den KLAT ändernd aufruft mit den Daten aus NAPP und NTMN?

VD + vG
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Vielleicht funktioniert ja dieser "dirty" Assign auf die aktuelle Instanz:

Code: Alles auswählen.

FIELD-SYMBOLS: <lr_planning_grid> TYPE REF TO cl_ishmed_planning_grid.
ASSIGN ('(SAPLN1_PLANNING_GRID)G_PLANNING_GRID') TO <lr_planning_grid>.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Ich weiß zwar nicht, wie man auf so was kommt als Normalsterblicher, aber es klappt bis hierher mit dem Dirty Assign. :D Muss mich mit dem Dirty Assign mal näher auseinandersetzen. Eine Zeile Coding, und alles ist drin.

Nun schrieb ich ja, die Methode CORDER_CHANGE sei schick. Leider ist sie protected. So eine Sch... Als Exportparameter enthält sie den von mir benötigten it_run_data vom Typ ish_t_run_data. Den erhalte ich wiederum aus der Protected Method GET_SEL_ENTRIES über Importparameter LT_OBJECTS. Ein Loop drüber und Downcast auf lr_run_data ?= <ls_object> könnte hier helfen. lr_run_data zeigt auf Klasse CL_ISH_RUN_DATA. Wie gesagt, alles protected. Da kommt man nicht ran. Ergo Sch...

Ich habe dann mal getrickst und mir das PAI eines SAP-eigenen KLAT-Aufrufes debuggt. Dadurch, dass ich mittels deinem (!) Dirty Assign nun lr_planning_grid instanziert habe, kann ich per Klick auf 'ZKLAT' ein PAI simulieren, indem ich statisch den SAP-eigenen Funktionscode 'CHANGE_COR' übergebe. Freude. Das Schönste ist, dass die Methode Process_after_input public ist. Juhu.

Code: Alles auswählen.

FIELD-SYMBOLS: <lr_planning_grid> TYPE REF TO cl_ishmed_planning_grid.

* Dirty Assign
ASSIGN ('(SAPLN1_PLANNING_GRID)G_PLANNING_GRID') TO <lr_planning_grid>.

l_okcode = 'CHANGE_COR'.

CALL METHOD <lr_planning_grid>->process_after_input
  EXPORTING
    i_ok_code      = l_okcode
  IMPORTING
    e_rc           = l_rc
  CHANGING
    c_errorhandler = lr_err.
So klappt die Sache, auch wenn's nicht die feine ABAP'sche Art ist. Egal. Wenn die User damit zurechtkommen, wäre das Problem dank deiner Hilfe zunächst vom Tisch. :-)

Besten Dank mal wieder und viele Grüße
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Gern geschehen. :evil:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Jetzt wird's tricky. Die Nutzer merken, was so geht, und wollen nun mehr. Ich/du sind die Leidtragenden. :wink:

Ähnliches Problem wie am 26.9. Noch ein Button ZKLATPRINT. Der soll jetzt quasi den KLAT in der Druckvoransicht zeigen. Unser Button ZKLAT vom 26.9. springt ja per Dirty Assign ändernd in den KLAT hinein. Fein. In diesem KLAT gibt es u. a. ein Drucksymbol, was über paar Umwege die Druckvorschau generiert. Der SAP-Funktionscode hier wäre PRT_CORD. Weil unsere Nutzer verwöhnt sind, möchten die direkt aus dem Terminplan heraus auf ZKLATPRINT klicken und die Vorschau sehen, ohne den Umweg über den KLAT nehmen zu müssen.

Ich müsste quasi mit einem ähnlichen Dirty Assign sicherlich zunächst das Terminplanumfeld laden, wo Corder-ID und VKGID enthalten sind, und mit dieser "Ladung" wieder einen Dirty Assign für die Druckansicht des KLATs bauen. Der erste funktionierende (!) Dirty Assign wäre eventuell:

Code: Alles auswählen.

DATA: lr_planning_grid TYPE REF TO cl_ishmed_planning_grid,
      lr_err           TYPE REF TO cl_ishmed_errorhandling,
      lr_prc_corder    TYPE ref TO cl_ishmed_prc_corder,
      lr_env           TYPE REF TO cl_ish_environment.

DATA: l_okcode TYPE sy-ucomm,
      l_rc      TYPE ish_method_rc.

DATA: lt_wplace_objects TYPE ish_objectlist,
      lt_NWPLACET TYPE ISHMED_T_NWPLACET.

FIELD-SYMBOLS: <lr_planning_grid> TYPE REF TO cl_ishmed_planning_grid.
FIELD-SYMBOLS: <lr_prc_order> TYPE REF TO CL_ISHMED_PRC_CORDER. "cl_ish_prc_corder.

...

  when 'ZPRINTKLAT'.

* Dirty Assign auf aktuelle Instanz
    ASSIGN ('(SAPLN1_PLANNING_GRID)G_PLANNING_GRID') TO <lr_planning_grid>.

    CALL METHOD <lr_planning_grid>->GET_ENVIRONMENT
      RECEIVING
        RR_ENVIRONMENT = lr_env.
Der zweite, so nicht funktionierende Dirty Assign, der dann letztendlich das Drucken vorgaukeln soll per Fkt.code PRT_CORD, müsste wieder ein ähnlicher sein wie damals. Hier scheitere ich noch, weil die Klasse CL_ISHMED_PRC_CORDER, die mir zur Verfügung steht, keine geeignete PAI-Methode hat, um den Fkt.code zu verarbeiten – oder ich finde sie bloß nicht. Ich brauche `ne Methode, die das Environment aus dem ersten Assign und den Funktionscode i_ok_code als Importparameter hat, um dann letztendlich den Druck zu zünden.

Code: Alles auswählen.

* Dirty Assign auf KLAT-Instanz (Wunschvorstellung)
    ASSIGN ('(SAPLN1_MDY_CORDER)GR_PRC_CORDER') TO <lr_prc_order>.

* für die zweite Instanz
* Fkt.code für PAI
    l_okcode = 'PRT_CORD'.

* Zündung (Wunschvorstellung)
    CALL METHOD <lr_prc_order>->PAI...
      EXPORTING
        i_ok_code      = l_okcode
        i_env          = lr_env
      IMPORTING
        e_rc           = l_rc
      CHANGING
        c_errorhandler = lr_err.
Oder muss ich mir eine geeignete Druckmethode suchen und vorher den ganzen ollen KLAT wieder neu aufbauen? Das wäre doof.

VD + vG
sapdepp

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Hi.

Die Methode die du brauchst lautet CL_ISH_PRC_CORDER=>PRINT. Die Instanz dazu gibts aber erst wenn der KLAT geladen wurde.
Ergo, musst du den KLAT anhand deiner Daten aus NTMN und NAPP "manuell" instanzieren und die Verarbeitung aufrufen.
Laden eines KLATs geht über CL_ISH_CORDER=>LOAD.
Für den Ausdruck hab ich auf die schnelle die Methode CL_ISHMED_FUNCTIONS=>CALL_CLINICAL_ORDER_PRINT gefunden.
In IT_OBJECTS-OBJECT müsstest du da die CL_ISH_CORDER Instanz übergeben.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: benutzerdefinierter GUI-Status in Plantafel/Terminplanun

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Besten Dank.
Laden eines KLATs geht über CL_ISH_CORDER=>LOAD.
Diese statische LOAD-Methode ist allerdings Protected. Hmm. :?

Vergleichbare Themen

7
Antw.
680
Views
benutzerdefinierter CSV Ausgabepfad
von jonasx46 » 04.12.2019 10:41 • Verfasst in ABAP® für Anfänger
0
Antw.
1709
Views
3
Antw.
2803
Views
Dynamische Maßnahme/Terminplanung
von Nicole_80 » 19.11.2007 15:08 • Verfasst in Human Resources
5
Antw.
624
Views
GUI-Status
von il.ost » 10.04.2019 08:57 • Verfasst in ABAP® für Anfänger
20
Antw.
11841
Views
GUI Status
von robin1at » 01.02.2006 12:20 • Verfasst in ABAP® für Anfänger

Ü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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140