!--a11y-->
Insertion de programmes propres comme tâches 
Utilisation
Vous pouvez intégrer directement une transaction qui vous est propre dans le plan de tâches sans devoir apporter de modifications à la transaction.
Si vous exécutez périodiquement votre propre programme, vous pouvez étendre ce programme de façon à ce qu’il puisse être utilisé dans des définitions de déroulement (workflows) et que son statut de traitement s’affiche dans le moniteur.
Pour que le programme utilise la réserve de travail, les règles de programmation du moniteur de jobs et la définition de déroulement doivent être respectées. Vous devez procéder à des extensions de programme supplémentaires.
Procédure
Liaison de votre propre programme au moniteur
Vous disposez dans le système du programme standard CUSTOMER_REPORT. Celui-ci vous indique comment appeler deux modules fonction qui permettent d'établir la liaison la plus simple avec le moniteur.
Incorporez les programmes Include SCHEDMAN_INIT et SCHEDMAN_CLOSE à votre programme. Le programme est lié au moniteur de jobs.
Utilisation de votre programme pour la définition de déroulement
Si vous souhaitez également utiliser votre programme dans des définitions de déroulement, vous devez incorporer le programme Include RKASMAWF dans l’écran de sélection.
Au début du traitement, insérez le code suivant au lieu de l’include SCHEDMAN_INIT mentionné ci-dessus :
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. "Décidez si vous exécutez un test ou non
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 =
Dans la structure SCHEDMAN_CUSTOMER, vous pouvez définir vos propres zones. Vous pourrez les compléter lors de l’exécution du programme.
À la fin du traitement du programme, insérez le code suivant au lieu de l’include SCHEDMAN_CLOSE :
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.
*.Déterminez le statut à afficher
ld_aplstat = c_status_ok.
* ld_aplstat = c_status_undefined.
* ld_aplstat = c_status_error.
* ld_aplstat = c_status_aborted.
*.Si l’état comporte des erreurs
® arrêter le workflow entier. Sinon*.exécuter le job suivant
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.
*.Les variables wf_witem et wf_okey
*.proviennent de l’include RKASMAWF et sont renseignées AUTOMATIQUEMENT
*.Renseignez-les dans la structure 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.

En ce qui concerne les programmes à inclure dans des définitions de déroulement, notez ce qui suit :
Saisissez le nom de votre programme comme un programme client dans le Schedule Manager. Pour plus d’informations, reportez-vous à
Insertion de programmes propres comme tâches.Vous pouvez inclure votre propre programme dans une définition de déroulement à l’aide de ces options et consulter les résultats dans le moniteur.