Func modules vs. BAPIs; What is a BADI? When do we use it?

Hi experts,
I have some ABAP questions and need your help to answer them.
1. What is the difference between a func. module and a BAPI?
2. What is a BADI and in which circumtanse we use it? How can I view a BADI example?
3. What is a WorkFlow and in which circumtanse we use it? How can I view an WorkFlow example?
Many many thanks,
Ron

1.
All BAPIs are function modules, but they have been enhanced by using object oriented design. BAPIs are designed based around Business objects (in the business object repository SWO1/SWO2). They are created to fill a business need and are a good way of exposing SAP functionality to third party systems. They can be viewed through transaction BAPI. BAPIs are also generally all RFC enabled, whereas not all function modules are.
Function modules are developed to perform a particular function, some of which is very specific to the program which calls it. A lot of the standard SAP function modules are only really meant to be used by SAP, hence the complete lack of documentation or intuitiveness.
check this link too.
Re: Diff. Between BAPI and RFC
2.
Difference Between BADI and User Exits
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 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-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, partner, and customer solutions, as well 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.
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.
SE18 - BADI definition
SE19 - BADI implementation
3. check the page for workflow links
http://www.sapgenie.com/phpLinks/index.php?PHPSESSID=45016ad4a8b3e6005f53a04a83b79782&PID=62&PHPSESSID=45016ad4a8b3e6005f53a04a83b79782
Thanks,

