Einfügen eines eigenen Programms als Aufgabe 

Verwendung

Eine eigene Transaktion können Sie direkt in einen Aufgabenplan einbinden, ohne Änderungen an der Transaktion durchführen zu müssen.

Wenn Sie ein eigenes Programm haben, der periodisch ausgeführt wird, können Sie diesen so erweitern, daß Sie diesen in Ablaufdefinitionen (Workflows) benutzen können und Sie den Status der Verarbeitung im Monitor sehen können.

Damit das Programm den Arbeitsvorrat verwenden kann, müssen die Programmierrichtlinien für den Jobmonitor und die Ablaufdefinition erfüllt sein. Zusätzlich müssen Sie weitere Programmerweiterungen vornehmen.

Vorgehensweise

Eigenes Programm an Monitor anschließen

Standardmäßig ist das Programm CUSTOMER_REPORT im System vorhanden. Dieser zeigt Ihnen den Aufruf zweier Funktionsbausteine, die den einfachsten Anschluß an den Monitor bewirken (ohne Workflowanschluß).

Binden Sie die beiden Includes SCHEDMAN_INIT und SCHEDMAN_CLOSE in Ihr Programm ein. Damit ist dieser an den Monitor der Jobs angeschlossen.

Eigenes Programm für Ablaufdefintion nutzbar machen

Möchten Sie Ihr Programm auch in Ablaufdefinitionen nutzen, müssen Sie im Selektionsbild das Include RKASMAWF einbinden.

Zu Beginn der Verarbeitung bauen Sie statt des oben erwähnten Includes SCHEDMAN_INIT das folgende Coding ein:

data: gs_key like schedman_key.

data: ls_detail like schedman_detail_user.

data: ls_appl like schedman_customer.

data: ld_dummy(20) value 'ABCDEFGHIJKL'.

constants: customer_appl like smmain-application value 'CUSTOMER'

ls_detail-application = customer_appl.

ls_detail-repid = sy-repid.

* ls_detail-testflag = true. "Decide if testrun or not

ls_appl-customer_field = ld_dummy.

CALL FUNCTION 'KPEP_MONI_INIT_RECORD'

EXPORTING

LS_DETAIL = ls_detail

* LS_WITEM =

LS_APPL = ls_appl

* LD_WORKLIST_FLAG = ' '

IMPORTING

LS_KEY = gs_key.

* TABLES

* LT_SELKRIT =

* LT_PARAM =

In der Struktur SCHEDMAN_CUSTOMER können Sie eigene Felder hinterlegen, die Sie zur Laufzeit mit Werten füllen.

Am Ende der Verarbeitung des Programms bauen Sie statt des Includes SCHEDMAN_CLOSE folgendes Coding ein:

data: ld_aplstat like smmain-aplstat.

data: LS_SCMA_EVENT LIKE SCMA_EVENT.

constants: c_status_ok value '0'.

constants: c_status_undefined value '2'.

constants: c_status_error value '4'.

constants: c_status_aborted value 'A'.

include schedman_events.

*.decide the status you want to send

ld_aplstat = c_status_ok.

* ld_aplstat = c_status_undefined.

* ld_aplstat = c_status_error.

* ld_aplstat = c_status_aborted.

*.If the report ended with error -> stop whole workflow. Otherwise

*.start the next job

if ld_aplstat = '4' or ld_aplstat = 'A'.

ls_scma_event-wf_event = cs_wf_events-error.

else.

ls_scma_event-wf_event = cs_wf_events-finished.

endif.

*.the variables wf_witem and wf_okey

*.are from include RKASMAWF and are filled AUTOMATICALLY

*.fill them into strcuture ls_scma_event

ls_scma_event-WF_WITEM = wf_witem.

ls_scma_event-WF_OKEY = wf_okey.

CALL FUNCTION 'KPEP_MONI_CLOSE_RECORD'

EXPORTING

LS_KEY = gs_key

* LS_MESSAGE =

* LD_OBJECTS =

* LS_EXT =

* LS_RL =

LS_SCMA_EVENT = ls_scma_event

* TABLES

* LT_SPOOL =

CHANGING

LD_APLSTAT = ld_aplstat

EXCEPTIONS

NO_ID_GIVEN = 1

OTHERS = 2.

Bei Programmen, die Sie in Ablaufdefinitionen einbinden möchten, sollten Sie folgendes beachten:

Tragen Sie den Namen Ihres Programms nun im Schedule Manager als Kundenprogramm ein. Weitere Informationen hierzu finden Sie unter Eigene Programme als Aufgaben einfügen.

Nach diesen Einstellungen können Sie ein eigenes Programm in eine Ablaufdefinition einbinden und sehen das Ergebnis im Monitor.