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: 

Recording via SHDB

Former Member
0 Kudos

I have a problem.

I have made a program via recording in SHDB for doing changes in PA40 for all employees. The input is a text file and the mode i.e. E , A or N.

The issue is that when i run it on development server by giving text file and E (stop only at error) as input then it works fine and stops only at errors..

But when I transport it to QA Server and run it by giving text file and E (stop only at error) as input then it stops at every screen.

I have more than 1000 employees, i want it to stop only at error.

Can anybody have idea that why its behaving different on QA server??

The code is below:

REPORT ZHR_INF8_AI NO STANDARD PAGE HEADING LINE-SIZE 255.

*****************************************************

*****************Input

PARAMETERS : FILENAME(128) OBLIGATORY.

PARAMETERS : MODE(1) TYPE C OBLIGATORY.

******************************************************

*****************DATA

TABLES: PA0000, PERNR, PA0001, RP50G, PA0008 , PSPAR.

DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CONSTANTS: NODATA VALUE ''.

DATA : BEGIN OF ITAB OCCURS 0,

PERNR LIKE PERNR-PERNR,

  • Group

EMPLOYEE_GROUP LIKE PSPAR-PERSG,

  • Sub group

EMPLOYEE_SUBGROUP LIKE PSPAR-PERSK,

  • Area

EMPLOYEE_AREA LIKE PA0008-TRFGB,

END OF ITAB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

CHANGING

FILE_NAME = FILENAME.

**********************************************************

**************MAIN PROGRAM

START-OF-SELECTION.

PERFORM READ_FILE.

LOOP AT ITAB.

WRITE:/ ITAB-PERNR.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERSK(05)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_field using 'RP50G-SELEC(05)'

'X'.

perform bdc_field using 'RP50G-PERSK(05)'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

perform bdc_field using 'BDC_OKCODE'

'=PICK'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'PSPAR-PERSK'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'P0000-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0001-BEGDA'.

perform bdc_dynpro using 'MP900700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P9007-BEGDA'.

perform bdc_dynpro using 'MP000700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0007-BEGDA'.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-TRFGB'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP004100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0041-BEGDA'.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/EBCK'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

CALL TRANSACTION 'PA40' USING BDCDATA MODE MODE.

CLEAR: BDCDATA[].

ENDLOOP.

----


  • FORM READ_FILE *

----


  • ........ *

----


FORM READ_FILE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

CODEPAGE = 'IBM'

FILENAME = FILENAME

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • FILE_OPEN_ERROR = 2

  • FILE_READ_ERROR = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 9

  • OTHERS = 10

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " READ_FILE

----


  • FORM BDC_FIELD *

----


  • ........ *

----


  • --> FNAM *

  • --> FVAL *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROGRAM *

  • --> DYNPRO *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

Regards,

Aisha Ishrat

ICI Pakistan.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Thanks Moqeeth. i have done this as follows.but tell me one thing that how it will be known that against which employee error comes, as it just prints all messages, NOT ONLY ERROR MESSAGES, when i run it on E and plus it does not mention the employee no.

here is the code.

REPORT ZHR_INF8_AI NO STANDARD PAGE HEADING LINE-SIZE 255.

*****************************************************

*****************Input

PARAMETERS : FILENAME(128) OBLIGATORY.

PARAMETERS : MODE(1) TYPE C OBLIGATORY.

******************************************************

*****************DATA

TABLES: PA0000, PERNR, PA0001, RP50G, PA0008 , PSPAR.

DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CONSTANTS: NODATA VALUE ''.

DATA : BEGIN OF ITAB OCCURS 0,

PERNR LIKE PERNR-PERNR,

  • Group

EMPLOYEE_GROUP LIKE PSPAR-PERSG,

  • Sub group

EMPLOYEE_SUBGROUP LIKE PSPAR-PERSK,

  • Area

EMPLOYEE_AREA LIKE PA0008-TRFGB,

END OF ITAB.

DATA : ITAB_1 TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

CHANGING

FILE_NAME = FILENAME.

**********************************************************

