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 session processing issues ?

Former Member
0 Likes
2,367

Hi all,

I am processing bdc for employee hiring in pa40.

I am executing in session method all screen to check .when i do so the first record gets created successfully during the second record processing the initial or starting screen holds the value of last created pernr so it goes into change mode and error happens..

I don't want the last created pernr to be displayed during second record bdc processing. I tried clearing the value by setting space value still doesn't gets reflected.

Please help me out.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,292

Thanks all,

I have passed '00000000' char and it worked thanks..

13 REPLIES 13
Read only

Former Member
0 Likes
2,292

hi ***REMOVED BY MODERATION***

 

share the bdc program so that it can be checked and advised accordingly.

Read only

former_member190726
Participant
0 Likes
2,292

hi ***REMOVED BY MODERATION***

in loop statement refresh and clear the internal table and work area of BDCDATA.

Read only

Former Member
0 Likes
2,292

hiii ***REMOVED BY MODERATION***      In Loop REFRESH the internal table of BDCDATA  and CLEAR wa of BDCDATA where you    provide values to prog,dynpro,dynbegin and fnam,fval.

Read only

Former Member
0 Likes
2,291

Hi all ,

Thanks i have refreshed and cleared the variables still the issue.

First time when run in all screen mode the record in generated and second time the screen changes to display mode showing the last created pernr number

I have even tried to set cursor again in the last step and passed an empty pernr still the issue continues.

Read only

0 Likes
2,291

Hi ***REMOVED BY MODERATION***

  Kindly share the code. Hope it helps to find the problem.

 

Regards

 

Rajkumar Narasimman

Read only

Former Member
0 Likes
2,291

PERFORM BDC_DYNPRO      USING 'SAPMP50A' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'RP50G-EINDA'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/00'.
   PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR..
   PERFORM BDC_FIELD       USING 'RP50G-EINDA'
                                  P_LS_INPUT-EINDA.
   PERFORM BDC_DYNPRO      USING 'SAPMP50A' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'T529T-MNTXT(01)'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=PICK'.
   PERFORM BDC_FIELD       USING 'RP50G-EINDA'
                                P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'RP50G-SELEC(01)'
                                  LV_SELEC.
   PERFORM BDC_DYNPRO      USING 'MP000000' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'PSPAR-PERSK'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=UPD'.
   PERFORM BDC_FIELD       USING 'P0000-BEGDA'
                                  P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0000-ENDDA'
                                  GC_ENDDA.
*perform bdc_field       using 'P0000-MASSN'
*                              record-MASSN_007.
*perform bdc_field       using 'Q0000-RFPNR'
*                              record-RFPNR_008.
   PERFORM BDC_FIELD       USING 'PSPAR-PLANS'
                                 P_LS_INPUT-PLANS.
   PERFORM BDC_FIELD       USING 'PSPAR-WERKS'
                                  P_LS_INPUT-PERSA.
   PERFORM BDC_FIELD       USING 'PSPAR-PERSG'
                                P_LS_INPUT-PERSG.
   PERFORM BDC_FIELD       USING 'PSPAR-PERSK'
                                 P_LS_INPUT-PERSK.
   PERFORM BDC_DYNPRO      USING 'MP000200' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0002-GBDAT'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=UPD'.
   PERFORM BDC_FIELD       USING 'P0002-BEGDA'
                                 P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0002-ENDDA'
                                 GC_ENDDA.
   PERFORM BDC_FIELD       USING 'Q0002-ANREX'
                                 P_LS_INPUT-ANREX.
   PERFORM BDC_FIELD       USING 'P0002-NACHN'
                                P_LS_INPUT-FNAM.
   PERFORM BDC_FIELD       USING 'P0002-VORNA'
                                P_LS_INPUT-LNAM.
   PERFORM BDC_FIELD       USING 'P0002-GBDAT'
                            P_LS_INPUT-GBDAT.
   PERFORM BDC_FIELD       USING 'P0002-SPRSL'
                                P_LS_INPUT-SPRSL.
   PERFORM BDC_FIELD       USING 'Q0002-FATXT'
                                 P_LS_INPUT-FATXT."
   PERFORM BDC_FIELD       USING 'P0002-NATIO'
                                P_LS_INPUT-NATSL.
   PERFORM BDC_DYNPRO      USING 'MP000100' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0001-SACHP'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 'UPD'.
   PERFORM BDC_FIELD       USING 'P0001-BEGDA'
                                  P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0001-ENDDA'
                                GC_ENDDA.
   PERFORM BDC_FIELD       USING 'P0001-BTRTL'
                               P_LS_INPUT-BTRTL.
