Suche Badi für Arbeitsvorrat Plantafeltermine

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hallöchen,

Thema Klinischer Arbeitsplatz, Terminplan, Sichttyp 14 Terminplanung.

Ich möchte einen Ambulanz-Termin ca. 1 Jahr in die Zukunft planen. SAP sieht für die Anziege im sog. Arbeitssvorat hier aber nur 99 Tage, also rund 3 Monate vor. Nur innerhalb dieses Zeitraumes werden Termine im Arbeitsvorrat unter "zu planen" angezeigt. Ich habe mich bei der SAP beschwert. Die sagt, es ist aus Performancegründen nicht vorgesehen, mehr als 99 Tage Termine in die Zukunft zu planen, und ich solle mich an die DSAG wenden und einen Eintwicklungsantrag stellen. Keine Lust, keine Zeit, selbst ist der Mann.

Es existiert zwar eine Implementierung N1_WPOOL_LABEL_NODE für diesen Arbeitsvorrat, doch die zündet nur, wenn dort auch Termine erscheinen. Welche Stellschraube muss ich drehen, damit dort auch Termine > 99 Tage in der Zukunft angezeigt werden? Ein passendes Badi habe ich nicht gefunden mit diversen Tricks. Standardänderung? Das Include für diese Terminsicht wäre bei uns LN1WP014F01, die Selektionsübergabetabelle dort die lt_sel_crit. Mache ich beim Bis-Datum aus der 99 eine 999 (Tage), wird der Termin trotzdem nicht angezeigt. Schöner Mist. Bin für Hilfe dankbar.

Bild

VG
sapdepp

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


Re: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Keiner eine Idee? :oops:


Re: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Richtiger Thread. Suche Implementierungen usw. Plantafel ist reines ABAP OO.

Re: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Mein POSTING war im falschen Thread... Jetzt verstanden?

Re: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Nein, nicht verstanden. Welches Posting? Spielt auch keine Rolle, will ja nur eine Antwort auf mein OO-Problem.

Re: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Unit605 hat geschrieben:Mein POSTING war im falschen Thread... Jetzt verstanden?
sapdepp hat geschrieben:Nein, nicht verstanden. Welches Posting?
Unit605 hatte etwas gepostet, aber danach gleich wieder gelöscht als er seinen Fehler bemerkt hat.
sapdepp hat geschrieben:...will ja nur eine Antwort auf mein OO-Problem.
So wie ich den "Arbeitsvorrat" verstanden habe, werden da nur die Dinge angezeigt die noch zu planen sind. Sprich die Plantafel wird mit X zu planenden Terminen aufgerufen und diese X Termine können dann verplant werden. Meines Erachtens müsstest du da im aufrufenden Programm ansetzen und dort die notwendigen zu planenden Objekte ü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: Suche Badi für Arbeitsvorrat Plantafeltermine

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

Code: Alles auswählen.

METHOD access_scheduler.
* Aufrufparameter sind ID_PATNR und IS_NBEW

  DATA:
    lr_environment         TYPE REF TO cl_ish_environment,
    lr_errorhandler        TYPE REF TO cl_ishmed_errorhandling,
    ls_n1apcn              TYPE n1apcn,
    ld_rc                  TYPE ish_method_rc,
    lt_messages            TYPE bapirettab,
    lr_app_constr          TYPE REF TO cl_ish_app_constraint,
    lr_planning_med        TYPE REF TO cl_ishmed_prc_planning_func,
    lr_planning_ish        TYPE REF TO cl_ish_prc_planning_func,
    lr_patient             TYPE REF TO cl_ishmed_none_oo_npat,
    lt_workpool            TYPE ishmed_t_pg_workpool.

  FIELD-SYMBOLS:
    <ls_workpool>          TYPE rn1_pg_workpool.

  CLEAR ld_rc.

  cl_ish_fac_environment=>create( EXPORTING i_program_name = '...'
                                  IMPORTING e_instance     = lr_environment
                                            e_rc           = ld_rc ).

  IF ld_rc NE 0.
    EXIT.
  ENDIF.

*   create appointment constraint with treatment OE
  ls_n1apcn-mandt = sy-mandt.
  ls_n1apcn-einri = is_nbew-einri.
