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
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie: Codeschnipsel]]
[[Kategorie: Clean-Core-Level_A]]
{{Codeberg|page={{PAGENAMEE}}}}
* [[Jobvorlagen_für_Fiori_App_Anwendungsjob(F1240)_erstellen]]
* [[Jobvorlagen_für_Fiori_App_Anwendungsjob(F1240)_erstellen]]
= Jobparameter =
= Jobparameter =
<syntaxhighlight lang="abap" line start="1">
   prepare_appl_job_params
   prepare_appl_job_params
   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
   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>


<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 32: Zeile 38:
     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
  raising cx_apj_rt
  raising cx_apj_rt
</syntaxhighlight>
<syntaxhighlight lang="abap" line start="1" copy>
     CONSTANTS: lc_template_name TYPE cl_apj_rt_api=>ty_template_name VALUE 'YMM_PUR_SUPER_COOL_JOB_TEMP'.
     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.
     CONSTANTS: lc_delay_in_secs TYPE p VALUE 5.
Zeile 67: Zeile 76:
         ev_jobname  = lv_jobname
         ev_jobname  = lv_jobname
         ev_jobcount = lv_jobcount ).
         ev_jobcount = lv_jobcount ).
</syntaxhighlight>
{| style="border:1px solid black; background-color:#6fb6d4; border-radius: 6px;"
| '''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.
|}

Aktuelle Version vom 1. Februar 2026, 17:10 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.