‎2014 Nov 17 12:56 PM
Hi ABAPers,
I have created one report program(ZTXX_MAPPING_PROCESS) and in this program I am trying to create the variant for another report program lets say(ZTXXRD3).
Below screenshot is the selection screen of ZTXXRD3 report.
I have written below logic in ZTXX_MAPPING_PROCESS report program for creating the variant. I can see the variant(zmap_rule,zmap_rule1,zmap_rule2) while accessing through selection screen. But it is not updating into the database table VARID.
screenshot for table varid.
And also you can see the check box over there and when i am trying to fill the value of 'report details' with value 'X' as i have mentioned in below code but it is not reflecting when i have tried to execute the report through variant.Please see the below screenshot.
DATA:
g_report LIKE rsvar-report VALUE 'ZTXXRD03',
g_variant LIKE rsvar-variant VALUE 'zmap_rule2',
g_vari_desc LIKE varid.
DATA:
it_rsparams TYPE STANDARD TABLE OF rsparams,
wa_rsparams LIKE LINE OF it_rsparams,
it_vari_text TYPE STANDARD TABLE OF varit,
wa_vari_text LIKE LINE OF it_vari_text.
wa_vari_text-langu = 'EN'.
wa_vari_text-report = g_report.
wa_vari_text-variant = g_variant.
wa_vari_text-vtext = 'Test variant'.
APPEND wa_vari_text TO it_vari_text.
CLEAR wa_vari_text.
g_vari_desc-report = g_report.
g_vari_desc-variant = g_variant.
g_vari_desc-environmnt = 'A'.
g_vari_desc-aedat = sy-datum.
g_vari_desc-aetime = sy-uzeit.
wa_rsparams-selname = 'PC File'.
wa_rsparams-kind = 'P'.
wa_rsparams-low = '/var/opt/svxx/oprt.txt'.
APPEND wa_rsparams TO it_rsparams.
CLEAR wa_rsparams.
wa_rsparams-selname = 'Mapping'.
wa_rsparams-kind = 'P'.
wa_rsparams-low = <fs_mp_so>-zmaprule.
APPEND wa_rsparams TO it_rsparams.
CLEAR wa_rsparams.
wa_rsparams-selname = 'Valida'.
wa_rsparams-kind = 'P'.
wa_rsparams-low = ' '.
APPEND wa_rsparams TO it_rsparams.
CLEAR wa_rsparams.
wa_rsparams-selname = 'Repails'.
wa_rsparams-kind = 'P'.
wa_rsparams-low = 'X'.
APPEND wa_rsparams TO it_rsparams.
CLEAR wa_rsparams.
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = g_report
curr_variant = g_variant
vari_desc = g_vari_desc
TABLES
vari_contents = it_rsparams
vari_text = it_vari_text.
Please suggest me on this.
‎2014 Nov 17 1:14 PM
DATA: lt_rsparams TYPE STANDARD TABLE OF rsparams,
lw_rsparams TYPE rsparams,
lt_varit TYPE STANDARD TABLE OF varit,
lw_varit TYPE varit,
lt_varid TYPE STANDARD TABLE OF varid,
lw_varid TYPE varid,
lv_variant TYPE raldb_vari,
lv_report TYPE raldb_repo,
lv_number TYPE btcjobcnt,
lv_stdate TYPE btcsdate,
lv_sttime TYPE btcstime,
lw_pri_params TYPE pri_params.
*---Prepare variant
lw_rsparams-selname = 'RB_SOLT'.
lw_rsparams-kind = 'R'.
APPEND lw_rsparams TO lt_rsparams.
LOOP AT s_kunnr.
lw_rsparams-selname = 'S_KUNNR'.
lw_rsparams-kind = 'S'.
lw_rsparams-sign = s_kunnr-sign.
lw_rsparams-option = s_kunnr-option.
lw_rsparams-low = s_kunnr-low.
lw_rsparams-high = s_kunnr-high.
APPEND lw_rsparams TO lt_rsparams.
ENDLOOP.
lw_rsparams-selname = 'S_BUSABF'."Change by RVARKI 02/23/2010
lw_rsparams-kind = 'S'."Change by RVARKI 02/23/2010
lw_rsparams-low = s_busabf-low."Change by RVARKI 02/23/2010
lw_rsparams-high = s_busabf-high."Change by RVARKI 02/23/2010
APPEND lw_rsparams TO lt_rsparams.
lw_rsparams-selname = 'P_BUSABT'.
lw_rsparams-kind = 'P'.
lw_rsparams-low = p_busabt.
APPEND lw_rsparams TO lt_rsparams.
lv_variant = 'Test03'.
lv_report = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'.
lw_varit-mandt = sy-mandt.
lw_varit-langu = sy-langu.
lw_varit-report = lv_report.
lw_varit-variant = lv_variant .
lw_varit-vtext = 'test'.
APPEND lw_varit TO lt_varit.
lw_varid-mandt = sy-mandt.
lw_varid-report = lv_report.
lw_varid-variant = lv_variant.
lw_varid-transport = 'F'.
lw_varid-environmnt = 'A'.
lw_varid-version = '01'.
lw_varid-ename = sy-uname.
lw_varid-edat = sy-datum.
lw_varid-etime = sy-uzeit.
lw_varid-mlangu = sy-langu.
APPEND lw_varid TO lt_varid.
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = lv_report
curr_variant = lv_variant
vari_desc = lw_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.
DATA: lv_pname TYPE /osp/dt_progname,
lv_varnam TYPE /osp/dt_variant,
lv_uname TYPE /osp/dt_uname,
lt_joblist TYPE /osp/tt_report_job_list,
lt_return TYPE bapiret2_t.
lv_pname = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'.
lv_varnam = lv_variant.
* lv_uname = 'SLINGAMANENI'.
lv_uname = 'PPUPPALA'.
lv_stdate = sy-datum.
lv_sttime = sy-uzeit.
DATA: gf_print_parameters TYPE pri_params.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'
* sdlstrtdt = lv_stdate
* sdlstrttm = lv_sttime
IMPORTING
jobcount = lv_number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
lw_pri_params-pdest = 'LOCL'.
lw_pri_params-prcop = '001'.
lw_pri_params-plist = 'YVCMUE035PPU'.
lw_pri_params-prrel = 'X'.
lw_pri_params-prnew = 'X'.
*
lw_pri_params-linct = '60-'.
lw_pri_params-linsz = '256'.
lw_pri_params-paart = 'X_SPOOLERR'.
*
lw_pri_params-prsap = 'D'.
lw_pri_params-prrec = 'PPUPPALA'.
lw_pri_params-prabt = 'DELOITTE'.
*
lw_pri_params-prdsn = 'LIST1S'.
lw_pri_params-ptype = 'TEXT'.
lw_pri_params-armod = '1'.
*
lw_pri_params-priot = '5'.
lw_pri_params-prunx = 'D'.
lw_pri_params-prkeyext = '2'.
lw_pri_params-prchk = '9434'.
*
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = 'SLINGAMANENI'
jobcount = lv_number
jobname = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'
report = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'
variant = 'TEST2'
* priparams = lw_pri_params
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.
ENDIF.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_number
jobname = 'YVCMUE035_MASS_ASSMNT_ACTCLERK'
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
invalid_target = 8
OTHERS = 9.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'RS_VARIANT_DELETE'
EXPORTING
report = lv_report
variant = lv_variant
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.
‎2014 Nov 17 1:15 PM
Shashikant
check this out, maybe you will get a hint as to what you might be missing.
Thanks
Sameer
‎2014 Nov 17 2:05 PM
Hi Sameer,
Thanks for the quick response.
I am also doing the same thing but one thing i am not able to understand that when i am assigning the value 'X' to wa_rsparams-low for saving the check box selection to variant but it is not reflecting it as you can see in my original post. I have also given the screenshot. please help me on this.
Thanks,
Shashikant
‎2014 Nov 17 1:17 PM
‎2014 Nov 17 2:07 PM
Hi Simone,
How can i perform the commit work?
Like after calling the function module i have to call the commit work or at somewhere else. Please guide me on this.
And please also suggest me how to save the checkbox selection as inputs to variants as I am trying to do by writing the code below but it is not reflecting it at all.
Regards,
Shashikant
‎2014 Nov 17 2:14 PM
ok, i think i found the problem with a better read (sorry for that)
wa_rsparams-selname = 'PC File'.
You should pass the TECHNICAL name of your parameter (i.e. P_FILE)
And add a COMMIT WORK (in my old 4.7 release i had to add it, now in ECC6 i do not know) after calling the the FM.
‎2014 Nov 18 7:05 AM
Thanks for such a great help.
Can you pls tell me the reason of not saving the variant in database table VARID but able to create the variant for short period of time . lets say yesterday i have created one variant by using FM 'RS_CREATE_VARIANT' but not able to see in the database table but i can see that variant by going into the goto menu bar on the selection screen but after one day it got deleted.
‎2014 Nov 18 7:37 AM
Hi,
Urgent reply please.
As you can see in below code that i am passing the w_file which is more than 45 chars but the structure is allowing me pass the parameter which length is less than 45. So could you please help me on achieving this.
wa_rsparams-selname = 'P_PCFILE'.
wa_rsparams-kind = 'P'.
wa_rsparams-low = w_file.
APPEND wa_rsparams TO it_rsparams.
CLEAR wa_rsparams.
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = g_report
curr_variant = g_variant
vari_desc = g_vari_desc
TABLES
vari_contents = it_rsparams
vari_text = it_vari_text
* VSCREENS =
* VARI_CONTENTS_L =
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 EQ 0.
ENDIF.