-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcreate_job.abap
184 lines (159 loc) · 5.57 KB
/
create_job.abap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
DATA : jobname TYPE tbtcjob-jobname VALUE 'ZADESECARD',
jobclass TYPE tbtcjob-jobclass VALUE 'A',
jobcount TYPE tbtcjob-jobcount,
lv_startdate LIKE sy-datum,
lv_starttime LIKE sy-uzeit,
authcknam TYPE tbtcjob-authcknam,
lv_varname TYPE rsvar-variant,
lwa_vardesc TYPE varid.
DATA: ls_varid TYPE varid,
lt_varit TYPE TABLE OF varit,
lt_rsparams TYPE TABLE OF rsparams.
IF NOT ( ipspar-infty = '0000' AND ( ipspar-massn = '01' OR ipspar-massn = '10' ) ).
RETURN.
ENDIF.
authcknam = sy-uname.
lv_startdate = sy-datum.
lv_starttime = sy-uzeit + 600.
CONCATENATE 'CARD' lv_starttime INTO lv_varname.
lwa_vardesc-report = 'ZHR_SEND_ADESECARD_FORM'.
* fill VARID structure - Variantenkatalog, variant description
ls_varid-mandt = sy-mandt.
ls_varid-report = lwa_vardesc-report.
ls_varid-variant = lv_varname.
ls_varid-flag1 = space.
ls_varid-flag2 = space.
ls_varid-transport = space.
ls_varid-environmnt = 'A'. "Variant for batch and online
ls_varid-protected = space.
ls_varid-secu = space.
ls_varid-version = '1'.
ls_varid-ename = sy-uname.
ls_varid-edat = sy-datum.
ls_varid-etime = sy-uzeit.
ls_varid-aename = space.
ls_varid-aedat = space.
ls_varid-aetime = space.
ls_varid-mlangu = sy-langu.
*.fill VARIT structure - Variantentexte; variant texts
APPEND INITIAL LINE TO lt_varit ASSIGNING FIELD-SYMBOL(<ls_varit>).
<ls_varit>-mandt = sy-mandt.
<ls_varit>-langu = sy-langu.
<ls_varit>-report = lwa_vardesc-report.
<ls_varit>-variant = lv_varname.
<ls_varit>-vtext = lv_varname.
APPEND INITIAL LINE TO lt_rsparams ASSIGNING FIELD-SYMBOL(<ls_rsparams>).
<ls_rsparams>-selname = 'P_PERNR'.
<ls_rsparams>-kind = 'P'.
<ls_rsparams>-sign = 'I'.
<ls_rsparams>-option = 'EQ'.
<ls_rsparams>-low = ipspar-pernr.
APPEND INITIAL LINE TO lt_rsparams ASSIGNING <ls_rsparams>.
<ls_rsparams>-selname = 'P_INFTY'.
<ls_rsparams>-kind = 'P'.
<ls_rsparams>-sign = 'I'.
<ls_rsparams>-option = 'EQ'.
<ls_rsparams>-low = ipspar-infty.
APPEND INITIAL LINE TO lt_rsparams ASSIGNING <ls_rsparams>.
<ls_rsparams>-selname = 'P_MASSN'.
<ls_rsparams>-kind = 'P'.
<ls_rsparams>-sign = 'I'.
<ls_rsparams>-option = 'EQ'.
<ls_rsparams>-low = ipspar-massn.
APPEND INITIAL LINE TO lt_rsparams ASSIGNING <ls_rsparams>.
<ls_rsparams>-selname = 'P_DATUM'.
<ls_rsparams>-kind = 'P'.
<ls_rsparams>-sign = 'I'.
<ls_rsparams>-option = 'EQ'.
<ls_rsparams>-low = ipspar-begda.
* Create Variant
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = ls_varid-report
curr_variant = ls_varid-variant
vari_desc = ls_varid
TABLES
vari_contents = lt_rsparams
vari_text = lt_varit
EXCEPTIONS
illegal_report_or_variant = 1
illegal_variantname = 2
not_authorized = 3
not_executed = 4
report_not_existent = 5
report_not_supplied = 6
variant_exists = 7
variant_locked = 8
OTHERS = 9.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = jobname
jobclass = jobclass
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = authcknam
jobcount = jobcount
jobname = jobname
report = ls_varid-report
variant = ls_varid-variant
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = jobcount
jobname = jobname
sdlstrtdt = lv_startdate
sdlstrttm = lv_starttime
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9.
IF sy-subrc = 0.
CALL FUNCTION 'RS_VARIANT_DELETE'
EXPORTING
report = ls_varid-report
variant = ls_varid-variant
flag_confirmscreen = 'X'
flag_delallclient = 'X'
EXCEPTIONS
not_authorized = 1
not_executed = 2
no_report = 3
report_not_existent = 4
report_not_supplied = 5
variant_locked = 6
variant_not_existent = 7
no_corr_insert = 8
variant_protected = 9
OTHERS = 10.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDIF.
ENDIF.