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- table controls

Former Member
0 Likes
612

how to perform bdc using table control .

i need clear procedure

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
544

hi ,

go thru this example.

FORM bdc_detail .

DATA: w_ktmng_tx(11),

w_peinh_tx(5) TYPE c,

w_price_p(13) TYPE p DECIMALS 6,

w_price2_p(13) TYPE p DECIMALS 2,

w_price3_p(13) TYPE p DECIMALS 3,

w_price0_p(13) TYPE p DECIMALS 0,

w_cent_p TYPE p DECIMALS 2,

w_peinh_n(5) TYPE n,

w_price_tx(14).

  • accumulate lines to determine if page_down required

ADD 1 TO w_addit_i.

ADD 1 TO w_dtl_cnt_i.

ADD 1 TO w_line_i.

IF w_line_i > 12.

w_line_i = 2.

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' '=NP'.

ENDIF.

  • get material unit of measure

CLEAR mara-meins.

SELECT SINGLE * FROM mara WHERE matnr = g_t_itab-matnr.

w_price_tx = g_t_itab-netpr.

w_peinh_tx = g_t_itab-peinh.

IF g_t_itab-ktmng = 0.

g_t_itab-ktmng = 1.

ENDIF.

w_ktmng_tx = g_t_itab-ktmng.

  • get decimal places of currency

TCURX-CURRDEC = 2.

SELECT SINGLE * FROM TCURX WHERE CURRKEY = g_t_itab-waers.

  • multiply Price

W_PRICE_P = g_t_itab-netpr.

CASE TCURX-CURRDEC.

WHEN 0.

W_PRICE_P = g_t_itab-netpr * 100.

W_PRICE0_P = W_PRICE_P.

W_PRICE_TX = W_PRICE0_P.

WHEN 2.

W_PRICE2_P = W_PRICE_P.

W_PRICE_TX = W_PRICE2_P.

WHEN 3.

W_PRICE3_P = W_PRICE_P.

W_PRICE_TX = W_PRICE3_P.

ENDCASE.

  • material overview screen (with enter)

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' '=DETA'.

PERFORM bdc_field_idx USING 'RM06E-TCSELFLAG' 'X' w_line_i.

PERFORM bdc_field_idx USING 'EKPO-EMATN' g_t_itab-matnr w_line_i.

PERFORM bdc_field_idx USING 'EKPO-KTMNG' w_ktmng_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-NETPR' w_price_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-PEINH' w_peinh_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-BPRME' mara-meins w_line_i.

PERFORM bdc_field_idx USING 'EKPO-WERKS' p_nwerks w_line_i.

PERFORM bdc_field_idx USING 'EKPO-LGORT' g_t_itab-lgort w_line_i.

  • IF g_t_itab-pstyp = '3'.

  • g_t_itab-pstyp = 'L'.

  • ELSE.

  • CLEAR g_t_itab-pstyp.

  • ENDIF.

  • PERFORM bdc_field_idx USING 'RM06E-EPSTP' g_t_itab-pstyp w_line_i.

*

  • item details screen

PERFORM bdc_dynpro USING 'SAPMM06E' '0211'.

PERFORM bdc_field USING 'BDC_OKCODE' '=OR'.

PERFORM bdc_field USING 'EKPO-SPINF' 'B'.

PERFORM bdc_field USING 'EKPO-BSTAE' '0001'.

PERFORM bdc_field USING 'EKPO-MWSKZ' g_t_itab-mwskz.

PERFORM bdc_field USING 'EKPO-IDNLF' g_t_itab-idnlf.

PERFORM bdc_field USING 'EKPO-REPOS' 'X'.

PERFORM bdc_field USING 'EKPO-EVERS' g_t_itab-evers.

PERFORM bdc_field USING 'EKPO-KZABS' 'X'.

PERFORM bdc_field USING 'EKPO-NETPR' w_price_tx. "deliberate

