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

Refreshing BDC screen for ME12

Former Member
0 Likes
1,784

Hello All,

I am working on BDC task for ME12 transaction. Every thing looks good but i am facing a problem while updating of scaling amount. It is not clearing earlier record amount values in that scalling screen even I used refresh BDCDATA. Could you please let me know how to refresh BDC screen before updating a new values. I tried with DYNP_VALUES_READ adn DYNP_VALUESUPDATE, but no luck. PLease helpo me out in this task.....

Thanks in advance aWaitingfor your valuable response....

Regards,

Kumar.

Hello All,

I am working on BDC task for ME12 transaction. Every thing looks good but i am facing a problem while updating of scaling amount. It is not clearing earlier record amount values in that scalling screen even I used refresh BDCDATA. Could you please let me know how to refresh BDC screen before updating a new values. I tried with DYNP_VALUES_READ adn DYNP_VALUESUPDATE, but no luck. PLease helpo me out in this task.....

Thanks in advance aWaitingfor your valuable response....

Regards,

Kumar.

6 REPLIES 6
Read only

Former Member
0 Likes
1,272

Hi, maybe start with a REFRESH BDCDATA before filling the bdc_fields. Succes, Rob

Read only

Former Member
0 Likes
1,272

Hi,

Use the following immediately after the call transaction statement,


REFRESH BDCDATA.
CLEAR BDCDATA.

The should clear the screen values when it goes to the next loop

Regards,

Vikranth

Read only

0 Likes
1,272

No Use already I placed Refresh BDCDTA and CLear BDCDATA before values populating and after call transaction....

Any other problem??

Regards,

kumar

Read only

Former Member
0 Likes
1,272

hi,

you can use this for refreshing the bdc data.

EG:

REFRESH BDCDATA.

REFRESH gt_messtab.

Thanks and Regards,

Ahamed.

Read only

Former Member
0 Likes
1,272

Hi Lakshman,

You are not refreshing bdcdata in proper place.

you are calling bdc within loop-endloop.

loop at i_tab into wa_tab.

refresh: i_bdcdata

clear: wa_bdcdata.

.....................................

.......................................

bdc recording

cal transaction

endloop.

Hope this can solve your problems.

Regards,

Tutun

Read only

0 Likes
1,272

Thank you for your valueable response.. Please find my code as follows:

LOOP AT t_eina INTO wa_eina

WHERE matnr = wa_header_item_merge-matnr.

clear bdcdata.

refresh bdcdata.

l_lifnr = wa_fileitem-local_sup_num.

READ TABLE t_eine INTO wa_eine WITH KEY infnr = wa_eina-infnr

ekorg = wa_filehdr-org_id.

PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RM06I-KONSI'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EINA-LIFNR'

wa_eina-lifnr.

PERFORM bdc_field USING 'EINA-MATNR'

wa_eina-matnr.

PERFORM bdc_field USING 'EINE-EKORG'

wa_eine-ekorg.

PERFORM bdc_field USING 'EINE-WERKS'

wa_eine-werks.

PERFORM bdc_field USING 'EINA-INFNR'

wa_eina-infnr.

PERFORM bdc_field USING 'RM06I-KONSI'

'X'.

PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EINA-MAHN1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=KO'.

PERFORM bdc_field USING 'EINA-URZLA'

wa_eina-urzla.

PERFORM bdc_field USING 'EINA-REGIO'

wa_eina-regio.

PERFORM get_unit_isocode USING wa_eina-meins.

PERFORM bdc_field USING 'EINA-MEINS'

w_isocode.

PERFORM bdc_field USING 'EINA-UMREZ'

'1'.

PERFORM bdc_field USING 'EINA-UMREN'

'1'.

CLEAR l_idx.

MOVE '1' TO l_idx.

LOOP AT t_contract_item INTO wa_contract_item

WHERE contract_id = wa_filehdr-contract_id

AND part_number = wa_header_item_merge-matnr.

IF NOT ( wa_contract_item-line_item = l_lineitem_no AND

wa_contract_item-period_start = l_date_from AND

wa_contract_item-period_end = l_date_to ).

PERFORM bdc_dynpro USING 'SAPLV14A' '0102'.

CONCATENATE 'VAKE-DATAB(' l_idx ')' INTO fval.

PERFORM bdc_field USING 'BDC_CURSOR'

fval.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PICK'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR'

'T685T-VTEXT(01)'.

w_price = wa_contract_item-unit_price.

IF wa_contract_item-price_method NE c_price_method1.

IF w_price NE 0.

SHIFT wa_contract_item-unit_price LEFT DELETING LEADING '0'.

PERFORM bdc_field USING 'KONP-KBETR(01)'

wa_contract_item-unit_price.

ELSE.

