10-10-2007 4:06 AM
Hello everyone!
Is it possible to set-up background job through a program?
I was thinking of using a BDC program that will call SM36, but there might also be an easier way. _
Thanks a lot!
10-10-2007 4:10 AM
10-10-2007 4:11 AM
10-10-2007 4:32 AM
Hi,
If you want to execute the job in background .There are 2 options.
1.Online
Goto se38-->enter program name >(On menu bar) program>
Exceute-->Background.
2.Schedule
Scheduling Background Jobs:
1. Background jobs are scheduled by Basis administrators using transaction SM36.
2. To run a report in a background, a job needs to be created with a step using the report name
and a variant for selection parameters. It is recommended to create a separate variant for each
scheduled job to produce results for specific dates (e.g. previous month) or organizational units (e.g. company codes).
3. While defining the step, the spool parameters needs to be specified
(Step-> Print Specifications->Properties) to secure the output of the report and help authorized users to find the spool request. The following parameters needs to be maintained:
a. Time of printing: set to Send to SAP spooler Only for now
b. Name abbreviated name to identify the job output
c. Title free form description for the report output
d. Authorization a value defined by Security in user profiles to allow those users to access
this spool request (authorization object S_SPO_ACT, value SPOAUTH). Only users with matching authorization value in their profiles will be able to see the output.
e. Department set to appropriate department/functional area name. This field can be used in
a search later.
f. Retention period set to Do not delete if the report output needs to be retained for more
than 8 days. Once the archiving/document repository solution is in place the spool requests could
be automatically moved to the archive/repository. Storage Mode parameter on the same screen
could be used to immediately send the output to archive instead of creating a spool request.
Configuring user access:
1. To access a report output created by a background job, a user must have at least access to SP01 (Spool requests) transaction without restriction on the user name (however by itself it will not let the user to see all spool requests). To have that access the user must have S_ADMI_FCD authorization object in the profile with SPOR (or SP01) value of S_ADMI_FCD parameter (maintained by Security).
2. To access a particular jobs output in the spool, the user must have S_SPO_ACT object in the profile with SPOAUTH parameter matching the value used in the Print Specifications of the job (see p. 3.d above).
3. Levels of access to the spool (display, print once, reprint, download, etc) are controlled by SPOACTION parameter of S_SPO_ACT. The user must have at least BASE access (display).
On-line reports:
1. Exactly the same configuration can be maintained for any output produced from R/3. If a user clicks Parameters button on a SAP Printer selection dialog, it allows to specify all the parameters as described in p. 3 of Scheduling background jobs section. Thus any output created by an online report can be saved and accessed by any user authorized to access that spool request (access restriction provided by the Authorization field of the spool request attributes, see p. 3.d of Scheduling background jobs section).
Access to reports output:
1. A user that had proper access (see Configuring user access above) can retrieve a job/report output through transaction SP01.
2. The selection screen can be configured by clicking Further selection criteria button (e.g. to bring Spool request name (suffix 2) field or hide other fields).
3. The following fields can be used to search for a specific output (Note that Created By must be blank when searching for scheduled jobs outputs)
a. Spool request name (suffix 2) corresponds to a spool name in p. 3.b in Scheduling background jobs section above).
b. Date created to find an output of a job that ran within a certain date range.
c. Title corresponds to spool Title in p. 3.c in Scheduling background jobs section above).
d. Department - corresponds to spool Department in p. 3.e in Scheduling background jobs section above).
4. Upon entering selection criteria, the user clicks the Execute button to retrieve the list of matching spool requests.
5. From the spool list the user can use several function such as view the content of a spool request, print the spool request, view attributed of the spool request, etc. (some functions may need special authorization, see p.3 in Configuring user access)
a. Click the Print button to print the spool request with the default attributes (usually defined with the job definition). It will print it on a printer that was specified when a job was created.
b. Click the Print with changed attributed button to print the spool request with the different attributes (e.g. changing the printer name).
c. Click the Display contents button to preview the spool request contents. A Print and Download functions are available from the preview mode.
Afetr scheduling the job , you can check the status iof the job using SM37 Transaction code.
Thanks.
10-10-2007 4:57 AM
Hi Ricardo,
Following is a sample program:
DATA: number TYPE tbtcjob-jobcount,
name TYPE tbtcjob-jobname VALUE 'JOB_TEST',
print_parameters TYPE pri_params.
...
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT ZPROGRAM TO SAP-SPOOL
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
...
ENDIF.
ENDIF.
ENDIF.
Also refer this blog:
/people/prashant.patil12/blog/2007/02/20/displaying-alv-grid-in-background-job
Best regards,
Prashant
10-10-2007 4:58 AM