PERFORM bdc_field USING 'EKPO-PEINH' w_peinh_tx . "Overwriting

  • Source list

PERFORM bdc_dynpro USING 'SAPLMEOR' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' 'EN'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EORD-AUTET(01)'.

PERFORM bdc_field USING 'EORD-VDATU(01)' '01062004'.

PERFORM bdc_field USING 'EORD-BDATU(01)' '31122999'.

PERFORM bdc_field USING 'EORD-FEBEL(01)' ' '.

PERFORM bdc_field USING 'EORD-AUTET(01)' '1'.

  • GOTO Conditions

PERFORM bdc_dynpro USING 'SAPMM06E' '0211'.

PERFORM bdc_field USING 'BDC_OKCODE' '=KO'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.

ENDFORM. " BDC_DETAIL

FORM bdc_field_idx USING field LIKE bdcdata-fnam

value p_index TYPE i.

DATA: w_index_tx(2).

UNPACK p_index TO w_index_tx.

CLEAR bdcdata.

CONCATENATE field '(' w_index_tx ')' INTO field.

bdcdata-fnam = field.

bdcdata-fval = value.

APPEND bdcdata.

ENDFORM. " BDC_FIELD_IDX

3 REPLIES 3
Read only

Former Member
0 Likes
544

While calling the transaction use call transaction tcode using i_bdcdata options from opt message into i_messages.

data: lws_cnt type char2,

lws_field type char15.

LOOP AT i_invoicing_plan INTO wa_invoicing_plan.

lws_cnt = sy-tabix.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lws_cnt

IMPORTING

output = lws_cnt .

CONCATENATE 'FPLT-AFDAT(' lws_cnt ')' INTO lws_field.

CONCATENATE wa_invoicing_plan-date+6(2)

wa_invoicing_plan-date+4(2)

wa_invoicing_plan-date+0(4) INTO lws_date

SEPARATED BY '.'.

PERFORM bdc_field USING lws_field lws_date.

CONCATENATE 'FPLT-FPROZ(' lws_cnt ')' INTO lws_field.

lws_perct = wa_invoicing_plan-percentage.

CONDENSE lws_perct.

PERFORM bdc_field USING lws_field lws_perct.

ENDLOOP.

While calling the transaction give like this:

<b>DATA: opt TYPE ctu_params.

opt-dismode = 'N'.

opt-updmode = 'A'.

opt-defsize = 'X'.

CALL TRANSACTION tcode

USING i_bdcdata OPTIONS FROM opt MESSAGES INTO i_messages.

LOOP AT i_messages.

ENDLOOP.</b>

Read only

former_member189629
Active Contributor
0 Likes
544
Read only

Former Member
0 Likes
545

hi ,

go thru this example.

FORM bdc_detail .

DATA: w_ktmng_tx(11),

w_peinh_tx(5) TYPE c,

w_price_p(13) TYPE p DECIMALS 6,

w_price2_p(13) TYPE p DECIMALS 2,

w_price3_p(13) TYPE p DECIMALS 3,

w_price0_p(13) TYPE p DECIMALS 0,

w_cent_p TYPE p DECIMALS 2,

w_peinh_n(5) TYPE n,

w_price_tx(14).

  • accumulate lines to determine if page_down required

ADD 1 TO w_addit_i.

ADD 1 TO w_dtl_cnt_i.

ADD 1 TO w_line_i.

IF w_line_i > 12.

w_line_i = 2.

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' '=NP'.

ENDIF.

  • get material unit of measure

CLEAR mara-meins.

SELECT SINGLE * FROM mara WHERE matnr = g_t_itab-matnr.

w_price_tx = g_t_itab-netpr.

w_peinh_tx = g_t_itab-peinh.

IF g_t_itab-ktmng = 0.

g_t_itab-ktmng = 1.

ENDIF.

w_ktmng_tx = g_t_itab-ktmng.

  • get decimal places of currency

