Skip to Content
author's profile photo Former Member
Former Member

Variant in Background

Hi Experts,

Can we make a variant run in background by default??

If yes then how??

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • Best Answer
    Posted on Dec 03, 2007 at 10:43 AM

    Hi,

    Yes, try like this.

    SUBMIT REPORT01

    VIA SELECTION-SCREEN

    USING SELECTION-SET 'VARIANT1'

    USING SELECTION-SETS OF PROGRAM 'REPORT00'

    AND RETURN.

    Regards,

    Prashant

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 03, 2007 at 10:42 AM

    Hi

    first Save the variant for that program and use in Job scheduling

    Create a Variant for the Program and

    Schedule JOB in background:

    Go to SM36 create a Job

    enter Program and Variant for that program in STEP..

    click on Start Condition

    Click on DATE and TIME enter date scheduled Start and END times

    click on Period Values

    Click on HOURLY/WEEKLY etc

    CLick on RESTRICTIONS also to use further criteria.

    so your job will be scheduled and run as per your requirement.

    and in SM37 Transaction check the status of that JOB

    Check this link for scheduling jobs..

    http://help.sap.com/saphelp_nw2004s/helpdata/en/c4/3a7f87505211d189550000e829fbbd/content.htm

    Regards

    Anji

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 03, 2007 at 10:42 AM

    Hi,

    By Usin Fm:RS_CREATE_VARIANT

    Check This Code....

    • build range table for parameters of the variant

    CLEAR t_contents. REFRESH t_contents.

    PERFORM add_param_to_var.

    PERFORM add_param_to_var1 USING 'P_YEAR' 'P' p_year.

    PERFORM add_param_to_var1 USING 'P_PERIOD' 'P' p_period.

    PERFORM add_param_to_var1 USING 'P_MATNR' 'P' p_matnr.

    • setup variant name

    CONCATENATE p_period

    p_year INTO r_var SEPARATED BY '_'.

    r_varit-report = sy-repid.

    r_varit-variant = r_var.

    • get rid of old variant if it exists

    CLEAR t_delvar.

    REFRESH t_delvar.

    APPEND r_var TO t_delvar.

    CALL FUNCTION 'RS_VARIANT_DEL_ALL_CLIENTS'

    EXPORTING

    report = w_cprog

    TABLES

    del_variants = t_delvar

    EXCEPTIONS

    not_authorized = 1

    not_executed = 2

    no_report = 3

    report_not_existent = 4

    report_not_supplied = 5

    variant_locked = 6

    OTHERS = 7.

    IF sy-subrc <> 0.

    *-- For EPC Checks

    CLEAR sy-subrc.

    ENDIF.

    • setup variant text

    CLEAR t_text. REFRESH t_text.

    t_text-langu = sy-langu.

    t_text-report = w_cprog.

    t_text-variant = r_var.

    t_text-vtext = 'System_Generated_variant **do not touch **'(010).

    APPEND t_text.

    • create new variant

    CALL FUNCTION 'RS_CREATE_VARIANT'

    EXPORTING

    curr_report = w_cprog

    curr_variant = r_var

    vari_desc = r_varit

    TABLES

    vari_contents = t_contents

    vari_text = t_text

    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.

    • FOR EPC warnings

    CLEAR sy-subrc.

    ENDIF.

    ENDFORM. " create_variant

    &----


    *& Form add_param_to_var

    &----


    FORM add_param_to_var.

    LOOP AT s_matkl.

    • add value to sel options table

    CLEAR t_contents.

    t_contents-selname = 'S_MATKL'.

    t_contents-kind = 'S'.

    MOVE-CORRESPONDING s_matkl TO t_contents.

    APPEND t_contents.

    ENDLOOP.

    LOOP AT s_spart.

    • add value to sel options table

    CLEAR t_contents.

    t_contents-selname = 'S_SPART'.

    t_contents-kind = 'S'.

    MOVE-CORRESPONDING s_spart TO t_contents.

    APPEND t_contents.

    ENDLOOP.

    ENDFORM. " add_param_to_var

    &----


    *& Form submit_in_background

    &----


    FORM submit_in_background .

    DATA : l_parameters TYPE pri_params,

    l_valid TYPE c,

    l_days(1) TYPE n VALUE 2,

    l_count(3) TYPE n VALUE 1.

    DATA: l_jobnam LIKE tbtcjob-jobname, "job name

    l_jobcnt LIKE tbtcjob-jobcount. "internal job number

    RANGES r_bname FOR usr03-bname. "mail recipients

    • build range of recipients as just current user

    r_bname = 'IEQ'.

    r_bname-low = sy-uname.

    APPEND r_bname.

    • build job name as program +user +time

    CONCATENATE w_cprog sy-uname sy-uzeit INTO l_jobnam

    SEPARATED BY '_'.

    CONDENSE l_jobnam NO-GAPS.

    *Calling GET_PRINT_PARAMETERS function module to avoid EPC warning

    • as "SUBMIT ... TO SAP-SPOOL WITHOUT SPOOL DYNPRO" statement

    • produces unexpected results without the essential("DESTINATION",

    • "IMMEDIATELY", "KEEP IN SPOOL") print parameters.

    CALL FUNCTION 'GET_PRINT_PARAMETERS'

    EXPORTING

    copies = l_count

    destination = 'LOCL'

    expiration = l_days

    immediately = ' '

    new_list_id = 'X'

    no_dialog = ' '

    release = 'X'

    user = sy-uname

    IMPORTING

    out_parameters = l_parameters

    valid = l_valid

    EXCEPTIONS

    archive_info_not_found = 1

    invalid_print_params = 2

    invalid_archive_params = 3

    OTHERS = 4.

    IF sy-subrc <> 0.

    • FOR EPC warnings

    CLEAR sy-subrc.

    MESSAGE s000(zh) WITH

    'Job not scheduled, Invalid print parameters.'.

    EXIT.

    ENDIF.

    IF l_valid <> ' '.

    • create the job

    CALL FUNCTION 'JOB_OPEN'

    EXPORTING

    jobname = l_jobnam

    IMPORTING

    jobcount = l_jobcnt

    EXCEPTIONS

    cant_create_job = 1

    invalid_job_data = 2

    jobname_missing = 3

    OTHERS = 4.

    IF sy-subrc <> 0.

    • FOR EPC warnings

    CLEAR sy-subrc.

    ENDIF.

    SUBMIT zbcrp005 "Report distributor

    WITH p_pgm = w_cprog

    WITH p_var = r_var

    WITH s_recvr IN r_bname

    AND RETURN

    TO SAP-SPOOL

    SPOOL PARAMETERS l_parameters

    WITHOUT SPOOL DYNPRO

    VIA JOB l_jobnam NUMBER l_jobcnt.

    • close and submit the job

    CALL FUNCTION 'JOB_CLOSE'

    EXPORTING

    jobcount = l_jobcnt

    jobname = l_jobnam

    strtimmed = 'X'

    EXCEPTIONS

    cant_start_immediate = 1.

    IF sy-subrc <> 0.

    • FOR EPC warnings

    CLEAR sy-subrc.

    ENDIF.

    • issue message

    MESSAGE i126(zh) WITH l_jobnam.

    ENDIF.

    ENDFORM. " SUBMIT_IN_BACKGROUND

    &----


    *& Form add_param_to_var1

    &----


    FORM add_param_to_var1 USING l_selname TYPE any

    l_kind TYPE any

    l_low TYPE any.

    • add value to sel options table

    CLEAR t_contents.

    t_contents-selname = l_selname.

    t_contents-kind = l_kind.

    t_contents-low = l_low.

    APPEND t_contents.

    ENDFORM. " add_param_to_var

    Message was edited by:

    Vishnu Reddy

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.