‎2008 Jun 13 10:05 AM
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
‎2008 Jun 13 10:12 AM
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
‎2008 Jun 13 10:15 AM
I dont know if a OK_CODE PU03 exists at all
What is that you want to upload into Infotype 3
‎2008 Jun 13 10:45 AM
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.