Activating BAdi?
Dear BWers,
I have to activate a BAdi before i use the extractor 0FI_AA_11. This is a prerequisite before i use the delta extractor. What is the procedure for implementing a BAdi. Thanks in advance for all the help. (Please see below)
Thanks
Raj
Prerequisite:
Before you can use the delta extraction, you have to activate the FIAA_BW_DELTA_UPDATE BAdI. This BAdI ensures that the change tables BWFIAA_AEDAT_TR, BWFIAA_AEDAT_AB and BWFIAA_AEDAT_AS are updated when you update transactions, or create and change master data and annual values for assets.
Message was edited by: Raj Singh
Hi
Use trx:
SE18 - BADI Definition
SE19 - BADI Implementation
Also look at:
http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
Reg's
Edan
Similar Messages
-
Runtime error in activation BADI (CX_HRPA_INVALID_PARAMETER)
In activation BADI i get a runtime error using 'HR_INFOTYPE_OPERATION'
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_HRPA_INVALID_PARAMETER', was not
caught in
procedure "RESOLVE_EXCEPTION" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
Ongeldige parameter EXCEPTION waarde
The occurrence of the exception is closely related to the occurrence of
a previous exception "CX_HRPA_VIOLATED_PRECONDITION", which was raised in the
program "CL_HRPA_MASTERDATA_FACTORY====CP",
specifically in line 6 of the (include) program
"CL_HRPA_MASTERDATA_FACTORY====CM004".
The cause of the exception was:
Niet aan voorwaarde voldaan
DATA: personaldatakey TYPE bapipakey.
DATA: return TYPE bapireturn1.
DATA: l_p0025 TYPE p0025.
DATA: l_citem TYPE t71adm09-citem.
DATA: l_resultaat(2) TYPE n.
l_p0025-pernr = p0759-pernr.
Begindatum is begindatum binnengekomen IT0759 record - 1 jaar
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = p0759-begda
days = 0
months = 0
signum = '-'
years = 1
IMPORTING
calc_date = l_p0025-begda.
Einddatum is 31 december van het jaar binnegkomen IT0759
CONCATENATE: p0759-endda(04) '1231' INTO l_p0025-endda.
l_p0025-infty = '0025'.
IF p0759-cpamt >= 100.
*GENERATE ERROR
ELSE.
l_resultaat = p0759-cpamt.
IF l_resultaat < 10.
CONCATENATE '0' l_resultaat INTO l_p0025-krt01.
ELSE.
l_p0025-krt01 = l_resultaat.
ENDIF.
write data
CLEAR: return, personaldatakey.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0025'
number = l_p0025-pernr
validityend = l_p0025-endda
validitybegin = l_p0025-begda
record = l_p0025
operation = 'INS'
nocommit = ''
tclas = 'A'
IMPORTING
return = return
key = personaldatakey
EXCEPTIONS
OTHERS = 0.
IF NOT return-number IS INITIAL.
GENERATE ERROR
ELSE.
is_ok = 'X'.
process_standard = 'X'.
ENDIF.Hello Richard
The exception is raised in method SET_FRAMEWORK of class CL_HRPA_MASTERDATA_FACTORY. Perhaps the SAP note mentioned in the coding (on ECC 6.0) may be useful:
METHOD set_framework.
IF a_is_initialized = true.
* This indicates some complex problem which often can be easily
* fixed. For details see NOTE 493984 (2003).
RAISE EXCEPTION TYPE cx_hrpa_violated_precondition. " line 6
ELSE.
CALL METHOD delayed_constructor
EXPORTING
read_infotype = read_infotype
masterdata_buffer = masterdata_buffer
additional_buffer = additional_buffer
legacy_mode = legacy_mode.
ENDIF.
ENDMETHOD.
Regards
Uwe -
Hi experts,
We are implementing SAP PM using BSP pages and we have activated BADI HRHAP00_BSP_TMPL to call a ZHAP_DOCUMENT BSP application.
We have already copied the CL_BSP_HAP_DOCUMENT_CO to ZCL_BSP_HAP_DOCUMENT_CO and corrected the code to call my Zapplication.
Anyway the document_error.htm page is not opening when an error is triggered (for example: fill obligatory field 1). Is there any other controller that I should change?
Cheers,
Andre SousaDear Raja ,
I have activated all the services which are available in the SICF transaction ..
but there are few services which mentioned in the note 517484 are not available in the SICF transactions
there is only one node ur under /default_host/sap/public/
but in the note there are many nodes mentioned ..
Assignment of SAP icons
/default_host/sap/public/bc
/default_host/sap/public/bc/icons
/default_host/sap/public/bc/icons_rtl
/defaul t_host/sap/public/bc/webicons
/default_host/sap/public/bc/pictograms
Assignment of Web Dynpro ABAP (WDA) applications
/default_host/sap/bc/webdynpro
/default_host/sap/public/bc
/default_host/sap/public/bc/ur
/defau lt_host/sap/public/bc/icons
/default_host/sap/public/bc/icons_rtl
/default_host/sap/public/bc/webicons
/default_host/sap/pu blic/bc/pictograms
/default_host/sap/public/bc/webdynpro/* (ssr, mimes, and so on)
/default_host/sap/public/myssocntl
Please help -
Error while activating badi - ME_PROCESS_PO_CUST
hi,
i have written the code in the process_header and process_item separately and when i try to activate the class, it is giving warning msg
In type group MMCNT
'In unicode programs the '-' character cannot appear in names as it does here in the name "MMCNT_EKKO-BEDAT", "MMCNT_EKKO-WKRUS", "MMCNT_EKKO-KDATE".
i activated it, and the class gets activated, but when i try to activate the badi, it is giving error message "Implementation class contains errors".
How to rectify the error and check whether my badi works or not?
plz help me.
thanks.
Sakthi sri.In class interface, properties tab, i removed the check mark of unicode checks active and now i can activate the badi.
-
Hi All,
while checking stock requirement list, I can see the indicator Badi Active checked under Forecase adn Planning Tab. How to know which BADI is active for planning.
Thanks and Regards
AlexHi
There is a report SNIF which you can run in SE38 to check all implemetned BADIs, then you can simply find out what BADIs from the description and packages. -
Hi,
SRM 5.0, classic
How do I get the list of 'activated' BADIs in SRM ?
-PranavView V_EXT_ACT should give you the active BADI's.
Regards, IA -
Using BAdI BBP_PGRP_FIND for purch.group determination
Hello all
For normal sc items I'd like to have one single purchasing group being determined during sc creation (by default).
Except for described req. items, the purch. group should be determined using the normal logic based on product category and its logical backend system.
I thought it would be fairly easy to achieve this, but the bad thing is, that when activating BAdI BBP_PGRP_FIND it automatically deactivates the standard logic which would be the one needed in case of described requirements.
So I'm searching how to implement BAdI BBP_PGRP_FIND in a way where I can run the standard purch. group determination logic for described requirement items but to run own new determination logic for all other sc items.
EDIT
In other words:
IF described req.
do normal standard determination logic
ELSE.
assign single default purch.org./purch.grp.
ENDIF.
Somebody an idea on this one? Is there a function module / method I can call from within the BAdI to run the standard determination logic?
Thanks for any helpful input.
RenaudMe again... after some further investigations I found function module BBP_OM_FIND_SC. It returns a list of found purchasing org. / groups responsible for a specified user, product category and logical backend system.
Hope this helps someone else one day...
Kind regards,
Renaud -
Badi working only in Debug mode
Hi experts,
It's my first time with Badi, and I'm facing a issue I can't understand.
I've activated badi ME_PROCESS_PO_CUST , and everything work's fine .
From the method "Close" I call a Z... function which writes data on a custom table.
I've tested it and the system correctly update the table , but when I deactivate the debug in the badi's method , it looks like the badi is not implemented and the system doesn't pass trough the function.
Can somebody adress me to solve it ?
Thank you in advance for any help.
Ciao.Thank you for your help Sudhir , but the table update it's done by the custom function which should be called by the BAdI. My issue is that the BAdI's method works only if I set a break-point on it. If I do not put a break-point on the BAdI , the function is not called at all !!.
Thanks again for your suggestion. -
BADI Differences between 4.7 and ecc 6
Dear experts,
Can any one tell me the differences in BADIs in 4.7 and in ECC 6.0
Thanks in advance
someshHi Venkat,
SOURCE: difference between badis in 4.7 and ECC 6.0
The u2018BADI-su2019 (Business Add-Ins), as they exist in pre NW04s releases are now called old classic-BADIu2019s (release 4.6 ). This was the first object-oriented way to enhance the ABAP system. This, to a certain extent, allows multiple implementations with limited filter support. The classic-BADIu2019s are implemented using ABAP Objects.
With the introduction of Enhancement framework from E.C.C 6.0 a new BADI concept in additional to the old classical BADIs has evolved called as Kernel-BADI enhancement.
The old classic-BADIu2019s are implemented purely at the ABAP Workbench level; that is, both the definition and implementation are realized as workbench repository objects (global classes and interfaces).
The new Kernel-BADI takes it to the ABAP language level. Because of this, the new Kernel-BADIu2019s are much faster compared to the old classic-BADIu2019s.
There are two new ABAP statements available now to support the Kernel-BADIu2019s, namely GET BADI and CALL BADI.
Example:
data bd_hdl type ref to badi_name.
GET BADI bd_hdl filters filt_1 = u2018VALUEu2019.
CALL BADI bd_hdl->method
exporting param_1 = 10.
The old classic-BADI used to mix both implementation selection and method call in the same CALL METHOD statement. The implementations could only be chosen at run-time because of the above reason and due to the fact that the BADI handle could only be gotten from another method call by passing the BADI name.
Whereas in the new Kernel-BADI, the active BADI implementations are included into the load of BADI handle at compile time and the filter criterion are expanded as IF statements. This is the reason the new Kernel-BADIu2019s are much faster than classic-BADIu2019s.
Some of the other new features of Kernel-BADIu2019s are,
u2022 Improved Filters with complex filter condition editor
u2022 Stateful BADI support and Context based lifetime control
u2022 Possibility to inherit the implementations
u2022 Switchable using Switch Framework 9
Have A Nice Day
Chaitanya. -
Difference between badis in 4.7 and ECC 6.0
Hi ,
What are the additional things we can do in ECC6.0 for BAdi in comparision with 4.7 .
Thanks .Hi Santhosh ,
The u2018BADI-su2019 (Business Add-Ins), as they exist in pre NW04s releases are now called old classic-BADIu2019s (release 4.6 ). This was the first object-oriented way to enhance the ABAP system. This, to a certain extent, allows multiple implementations with limited filter support. The classic-BADIu2019s are implemented using ABAP Objects.
With the introduction of Enhancement framework from E.C.C 6.0 a new BADI concept in additional to the old classical BADIs has evolved called as Kernel-BADI enhancement.
The old classic-BADIu2019s are implemented purely at the ABAP Workbench level; that is, both the definition and implementation are realized as workbench repository objects (global classes and interfaces).
The new Kernel-BADI takes it to the ABAP language level. Because of this, the new Kernel-BADIu2019s are much faster compared to the old classic-BADIu2019s.
There are two new ABAP statements available now to support the Kernel-BADIu2019s, namely GET BADI and CALL BADI.
Example:
data bd_hdl type ref to badi_name.
GET BADI bd_hdl filters filt_1 = u2018VALUEu2019.
CALL BADI bd_hdl->method
exporting param_1 = 10.
The old classic-BADI used to mix both implementation selection and method call in the same CALL METHOD statement. The implementations could only be chosen at run-time because of the above reason and due to the fact that the BADI handle could only be gotten from another method call by passing the BADI name.
Whereas in the new Kernel-BADI, the active BADI implementations are included into the load of BADI handle at compile time and the filter criterion are expanded as IF statements. This is the reason the new Kernel-BADIu2019s are much faster than classic-BADIu2019s.
Some of the other new features of Kernel-BADIu2019s are,
u2022 Improved Filters with complex filter condition editor
u2022 Stateful BADI support and Context based lifetime control
u2022 Possibility to inherit the implementations
u2022 Switchable using Switch Framework 9
Hope its useful.
Reward points if useful.
Thanks ,
Surya Pydikondala -
Hi Experts,
I want to check for duplicate entries in tcode BP in CRM2007. I searched forums and most links specify bupa_addr_check. I created an implementation for this BADI and I am not able to access it. The implementation is active.
I put an external breakpoint in class cl_exithandler in the method get_instance to know the badis/exits being called. Badi bupa_addr_check is not called.
Is there some other way that I have to activate this badi?
Regards,
Abdullah IsmailHi Abdullah,
There may some other active BADI implementation for bupa_addr_check.
So just go to se84 -> Enhancements -> Business Add-ins -> Implementation -> give bupa_addr_check in Definition Name.
You will get all the implementation for that BADI.
Now go to se19 and Deactivete all the other implementations.
Then again active your implementation.
Then it should work.
I hope this will help you.
Reward points, if useful.
Regards,
Nitin. -
Pass PO Number from MIRO to BADI
Hi Experts,
I have activated BADI 'Invoice_update'. Im checking some condition in the 'CHANGE_AT_SAVE' method.
This BADI is activated when 'SAVE' is clicked in MIRO
I have to pass the 'PO Number' ie EBELN entered in MIRO, to BADI code to pass a query in BADI.
How can I pass the PO number to BADI.
Please Suggest?
Rajiv RanjanHi Rajiv,
You will be able to find EBELN field, if you drill down the import parameter TI_RSEG_NEW (Invoice Document Item: New).
If the BAdI is triggered during SAVE, meaning if there is any active implementation for this BAdI, then you will get this EBELN inside the method; you dont need to pass it. You can use the value TI_RSEG_NEW-EBELN in the program.
if you debug the BAdI, you can ensure this.
Hope this helps.
Sajan Joseph. -
Hi Friends,
Could any one you please let me know the purpose of Multiple-Use Atrribute in BADI.
Awaiting for a qick response.
Thanks in Advance
Regards
TinaHi,
check this sap Help..
Multiple Usability for BADI Definitions
Multiple use for BADI definitions means that there can be several active BADI implementations. When there is a call, they are all called up - however, in an unpredictable sequence.
If you have multiple-use BADI definitions, the sequence must not play any role therefore. A typical example is the execution of checks before a save.
Regards
vijay -
Hi ABAP Gurus,
Can someone brief a scenario in which multiple use BADI was used or will be helpful.
Thanks,
SooryaHello Soorya
Example of multiple-used BAdIs (ca. 850 in ECC 5.0) are:
- BADI_MATERIAL_CHECK (Enhanced checks for material master table)
- BADI_SD_BILLING (Billing Enhancements)
- BUPA_PCARD_CHECK (Additional Checks for Payment Cards)
Many, if not most, of these BAdIs are used for checking or validating data. The active implementations of such a BAdI must be independent meaning they must not rely on a specific calling order (see SAP documentation below).
<b>Multiple Usability for BADI Definitions</b>
Definition
Multiple use for BADI definitions means that there can be several
active BADI implementations. When there is a call, they are all called
up - however, in an unpredictable sequence.
If you have multiple-use BADI definitions, the sequence must not play
any role therefore. A typical example is the execution of checks before
a save.
Regards
Uwe -
Implement BADI MRM_MRKO_HDAT_MODIFY
Hi,
While trying to make a consignment settlement (Transaction MRKO) I get the message "For document type RE, an entry is required in field Reference".
Based on my analysis I would have to implement the BADI MRM_MRKO_HDAT_MODIFY to solve this problem.
Could you please guide me through how could the badi be implemented and what code I must put in this implementation? I must not make any changes to the customization.
Regards,
KHello Keethu
Within report RMVKON00 (tcode MRKO) the routine BADI_HEADERDATA_MODIFY triggers the BAdI:
*& Form BADI_HEADERDATA_MODIFY
* in this BAdI the vendor and the invoice type can be changed
FORM badi_headerdata_modify TABLES it_rkwa TYPE typ_tab_rkwa
USING i_bukrs LIKE bkpf-bukrs
CHANGING x_blart LIKE t169f-blart
x_lifnr LIKE rkwa-lifnr
x_fehler TYPE c
s_msg TYPE typ_msg.
CALL FUNCTION 'MRMBADI_MRKO_HDAT_MODIFY'
EXPORTING
i_bukrs = i_bukrs
i_lifnr = x_lifnr
i_blart = x_blart
ti_rkwa = it_rkwa[]
IMPORTING
e_lifnr = x_lifnr
e_blart = x_blart
EXCEPTIONS
badi_error = 01.
The signature of this function module (which call an active BAdI implementation) you can see already how the single method of this BAdI works:
- based on your input (company code, vendor, document type and Consignment Withdrawals) you may change either the vendor, the document type or both.
Based on the functional requirements you can easily implement the logic for the BAdI method.
Regards
Uwe
Maybe you are looking for
-
Hi, I am not clear about NEW CELL and NEW LINE in The Main window -> Table -> Footer -> Output options -> Output Table. Could any one help in explaining exactly what is the purpose of it. Thanks Ram
-
In which table production order planned cost and actual cost i can see?
Dear PP Guru,s, from which table i can see productuion order planned and actaul cost. i checked following tables AUFK, AFVC, AFVV, CAUFV, AFRU, AFKO, AFPO. but i did not found planned cost and actual cost field. is there any other way to get this dat
-
If the space of the windows storage space server is full, is it possible to setup another windows storage space server and combine the new one to original storage pool?
-
I look up order number but nothing coming up!!
I looked up the order number, checked out as a guest, {removed per forum guidelines}, email is {removed per forum guidelines}. I did not recieve confirmation nor do i know the status of this order number.
-
Heeeelllppp!!!!
Hellooo, ive got the iphone 4 and come across a problem, ive set up an email account (hotmail) i started recieving the emails, then after a while i noticed i wernt recieving any sms messages....hmm....i tinkered about for a bit and ended up disabling