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

BDC Problem.

Former Member
0 Likes
516

Hi Guys/Dolls

I have a program that has the follwing piece of code within it.

It compiles and executes ok and creates a batch session.

The batch it creates is not working correctly and I wondered if any of you ABAP/BDC guru's out there have any ideas; basically it gets so far and then stops with the following message on the status line

"No batch input data for screen SAPMP50A 1000"

Any help would be appreciated - Raj

Now for the science.

FORM update_bdc_data_3.

IF p_rad2 = 'X'.

LOOP AT i_p0003.

CLEAR v_begda_full.

CLEAR v_endda_full.

CLEAR v_rrdat_full.

MOVE i_p0003-begda+6(2) TO v_begda_dd.

MOVE i_p0003-begda+4(2) TO v_begda_mm.

MOVE i_p0003-begda(4) TO v_begda_yy.

CONCATENATE v_begda_dd v_begda_mm v_begda_yy

INTO v_begda_full.

MOVE i_p0003-endda+6(2) TO v_endda_dd.

MOVE i_p0003-endda+4(2) TO v_endda_mm.

MOVE i_p0003-endda(4) TO v_endda_yy.

CONCATENATE v_endda_dd v_endda_mm v_endda_yy

INTO v_endda_full.

IF i_p0003-rrdat NE 0.

MOVE i_p0003-rrdat+6(2) TO v_rrdat_dd.

MOVE i_p0003-rrdat+4(2) TO v_rrdat_mm.

MOVE i_p0003-rrdat(4) TO v_rrdat_yy.

CONCATENATE v_rrdat_dd v_rrdat_mm v_rrdat_yy

INTO v_rrdat_full.

ELSE.

v_rrdat_full = ''.

ENDIF.

REFRESH bdcdata.

PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PU03'.

PERFORM bdc_field USING 'RP50G-PERNR'

i_p0003-pernr.

PERFORM bdc_field USING 'RP50G-TIMR6'

'X'.

PERFORM bdc_field USING 'RP50G-BEGDA'

v_begda_full.

PERFORM bdc_field USING 'RP50G-ENDDA'

v_endda_full.

PERFORM bdc_field USING 'RP50G-CHOIC'

'3'.

PERFORM bdc_dynpro USING 'MP000300' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0003-RRDAT'.

IF i_p0003-koabr = 'X'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=MCWS'.

ELSE.

PERFORM bdc_field USING 'BDC_OKCODE'

'=MCWD'.

ENDIF.

IF i_p0003-clear_prdat = 'X'.

PERFORM bdc_field USING 'P0003-PRDAT'

' '.

ENDIF.

PERFORM bdc_field USING 'P0003-RRDAT'

v_rrdat_full.

PERFORM bdc_dynpro USING 'MP000300' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EBCK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RP50G-PERNR'.

PERFORM bdc_transaction USING 'PA30'.

IF p_r2rad2 NE 'X'.

WRITE: /3 'UPD:', i_p0003-pernr, i_p0003-begda,

i_p0003-endda, 'Update P0003' INTENSIFIED OFF.

ENDIF.

ENDLOOP.

ENDIF.

ENDFORM. "UPDATE_BDC_DATA_3

3 REPLIES 3
Read only

Former Member
0 Likes
467

the code should be like this


PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PU03'.

PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
PERFORM bdc_field USING 'RP50G-PERNR'
i_p0003-pernr.

If you use PERFORM bdc_field USING 'BDC_OKCODE'

you should follow it with

PERFORM bdc_dynpro USING

OR

PERFORM bdc_transaction USING

Read only

Former Member
0 Likes
467

I dont know if a OK_CODE PU03 exists at all

What is that you want to upload into Infotype 3

Read only

0 Likes
467

I think the code's just making some changes to fields on the payroll status IT i.e. IT3

I tried what you suggested but now getting the following message any ideas?

"No batch input data for screen MP000300 2000"

Sorry to be a pain.