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

Offset length error

Former Member
0 Likes
8,759

Hi all,

I am facing offset length error when working bapi. I am passing data for custom fields in PRPS table.But when i am passing data i facing following error.

'The sum of the offset and length (=480) exceeds the length of the start (=387) of the structure. This is not allowed in Unicode programs. . - -'.Please help me in resolving this.

Regards.

Sridhar. A

1 ACCEPTED SOLUTION
Read only

former_member378318
Contributor
0 Likes
5,589

The structure field defined as a QUAN is causing your issue:

ZCONRATE ZCONRATE QUAN 4

As a test change the above field definition to a CHAR or NUMC and see if the error is resolved.

21 REPLIES 21
Read only

ralf_wenzel_heuristika
Active Participant
0 Likes
5,589

You may show us the coding sequence. Mostly, the part, quoted in the Dump is enough.

Read only

0 Likes
5,589

Please refer to below code what i had written.

  lw_bape_prps-wbs_element  = lw_wbs1-wbs_element.

  lw_bape_prps-customer_id  = lw_wbs1-customer_id.

  lw_bape_prps-customer_grp = lw_wbs1-customer_group.

  lw_bape_prps-customer_geo = lw_wbs1-customer_geo.

  lw_extension-structure = 'BAPI_TE_WBS_ELEMENT'.

  lw_extension-valuepart1 = lw_bape_prps+0(240).

  lw_extension-valuepart2 = lw_bape_prps+240(240).

  lw_extension-valuepart3 = lw_bape_prps+240(185).

  APPEND lw_extension TO lt_extension.

  CLEAR   lw_extension.

And the structure 'Bapi_te_wbs_element' contains fields as below

WBS_ELEMENTPS_POSID
.INCLUDECI_PRPS
ZGROUPKOSTL
ZSKILLCHAR40
PO_ITEMNUMC3
ZDATE1ZDATE1
ZDATE2ZDATE2
ZDATE3ZDATE3
ZDATE4ZDATE4
ZDATE5ZDATE5
ZFTACHAR40
ZDATE6ZDATE6
ZCOMPZCOMP
ZCOUNTRYZCOUNTRY
ZPROJTYPEZPROJTYPE
ZPROJTYPE2ZPROJTYPE2
ZPROJLEVELZPROJLEVEL
ZPROJGRPZPROJGRP
ZNATUREZNATURE
ZPROJTYPE3ZPROJTYPE3
ZCONRATEZCONRATE
ZPROJTYPE4ZPROJTYPE4
ZIPOZIPO
ZCUSTGRPZCUSTGRP
ZREVCOUNTRYZREVCOUNTRY
ZREVREGIONZREVREGION
ZSOURCEZSOURCE
ZLOCATIONZLOC1
CUSTOMER_IDZCUSTOMER_ID
CUSTOMER_DECZCUSTOMER_DEC
CUSTOMER_GRPZCUSTOMER_GRP
CUSTOMER_GRPDECZCUSTOMER_GRPDEC
CUSTOMER_GEOZCUSTOMER_GEO
Read only

0 Likes
5,589

Hi Sirdhar,

The length of VALUEPART* is 240 characters in BAPI Extension structure.

In below code, you are using offset position with more than 240 characters.


  lw_extension-valuepart2 = lw_bape_prps+240(240).

  lw_extension-valuepart3 = lw_bape_prps+240(185).

Please correct this to avoid any offset errors.

Thanks

-Learner

Read only

0 Likes
5,589

As valuepart1 is filled upto 240 characters i am asking to start at 240 for next value.

Read only

0 Likes
5,589

The length of bape-prps is 385, you want to read out of this range (240+240). Use 240(145) instead.

Read only

0 Likes
5,589

My BAPI_TE_WBS_ELEMENT structure length is 665.And customer id ,customer group fields are at last of the structure.I need to use total length.Please see above code i had pasted.

Read only

0 Likes
5,589

How did you determine this length?

Read only

0 Likes
5,589

I had determined this length by adding all fields length.

Read only

RaymondGiuseppi
Active Contributor
0 Likes
5,589

Could you try to use an unicode dedicated tool as


cl_abap_container_utilities=>fill_container_c(

  EXPORTING

    im_value             = wa_bapi_te_prps

  IMPORTING

    ex_container         = extensionin+30 ).

Hint: The BAPI will execute method  cl_abap_container_utilities=>read_container_c to read the extensionin parameter (try to set a break-point or analyze the source).

Regards,

Raymond

Read only

Former Member
0 Likes
5,587

HI AnuMolu Sridhar ,

     As of my knowledge , the issue is in below highlighted code

  lw_extension-valuepart1 = lw_bape_prps+0(240).

  lw_extension-valuepart2 = lw_bape_prps+240(240).

