CMP object mapping

Hi there,
When developing a cmp, I can map all attributes of a value object
in the cmp into its corresponding table, shown on A.
The problem is if I can map some specific fields, not all fields
of the value object into the table, show on B, since the
corresponding table has not enough columns, in the meantime, for
some reason, I can't kick out the "useless" attributes from the
value object class.
I have tried to do that, but after I edit manualy orion-ejb-
jar.xml, and restart OC4J, it automaticaly maps all of the
fields. How can I stop OC4J automaticaly do that again?
Any help is appreciated.
Frank
A.
<cmp-field-mapping name="address">
<properties>
<cmp-field-mapping name="address1"
persistence-name="address1" />
<cmp-field-mapping name="address2"
persistence-name="address2" />
<cmp-field-mapping name="city"
persistence-name="city" />
<cmp-field-mapping name="countryCode"
persistence-name="countrycode" />
<cmp-field-mapping name="state"
persistence-name="state" />
<cmp-field-mapping name="zipCode"
persistence-name="zipcode" />
</properties>
</cmp-field-mapping>
B.
<cmp-field-mapping name="address">
<properties>
<cmp-field-mapping name="address1"
persistence-name="address1" />
<cmp-field-mapping name="city"
persistence-name="city" />
<cmp-field-mapping name="state"
persistence-name="state" />
<cmp-field-mapping name="zipCode"
persistence-name="zipcode" />
</properties>
</cmp-field-mapping>

Hi David,
The "autocreate-tables" attribute is defined in the DTD for the "orion-application.xml" file. This file is usually generated automatically by OC4J, from your application's "application.xml" file when you deploy your application. (Note that subsequent [re-]deployments of your application will not change the "orion-application.xml" file.)
The default value for this attribute is 'true', and the default is defined in the "application.xml" file that is located in the "j2ee/home/config" subdirectory of the OC4J installation.
Hope this answers your question.
Good Luck,
Avi.

