REPORT z_isu_gec_part. *&--------------------------* *& DECLARATIONS DES DONNEES * *&--------------------------* INCLUDE z_isu_gec_part_top. *&--------------------* *& ECRAN DE SELECTION * *&--------------------* INCLUDE z_isu_gec_part_scr. ************************************************************************ * START-OF-SELECTION * ************************************************************************ START-OF-SELECTION. * Récupération des données de tvarvc PERFORM recup_tvarvc CHANGING gt_tvarvc. * Détermination de l'identification du cycle de simulation PERFORM determination_id USING gt_tvarvc. * 1ère étape EAMS20 : Définition des périodes de simulation PERFORM etape1. * 2ème étape EAMS10 : Création des index de simulation (basé sur l’ID de la période définie dans l’étape 1) PERFORM etape2. * 3ème étape EAMS20 : Mise à jour du statut de simulation 0->1 de la période pour laquelle les index ont été créés PERFORM etape3. * 4ème étape EAMS01 : Simulation en masse PERFORM etape4 USING gt_tvarvc CHANGING gd_date gd_runid. ************************************************************************ * END-OF-SELECTION * ************************************************************************ END-OF-SELECTION. * Ici le traitement du programme est terminé mais pas les jobs en arrière plan. * Il faut vérifier la fin du traitement avant d'afficher le message de succès PERFORM verif_fin USING gd_runid gd_date. *&---------------------------------------------------------------------* *& Form ETAPE1 *&---------------------------------------------------------------------* * EAMS20 : Définition des périodes de simulation *----------------------------------------------------------------------* FORM etape1 . DATA: ls_bdcdata_wa TYPE bdcdata, lt_bdcdata_tab TYPE TABLE OF bdcdata, ls_opt TYPE ctu_params, ld_date TYPE sy-datum, ld_date_display(10) TYPE c, lt_itab TYPE TABLE OF bdcmsgcoll, "#EC NEEDED ld_count TYPE i. SELECT COUNT( DISTINCT simrunid ) INTO ld_count FROM te537. * appel de la transaction EAMS20 en CALL TRANSACTION CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. IF ld_count = 1. ls_bdcdata_wa-dynpro = '0011'. ELSE. ls_bdcdata_wa-dynpro = '0010'. ENDIF. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=NEWL'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '11'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMRUNID'. ls_bdcdata_wa-fval = gd_simrunid. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-TEXT'. ls_bdcdata_wa-fval = gd_simrunid. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMPER_FROM'. ls_bdcdata_wa-fval = '01.01.2000'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CALL FUNCTION 'LAST_DAY_OF_MONTHS' EXPORTING day_in = sy-datum IMPORTING last_day_of_month = ld_date EXCEPTIONS day_in_no_date = 1 OTHERS = 2. IF sy-subrc <> '0'. "#EC NEEDED * Pas de raison que le MF remonte une erreur ENDIF. WRITE ld_date TO ld_date_display. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMPER_TO'. ls_bdcdata_wa-fval = ld_date_display. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMRUNSTATE'. ls_bdcdata_wa-fval = '0'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-BISIMTYPE'. ls_bdcdata_wa-fval = 'ZGEC'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=SAVE'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '11'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=UEBE'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '10'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=BACK'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ls_opt-dismode = 'N'. ls_opt-defsize = 'X'. CALL TRANSACTION 'EAMS20' USING lt_bdcdata_tab OPTIONS FROM ls_opt MESSAGES INTO lt_itab. ENDFORM. " ETAPE1 *&---------------------------------------------------------------------* *& Form ETAPE2 *&---------------------------------------------------------------------* * EAMS10 : Création des index de simulation (basé sur l’ID de la * période définie dans l’étape 1) *----------------------------------------------------------------------* FORM etape2 . DATA: ls_bdcdata_wa TYPE bdcdata, lt_bdcdata_tab TYPE TABLE OF bdcdata, ls_opt TYPE ctu_params, lt_itab TYPE TABLE OF bdcmsgcoll. "#EC NEEDED * appel de la transaction EAMS10 en CALL TRANSACTION CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'REA_SIMINDICES_CREATE'. ls_bdcdata_wa-dynpro = '1000'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'XSIMRID'. ls_bdcdata_wa-fval = gd_simrunid. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'XAKLASS-LOW'. ls_bdcdata_wa-fval = p_aklass. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=ONLI'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPMSSY0'. ls_bdcdata_wa-dynpro = '0120'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=BACK'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'REA_SIMINDICES_CREATE'. ls_bdcdata_wa-dynpro = '1000'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '/EE'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ls_opt-dismode = 'N'. ls_opt-defsize = 'X'. CALL TRANSACTION 'EAMS10' USING lt_bdcdata_tab OPTIONS FROM ls_opt MESSAGES INTO lt_itab. ENDFORM. " ETAPE2 *&---------------------------------------------------------------------* *& Form ETAPE3 *&---------------------------------------------------------------------* * EAMS20 : Mise à jour du statut de simulation 0->1 de la période * pour laquelle les index ont été créés *----------------------------------------------------------------------* FORM etape3 . DATA: ls_bdcdata_wa TYPE bdcdata, lt_bdcdata_tab TYPE TABLE OF bdcdata, ls_opt TYPE ctu_params, lt_itab TYPE TABLE OF bdcmsgcoll, "#EC NEEDED ld_count TYPE i. SELECT COUNT( DISTINCT simrunid ) INTO ld_count FROM te537. * appel de la transaction EAMS20 en CALL TRANSACTION CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. IF ld_count = 1. ls_bdcdata_wa-dynpro = '0011'. ELSE. ls_bdcdata_wa-dynpro = '0010'. ENDIF. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. * Pour le premier lancement il faut gérer les écrans * différemment des autres. IF ld_count = 1. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMRUNSTATE'. ls_bdcdata_wa-fval = '1'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ELSE. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=POSI'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLSPO4'. ls_bdcdata_wa-dynpro = '0300'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'SVALD-VALUE(01)'. ls_bdcdata_wa-fval = gd_simrunid. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=FURT'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '0010'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'V_TE537-SIMRUNSTATE(01)'. ls_bdcdata_wa-fval = '1'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ENDIF. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=SAVE'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. IF ld_count = 1. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '0011'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=BACK'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ENDIF. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-program = 'SAPLEAUR_IP_VIEW'. ls_bdcdata_wa-dynpro = '0010'. ls_bdcdata_wa-dynbegin = 'X'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. CLEAR ls_bdcdata_wa. ls_bdcdata_wa-fnam = 'BDC_OKCODE'. ls_bdcdata_wa-fval = '=BACK'. APPEND ls_bdcdata_wa TO lt_bdcdata_tab. ls_opt-dismode = 'N'. ls_opt-defsize = 'X'. CALL TRANSACTION 'EAMS20' USING lt_bdcdata_tab OPTIONS FROM ls_opt MESSAGES INTO lt_itab. ENDFORM. " ETAPE3 *&---------------------------------------------------------------------* *& Form ETAPE4 *&---------------------------------------------------------------------* * EAMS00 : Simulation en masse *----------------------------------------------------------------------* FORM etape4 USING pt_tvarvc TYPE tt_tvarvc CHANGING pv_date TYPE sy-datum pv_id TYPE laufi_kk. DATA: lt_bdcdata_tab TYPE TABLE OF bdcdata, ls_opt TYPE ctu_params, lt_itab TYPE TABLE OF bdcmsgcoll, "#EC NEEDED ld_date(10) TYPE c, lv_taille_bloc_par TYPE blksize_ur, lv_taille_bloc_opt TYPE dblimit_kk, lv_nb_jobs TYPE jobs_load_bala_kk. CLEAR : lv_taille_bloc_par, lv_taille_bloc_opt, lv_nb_jobs, ld_date, gs_tvarvc. CALL FUNCTION 'BKK_CONVERT_FORMAT_DATE' EXPORTING p_date = sy-datum CHANGING p_formatted_date = ld_date. * Enregistrement de la date de début du job pour vérification ultérieure des status pv_date = sy-datum. IF NOT pt_tvarvc IS INITIAL. CLEAR gs_tvarvc. READ TABLE pt_tvarvc INTO gs_tvarvc WITH KEY name = gc_bloc_par. IF sy-subrc = '0'. lv_taille_bloc_par = gs_tvarvc-low. ENDIF. CLEAR gs_tvarvc. READ TABLE pt_tvarvc INTO gs_tvarvc WITH KEY name = gc_bloc_opt. IF sy-subrc = '0'. lv_taille_bloc_opt = gs_tvarvc-low. ENDIF. CLEAR gs_tvarvc. READ TABLE pt_tvarvc INTO gs_tvarvc WITH KEY name = gc_nb_jobs. IF sy-subrc = '0'. lv_nb_jobs = gs_tvarvc-low. ENDIF. ENDIF. * appel de la transaction EAMS01 en CALL TRANSACTION * Ecran d'entrée sélection du modèle à copier PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '1000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_CURSOR' 'FKKAKTIV2_DYNP_1000-LAUFI'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=ENTR'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_1000-LAUFD' '01.01.0001'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_1000-LAUFI' 'GECXXX'. * Appel bouton pour copier le modèle PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '1000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_CURSOR' 'FKKAKTIV2_DYNP_1000-LAUFD'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=COPY'. * Choix du modèle et gestion du cycle cible PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '5000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_CURSOR' 'FKKAKTIV2_DYNP_5000-TARGET_LAUFI'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=ENTR'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_5000-SOURCE_LAUFD' '01.01.0001'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_5000-SOURCE_LAUFI' 'GECXXX'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_5000-TARGET_LAUFD' ld_date. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_5000-TARGET_LAUFI' pv_id. * Passage sur onglet paramètres PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '1000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_CURSOR' 'XBLSIZE'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'XBLSIZE' lv_taille_bloc_par. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'XSIMRUN' gd_simrunid. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=TAB05'. * Remplissage écran option techniques et sauvegarde PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '1000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_1200-USE_LOAD_BALA' 'X'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_1200-JOBS_LOAD_BALA' lv_nb_jobs. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'FKKAKTIV2_DYNP_1180-LIMIT' lv_taille_bloc_opt. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=SAVE'. * Choix bouton planifier PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKKAKTIV2' '1000'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=DISP'. * Exécution immédiate PERFORM bdc_dynpro TABLES lt_bdcdata_tab USING 'SAPLFKJO_JOB' '0100'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'D100_FIELDS-XIMMEDIATE' 'X'. PERFORM bdc_field TABLES lt_bdcdata_tab USING 'BDC_OKCODE' '=OK'. ls_opt-dismode = 'N'. ls_opt-defsize = 'X'. ls_opt-racommit = 'X'. CALL TRANSACTION 'EAMS01' USING lt_bdcdata_tab OPTIONS FROM ls_opt MESSAGES INTO lt_itab. ENDFORM. " ETAPE4 *&---------------------------------------------------------------------* *& Form DETERMINATION_ID *&---------------------------------------------------------------------* * détermination de l'identification du cycle de simulation *----------------------------------------------------------------------* FORM determination_id USING pt_tvarvc TYPE tt_tvarvc. DATA: ld_simrunid TYPE simrunid, ld_sequence(1) TYPE n, lt_te537 TYPE TABLE OF simrunid, ls_te537 TYPE simrunid, lv_month_hex TYPE crmt_ei_kb_id, lv_mois TYPE crmt_ei_kb_id. CLEAR lv_month_hex. lv_mois = sy-datum+4(2). * Converti le mois en hexa sur 32 caractères. CALL FUNCTION 'CRM_EI_KB_CONV_DEC_TO_HEX' EXPORTING iv_decimal = lv_mois IMPORTING ev_hex = lv_month_hex. * Id dédié pour PART CONCATENATE sy-datum+2(2) lv_month_hex+31(1) sy-datum+6(2) 'G' p_aklass+3(1) '%' INTO ld_simrunid. SELECT simrunid INTO TABLE lt_te537 FROM te537 WHERE simrunid LIKE ld_simrunid. IF sy-subrc = 0. * Lecture de la dernière version du cycle exécuté SORT lt_te537 DESCENDING. READ TABLE lt_te537 INTO ls_te537 INDEX 1. ld_sequence = ls_te537+7(1) + 1. ELSE. ld_sequence = 1. ENDIF. * Exemple 14812G11 CONCATENATE sy-datum+2(2) lv_month_hex+31(1) sy-datum+6(2) 'G' p_aklass+3(1) ld_sequence INTO gd_simrunid. * Alimentation du nom du cycle CLEAR gs_tvarvc. READ TABLE pt_tvarvc INTO gs_tvarvc WITH KEY name = gc_id_cycle. gd_runid = gs_tvarvc-low. ENDFORM. " DETERMINATION_ID *----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM bdc_dynpro TABLES lt_bdcdata_tab TYPE tt_bdcdata USING program TYPE bdc_prog dynpro TYPE bdc_dynr. CLEAR gs_bdcdata_wa. gs_bdcdata_wa-program = program. gs_bdcdata_wa-dynpro = dynpro. gs_bdcdata_wa-dynbegin = 'X'. APPEND gs_bdcdata_wa TO lt_bdcdata_tab. ENDFORM. "BDC_DYNPRO *----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM bdc_field TABLES lt_bdcdata_tab TYPE tt_bdcdata USING fnam TYPE fnam_____4 fval TYPE any. CLEAR gs_bdcdata_wa. gs_bdcdata_wa-fnam = fnam. gs_bdcdata_wa-fval = fval. CONDENSE gs_bdcdata_wa-fval NO-GAPS. APPEND gs_bdcdata_wa TO lt_bdcdata_tab. ENDFORM. "BDC_FIELD *&---------------------------------------------------------------------* *& Form VERIF_FIN *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM verif_fin USING pv_runid TYPE laufi_kk pv_date TYPE sy-datum. TYPES : BEGIN OF lty_tbtco, jobname TYPE tbtco-jobname, jobcount TYPE tbtco-jobcount, status TYPE tbtco-status, END OF lty_tbtco. DATA : lv_jobs TYPE string. DATA : lt_tbtco TYPE TABLE OF lty_tbtco, ls_tbtco LIKE LINE OF lt_tbtco, lv_status TYPE tbtco-status, lv_boucles TYPE i, lv_delai_att TYPE f. CONSTANTS lc_job TYPE char4 VALUE 'BIBP'. CLEAR : lv_jobs, lv_boucles, lv_delai_att. CONCATENATE lc_job pv_date pv_runid '_%' INTO lv_jobs. REFRESH lt_tbtco. CLEAR ls_tbtco. * Sélection de tous les jobs exécutés par le programme peu importe leur statut SELECT jobname jobcount status FROM tbtco INTO TABLE lt_tbtco WHERE jobname LIKE lv_jobs. IF sy-subrc = '0'. * Si des jobs sont trouvés vérification de leur statut. * A - Interrompu * P - Planifié * S - Libéré * F - Terminé * R - Actif * Y - Prêt CLEAR gs_tvarvc. READ TABLE gt_tvarvc INTO gs_tvarvc WITH KEY name = gc_boucles. IF sy-subrc = '0'. lv_boucles = gs_tvarvc-low. ENDIF. CLEAR gs_tvarvc. READ TABLE gt_tvarvc INTO gs_tvarvc WITH KEY name = gc_delai_att. IF sy-subrc = '0'. lv_delai_att = gs_tvarvc-low. ENDIF. CLEAR ls_tbtco. SORT lt_tbtco BY jobname jobcount. LOOP AT lt_tbtco INTO ls_tbtco. DO lv_boucles TIMES. * Vérification du statut du job en sortie si 'F' ou 'A' passage à un autre job CLEAR lv_status. SELECT SINGLE status FROM tbtco INTO lv_status WHERE jobname = ls_tbtco-jobname AND jobcount = ls_tbtco-jobcount. CASE lv_status. WHEN 'A'. EXIT. WHEN 'F'. EXIT. WHEN 'P'. * Pas de traitement, on revérifie le statut de la même entrée WHEN 'R'. * Pas de traitement, on revérifie le statut de la même entrée WHEN 'S'. * Pas de traitement, on revérifie le statut de la même entrée WHEN 'Y'. * Pas de traitement, on revérifie le statut de la même entrée WHEN OTHERS. * Pas de traitement, on revérifie le statut de la même entrée ENDCASE. * Si l'entrée n'est pas au bon statut, temps de latence. WAIT UP TO lv_delai_att SECONDS. ENDDO. ENDLOOP. * Fin de la boucle si ts les status sont 'F' ou 'A' ou si le délai est dépassé WRITE:/ text-001, gd_simrunid. ELSE. WRITE:/ text-005, gd_simrunid. ENDIF. ENDFORM. " VERIF_FIN *&---------------------------------------------------------------------* *& Form RECUP_TVARVC *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_GT_TVARVC text *----------------------------------------------------------------------* FORM recup_tvarvc CHANGING pt_tvarvc TYPE tt_tvarvc. REFRESH pt_tvarvc. * Initialisation noms variables tvarvc gs_name_tvarvc-sign = 'I'. gs_name_tvarvc-option = 'CP'. gs_name_tvarvc-low = 'ZGEC*'. APPEND gs_name_tvarvc TO gr_name_tvarvc. SELECT * FROM tvarvc INTO TABLE pt_tvarvc WHERE name IN gr_name_tvarvc AND type = 'P' AND numb = '0000'. IF NOT pt_tvarvc IS INITIAL. SORT pt_tvarvc BY name. ENDIF. ENDFORM. " RECUP_TVARVC