Application Development 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: 

Issue with using GET n SET Parameter in module pool programming.

senthil_kumar29
Participant
0 Kudos

Hello Friends,

I am using SET n GET Parameter to access input values from a screen. But when I use it, the values are not transfered back n forth. Getting initial values.

Your expertise would be appreciated.

Cheers,

Senthil

6 REPLIES 6

Former Member
0 Kudos

HI ,

is it possible to put some sample code for proper reply ,

THX

Former Member
0 Kudos

Senthil ,

paste your code then answer.

0 Kudos

Hi,

get parameter ID 'VDATE' field l_validdate.

This parameter VDATE has been given in the screen input field properties and Set N Get check boxes is clicked.

This get parameter I am accessing in the PAI.

And Setting in PBO.

Cheers,

Senthil

0 Kudos

Hi,

check this

Filling an Initial Screen using SPA/GPA Parameters

To fill the input fields of a called transaction with data from the calling program, you can use the SPA/GPA technique. SPA/GPA parameters are values that the system stores in the global, user-specific SAP memory. SAP memory allows you to pass values between programs. A user can access the values stored in the SAP memory during one terminal session for all parallel sessions. Each SPA/GPA parameter is identified by a 20-character code. You can maintain them in the Repository Browser in the ABAP Workbench. The values in SPA/GPA parameters are user-specific.

ABAP programs can access the parameters using the SET PARAMETER and GET PARAMETER statements.

To fill one, use:

SET PARAMETER ID <pid> FIELD <f>.

This statement saves the contents of field <f> under the ID <pid> in the SAP memory. The code <pid> can be up to 20 characters long. If there was already a value stored under <pid>, this statement overwrites it. If the ID <pid> does not exist, double-click <pid> in the ABAP Editor to create a new parameter object.

To read an SPA/GPA parameter, use:

GET PARAMETER ID <pid> FIELD <f>.

This statement fills the value stored under the ID <pid> into the variable <f>. If the system does not find a value for <pid> in the SAP memory, it sets SY-SUBRC to 4, otherwise to 0.

To fill the initial screen of a program using SPA/GPA parameters, you normally only need the SET PARAMETER statement.

The relevant fields must each be linked to an SPA/GPA parameter.

On a selection screen, you link fields to parameters using the MEMORY ID addition in the PARAMETERS or SELECT-OPTIONS statement. If you specify an SPA/GPA parameter ID when you declare a parameter or selection option, the corresponding input field is linked to that input field.

On a screen, you link fields to parameters in the Screen Painter. When you define the field attributes of an input field, you can enter the name of an SPA/GPA parameter in the Parameter ID field in the screen attributes. The SET parameter and GET parameter checkboxes allow you to specify whether the field should be filled from the corresponding SPA/GPA parameter in the PBO event, and whether the SPA/GPA parameter should be filled with the value from the screen in the PAI event.

When an input field is linked to an SPA/GPA parameter, it is initialized with the current value of the parameter each time the screen is displayed. This is the reason why fields on screens in the R/3 System often already contain values when you call them more than once.

When you call programs, you can use SPA/GPA parameters with no additional programming overhead if, for example, you need to fill obligatory fields on the initial screen of the called program. The system simply transfers the values from the parameters into the input fields of the called program.

However, you can control the contents of the parameters from your program by using the SET PARAMETER statement before the actual program call. This technique is particularly useful if you want to skip the initial screen of the called program and that screen contains obligatory fields.

If you want to set SPA/GPA parameters before a program call, you need to know which parameters are linked to which fields on the initial screen. A simple way of doing this is to start the program that you want to call, place the cursor on the input fields, and choose F1 followed by Technical info. The Parameter ID field contains the name of the corresponding SPA/GPA parameter. Alternatively, you can look at the screen definition in the Screen Painter.

The technical information for the first input field of the booking transaction TCG2 looks like this:

The SPA/GPA parameter for the input field Company has the ID CAR. Use this method to find the IDs CON, DAY, and BOK for the other input fields.

The following executable program is connected to the logical database F1S and calls an update transaction:

REPORT BOOKINGS NO STANDARD PAGE HEADING.

TABLES SBOOK.

START-OF-SELECTION.

WRITE: 'Select a booking',

/ '----


'.

SKIP.

GET SBOOK.

WRITE: SBOOK-CARRID, SBOOK-CONNID,

SBOOK-FLDATE, SBOOK-BOOKID.

HIDE: SBOOK-CARRID, SBOOK-CONNID,

SBOOK-FLDATE, SBOOK-BOOKID.

AT LINE-SELECTION.

SET PARAMETER ID: 'CAR' FIELD SBOOK-CARRID,

'CON' FIELD SBOOK-CONNID,

'DAY' FIELD SBOOK-FLDATE,

'BOK' FIELD SBOOK-BOOKID.

CALL TRANSACTION 'BOOK'.

The basic list of the program shows fields from the database table SBOOK according to the user entries on the selection screen. These data are also stored in the HIDE areas of each line.

If the user selects a line of booking data by double-clicking, the system triggers the AT LINE-SELECTION event and takes the data stored in the HIDE area to fill them into the SPA/GPA parameters of the initial screen of the transaction. Then it calls the transaction. Since you do not suppress the initial screen using AND SKIP FIRST SCREEN, the initial screen may appear as follows:

If you would use the AND SKIP FIRST SCREEN option with the CALL TRANSACTION statement, the second screen would appear immediately, since all obligatory fields of the first screen are filled.

Regards

Edited by: K.P.N on Jan 9, 2008 5:21 AM

Former Member
0 Kudos

Senthil

Please check if there are any manipulations done within Events orelse you can also opt for Export and Import statements.

Kind Regards

Eswar

Former Member
0 Kudos

Hi Senthil,

1. Please check you have given Parameter name and ticked Get parameter and Set Parameter for the variable.

2. Check if varaible with same name is defined in your program. (If you are calling screen from program).

3. Check if variable only of following type C,N,D or T or any of derived type form mentioned types.

4. Check if you are not overriding / initializing another value in your PBO / Initialization event..

Number 4 is most probable error.

Regards,

Mohaiyuddin