Similar Messages

  • Special characters in aggregate object mapping

    I have the following code generated by oracle toplink workbench, any ideas? The
    special -> breaks the query in Oracle. Any help appreciated. Thanks,
    Code generated by toplink workbench:
    ===========================
    AggregateObjectMapping currencyPairMapping = new AggregateObjectMapping();
         currencyPairMapping.setAttributeName("currencyPair");
         currencyPairMapping.setReferenceClass(com.integral.finance.currency.CurrencyPairC.class);
         currencyPairMapping.setIsNullAllowed(true);
         currencyPairMapping.addFieldNameTranslation("IdcBrokAdapProd.baseCrncId", "baseCurrency->baseCrncId_IN_REFERENCE_IdcFakeCrncPair_IdcInstr");
         currencyPairMapping.addFieldNameTranslation("IdcBrokAdapProd.varCrncId", "variableCurrency->varCrncId_IN_REFERENCE_IdcFakeCrncPair_IdcInstr2");
         descriptor.addMapping(currencyPairMapping);

    Here is a more relavent aggregate object mapping:
    RelationalDescriptor descriptor = new RelationalDescriptor();
         descriptor.descriptorIsAggregate();
         descriptor.setJavaClass(com.integral.finance.fx.FXBusinessCalendarC.class);
         // Descriptor Properties.
         descriptor.setAlias("FXBusinessCalendarC");
         // Query Manager.
         // Event Manager.
         // Mappings.
         DirectToFieldMapping lagMapping = new DirectToFieldMapping();
         lagMapping.setAttributeName("lag");
         lagMapping.setFieldName("lag->DIRECT");
         descriptor.addMapping(lagMapping);
         DirectToFieldMapping lagTypeMapping = new DirectToFieldMapping();
         lagTypeMapping.setAttributeName("lagType");
         lagTypeMapping.setFieldName("lagType->DIRECT");
         descriptor.addMapping(lagTypeMapping);
         OneToOneMapping holidayCalendar1Mapping = new OneToOneMapping();
         holidayCalendar1Mapping.setAttributeName("holidayCalendar1");
         holidayCalendar1Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         holidayCalendar1Mapping.useBasicIndirection();
         holidayCalendar1Mapping.addForeignKeyFieldName("holidayCalendar1->holCal1_IN_REFERENCE_IdcFakeBusCal_IdcHolCal", "IdcHolCal.id");
         descriptor.addMapping(holidayCalendar1Mapping);
         OneToOneMapping holidayCalendar2Mapping = new OneToOneMapping();
         holidayCalendar2Mapping.setAttributeName("holidayCalendar2");
         holidayCalendar2Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         holidayCalendar2Mapping.useBasicIndirection();
         holidayCalendar2Mapping.addForeignKeyFieldName("holidayCalendar2->holCal2_IN_REFERENCE_IdcFakeBusCal_IdcHolCal2", "IdcHolCal.id");
         descriptor.addMapping(holidayCalendar2Mapping);
         OneToOneMapping holidayCalendar3Mapping = new OneToOneMapping();
         holidayCalendar3Mapping.setAttributeName("holidayCalendar3");
         holidayCalendar3Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         holidayCalendar3Mapping.useBasicIndirection();
         holidayCalendar3Mapping.addForeignKeyFieldName("holidayCalendar3->holCal3_IN_REFERENCE_IdcFakeBusCal_IdcHolCal3", "IdcHolCal.id");
         descriptor.addMapping(holidayCalendar3Mapping);
         OneToOneMapping noLagHolidayCalendar1Mapping = new OneToOneMapping();
         noLagHolidayCalendar1Mapping.setAttributeName("noLagHolidayCalendar1");
         noLagHolidayCalendar1Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         noLagHolidayCalendar1Mapping.useBasicIndirection();
         noLagHolidayCalendar1Mapping.addForeignKeyFieldName("noLagHolidayCalendar1->noLagHolCal_IN_REFERENCE_IdcFakeBusCal_IdcHolCal4", "IdcHolCal.id");
         descriptor.addMapping(noLagHolidayCalendar1Mapping);
         OneToOneMapping noLagHolidayCalendar2Mapping = new OneToOneMapping();
         noLagHolidayCalendar2Mapping.setAttributeName("noLagHolidayCalendar2");
         noLagHolidayCalendar2Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         noLagHolidayCalendar2Mapping.useBasicIndirection();
         noLagHolidayCalendar2Mapping.addForeignKeyFieldName("noLagHolidayCalendar2->noLagHolCal_IN_REFERENCE_IdcFakeBusCal_IdcHolCal4", "IdcHolCal.id");
         descriptor.addMapping(noLagHolidayCalendar2Mapping);
         OneToOneMapping noLagHolidayCalendar3Mapping = new OneToOneMapping();
         noLagHolidayCalendar3Mapping.setAttributeName("noLagHolidayCalendar3");
         noLagHolidayCalendar3Mapping.setReferenceClass(com.integral.finance.dateGeneration.HolidayCalendarC.class);
         noLagHolidayCalendar3Mapping.useBasicIndirection();
         noLagHolidayCalendar3Mapping.addForeignKeyFieldName("noLagHolidayCalendar3->noLagHolCal_IN_REFERENCE_IdcFakeBusCal_IdcHolCal4", "IdcHolCal.id");
         descriptor.addMapping(noLagHolidayCalendar3Mapping);
         OneToOneMapping rollConventionMapping = new OneToOneMapping();
         rollConventionMapping.setAttributeName("rollConvention");
         rollConventionMapping.setReferenceClass(com.integral.finance.dateGeneration.RollConventionC.class);
         rollConventionMapping.useBasicIndirection();
         rollConventionMapping.addForeignKeyFieldName("rollConvention->rollConvention_IN_REFERENCE_IdcFakeBusCal_IdcCalc", "IdcCalc.id");
         descriptor.addMapping(rollConventionMapping);
         return descriptor;

  • Object Map Link in Navigation Page

    I am playing with Navigation Pages in R2. When I create a new page group Portal automantically creates two sample navigation pages: "Sample Banner 1" and "Sample Vertical Navbar". On the "Sample Vertical Navbar" there is an item called "Page Group Map" which has a type of "Object Map Link".
    I've tried to create my own custom navigation Page and would like to include this item. However, "Object Map Link" does not appear in any of the "add item" choices. Am I looking in the wrong place?

    Hi Robert,
    You may need to expose the Object Map Link item type in your page group first. Edit the page group properties, go to the Configure tab, click Edit in the Content Type and Classification section, then make sure that Object Map Link is included in the Visible Item Types list.

  • Object Map Link  root starting point

    Is it possible to set the root of a Object Map Link to a single page group?
    How
    Luca

    Currently no. There are some alternative page maps available on Knowledge Exchange, such as this one (PortalCenter login required). A new Site Indexing portlet will also be available soon on the Portal Integration Solutions page.
    Regards,
    Jerry
    PortalPM

  • Orion-ejb-jar: cmp-field-mapping specs REMOTE home

    In the tech. preview documentation, in the EJB dev. guide, and in the section which details the orion-ejb-jar, I noticed something odd about the "cmp-field-mapping" element. It has an attribute called "ejb-reference-home", which is supposed to be "the JNDI location of the fields remote EJB-home if the field is an entity EJBObject or EJBHome".
    I would assume this would only be set if this field was specified as a CMR field in the ejb-jar.xml file.
    The odd thing is, it specifies the REMOTE home, not the LOCAL home. Is this just a typo?

    I believe that it is not JDeveloper issue but OC4J one. It does not pick up new orion-ejb-jar.xml if you re-deploy bean(s). It should deploy your orion-ejb-jar.xml when you're deploying yor application for the first time (so there is not orion-ejb-jar.xml in deployments directory). If you want OC4J to pick changes up remove orion-ejb-jar.xml from $OC4J_HOME/application-deployments/<application>/<Bean>.jar/ and then deploy it either manually or with JDeveloper. I hope it will help.

  • How to manipulate object mapping runtime using DOM parser in java?

    Scenario: We will be getting logical name of the table from which we have to fetch the details. We have few tables which have more or less same columns, the only difference is the prefix. Say we have Tables: Temp1 and Temp2 contains column as Temp1Col1 and Temp2Col1. I dont want to go with creating as many POJO classes in java as that of tables. So i will create only one POJO class with common attributes and at runtime i want to change the object mapping file of Hibernate to hold table values. I have an idea that this can be done using DOM parser. But it would be great if somebody can share the java code for the same.
    Thanks in advance.

    SAX is a parser, not a generator.Well,
    you can use it to create an XML file too. And it will take care of proper encoding, thus being much superior to a normal textwriter:
    See the following code snippet (out is a OutputStream):
    PrintWriter pw = new PrintWriter(out);
          StreamResult streamResult = new StreamResult(pw);
          SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
          //      SAX2.0 ContentHandler.
          TransformerHandler hd = tf.newTransformerHandler();
          Transformer serializer = hd.getTransformer();
          serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"pdfBookmarks.xsd");
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"http://schema.inplus.de/pdf/1.0");
          serializer.setOutputProperty(OutputKeys.METHOD,"xml");
          serializer.setOutputProperty(OutputKeys.INDENT, "yes");
          hd.setResult(streamResult);
          hd.startDocument();
          //Get a processing instruction
          hd.processingInstruction("xml-stylesheet","type=\"text/xsl\" href=\"mystyle.xsl\"");
          AttributesImpl atts = new AttributesImpl();
          atts.addAttribute("", "", "someattribute", "CDATA", "test");
          atts.addAttribute("", "", "moreattributes", "CDATA", "test2");
           hd.startElement("", "", "MyTag", atts);
    String curTitle = "Something inside a tag";
              hd.characters(curTitle.toCharArray(), 0, curTitle.length());
        hd.endElement("", "", "MyTag");
          hd.endDocument();
    You are responsible for proper nesting. SAX takes care of encoding.
    Hth
    ;-) stw

  • Auto-creating tables with CMP Explicit Mapping

    Hello.
    I am trying to migrate a working CMP EJB Jar from Weblogic to OC4J, using the admin.jar deploy utility. I believe my orion-ejb-jar.xml deployment descriptor (shown at the bottom) is set up properly, but OC4J attempts to auto-create tables for my entity beans anyway. (see messages that follow).
    Can anybody tell me why it tries to create these tables? Is something missing from my deployment descriptor?
    Thanks,
    David
    Auto-creating table: create table User_passwords_Passwor__fqeml6 (User_SEC_USER.
    SEC_USER_ID NUMBER not null, Password_SEC_USER_PASSWORD_ID NUMBER null)
    Error creating table: ORA-01748: only simple column names allowed here
    Auto-creating table: create table User_userRoles_UserRol__guatbv (User_SEC_USER.
    SEC_USER_ID NUMBER not null, UserRole_SEC_USER_ROLE_ID NUMBER null)
    Error creating table: ORA-01748: only simple column names allowed here
    Auto-creating table: create table Permission_RolePermiss__768cc0 (Permission_SEC
    FUNCTIONID NUMBER not null, RolePermission_SEC_ROLE_FUNCTION_ID NUMBER null)
    Error creating table: ORA-00972: identifier is too long
    Auto-creating table: create table Role_UserRole_role_User_39lzhp (Role_SEC_ROLE.
    SEC_ROLE_ID NUMBER not null, UserRole_SEC_USER_ROLE_ID NUMBER null)
    Error creating table: ORA-01748: only simple column names allowed here
    Auto-creating table: create table Role_rolePermissions_Ro_4ocmz1 (Role_SEC_ROLE.
    SEC_ROLE_ID NUMBER not null, RolePermission_SEC_ROLE_FUNCTION_ID NUMBER null)
    Error creating table: ORA-01748: only simple column names allowed here
    orion-ejb-jar.xml
    <?xml version="1.0"?>
    <!DOCTYPE orion-ejb-jar PUBLIC "-//Evermind//DTD Enterprise JavaBeans 1.1 runtime//EN" "http://xmlns.oracle.com/ias/dtds/orion-ejb-jar.dtd">
    <orion-ejb-jar deployment-version="9.0.3.0.0" deployment-time="e6e55808e4">
    <enterprise-beans>
    <session-deployment name="SecurityComponent" >
    </session-deployment>
    <session-deployment name="ServerSecurityContext" >
    </session-deployment>
    <session-deployment name="SecurityComponentSecurityFilter" >
    </session-deployment>
    <entity-deployment name="User" table="SEC_USER" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="userId" persistence-name="SEC_USER.SEC_USER_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="partyId" persistence-name="PARTY_ID" />
    <cmp-field-mapping name="officeLocation" persistence-name="OFFICE_LOCATION" />
    <cmp-field-mapping name="defaultLocation" persistence-name="DEFAULT_LOCATION" />
    <cmp-field-mapping name="districtVvid" persistence-name="DISTRICT_VVID" />
    <cmp-field-mapping name="userName" persistence-name="SEC_USER.USER_NAME" />
    <cmp-field-mapping name="accountActivationDate" persistence-name="SEC_USER.ACCOUNT_ACTIVATION_DATE" />
    <cmp-field-mapping name="defaultBranchVvid" persistence-name="SEC_USER.DEFAULT_BRANCH_VVID" />
    <cmp-field-mapping name="unitVvid" persistence-name="UNIT_VVID" />
    <cmp-field-mapping name="sectionVvid" persistence-name="SEC_USER.SECTION_VVID" />
    <cmp-field-mapping name="lastUpdateTimestamp" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_DT" />
    <cmp-field-mapping name="lastUpdateSystemUserId" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_SEC_USER_ID" />
    <cmp-field-mapping name="failedLoginAttempts" persistence-name="SEC_USER.LOGIN_ATTEMPTS_CNT" />
    </entity-deployment>
    <entity-deployment name="Permission" table="SEC_FUNCTION" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="permisssionId" persistence-name="SEC_FUNCTION_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="permission" persistence-name="FUNCTION_NAME" />
    </entity-deployment>
    <entity-deployment name="Role" table="SEC_ROLE" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="roleId" persistence-name="SEC_ROLE.SEC_ROLE_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="lastUpdateTimestamp" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_DT" />
    <cmp-field-mapping name="lastUpdateSystemUserId" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_SEC_USER_ID" />
    <cmp-field-mapping name="roleDescription" persistence-name="SEC_ROLE.ROLE_DESC" />
    <cmp-field-mapping name="roleName" persistence-name="SEC_ROLE.ROLE_NAME" />
    </entity-deployment>
    <entity-deployment name="Password" table="SEC_USER_PASSWORD" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="passwordId" persistence-name="SEC_USER_PASSWORD_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="password" persistence-name="PASSWORD" />
    <cmp-field-mapping name="activeInd" persistence-name="ACTIVE_IND" />
    <cmp-field-mapping name="expirationDate" persistence-name="EXPIRATION_DATE" />
    <cmp-field-mapping name="userId" persistence-name="SEC_USER_ID" />
    <cmp-field-mapping name="lastUpdateTimestamp" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_DT" />
    <cmp-field-mapping name="lastUpdateSystemUserId" persistence-name="AUD_SYSTEM_OBJECT.LAST_UPDATE_SEC_USER_ID" />
    </entity-deployment>
    <entity-deployment name="UserRole" table="SEC_USER_ROLE" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="userRoleId" persistence-name="SEC_USER_ROLE_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="sequenceNum" persistence-name="SEQUENCE_NUM" />
    <cmp-field-mapping name="userId" persistence-name="SEC_USER_ID" />
    <cmp-field-mapping name="roleId" persistence-name="SEC_ROLE_ID" />
    </entity-deployment>
    <entity-deployment name="RolePermission" table="SEC_ROLE_FUNCTION" data-source="datasource-ecmsOraclePool">
    <primkey-mapping>
    <cmp-field-mapping name="roleFunctionId" persistence-name="SEC_ROLE_FUNCTION_ID" />
    </primkey-mapping>
    <cmp-field-mapping name="functionId" persistence-name="SEC_FUNCTION_ID" />
    <cmp-field-mapping name="roleId" persistence-name="SEC_ROLE_ID" />
    <cmp-field-mapping name="sequenceNum" persistence-name="SEQUENCE_NUM" />
    </entity-deployment>
    </enterprise-beans>
    <assembly-descriptor>
    </assembly-descriptor>
    </orion-ejb-jar>

    Hi David,
    The "autocreate-tables" attribute is defined in the DTD for the "orion-application.xml" file. This file is usually generated automatically by OC4J, from your application's "application.xml" file when you deploy your application. (Note that subsequent [re-]deployments of your application will not change the "orion-application.xml" file.)
    The default value for this attribute is 'true', and the default is defined in the "application.xml" file that is located in the "j2ee/home/config" subdirectory of the OC4J installation.
    Hope this answers your question.
    Good Luck,
    Avi.

  • Dto object mapping tool ?

    Hellu,
    I am looking for an open source object mapping tool like Dozer. (mapping one object to another existing object, so not dynamically like DynaDto does).
    If anyone has a good advice, please let me know ?
    I am not so crazy about Dozer, I use it but it has some strange behavior...
    So I am looking for an alternative, but can't really find a good one :(...
    thanx

    Here's some free packages.
    We're using Castor, there are few tools and the docs are not that good.
    http://castor.exolab.org/
    I'm researching this package at present, can't say much about it except that it appears to be as good as (and maybe better than) Castor.
    http://jakarta.apache.org/ojb/index.html
    Dave

  • XML to Object Mapping for Java Enums

    Hi,
    I have a question regarding XmlBeans. Does tangosol XmlBean support Java Enums for managing XML-to-Object mapping? If so, is there any documentation/examples?

    ... and I'm back. XmlBean does not support Java enum types.

  • A-Z, Site/object map

    Has anyone been able to produce an A-Z on their site that is updated automatically? Our serach facility is very good but users still insist on an A-Z.
    Has anyone produced a customised version of the object map - showing the basic Oracle object map on a page isn't as clear to site users as it could be

    The content repository views can be used to build custom site maps.
    Regards,
    Jerry
    PortalPM

  • Should ADF Entity Object Map to Database Table or View?

    We are building a new 3-tier JClient/ADF application. We have mapped most entity objects directly to database tables. Now that we are preparing to deploy, our DBA is angry; he believes that all entity objects should be mapped to database views. The developers see this as a headache, UML can not forward/reverse changes, and now we have another layer of abstraction, which doesn't seem to serve a useful purpose. What is the best practice in a new 3-tier application?

    Hi,
    I'm still having problems but I found out why these tables are returning errors. The username I've been given by the DBA to connect to the database is CONSULTA, but this user is only for querying purposes, the actual objects reside on a differente schema, of course, which is PROD. So the line:
    "CONSULTA"."ESTADOS"@"PROD@AYADEV_LOCATION" "ESTADOS"
    raises an exception because the table ESTADOS is not located on that schema, but on PROD. If I query the table from SQL Plus with:
    SELECT *
    FROM [email protected]@AYADEV_LOCATION
    then there's no problem at all.
    Why is this? How do I instruct OWB to point to the correct schema or to avoind fully qualifying the table name?
    Please help me, I'm kind of confused here.
    Best Regards,
    --oswaldo.
    [osantos]

  • Migrating CMP EJB mapped to SQL Server table with identity column from WL

    Hi,
        I want to migrate an application from Weblogic to SAP Netweaver 2004s (7.0). We had successfully migrated this application to an earlier version of Netweaver. I have a number of CMP EJBs which are mapped to SQL Server tables with the PK as identity columns(autogenerated by SQL Server). I am having difficulty mapping the same in persistant.xml. This scenario works perfectly well in Weblogic and worked by using ejb-pk in an earlier version of Netweaver.
       Please let me know how to proceed.
    -Sekhar

    I suspect it is the security as specified in the message. E.g .your DBA set the ID columns so no user can override values in it.
    And I suggest you 1st put the data into a staging table, then push it to the destination, this does not resolve the issue, but ensures better processing.
    Arthur
    MyBlog
    Twitter

  • Java to Oracle Object mapping

    Can any one tell me how to map ORacle object to java. I know we can use STRUCT class. I have vector type (which contains array values) and I want to send this data as object to procedure. Thanks !!

    Hi Vyshu,
    Getting a similar error
    "java.sql.SQLException: Non supported character set: oracle-character-set-838".
    I'm using Oracle v10g. And i'm getting this exception when accessing one of the TYPE Objects.
    I've tried setting the classpath to ojdbc14.jar and orai18n.jar. But, the issue doesn't seem to get resolved.
    Have any thoughts in this?????
    Tips are welcome from all .... !!!!
    - Jai
    null

  • XMl and Java object mapping

    I need to map java objects with XMl Node or XML Elements.
    My java objets get some attributes, for instance name,color ...
    and i need an output like:
    <OBJECT_OF_TYPE_XXX>
    <NAME>scott</NAME>
    <COLOR>red</COLOR>
    </OBJECT_OF_TYPE_XXX>
    Any idea?
    Thanks
    Maurice

    You can try JAXB which includes a compiler that generates classes based on the XML Schema for your xml structure. It also features the possibility to convert between xml and the generated objects.
    Take a look at chapter 9 and 10 at http://java.sun.com/webservices/docs/1.1/tutorial/doc/index.html

  • Logical to Physical objects Mapping

    Recently installed OLAPTRAIN's SALESTRACK AW, and noticed that there are many __AW_GENERATED.. object names.
    It is very difficult trying to trace back what these objects refer to, and quite challenging if we are using OLAP DML commands to create custom reports.
    This is the result of the 30 character limit AWM has when concatenating cube and measure names and concatenating dimension and attributes names.
    As an example for the Measure "Cross Over Linear Regression" (Logical Name: SALES_CUBE.CROSS_OVER_LINEAR_REGRESSION)
    "CROSS_OVER_LINEAR_REGRES" is COLUMN_NAME value in SALES_CUBE view and in ALL_CUBE_VIEW_COLUMNS data dictionary view
    "SALES_CUBE_CROSS_OVER_LINEAR_R" is the object name found using AWM OLAP Worksheet
    Now try creating Measure "Cross Over Linear Regression 1" (Logical Name: SALES_CUBE.CROSS_OVER_LINEAR_REGRESSION_1)
    "CROSS_OVER_LINEAR_REGR_1" is COLUMN_NAME value in SALES_CUBE view and in ALL_CUBE_VIEW_COLUMNS data dictionary view
    "__AW_GENERATED_164" is the object name found using AWM OLAP Worksheet
    I think AWM needs to be a little smarter in the way Object names are generated for measures/attributes.
    Possible AWM solution for this would be to restrict the Measure Name to 30 characters that includes the Cube Name length. User can then utilize the Short Label, Long Label and Description fields to enter proper descriptions.

    Although the physical AW object names are not shown in the data dictionary views in 11g, they are available through the Java OLAP API as of release 11.1.0.7.
    For example, many of the physical names of the AW object underlying a logical (i.e. AWM or USER_CUBE_DIMENSIONS) dimension can be found from the class
    oracle.olapi.metadata.deployment.AWPrimaryDimensionOrganization
    E.g.
    The name of the main AW dimension can be found using
    public final String getAWDimensionName()
    The name of the parent relation is
    public final String getParentRelationName()
    The name of the hierarchy dimension is
    public final String getHierarchyListName()
    To navigate from a logical dimension to the organization object you can do the following.
    MdmPrimaryDimension myDim = ...;
    AWPrimaryDimensionOrganization org = (AWPrimaryDimensionOrganization) myDim.getOrganization();
    Other physical object names can be located in other classes in the oracle.olapi.metadata.deployment package. This methods are public and supported, but do not appear in the JavaDoc. I don't know if they will be documented at any stage and I know of no immediate plans to make these objects visible through the data dictionary views.

Maybe you are looking for