Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

function code for execute button

Former Member
0 Likes
2,026

Hi,

I have a requirement like this...

there is a program for selective deletion from a data target by a transaction called delete_facts.

this generates a program for selective deletion. when i run this report there comes one screen asks for selections fields and then again excute it then deletion will happen.

But this program i need to modify for certain default values so as to avoid entering of the values in the selection screen.

i will use default value this will solve my 1st purpose but since this program has to be scheduled from process chain, the 2nd execute funtionality( once the values appear in the screen) shud be automated.

can anybody tell me how to do this that is after program runs values will be passed to selection screen and selection screen shud not be shown and execute shud happen automatically.

this is the code generated by transaction delete_facts:

&----


*& Report ZTEST_DELETE1

*&

&----


*&

*&

&----


REPORT ZTEST_DELETE1.

  • generated Header from i_sel_repid

*----


  • generated REPORT (RSDRD)

  • (should be deleted after use)

  • Generated by..: SALAGUN

  • Date/Time.....: 20070322 / 051426

*----


*REPORT GP457FUV92GJS4663HYHXLYC9Q7 .

  • generated Tables from i_t_tables

  • and i_datatarget

TABLES:

SSCRFIELDS,

/BIC/SZTESTBC

,/BI0/SCHNGID

,/BI0/SRECORDTP

,/BI0/SREQUID

,/BI0/SDATE

,/BI0/SUNIT

.

  • generated DATA/TYPES

TYPE-POOLS: RSDRD, RSDQ.

DATA:

L_INTERACTIVE TYPE RS_BOOL,

L_ANSWER(1) TYPE C,

L_TYPE(1) TYPE C,

L_PARALLEL TYPE I,

L_NO_OF_ROWS TYPE I,

L_NO_OF_ROWS_C(10) TYPE C,

L_TITEL TYPE RS_CHAR72,

L_TEXT1 TYPE RS_CHAR72,

L_TEXT2 TYPE RS_CHAR72,

L_S_RANGE TYPE RSDRD_S_RANGE,

L_S_SELTXT TYPE RSDQ_S_SELTEXT,

L_SX_SEL TYPE RSDRD_SX_SEL,

L_T_MSG TYPE RS_T_MSG,

L_THX_SEL TYPE RSDRD_THX_SEL,

L_T_SELTXTS TYPE RSDQ_T_SELTEXT

WITH HEADER LINE.

  • generated SELECTION-SCREEN from i_t_selscr

SELECTION-SCREEN BEGIN OF BLOCK B001 WITH FRAME TITLE T001 .

SELECT-OPTIONS C001 FOR /BIC/SZTESTBC-/BIC/ZTESTBC

default 'D' TO 'C'.

SELECTION-SCREEN END OF BLOCK B001 .

SELECTION-SCREEN BEGIN OF BLOCK B002 WITH FRAME TITLE T002 .

SELECT-OPTIONS C002 FOR /BI0/SCHNGID-SID .

SELECT-OPTIONS C003 FOR /BI0/SRECORDTP-SID .

SELECT-OPTIONS C004 FOR /BI0/SREQUID-SID .

SELECTION-SCREEN END OF BLOCK B002 .

SELECTION-SCREEN BEGIN OF BLOCK B003 WITH FRAME TITLE T003 .

SELECT-OPTIONS C005 FOR /BI0/SDATE-DATE0 .

SELECTION-SCREEN END OF BLOCK B003 .

SELECTION-SCREEN BEGIN OF BLOCK B004 WITH FRAME TITLE T004 .

SELECT-OPTIONS C006 FOR /BI0/SUNIT-UNIT .

SELECTION-SCREEN END OF BLOCK B004 .

SELECTION-SCREEN BEGIN OF BLOCK B005 WITH FRAME TITLE T005 .

PARAMETERS L_PA TYPE DBMAN_PARALLEL_DEGREE DEFAULT '01'.

DATA L_P1(1) TYPE C.