**************MAIN PROGRAM

START-OF-SELECTION.

PERFORM READ_FILE.

LOOP AT ITAB.

WRITE:/ ITAB-PERNR.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERSK(05)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_field using 'RP50G-SELEC(05)'

'X'.

perform bdc_field using 'RP50G-PERSK(05)'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

perform bdc_field using 'BDC_OKCODE'

'=PICK'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'PSPAR-PERSK'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'P0000-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0001-BEGDA'.

perform bdc_dynpro using 'MP900700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P9007-BEGDA'.

perform bdc_dynpro using 'MP000700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0007-BEGDA'.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-TRFGB'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP004100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0041-BEGDA'.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/EBCK'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

CALL TRANSACTION 'PA40' USING BDCDATA MODE MODE MESSAGES INTO ITAB_1

.

CLEAR: BDCDATA[].

ENDLOOP.

LOOP AT itab_1.

write ITAB_1.

ENDLOOP.

----


  • FORM READ_FILE *

----


  • ........ *

----


FORM READ_FILE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

CODEPAGE = 'IBM'

FILENAME = FILENAME

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • FILE_OPEN_ERROR = 2

  • FILE_READ_ERROR = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 9

  • OTHERS = 10

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " READ_FILE

----


  • FORM BDC_FIELD *

----


  • ........ *

----


  • --> FNAM *

  • --> FVAL *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROGRAM *

  • --> DYNPRO *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

8 REPLIES 8

Former Member
0 Kudos

Hi Ashish,

In QA system when you get the screen, check why it's stopping (for Mode = E). I think there should be some error on the screen input values.

I think the date format is different from your Development & Quality system, check it

Regards,

Manjunatha

Former Member
0 Kudos

hi aisha,

the code i am giving to you may be helpful 2 u.

If so reward me with POINTS.

&----


& Include MZSANKET_BDC_1TOP Module poo

*& *

&----


PROGRAM SAPMZSANKET_BDC_1 .

TABLES: VBAK,VBAP,VBKD.

DATA: F_PLANT TYPE RV45A-DWERK,

L_QUANT(6).

DATA: T_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: T_MSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA: OK_CODE TYPE SY-DYNNR.

DATA: BEGIN OF T_DATA OCCURS 0,

LINE(225),

END OF T_DATA.

DATA: SCR TYPE SY-DYNNR VALUE '0110'.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'SANKET'.

SET TITLEBAR 'MAIN'.

ENDMODULE. " STATUS_0100 OUTPUT

PAI..........

&----


*& Include MZSANKET_BDC_1I01 *

&----


&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

DATA: L_DATE(10).

CASE OK_CODE.

WHEN 'CREA'.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = '
vikalp-020\Shared\SANKET\ZTEST.TXT'

FILETYPE = 'ASC'

TABLES

DATA_TAB = T_DATA

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17.

LOOP AT T_DATA.

SPLIT T_DATA-LINE AT SPACE INTO

VBAK-AUART VBAK-VKORG VBAK-VTWEG

VBAK-SPART VBAK-KUNNR F_PLANT VBKD-BSTKD L_DATE VBAP-MATNR L_QUANT.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'VBAK-AUART'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'VBAK-AUART'

VBAK-AUART.

PERFORM BDC_FIELD USING 'VBAK-VKORG'

VBAK-VKORG.

PERFORM BDC_FIELD USING 'VBAK-VTWEG'

VBAK-VTWEG.

PERFORM BDC_FIELD USING 'VBAK-SPART'

VBAK-SPART.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

VBKD-BSTKD.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

L_DATE.

*.................

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

'3002'.

*..........

PERFORM BDC_FIELD USING 'RV45A-DWERK'

F_PLANT.

PERFORM BDC_FIELD USING 'RV45A-DWERK'

F_PLANT.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RV45A-MABNR(01)'.

PERFORM BDC_FIELD USING 'RV45A-MABNR(01)'

'MAT1'.

PERFORM BDC_FIELD USING 'RV45A-KWMENG(01)'

L_QUANT.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SICH'.

