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: 

BDC MEK2 error.

former_member599326
Participant
0 Kudos

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,


1 ACCEPTED SOLUTION

Former Member
0 Kudos

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.

5 REPLIES 5

Former Member
0 Kudos

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.

0 Kudos

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.

0 Kudos

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.

0 Kudos

problem is getting resolved by below changes :-

   clear bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  SHIFT bdcdata-fval LEFT DELETING LEADING space.
  append bdcdata.

0 Kudos

Hai Santosh,

Good Work.

Thanks for you answer. It may help me in further.

Thanks & Regards,

S.Rajendranath