Début du domaine contenu

Documentation arrière-plan Insertion de programmes propres comme tâches Localiser le document dans l'arbre de navigation

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.

Note

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.

 

 

 

Fin du domaine contenu