CALL TRANSACTION 'VA01' USING T_BDCDATA

MODE 'E'

UPDATE 'A'

MESSAGES INTO T_MSG.

ENDLOOP.

WHEN 'EXIT'.

LEAVE TO SCREEN 0110.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE USER_COMMAND_0200 INPUT.

CASE OK_CODE.

WHEN 'EXIT'.

LEAVE TO SCREEN 0110.

WHEN 'CREA'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'VBAK-AUART'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'VBAK-AUART'

'OR'.

PERFORM BDC_FIELD USING 'VBAK-VKORG'

'5555'.

PERFORM BDC_FIELD USING 'VBAK-VTWEG'

'55'.

PERFORM BDC_FIELD USING 'VBAK-SPART'

'55'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'PICK'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

'5555'.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

'2007/04/18'.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'VBAK-LIFSK'

'03'.

PERFORM BDC_FIELD USING 'VBAK-FAKSK'

'01'.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

'2007/04/24'.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

'0001'.

PERFORM BDC_FIELD USING 'VBAK-AUGRU'

'460'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RV45A-MABNR(01)'.

PERFORM BDC_FIELD USING 'RV45A-MABNR(01)'

'MAT1'.

PERFORM BDC_FIELD USING 'RV45A-KWMENG(01)'

' 1'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

'5555'.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

'2007/04/18'.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'VBAK-LIFSK'

'03'.

PERFORM BDC_FIELD USING 'VBAK-FAKSK'

'01'.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

'2007/04/24'.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

'0001'.

PERFORM BDC_FIELD USING 'VBKD-INCO1'

'CFR'.

PERFORM BDC_FIELD USING 'VBKD-INCO2'

'delhi'.

PERFORM BDC_FIELD USING 'VBAK-AUGRU'

'460'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RV45A-KWMENG(01)'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SICH'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

'5555'.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

'2007/04/18'.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

'3002'.

PERFORM BDC_FIELD USING 'VBAK-LIFSK'

'03'.

PERFORM BDC_FIELD USING 'VBAK-FAKSK'

'01'.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

'2007/04/24'.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

'0001'.

PERFORM BDC_FIELD USING 'VBKD-INCO1'

'CFR'.

PERFORM BDC_FIELD USING 'VBKD-INCO2'

'delhi'.

PERFORM BDC_FIELD USING 'VBAK-AUGRU'

'460'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RV45A-MABNR(02)'.

CALL TRANSACTION 'VA01' USING T_BDCDATA

MODE 'E'

UPDATE 'A'

MESSAGES INTO T_MSG.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

Thanks

Sanket

Former Member
0 Kudos

I cant understand anything.

Does it possible then we run it on E and instead of stopping at errors, errors simply save in internal table and print at the end of the program?

If yes then how?

0 Kudos

Hello Ayesha,

I suggest you to call the transaction in 'E' mode

1. call transaction in 'E' mode

2. collect all the incorrect/error data into one error_table based on BDCMSGCOLL

3. At the end of program you can display incorrect/error data from internal table

4. Or you can download incorrect/error data to flat file.

<u>Exampe: use the call tranaction statement as below:</u>

<b>CALL TRANSACTION 'PA40' USING T_BDCDATA MODE 'E' UPDATE 'A' MESSAGES INTO T_MSG.</b>

(where T_MSG is message table based on BDCMSGCOLL to collect incorrect/error data)

<b>I hope it is clear to you, please let me know of you have any questions.

Reward points for all helpful answers.

Cheers !

Moqeeth.</b>

Former Member
0 Kudos

Thanks Moqeeth. i have done this as follows.but tell me one thing that how it will be known that against which employee error comes, as it just prints all messages, NOT ONLY ERROR MESSAGES, when i run it on E and plus it does not mention the employee no.

here is the code.

REPORT ZHR_INF8_AI NO STANDARD PAGE HEADING LINE-SIZE 255.

*****************************************************

*****************Input

PARAMETERS : FILENAME(128) OBLIGATORY.

PARAMETERS : MODE(1) TYPE C OBLIGATORY.

