Enhancement methods

Dear Experts,
Iam hust going through a SAP  Book .in that it is written that there are in two ways we can do enhancement.
1. by Enhancement(Append Structure)
2. by modification
   create a view or an ABAP query infoset and overwrite the extractor for BW and the extract structure in  the maintainance function for data source (MD Attributes)
can any one explian me about the second method with screen shots for better understanding.....
thanks in advance
Regards
Sabiha

Sabiha,
We normally enhance Business Content datasources/extractors by adding an append structure and writing requisite code in the exit.
Though it is possible it is not advisable to modify standard SAP code.
Another possibility is to create a generic datasource/extractor and to do the required coding. Search with 'generic datasource'. There are  3 methods available to create generic extractors - View, Query and Function module. 
Practically most scenarios would be covered by enhancing business content supplied datasources with additional fields in the append include or by creating generic extractors. 
BR/
Mathew.

Similar Messages

  • Enhance Method Problem

    I try to enhance a Method like described in this Thread...
    Re: Sending Email using the Outlook Client
    What I did so far...
    1) In Transaction "bsp_WD_CMPWB"  I choosed Component "BP_ADDR" and created a copy in our "Z_CRM" EnhancementSet
    2) I used the right Mousebutton to Enhance the "BP_ADDR/StandardAddress" View
    Two things had been automatically generated/created...
    - Table Contents BSPWD_CMP_C_REPL
    - Object ZL_BP_ADDR_STANDARDADDRES_CTXT
    3) I doubleclick on the enhanced View "BP_ADDR/StandardAddress"
        (-> In the "View Layout" node the StandardAddress.html is still using the Super Classes / Implementation Class CL_BP_ADDR_STANDARDADDRES_CN01 )
    4) If I go to Implemetation Class CL_BP_ADDR_STANDARDADDRESS_CN01
    5) Select method "GET_P_E_MAILSMT" (and look into the coding)
       The enhancement Functions there are not working for meu2026
       I tried the Button with the (Sprial / helix)
       and the Menu "Edit"-> "Enhancement Operations"
    Where is my error?! (I think I have to create a ZClass for the CL_BP_ADDR_STANDARDADDRES_CN01?!?!? But how to???)
    I will give all possible points for good answers
    Thanks for helpingu2026

    hi,
    Some times I also faced problems to create Zclass for standard ones. But you can do one trick to create Zclass.
    Try to create one dummy attribute in your context node, then it will creates  automatically Zclass for that node. Later you can delete that attribute.
    If you get any problems to create P-getter method, then copy the IF_BSP_WD_MODEL_SETTER_GETTER~_GET_P_XYZ template method and rename to GET_P_E_MAILSMT.
    regards
    Ismail

  • Enhance method with new parameter

    How can I enhance an existing method with a new Parameter?
    In some tutorial is written that this should be possible. But there is no exact description.

    Thx Rich Heilman 
    but in the Doku "Enhancements to Global Classes and Interfaces"
    http://help.sap.com/saphelp_nw70/helpdata/en/58/4fb541d3d52d31e10000000a155106/content.htm
    you find:
    You can enhance the components of a global class or global interface by:
    ●     Inserting new, optional formal parameters for existing methods (but no new exceptions)

  • ESS Travel / Trip Create Enhancement method

    Hi , I am new to HR - Travel Management,
    Requirement :
    During Create Trip Request from ESS (Tcode - TRIP at backend) a check is required to be added to see if 2 settlements are pending to be approved then create trip shouldnt let user save the new trip and error meesage needs to be displayed about this check.as only maximum of 2 trips could remain unsettled.
    Query : As the user will only use ESS , I went through Class - CL_FITE_ASSISTANCE and CL_FITE_EES_ASSISTANCE but couldnt get idea if any of its method a needs to be enhanced or what could be the starting point to begin with its solution.
    any kind of help or atleast a direction to be taken will be appriciated.

    The Thread can now be closed .
    For this the approach used was :
    As Trip could be raised in SAP GUI as well as Portal.
    So code needs to me made at both places :
    BADI and Exit
    BADI : TRIP_WEB_CHECK also for Error message fill the error message in message handler.
      DATA exit_message_handler TYPE REF TO cl_hrpa_message_list.
        DATA message_handler TYPE REF TO if_hrpa_message_handler.
        DATA msg TYPE symsg.
        DATA is_ok TYPE boole_d.
        CREATE OBJECT exit_message_handler.
        message_handler = exit_message_handler.
        msg-msgid = 'ZFI'.
        msg-msgty = 'E'.
        msg-msgno = '003'.
        msg-msgv1 = 'Please Settle your Earlier Trips Before'.
        CALL METHOD message_handler->add_message
          EXPORTING
            message = msg
            cause   = message_handler->unknown.
        is_ok = space.
      exit_message_handler->add_messages( message_handler ).
    This will show error message on the portal itself and control will not go to the exit.
    For EXIT use :
    Enhancement : FITR0005   - > Exit : EXIT_SAPMP56T_003.
    Method : PTRA_UTIL_TRIPS_GET_LIST to get Employee Trip Details And did the calculations as required. display the Error message if the conditions are not met.

  • Call enhancement class method from Bus. workflow task

    Hi all,
    I recently enhanced a global class from SAP (add a new method). Now I would like to call it from a workflow task (ABAP Class object used in the task). So it seems that only "native" methods from the class itself can be selected for the object method of the task.
    Same issue if I try to call it via secondary methods options...
    Last idea I have before the repair is: retrieve the instance saved into the WF container via a custom class interfacing IF_IFS_SWF_CONTAINER_EXIT (program exit) and call the enhanced method from the method proposed in this interface.
    Maybe someone had the same issue? Anyone could help or propose solution?
    Many thanks in advance for your help,
    KR,
    Olivier

    I think it might qualify for an OSS message.
    There was simmilar note for BADIs which was corrected: https://service.sap.com/sap/support/notes/1156392
    CL_SWF_UTL_DEF_SERVICES which is used in PFTC to determine callable methods doesn't include enhancements when calling  function SEO_CLASS_TYPEINFO_GET (parameter WITH_ENHANCEMENTS is default FALSE)

  • Class Enhancement without a .jdo file

    Is it possible to do a byte code enhancement using the KODO APIs passing in
    a data structure containing the .jdo metadata file information without
    having to explicitly create a .jdo file?
    I'm looking at using the enhance() method of JDOEnhancer class and it looks
    like I have to have a .jdo file on disk. Is there any way to avoid it?
    In my enviornment I read information from a master metadata file, use that
    to generate Java code, invoke the compiler on it and now I'd like to invoke
    the enhancer on the class files - i'd like to do all this one shot. Since I
    have all the information needed in memory, I don't want to create a .jdo
    file and have the enhancer read that file.
    Thanks
    Vijay

    Vijay-
    You do always need the .jdo metadata file for your classes; the JDO
    specification requires it. Note, though, that you could just have a
    single top-level package.jdo file that holds the metadata for all your
    classes, so that you would only need to create a single file.
    Technically, I suppose you could use a custom ClassLoader that overrides
    getResourceAsStream() (since this is the way we locate .jdo metadata
    files for classes), and return a textual stream of the contents of the
    ..jdo metadata. It might work, but we advise against it, since using
    custom ClassLoaders can introduce very tricky problems that are
    difficult to debug.
    In article <bju9ua$ops$[email protected]>, Vijay Ganesan wrote:
    >
    Is it possible to do a byte code enhancement using the KODO APIs passing in
    a data structure containing the .jdo metadata file information without
    having to explicitly create a .jdo file?
    I'm looking at using the enhance() method of JDOEnhancer class and it looks
    like I have to have a .jdo file on disk. Is there any way to avoid it?
    In my enviornment I read information from a master metadata file, use that
    to generate Java code, invoke the compiler on it and now I'd like to invoke
    the enhancer on the class files - i'd like to do all this one shot. Since I
    have all the information needed in memory, I don't want to create a .jdo
    file and have the enhancer read that file.
    Thanks
    Vijay--
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Problems enhancing

    Hello, I've just started evaluating Kodo and JDO in general this week.
    After several successful days of playing, a new problem has cropped up, and
    I'm not quite sure why....
    I've been using the eclipse plugin, and I started getting build problems
    during the enhancement process. The dialog box gives me the following
    error:
    "The Enhancer failed. The message includes was:
    javax.jdo.JDOFatalInternalException:
    java.lang.IllegalArgumentException:java.lang.NullPointerException
    NestedThrowables:
    java.lang.IllegalArgumentException:java.lang.NullPointerException"
    I tried to get more a specific message by running the enhancer from the
    command line, but when I run either jdoc or java
    com.solarmetric.kodo.enhance.JDOEnhancer <jdo file> I get the following
    error:
    Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid index!
    at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
    at sun.misc.URLClassPath.getResource(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Neither of these enhancement methods gave me any trouble until yesterday,
    when I must have done ..... something (no idea what) that would cause them
    to fail. Anyone seen these before? Any ideas?
    Laura

    I changed the logging properties for kodo, and I have a slightly more
    informative stack trace from the command prompt:
    - com.solarmetric.kodo.meta.JDOMetaDataParser@52068d: parsing source:
    file:/C:/views/SlaybaughLJ_ATOS_local/ATOS_src/bin/busserv/ATOSCoreAbstracti
    ons/ATOSCoreAbstractions.jdo
    Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid index!
    at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
    at sun.misc.URLClassPath.getResource(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Does that help any?
    "Laura Slaybaugh" <[email protected]> wrote in message
    news:[email protected]...
    Sorry about the delay in replying to this, I thought I sent this out
    Thursday...
    "Patrick Linskey" <[email protected]> wrote in message
    news:<[email protected]>...
    Is it possible to get the full stack trace for the NPE from the dialog
    box, or are you only presented with the message that you posted?What I posted was all that appeared in the dialog box. Is there a way toget
    at the full stack trace?
    The error from the command line seems to indicate that an error happened
    when dealing with a corrupt jar file. Did you make any modifications to
    your jar files recently?I haven't been compiling my program into a jar. And I have not touched any
    other jars that I am aware of. But I did notice that shortly before I
    started recieving the message, Eclipse crashed on me. Could that have
    corrupted the jars, somehow? And if so, why would it seem that building
    through eclipse would bypass the InvalidJarIndexException and give me a
    different error?
    Finally, can you send us the complete stack trace for the
    command-line-generated exception? It looks like that's only a partial
    stack.What I provided was the entire stack trace that was printed to screen.
    Laura
    "Patrick Linskey" <[email protected]> wrote in message
    news:[email protected]...
    Is it possible to get the full stack trace for the NPE from the dialog
    box, or are you only presented with the message that you posted?
    The error from the command line seems to indicate that an error happened
    when dealing with a corrupt jar file. Did you make any modifications to
    your jar files recently?
    Finally, can you send us the complete stack trace for the
    command-line-generated exception? It looks like that's only a partial
    stack.
    -Patrick
    On Thu, 01 May 2003 11:07:15 -0400, Laura Slaybaugh wrote:
    Hello, I've just started evaluating Kodo and JDO in general this
    week.
    After several successful days of playing, a new problem has croppedup,
    and I'm not quite sure why....
    I've been using the eclipse plugin, and I started getting buildproblems
    during the enhancement process. The dialog box gives me the following
    error:
    "The Enhancer failed. The message includes was:
    javax.jdo.JDOFatalInternalException:
    java.lang.IllegalArgumentException:java.lang.NullPointerException
    NestedThrowables:
    java.lang.IllegalArgumentException:java.lang.NullPointerException"
    I tried to get more a specific message by running the enhancer fromthe
    command line, but when I run either jdoc or java
    com.solarmetric.kodo.enhance.JDOEnhancer <jdo file> I get thefollowing
    error:
    Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid
    index!
    at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
    at sun.misc.URLClassPath.getResource(Unknown Source) at
    java.net.URLClassLoader$1.run(Unknown Source) at
    java.security.AccessController.doPrivileged(Native Method) at
    java.net.URLClassLoader.findClass(Unknown Source) at
    java.lang.ClassLoader.loadClass(Unknown Source) at
    sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at
    java.lang.ClassLoader.loadClass(Unknown Source) at
    java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Neither of these enhancement methods gave me any trouble until
    yesterday, when I must have done ..... something (no idea what) that
    would cause them to fail. Anyone seen these before? Any ideas?
    Laura--
    Patrick Linskey
    SolarMetric Inc.

  • How to call original method from an overwrite exit?

    I enhanced method m1 of class c1 by creating an overwrite exit for the method.
    The requirement is to do certain checks in the overwrite exit and then call method m1 if checks pass. How can i access the original method from the overwrite exit??

    keyword 'static' my friend.
    public class foo {
    public static void bar {
    System.out.println ("hello");
    foo.bar()

  • Anybody enhanced BADI HR_IN_ER_ADDRESS~GET_CIT_ADDRESS

    hI
    I need to enhance METHOD GET_CIT_ADDRESS UNDER BADI NAME " HR_IN_ER_ADDRESS".  We have some different requirement.
    We have to set conditon on T7INT5-TXGRP,   Based upon this  tax group condition we need to provide values in the SADR.
    We have two values of TXGRP 01, 02.
    HOW FORM 16 PROGRAM ( HINCF160) CAN PASS VALUES TO THE METHOD GET_CIT_ADDRESS so that contition can be applied.
    Regards,
    Ravi

    Hi
    Check while debugging the method if there is any values in T7INT5 in the global parameters tab.If exists you can get the values using field symbols.
    Try the below code.
    field-symbols : <fs1> type T7INT5.
    constants : c_1 type char6 value 'T7INT5'.
    assign  (c_1) to <fs1>.
    ~~~Ganesh Kumar K.

  • Issue in transfer of data from ECC to APO

    Hi All,
    I have a requirement of transferring data from ECC to APO. I am using EXIT_SAPLCMAT_001 fro this purpose. The problem is, I need to transfer the data of a field that is not present in cif_matloc but present in /sapapo/matloc.
    How should I proceed...Please help....this is an urgent requirement
    Thanks & Regards,
    SriLalitha

    Hi,
    you may want to go to the transaction /SAPAPO/SNP_SFT_PROF
    Determine Forecast of Replenishment Lead Time
    Use
    In this field, you specify how the extended safety stock planning determines
    the forecast of the replenishment
    lead time (RLT). The following values are available:
    Supply Chain
    The system determines the RLT forecast using the supply chain structure by
    adding the corresponding production, transportation, goods receipt, and goods
    issue times. If there are alternative procurement options, the system always
    takes the
    longest
    option into account.
    Master Data
    The system determines the RLT forecast from the location product master
    data.
    Master Data/ Supply Chain
    First, the system determines the RLT forecast from the location product
    master data. If no RLT forecast can be determined, the system determines the
    forecast using the supply chain structure (as described under
    Supply
    Chain
    Dependencies
    You can retrieve the replenishment lead time forecast yourself by using the
    GET_LEADTIME
    method of the Business Add-In (BAdI) /SAPAPO/SNP_ADV_SFT.
    Replenishment Lead Time in Calendar Days
    Number of calendar days needed to obtain the product, including its
    components, through in-house
    production or external
    procurement.
    Use
    The replenishment lead time (RLT) is used in the enhanced methods of safety
    stock planning in Supply Network Planning (SNP). The goal of safety
    stock planning is to comply with the specified service level, in order
    to be prepared for unforeseen demand that may arise during the replenishment
    lead time. The longer the RLT, the higher the planned safety stock level.
    Dependencies
    The field is taken into account by the system only if you have specified
    master data or master data/supply chain in the RLT: Determine
    Forecast field of the safety stock planning profile used.
    Hope this helps.
    The RLT from ECC is in MARC-WZEIT which is transferred to APO in structure /SAPAPO/MATIO field CHKHOR.
    May be if you maintain the setting in the profile, you may get the value in RELDT.
    Thanks.

  • Batch wise rate and revenue for Profitability reports

    Process are
    We are doing GR of material based on Batch wise and we have moving average price for all trading material.
    let say i did 2 GR
    Material   A
    Batch      x
    MAP       10rs
    QTY       10 kg
    Material  A
    Batch    y
    MAP     15 rs
    QTY     20 kg
    now i have stock of 30 kg of material with batch X and Y
    Now i got sales order of 15 qty and I issued 10 qty from batch X and 5 qty from batch Y 
    and did billing also.
    Now my client want profitability batch wise and rate of consumption also batch wise.
    I can create one characteristic WWBAT for batch and also planned  Table lookup for Derivation from SD table LIPS.
    But how to get cost Batch wise - 10 rs for batch -X and 15 rs for batch-Y. becoz price will come from VPRS which is my latest MAP
    regards
    RR

    Hi
    For Batch - You need to create a WW Char i.e. User Defined Char
    Valuation Type - Should be available as a Standard Char in COPA.. You can pull it in your Op Concern from KEA5 using "Reference" option
    To get the Batch No - You need to create a derivation step in KEDR using "Enhancement" method... SOURCE field can be ARTNR and Target Field will be WW Char.... Then you can write exit COPA0001 or COPA0005
    Valuation Type can also be fetched using the same exit...
    br, Ajay M

  • QA32 Tcode i want to one more field which is material Description .in our o

    In QA32 Tcode i want to one more field which is material Description .in our output . how to do it please guide .

    Only exit I am aware of is IWOC0004 / EXIT_SAPLIREP1_001 to change the layout, to add customer field, i dont know any exit/badi, so i suggest you copy the report, copy the structure QALS_D02 to a Z-structure, and complete the field catalog and fill the new field in the code of the copied report.
    You could append fields to the structure (QALS_D01 or D02) and use Enhancement method to adapt field catalog and filling new fields (in RQEEAL10 at END-OF-SELECTION or an adequate GET statement)
    Regards,
    Raymond

  • CRM 7.0 - Restrict Available BP Roles in Account Maintenance

    Dear Experts,
    During BP Maintenance in CRM 7.0 Web UI, how can we restrict the BP role values that are available in the BP Role assignment block i.e. we want to limit only to "Sold-To Party" and "Contact Person."
    UI Component: BP_ROLES
    View: BP_ROLES/RolesList
    Can we achieve this through Security (which object) or Standard Config. 
    There is a config setting in SPRO for BP role exclusion groups.  Is this relevant here?
    Thanks!!!
    FK
    p.s. We attempted a config change to a BP Role Security profile but this only limited SAP GUI not Web UI.  Is there a different object to limit the values in the Web UI Assignment Block

    Hi Fakhan,
    There are two ways to solve your requirement :
    1. via authorization
    explore authorization object B_BUPA_RLT and CRM_BPROLE. Those authorization objects define which BP roles can be edited.
    OR
    2. via enhancement
    Enhance component BP_Roles/AccountRolesEL. In the context node BUILROLES enhance method GET_V_PARTNERROLE
    Do the same in component BP_roles/RolesList context node ROLES method GET_V_PARTNERROLE
    Hope it's solve your problem
    Cheers,
    Lina

  • Exit/BADI for condition type value

    Hi friends,
        I have a BADI BADI_SD_BILLING_ITEM. I want to enhance method 'ITEM_PRICING_COM' present in this BADI.
        My purpose of using this BADI is that I want to get the values of condition type before saving a billing document.For that purpose I want to enhance this BADI.
    But I don't know how to proceed.
       Please help me out.
    Regards,
    Rajesh

    Enhancement                                                                               
    V61A0001                                Customer enhancement: Pricing                            
    V60P0001                                Data provision for additional fields for display in lists                             
    SDVFX011                                Userexit for the komkcv- and kompcv-structures     "This may be usefull

  • ELM - Duplicate Check, Mapping Format, Create BP in Role

    Hi,
    I have 3 requirements with respect to ELM (CRM 7.0 Ehp1)
    1. Update CRM BP, if external ID/ID type combination occurs again
    2. Create BP in a specific role
    3. Map extra fields
    With the help of multiple threads, I have found that I need to use BAdI CRM_MKTLIST_BADI and enhance methods DUPLICATE_CHECK, CREATE_PERSON etc.  Create new mapping format, Append structure CRMT_MKTLIST_PER_EXT with required fields.
    I have the following questions:
    1. How do I create a new mapping format?
    2. What/how to enhance the method DUPLICATE_CHECK of CRM_MKTLIST_BADI to check for duplicates based on external ID number and ID Type?
    3. For creating BP in a certain role, is the note 915015 applicable for CRM 7.0?
    I would appreciate if anyone can offer quick help in this regard.
    Thanks and regards,
    Anshika

    Hi,
    You can new mapping format from webui.
    You have to log in with  a MARKETINGPRO role. To create mapping format, assign business role MARKETINGPRO to your user and go to "Marketing" work center.
    In the "Create" area you will find "Mapping format".
    CRM_MKTLIST_BADI has a default implementation class you can create a new implementation but you can copy the standard implementation class for your implementation class.
    And change the code in method in DUPLICATE_CHECK. the external ID number and ID Type should come via the importing parameters inside the method then you can check with them. But other wise you need to find some other provision of getting them inside.
    Thanks,
    Rajini Aleti.

Maybe you are looking for