Implementing BADI TRIP_WEB_NUMBER, problem reading a field
Hi All,
Have anyone implemented BADI TRIP_WEB_NUMBER before,
Interface : IF_EX_TRIP_WEB_NUMBER
Method: USER_EXIT_NUMBER_INTERNAL
I need a help.
In this method i have exporting parameter NUMBER_RANGE TYPE INRI-NRRANGENR
so my requirement is just to change this parameter for particular conditon.
Problem is to make condition i need a field SCHEMA
You can check Structure HEAD_PERIO-SCHEM
or elset T706S OR T706T...
I need to read that field at runtime somehow, how can i achieve that pls help.
i can able to read only the date....
Pls help..
Thanks
Find out the main program name where the variable HEAD_PERIO-SCHEMA is declared. Then you can use the ABAP call stack method to retrieve the variable like below. This method can only be used to read a variable from ABAP call stack memory, that is the variable should be available in the scope of the program which is present in the run time call stack your BADI gets called in.
DATA: lv_name_xvbak(30) VALUE '(SAPMV45A)VBAK'.
FIELD-SYMBOLS: <xvbak> TYPE vbak.
* Retrieve Sales order details from abap stack
ASSIGN (lv_name_xvbak) TO <xvbak>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
In the above code you can replace SAPMV45A with the main program name where field SCHEMA is available and VBAK with HEAD_PERIO (the structure or internal table where the field you want is available)
For accessing internal tables similarly
DATA: lv_name_xvbap(30) VALUE '(SAPMV45A)XVBAP[]'.
FIELD-SYMBOLS: <xvbap> TYPE TABLE OF vbap.
ASSIGN (lv_name_xvbap) TO <xvbap>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
Similar Messages
-
We have a problem with OC4J. Our web application is working perfectly fine on other application servers, such as Tomcat, but when running it on OC4J we experience some weird behavior.
We have a HttpServlet which handles the request and prints out the response, which contains a form with some hidden input fields.
What seems to be the problem is that these hidden fields don't seem to be included when the form is being submitted the first time, it behaves the same way as if we had open the window from the link once again, the hidden fields we set in the first request are empty. However, if I submit the form a second time, it works fine and the HttpServlet reads the hidden fields correctly.
I'm not sure whether it is a matter of an error in our web application, or a wrong configuration of the application server.
I hope someone understand and can help me with this, as I'm about to go mad...
RikardWe think the problem is related to a difference between the tomcat and oracle api, and it seems like a bug in Oracle application server 10.1.2.0.0.
The request.getParamaterMap() method seems to behave differently. This method always returned the correct paramater map when running on tomcat, while it happened to be empty many times on the oracle app server. Is this a known problem for Oracle app server?
A work-around for us was to make use of the request.getParameterNames(), and then iterate through the names and get them manually with request.getParameter(attributeName). This way we always got the correct parameters. -
Use of function module : NUMBER_GET_NEXT in BADI TRIP_WEB_NUMBER
Hi All,
I am implementing BADI TRIP_WEB_NUMBER and using function module NUMBER_GET_NEXT to get the next number from a number range when the function module throws an exception how can i pass the exception to the exporting parameter
of the BADI 'RETURN' which is of table type BAPIRETTAB.
Do i need to handle exception as below?
Case sy-subrc
When '1'
ls_return- MESSAGE = 'error message 1'
When 2
ls_return- MESSAGE = 'error message 2'
What should i pass in the other fields of ls_return i mean like TYPE,ID,NUMBER etc??Hi
You have to pass the message in the proper structure in the RETURN parameter
Exampple
return-type = 'E'.
return-number = '12'.
return-message = 'number generation error'
Regards
Vijay V -
Implementing BADI ALM_ME_001_ORDER
Hi All,
<i>MAM30 SR1</i>
<i>MI25 SP15</i>
I followed the guide for implementing BADI ALM_ME_001_ORDER to get more fields for the ORDER_OPERATION details.
In the MI server, merep_mon says my fields and values are there and enhancement flags, and so as in the device - if I look in start.jsp.
But they are nowhere to be found on the screen. What did I miss?
Here's what I did:
1) added fields in CI_ALM_ME_ORDER_OPERATION structure
2) implemented BADI method MAM30_GETDETAIL
METHOD if_ex_alm_me_001_order~mam30_getdetail .
DATA: l_oper TYPE mam_30_order_operation,
lce_oper TYPE alm_me_custom_order_operation.
LOOP AT order_operation INTO l_oper.
clear lce_oper.
lce_oper-zusr00 = l_oper-usr00.
lce_oper-zusr01 = l_oper-usr01.
lce_oper-zusr02 = l_oper-usr02.
lce_oper-zusr03 = l_oper-usr03.
lce_oper-key_activity = l_oper-activity.
lce_oper-key_sub_activity = l_oper-sub_activity.
APPEND lce_oper TO ce_order_operation.
l_oper-enhancement_flag = 'X'.
MODIFY order_operation
FROM l_oper TRANSPORTING enhancement_flag.
ENDLOOP.
ENDMETHOD.
3) implemented BADI method MAM30_GETLIST
METHOD if_ex_alm_me_001_order~mam30_getlist .
DATA l_order_list TYPE mam_30_order_header.
LOOP AT order_list INTO l_order_list.
l_order_list-enhancement_flag = 'X'.
MODIFY order_list
FROM l_order_list TRANSPORTING enhancement_flag.
ENDLOOP.
ENDMETHOD.
<i></i>Hi Kuya!
Did you activate your BADI implementation in SE19?
Thank You
Gisk -
Problem with decimal fields using BADI For PD Infotypes
Hi,
I'm implementing BADI HRBAS00INFTY.
For reading the fields of infotype , I'm using the substring
of the field NEW_INNNN-VDATA .
I have a problem with fields of type DEC.
In field NEW_INNNN-VDATA it looks like this : '####'
I believe that the possible reason for this is conversion from DEC to CHAR
But I don't know how to fix it.
Thank you .
Message was edited by: Alon LozinskyHi Alon,
We had same issue. Use following code.
data: hri1011_str type hri1011.
move new_innnn-vdata to hri1011_str.
HRI1011_STR fields will have decimal values.
Let me know if you still have any issues. If solution works, kindly do Point Recognition.
-Bharat -
Problem on Implementing badi ME_GUI_PO_CUST
Hi Expert,
I have implement BADI ME_GUI_PO_CUST, to add the new tab.
I have managed to View the tab in Both ME21N, and ME22N with implement SUBSCRIBE and MAP_DYNPRO_FIELDS.
method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE
DATA: ls_subscriber LIKE LINE OF re_subscribers.
CHECK im_application = 'PO'.
CHECK im_element = 'ITEM'.
CLEAR re_subscribers[].
ls_subscriber-name = subscreen1.
ls_subscriber-dynpro = '0002'.
ls_subscriber-program = 'ZRPP_ME_GUI_PO_CUST_SCREEN'.
ls_subscriber-struct_name = 'CI_EKPODB'.
ls_subscriber-label = text-001.
ls_subscriber-position = 7.
ls_subscriber-height = 7.
APPEND ls_subscriber TO re_subscribers.
METHOD : IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
LOOP AT ch_mapping ASSIGNING <mapping>.
CASE <mapping>-fieldname.
WHEN 'ZCNUM'. <mapping>-metafield = mmmfd_cust_01.
ENDCASE.
ENDLOOP.
Method IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
DATA: lw_fieldselection LIKE LINE OF ch_fieldselection.
LOOP AT ch_fieldselection INTO lw_fieldselection.
lw_fieldselection-fieldstatus = '+'.
MODIFY ch_fieldselection FROM lw_fieldselection.
ENDLOOP.
I need to store the value, and some of thread said it required methods:
TRANSPORT_FROM_MODEL
TRANSPORT_TO_DYNP
TRANSPORT_FROM_DYNP
TRANSPORT_TO_MODEL
I have click on the subcreen, or enter at the field, but it will not able to trigger the Above Methods.
How do I do for the to trigger above Methods? Or Should I added some additional code at screen program? I want SAVE the data actually into EKPO.
Thanks in advance.Hi Sim,
Recently we have the same reqirement.
You can have a look at the below code..
First method: SUBSCRIBE
DATA: ls_subscriber LIKE LINE OF re_subscribers.* we want to add a customer subscreen on the Header tab
CHECK im_application = 'PO'.
CHECK im_element = 'HEADER'.* each line in re_subscribers generates a subscreen. We add one subscreen in this example
CLEAR re_subscribers[].
* the name is a unique identifier for the subscreen and defined in this class definition
ls_subscriber-name = subscreen1.
* the dynpro number to use
ls_subscriber-dynpro = '0001'.
* the program where the dynpro can be found
ls_subscriber-program = 'SAPLZKMMM_KAU86037'.
* each subscreen needs his own DDIC-Structure
ls_subscriber-struct_name = 'CI_EKKODB'.
* a label can be defined
ls_subscriber-label = text-001.
* the position within the tabstrib can be defined
ls_subscriber-position = 13.
* the height of the screen can be defined here. Currently we suport two screen sizes:
* value <= 7 a sevel line subscreen
* value > 7 a 16 line subscreen
ls_subscriber-height = 7. APPEND ls_subscriber TO re_subscribers.Here, parameter u2018im_elementu2019 is defined as u2018HEADERu2019 as we are adding new tab in header section of PO.
Define a function group and take the main program and define it in ls_subscriber-program.
Also define a sub screen with the required fields and assign it to the parameter ls_subscriber-dynpro.
Then method MAP_DYNPRO_FIELDS
FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
LOOP AT ch_mapping ASSIGNING <mapping>. CASE <mapping>-fieldname. WHEN 'ZZPAYMENT_AGRE'. <mapping>-metafield = mmmfd_cust_03.
WHEN 'ZZPROJECT'. <mapping>-metafield = mmmfd_cust_04.
ENDCASE. ENDLOOP. TRANSPORT_FROM_MODEL:
DATA: l_header TYPE REF TO if_purchase_order_mm,
ls_mepoheader TYPE mepoheader,
ls_customer TYPE CI_EKKODB.*--------------------------------------------------------------------*
* system asks to transport data from the business logic into the view
*--------------------------------------------------------------------* CASE im_name. WHEN subscreen1.* is it an Header? im_model can be header or item.
mmpur_dynamic_cast l_header im_model.
CHECK NOT l_header IS INITIAL.* transport standard fields
ls_mepoheader = l_header->get_data( ).* store info for later use
MOVE-CORRESPONDING ls_mepoheader TO dynp_data_pbo.
WHEN OTHERS.
ENDCASE. TRANSPORT_TO_DYNP:
Define a FM 'ZK_KAU86037_PUSH' to push the values.CASE im_name. WHEN subscreen1. CALL FUNCTION 'ZK_KAU86037_PUSH'
EXPORTING
im_dynp_data = dynp_data_pbo. WHEN OTHERS.
ENDCASE. TRANSPORT_FROM_DYNP:
Define another FM 'ZK_KAU86037_POP'.CASE im_name. WHEN subscreen1. CALL FUNCTION 'ZK_KAU86037_POP'
IMPORTING
ex_dynp_data = dynp_data_pai. IF dynp_data_pai NE dynp_data_pbo.
* something has changed therefore we have to notify the framework
* to transport data to the model
re_changed = mmpur_yes.
ENDIF. WHEN OTHERS.
ENDCASE. TRANSPORT_TO_MODEL:
DATA: l_header TYPE REF TO if_purchase_order_mm,
ls_mepoheader TYPE mepoheader,
ls_customer TYPE CI_EKKODB,
l_po_header_handle TYPE REF TO cl_po_header_handle_mm.*--------------------------------------------------------------------*
* data have to be transported to business logic
*--------------------------------------------------------------------* CASE im_name. WHEN subscreen1.* is it an item? im_model can be header or item.
mmpur_dynamic_cast l_header im_model.
CHECK NOT l_header IS INITIAL. ls_mepoheader = l_header->get_data( ).* standard fields changed?
IF dynp_data_pbo-zzpayment_agre NE dynp_data_pai-zzpayment_agre
OR dynp_data_pbo-zzproject NE dynp_data_pai-zzproject.* update standard fields
ls_mepoheader-zzpayment_agre = dynp_data_pai-zzpayment_agre.
ls_mepoheader-zzproject = dynp_data_pai-zzproject.
CALL METHOD l_header->set_data
EXPORTING
im_data = ls_mepoheader.
ENDIF.
WHEN OTHERS. ENDCASE.
Then we have to implement one more BADI to display the tab and update the values.
Implement the BADI ME_PROCESS_PO_CUST. This cannot be used multiple times.
In this, we have methods (PROCESS_HEADER,PROCESS_ITEM).if we need to any validations for the fields we can write the logic here in this methods. In my case I need to check for the document type which I implemented in the method (PROCESS_HEADER).
Hope it helps you.
Thanks
Arbind -
Problem after Implementing BADI
Hi all,
I implemented BADI MB_MIGO_BADI it was working fine, but it was deleted
and again trying to implement second time it is showing the message
Implementation ZTEST_MIGO migrated (see long
for instructions) and choose enhancement spot and i implemented the BADI but
this time it is not triggering.
what might be the problem any help?
Thanks
Satish.Dear Satish,
Once u implement a BADI in ECC it will automatically generates the Enchament Spot. Here u deleted ur BADI implementation. Ur BADI got deleted and the enhancement for tht not get deleted. Thts y its showing error when u r creating the second time. So implement ur badi inside the Enhancement Spot using SE19.
With Regards,
Sumodh.P -
Implementing Badi: BADI_MAT_CUST_SCR
Hello Experts!
I'm trying to insert customer defined fields in material component in CJ20N. I'm implementing Badi: BADI_MAT_CUST_SCR.
Customer tab appeared. But next I have some problem: i need to extended 2 methods GET_SCREEN_DETAILS and GET_CUST_FEILDS. If someone extended this methods, please help me, i need simple example of realization this 2 methods.
Thank you.Hi Ruslan,
Just go through this link.[Enhancement in PRj|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/60ccc737-d6ea-2b10-32ad-e9020b000e43?QuickLink=index&overridelayout=true]
If need you can do through exit also.
Regards,
Madhu. -
As a result of this error, I cannot delete pages in a big PDF file I have of 1032 pages.
The error, famous on the web and in Google, is:
there was a problem reading this document (15)
I hope I can find a solution for this, because I cannot delete the unnecessary pages inside the document which is driving me crazy.
Adobe Acrobat X has a very poor quality testing. In fact I don't beleive Adobe test their products, I think they just program them, label them as the finished product, ASK FOR A HIGH PRICE, OF COURSE, and release them to the market creating a lot of nightmares and headaches to the customer.
Adobe Acrobat X crashed several times when the files have flash content inside or formularies. The program, simply, is bad programmed with a very poor engineering inside.
As soon I find an alternative for PDF, I will switch, I promise, in fact I don't promise it, I SWEAR IT.
And if I dont find a solution for this I will put in my car a banner that says "DON'T BUY ADOBE ACROBAT, IS THE WORST PROGRAM YOU CAN FIND!"
I'm loosing days and days of work, this is costing me problems and money.Yes, there is something wrong with the document. That is the defective programming the Adobe engineering team did. And please, allow me to explain you why it is defective. After you spend millions dollars in 950 engineers and 3100 beta testers, you can destroy Adobe Acrobat X easily just downloading a website rich in flash content. Some animated banners in the downloaded pages from the web, it's enough to destroy it.
Just go to a website where you have animated banners, and press Shift+Crtl+O to download the pages...
Save your PDF document and then try to work with it.
If the document has a big size, let's say 1000 pages approximately, and many of them have flash content... Adobe Acrobat X crash automatically just moving from one page to another.
As simple as that.
Is the most unstable program I've seen in all my life. And please, don't tell me it's my machine, because I've tested it in other computers. The same!
But there is more! yes
Forms fields also destroy Acrobat X
In a big PDF file having several pages inside with forms, just go to Tools, Forms and Edit, then in the list of pages try to delete the forms fields selecting them and pressing the Del key... crasshhhh Acrobat X die.
What kind of betatesters you chose to test your products? For sure are people that are working with light documents of 5... 10 pages and no more.
For sure are not people working extensively with Adobe Acrobat, as I do.
And what happens when Acrobat X crash miserably time after time? that the Error 15 comes, because the file becomes corrupted.
This is not serious.
Is this the kind of performance and stability that Acrobat provide to the customers? having the risk to lose important documents and data, due how unstable is the program?
You can tell me you hired NASA personnel to do this program, but customers need results, and crashing the program just pressing one key is not serious.
And talking about complains I don't want to remember the last update of the Acrobat 9 !!!
And you know what? a simple tool as NitroPDF don't crash!
Sadly NitroPDF is not an option for me, because I embed videos in the PDF documents and NitroPDF don't allow me that.
I am using Adobe Acrobat X because sadly I don't find another alternative, the day I find it, I'll switch for sure.
Or perhaps we can get a miracle, and your programmers could focus in what is IMPORTANT: STABILITY AND PERFORMANCE. -
Need Ways to implement Badis in ECC 6.0 (Enhancement Points)
Hi experts,
I am new to BADIs. I've a requirement to find a BADI for changing Customer number while posting customer invoice in SAP (the data is coming from XI system in IDOC format). I want to know any BADIs or userexits are there for my requirement. At the same time I want to know how to implement a BADI in ECC 6.0 .Any docs releated to this topic will be of great help.
points will be awarded for sure..........hi Poorna Chandras... ,
These steps should enable you to find any BADI related to any transaction in a matter of minutes.
Procedure 1:
1) Go to the transaction SE37 to find your function module.
2) Locate the function SXV_GET_CLIF_BY_NAME.
3) Put a breakpoint there.
4) Now open a new session.
5) Go to your transaction. 6) At that time, it will stop this function.
7) Double click on the function field EXIT_NAME.
8) That will give you name of the BADI that is provided in your transaction.
Business Add-Ins
Procedure 2:
1) Goto se24 (Display class cl_exithandler)
2) Double click on the method GET_INSTANCE.
3) Put a break point at Line no.25 (CASE sy-subrc).
4) Now Execute SAP standard transaction
5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
7) This way you will find all the BADIs called on click of any button in any transaction
SAP Business Add-Ins (BAdIs) are one of the most important technologies used to adapt SAP software to specific requirements. BAdIs were introduced with Release 4.6 and replace function module exits. This technology is not limited to SAP applications. BAdI calls can be integrated in customer applications. These can then be enhanced by other customer applications. In the various SAP applications, BAdI calls are implemented at places where enhancements are appropriate.Business add-ins are enhancements to the standard version of the system. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, country-specific versions, industry solutions, partner, customer, and so on). You can create definitions and implementations of Business Add-Ins at any level of the system landscape.SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to differentiate between Add-In implementations using the filter Country or other criteria.
The enhancement technique is set up in such a way that it is possible to define interfaces for ABAP soure code, screens, GUI interfaces, and tables. These allow customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task.
BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently. BADI/UserExists are used to enhance R/3 For customer Needs.
Actually there is no transaction to find when and where the BADI
is called.
1. You can see the BADI description to find why it is called.
2. Once you implemented and activated the BADI, put some break points
in the BADI and see "where else used" option to check in what all
programs this BADI is called. In the ITS debug, when you are doing
the operation what exactly the BADI description tells, it will take
to the break points and you have to do manually debug the whole thing.
I know its bit difficult to do manual debug the whole thing, it
takes lot of time, but you have to be very patience when you are
dealing with BADI's.
Transaction SE18 is the BADI equivalent of transaction SMOD
Transaction SE19 is the BADI equivalent of transaction CMOD .
To find the BADI to be implemented and then implement this via SE19.
Check this blogs 2 find a BADI:
How to find if we have a BADI in Transaction VB02
Re: BADI for screen enhancement in MM01 transaction
Re: BADI and User exits
How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
When to Use a BAdI?)
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
How to implement a BAdI And How to Use a Filter
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
Introducing Business Add-Ins
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
How to implement BAdi in Enhancement Framework
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
Business Add-Ins
http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
BAdI: Customer-Defined Functions in the Formula Builder
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
Difference Between BADI and User Exits
http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
You can check the links for Step by Step Badi Implemntation
(very helpful self learning docs).
BADI Step by Step Implementation.
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/63ee7f486cc143a560799d8803ce29/content.htm
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/srm/badi-general+information&
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
The specified item was not found.
http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
http://www.allsaplinks.com/badi.html
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-serieshttps:///people/alwin.vandeput2/blog/2006/04/13/how-to-search-for-badis-trace-it
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
http://www.esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
Difference Between BADI and User Exits
http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
New to Badi`s
New to BADI
New to BADI long question
Badi
/message/4866901#4866901 [original link is broken]
Hope this helps
Rewards if useful.........
Cheers
Kripa Rangachari. -
Problem with a field set to refresh after insert at Row level
hello all,
i have a problem with a field (a serial) which is set by a db trigger at insertion. The field "refresh after insert" is properly set in the Entity and everything is refreshed correctly when i insert data via an adf form in a jspx but when i want to insert programmatically nothing is refreshed. I insert data this way :
ViewObject insertVO = findViewObject("myView");
Row newRow = insertVO.createRow();
newRow.setAttribute("mandatoryAttribute1",value1);
newRow.setAttribute("mandatoryAttribute2",value2);
<more init here but not the serial since it will be set by the DB trigger>
insertVO.insertRow(newRow);
but when i want to get back the value with "newRow().getAttribute("TheSerial");" i always get a null back and not the value set by the db trigger.
One way to get the serial is to commit after each insert but i don't want to commit between inserts.
i've tried to unset the refresh after insert and override the createDef() method to setUseReturningClause(false) as it's is advised in chapter 26.5 of the ADF 4GL dev. guide but in this case i have an exception JBO-29000: JBO-26041.
How can i get the value back properly ?
thanks
-regardsThe data for the newly created row doesn't get inserted into the database until the commit is executed, so the insert trigger isn't called.
If you need to get the value without committing, then you should implement the trigger programmatically and drop the trigger from the database. The code below shows how you could do this.
ViewObject insertVO = findViewObject("myView");
Row newRow = insertVO.createRow();
SequenceImpl seq = new SequenceImpl("MY_SEQ", insertVO.getDBTransaction());
Long next = (Long)seq.getData();
newRow.setAttribute("primaryAttribute", new Number(next));
...You will need to replace MY_SEQ and primaryAttribute with the correct values for your example, but this should acheive what you want. -
How can we implement BADI FI_HEADER_SUB_1300
Hi,
I have created a field in BKPF table , now I have to update this field while using FB01 tcode. can any one tell me how can i update this field using BADI "BADI FI_HEADER_SUB_1300". please give the steps if possible
thanksPankaj,
You need to create a implementation for the BADI using SE18 transaction. However, before that look at the parameters of the method of the BADI and see if your Custom field has reflected in there or not. Secondly, if it has, then whether you can modify the data or its in importin mode.
If these two conditions are satisfied, then you can implement the method and update the field and it should reflect in the table.
Regards,
Ravi
Note : Please mark the helpful answers. -
Hi,
How to implement BADI?
I want to Implement Badi for t.code FBL3N .
In This i need to update BSEG table.
please give me solution
Edited by: Santhosh on Jan 22, 2008 4:50 PMBusiness Add-Ins
Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
As with customer exits (SMOD/CMOD Page 40), two different views are available:
In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
In contrast to customer exits, Business Add-Ins no longer assume a two-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time.
In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard.
A single Business Add-In contains all of the interfaces necessary to implement a specific task. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects
DEFINING THE BADI
1) execute Tcode SE18.
2) Specify a definition Name : ZBADI_SPFLI
3) Press create
4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
multiple use.
5) Choose the interface tab
6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
7) Dbl clk on interface name to start class builder . specify a method name (name,
level, desc).
Method level desc
Linese;ection instance methos some desc
8) place the cursor on the method name desc its parameters to define the interface.
Parameter type refe field desc
I_carrid import spfli-carrid some
I_connid import spefi-connid some
9) save , check and activate adapter class proposed by system is
ZCL_IM_IM_LINESEL is genereated.
IMPLEMENTATION OF BADI DEFINITION
1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
2) Specify aname for implementation ZIM_LINESEL
3) Specify short desc.
4) Choose interface tab. System proposes a name fo the implementation class.
ZCL_IM_IMLINESEL which is already generarted.
5) Specify short desc for method
6) Dbl clk on method to insert code..(check the code in AAA).
7) Save , check and activate the code.
Some useful URL
http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
Now write a sample program to use this badi method..
Look for BBB sample program.
AAA
data : wa_flights type sflight,
it_flights type table of sflight.
format color col_heading.
write:/ 'Flight info of:', i_carrid, i_connid.
format color col_normal.
select * from sflight
into corresponding fields of table it_flights
where carrid = i_carrid
and connid = i_connid.
loop at it_flights into wa_flights.
write:/ wa_flights-fldate,
wa_flights-planetype,
wa_flights-price currency wa_flights-currency,
wa_flights-seatsmax,
wa_flights-seatsocc.
endloop.
BBB
*& Report ZBADI_TEST *
REPORT ZBADI_TEST .
tables: spfli.
data: wa_spfli type spfli,
it_spfli type table of spfli with key carrid connid.
*Initialise the object of the interface.
data: exit_ref type ref to ZCL_IM_IM_LINESEL,
exit_ref1 type ref to ZIF_EX_BADISPFLI1.
selection-screen begin of block b1.
select-options: s_carr for spfli-carrid.
selection-screen end of block b1.
start-of-selection.
select * from spfli into corresponding fields of table it_spfli
where carrid in s_carr.
end-of-selection.
loop at it_spfli into wa_spfli.
write:/ wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-cityfrom,
wa_spfli-deptime,
wa_spfli-arrtime.
hide: wa_spfli-carrid, wa_spfli-connid.
endloop.
at line-selection.
check not wa_spfli-carrid is initial.
create object exit_ref.
exit_ref1 = exit_ref.
call method exit_ref1->lineselection
EXPORTING
i_carrid = wa_spfli-carrid
i_connid = wa_spfli-connid.
clear wa_spfli.
Regards -
Implementing BADI GCC_PS_PROJECT_LABEL GET_WBS_ELEMENT
Hello,
I am implementing the BADI GCC_PS_PROJECT_LABEL to synchronise values between cProject an PS.
On the one hand I would like to get the details (in my case values of user defined fields implemented as CI and not as append structure) of the cProjects element to be able to read the fields.
On the other hand I would like to set the values of this fields in the wbs-element.
Unfortunately I am completly new to this topic and have no glue whether to find the cProject-fields nor to set the values of the wbs elements.
Could someone help me?
Thank you,
VanessaHello,
The fields are not passed if I use
ls_attribute-data_element = space.
ls_attribute-value = 'X'.
ls_attribute-field_name_orext = 'WBS_ACCOUNT_ASSIGNMENT_ELEMENT'.
and if I use this code
ls_attribute-data_element = 'WBS_ACCOUNT_ASSIGNMENT_ELEMENT'.
ls_attribute-value = 'X'.
ls_attribute-field_name_orext = space.
There is written in the controlling cockpit messages that
Component VANESSA_TEST in structure OREXT or BAPI_BUS2054_DETAIL not
available
Message no. IAOM024
Diagnosis
During creation or changing of a Controlling object a value was also
entered for component VANESSA_TEST of structure OREXT or
BAPI_BUS2054_DETAIL. However, component VANESSA_TEST is not contained in
the active structure OREXT or BAPI_BUS2054_DETAIL in the Dictionary .
In DPR_FIN_GECCO_ATTR, add your accouting fields+value in the ct_attributes table.
ls_attribute-data_element = space.
ls_attribute-value = 'X'.
ls_attribute-field_name_orext = 'WBS_ACCOUNT_ASSIGNMENT_ELEMENT'.
ls_attribute-fldname_receiver = space.
ls_attribute-struc_name_copa = space.
ls_attribute-field_name_copa = space.
ls_attribute-ext_attr_name = space.
ls_attribute-ext_attr_value = space.
INSERT ls_attribute INTO TABLE ct_attributes.
You should retrieve them in ERP side, in BADI GCC_PS_PROJECT_LABEL (CPRO implementation).
A sample read of this attribute could be:
read table ATTRIBUTES_OF_EXT_OBJ
into ls_attribute
with key data_element = 'WBS_ACCOUNT_ASSIGNMENT_ELEMENT'.
Means that you are writing in the ls_attribute-field_name_orext and later on you are reading "with key data_element = ....".
Should it be mapped between the BADIs? Which one would be good to transfer my own fields between the BADIs?
Some suggestions?
Have a really nice weekend,
Vanessa -
Badi for check tax number field
Hi guys!
Can anyone tell if exists a badi that ckecks the field 'TAXNUM' in transaction 'BP' after we put a value there.
I've already check in the transaction 'Bus7' and i only find the function for the event 'check before saving' -'BUP_BUPA_EVENT_DCHCK'.
Thanks in advance.
Hugo.Hi everybody!
I need understand how implement check of taxnum using transaction BUS3 - view BUTX01.
I need check tax number in transaction FPP2.
I see a post very interesting:
Badi for check tax number field
I create a module function but inside of module function i don't have data for my validation. I think i make a mistake. Help please!
If somebody have a tutorial would be great!!
Thanks!
Maybe you are looking for
-
I've been waiting for a while to see a volleyball emoji, and still haven't seen one. When is apple going to realize that there are volleyball players who would use this emoji all the time? *cough cough* me *cough cough*
-
SUMIF to sum only if test-value field is non-blank?
Hey Numbers experts, I'm looking for a way to conditionally sum the values in a column. In other words, if the corresponding field in my "test values" column is blank, I do not want to include the value from the same row in my "sum values" column. Is
-
I lost all my notes in my iphone and ipad..how can I recover them?
How can I recover my notes in my iphone??
-
Hi, I have a warehouse environment with planing data. Partitioned tables by range ( date) mainly. Size is in > 1 - 6 TB. ( 9R2 and 10gR2 on AIX) Using GControl only. I'm wondering what could be the way to create subsets of the production database, fo
-
Why is the word palindrome not a palindrome?
Why is the word palindrome not a palindrome?