******************************************************

*****************DATA

TABLES: PA0000, PERNR, PA0001, RP50G, PA0008 , PSPAR.

DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CONSTANTS: NODATA VALUE ''.

DATA : BEGIN OF ITAB OCCURS 0,

PERNR LIKE PERNR-PERNR,

  • Group

EMPLOYEE_GROUP LIKE PSPAR-PERSG,

  • Sub group

EMPLOYEE_SUBGROUP LIKE PSPAR-PERSK,

  • Area

EMPLOYEE_AREA LIKE PA0008-TRFGB,

END OF ITAB.

DATA : ITAB_1 TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

CHANGING

FILE_NAME = FILENAME.

**********************************************************

**************MAIN PROGRAM

START-OF-SELECTION.

PERFORM READ_FILE.

LOOP AT ITAB.

WRITE:/ ITAB-PERNR.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERSK(05)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_field using 'RP50G-SELEC(05)'

'X'.

perform bdc_field using 'RP50G-PERSK(05)'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

perform bdc_field using 'BDC_OKCODE'

'=PICK'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'PSPAR-PERSK'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'P0000-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0001-BEGDA'.

perform bdc_dynpro using 'MP900700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P9007-BEGDA'.

perform bdc_dynpro using 'MP000700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0007-BEGDA'.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-TRFGB'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP004100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0041-BEGDA'.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/EBCK'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

CALL TRANSACTION 'PA40' USING BDCDATA MODE MODE MESSAGES INTO ITAB_1

.

CLEAR: BDCDATA[].

ENDLOOP.

LOOP AT itab_1.

write ITAB_1.

ENDLOOP.

----


  • FORM READ_FILE *

----


  • ........ *

----


FORM READ_FILE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

CODEPAGE = 'IBM'

FILENAME = FILENAME

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • FILE_OPEN_ERROR = 2

  • FILE_READ_ERROR = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 9

  • OTHERS = 10

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " READ_FILE

----


  • FORM BDC_FIELD *

----


  • ........ *

----


  • --> FNAM *

  • --> FVAL *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROGRAM *

  • --> DYNPRO *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

0 Kudos

Ayesha,

Could you please sent the test data/input file to my e-mail ID, so that i can analysie the code with test data write the needful code...

Regards,

Moqeeth.

0 Kudos

Ayesha,

You have to declare a internal table for maintaining error entries and after CALL TRANSACTION statement you have to move incorrect entries to this error table.... here i have written code for you.....

<b>Reward points.. for helpful answers...

Cheers !

Moqeeth.</b>

*REPORT ZHR_INF8_AI .

REPORT zhr_inf8_ai NO STANDARD PAGE HEADING LINE-SIZE 255.

*****************************************************

*****************Input

PARAMETERS : filename(128) OBLIGATORY.

PARAMETERS : mode(1) TYPE c OBLIGATORY.

******************************************************

*****************DATA

TABLES: pa0000, pernr, pa0001, rp50g, pa0008 , pspar.

DATA : bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

CONSTANTS: nodata VALUE ''.

DATA : BEGIN OF itab OCCURS 0,

pernr LIKE pernr-pernr,

  • Group

employee_group LIKE pspar-persg,

  • Sub group

employee_subgroup LIKE pspar-persk,

  • Area

employee_area LIKE pa0008-trfgb,

END OF itab.

DATA : itab_1 TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.

*Begin of insertion >>

<b>DATA: BEGIN OF itab_error OCCURS 0.

INCLUDE STRUCTURE itab. "structure from itab

DATA: msgtyp TYPE bdc_mart, "Batch input message type

msgv1 TYPE bdc_vtext1. "Variable part of a message

DATA END OF itab_error.</b>

*End of insertion <<

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

CHANGING

file_name = filename.

**********************************************************

**************MAIN PROGRAM

START-OF-SELECTION.

PERFORM read_file.

LOOP AT itab.

WRITE:/ itab-pernr.

PERFORM bdc_dynpro USING 'SAPMP50A' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RP50G-PERSK(05)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RP50G-PERNR'

