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.