Access a supertype's delegated subtype

Hi all,
R/3 4.6c. I have a SAP standard object with many subtypes and want to add components that are common to all subtypes. So, extending the supertype would be the cleanest option, but delegation does not get inherited.
In pictures:
SUPERTYPE --> Delegated --> ZSUPER
    |
SUBTYPE
So within SUBTYPE I can use SUPERTYPE.ATTRIB, but not the delagated SUPERTYPE.ZATTR which I've defined in ZSUPER.
A way around this is to create an attribute SUPER of SUBTYPE and then refer to SUBTYPE.SUPER.ZATTR. Bit of a long way around, but it works. However I'm now in a setup where this will be high-volume and performance could be critical. Perfect scenario for ABAP classes, but this is a 4.6c system.
I don't know enough about the internals to know whether it's intelligent enough to not re-instantiate the supertype (I suspect not), or indeed what impact this would have if it does. Unfortunately I don't have the facility to stress test - that's what go-live is for
So, I wondered if anyone has any experiences in this or has any other performance-friendly workarounds to suggest?
Any feedback appreciated.
Cheers,
Mike

hi Mike,
It's probably a bit faster to create a virtual attribute with the logic to retrieve the super types data in every subtype.
Probably faster, but in the long run not reccomended (maintenance wise).
Is it a high risk to change the sap standard BO?
Kind regards, Rob Dielemans

