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

The question about BDC Program

Former Member
0 Likes
997

I do an example with transaction code SU01.Selected an user(Tom) click Change,then edit Parameters.

Here is my source code:

-


REPORT ZADDRID.

DATA:BEGIN OF INT_BDC OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF INT_BDC.

INITIALIZATION.

PERFORM BUILD_BDC.

PERFORM SUBMIT_BDC.

FORM BUILD_BDC.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0050'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'BDC_CURSOR' 'USR02-BNAME',

USING 'USR02-BNAME' 'Tom',

USING 'BDC_OKCODE' '=CHAN'.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0100'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'USPARAM-PARID' 'RID',

USING 'USPARAM-PARVA' 'MYTEST',

USING 'BDC_OKCODE' '=UPD'.

ENDFORM.

FORM SUBMIT_BDC.

CALL TRANSACTION 'SU01' USING INT_BDC MODE 'A'.

REFRESH INT_BDC.

ENDFORM.

FORM BDC_SCREEN TABLES P_BDC STRUCTURE BDCDATA

USING P_PROGRAM P_SCREEN.

CLEAR P_BDC.

P_BDC-PROGRAM = P_PROGRAM.

P_BDC-DYNPRO = P_SCREEN.

P_BDC-DYNBEGIN = 'X'.

APPEND P_BDC.

ENDFORM.

FORM BDC_FIELD TABLES P_BDC STRUCTURE BDCDATA

USING P_NAME P_VALUE.

CLEAR P_BDC.

CASE P_VALUE.

WHEN ''.

WHEN OTHERS.

P_BDC-FNAM = P_NAME.

P_BDC-FVAL = P_VALUE.

APPEND P_BDC.

ENDCASE.

ENDFORM.

-


Error Message:Field USPARAM-PARVA,does not exist in the screen SAPLSUU5 0100.

Pleae tell how can I solve this question.

Thanks!!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
931

u hv missed one ok-code...

another thing u missed is USING '<b>USPARAM-PARVA(10)</b>' 'MYTEST'.

index...this u have to set the maximum value + 1 of user parameter..

this u can get in table USR05...

plz reward point if my answer helps u...

regards

gv...

REPORT ZADDRID.

DATA:BEGIN OF INT_BDC OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF INT_BDC.

INITIALIZATION.

PERFORM BUILD_BDC.

PERFORM SUBMIT_BDC.

FORM BUILD_BDC.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0050'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'BDC_CURSOR' 'USR02-BNAME',

USING 'USR02-BNAME' 'venkat',

USING 'BDC_OKCODE' '=CHAN'.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0100'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'BDC_OKCODE' '=PARAM'.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0100'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'USPARAM-PARID(10)' 'RID',

USING 'USPARAM-PARVA(10)' 'ZZGV099',

USING 'BDC_OKCODE' '=UPD'.

ENDFORM.

FORM SUBMIT_BDC.

CALL TRANSACTION 'SU01' USING INT_BDC MODE 'A'.

REFRESH INT_BDC.

ENDFORM.

FORM BDC_SCREEN TABLES P_BDC STRUCTURE BDCDATA

USING P_PROGRAM P_SCREEN.

CLEAR P_BDC.

P_BDC-PROGRAM = P_PROGRAM.

P_BDC-DYNPRO = P_SCREEN.

P_BDC-DYNBEGIN = 'X'.

APPEND P_BDC.

ENDFORM.

FORM BDC_FIELD TABLES P_BDC STRUCTURE BDCDATA

USING P_NAME P_VALUE.

CLEAR P_BDC.

CASE P_VALUE.

WHEN ''.

WHEN OTHERS.

P_BDC-FNAM = P_NAME.

P_BDC-FVAL = P_VALUE.

APPEND P_BDC.

ENDCASE.

ENDFORM.

6 REPLIES 6
Read only

Former Member
0 Likes
932

u hv missed one ok-code...

another thing u missed is USING '<b>USPARAM-PARVA(10)</b>' 'MYTEST'.

index...this u have to set the maximum value + 1 of user parameter..

this u can get in table USR05...

plz reward point if my answer helps u...

regards

gv...

REPORT ZADDRID.

DATA:BEGIN OF INT_BDC OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF INT_BDC.

INITIALIZATION.

PERFORM BUILD_BDC.

PERFORM SUBMIT_BDC.

FORM BUILD_BDC.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0050'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'BDC_CURSOR' 'USR02-BNAME',

