2015 Sep 26 1:34 PM
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
2015 Sep 28 4:06 PM
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.
2015 Sep 26 3:35 PM
You may show us the coding sequence. Mostly, the part, quoted in the Dump is enough.
2015 Sep 28 4:44 AM
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_ELEMENT | PS_POSID |
| .INCLUDE | CI_PRPS |
| ZGROUP | KOSTL |
| ZSKILL | CHAR40 |
| PO_ITEM | NUMC3 |
| ZDATE1 | ZDATE1 |
| ZDATE2 | ZDATE2 |
| ZDATE3 | ZDATE3 |
| ZDATE4 | ZDATE4 |
| ZDATE5 | ZDATE5 |
| ZFTA | CHAR40 |
| ZDATE6 | ZDATE6 |
| ZCOMP | ZCOMP |
| ZCOUNTRY | ZCOUNTRY |
| ZPROJTYPE | ZPROJTYPE |
| ZPROJTYPE2 | ZPROJTYPE2 |
| ZPROJLEVEL | ZPROJLEVEL |
| ZPROJGRP | ZPROJGRP |
| ZNATURE | ZNATURE |
| ZPROJTYPE3 | ZPROJTYPE3 |
| ZCONRATE | ZCONRATE |
| ZPROJTYPE4 | ZPROJTYPE4 |
| ZIPO | ZIPO |
| ZCUSTGRP | ZCUSTGRP |
| ZREVCOUNTRY | ZREVCOUNTRY |
| ZREVREGION | ZREVREGION |
| ZSOURCE | ZSOURCE |
| ZLOCATION | ZLOC1 |
| CUSTOMER_ID | ZCUSTOMER_ID |
| CUSTOMER_DEC | ZCUSTOMER_DEC |
| CUSTOMER_GRP | ZCUSTOMER_GRP |
| CUSTOMER_GRPDEC | ZCUSTOMER_GRPDEC |
| CUSTOMER_GEO | ZCUSTOMER_GEO |
2015 Sep 28 5:01 AM
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
2015 Sep 28 5:30 AM
As valuepart1 is filled upto 240 characters i am asking to start at 240 for next value.
2015 Sep 28 6:41 AM
The length of bape-prps is 385, you want to read out of this range (240+240). Use 240(145) instead.
2015 Sep 28 7:20 AM
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.
2015 Sep 28 7:29 AM
2015 Sep 28 7:49 AM
2015 Sep 28 7:38 AM
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
2015 Sep 28 11:45 AM
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.
2015 Sep 28 12:19 PM
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
2015 Sep 28 12:25 PM
2015 Sep 28 12:25 PM
2015 Sep 28 12:45 PM
Declaration is as follows....
lw_bape_prps TYPE bapi_te_wbs_element.
And this structure contains as below fields.
| WBS_ELEMENT | PS_POSID | CHAR | 24 |
| .INCLUDE | CI_PRPS | 0 | |
| ZGROUP | KOSTL | CHAR | 10 |
| ZSKILL | CHAR40 | CHAR | 40 |
| PO_ITEM | NUMC3 | NUMC | 3 |
| ZDATE1 | ZDATE1 | DATS | 8 |
| ZDATE2 | ZDATE2 | DATS | 8 |
| ZDATE3 | ZDATE3 | DATS | 8 |
| ZDATE4 | ZDATE4 | DATS | 8 |
| ZDATE5 | ZDATE5 | DATS | 8 |
| ZFTA | CHAR40 | CHAR | 40 |
| ZDATE6 | ZDATE6 | DATS | 8 |
| ZCOMP | ZCOMP | CHAR | 20 |
| ZCOUNTRY | ZCOUNTRY | CHAR | 50 |
| ZPROJTYPE | ZPROJTYPE | CHAR | 20 |
| ZPROJTYPE2 | ZPROJTYPE2 | CHAR | 20 |
| ZPROJLEVEL | ZPROJLEVEL | NUMC | 2 |
| ZPROJGRP | ZPROJGRP | CHAR | 50 |
| ZNATURE | ZNATURE | CHAR | 20 |
| ZPROJTYPE3 | ZPROJTYPE3 | CHAR | 40 |
| ZCONRATE | ZCONRATE | QUAN | 4 |
| ZPROJTYPE4 | ZPROJTYPE4 | CHAR | 10 |
| ZIPO | ZIPO | CHAR | 10 |
| ZCUSTGRP | ZCUSTGRP | CHAR | 50 |
| ZREVCOUNTRY | ZREVCOUNTRY | CHAR | 30 |
| ZREVREGION | ZREVREGION | CHAR | 50 |
| ZSOURCE | ZSOURCE | CHAR | 8 |
| ZLOCATION | ZLOC1 | CHAR | 12 |
| CUSTOMER_ID | ZCUSTOMER_ID | CHAR | 10 |
| CUSTOMER_DEC | ZCUSTOMER_DEC | CHAR | 40 |
| CUSTOMER_GRP | ZCUSTOMER_GRP | CHAR | 4 |
| CUSTOMER_GRPDEC | ZCUSTOMER_GRPDEC | CHAR | 20 |
| CUSTOMER_GEO | ZCUSTOMER_GEO | CHAR | 10 |
I need to add data to customer_id,customer_grp and customer_geo.
2015 Sep 28 1:30 PM
hmmm, which coding line exactly is highlighted by this error?
2015 Sep 28 1:33 PM
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.
2015 Sep 28 2:03 PM
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....
2015 Sep 28 2:30 PM
Yes Ralf Wenzel,
You are correct 388 is the first character of ZCONRATE.
2015 Sep 28 2:58 PM
2015 Sep 28 4:06 PM
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.
2015 Sep 29 5:45 AM
Thankyou surbjeet for your kind information.
Regards.
Sridhar . A