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: 

BDC session processing issues ?

Former Member
0 Kudos

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

Former Member
0 Kudos

Thanks all,

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

13 REPLIES 13

Former Member
0 Kudos

hi deepan,

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

former_member190726
Participant
0 Kudos

hi deepan

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

Former Member
0 Kudos

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

Former Member
0 Kudos

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.

0 Kudos

Hi Deepan,

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

Regards

Rajkumar Narasimman

Former Member
0 Kudos

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.

0 Kudos

Hi Deepan,


Deepan Ignaatious wrote:

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


  At the end during recording we are calling the same screen again, I hope you can find the below code.


Deepan Ignaatious 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

0 Kudos

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

0 Kudos

Hi deepan,

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

0 Kudos

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.

0 Kudos

Hi,

What if you pass space instead of lv_pernr?

Former Member
0 Kudos

Thanks all,

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

Former Member
0 Kudos

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