*  ls_n1apcn-trtoe = g_trtoe.

  cl_ish_app_constraint=>create( EXPORTING is_n1apcn       = ls_n1apcn
                                           ir_environment  = lr_environment
                                 IMPORTING er_instance     = lr_app_constr
                                           e_rc            = ld_rc
                                 CHANGING  cr_errorhandler = lr_errorhandler ).

  IF ld_rc NE 0.
    lr_errorhandler->get_messages( IMPORTING t_messages = lt_messages ).

    IF lr_environment IS BOUND.
      cl_ish_utl_base=>destroy_env( CHANGING cr_environment = lr_environment ).
    ENDIF.

    CLEAR lr_environment.

    RETURN.
  ENDIF.

  cl_ish_fac_prc_planning_func=>create( IMPORTING er_instance     = lr_planning_ish
                                                  e_rc            = ld_rc
                                        CHANGING  cr_errorhandler = lr_errorhandler ).

  TRY.
      lr_planning_med ?= lr_planning_ish.
    CATCH cx_root.
      lr_errorhandler->get_messages( IMPORTING t_messages = lt_messages ).

      IF lr_environment IS BOUND.
        cl_ish_utl_base=>destroy_env( CHANGING cr_environment = lr_environment ).
      ENDIF.

      CLEAR lr_environment.

      RETURN.
  ENDTRY.

  IF id_patnr IS NOT INITIAL.
    cl_ishmed_none_oo_npat=>load( EXPORTING i_mandt        = sy-mandt
                                            i_einri        = is_nbew-einri
                                            i_patnr        = id_patnr
                                  IMPORTING e_instance     = lr_patient
                                            e_rc           = ld_rc
                                  CHANGING  c_errorhandler = lr_errorhandler ).

    IF ld_rc NE 0.
      lr_errorhandler->get_messages( IMPORTING t_messages = lt_messages ).

      IF lr_environment IS BOUND.
        cl_ish_utl_base=>destroy_env( CHANGING cr_environment = lr_environment ).
      ENDIF.

      CLEAR lr_environment.

      RETURN.
    ENDIF.

    APPEND INITIAL LINE TO lt_workpool ASSIGNING <ls_workpool>.
    <ls_workpool>-none_oo_data = lr_patient.
  ENDIF.

  lr_planning_med->set_planning_ou( i_planoe = is_nbew-orgpf ).

  lr_planning_med->planning_with_search( EXPORTING i_with_dialog   = abap_true
                                                   i_einri         = is_nbew-einri
                                                   i_caller        = '...'
                                                   i_usage         = if_ish_pl_usage_constants=>co_usage_general
                                                   i_save          = abap_true
                                                   it_workpool     = lt_workpool
                                                   ir_environment  = lr_environment
                                         IMPORTING e_rc            = ld_rc
                                         CHANGING  cr_app_constr   = lr_app_constr
                                                   cr_errorhandler = lr_errorhandler ).

  IF ld_rc NE 0.
    lr_errorhandler->get_messages( IMPORTING t_messages = lt_messages ).

    IF lr_environment IS BOUND.
      cl_ish_utl_base=>destroy_env( CHANGING cr_environment = lr_environment ).
    ENDIF.

    CLEAR lr_environment.

    RETURN.
  ENDIF.

  IF lr_app_constr IS BOUND.
    CLEAR lr_app_constr.
  ENDIF.

  IF lr_environment IS BOUND.
    cl_ish_utl_base=>destroy_env( CHANGING cr_environment = lr_environment ).
  ENDIF.

  CLEAR lr_environment.

ENDMETHOD.
Das Coding haben wir aus irgeneinem der Standardbausteine der Plantafel rausgeholt und für unsere Zwecke modifiziert.
Im LT_WORKPOOL werden die zu verplanenden Objekte für den Arbeitsvorrat eingetragen. Vielleicht hilft dir das ja weiter.
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: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Okay... Ich merke gerade, dass das meine Antwort ein wenig Offtopic war. :oops:
Was spricht denn dagegen, den Termin halt nur für 99 Tage anzuzeigen? Der Benutzer muss dann ja sowieso bei der Datumsselektion den korrekten Tag auswählen?
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: Suche Badi für Arbeitsvorrat Plantafeltermine

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Weil viele unserer Ambulanzen Wunschtermine weit in die Zukunft planen, auch gerne mal in einem Jahr. Der Nutzer muss, um diesem Auftrag einen festen Termin in der Plantafel zu geben, direkt aus dem Auftrag in die Plantafel verzweigen. Das ist dem Anwender natürlich zu umständlich. Deswegen wollen wir solche Wunschtermine links im Arbeitsvorrat anzeigen lassen, da man dort nicht lange suchen muss und die Termine auch sortiert sind nach Datum. :P

Re: Suche Badi für Arbeitsvorrat Plantafeltermine

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

LT_WORKPOOL ist beim Aufruf des Terminplanungsgrids und der Wunschtermine schon vorbelegt mit den Daten bis max. 99 Tage in die Zukunft. Beim Debuggen habe ich zunächst den Füllzeitpunkt von LT_WORKPOOL nicht finden können, um Hand anzulegen, ich musste erst ins Systemdebugging schalten. Und siehe da, es handelt sich um die Klasse CL_ISHMED_SELECTION_SERVICES mit der Methode READ_OP_WORKPOOL. Dort kann ich die Tage manipulieren von 99 auf bspw. 999. Nachteil: Standardanpassung und SPAU irgendwann. Aber so geht's.

Danke für den Tipp.

VG
sapdepp

Seite 1 von 1

Vergleichbare Themen

2
Antw.
5794
Views
BAdI Suche..???
von Basler84 » 07.08.2012 08:27 • Verfasst in ABAP® für Anfänger
0
Antw.
1247
Views
Suche BadI für die Umlagen und Verteilung im CO
von Frog » 25.03.2008 15:01 • Verfasst in Financials
1
Antw.
3034
Views
PT40 - Arbeitsvorrat
von Nicole_80 » 14.06.2004 09:36 • Verfasst in Human Resources
1
Antw.
2029
Views
Fehlerbehandlung (RPTERR00) im Arbeitsvorrat (PT40)
von ginotico » 09.06.2006 10:06 • Verfasst in Human Resources
8
Antw.
3097
Views
Suche Tabelle
von BesenWesen » 23.05.2008 15:53 • Verfasst in ABAP® für Anfänger

Ü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.