What is badi&bapi  whats the use for both

plz send me reply

Hi Rajyalakshmi,
<b>BADI</b>
Business add-ins are enhancements to the standard version of the system.
Business Add-In is a new SAP enhancement technique based on ABAP Objects.
They can be inserted into the SAP system based on specific user requirements.
Each Business Add-In has:
• at least one Business Add-In definition
• a Business Add-In interface
• a Business Add-In class that implements the interface
In order to enhance a program, a Business Add-In must first be defined
Subsequently two classes are automatically generated:
• An interface with ‘IF_EX_’ inserted between the first and second characters of the BADI name.
• An adapter class with ‘CL_EX_’ inserted between the first and second characters of the BADI name.
The Application developer creates an interface for this Add-In.
There are multiple ways of searching for BADI.
• Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
• Finding BADI Using SQL Trace (TCODE-ST05).
• Finding BADI Using Repository Information System (TCODE- SE84).
1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
Make sure the radio button “In main program” is checked. A list of all the programs with call to the BADI’s will be listed.
The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter ‘INSTANCE’ will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
2. Start transaction ST05 (Performance Analysis).
Set flag field "Buffer trace"
Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
Push the button "Deactivate Trace".
Push the button "Display Trace".
The popup screen "Set Restrictions for Displaying Trace" appears.
Now, filter the trace on Objects:
• V_EXT_IMP
• V_EXT_ACT
Push button "Multiple selections" button behind field Objects
Fill: V_EXT_IMP and V_EXT_ACT
All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
3. Go to “Maintain Transaction” (TCODE- SE93).
Enter the Transaction VD02 for which you want to find BADI.
Click on the Display push buttons.
Get the Package Name. (Package VS in this case)
Go to TCode: SE84->Enhancements->Business Add-inns->Definition
Enter the Package Name and Execute.
Here you get a list of all the Enhancement BADI’s for the given package MB.
Have a look at http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
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
<b>BAPI</b>
BAPI stands for Business API(Application Program Interface).
I have answered this question before..
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
Example Code
U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.
*& Form saveTransactionJOCR
text
--> p1 text
<-- p2 text
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.
salesdocument = wa_order_information-VBELN.
LOGIC_SWITCH-COND_HANDL = 'X'.
order_header_inx-updateflag = 'U'.
conditions
clear conditions_in[].
clear conditions_inx[].
clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.
CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.
append conditions_in.
CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.
append conditions_inx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
if return-type ne 'E'.
commit work and wait.
endif.
ENDFORM. " saveTransactionJOCR
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
BAPI Links :
http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
http://www.sap-img.com/fu033.htm
http://www.sap-img.com/abap/ale-bapi.htm
Re: bapi
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
Hope this resolves your query.
Reward all the helpful answers.
Regards