PARAMETERS L_NL TYPE DBMAN_NO_LOGGING AS CHECKBOX DEFAULT ' '.

PARAMETERS L_SR TYPE DBMAN_SHOW_REPORT AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK B005 .

  • generated body from i_t_body

  • generated INITIALIZATION from i_t_init

  • and i_t_seltexts

  • and i_batch_allowed

  • and i_datatarget

INITIALIZATION.

T001 = 'product'.

T002 = 'Data Package'.

T003 = 'Time'.

T004 = 'Unit'.

T005 = 'Options'.

SELECTION-SCREEN FUNCTION KEY 1.

MOVE 'Execute in Bckgrnd' TO SSCRFIELDS-FUNCTXT_01.

PERFORM RESTRICT_SEL_OPTIONS(SAPLRSDRD).

SET TITLEBAR 'SELECTION' OF PROGRAM 'SAPLRSDRD' WITH

' Delete selected entries from the data target DELETE '.

L_S_SELTXT-NAME = 'C001'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Base Code'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'C002'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Change Run ID (SID)'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'C003'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Record type (SID)'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'C004'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Request ID (SID)'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'C005'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Calendar Day'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'C006'.

L_S_SELTXT-KIND = 'S'.

L_S_SELTXT-TEXT = 'Unit of measure'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'L_PA'.

L_S_SELTXT-KIND = 'P'.

L_S_SELTXT-TEXT = 'Parall. deg. during reconstruc'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'L_NL'.

L_S_SELTXT-KIND = 'P'.

L_S_SELTXT-TEXT = 'Switch off logging drng recons'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

L_S_SELTXT-NAME = 'L_SR'.

L_S_SELTXT-KIND = 'P'.

L_S_SELTXT-TEXT = 'Display generated report'.

APPEND L_S_SELTXT TO L_T_SELTXTS.

  • generated AT SELECTION-SCREEN OUTPUT from i_sel_repid

AT SELECTION-SCREEN OUTPUT.

CALL FUNCTION 'SELECTION_TEXTS_MODIFY'

EXPORTING

PROGRAM = 'GP457FUV92GJS4663HYHXLYC9Q7'

TABLES

SELTEXTS = L_T_SELTXTS

EXCEPTIONS

PROGRAM_NOT_FOUND = 1

PROGRAM_CANNOT_BE_GENERATED = 2

OTHERS = 3.

  • generated AT SELECTION-SCREEN

AT SELECTION-SCREEN.

CASE SSCRFIELDS-UCOMM.

WHEN 'ONLI'.

L_INTERACTIVE = RS_C_TRUE.

WHEN 'OPTI'.

WHEN 'DELS'.

WHEN 'FC01'.

L_INTERACTIVE = RS_C_FALSE.

SSCRFIELDS-UCOMM = 'ONLI'.

WHEN 'OTHERS'.

ENDCASE.

  • generated END-OF-SELECTION from i_t_selopt

  • and i_del_repid

  • and i_datatarget

  • and i_gen_mode

END-OF-SELECTION.

