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

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
M1ch3lde (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 37: Zeile 37:
     ls_value-low    = is_params-budat.
     ls_value-low    = is_params-budat.
     APPEND ls_value TO <add>-t_value.
     APPEND ls_value TO <add>-t_value.
</syntaxhighlight>


= Job erstellen und terminieren =
= Job erstellen und terminieren =
<syntaxhighlight lang="abap" line start="1">
  schedule_appl_job
  schedule_appl_job
  importing is_params type ycl_mm_pur_super_cool_class_here=>ty_inp_params
  importing is_params type ycl_mm_pur_super_cool_class_here=>ty_inp_params

Version vom 18. Januar 2026, 19:22 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.