Quantcast
Channel: ABAP Development
Viewing all articles
Browse latest Browse all 948

Tips to solve the extension(customer fields) problem in BAPI even though the extension structures are maintained

$
0
0
  • Usually we face problems while using BAPIs for extension. Either extensions are not properly filled or they are filled with some special characters (garbage values).
  • Even if the extension structures for BAPI are properly adjusted I have faced this issue.

 

Consider BAPI BAPI_SALESORDER_CHANGE:

  • Let work area for extension(ls_vbap) have following type.

 

TYPES: BEGIN OF ty_vbap,
vbeln            TYPE vbap-vbeln,
posnr            TYPE vbap-posnr,
zzzlang          TYPE vbap-zzzlang,
zzzdruck         TYPE vbap-zzzdruck

And so on …

 

  • The extension table (t_extension_in) be of type bapiparex.

 

  • BAPI accepts the extension table in character format, so we generally change it like :

 

CLEAR t_extension_in.
t_extension_in-structure     = 'BAPE_VBAP'.


MOVE ls_vbap to t_extension_in+30 .
t_extension_in-valuepart1    = ls_vbap(240).
t_extension_in-valuepart2    = ls_vbap+240.
APPEND t_extension_in.

 

  • This BAPI internally changes the extension table to hexadecimal and then it converts it to character format. So sometimes the original values are wrongly interpreted. So we get garbage values (for eg: ### ) in the customer fields.

 

  • Now if we change the original type of ls_vbap first to hexadecimal and then convert these to character format and then append it to extension table then the internal conversion in BAPI will not give garbage values.

 

  FIELD-SYMBOLS: <fs_x_vbap>     TYPE x,
<fs_c_vbap>     TYPE c.

 

  CLEAR t_extension_in.
t_extension_in-structure     = 'BAPE_VBAP'.

 

* Converting into Hexadecimal value.
ASSIGN ls_vbap        TO <fs_x_vbap>     CASTING.

* Converting Hexadecimal to  char.
ASSIGN <fs_x_vbap> TO <fs_c_vbap>     CASTING.

* Filling Extension table ( excluding first field of 30 char)
t_extension_in+30 = <fs_c_vbap>.

APPEND t_extension_in.

 

  • After these conversion the values in customer fields will appear correctly.

 


Viewing all articles
Browse latest Browse all 948

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>