itab-pernr.

PERFORM bdc_field USING 'RP50G-EINDA'

'01.07.2007'.

PERFORM bdc_field USING 'RP50G-SELEC(05)'

'X'.

PERFORM bdc_field USING 'RP50G-PERSK(05)'

itab-employee_subgroup.

PERFORM bdc_dynpro USING 'SAPMP50A' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RP50G-PERNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PICK'.

PERFORM bdc_field USING 'RP50G-PERNR'

itab-pernr.

PERFORM bdc_field USING 'RP50G-EINDA'

'01.07.2007'.

PERFORM bdc_dynpro USING 'MP000000' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PSPAR-PERSK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'P0000-BEGDA'

'01.07.2007'.

PERFORM bdc_field USING 'PSPAR-PERSG'

itab-employee_group.

PERFORM bdc_field USING 'PSPAR-PERSK'

itab-employee_subgroup.

PERFORM bdc_dynpro USING 'MP000000' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0000-BEGDA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

PERFORM bdc_field USING 'P0000-BEGDA'

'01.07.2007'.

PERFORM bdc_field USING 'PSPAR-PERSG'

itab-employee_group.

PERFORM bdc_field USING 'PSPAR-PERSK'

itab-employee_subgroup.

PERFORM bdc_dynpro USING 'MP000100' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/ENXT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0001-BEGDA'.

PERFORM bdc_dynpro USING 'MP900700' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/ENXT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P9007-BEGDA'.

PERFORM bdc_dynpro USING 'MP000700' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/ENXT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0007-BEGDA'.

PERFORM bdc_dynpro USING 'MP000800' '2010'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0008-TRFGB'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'P0008-BEGDA'

'01.07.2007'.

PERFORM bdc_field USING 'P0008-ENDDA'

'31.12.9999'.

PERFORM bdc_field USING 'P0008-TRFGB'

itab-employee_area.

PERFORM bdc_dynpro USING 'MP000800' '2010'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0008-BEGDA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

PERFORM bdc_field USING 'P0008-BEGDA'

'01.07.2007'.

PERFORM bdc_field USING 'P0008-ENDDA'

'31.12.9999'.

PERFORM bdc_field USING 'P0008-TRFGB'

itab-employee_area.

PERFORM bdc_dynpro USING 'MP004100' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/ENXT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P0041-BEGDA'.

PERFORM bdc_dynpro USING 'SAPMP50A' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EBCK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RP50G-PERNR'.

CALL TRANSACTION 'PA40' USING bdcdata MODE mode MESSAGES INTO itab_1

.

*Begin of insertion >>

<b> IF sy-subrc NE 0. "if error

CLEAR itab_1.

READ TABLE itab_1 INDEX 1.

IF itab_1-msgtyp NE 'I'.

MOVE-CORRESPONDING itab TO itab_error.

MOVE: itab_1-msgtyp TO itab_error-msgtyp,

itab_1-msgv1 TO itab_error-msgv1.

APPEND itab_error.

CLEAR itab_error.

REFRESH itab_1.

ENDIF.

ENDIF.</b>

*End of insertion <<

CLEAR: bdcdata[].

ENDLOOP.

*Begin of comment >>

<b>* LOOP AT itab_1.

*

  • WRITE itab_1.

*

  • ENDLOOP.

*

  • LOOP AT itab_1.</b>

*End of comment <<

*Begin of insertion >>

<b> WRITE:/ 'Incorrect - Data:'.

SKIP.

LOOP AT itab_error.

WRITE:/ itab_error-pernr,

itab_error-employee_group,

itab_error-employee_subgroup,

itab_error-employee_area,

itab_error-msgtyp,

itab_error-msgv1.

CLEAR itab_error.

ENDLOOP.</b>

*End of insertion <<

----


  • FORM READ_FILE *

----


  • ........ *

----


FORM read_file.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

codepage = 'IBM'

filename = filename

filetype = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = itab

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • FILE_OPEN_ERROR = 2

  • FILE_READ_ERROR = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 9

  • OTHERS = 10

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " READ_FILE