SHIFT wa_contract_item-unit_price_disc LEFT DELETING LEADING '0'.

PERFORM bdc_field USING 'KONP-KBETR(01)'

wa_contract_item-unit_price_disc.

ENDIF.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PSTF'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0303'.

PERFORM bdc_field USING 'BDC_CURSOR'

'KONM-KBETR(02)'.

PERFORM change_date_format USING wa_contract_item-period_start

CHANGING l_date.

PERFORM bdc_field USING 'RV13A-DATAB'

l_date.

CLEAR l_date.

PERFORM change_date_format USING wa_contract_item-period_end

CHANGING l_date.

PERFORM bdc_field USING 'RV13A-DATBI'

l_date.

IF NOT wa_contract_item-above_amt_qty IS INITIAL.

CONCATENATE 'KONM-KSTBM(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

wa_contract_item-above_amt_qty.

ELSE.

CONCATENATE 'KONM-KSTBM(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

c_qty.

ENDIF.

IF NOT wa_contract_item-unit_price_disc IS INITIAL.

CONCATENATE 'KONM-KBETR(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

wa_contract_item-unit_price_disc.

ELSE.

CONCATENATE 'KONM-KBETR(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

wa_contract_item-unit_price.

ENDIF.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SICH'.

l_lineitem_no = wa_contract_item-line_item.

l_date_from = wa_contract_item-period_start.

l_date_to = wa_contract_item-period_end.

l_idx = l_idx + 1.

ELSE. "IF t_contract_item-price_method NE c_price_method1

SELECT SINGLE ebeln FROM ekko INTO wa_ekko

WHERE bstyp = c_contract

AND unsez = wa_header_item_merge-contract_id.

IF NOT wa_ekko IS INITIAL.

SELECT SINGLE ebeln ebelp FROM ekpo INTO wa_ekpo

WHERE ebeln = wa_ekko

AND loekz <> 'X'

AND matnr = wa_eina-matnr

AND werks = wa_eine-werks

AND infnr = wa_eine-infnr.

ENDIF.

SELECT SINGLE datab datbi

INTO (l_datab, l_datbi)

FROM a016

WHERE kappl = c_kappl

AND kschl = c_kschl

AND evrtn = wa_ekpo-ebeln

AND evrtp = wa_contract_item-line_item.

IF sy-subrc = 0.

PERFORM change_date_format USING l_datab

CHANGING l_date.

PERFORM bdc_field USING 'RV13A-DATAB'

l_date.

PERFORM change_date_format USING l_datbi

CHANGING l_date.

PERFORM bdc_field USING 'RV13A-DATBI'

l_date.

ELSE.

PERFORM populate_date.

ENDIF.

IF NOT wa_contract_item-unit_price_disc IS INITIAL.

SHIFT wa_contract_item-unit_price_disc LEFT DELETING LEADING '0'.

PERFORM bdc_field USING 'KONP-KBETR(01)'

wa_contract_item-unit_price_disc.

ELSE.

SHIFT wa_contract_item-unit_price LEFT DELETING LEADING '0'.

PERFORM bdc_field USING 'KONP-KBETR(01)'

wa_contract_item-unit_price.

ENDIF.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SICH'.

l_lineitem_no = wa_contract_item-line_item.

l_date_from = wa_contract_item-period_start.

l_date_to = wa_contract_item-period_end.

ENDIF.

ELSE. "IF not line_item.........

PERFORM bdc_field USING 'BDC_OKCODE'

'=PSTF'.

IF wa_contract_item-price_method NE c_price_method1.

PERFORM populate_date.

IF NOT wa_contract_item-above_amt_qty IS INITIAL.

CONCATENATE 'KONM-KSTBM(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

wa_contract_item-above_amt_qty.

ELSE.

CONCATENATE 'KONM-KSTBM(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

c_qty.

ENDIF.

CONCATENATE 'KONM-KBETR(' l_idx ')' INTO fnam.

PERFORM bdc_field USING fnam

wa_contract_item-unit_price_disc.

l_idx = l_idx + 1.

l_lineitem_no = wa_contract_item-line_item.

l_date_from = wa_contract_item-period_start.

l_date_to = wa_contract_item-period_end.

ENDIF.

ENDIF. "if same item with diff qty scaling

CLEAR : wa_contract_item.

ENDLOOP. "looping at item level

CALL TRANSACTION 'ME12' USING bdcdata

MODE 'N' "c_mode

UPDATE 'S'

MESSAGES

INTO messtab.

IF NOT messtab[] IS INITIAL.

PERFORM format_message.

ENDIF.

CLEAR bdcdata.

REFRESH bdcdata.

ENDLOOP. "loop at t_eina

Please help me out....I was a tried in many ways...but no use......please help me out from this issue.....

Thanks & Regards,

Kumar.