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

Questions on BDC program statements.....

Former Member
0 Likes
681

Hi,

Currently i am checking below BDC program for packing material use.

But there is a statement that i am not very clear what it is for...

    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'V51VE-EXIDV(01)'.

For the 'V51VE-EXIDV(01)', here why need to add an (01) at the end. What does the (01) means??

Thanks!!!!


  LOOP AT i_lips.

    CLEAR: i_bdc_tab,i_msg_tab.
    REFRESH: i_bdc_tab,i_msg_tab.

    PERFORM bdc_dynpro      USING 'SAPMV50A' '4004'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'LIKP-VBELN'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'LIKP-VBELN'
                                  i_lips-vbeln.
    PERFORM bdc_dynpro      USING 'SAPMV50A' '1000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=VERP_T'.
*perform bdc_field       using 'LIKP-BLDAT'
*                              record-BLDAT_002.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'LIPS-POSNR(01)'.
*perform bdc_field       using 'LIKP-WADAT'
*                              record-WADAT_003.
*perform bdc_field       using 'LIKP-WAUHR'
*                              record-WAUHR_004.
*perform bdc_field       using 'LIKP-BTGEW'
*                              record-BTGEW_005.
*perform bdc_field       using 'LIKP-GEWEI'
*                              record-GEWEI_006.
    PERFORM bdc_dynpro      USING 'SAPLV51G' '6000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=ENTR'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'V51VE-VHILM(01)'.
    PERFORM bdc_field       USING 'V51VE-VHILM(01)'
                                  'BOX'.
*Select all materails
    PERFORM bdc_dynpro      USING 'SAPLV51G' '6000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=HU_MARKA'.

*Select all Boxes
    PERFORM bdc_dynpro      USING 'SAPLV51G' '6000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=HUMARKHU'.

*perform bdc_field       using 'V51VE-SELKZ(01)'
*                              record-SELKZ_01_008.
    PERFORM bdc_dynpro      USING 'SAPLV51G' '6000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=HU_VERP'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'V51VE-EXIDV(01)'.
    PERFORM bdc_dynpro      USING 'SAPLV51G' '6000'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=SICH'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'V51VE-EXIDV(01)'.

    CALL TRANSACTION 'VL02N' USING i_bdc_tab
                      MODE p_mode
                      MESSAGES INTO i_msg_tab.

Message was edited by:

Hoo Laa

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
588

And if this is a BDC running in background, or a call transaction, then placing the cursor on a given field has no effect unless it is needed for navigation to the next screen.

When you record a BDC using SHDB there are a lot of statements like this that are added in but are not needed for the BDC to work.

Another example is the "BDC_SUBSCR" field name - this does not in most cases appear to have any effect on how the BDC is processed.

Also, the recording will include fields which have default values on the screen that you do not need to overwrite with the same value from the BDC.

I often delete these statements from the recording, taking care that I understand what the impact is. You can try commenting out the line and see what difference it makes to processing.

When using a BDC for updating a lot of records, having less of these types of lines in the BDCDATA table will speed performance a bit.

Andrew

3 REPLIES 3
Read only

Former Member
0 Likes
588

Hi,

There must be a table control in this screen. So the first entry is denoted as (01) second as (02) and so on in the table control.

Regards,

Atish

Read only

former_member194669
Active Contributor
0 Likes
588

Hi,


    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'V51VE-EXIDV(01)'.

Its for placing the cursor in the first line of the table control in field V51VE-EXIDV.

a®

Read only

Former Member
0 Likes
589

And if this is a BDC running in background, or a call transaction, then placing the cursor on a given field has no effect unless it is needed for navigation to the next screen.

When you record a BDC using SHDB there are a lot of statements like this that are added in but are not needed for the BDC to work.

Another example is the "BDC_SUBSCR" field name - this does not in most cases appear to have any effect on how the BDC is processed.

Also, the recording will include fields which have default values on the screen that you do not need to overwrite with the same value from the BDC.

I often delete these statements from the recording, taking care that I understand what the impact is. You can try commenting out the line and see what difference it makes to processing.

When using a BDC for updating a lot of records, having less of these types of lines in the BDCDATA table will speed performance a bit.

Andrew