----


  • FORM BDC_FIELD *

----


  • ........ *

----


  • --> FNAM *

  • --> FVAL *

----


FORM bdc_field USING fnam fval.

IF fval <> nodata.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDIF.

ENDFORM.

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROGRAM *

  • --> DYNPRO *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM.

Former Member
0 Kudos

Moqeeth,

I have done it by a different template, its working fine now.

code is below.

REPORT ZHRASAD NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE BDCRECX1.

DATA: FNAME TYPE RLGRAP-FILENAME,

FTYPE TYPE RLGRAP-FILETYPE,

FSIZE TYPE I.

TYPES: BEGIN OF ITAB,

PERNR LIKE PERNR-PERNR,

  • Group

EMPLOYEE_GROUP LIKE PSPAR-PERSG,

  • Sub group

EMPLOYEE_SUBGROUP LIKE PSPAR-PERSK,

  • Area

EMPLOYEE_AREA LIKE PA0008-TRFGB,

END OF ITAB.

  • Define Internal Master Table

DATA ITAB TYPE STANDARD TABLE OF ITAB

WITH HEADER LINE.

DATA : GV_FILE TYPE STRING,

V_MARK(4) TYPE C,

DEL(1) VALUE ' '.

*****************************************************************

*SELECTION SCREEN *

*****************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_FILE LIKE IBIPPARMS-PATH OBLIGATORY. " For file selection

SELECTION-SCREEN END OF BLOCK B1.

*****************************************************************

*AT SELECTION SCREEN *

*****************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE.

*****************************************************************

*START OF SELECTION * *

*****************************************************************

START-OF-SELECTION.

  • P_FILE is not compatible with the FM GUI_UPLOAD, so pass it to

  • GV_FILE.

GV_FILE = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = GV_FILE

HAS_FIELD_SEPARATOR = 'X' "file is TAB delimited

TABLES

DATA_TAB = ITAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17.

LOOP AT ITAB.

PERFORM OPEN_GROUP.

WRITE:/ ITAB-PERNR.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERSK(05)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_field using 'RP50G-SELEC(05)'

'X'.

perform bdc_field using 'RP50G-PERSK(05)'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

perform bdc_field using 'BDC_OKCODE'

'=PICK'.

perform bdc_field using 'RP50G-PERNR'

ITAB-PERNR.

perform bdc_field using 'RP50G-EINDA'

'01.07.2007'.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'PSPAR-PERSK'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000000' '2000'.

perform bdc_field using 'BDC_CURSOR'

'P0000-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0000-BEGDA'

'01.07.2007'.

perform bdc_field using 'PSPAR-PERSG'

ITAB-EMPLOYEE_GROUP.

perform bdc_field using 'PSPAR-PERSK'

ITAB-EMPLOYEE_SUBGROUP.

perform bdc_dynpro using 'MP000100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0001-BEGDA'.

perform bdc_dynpro using 'MP900700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P9007-BEGDA'.

perform bdc_dynpro using 'MP000700' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0007-BEGDA'.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-TRFGB'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP000800' '2010'.

perform bdc_field using 'BDC_CURSOR'

'P0008-BEGDA'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'P0008-BEGDA'

'01.07.2007'.

perform bdc_field using 'P0008-ENDDA'

'31.12.9999'.

perform bdc_field using 'P0008-TRFGB'

ITAB-EMPLOYEE_AREA.

perform bdc_dynpro using 'MP004100' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/ENXT'.

perform bdc_field using 'BDC_CURSOR'

'P0041-BEGDA'.

perform bdc_dynpro using 'SAPMP50A' '2000'.

perform bdc_field using 'BDC_OKCODE'

'/EBCK'.

perform bdc_field using 'BDC_CURSOR'

'RP50G-PERNR'.

PERFORM BDC_TRANSACTION USING 'PA40'.

PERFORM CLOSE_GROUP.

ENDLOOP.

Thanks a lot for your time.

Aisha Ishrat

ICI Pakistan Ltd.