04-28-2014 9:50 AM
Hi,
I am executing BDC 'MEK2'.. but getting error "Field KONP-KBETR(1) input value is longer than screen field"
I am selecting KBETR value from bseg-dmbtr.
How to convert BSEG-DMBTR to KONP-KBETR so that input value error is removed ??
Regards,
04-28-2014 9:56 AM
Hai Santosh,
The Error occured due to BSEG-DMBTR is of type CURR and length 13
where as KONP-KBETR is of type CURR and length 11 ,
so take the upload field of CURR type and length 11 and try .
I think it will reslove the problem.
Thanks & Regards,
S.Rajendranath Raparthi.
04-28-2014 9:56 AM
Hai Santosh,
The Error occured due to BSEG-DMBTR is of type CURR and length 13
where as KONP-KBETR is of type CURR and length 11 ,
so take the upload field of CURR type and length 11 and try .
I think it will reslove the problem.
Thanks & Regards,
S.Rajendranath Raparthi.
04-28-2014 9:59 AM
I have done coding as below.. but problem not sorted..
DATA : lv_obknr TYPE objknr,
lv_lief_nr TYPE vbeln_vl,
lv_vbeln TYPE vbeln_nach,
lv_curry TYPE gjahr,
lv_belnr TYPE belnr_d,
lv_dmbtr TYPE dmbtr,
gv_datum(10),
lv_kbetr type KBETR_KOND.
CLEAR lv_obknr.
SELECT SINGLE obknr
INTO lv_obknr
FROM objk
WHERE equnr = equnr-low
AND taser = 'SER01'.
IF lv_obknr IS NOT INITIAL.
CLEAR lv_lief_nr.
SELECT SINGLE lief_nr
INTO lv_lief_nr
FROM ser01
WHERE obknr = lv_obknr.
IF lv_lief_nr IS NOT INITIAL.
CLEAR lv_vbeln.
SELECT SINGLE vbeln
INTO lv_vbeln
FROM vbfa
WHERE vbelv = lv_lief_nr
AND posnv = '000010'
AND vbtyp_n = 'U'.
IF lv_vbeln IS NOT INITIAL.
CLEAR lv_curry.
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
bukrs = '0100'
date = sy-datum
IMPORTING
curry = lv_curry.
CLEAR lv_belnr.
SELECT SINGLE belnr
INTO lv_belnr
FROM bkpf
WHERE bukrs = '0100'
AND gjahr = lv_curry
AND blart = 'RX'
AND xblnr = lv_vbeln.
IF lv_belnr IS NOT INITIAL.
CLEAR lv_dmbtr.
SELECT SINGLE dmbtr
INTO lv_dmbtr
FROM bseg
WHERE bukrs = '0100'
AND belnr = lv_belnr
AND gjahr = lv_curry.
clear lv_kbetr.
lv_kbetr = lv_dmbtr * -1.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMV13A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV13A-KSCHL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ANTA'.
PERFORM bdc_field USING 'RV13A-KSCHL'
'ZCEP'.
PERFORM bdc_dynpro USING 'SAPLV14A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV130-SELKZ(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=WEIT'.
PERFORM bdc_dynpro USING 'RV13A915' '1000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'F002-LOW'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ONLI'.
PERFORM bdc_field USING 'F001'
werks.
PERFORM bdc_field USING 'F002-LOW'
l_matnr.
CLEAR gv_datum.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = sy-datum
IMPORTING
date_external = gv_datum
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
PERFORM bdc_field USING 'SEL_DATE'
gv_datum.
PERFORM bdc_dynpro USING 'SAPMV13A' '1915'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KONP-KBETR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
PERFORM bdc_field USING 'KONP-KBETR(01)'
lv_kbetr.
CALL TRANSACTION 'MEK2' USING bdcdata MODE m_mode UPDATE 'S'
MESSAGES INTO messtab .
form bdc_field using fnam fval.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endform.
04-28-2014 10:09 AM
Hai Santhosh,
Kindly find the you have just passed the value DMBTR to KBETR i.e you have passed the data of 13 digits to 11 digits.
lv_kbetr = lv_dmbtr * -1.
This is the place you are passing the value.
Kindly correct it and do the transaction.
Thanks & Regards,
S.Rajendranath.
04-28-2014 10:13 AM
problem is getting resolved by below changes :-
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
SHIFT bdcdata-fval LEFT DELETING LEADING space.
append bdcdata.
04-28-2014 10:16 AM
Hai Santosh,
Good Work.
Thanks for you answer. It may help me in further.
Thanks & Regards,
S.Rajendranath