IF NOT C001[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = 'ZTESTBC'.

LOOP AT C001 .

CLEAR L_S_RANGE.

MOVE C001-SIGN TO L_S_RANGE-SIGN.

MOVE C001-OPTION TO L_S_RANGE-OPTION.

MOVE C001-LOW TO L_S_RANGE-LOW.

MOVE C001-HIGH TO L_S_RANGE-HIGH.

MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

IF NOT C002[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = '0CHNGID'.

LOOP AT C002 .

CLEAR L_S_RANGE.

MOVE C002-SIGN TO L_S_RANGE-SIGN.

MOVE C002-OPTION TO L_S_RANGE-OPTION.

MOVE C002-LOW TO L_S_RANGE-SIDLOW.

MOVE C002-HIGH TO L_S_RANGE-SIDHIGH.

MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.

  • start change

DESCRIBE FIELD C002-LOW TYPE l_type.

IF l_type = 'I'.

CONDENSE L_S_RANGE-LOW.

CONDENSE L_S_RANGE-HIGH.

ENDIF.

  • stop change

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

IF NOT C003[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = '0RECORDTP'.

LOOP AT C003 .

CLEAR L_S_RANGE.

MOVE C003-SIGN TO L_S_RANGE-SIGN.

MOVE C003-OPTION TO L_S_RANGE-OPTION.

MOVE C003-LOW TO L_S_RANGE-SIDLOW.

MOVE C003-HIGH TO L_S_RANGE-SIDHIGH.

MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.

  • start change

DESCRIBE FIELD C003-LOW TYPE l_type.

IF l_type = 'I'.

CONDENSE L_S_RANGE-LOW.

CONDENSE L_S_RANGE-HIGH.

ENDIF.

  • stop change

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

IF NOT C004[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = '0REQUID'.

LOOP AT C004 .

CLEAR L_S_RANGE.

MOVE C004-SIGN TO L_S_RANGE-SIGN.

MOVE C004-OPTION TO L_S_RANGE-OPTION.

MOVE C004-LOW TO L_S_RANGE-SIDLOW.

MOVE C004-HIGH TO L_S_RANGE-SIDHIGH.

MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.

  • start change

DESCRIBE FIELD C004-LOW TYPE l_type.

IF l_type = 'I'.

CONDENSE L_S_RANGE-LOW.

CONDENSE L_S_RANGE-HIGH.

ENDIF.

  • stop change

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

IF NOT C005[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = '0CALDAY'.

LOOP AT C005 .

CLEAR L_S_RANGE.

MOVE C005-SIGN TO L_S_RANGE-SIGN.

MOVE C005-OPTION TO L_S_RANGE-OPTION.

MOVE C005-LOW TO L_S_RANGE-LOW.

MOVE C005-HIGH TO L_S_RANGE-HIGH.

MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

IF NOT C006[] IS INITIAL.

CLEAR L_SX_SEL.

L_SX_SEL-IOBJNM = '0UNIT'.

LOOP AT C006 .

CLEAR L_S_RANGE.

MOVE C006-SIGN TO L_S_RANGE-SIGN.

MOVE C006-OPTION TO L_S_RANGE-OPTION.

MOVE C006-LOW TO L_S_RANGE-LOW.

MOVE C006-HIGH TO L_S_RANGE-HIGH.

MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.

APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.

ENDLOOP.

INSERT L_SX_SEL INTO TABLE L_THX_SEL.

ENDIF.

L_PARALLEL = L_PA.

IF L_INTERACTIVE EQ RS_C_TRUE.

CALL FUNCTION 'RSDRD_SEL_DELETION'

EXPORTING

I_DATATARGET = 'DELETE'

I_THX_SEL = L_THX_SEL

I_AUTHORITY_CHECK = RS_C_TRUE

I_NO_LOGGING = L_NL

I_PARALLEL_DEGREE = L_PARALLEL

I_SHOW_REPORT = L_SR

CHANGING

C_T_MSG = L_T_MSG.

ELSE.

CALL FUNCTION 'RSDRD_BUILD_REPORT_FOR_BATCH'

EXPORTING

I_REPID = 'GP457FWJUK1J1F3ZIZZOEH9U533'

I_DATATARGET = 'DELETE'

I_GEN_ONLY = RS_C_FALSE

I_THX_SEL = L_THX_SEL

I_AUTHORITY_CHECK = RS_C_TRUE

I_NO_LOGGING = L_NL

I_PARALLEL_DEGREE = L_PARALLEL

I_SHOW_REPORT = L_SR

CHANGING

C_T_MSG = L_T_MSG.

ENDIF.

Thanks in advance,

Vijaya

1 REPLY 1
Read only

Former Member
0 Likes
826

hi!

Function code for execute button is 'ONLI'.

try ur code using it!!

Reward points if it helps.

Regards,

Neha Bansal.

Message was edited by:

Neha Bansal