



Code: Alles auswählen.
method IF_EX_N1_CORDER_PREALLOC~PREALLOC.
  DATA: lr_prc_corder   TYPE REF TO cl_ish_prc_corder,
        lr_corder       TYPE REF TO cl_ish_corder,
        lr_comp_order   TYPE REF TO CL_ISH_COMP_ORDER,
        lr_errorhandler TYPE REF TO cl_ishmed_errorhandling,
        l_vcode         TYPE tndym-vcode,
        l_rc            TYPE ish_method_rc.
  DATA: lt_component TYPE ISH_T_COMPONENT.
  DATA: lr_main_object        type REF TO if_ish_identify_object,
        lt_additional_objects TYPE ish_t_identify_object.
  data: lr_service type REF TO cl_ishmed_service,
        lr_environment TYPE REF TO cl_ish_environment,
        ls_nlei type nlei,
        ls_nlem type nlem,
        lt_objectlist type ish_objectlist,
        lr_objectlist type REF TO ish_object,
        l_leist type nlei-leist,
        lr_cordpos  TYPE REF TO CL_ISHMED_PREREG,
*        lr_corder type REF TO cl_ish_corder,
        l_posnr type N1CORDPOSNR.
  CALL METHOD cr_corder->IF_ISH_OBJECTBASE~GET_ENVIRONMENT
    IMPORTING
      E_ENVIRONMENT = lr_environment
      .
  CALL METHOD lr_environment->GET_DATA
*    EXPORTING
*      I_TYPE         =
*      IT_TYPES       =
    IMPORTING
      E_RC           = l_rc
      ET_OBJECTLIST  = lt_objectlist
    CHANGING
      C_ERRORHANDLER = lr_errorhandler
      .
  loop at lt_objectlist REFERENCE INTO lr_objectlist.
    try.
      lr_service ?= lr_objectlist->object.
      lr_service->get_leist( RECEIVING r_leist = l_leist ).
      lr_service->get_data( IMPORTING e_nlei = ls_nlei
                                      e_nlem = ls_nlem ).
      if l_leist eq 'FLNGEEDE'.
      " Zeilen an lt_services anhängen mit neuer BA- oder BU-Leistung, 
      " sodass im KLAT diese beiden Leistungen zusätzlich angezeigt werden.
        ... so in der Art hier ...
        APPEND lr_objectlist TO lt_objectlist. "BU-Leistung
        APPEND lr_objectlist TO lt_objectlist. "BA-Leistung
        ...
      endif.
      catch cx_root.
    ENDTRY.
  endloop.
endmethod.
Code: Alles auswählen.
DATA lt_cordpos TYPE ish_t_cordpos.
FIELD-SYMBOLS <lr_cordpos> TYPE REF TO CL_ISHMED_PREREG.
cr_corder->get_t_cordpos( IMPORTING et_cordpos = lt_cordpos
                                CHANGING  cr_errorhandler = cr_errorhandler ).
LOOP AT lt_cordpos ASSIGNING <lr_cordpos>.
* Hier die jeweilige Verarbeitung rein
ENDLOOP.Code: Alles auswählen.
*Auslesen der Leistungen
<lr_cordpos>->get_t_service( IMPORTING et_service  = lt_service
                                CHANGING  cr_errorhandler = cr_errorhandler ).
* Hinzufügen von Leistungen
<lr_cordpos>->ADD_SERVICE( ... )
*bzw.
<lr_cordpos>->ADD_NEW_SERVICE( ... )Code: Alles auswählen.
*Bestimmen der korrekten Komponente
<lr_cordpos>->GET_T_COMPPOS( IMPORTING ET_COMPONENT = lt_component
                                CHANGING  cr_errorhandler = cr_errorhandler ).
LOOP AT lt_component ASSIGNING <lr_component>.
  try.
      lr_component_service ?= <lr_component>. "<-- lr_component_service muss dem gesuchten Typ der KLAT-Komponente entsprechen
    catch cx_root.
  endtry.
  if lr_component_service is bound.
* Aufrufen der nativen Methoden der Komponente zum Aulesen/Hinzufügen der Leistung.
* Da das je Komponente unterschiedlich sein kann, kann ich hier kein Beispiel angeben.
    exit.
  endif.
endloop.Code: Alles auswählen.
data: lr_service type REF TO cl_ishmed_service,
      lt_service TYPE ishmed_t_service_object,
      lt_cordpos TYPE ish_t_cordpos,
      lr_errorhandler TYPE REF TO cl_ishmed_errorhandling,
      lr_component_service type REF TO CL_ISHMED_COMP_SERVICES,
      lt_component TYPE ISH_T_COMPONENT.
FIELD-SYMBOLS: <lr_cordpos> TYPE REF TO CL_ISHMED_PREREG,
               <lr_service> TYPE REF TO cl_ishmed_service,
               <lr_component> TYPE REF TO IF_ISH_COMPONENT.
Code: Alles auswählen.
  cr_corder->get_t_cordpos(
    IMPORTING et_cordpos = lt_cordpos
    CHANGING  cr_errorhandler = cr_errorhandler ).
  LOOP AT lt_cordpos ASSIGNING <lr_cordpos>.
* Hier die jeweilige Verarbeitung rein
* Auslesen der Leistungen
    <lr_cordpos>->get_t_service(
      IMPORTING et_service = lt_service
      CHANGING  cr_errorhandler = lr_errorhandler ).
* Bestimmen der korrekten Komponente
    <lr_cordpos>->GET_T_COMPPOS(
      IMPORTING ET_COMPONENT = lt_component
      CHANGING  cr_errorhandler = lr_errorhandler ).
    LOOP AT lt_component ASSIGNING <lr_component>.
      TRY.
        lr_component_service ?= <lr_component>.
"<-- lr_component_service muss dem gesuchten Typ der
"KLAT-Komponente entsprechen
      CATCH cx_root.
      ENDTRY.
      IF lr_component_service IS BOUND.
* Aufrufen der nativen Methoden der Komponente zum Aulesen/Hinzufügen
* der Leistung.
* Da das je Komponente unterschiedlich sein kann, kann ich hier kein
* Beispiel angeben.
        EXIT.
      ENDIF.
    ENDLOOP.

Reicht man denen einmal den kleinen Finger, reißen die einem glatt den Arm aussapdepp hat geschrieben:Es kann durchaus sein, dass jetzt neue Anfragen kommen, weil die Nutzer nun sehen, was so möglich ist.
Gut wenn man dann bereits im Krankenhaus arbeiteta-dead-trousers hat geschrieben:Reicht man denen einmal den kleinen Finger, reißen die einem glatt den Arm aussapdepp hat geschrieben:Es kann durchaus sein, dass jetzt neue Anfragen kommen, weil die Nutzer nun sehen, was so möglich ist.