Similar Messages

  • What is the use for CREATING VIEW WITH CHECK OPTION?

    Dear Legends,
    I have a doubt
    What is the use for creating view?
    A: First Data Integrity, Selecting Particular Columns..
    What is the use for creating a view with check option?
    A: As per oracle manual I read that its a referential integrity check through views.
    A: Enforcing constraints at DB level.
    A: using CHECK OPTION we can do INSERTS UPDATES for a view for those columns who have no constraints... is it right??
    A: If we do a INSERT OR UPDATE for columns who have constraints it will show error... is it right???
    Please clear my doubt's Legends
    Lots of Thanks....
    Regards,
    Karthik

    Hi, Karthick,
    karthiksingh_dba wrote:
    ... What is the use for creating view?
    A: First Data Integrity, Selecting Particular Columns..Most views are created and used for convenience. A view is a saved query. If the same operations are often done, then it can be very convenient to code those operations once, in a view, and refer to the view rather than explicitly doing those operations.
    Sometimes, views are created and used for security reasons. For example, you many want to allow some users to see only certain rows or certain columns of a table.
    Views are necessary for INSTEAD OF triggers.
    What is the use for creating a view with check option?
    A: As per oracle manual I read that its a referential integrity check through views.The reason is integrity, not necessarily referential integrity. The CHECK option applies only when DML is done through the view. It prohibits certain changes. For example, if a user can't see certain rows through a view, the CHECK option keeps the user from creating such rows.
    A: Enforcing constraints at DB level.I'm not sure what you mean. Please give an example.
    A: using CHECK OPTION we can do INSERTS UPDATES for a view for those columns who have no constraints... is it right??No. Using CHECK OPTION, you can do some inserts and updates, but not others. The columns involved may or may not have constraints in either case.
    A: If we do a INSERT OR UPDATE for columns who have constraints it will show error... is it right???If you try to violate a constraint, you'll get an error. That happens in views with or without the CHECK OPTION, and also in tables.

  • Package question - what are the uses for  /var/sadm/pkg ?

    I'm writing packages and noticed once a packages is installed using pkgadd, that files and dirs are created in the /var/sadm/pkg directory. I'm specificly intereseted in the pkginfo file - it contains all the variables from my request script and their values. My question is what are all the uses for this file?
    I've noticed that pkginfo reads from it but would there be any problem deleting certain lines from that file (lines not used by pkginfo - just variables used in the request script that I'd really rather not have floating around in a publicly accessable file).
    thanks!
    Bob

    I'm refering specificly to the file "/var/sadm/pkg/<pkgName>/pkginfo" - it's created during pkgadd and contains all the variable-value pairs from the packages pkginfo file as well as any variables used in the request script and copied to it's temporary response file. I'm not refering to the pkginfo file that you create as a package infofile component.
    I want to remove, from the /var/sadm/pkg/<pkgName>/pkginfo file, certain var-value pairs that were used in my request scripts (not part of the InfoFile/pkginfo component). Otherwise, any user can look at this file or run 'pkgparam <pkgName>' and get that sensative info.
    To the best of my knowledge, this file is only used by the commands pkgparam and pkginfo. Are there other uses?
    My worries are:
    -is it OK to remove lines manually during the postinstall script?
    -will doing this cause problems with any admin or package maintenance functions?
    Thanks-
    Bob

  • What web service & xml will be used for deleting the packged epub/pdf file from Admin Console

    What web service & xml will be used for deleting the packged epub/pdf file from Admin Console?
    I am able to delete the files from Admin console directy but not able to get which web service is calling on deleting the file from admin console:
    Mangal

    Hi Jim,
    I tired following web service and xml to delete the packaged ebook but it is giving me error instead of response:
    Web Service & XML
    http://myserver_url/admin/ManageResourceKey
    <request action="delete" auth="builtin" xmlns="http://ns.adobe.com/adept">
    <nonce>" . $nonce . "</nonce>
    <expiration>'. $expiration .'</expiration>
    <resourceKey>
    <resource>resource_id</resource>
    <resourceItem>1</resourceItem>
    </resourceKey>
    </request>
    Error Message
    <error xmlns="http://ns.adobe.com/adept"
    data="E_ADEPT_DATABASE http://myserver_url/admin/ManageResourceKey
    Cannot%20delete%20or%20update%20a%20parent%20row:%20a%20foreign%20key%20constraint%20fails %20(`adept`.`distributionrights`,%20CONSTRAINT%20`distributionrights_ibfk_2`%20FOREIGN%20K EY%20(`resourceid`)%20REFERENCES%20`resourcekey`%20(`resourceid`))"/>
    Magal Varshney

  • What is the Use For Top 3 Contributors

    Hi All,
    What is the Use For Top 3 Contributors in the Forums
    REgards
    Vamsi

    Hi,
    I think it is purely for information purposes. I do not think anything is actually done with the information as claimed by other posts.
    (Although some sort of recoginition in the form of a statue does seem a good idea and would encourage more posting if there was something to aim for)
    Kind regards
    Colin.

  • What brands and type can I use for my iMac 20" internal Hard Drive?

    what brands and type can I use for my iMac 20" aluminium internal Hard Drive?
    can I use WD caviar black?
    is it too hot?

    If you are replacing the drive because the existing one is faulty, that's one thing. If you just want more space, you should take advantage of having a decently fast and relatively small capacity drive in there now (instead of a huge drive). Get an external FireWire drive and off-load most of your user data there. Make your internal drive dedicated to mostly your OS and app files, with plenty of free space. That setup will make your iMac run more efficiently. I won't go into more detail, because I'm not answered your specific question... You can post back with any questions, if interested...
    To answer your questions...
    You should be able to use any SATA 3.5-inch drive internally, but you should probably keep it at or under 1TB. The main concerns are power usage and heat dissipation. A drive like the WD Caviar Green would be ideal in terms of power and heat, but they do have slower (or variable) spin rate. I have one as an external drive (750GB) and it is amazingly quiet and cool. If I had to replace the internal drive because the current drive failed, I'd put it inside. I'll trade a bit of pure performance for the efficiency (including low noise), and these drives are more advanced with higher data density and larger cache, so the trade-off from slower spin rate may not be so bad.
    You can check your current drive's model number (which is shown in System Profiler) to get the specs online. The stock drive in my old +Late 2006+ iMac is a 7200 RPM drive. The Caviar Black is a 7200 RPM drive, with a newer design. So if you want to use a Caviar Black in there, I think it would be OK.

  • What does "into corresponding field" addition used for?

    What does "into corresponding field" addition used for?. I have seen them in open sql statements. Please explain?

    before knowing this you have to know how u write select in ABAP....
    think you have a str./internal table itab with this strucutre:
    data: begin of itab occurs 0,
             vbeln like vbak-vbeln,
             posnr like vbap-posnr,
             netwrt like vbap-netwrt,
           end of itab.
    u have to follow the same order in the select statement...
    select vbeln posnr netwrt
    from vbap
    into table itab
    where......
    Think that u had some concern and coudnt write a select in same order then u write it like this...
    Performance wise its very bad...so ppl generally try to eliminate it..
    select  netwrt posnr vbeln 
    from vbap
    into corresponding field of table itab
    where......
    Award points if helpful

  • What adapter do I need to use for charging my iPad in Greece?

    what adapter do I need to use for charging my iPad in Greece?

    The iPad charger can be used in any country.
    it's rated 100V to 240V 50/60 Hz
    You only need a plug adapter to suit the wall socket.

  • What setting or codec do I use for Capturing HDV 1080i HDV

    What setting or codec do I use for Capturing HDV 1080i HDV

    Not enough information. The settings you use depends on exactly what format you shot and what device you're using to capture.

  • For what version of JDeveloper are the viewlets for?

    At the following URL: http://technet.oracle.com/products/jdev/viewlets/viewlet.html
    there are viewlets on JDeveloper. Can anybody tell me what version of JDeveloper (ie, where it doesn't say updated for 9.0.3) these viewlets are written for? I have version 9.0.3 on my machine and what is shown in viewlets (I have gone thru the first two viewlets only) is significantly different from what I see using 9.0.3?

    They are a mix of 9.0.3 and 9.0.2 although the concepts should work the same for both.
    those with 9.0.3 say so in red.

  • HT1338 What anti-virus software shall I use for my Mac OS X 10.6.8?

    What anti-virus software shall I use for my Mac OS X 10.6.8?

    There are many forms of ‘Malware’ that can affect a computer system, of which ‘a virus’ is but one type, ‘trojans’ another. Using the strict definition of a computer virus, no viruses that can attack OS X have so far been detected 'in the wild', i.e. in anything other than laboratory conditions. The same is not true of other forms of malware, such as Trojans. Whilst it is a fairly safe bet that your Mac will NOT be infected by a virus, it may have other security-related problem, but more likely a technical problem unrelated to any malware threat.
    You may find this User Tip on Viruses, Trojan Detection and Removal, as well as general Internet Security and Privacy, useful: The User Tip seeks to offer guidance on the main security threats and how to avoid them.
    https://discussions.apple.com/docs/DOC-2435

  • What Monitor or Speaker do you use for Mastering?

    Hi,
    As a home studio owner, what Monitor or Speaker do you use for Mastering?

    Unless you have acoustically correct room, you will always have problems with low bass. That's why you need a pair of headphones that can produce sounds from 5Hz to 25kHz. I have BeyerDynamic DT770's but there are lot of others good quality headphones when you use that Hz criteria.
    I use Genelec 8040's which have enough dip switch settings to match it to the room. They are also quite small (metal enclosure walls are only couple mm thick) and since all the walls are round there are no resonances or standing waves inside the box. That means they will sound accurate even at louder mixing volumes.
    Btw the reason NS10 were used years back, was that they mimicked the average crappy home speakers, but still had tightly aligned sound. My old studio manager blamed all the terrible 1980's records on them, which you can hear if you compare them to today's remastered versions.

  • What kind of analysis should i use for these signals?

    i'm developing a lie detection system,i have one respiratory sensor and a hand grip heart rate monitor to acuire the physiological signals from the sensors.i have attached a screenshot of the application.the top signal represents the heart beat and bottom one is respiratory signals.my question is that what analysis mwthods should i be using for these signal types?would you please care to help me on this? thank you.

    Thanks for your replies to this topic.  I just discovered the worm gear option yesterday while talking to a professor.  I think that is the route we are going to take because the DC motor won't be as expensive as a high-torque stepper or servo.  Also, I have three engineers that will be calculating the motor size based on gear reduction, spool size, cable length, and the load that we have to lift (which is about 120 lbs.).  If any of you would like to suggest a motor size, that would be great too.  I'm thinking something around 1HP should probably do it.  My goal is to stay cost-effective while making an easy apparatus.  I know that the worm gears may also be inefficient at times but it seems like the best solution for this application.  Not to mention it's not to hard for our mechanical engineers here to make the spool and bearings.  And I believe you can buy a DC motor that interfaces directly with a worm gear.  However, a follow up question is what computer hardware do I need to control the voltage of the motor so I have speed control?  Is this done through an RS232 board?  My output from the LabVIEW program will be voltages, from which device is that binary signal converted into physical voltage?  Thanks for your help so far.

  • What should I do if the encryption for FileVault has paused and won't restart?

    What should I do if the encryption for FileVault has paused and won't restart?

    If you don't already have a current backup of all data, back up before proceeding. There are ways to back up a computer that isn't fully functional. Ask if you need guidance.
    Start up in Recovery mode. When the OS X Utilities screen appears, select Disk Utility.
    In the Disk Utility window, select the icon of the startup volume from the list on the left. It will be nested below another disk icon, usually with the same name. Click the Unlock button in the toolbar. When prompted, enter the login password of a user authorized to unlock the volume, or the alternate decryption key that was generated when you activated FileVault.
    Then, from the menu bar, select
              File ▹ Turn Off Encryption
    Enter the password again.
    You can then restart as usual, if the system is working. Decryption will be completed in the background. It may take several hours, and during that time performance will be reduced.
    If you can't turn off encryption in Disk Utility because the menu item is grayed out, you'll have to erase the volume and then restore the data from a backup. Select the Erase tab, and then select
              Mac OS Extended (Journaled)
    from the Format menu.
    You can then quit to be returned to the main Recovery screen. Follow these instructions if you back up with Time Machine. If you use other backup software, follow its developer's instructions.
    Don't erase the volume unless you have at least two complete, independent backups. One is not enough to be safe.

  • What settings do I need to use for an indoor basketball game?

    What settings do I need to use for an indoor basketball game?

    Sit as close to the game as you can possibly be.  If you can sit on the ground on the sideline, do that.  If you are closer, you can use a shorter mm lens setting, so you can use a less expensive and/or wider aperture lens.  It can also mean a less-fast shutter to counter camera shake (though subject movement will still be an issue).  It will also mean you can crop the photo less, which improves IQ too.  It may also mean you can avoid the ugly part (the longest part) of a lens like the 70-300mm, and use the sweet spot instead.
    Scott
    Canon 6D, Canon T3i, EF 70-200mm L f/2.8 IS mk2; EF 24-105 f/4 L; EF-S 17-55mm f/2.8 IS; EF 85mm f/1.8; Sigma 35mm f/1.4 "Art"; EF 1.4x extender mk. 3; 3x Phottix Mitros+ speedlites
    Why do so many people say "fer-tographer"? Do they take "fertographs"?

Maybe you are looking for

  • I have install ios 7.0 but do not compertable me i have instroll 6.1.4?

    do you want to instroll older version of 6.1.4 or 6.1.3

  • Help Required - Urgent

    I am submitting a concurrent program and inside that there is a for loop and in this loop a oracle standard API is called which i can not touch. This API submits multiple concurrent requests for a particular report with in a for loop so for a single

  • Which category should I put my podcast in?

    I have a podcast that reviews podcasts. I have no idea where this podcast fits in relation to other ones, or whick category. Any ideas?

  • Is there a "Show all" option?

    Post Author: ayla1209 CA Forum: General I have a subreport that all the sections are suppressed (it has a variable that i'm passing to the main report, so I can't just supress the section with the report) - Is there an easy way to un-suppress all the

  • How to obtain username and date of users who executed a stored procedure

    Hi, I am modifying a stored procedure called storedprocedure_A. Within the storedprocedure_A, I want to obtain the date and username that is executing the storedprocedure_A. The date, I can obtain from sysdate. But I do not know which data dictionary