lw_extension-valuepart3 = lw_bape_prps+240(185).


Change it as stated below

  lw_extension-valuepart1 = lw_bape_prps+0(240). " first 240 characters you have read  - Correct

  lw_extension-valuepart2 = lw_bape_prps+240(240). " From the position 240 , you are reading 240 char here.So total 480 chars (Value part 1+value part 2 )you have read here- Correct


lw_extension-valuepart3 = lw_bape_prps+480(185). " Till 480 its already read , so from 480 we should read the 185  characters.

Try this and let me know if this solves your issue.

Read only

0 Likes
5,587

Hi Bhuvaneswari,

As mentioned by you i had changed the above code and i getting following error.'The sum of the offset and length (=480) exceeds the length of the start (=387) of the structure. This is not allowed in Unicode programs. . - -'.Please help in solving.

Regards.

Sridhar. A

Read only

0 Likes
5,587

Please show me your declaration of lw_bape_prps

Read only

0 Likes
5,587

you are right, but this is not the same as "out of range"

Read only

0 Likes
5,587

Declaration is as follows....

lw_bape_prps   TYPE bapi_te_wbs_element.

And this structure contains as below fields.

WBS_ELEMENTPS_POSIDCHAR24
.INCLUDECI_PRPS0
ZGROUPKOSTLCHAR10
ZSKILLCHAR40CHAR40
PO_ITEMNUMC3NUMC3
ZDATE1ZDATE1DATS8
ZDATE2ZDATE2DATS8
ZDATE3ZDATE3DATS8
ZDATE4ZDATE4DATS8
ZDATE5ZDATE5DATS8
ZFTACHAR40CHAR40
ZDATE6ZDATE6DATS8
ZCOMPZCOMPCHAR20
ZCOUNTRYZCOUNTRYCHAR50
ZPROJTYPEZPROJTYPECHAR20
ZPROJTYPE2ZPROJTYPE2CHAR20
ZPROJLEVELZPROJLEVELNUMC2
ZPROJGRPZPROJGRPCHAR50
ZNATUREZNATURECHAR20
ZPROJTYPE3ZPROJTYPE3CHAR40
ZCONRATEZCONRATEQUAN4
ZPROJTYPE4ZPROJTYPE4CHAR10
ZIPOZIPOCHAR10
ZCUSTGRPZCUSTGRPCHAR50
ZREVCOUNTRYZREVCOUNTRYCHAR30
ZREVREGIONZREVREGIONCHAR50
ZSOURCEZSOURCECHAR8
ZLOCATIONZLOC1CHAR12
CUSTOMER_IDZCUSTOMER_IDCHAR10
CUSTOMER_DECZCUSTOMER_DECCHAR40
CUSTOMER_GRPZCUSTOMER_GRPCHAR4
CUSTOMER_GRPDECZCUSTOMER_GRPDECCHAR20
CUSTOMER_GEOZCUSTOMER_GEOCHAR10

I need to add data to customer_id,customer_grp and customer_geo.

Read only

0 Likes
5,587

hmmm, which coding line exactly is highlighted by this error?

Read only

0 Likes
5,587

lw_bape_prps-wbs_element  = lw_wbs1-wbs_element.

  lw_bape_prps-customer_id  = lw_wbs1-customer_id.

  lw_bape_prps-customer_grp = lw_wbs1-customer_group.

  lw_bape_prps-customer_geo = lw_wbs1-customer_geo.

  lw_extension-structure = 'BAPI_TE_WBS_ELEMENT'.

  lw_extension-valuepart1 = lw_bape_prps+0(240).

  lw_extension-valuepart2 = lw_bape_prps+240(240).----------------------------in this line it is encounting error.

  lw_extension-valuepart3 = lw_bape_prps+480(185).

  APPEND lw_extension TO lt_extension.

  CLEAR   lw_extension.

Read only

0 Likes
5,587

Anumolu Sridhar wrote:

  lw_extension-valuepart1 = lw_bape_prps+0(240).

  lw_extension-valuepart2 = lw_bape_prps+240(240).----------------------------

#388 is the first character of ZCONRATE....

Read only

0 Likes
5,587

Yes Ralf Wenzel,

You are correct 388 is the first character of ZCONRATE.

Read only

0 Likes
5,587

I wanted to say that I do have no idea....

Read only

former_member378318
Contributor
0 Likes
5,590

The structure field defined as a QUAN is causing your issue:

ZCONRATE ZCONRATE QUAN 4

As a test change the above field definition to a CHAR or NUMC and see if the error is resolved.

Read only

0 Likes
5,587

Thankyou surbjeet for your kind information.

Regards.

Sridhar . A