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: 

FM to update w/ BDC for txn ME47

Former Member
0 Kudos

I have a FM written to update quotation condition records.

When executed from SE37 it runs to completion successfully but doesn't update the conditions.

When in DEBUG I change the BDC to run w/ 'A' and display the screens it flows as wanted and updates correctly.

Anybody have same problem and get resolved?

2 REPLIES 2

Former Member
0 Kudos

Please Check the dynpro "Screen Number" sent to the BDC.

Regards,

Beevin

Former Member
0 Kudos

I don't get an error when in debug stating I need a different dynpro number and the data is populated ok. Process seems to match the recordings I've done.

I'm populating the same 5 conditions each time.

Here is code:

REFRESH it_bdcdata.

CLEAR it_bdcdata.

PERFORM bdc_dynpro USING 'SAPMM06E' '0305'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_field USING 'RM06E-ANFNR' v_rfq.

v_linesel = 0.

LOOP AT i_conditionvalue.

AT NEW item.

v_index = 0.

v_linesel = v_linesel + 1.

PERFORM bdc_dynpro USING 'SAPMM06E' '0323'.

PERFORM bdc_field USING 'BDC_OKCODE' '=KO'.

CONCATENATE v_rfq i_conditionvalue-item INTO tvakey.

concatenate 'RM06E-TCSELFLAG(' v_linesel ')' into v_field.

condense v_field no-gaps.

PERFORM bdc_field USING v_field 'X'.

SELECT SINGLE vakey FROM konh INTO tvakey WHERE vakey = tvakey.

IF sy-subrc = 0.

PERFORM bdc_dynpro USING 'SAPLV14A' '0102'.

PERFORM bdc_field USING 'BDC_CURSOR' 'VAKE-DATAB(01)'.

PERFORM bdc_field USING 'BDC_OKCODE' '=PICK'.

ENDIF.

ENDAT.

READ TABLE it_cond WITH KEY kschl = i_conditionvalue-cond_type

.

IF sy-subrc = 0.

MOVE it_cond-kopos TO v_kbetr+11(2).

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR' 'KONP-KBETR'.

if it_cond-kopos > 4.

PERFORM bdc_field USING 'BDC_OKCODE' '=P+'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

move '02' to v_kbetr+11(2).

endif.

v_index = v_index + 1.

MOVE v_index TO v_kbetr+11(2).

MOVE v_index TO v_kschl+11(2).

CLEAR v_pricevalue.

MOVE i_conditionvalue-rate TO v_pricevalue.

if v_index = '01'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

endif.

PERFORM bdc_field USING v_kschl i_conditionvalue-cond_type.

PERFORM bdc_field USING v_kbetr v_pricevalue.

AT END OF item.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_OKCODE' 'BACK'.

ENDAT.

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMM06E' '0323'.

PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.

data: i_options like CTU_PARAMS.

i_options-dismode = 'N'.

i_options-updmode = 'S'.

i_options-defsize = ' '.

i_options-RACOMMIT = 'X'.

CALL TRANSACTION c_ME47 USING IT_BDCDATA

OPTIONS from i_options

MESSAGES INTO IT_MESSTAB.