Similar Messages

  • Attribute of  subtype  not showing in supertype after delegation

    Hi, i've created a subtype of BUS2089 called ZBUS2089 added some attributes and then delegated to the BUS2089 but the new attributes are not showing, Any ideas?
    Thanzs in advanced to all
    Regards
    Jaime

    Hi Martina,
    Try to test the supertype and see if the delegated method is there.
    If that don't work say something and we find the problem.
    regards
    Jaime

  • How to implement SubType/SuperType in Oracle ?

    Hi,
    I have a supertype and three subtypes, as attached below, how is the
    best approach to implement it in Oracle (9i/10g) ?
    Thank you for your help,
    Krist
    Supertype : Employee
    Employee_Number
    Employee_Name
    Address
    Employee_Type
    Date_Hired
    SubType : Hourly_Employee
    Hourly_Rate
    SubType : Salaried_Employee
    Annual_Salary
    Stock_Options
    SubType : CONSULTANT
    Contract_Number
    Billing_Rate

    Assuming you want to model this relationally, try something like this.
    http://groups-beta.google.com/group/comp.databases.oracle.server/msg/a23ffb19bfde2f20?hl=en
    Note its a generic SQL approach, and somewhat over fussy but I think the genral approach holds up for this type of relationship.
    I would sort of stay away from objects in the database, it over complicates everything else you will ever do.

  • Problem in creating a delegation

    Hi Everybody,
    I am facing a very wiered problem.I have created my custom bus object with supertype as BUS2010010 .But when I am creating a delegation for this bus object it is saying select a valid delegation type...
    Any thoughts on this error...
    Regards,
    Narsingh

    Hi Narsingh,
    Pls have a look at following thread, looks like your problem is similar to this one!
    https://forums.sdn.sap.com/click.jspa?searchID=1421067&messageID=3085273
    Hope this helps.
    Regds,
    Akshay Bhagwat
    PS: Some points would be nice if it helps
    Link will open as Re: Need to assign the supertype BO to subtype BO? in browser, please remove last '?' , and you will be able to see the content. Still if you could not refer it, let me know.
    Message was edited by:
            Akshay Bhagwat

  • Delegation in BAPI

    Hi all,
    Can any one tell me what is delegation in BAPI.
    What is the use of delegation in BAPI.
    With thanks,
    Chinmay.

    If customers want to functionally enhance a BAPI supplied by SAP by adding new parameters, changing existing parameters, or changing the coding of the function module upon which the BAPI is based, then this is only possible through modifications.
    BAPI modifications cannot be made to business object types delivered in the standard system. Instead, you have to create a subtype of the business object type and then redefine the BAPI method inherited from the superior business object for this subtype.
    Only the redefined BAPI is then available for the subtype; the original inherited BAPI can only be called from the supertype.
    IBUs, customers and partners who want to create new development objects required in the context of a modification should follow the general guidelines in the documents "Changing the SAP Standard" and "Guidelines for Modifying the SAP Standard", which are available in SAPNet.
    You will also have to make sure that the involved development objects are assigned names from the customer namespace.
    The process flow for customer modification of BAPIs:
    ·     Create a subtype for the involved business object type
    ·     The procedure for creating a subtype is described under Creating Subtypes.
    ·     Change the definition of the inherited BAPI for the subtype.
    ·     You can add additional parameters, for example, or modify the implementation of the BAPI. The following implementation options are available for modifications:
    ·     Creating a new function module
    ·     Compatible modifications to the superior function module
    ·     Creating the implementing function module as a copy of the superior function module
    ·     If modifications have been made, you must redefine the changed BAPI for the subtype in the BOR. The steps required to redefine a BAPI are described in:
    Redefining BAPIs
    To redefine a BAPI of a subtype, perform the following steps::
    ·     Choose Tools ® Business Framework ® BAPI Development ® Business Object Builder or enter transaction code SWO1 .
    ·     Display the subtype just created in the change mode.
    ·     Position the cursor on the BAPI you want to modify and choose Edit ® Redefine.
    ·     Double-click on the BAPI and select the ABAP/4 register.
    ·     In the Name field of the modified function module enter and save your information.
    From the customer perspective, it makes sense when the superior BAPI can be called as the supertype as well as the subtype. To achieve this, you have to define a delegation relationship between the supertype and the subtype. To define a delegation relationship, perform the steps described under:
    Defining Delegation Relationships.
    A delegation relationship is only significant for object-oriented BAPI method calls and not if the implementing function module is called directly.
    To define the delegation relationship between the supertype and subtype:
    ·From the SAP menu, choose Tools ® Business Framework ® BAPI Development ® Business Object Builder, or enter the transaction code SWO1 .
    ·     Choose Settings ® Delegate ® System-wide.
    ·     Switch to the change mode and select New entries.
    ·     Enter the name of the original object type (supertype) in the field Object type and the name of the subtype in the field Delegation type.
    ·     Deactivate the check box GUI-specific.
    ·     Save your entries.

  • SQL Developer Data Modeler-  Creating super/subtype relationship

    The User's Guide does not tell you how to create super/subtype relationship.
    To create super/subtype relationship in a logical model, you must already have the two candidate entities; one to be the supertype, the other subtype.
    - on the logical model diagram, right click the candidate subtype and select Properties
    - on the Entity Properties dialog box, select the candidate supertype from the Super Entity drop-down list, then OK
    Depending on whether you enable or disable the Box-in-box Presentation on your logical diagram, the subtype would be shown inside or outside its supertype entity, respectively

    Hi Peter,
    When I examine an XML file for a relation converted from version 2.0, the XML elements "nameOnSource" and "nameOnTarget" are missing in the converted 3.0 EA1 versionthey are not loaded during "open" of older design. If you define them they will go into XML file.
    Philip

  • Best Practice - Securing Schema from User Access

    Scenario:
    User A requires access to schema called BLAH.
    User A is a developer that built an application using this schema in a separate development environment, although has the same privileges mirrored to production (same roles etc - required for operation of the application built).
    This means that the User has roles that grant Select, Update etc rights for the schema / table in order to use (and maintain) the applications.
    How can we restrict access to the BLAH schema in PRODUCTION, enforcing it to only be accessible via middle tier / application (proxy authentication?)?
    We've looked at using proxy authentication, however, it's not possible to grant roles and rights to the proxy account and NOT have them granted to the user (so they can dive straight in using development tooling and hit prod etc)>
    We've tried granting it on a session basis using proxy authentication (i.e. user a connects via proxy, an we ENABLE a disabled role on the user based on this connection), however, it causes performance issues.
    Are we tackling this the wrong way? What's the best practice for securing oracle schemas (and objects in general) for user access where the users actually get oracle user account (or even use SSO) for day to day business as usual.
    To me this feels like a common scenario, especially where SSO comes into play ...

    What about situations where we have Legacy Oracle Forms stuff? In these cases the user must be granted select etc rights to particular objects, as this can't connect via a middle tier.
    The problem we have is that our existing middle tier implementation is built expecting the user credentials to be passed to it during initial authentication and does not use a proxy, or super user style account.  We have, historically, been 100% reliant on Oracle rights and controls to validate and restrict access to our underlying data.  From what you are saying, we should start to look at using proxy or super user access and move this control process further up - i.e. into Code or Packages ?  If so, does this mean that there is no specific way to restrict schema access to given proxy accounts and then grant normal user accounts to connect through these to get access (kind of a delegated access scenario), without using disabled roles?

  • Delegated Admin login fail

    I installed Solaris 9 05/9 and JES05Q4 in a Sun Fire V440 recently.
    I chose these components only:
    Directory server
    Administration server
    Web server
    Access manager
    Messaging server
    Delegated administrator
    Directory preparation tools
    I can use commadm to created users after installation and initial configuration, but I can't login to the delegated admin with any account. http://server.mydomain.com/da/DA/Login
    After I check the DA log file, it shows:
    WARNING: User [admin] has no valid role assigned, aborting login
    What kind of role required for da login ?
    Thanks in advance for any help.
    dx

    I recommend that you post your question to the Messaging Server forum (also listed at the bottom of the Java ES forums page):
    http://swforum.sun.com/jive/forum.jspa?forumID=15
    You might also want to search that forum for similar problem reports.

  • Barker Models in Forward Engineering: Supertypes aren't generated

    Hi,
    System: PD 16.1 with the latest EBF.
    For construction of conceptual models I preferably use Barker Notation. When I create a physical model based upon a Barker notated model, Supertypes aren't generated. I dont have the opportunity to check the "generate option" within a Supertype, because it's automatically deactivated. Why are Supertypes not generated in physcial models but only the last Suptypes in an inheritance hierarchy?
    Best
    Stephan

    Take a look here
    Inheritances (CDM/LDM)
    Note: There is no separate inheritance object in the Barker notation (see Supported CDM/LDM Notations), as inheritances are represented by placing one entity symbol on top of another. Barker inheritances are always complete and mutually exclusive, and the supertype lists its subtypes on the Subtypes tab (see Entity Properties). Only leaf subtypes can be generated as PDM tables, and the Generate option is disabled on Barker supertype property sheets.

  • JES 2005Q1 Access Manager failed to start amserver

    I installed directory server schema 2 messaging server web server access management server and delegated admin on the same machine runing on solaris 9. The following is error message.
    failure: WebModule[amserver]: WEB2680: Exception starting filter amlcontroller
    java.lang.ClassNotFoundException: com.sun.mobile.filter.AMLController
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1465)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1301)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:322)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:120)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3271)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3747)
    at com.iplanet.ias.web.WebModule.start(WebModule.java:251)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:652)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:355)
    at org.apache.catalina.startup.Embedded.start(Embedded.java:995)
    at com.iplanet.ias.web.WebContainer.start(WebContainer.java:431)
    at com.iplanet.ias.web.WebContainer.startInstance(WebContainer.java:500)
    at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:161)
    failure: WebModule[amserver]: WEB2705: Context startup failed due to previous errors

    Hi,
    there's apparently a problem under Linux RedHat ES3 as well... (JES 2005Q1 ISO version for Linux)
    Only the amserver module fails, the webserver gets started with other modules.
    When starting the webserver:
    failure: WebModule[amserver]: WEB2783: Servlet /amserver threw load() exception
    javax.servlet.ServletException: WEB2778: Servlet.init() for servlet LoginLogoutMapping threw exception
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:949)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3478)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3760)
    at com.iplanet.ias.web.WebModule.start(WebModule.java:251)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:652)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:355)
    at org.apache.catalina.startup.Embedded.start(Embedded.java:995)
    at com.iplanet.ias.web.WebContainer.start(WebContainer.java:431)
    at com.iplanet.ias.web.WebContainer.startInstance(WebContainer.java:500)
    at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:161)
    ----- Root Cause -----
    java.lang.NullPointerException
    at com.sun.identity.authentication.UI.LoginLogoutMapping.init(LoginLogoutMapping.java:71)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:921)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3478)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3760)
    at com.iplanet.ias.web.WebModule.start(WebModule.java:251)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:652)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:355)
    at org.apache.catalina.startup.Embedded.start(Embedded.java:995)
    at com.iplanet.ias.web.WebContainer.start(WebContainer.java:431)
    at com.iplanet.ias.web.WebContainer.startInstance(WebContainer.java:500)
    at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:161)

  • How to find subtypes dynamically?

    I have created some types and subtypes. Is it possible to find the subtypes under a particular type? Is it possible to find them(or access the types and its subtypes) dynamically using any programming languages?
    [those types and subtypes|http://picasaweb.google.com/lh/photo/KsSSf7_W8V4b1iM1mmaXuQ?feat=directlink]
    Edited by: joe7 on Feb 18, 2010 2:07 AM

    You can get the whole hierarchy this way:
    SQL> create type t_type is object (a number) NOT FINAL;
      2  /
    Tipo creato.
    SQL> create type tt_type under t_type (b number) NOT FINAL;
      2  /
    Tipo creato.
    SQL> create type tt1_type under tt_type (c number);
      2  /
    Tipo creato.
    SQL> create type tt2_type under tt_type (d number);
      2  /
    Tipo creato.
    SQL> select lpad(' ',(level-1)*3,' ')||type_name
      2  from user_types
      3  connect by prior TYPE_NAME = SUPERTYPE_NAME
      4  start with SUPERTYPE_NAME is null;
    LPAD('',(LEVEL-1)*3,'')||TYPE_NAME
    T_TYPE
       TT_TYPE
          TT1_TYPE
          TT2_TYPEMax
    http://oracleitalia.wordpress.com

  • WOrkflow related table and zfunction modules used in a particular workflow

    hi gurus,
                  we need to develop a tool to findout the custom WF, custom BOR and workflow related Zfunction modules used in a particular workflows in the client system.
    Eg-
          I have a custom workflow i need to find the list of all zfunction modules , z includes used in that Workflow.
    please suggest us  the table names which stores ZFunction module or z includes used in particular workflow
    Regards,
    Hari

    The only way to do this is to read through the source code of all the objects accessed within workflow and look for the relevant ABAP statements that access Z tables or function modules.
    [This wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/utilitytosearchABAPsourcecodeandTextelementsfora+string] should get you started on that part.
    As far as the objects are concerned, this is another story altogether. Something as simple as using an SAP standard object attribute in work item text could actually be a delegated subtypes with a redefined virtual attribute.
    So you need to scan everything: all tasks in a workflow and methods, as well as all container elements of each step. You will also need to navigate the object hierarchy to deal with delegation and subtypes. Then you need to consider propagation, what about Zfunction modules called by Zfunction modules in workflow? What if the method submits a report - you would need to scan that report and everything else that it calls and so on.
    This could be a fiendish challenge but sounds like a fun project. Good luck!

  • Workflow link wf_doc object to bkpf

    Does anyone have a method to create a link between a posted FI document(BKPF object) created in a WF and a XLS(WF_DOC object)?
    I have created both these objects in the WF but the WF_DOC is atttached to the WF (FLOWITEM object).
    What I want to do is store the created XLS as a link to and is accessible via the FI invoice so it is available after the WF completes and is deleted.

    Hello Mrunal,
    Have you make Delegation between your supertype BUS2032 and subtype ZTBUS2032?
    To do it:
    SWO1 > Settings > Delegate ....
    create new entry there with the supertype and subtype..
    give person reponsible as your user id.
    Leave the GUI setting blank.
    Hope it will work
    Regards,
    Naimesh Patel

  • Downcasting In Object PL/SQL Does not Work in Oracle 10g 10.1.0.2

    create type one_t as object (
    x number, y date ) not final
    create type two_t under one_t()
    set serverout on
    declare
    super one_t;
    sub two_t := two_t(1, sysdate);
    begin
    super := one_t(1, sysdate);
    sub := new two_t(1, sysdate);
    dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
    select treat(super as two_t) into sub from dual;
    dbms_output.put_line('super ' || super.x || ' ' || super.y );
    if sub is null then
    dbms_output.put_line('stupid');
    end if;
    if sub is of (two_t) then
    dbms_output.put_line('stupid');
    end if;
    end;
    The Other Piece Does not Even Compile
    declare
    super one_t;
    sub two_t := two_t(1, sysdate);
    begin
    super := one_t(1, sysdate);
    sub := treat(super as two_t);
    dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
    select treat(super as two_t) into sub from dual;
    dbms_output.put_line('super ' || super.x || ' ' || super.y );
    if sub is null then
    dbms_output.put_line('stupid');
    end if;
    if sub is of (two_t) then
    dbms_output.put_line('stupid');
    end if;
    end;
    ORA-06502: PL/SQL: numeric or value error: cannot assign supertype instance to
    subtype
    ORA-06512: at line 6

    You need use correct type when you create object.
    Don't forget object in reality is a memory pointer,
    so what if you don't allocate correct memory in creation,
    you can't treat object as subtype.
    And meanwhile, it doesn't depend on Oracle version -
    your example doesn't work in 9.2.0.1 for example.
    SQL> declare
      2  super one_t;
      3  sub two_t := two_t(1, sysdate);
      4  begin
      5  super := two_t(1, sysdate);
      6  sub := treat(super as two_t);
      7  dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
      8  select treat(super as two_t) into sub from dual;
      9  dbms_output.put_line('super ' || super.x || ' ' || super.y );
    10  if sub is null then
    11  dbms_output.put_line('stupid');
    12  end if;
    13  if sub is of (two_t) then
    14  dbms_output.put_line('stupid');
    15  end if;
    16  end;
    17  /
    sub 1 08.06.05
    super 1 08.06.05
    stupid
    &nbsp
    PL/SQL procedure successfully completed.Rgds.

  • Downcasting in Object PL/SQL Does not Work in Oracle 10g Enterprise Edition

    create type one_t as object (
    x number, y date ) not final
    create type two_t under one_t()
    set serverout on
    declare
    super one_t;
    sub two_t := two_t(1, sysdate);
    begin
    super := one_t(1, sysdate);
    sub := new two_t(1, sysdate);
    dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
    select treat(super as two_t) into sub from dual;
    dbms_output.put_line('super ' || super.x || ' ' || super.y );
    if sub is null then
    dbms_output.put_line('stupid');
    end if;
    if sub is of (two_t) then
    dbms_output.put_line('stupid');
    end if;
    end;
    The Other Piece Does not Even Compile
    declare
    super one_t;
    sub two_t := two_t(1, sysdate);
    begin
    super := one_t(1, sysdate);
    sub := treat(super as two_t);
    dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
    select treat(super as two_t) into sub from dual;
    dbms_output.put_line('super ' || super.x || ' ' || super.y );
    if sub is null then
    dbms_output.put_line('stupid');
    end if;
    if sub is of (two_t) then
    dbms_output.put_line('stupid');
    end if;
    end;
    ORA-06502: PL/SQL: numeric or value error: cannot assign supertype instance to
    subtype
    ORA-06512: at line 6

    You need use correct type when you create object.
    Don't forget object in reality is a memory pointer,
    so what if you don't allocate correct memory in creation,
    you can't treat object as subtype.
    And meanwhile, it doesn't depend on Oracle version -
    your example doesn't work in 9.2.0.1 for example.
    SQL> declare
      2  super one_t;
      3  sub two_t := two_t(1, sysdate);
      4  begin
      5  super := two_t(1, sysdate);
      6  sub := treat(super as two_t);
      7  dbms_output.put_line('sub ' || sub.x || ' ' || sub.y );
      8  select treat(super as two_t) into sub from dual;
      9  dbms_output.put_line('super ' || super.x || ' ' || super.y );
    10  if sub is null then
    11  dbms_output.put_line('stupid');
    12  end if;
    13  if sub is of (two_t) then
    14  dbms_output.put_line('stupid');
    15  end if;
    16  end;
    17  /
    sub 1 08.06.05
    super 1 08.06.05
    stupid
    &nbsp
    PL/SQL procedure successfully completed.Rgds.

Maybe you are looking for

  • Does iCloud store my Whatsapp conversations and could this be hacked?

    I believe some whatsapp conversations/contacts have been compromised either by hacking or other means (no physical intervention). Could this have been through hacking of my iCloud account? Is this possible and how do I understand/track and stop this?

  • Unexpected "numeric or value error" when using CAST COLLECT

    I am having trouble with string aggregation using CAST / COLLECT and the to_string function described on various sites around the net including AskTom and http://www.oracle-developer.net/display.php?id=306. I am getting "numeric or value error: chara

  • What is business objects

    When I browse the BusinessObject pages on SDN and the BusinessObjects forums, i see a lot of infomation about tools and stuf that I know - and still I am not familiar with the term "BusinessObjects" I know SAP R/3 Business Objects and the Business Ob

  • Video files on my external HD won't play on my iMac

    I recently backed up my iPhoto library onto an external drive due to space issues on my desktop iMac. I did this through the export option in iPhoto. All of the photos have transferred beautifully, however the video files are no longer playing. They

  • I don't have the option to delete media from my iTunes library. Any help please?

    I have got 4 copies of a video and three of them do not play so I am trying to remove those three, however I have tried all the suggestions but I am unable to choose the 'delete' option or the 'cut' option from the 'edit' menu. Although the 'copy' an