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

help with passing values

Former Member
0 Likes
1,007

Hi,

The BDC code works fine when the value(3) or any value is hard coded. But it is not working if I use 'RMQAM-AKTIV(p_insty)' where p_insty is the parameter value entered at selection screen. Please let me know how to pass this value.

perform screen using: 'SAPLQPLS' '0100'.

perform field using: 'RMQAM-AKTIV(3)' w1_aktiv,

'BDC_OKCODE' '=WEIT',

'RMQAM-AKTIV(3)' 'X'.

Regards,

bindazme

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
943

Hi,

You need to do this way.

Concatinate 'RMQAM-AKTIV(' P_INSTY ')' into L_FIELD.  " You need increase the P_INSTY based on the line item number.

Then you need to use this L_FIELD 

perform screen using: 'SAPLQPLS' '0100'.
perform field using: L_FIELD  w1_aktiv,    " here use the L_FIELD.
'BDC_OKCODE' '=WEIT',
'RMQAM-AKTIV(3)' 'X'.

Regards

Sudheer

Hi,

You need to do this way.

Concatinate 'RMQAM-AKTIV(' P_INSTY ')' into L_FIELD.  " You need increase the P_INSTY based on the line item number.

Then you need to use this L_FIELD 

perform screen using: 'SAPLQPLS' '0100'.
perform field using: L_FIELD  w1_aktiv,    " here use the L_FIELD.
'BDC_OKCODE' '=WEIT',
'RMQAM-AKTIV(3)' 'X'.

Regards

Sudheer

5 REPLIES 5
Read only

Former Member
0 Likes
943

is it 'RMQAM-AKTIV(3)' or 'RMQAM-AKTIV(<b>03</b>)'??

Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
943

HI,

Use MEMORY ID and to store the value of the PARAMETER in SAP Memory.

Or else use GET/SET paramters by mentioning the PARAMTER ID at the data element level.

Regards,

Sesh

Read only

Former Member
0 Likes
944

Hi,

You need to do this way.

Concatinate 'RMQAM-AKTIV(' P_INSTY ')' into L_FIELD.  " You need increase the P_INSTY based on the line item number.

Then you need to use this L_FIELD 

perform screen using: 'SAPLQPLS' '0100'.
perform field using: L_FIELD  w1_aktiv,    " here use the L_FIELD.
'BDC_OKCODE' '=WEIT',
'RMQAM-AKTIV(3)' 'X'.

Regards

Sudheer

Read only

Former Member
0 Likes
943

Hi Sudheer,

I am getting value R for L_FIELD. Do you mind providing some sample working code

thanks,

bindazme

Read only

0 Likes
943

Hi,

Parameters in the SAP Memory

SPA/GPA parameters

The SAP Memory is a user-specific memory area of the current application server, which is accessed by all main sessions of a user session at once. ABAP programs have access to SPA/GPA parameters stored in the SAP Memory (also called SET/GET parameters).

Each SPA/GPA parameter is identified by an ID of up to 20 characters. SPA/GPA parameters can either be created explicitly using the statement SET PARAMETER, or implicitly in a PAI event. They are then available to any programs and any sessions throughout the whole duration of a user session. SPA/GPA parameters are evaluated by the ABAP runtime environment. In ABAP programs, the parameters can be read using the statement GET PARAMETER.

One example of a program that uses SPA/GPA parameters is user maintenance (transaction SU01). In this transaction, on the Parameters tab page, you can enter user-specific parameters, which are then set when the user logs on to the ABAP-based SAP system, and are evaluated by other programs.

Administrating SPA/GPA parameters

The names of SPA/GPA parameters are administrated in the database table TPARA. In the Object Navigator of the ABAP Workbench, the names of SPA/GPA parameters are created in the database table TPARA in upper case, and are linked to packages. The database table TPARA acts as a reservation table for SPA/GPA parameters. If you use SPA/GPA parameters in a program, you should ensure that the name of the parameter is contained in the PARAMID column of the database table TPARA. The SPA/GPA parameters of other applications should not be unintentionally overwritten.

Note

If a name exists in the database table TPARA, this does not automatically mean that the corresponding parameter also exists in the SAP Memory. SPA/GPA parameters are exclusively created during execution of an ABAP program.

SPA/GPA parameters and screen errors