Similar Messages

  • What to Look For when Buying a Used Storm to activate on Verizon Pre-Pay

    Hi, I am looking to buy a Storm 9550 refurbished for use on Verizon Pre-Pay and am just wondering what all I need to look for.
    Would something like this work:
    http://www.ebay.com/itm/Great-BlackBerry-Storm2-9550-2GB-Black-Verizon-Smartphone-WIFI-GSM-Phone-/181217767463?pt=Cell_Phones&hash=item2a316bb027
    Or is it more complicated than just finding a Verizon-branded phone?

    The lugs that hold the base onto the phone are not strong enough and the base often needs to be replaced. Give the base (the bit with the button on it) a tug to see whether it's broken.

  • PERFORMANCE BAD WHEN CURSORS ARE USED WITHIN PL/SQL BLOCKS

    There are poor database performance at Oracle 10g
    For some cursor selects, the performance is under Oracle 10g
    significant slower than under Oracle 9i.On a test system (Oracle 9) the
    problem does not reproduce, on the 10g system however always.
    The simple execution of the base select statement was on both
    databases in roughly of the same speed. If however a cursor was defined and
    those executed within a PL/SQL block (without involving the user interface),
    then the time behavior was in accordance with the observed behavior
    behavior on the user interface.
    By adding of the hint first_rows on both machines a
    similar (fast) time behavior can be achieved.
    Conclusion: Something in the (Optimizer) settings of the Oracle-10
    databases must be fundamentally different than that of Oracle 9. Or Oracle
    10 has a real problem. The analysis and solution of this general
    problem seems to me more reasonable than the solution of individual performance
    problems.
    can you help me, many thanks

    Hello, thanks for the explanatory notes.
    Here are the concerned Script. The only difference is the Hint (with Hint = good püerformance; without Hint = bad performance)
    DECLARE
    b BOOLEAN;
    BEGIN
    b := plogin.batch_login('**', '****', 717, FALSE);
    prost.reload_context;
    END;
    DECLARE
    l_ma_kuerzel VARCHAR2(100) DEFAULT NULL;
    l_sta_id mitarbeiter_historie.sta_id%TYPE;
    l_org_id organisationseinheit.org_id%TYPE;
    l_pv_like mitarbeiter.ma_name%TYPE;
    l_typ_id typ.typ_id%TYPE;
    l_mihi_beginn VARCHAR2(40);
    l_ma_ausgeschieden VARCHAR2(40);
    l_ma_ldap mitarbeiter.ma_ldap%TYPE;
    l_smodify_form VARCHAR2(80);
    l_sform_typ VARCHAR2(80);
    l_sheader VARCHAR2(200);
    l_nurlsource NUMBER;
    l_nurldestination prosturl.pur_id%type;
    l_ma_like VARCHAR2(100) DEFAULT NULL;
    l_nma_typ NUMBER;
    l_bshow BOOLEAN;
    l_counter NUMBER DEFAULT 0;
    cursor ma_list_not_all_detail(
    p_ma_like IN VARCHAR2 DEFAULT NULL,
    p_ma_kuerzel IN VARCHAR2 DEFAULT NULL,
    p_sta_id IN VARCHAR2 DEFAULT NULL,
    p_org_id IN VARCHAR2 DEFAULT NULL,
    p_typ_id IN VARCHAR2 DEFAULT NULL,
    p_mihi_beginn IN VARCHAR2 DEFAULT NULL,
    p_pv_like IN VARCHAR2 DEFAULT NULL,
    p_ma_ausgeschieden IN VARCHAR2 DEFAULT NULL,
    p_ma_ldap IN VARCHAR2 DEFAULT NULL
    ) IS
    SELECT /*+ first_rows */
    ma.ma_id ma_id
    , view_fkt.display_ma(mihi.typ_id_mt
    , view_fkt.cat_maname(ma.ma_name
    , ma.ma_zusatz
    , ma.ma_titel
    , ma.ma_vorname)) name
    , view_fkt.display_ma(mihi.typ_id_mt,ma.ma_kuerzel) ma_kuerzel
    , typ.typ_value mt_kuerzel
    , substr(org.typ_id,4,length(org.typ_id)) || ' ' || org.org_name||' ('||org.org_ktr||')' org_name
    , to_char(mihi.mihi_beginn, 'dd.mm.yyyy') beginn
    , decode(pv.ma_name ||' '|| pv.ma_titel ||' '|| pv.ma_vorname
    , ' ',prost_cons.t_blank
    , pv.ma_name||', '||pv.ma_titel||' '||pv.ma_vorname) pv_kuerzel
    , mihi.sta_id sta_id
    , nvl(to_char(ma.ma_ausgeschieden,'dd.mm.yyyy'), ' ') ausgeschieden
    , nvl(to_char(mihi.mihi_wochenarbeitszeit,'90D00'),' ') wochenarbeitszeit
    , nvl(to_char(mihi.mihi_taz_mo,'90D00'),' ') taz_mo
    , nvl(to_char(mihi.mihi_taz_di,'90D00'),' ') taz_di
    , nvl(to_char(mihi.mihi_taz_mi,'90D00'),' ') taz_mi
    , nvl(to_char(mihi.mihi_taz_do,'90D00'),' ') taz_do
    , nvl(to_char(mihi.mihi_taz_fr,'90D00'),' ') taz_fr
    , nvl(to_char(mihi.mihi_taz_sa,'90D00'),' ') taz_sa
    , nvl(to_char(mihi.mihi_taz_so,'90D00'),' ') taz_so
    , nvl(ma.ma_ldap, ' ') ma_ldap
    , mihi.mihi_beginn mihi_beginn
    , mihi.mihi_order_no mihi_order_no
    , mihi.mihi_order_pos mihi_order_pos
    FROM organisationseinheit org
    , typ typ
    , mitarbeiter pv
    , mitarbeiter ma
    , v$mihi_id mid
    , mitarbeiter_historie mihi
    , v$access_orgs_th_t th
    WHERE mihi.org_id = th.org_id
    AND mid.mihi_id = mihi.mihi_id
    AND ma.ma_id = mid.ma_id
    AND ma.ma_delete = 'n'
    AND ma.ma_virtualitaet = 'N'
    AND (p_ma_like IS NULL
    OR ma.ma_name LIKE p_ma_like)
    AND (p_ma_kuerzel IS NULL
    OR ma.ma_kuerzel LIKE p_ma_kuerzel)
    AND (p_sta_id IS NULL
    OR mihi.sta_id = p_sta_id)
    AND (p_org_id IS NULL
    OR org.org_id = p_org_id)
    AND (p_typ_id IS NULL
    OR typ.typ_id = p_typ_id)
    AND mihi_beginn >= nvl(p_mihi_beginn,to_date('01.01.1960','dd.mm.yyyy'))
    AND (p_pv_like IS NULL
    OR pv.ma_name LIKE p_pv_like)
    AND (ma.ma_ausgeschieden >= nvl(p_ma_ausgeschieden,to_date('01.01.1960','dd.mm.yyyy'))
    AND ma.ma_ausgeschieden - 1 < nvl(p_ma_ausgeschieden,to_date('01.01.1960','dd.mm.yyyy'))
    OR p_ma_ausgeschieden IS NULL)
    AND (p_ma_ldap IS NULL
    OR ma.ma_ldap LIKE p_ma_ldap)
    AND pv.ma_id (+)= mihi.ma_id_pv
    AND org.org_id (+)= mihi.org_id
    AND typ.typ_id = mihi.typ_id_mt
    ORDER BY upper(ma.ma_name), upper(ma.ma_vorname);
    l_result ma_list_not_all_detail%ROWTYPE;
    BEGIN
    l_nMA_Typ := pmitarbeiter.cn_Incomplete_Ma;
    l_ma_like := NULL;
    l_ma_kuerzel := NULL;
    l_sta_id := NULL;
    l_org_id := 'KST0000421301';
    l_typ_id := NULL;
    l_mihi_beginn := NULL;
    l_pv_like := NULL;
    l_ma_ausgeschieden := NULL;
    l_ma_ldap := NULL;
    IF (l_ma_like IS NOT NULL
    OR l_ma_kuerzel IS NOT NULL
    OR l_sta_id IS NOT NULL
    OR l_org_id IS NOT NULL
    OR l_typ_id IS NOT NULL
    OR l_mihi_beginn IS NOT NULL
    OR l_pv_like IS NOT NULL
    OR l_ma_ausgeschieden IS NOT NULL
    OR l_ma_ldap IS NOT NULL) THEN
    -- fuer Mitarbeiter unvollstandig wird ein andere cursor angesprochen
    -- um der Mitarbeiter vollstandig zu kriegen soll ein Standort,
    -- Arbeitszeitmodel, Bereich und Tagesarbeitszeiten ausgevult wirden
    -- Wenn er dan gespeichert wirdt wirden die betriffende velder gespeichert
    -- und wirdt das Feld Virtualiteat auf R gesetzt (war N)
    l_counter := 0;
    dbms_output.put_line(to_char(sysdate, 'sssss'));
    FOR j IN ma_List_Not_All_Detail(
    l_ma_like,
    l_ma_kuerzel,
    l_sta_id,
    l_org_id,
    l_typ_id,
    l_mihi_beginn,
    l_pv_like,
    l_ma_ausgeschieden,
    l_ma_ldap
    ) LOOP
    l_counter := l_counter + 1;
    dbms_output.put_line(l_counter);
    dbms_output.put_line(j.ma_kuerzel);
    END LOOP;
    dbms_output.put_line(to_char(sysdate, 'sssss'));
    END IF;
    return;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line(sqlerrm);
    END;
    =============
    Thank you

  • What is the diffrent when i am using an iphone 6 that may had made in china/mexico/hongkong and when i an using an iphone wich had made in usa??

    I Am worried about that my iphone have poor quallity and also bad for my health.because the IMEI says it had maden in china/mexico/HONGKONG(its 7,8th digits are 06)..help please.

    Do not worry. It is the same quality as phones made in other locations.

  • What can I do when I can use the the back button, bookmarks, and it does not remember my history of sites?

    My disk on my computer said there was no more space. It wanted me to force quit what I was using. When I did that, firefox lost all my history in sites and bookmarks. I can't make bookmarks when I press the star. It won't let me. It won't save my history of any site. I tried reinstalling firefox on my computer but it did not work. The back and forward buttons do not work, so i have to re-type the site of use another tap. I basically can't customize cause these buttons and things do not work.

    If there is no space please free up some space, free space especiall over to c drice (System drive) is really necessary not only for firefox but for each and every program, for instance if I am right your computer must be running slow right now.
    Once you have free up some space I would also recommended you to basically check "Is your antivirus is uptodate ???" if it's not please update it.
    If problem persist I would recommended downloading a fresh latest version of firefox from www.mozilla.org
    Hope it would solve your Problem
    Prince SOni

  • What to look for when buying a used N8?

    I am buying a used N8, so I want to know if there is something specific to look for or just general things?

    The lugs that hold the base onto the phone are not strong enough and the base often needs to be replaced. Give the base (the bit with the button on it) a tug to see whether it's broken.

  • What to look for when buying a used MacBook Pro? Tips

    Here to acquire a few tips on purchasing a used Macbook Pro. I am not graced with an Apple Store in my area, so I must rely on my own sub par geek wit and with the help of yours.
    Tips I know.
    Checking Battery Cycles and mAh capacity.
    Looking for third party applications.
    Request the original StartUp/Install Disks.
    Checking memory ratios...

    Shop your local and nearby Craigslist websites, starting with:
    http://tampa.craigslist.org/
    Read this excellent post by frequent contributor JasonFear about buying and selling through Craigslist:
    http://discussions.apple.com/click.jspa?searchID=-1&messageID=9958349
    Avoid Ebay.
    If third-party applications or other software are included, they add nothing at all to the value of the machine unless you are given the original installer discs for them. Otherwise, they are just pirated software that you can't reinstall if you ever need to.
    Message was edited by: eww

  • What is ANT application when I am using J2EE?

    Hi all,
    I am planning to install J2EE, in the installation, it is asking me to set the ANT_HOME home too.
    Is the ANT_HOME a separate installation or it is a part of J2EE 1.3?
    Could you please help me
    thanks
    Yahya

    Hi,
    Ant is a Jakarta product that allow you to easily install both your J2EE server building it from source, and the J2EE applications examples.
    Ant provides a platform indipendent way to create executable files using XML language.
    Ant is not part of the J2EE platform, and you don't need to install it if you are able to do the steps above by yourself.
    If you want to learn more about Ant you can visit this url:
    http://jakarta.apache.org/ant/index.html
    Bye

  • What can you do when you have used 5 out of your 5 computers for iTunes?

    Dell Latitude D600   Windows XP  

    I don't actually know which computers I've authorized - is there any way to see this information in account info? I suspect they were mostly all computers that have since crashed and were replaced.
    Alternatively, I'd like to deauthorize all, but I'm worried that this may make me lose all the files I've downloaded onto my main computer. Does deauthorizing all computers (including the main one) affect the files at all, or just the ability to play them? Do I need to backup before I deauthorize all?
    Thanks in advance. Didn't want to go ahead and deauthorize all without some assurance that I would lose all my files somehow.

  • What does it mean when it says 'use this credit card for outstanding balance of.....'?

    hello. i got a gift card for itunes and it wouldnt let me use it. its on my account but i cant buy anything. everytime i try it takes me to my billing and i have a credit card on the info but i dont use it anymore and i dont know how to take it off. also its telling me that i have and outstanding balance of $39.06 and i had a limit on my credit card and i only use that or a gift card so i dont understand how i owe that much. can you please help me with this problem?
    thank you!
    Brittani Kinchen

    The problem is that iTunes allowes you to spend a certain amount on Gift cards/prepaid cards even if there is only $1 balance left on the card. It doesn't chack to see how much money you have left on the card, only that it can pre authorize for $1 only. Purchases of about $37 or less aren't charged right away at purchase allowing these negative balances.

  • What does it mean when your computer says that someone is using your IP address

    What does it mean when someone is using your IP address and what should i do...

    Expanding on Bob's explanation, be sure you haven't set a manual IP address, thus being the culprit for this problem. In System Preferences / Network / Advanced... / TCP/IP section, Configure IPv4 should be set to Using DHCP. If that is not the case, then some network miscreant has purloined the IP address your Mac was using.
    First try clicking on the Renew  DHCP Lease and see if the DHCP server figures it out and assigns a different address. Else, try disconnecting from the network (if on Wi-Fi, turn Wi-Fi off in the previous window, if cabled disconnect the patchcord), wait a little while and reconnect. Then hopefully the DHCP server will realize the address was purloined and assign a different one.

  • What is the difference between the normal function module and bapi function

    hi,
    what is the difference between the normal function module and bapi function module.

    Hi
    BAPI stands for Business API(Application Program Interface).
    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.
    Regards
    Anji

  • What  Function Module or BAPI

    Hi,
    report create for Sale order activity.this report using for mvt type based . i am using for mseg table.
    data all used for select query. but slow the process. i have effected the report output. any function module or BAPI using.
    plz,Advise Me.
    by,
    jeevan.

    Hi Jeevan,
    Try to use BAPI_GOODSMVT_GETITEMS BAPI Function module.
    Cheers,
    Daniel

  • Comp characteristics extraction - Func Modules

    All,
    There are 2 function modules to get characteristics info:
    1. CUAB_DISPLAY_CD_CONFIGURATION
    2. CUD0_GET_VAL_FROM_INSTANCE
    Both work off the CUOBJ value that is derived either from the RESB table for the Prod Order (component config information extraction) or from the Purchase Order table EKPO.
    Question is what is the diff b/w the 2 function modules in terms of the output they generate.
    My interest is to find a function module that will extract all the component characteristics (chars of class 300)
    Pls let me know
    Thanks

    Thanks,
    Then there are these 2 func modules, how do these differ from the earlier ones?:
    VC_I_GET_CONFIGURATION_IBASE
    CLAF_CLASSIFICATION_OF_OBJECTS
    I'm trying to be sure I use the right one that does not give me incorrect data. I'm plng to extract data for the char's & pass them to my MES system for further use.
    Thanks

  • Func. module

    have u created any func. module, if yes then what is the purpose

    And what was it's purpose?
    You'll never get full points if you don't answer the whole question

Maybe you are looking for

  • Adobe Reader not opening file

    I have downloaded reader but it is not opening any files - I just get the File Downlaod box with th eGetting File Information message but  the PDF never actually appears.

  • Access Mac user files in bootcamp

    Hi all, I'm trying to access my Mac OSX snow leopard files through bootcamp and I'm having a few issues. I'm able to access my mac partition through windows 7 but when I get to users then my own section the folder is empty. Any hints or tips? I'm gue

  • Can anyone see why this won't run? I can't seem to figure out the mistake!

    import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Debugging7 extends JApplet           implements ItemListener      //Declare components and global variables here      JPanel mainPanel = new JPanel();      JPanel buttonPa

  • N8 Belle and Network Drive mapping.

    Hello! Today I tried to move a large video file from my phone to a pc, but I didn't have the USB cable with me and nobody has the mini-usb cable laying around and Bluetooth is way too slow. Then I remembered using the convenient "Map Network Drive" o

  • Partition and rename existing Time machine drive?

    I use a 1 TB external hard drive for Time Machine backups and as extra storage for miscellaneous files - a total of 130 gigs is used (100 gigs of Time Machine backups plus 30 gigs other files).   I am using Mountain Lion 10.8.5. That external drive i