TCURX-CURRDEC = 2.

SELECT SINGLE * FROM TCURX WHERE CURRKEY = g_t_itab-waers.

  • multiply Price

W_PRICE_P = g_t_itab-netpr.

CASE TCURX-CURRDEC.

WHEN 0.

W_PRICE_P = g_t_itab-netpr * 100.

W_PRICE0_P = W_PRICE_P.

W_PRICE_TX = W_PRICE0_P.

WHEN 2.

W_PRICE2_P = W_PRICE_P.

W_PRICE_TX = W_PRICE2_P.

WHEN 3.

W_PRICE3_P = W_PRICE_P.

W_PRICE_TX = W_PRICE3_P.

ENDCASE.

  • material overview screen (with enter)

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' '=DETA'.

PERFORM bdc_field_idx USING 'RM06E-TCSELFLAG' 'X' w_line_i.

PERFORM bdc_field_idx USING 'EKPO-EMATN' g_t_itab-matnr w_line_i.

PERFORM bdc_field_idx USING 'EKPO-KTMNG' w_ktmng_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-NETPR' w_price_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-PEINH' w_peinh_tx w_line_i.

PERFORM bdc_field_idx USING 'EKPO-BPRME' mara-meins w_line_i.

PERFORM bdc_field_idx USING 'EKPO-WERKS' p_nwerks w_line_i.

PERFORM bdc_field_idx USING 'EKPO-LGORT' g_t_itab-lgort w_line_i.

  • IF g_t_itab-pstyp = '3'.

  • g_t_itab-pstyp = 'L'.

  • ELSE.

  • CLEAR g_t_itab-pstyp.

  • ENDIF.

  • PERFORM bdc_field_idx USING 'RM06E-EPSTP' g_t_itab-pstyp w_line_i.

*

  • item details screen

PERFORM bdc_dynpro USING 'SAPMM06E' '0211'.

PERFORM bdc_field USING 'BDC_OKCODE' '=OR'.

PERFORM bdc_field USING 'EKPO-SPINF' 'B'.

PERFORM bdc_field USING 'EKPO-BSTAE' '0001'.

PERFORM bdc_field USING 'EKPO-MWSKZ' g_t_itab-mwskz.

PERFORM bdc_field USING 'EKPO-IDNLF' g_t_itab-idnlf.

PERFORM bdc_field USING 'EKPO-REPOS' 'X'.

PERFORM bdc_field USING 'EKPO-EVERS' g_t_itab-evers.

PERFORM bdc_field USING 'EKPO-KZABS' 'X'.

PERFORM bdc_field USING 'EKPO-NETPR' w_price_tx. "deliberate

PERFORM bdc_field USING 'EKPO-PEINH' w_peinh_tx . "Overwriting

  • Source list

PERFORM bdc_dynpro USING 'SAPLMEOR' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE' 'EN'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EORD-AUTET(01)'.

PERFORM bdc_field USING 'EORD-VDATU(01)' '01062004'.

PERFORM bdc_field USING 'EORD-BDATU(01)' '31122999'.

PERFORM bdc_field USING 'EORD-FEBEL(01)' ' '.

PERFORM bdc_field USING 'EORD-AUTET(01)' '1'.

  • GOTO Conditions

PERFORM bdc_dynpro USING 'SAPMM06E' '0211'.

PERFORM bdc_field USING 'BDC_OKCODE' '=KO'.

PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.

PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.

ENDFORM. " BDC_DETAIL

FORM bdc_field_idx USING field LIKE bdcdata-fnam

value p_index TYPE i.

DATA: w_index_tx(2).

UNPACK p_index TO w_index_tx.

CLEAR bdcdata.

CONCATENATE field '(' w_index_tx ')' INTO field.

bdcdata-fnam = field.

bdcdata-fval = value.

APPEND bdcdata.

ENDFORM. " BDC_FIELD_IDX