When defining input fields, you can link screen fields to SPA/GPA parameters by entering the name of an SPA/GPA parameter from the database table TPARA as an attribute PARAMETER ID. If the corresponding parameter GET PARAMETER is set and no other value is assigned to the input field, the input field is filled with the value of the SPA/GPA parameter when the screen is sent. If the corresponding attribute SET PARAMETER is set, the content of the input field is assigned to the SPA/GPA parameter at the PAI event. If the parameter does not yet exist in the SAP Memory, it is implicitly created at the PAI event. In selection screens, you can create this link by using the MEMORY ID addition to the statements PARAMETERS and SELECT-OPTIONS.

Notes

A data transport between a screen field and an SPA/GPA parameter in the SAP Memory only takes place if a global data object with the same name as the screen field is declared in the corresponding ABAP program.

If the PAI event is triggered using a function of type "E", no values are assigned to the SPA/GPA parameters that are linked with the screen, and no parameters are created in the SAP Memory.

<b>SET PARAMETER</b>

Syntax

SET PARAMETER ID pid FIELD dobj.

Effect:

This statement sets the content of the SPA/GPA parameter specified in pid to the content of the data object dobj. For pid, a flat character-type field is expected that can contain a maximum of 20 characters, which cannot be exclusively blank characters. pid is case-sensitive. For dobj, a flat, (as of release 6.10 character-type) field is expected, whose binary content is transferred in an unconverted format.

If the SPA/GPA parameter specified for the current user in pid does not yet exist in the SAP memory, it is created. If the SPA/GPA parameter has already been created for the current user, its value is overwritten.

In a program, SPA/GPA parameters can only be created or assigned values if a name exists for them in the table TPARA. The extended program check reports an error if it can statically determine that a name specified in pid is not contained in the database table TPARA. ist.

Note:

For a SPA/GPA parameter specified in pid to match a name in the database table TPARA, it must be entered in upper case.

Example:

If the user selects a flight displayed in the basic list, when the event ATLINE-SELECTION takes place, the SPA/GPA parameters CAR and CON are set to the ID of the airline and the connection number. The names of both parameters are defined in the table TPARA for this purpose. In the initial screen of the transaction DEMO_TRANSACTION, two input fields are linked with SPA/GPA these parameters and are displayed with the selected values as start values.

DATA: carrier TYPE spfli-carrid,

connection TYPE spfli-connid.

START-OF-SELECTION.

SELECT carrid connid

FROM spfli

INTO (carrier, connection).

WRITE: / carrier HOTSPOT, connection HOTSPOT.

HIDE: carrier, connection.

ENDSELECT.

AT LINE-SELECTION.

SET PARAMETER ID: 'CAR' FIELD carrier,

'CON' FIELD connection.

CALL TRANSACTION 'DEMO_TRANSACTION'.

<b>GET PARAMETER</b>

Syntax

GET PARAMETER ID pid FIELD dobj.

Effect

This statement sets the content of the data object dobj to the content of the SPA/GPA parameter specified in pid. pid must be a flat character-type field that contains no more than 20 characters and does not consist solely of blanks; it is also case-sensitive. dobj must be a flat and (as of Release 6.10) character-type field into which the binary content of the SPA/GPA parameter is transferred unconverted.

If the SPA/GPA parameter specified in pid was not yet created in the SAP Memory for the current user, the data object dobj is initialized and sy-subrc is set to 4.

In a program, only those SPA/GPA parameters can be read for which there is a name in the table TPARA. The extended program check reports an error, if it can be statically determined that an ID specified in pid is not in the table TPARA.

System fields

sy-subrc 0-> The SPA/GPA parameter specified in pid exists for the current user in the SAP Memory and its value was transferred to the target field.

sy-subrc 4-> The SPA/GPA parameter specified in pid does not exist for the current user in the SAP Memory.

Notes

An SPA/GPA parameter that is readable with GET PARAMETER can previously have been created in the SAP Memory using the SET PARAMETER statement or automatically during the event PAI of a screen or selection screen.

For an SPA/GPA parameter specified in pid to match a name in the database table TPARA, it must be specified in uppercase.

Example

In this example, the current value of the SPA/GPA parameter RID is read from the SAP Memory to the data object prog. In the screens of the ABAP Workbench, this parameter is linked with the input fields for a program name. When an ABAP Workbench tool, in which an ABAP program is processed, is first called, the parameter is created at the event PAI and assigned the name of the program specified there. If in the same user session, no screen is processed that set the parameter RID and no corresponding SET PARAMETER statement was executed beforehand, RID is not found in the SAP Memory.

DATA: para TYPE tpara-paramid VALUE 'RID',

prog TYPE sy-repid.

GET PARAMETER ID para FIELD prog.

IF sy-subrc <> 0.

MESSAGE 'Parameter not found' TYPE 'I'.

ENDIF.

Regards,

Sesh