*perform bdc_field       using 'P0001-KOSTL'
*                              record-KOSTL_024.
   PERFORM BDC_FIELD       USING 'P0001-ABKRS'
                                  P_LS_INPUT-ABKRS.
   PERFORM BDC_FIELD       USING 'P0001-PLANS'
                                 P_LS_INPUT-PLANS.
   PERFORM BDC_DYNPRO      USING 'MP000600' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0006-STATE'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=UPD'.
   PERFORM BDC_FIELD       USING 'P0006-BEGDA'
                                 P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0006-ENDDA'
                                 GC_ENDDA.
   PERFORM BDC_FIELD       USING 'P0006-ANSSA'
                                 LV_ANSSA.
*perform bdc_field       using 'P0006-NAME2'
*                              record-NAME2_030.
   PERFORM BDC_FIELD       USING 'P0006-STRAS'
                                  P_LS_INPUT-PAD_STRAS.
   PERFORM BDC_FIELD       USING 'P0006-LOCAT'
                                 P_LS_INPUT-PAD_LOCAT.
   PERFORM BDC_FIELD       USING 'P0006-PSTLZ'
                                 P_LS_INPUT-PSTLZ.
   PERFORM BDC_FIELD       USING 'P0006-ORT01'
                                 P_LS_INPUT-CINAM.
*perform bdc_field       using 'P0006-STATE'
*                              record-STATE_035.
*perform bdc_field       using 'P0006-LAND1'
*                              record-LAND1_036.
   PERFORM BDC_DYNPRO      USING 'MP018500' '2240'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0185-ICNUM'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/00'.
   PERFORM BDC_FIELD       USING 'P0185-BEGDA'
                                P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0185-ENDDA'
                              GC_ENDDA.
   PERFORM BDC_FIELD       USING 'P0185-ICNUM'
                                 P_LS_INPUT-IDNOS.
   PERFORM BDC_DYNPRO      USING 'MP018500' '2240'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0185-BEGDA'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=UPD'.
   PERFORM BDC_FIELD       USING 'P0185-BEGDA'
                                 P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0185-ENDDA'
                                  GC_ENDDA.
   PERFORM BDC_FIELD       USING 'P0185-ICNUM'
                                P_LS_INPUT-IDNOS.
   PERFORM BDC_DYNPRO      USING 'MP000700' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0007-BEGDA'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '=UPD'.
   PERFORM BDC_FIELD       USING 'P0007-BEGDA'
                                  P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0007-ENDDA'
                                 GC_ENDDA.
*perform bdc_field       using 'P0007-SCHKZ'
*                              record-SCHKZ_045.
*perform bdc_field       using 'P0007-EMPCT'
*                              record-EMPCT_046.
   PERFORM BDC_DYNPRO      USING 'MP000800' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/ENXT'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0008-BEGDA'.
   PERFORM BDC_DYNPRO      USING 'MP000900' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0009-ZLSCH'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 'UPD'.
   PERFORM BDC_FIELD       USING 'P0009-BEGDA'
                                 P_LS_INPUT-EINDA.
   PERFORM BDC_FIELD       USING 'P0009-ENDDA'
                                     GC_ENDDA.
