Anwendungsjob(F1240) via ABAP mit Jobvorlage erstellen und terminieren: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
M1ch3lde (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:
   returning value(rt_params) type cl_apj_rt_api=>tt_job_parameter_value
   returning value(rt_params) type cl_apj_rt_api=>tt_job_parameter_value


<syntaxhighlight lang="abap" line start="1">
   DATA ls_value TYPE cl_apj_rt_api=>ty_value_range.
   DATA ls_value TYPE cl_apj_rt_api=>ty_value_range.
   
   
Zeile 69: Zeile 70:
         ev_jobname  = lv_jobname
         ev_jobname  = lv_jobname
         ev_jobcount = lv_jobcount ).
         ev_jobcount = lv_jobcount ).
</syntaxhighlight>


Hinweis: In der Jobklasse sind die Parameter nur verfügbar, wenn sie in der Methode "if_apj_dt_exec_object~get_parameters" bekannt gemacht werden. S. Coding oben Verlinkung.
Hinweis: In der Jobklasse sind die Parameter nur verfügbar, wenn sie in der Methode "if_apj_dt_exec_object~get_parameters" bekannt gemacht werden. S. Coding oben Verlinkung.

Version vom 18. Januar 2026, 19:21 Uhr

Jobparameter

 prepare_appl_job_params
  importing	is_params	type ycl_mm_pur_super_cool_class_here=>ty_inp_params
  returning	value(rt_params)	type cl_apj_rt_api=>tt_job_parameter_value
  DATA ls_value TYPE cl_apj_rt_api=>ty_value_range.
 
    " Prepare a table with parameters for application job
    APPEND INITIAL LINE TO rt_params ASSIGNING FIELD-SYMBOL(<add>).
    <add>-name        = 'P_EBELN'.
    ls_value-sign   = 'I'.
    ls_value-option = 'EQ'.
    ls_value-low    = is_params-ebeln.
    APPEND ls_value TO <add>-t_value.
 
    CLEAR: ls_value.
 
    APPEND INITIAL LINE TO rt_params ASSIGNING <i>.
    <add>-name        = 'P_EBELP'.
    ls_value-sign   = 'I'.
    ls_value-option = 'EQ'.
    ls_value-low    = is_params-ebelp.
    APPEND ls_value TO <add>-t_value.
 
    CLEAR: ls_value.
 
    APPEND INITIAL LINE TO rt_params ASSIGNING <i>.
    <add>-name        = 'P_DATE.
    ls_value-sign   = 'I'.
    ls_value-option = 'EQ'.
    ls_value-low    = is_params-budat.
    APPEND ls_value TO <add>-t_value.

= Job erstellen und terminieren =
 schedule_appl_job
 importing	is_params	type ycl_mm_pur_super_cool_class_here=>ty_inp_params
 raising	cx_apj_rt
 
    CONSTANTS: lc_template_name TYPE cl_apj_rt_api=>ty_template_name VALUE 'YMM_PUR_SUPER_COOL_JOB_TEMP'.
    CONSTANTS: lc_delay_in_secs TYPE p VALUE 5.
 
    " Prepare application job name & count
    DATA lv_jobname  TYPE cl_apj_rt_api=>ty_jobname.
    DATA lv_jobcount TYPE cl_apj_rt_api=>ty_jobcount.
    DATA lv_job_text TYPE cl_apj_rt_api=>ty_job_text.
 
    lv_job_text = |Super cool job text: { is_params-ebeln }|.
 
    " Schedule application job with delay of 10 seconds
    GET TIME STAMP FIELD DATA(lv_job_start_time).
    DATA ls_start_info TYPE cl_apj_rt_api=>ty_start_info.
    ls_start_info-timestamp = CONV timestampl(
      cl_abap_tstmp=>add(
        tstmp = lv_job_start_time
        secs  = lc_delay_in_secs ) ).
 
    " Get parameters for application job
    DATA(lt_parameters) = prepare_appl_job_params( is_params ).
    cl_apj_rt_api=>schedule_job(
      EXPORTING
        iv_job_template_name   = lc_template_name
        iv_job_text            = lv_job_text
        is_start_info          = ls_start_info
        it_job_parameter_value = lt_parameters
      IMPORTING
        ev_jobname  = lv_jobname
        ev_jobcount = lv_jobcount ).

Hinweis: In der Jobklasse sind die Parameter nur verfügbar, wenn sie in der Methode "if_apj_dt_exec_object~get_parameters" bekannt gemacht werden. S. Coding oben Verlinkung.