USING 'USR02-BNAME' 'venkat',

USING 'BDC_OKCODE' '=CHAN'.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0100'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'BDC_OKCODE' '=PARAM'.

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0100'.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'USPARAM-PARID(10)' 'RID',

USING 'USPARAM-PARVA(10)' 'ZZGV099',

USING 'BDC_OKCODE' '=UPD'.

ENDFORM.

FORM SUBMIT_BDC.

CALL TRANSACTION 'SU01' USING INT_BDC MODE 'A'.

REFRESH INT_BDC.

ENDFORM.

FORM BDC_SCREEN TABLES P_BDC STRUCTURE BDCDATA

USING P_PROGRAM P_SCREEN.

CLEAR P_BDC.

P_BDC-PROGRAM = P_PROGRAM.

P_BDC-DYNPRO = P_SCREEN.

P_BDC-DYNBEGIN = 'X'.

APPEND P_BDC.

ENDFORM.

FORM BDC_FIELD TABLES P_BDC STRUCTURE BDCDATA

USING P_NAME P_VALUE.

CLEAR P_BDC.

CASE P_VALUE.

WHEN ''.

WHEN OTHERS.

P_BDC-FNAM = P_NAME.

P_BDC-FVAL = P_VALUE.

APPEND P_BDC.

ENDCASE.

ENDFORM.

Read only

Former Member
0 Likes
931

It looks like the action to click the parameter tab from screen 100 is not there.

BDC_OKCODE =PARAM

From screen 100 you need to add this value.

Read only

Former Member
0 Likes
931

I think the OK-CODE to select the PARAMETER tab is missing. Okcode is PARAM.

Add this line

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'PARAM'.

before.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'USPARAM-PARID' 'RID',

USING 'USPARAM-PARVA' 'MYTEST',

USING 'BDC_OKCODE' '=UPD'.

Read only

Vinod_Chandran
Active Contributor
0 Likes
931

Hi,

You have to give the line index for the 'USPARAM' fields.

PERFORM BDC_FIELD TABLES INT_BDC:

USING 'USPARAM-PARID(01)' 'RID',

USING 'USPARAM-PARVA(01)' 'MYTEST',

USING 'BDC_OKCODE' '=UPD'.

ENDFORM.

If you want to enter more line, the index can be dynamic. You can use a variable here.

Thanks

Vinod

Read only

Former Member
0 Likes
931

This is a workale code -

DATA:BEGIN OF INT_BDC OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF INT_BDC.

INITIALIZATION.

PERFORM BUILD_BDC.

PERFORM SUBMIT_BDC.

FORM SUBMIT_BDC.

CALL TRANSACTION 'SU01' USING INT_BDC MODE 'A'.

REFRESH INT_BDC.

ENDFORM.

FORM BUILD_BDC.

perform bdc_dynpro using 'SAPLSUU5' '0050'.

perform bdc_field using 'BDC_CURSOR'

'USR02-BNAME'.

perform bdc_field using 'BDC_OKCODE'

'=CHAN'.

perform bdc_field using 'USR02-BNAME'

'Tom'.

perform bdc_dynpro using 'SAPLSUU5' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=PARAM'.

perform bdc_dynpro using 'SAPLSUU5' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=CHECK'.

perform bdc_field using 'BDC_CURSOR'

'USPARAM-PARVA(15)'.

perform bdc_field using 'USPARAM-PARID(15)'

'RID'.

perform bdc_field using 'USPARAM-PARVA(07)'

'MY_TEST'.

perform bdc_dynpro using 'SAPLSUU5' '0100'.

perform bdc_field using 'BDC_CURSOR'

'USR02-BNAME'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

ENDFORM .

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR INT_BDC.

INT_BDC-PROGRAM = PROGRAM.

INT_BDC-DYNPRO = DYNPRO.

INT_BDC-DYNBEGIN = 'X'.

APPEND INT_BDC.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> '/'.

CLEAR INT_BDC.

INT_BDC-FNAM = FNAM.

INT_BDC-FVAL = FVAL.

APPEND INT_BDC.

ENDIF.

ENDFORM.

Read only

Former Member
0 Likes
931

hi

"Field USPARAM-PARVA,does not exist in the screen SAPLSUU5 0100"

the field USPARAM-PARVA is available in SAPLSUU5 0104,

try with this

PERFORM BDC_SCREEN TABLES INT_BDC

USING 'SAPLSUU5' '0104'.

cheers,

sasi