*perform bdc_field       using 'P0009-BNKSA'
*                              record-BNKSA_049.
   PERFORM BDC_FIELD       USING 'Q0009-EMFTX'
                                   P_LS_INPUT-EMFTX.
   PERFORM BDC_FIELD       USING 'Q0009-STRAS'
                                 P_LS_INPUT-BADD.
   PERFORM BDC_FIELD       USING 'Q0009-BKPLZ'
                                 P_LS_INPUT-BKPLZ.
   PERFORM BDC_FIELD       USING 'Q0009-BKORT'
                                P_LS_INPUT-BKORT.
*perform bdc_field       using 'Q0009-STATE'
*                              record-STATE_054.
*perform bdc_field       using 'P0009-BANKS'
*                              record-BANKS_055.
   PERFORM BDC_FIELD       USING 'P0009-BANKL'
                                  P_LS_INPUT-BANKK.
   PERFORM BDC_FIELD       USING 'P0009-BANKN'
                                 P_LS_INPUT-BANKN.
*perform bdc_field       using 'Q0009-IBAN00'
*                              record-IBAN00_058.
   PERFORM BDC_FIELD       USING 'P0009-ZLSCH'
                                 LV_ZLSCH.
*perform bdc_field       using 'P0009-WAERS'
*                              record-WAERS_060.
   PERFORM BDC_DYNPRO      USING 'MP001600' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/ENXT'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0016-BEGDA'.
   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_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR.

Read only

0 Likes
2,291

Hi ***REMOVED BY MODERATION***

 

***REMOVED BY MODERATION*** wrote:

 

"Beginning Screen

  PERFORM BDC_DYNPRO      USING 'SAPMP50A' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'RP50G-EINDA'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/00'.
   PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR..
   PERFORM BDC_FIELD       USING 'RP50G-EINDA'
                                  P_LS_INPUT-EINDA.
  ----

------

-----

----
   PERFORM BDC_DYNPRO      USING 'MP004100' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/ENXT'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'P0041-BEGDA'.

"Beginning Screen at the end of BDC Recording


   PERFORM BDC_DYNPRO      USING 'SAPMP50A' '2000'.
   PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/EBCK'.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'RP50G-PERNR'.
   PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR.




 

Check by removing the code which is at the end marked as bold.

 

Also I hope we can debug using mode 'A' as shown below, which show the screen that helps to find the problem easily.

 

CALL TRANSACTION 'PA40' USING BDCDATA MODE 'A'.

 

 

Regards

 

Rajkumar Narasimman

Read only

0 Likes
2,291

Thanks for reply but Still the issue prevails the last generated pernr no is shown in the pernr field during second iteration.

Read only

0 Likes
2,291

Hi ***REMOVED BY MODERATION***

Here we are using lv_pernr, are we updating the local varible at the beginning of the loop.

Ex.

  loop at it_final into wa_final.

     "Update Employee number

     lv_pernr = wa_final-pernr.

 

    "BDC Codings below.

 

  endloop.



 

Kindly check in debug, whether lv_pernr gets the value during second iteration that helps to solve the problem.

 

Regards

 

Rajkumar Narasimman

 

Message was edited by: Rajkumar N

Read only

0 Likes
2,291

I am processing it via session method to generate a pernr no.

PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                 '/EBCK'.
     PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR.
   PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                 'RP50G-PERNR'.
   PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                 LV_PERNR.


here i am passing a empty lv_pernr.

Read only

0 Likes
2,291

Hi,

What if you pass space instead of lv_pernr?

Read only

Former Member
0 Likes
2,293

Thanks all,

I have passed '00000000' char and it worked thanks..

Read only

Former Member
0 Likes
2,291

Hello,

for second record processing you need to run the BDC session for another PERNR right? why you are passing the zeros then how you are able to processing the other pernr by passing the default '00000000'.

Regards,

Mallikarjuna