‎2011 Apr 11 5:53 AM
Hi,
I did on Enhancments. This is the EXIT_SAPLF048_001 for Tcode FB60 and FB01. I did coding for this.
Data : lc_e_zlspr type 'A'.
LOOP AT doc_item_tab INTO lv_item.
IF lv_head-blart = 'A1' OR lv_head-blart = 'B1'.
*Lock the payment
lv_item-zlspr = lc_e_zlspr.
CHECK SY-SUBRC = 0.
MODIFY doc_item_tab FROM lv_item INDEX sy-tabix.
endif
endloop.
Value are coming correctly to doc_item_tab. But when i check in table it is not updating in BSGE.
Is there any error. Or is there any syntax.
‎2011 Apr 11 7:45 AM
Here is a little trick for manipulating data objects in a user exit function when the function is not designed to allow it (you will, of course, have to adapt this to your own situation):
The following is an unpublished technique
for accessing the global memory of any program that precedes
this one in the call stack.
DATA lt_xlips TYPE STANDARD TABLE OF lipsvb.
DATA ld_mem(62) TYPE c.
FIELD-SYMBOLS <mem> TYPE ANY.
ld_mem = '(SAPMV50A)XLIPS[]'.
ASSIGN (ld_mem) TO <mem>.
IF sy-subrc = 0.
lt_xlips[] = <mem>.
ENDIF.
At this point I can manipulate lt_xlips, then copy it back to <mem>.
try this out, hope it's useful.
‎2011 Apr 11 7:14 AM
Hello,
This is an input parameter table and modifications are not allowed to it in the exit, try using some other exit or modifying only those parameter fields which are available in CHANGING mode.
Diwakar
‎2011 Apr 11 9:01 AM
Hi Agrawal,
IS there any user exit or Badi for this Tcode FB60,F-43 and FB01. For this three tcode i need to do the same modifications.
Thanks
‎2011 Apr 11 12:29 PM
Hi,
In FI try to do it with substitutions. To know about this tool see the article [Enhancement Technique: How to Use Substitutions|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/707439da-ead9-2910-5c97-af6ca0b6fbb1] by Lakshman Tandra in this site.
SAP Note 42615 - Substitution in FI will help you too.
Regards
Eduardo
‎2011 Apr 11 7:45 AM
Here is a little trick for manipulating data objects in a user exit function when the function is not designed to allow it (you will, of course, have to adapt this to your own situation):
The following is an unpublished technique
for accessing the global memory of any program that precedes
this one in the call stack.
DATA lt_xlips TYPE STANDARD TABLE OF lipsvb.
DATA ld_mem(62) TYPE c.
FIELD-SYMBOLS <mem> TYPE ANY.
ld_mem = '(SAPMV50A)XLIPS[]'.
ASSIGN (ld_mem) TO <mem>.
IF sy-subrc = 0.
lt_xlips[] = <mem>.
ENDIF.
At this point I can manipulate lt_xlips, then copy it back to <mem>.
try this out, hope it's useful.
‎2011 Apr 11 9:03 AM
Hi Sami,
Can u tell me tricks, how to do for my scneario.
Thanks
‎2011 Apr 11 10:25 AM
Hi,
1. Check the sy-subrc value in the debugger after the modify statement.
2. What is bsge is it an internal table or transparent table, if it is a transparent table then it is not available in my system.
3. It looks like the header value(lv_head-blart = 'A1' OR lv_head-blart = 'B1'.) will be same for all line items then why are you using if condition inside the loop ?
‎2011 Apr 13 4:47 AM
Hi Everyone,
I solved my problem by using BTE. Thanks for Everyone!!!!!
‎2011 Apr 16 4:24 AM