Aggregate layer mapping

All,
I need help ,
1 have an aggregate table with columns (TotalUnits,ManUnits) with week grain and derived table (TotalUnits,ManUnits) with day grain
I am mapping to fact table having columns
TotalUnits : mapped to LTS derived and aggregate columns directly
AutoUnits : Calculation (TotalUnits-ManUnits) at present using only derived table but in dilema if we could add AGG
ManUnits :mapped to LTS derived and aggregate columns directly
Q1 :- how do i map the aggregate table to Autounits- Calculation (TotalUnits-ManUnits) ?
--adding the calc in the LTS aggregate and setting the content level to week !!!!
Q2 when i map the columns directly for Total and Man for both aggregate and derived i get aggregate as source in the Derived From box in the Logical column properties
is this normal to see the aggregate source as the primary source .

Edited by: Srini VEERAVALLI on Dec 25, 2012 8:27 AMThanks Srini
but i havent understood your point here
-Create measure AutoUnits with expression as TotalUnits-ManUnits and mapping with fact and other one is with Aggtable.
other way is just create another logical measure using existing column in logical fact
When you use these measures with date; fact will be used for other columns agg will be used.
the simpler way to explain is i have to have one logical column which should map derived and agg source
one source for day grain has a calculation and the aggregate has a different calculation
or to put it simply how will you map aggregate source to an existing day grain mapped column where calculation is involved

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;

  • Aggregate-collection-mapping combined with optimistic-locking

    I've tried to set up an aggregate-collection-mapping and everything seems to be okay. But one thing still lacks: use this aggregate-collection in combination with optimistic-locking. Defining to use optimistic-locking (exactly: timestamp locking) doesn't work. The generated sql-statement doesn't have the wanted timestamp field. Any idea is recommend.

    Hi,
    Aggregate collection mappings do support optimistic locking. You MUST map and store the version value in the object, not the cache. Aggregate objects are not cache independently of their parents so cannot store their version value in the cache.
    Make sure that you have:
    - provided a direc-to-field (non-readonly) mapping for the version field
    - define the locking policy to store the version value in the object, not the cache
    Example:
         descriptor.descriptorIsAggregateCollection();
         descriptor.useTimestampLocking("VERSION", false);
         // SECTION: DIRECTTOFIELDMAPPING
         DirectToFieldMapping directtofieldmapping3 = new DirectToFieldMapping();
         directtofieldmapping3.setAttributeName("version");
         directtofieldmapping3.setIsReadOnly(false );
         directtofieldmapping3.setFieldName("VERSION");
         descriptor.addMapping(directtofieldmapping3);

  • Layer Map Move in TrapCode Form

    The pic below shows an effect i have created with TC Form. It does exactly what i need it to.
    Because i am using a png to map the form to I thought that i could just move the png and the alhpa and displacement layers would adjust to adjust to that, but that is not so.
    When i move the dispacement i cant see the change in position.
    When i move the logo the the reveal is off and the TC Form shows it at the point of transition.
    Moving alpha and i cant see a change.
    Move the solid with tc form and the edge of the frame shows as the particles leave the viewing area.
    So how do i move it?
    I just need it to go 100px up to put a line of text.

    You can tie positions together across comps using a simple expression. Let's say the comp that contains the master layer with the position is called MainComp. Name the master layer "master Layer" then in the other comps add an expression to the Position Property you want to mimic. The expression reads like this:
    comp("MainComp").layer("masterLogo").position
    You can use the same format for any property. Just tie the same ones together. You can easily do this by opening up two timelines and then using the pickwhip to tie to the properties without any typing.

  • Aggregate mapping not saving all data

    Ok, this is the first time I have seen this problem. I am using Toplink 10.1.3.1 and I have an Altitude object, which is an aggregate which contains Integer alt and some enumerations for different types of altitudes. Upon persisting, I see that the enumerated types get persisted correctly, but the alt Integer goes into the database as null. What could be any possible reasons for this?

    Ok, I have seemed to get closer to what may be the problem. The structure we have is sort of like this:
    FlightPlan
    Altitude altitude - Altitude is mapped as aggregate
    FlightModel - Mapped as aggregate, with option set that can be null
    FlightModel
    int altitude - Mapped as read-only (this value should be the same as in the FlightPlan's altitude object)
    List model - One-to-many with the model
    If we happen to have the altitude object set in the FlightPlan, but we have a null FlightModel, then a null is the altitude in the database. But if I go and unmap the altitude in the FlightModel class, then upon persisting, the altitude in the database is as it should be and is not null.

  • Aggregate one-to-many relationship problem

    Hello,
    After migrating from Toplink 9i I've stumbled across a problem with our aggregate objects.
    Toplink Workbench reports no errors and generates a nice XML but in runtime I get this error whenever a aggregate function is used.
    [TopLink fin]: 2008.02.13 03:18:11.552--ServerSession(12626425)--Connection(29948747)--Thread(Thread[main,5,main])--SELECT DISTINCT t0.NPL_PACK_ID, t0.NPL_ID FROM NPL_MEDPROD t3, FASS_MEDPROD t2, NPL_MEDPROD t1, NPL_PACKAGE t0 WHERE (((t0.NPL_ID = t1._Presentation->NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test) AND ((t1.NPL_ID = t2.NPL_ID) AND (t3.NPL_ID LIKE '19750613000031%'))) AND (t3.NPL_ID = t2.NPL_ID))
    Caused by: Undantag [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DatabaseException
    Internt undantag: java.sql.SQLException: ORA-00911: invalid character
    Felkod: 911
    I belive that problem resides in this clause :
    t1._Presentation->NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test
    I've created a small test project with just a couple of classes but the same aggregate problem occurs which has let me to believe the problem does not come from the migrating process which was my first guess. If anyone could help me discover what I am doing wrong it would be very appreciated. Below is my test project output.
    <?xml version="1.0" encoding="UTF-8"?>
    <toplink:object-persistence version="Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)" xmlns:opm="http://xmlns.oracle.com/ias/xsds/opm" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:toplink="http://xmlns.oracle.com/ias/xsds/toplink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <opm:name>test</opm:name>
    <opm:class-mapping-descriptors>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>se.lif.fass.fassdata.impl.FASSMedProdImpl</opm:class>
    <opm:alias>FASSMedProdImpl</opm:alias>
    <opm:primary-key>
    <opm:field table="FASS_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy"/>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:one-to-one-mapping">
    <opm:attribute-name>_Medprod</opm:attribute-name>
    <opm:reference-class>schemas_npl.instance.impl.MedprodTypeImpl</opm:reference-class>
    <opm:private-owned>true</opm:private-owned>
    <opm:foreign-key>
    <opm:field-reference>
    <opm:source-field table="FASS_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    <opm:target-field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:field-reference>
    </opm:foreign-key>
    <opm:foreign-key-fields>
    <opm:field table="FASS_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:foreign-key-fields>
    <toplink:batch-reading>true</toplink:batch-reading>
    <toplink:selection-query xsi:type="toplink:read-object-query"/>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:read-only>true</opm:read-only>
    <opm:field table="FASS_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    <toplink:tables>
    <toplink:table name="FASS_MEDPROD"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>schemas_npl.instance.impl.MedprodTypeImpl</opm:class>
    <opm:alias>MedprodTypeImpl</opm:alias>
    <opm:primary-key>
    <opm:field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy"/>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:aggregate-object-mapping">
    <opm:attribute-name>_Medprodpack</opm:attribute-name>
    <toplink:reference-class>schemas_npl.instance.impl.MedprodTypeImpl$MedprodpackTypeImpl</toplink:reference-class>
    <toplink:allow-null>false</toplink:allow-null>
    <toplink:field-translations>
    <toplink:field-translation>
    <toplink:source-field name="_Presentation->NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test" xsi:type="opm:column"/>
    <toplink:target-field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </toplink:field-translation>
    </toplink:field-translations>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>_Nplid</opm:attribute-name>
    <opm:field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:read-only>true</opm:read-only>
    <opm:field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    <toplink:tables>
    <toplink:table name="NPL_MEDPROD"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>schemas_npl.instance.impl.MedprodTypeImpl$MedprodpackTypeImpl</opm:class>
    <opm:alias>MedprodTypeImpl$MedprodpackTypeImpl</opm:alias>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy"/>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:one-to-many-mapping">
    <opm:attribute-name>_Presentation</opm:attribute-name>
    <opm:reference-class>schemas_npl.instance.impl.MedprodTypeImpl$MedprodpackTypeImpl$PresentationTypeImpl</opm:reference-class>
    <opm:private-owned>true</opm:private-owned>
    <opm:target-foreign-key>
    <opm:field-reference>
    <opm:source-field table="NPL_PACKAGE" name="NPL_ID" xsi:type="opm:column"/>
    <opm:target-field name="_Presentation->NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test" xsi:type="opm:column"/>
    </opm:field-reference>
    </opm:target-foreign-key>
    <toplink:batch-reading>true</toplink:batch-reading>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>com.sun.xml.bind.util.ListImpl</toplink:collection-type>
    </toplink:container>
    <toplink:selection-query xsi:type="toplink:read-all-query">
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>com.sun.xml.bind.util.ListImpl</toplink:collection-type>
    </toplink:container>
    </toplink:selection-query>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>aggregate</toplink:descriptor-type>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    </opm:class-mapping-descriptor>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>schemas_npl.instance.impl.MedprodTypeImpl$MedprodpackTypeImpl$PresentationTypeImpl</opm:class>
    <opm:alias>MedprodTypeImpl$MedprodpackTypeImpl$PresentationTypeImpl</opm:alias>
    <opm:primary-key>
    <opm:field table="NPL_PACKAGE" name="NPL_PACK_ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy"/>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>_Nplpackid</opm:attribute-name>
    <opm:field table="NPL_PACKAGE" name="NPL_PACK_ID" xsi:type="opm:column"/>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:one-to-one-mapping">
    <opm:attribute-name>backref</opm:attribute-name>
    <opm:reference-class>schemas_npl.instance.impl.MedprodTypeImpl</opm:reference-class>
    <opm:foreign-key>
    <opm:field-reference>
    <opm:source-field table="NPL_PACKAGE" name="NPL_ID" xsi:type="opm:column"/>
    <opm:target-field table="NPL_MEDPROD" name="NPL_ID" xsi:type="opm:column"/>
    </opm:field-reference>
    </opm:foreign-key>
    <opm:foreign-key-fields>
    <opm:field table="NPL_PACKAGE" name="NPL_ID" xsi:type="opm:column"/>
    </opm:foreign-key-fields>
    <toplink:indirection xsi:type="toplink:value-holder-indirection-policy"/>
    <toplink:selection-query xsi:type="toplink:read-object-query"/>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:read-only>true</opm:read-only>
    <opm:field table="NPL_PACKAGE" name="NPL_ID" xsi:type="opm:column"/>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    <toplink:tables>
    <toplink:table name="NPL_PACKAGE"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    </opm:class-mapping-descriptors>
    <toplink:login xsi:type="toplink:database-login">
    <toplink:platform-class>oracle.toplink.platform.database.oracle.Oracle8Platform</toplink:platform-class>
    <toplink:user-name>fassadmin</toplink:user-name>
    <toplink:password>3CC3773C96563CA0C89634305615359CD62D1A19DF561D1E</toplink:password>
    <toplink:driver-class>oracle.jdbc.driver.OracleDriver</toplink:driver-class>
    <toplink:connection-url>jdbc:oracle:oci8:@DB2</toplink:connection-url>
    </toplink:login>
    </toplink:object-persistence>
    Regards
    /Jonas

    The issue is in the one-to-many mapping in the aggregate,
    <br>
    <opm:attribute-mapping xsi:type="toplink:one-to-many-mapping">
      <opm:attribute-name>_Presentation</opm:attribute-name>
      <opm:reference-class>schemas_npl.instance.impl.MedprodTypeImpl$MedprodpackTypeImpl$PresentationTypeImpl</opm:reference-class>
      <opm:private-owned>true</opm:private-owned>
      <opm:target-foreign-key>
        <opm:field-reference>
          <opm:source-field table="NPL_PACKAGE" name="NPL_ID" xsi:type="opm:column"/>
          <opm:target-field name="_Presentation->NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test" xsi:type="opm:column"/>
        </opm:field-reference>
      </opm:target-foreign-key>There is an issue with the Mapping Workbench and shared aggregates with one-to-many mappings and translating the foreign key fields. Did this work before, I would be surprized if it did, unless the 2.5 Builder was used?
    Anyway the easiest workaround is to either edit the XML and change the NPL_ID_IN_REFERENCE_NPL_PACKAGE_NPL_MEDPROD_Test column name to what it should be, or define a descriptor amendment method to define the one-to-many mapping with the correct field names.
    -- James : EclipseLink

  • External Map Source Adapter - MapViewer

    <p>
    Hi
    I am developing an application using Oracle Maps of OracleMapViewer 10.1.3 using OC4J
    </p>
    <p>
    The objective of this exercise is to make use of a cache generated by a non-MapViewer solution. The cache is stored at an external location and can be accessed by sending multiple HTTP requests. For any given extent, multiple HTTP requests needs to be sent to access the individual tiles covering the given area.
    http://servername/mapname/cache?level=0&row=11&column=1
    http://servername/mapname/cache?level=0&row=11&column=2
    http://servername/mapname/cache?level=0&row=12column=1
    http://servername/mapname/cache?level=0&row=12&column=2
    The logic to identify the tiles is also available. The problem is that the getMapTileRequest(...) returns only one string and this when passed would return only one image tile. (Correct me if my understanding is wrong)
    public abstract class MapSourceAdapter
    <strong>public abstract String getMapTileRequest(TileDefinition tile);</strong>
    public byte[] getTileImageBytes(TileDefinition tile) ;
    public Properties getProperties() ;
    One option is to have a servlet at the other end that would accept the extent and zoom level and then identify the tiles. But still it is not clear as whether MapViewer will accept one response or multiple responses from the external server.
    Need some guidance in this aspect
    Regards
    Govindarajan
    </p>

    1. The mapviewer tile servlet can response to multiple tile requests simultaneously. It makes multiple calls to the getMapTileRequest method, each of which gets the URL for one tile. So if you can define the map tile layer(map cache instance) in such a way that its tiles have the same size as the external tiles, mapviewer should be able to handle the tile requests without problem. You also need to modify the XML tile layer(map cache instance) definition and add parameter "fetch_larger_tiles" to the root node and set its value to "false". Without this change, mapviewer will fetch map images that are several times larger than the actual tiles and cut them into tiles later on.
    2. With the latest patch, you can define a custom tile layer on the client side and fetch the tiles directly from the non-mapviewer tile server. Because this approach does not duplicate the tiles in mapviewer's tile cache, it is better than 1 if the non-mapviewer tile server can serve the tiles as fast as mapviewer. Demo #50 on the mapviewer tutorial page shows how to use custom tile layer.

  • BMM layer creation (Star Schema Physical Layer) - What to add/not add?

    Hi All,
    I am just looking for any general feedback on the thought/question below.
    I am setting out on creating my first BMM layer and trying to determine what I need to do in this layer that will be different and add value from what I already did in the physical layer. My data model is already defined as a star schema within my data mart source. So in the physical layer I have my facts imported along with the dimensions and I have joined them together as needed. Here is what I think I will setup as I move into the BMM layer:
    1. I will add heirarchies as needed to enable drill down within my reports
    2. I will need to add my calculations/measures to allow for any type of metric to be returned through a request in Answers
    3. I do not see a large need to create logical tables (at least not yet) based on multiple physical source tables as my source is already a star schema and dimensionally modeled. For users that also already source a star schema at the physical layer .. do you find that you do a lot of logical table creation/mapping to add functionality or does your BMM look a lot like you Physical Layer?
    Other than steps 1 and 2, I am not really sure how much additional manipulation I might do from the Physical to BMM layer since my Physical is already a star schema. Am I missing anything? Obviously everyone's data model and circumstances are different but I wasn't sure if maybe there were some good thoughts on what I might be missing (if anything)?
    One last question .. I am not currently planning to use any aliases at the Physical Layer but I do plan to rename the tables at the presentation layer to be more business verbage like. Why are others using aliases?
    Thanks in advance for the help.
    K

    Alastair, thanks for the advice. I'll definitely keep that in mind as I start to build out the BMM.
    One question/issue I just ran into as I was wrapping up my Physical Layer mapping. When I check for global consistency, I am getting an error that is complaining that I have multiple joins defined between the same two tables (which I do). This is because I have the following setup:
    TBL_A_FACT
    F_ID_HIT
    F_HIT_DESC
    F_ID_MISSED
    F_MISSED_DESC
    TBL_B_DIM
    F_ID
    F_DESC
    Table A joins to Table B in two ways:
    TBL_A_FACT.F_ID_HIT = TBL_B_DIM.F_ID
    TBL_A._FACT.F_ID_MISSED = TBL_B_DIM.F_ID
    The F_IDs can be either hit or missed on any given fact record and the total distinct set exist in the dimension.
    When I define two foreign key joins in the physical layer based on the relationship above and check Global Consistency, I get an error saying that "TBL_A and TBL_B have multiple joins define. Delete duplicate foreign keys if they exist" and it is listed as an error. I guess this makes sense because when the two tables are used in a request OBIEE would need to know how to join them (using the hit or missed field). What is the best approach for handling this..
    - Should I define TBL_A twice in the physical layer as:
    TBL_A (Alias TBL_A_HIT)
    F_ID_HIT
    F_ID_HIT_DESC
    TBL_A (Alias TBL_A_MISSED)
    F_ID_MISSED
    F_ID_MISSED_DESC
    Or do something like the above in the BMM layer?
    Thanks for the help!
    K
    And then establish the relationships using these separate tables?

  • Searching by aggregate type field leads to error message in Workbench

    I defined a persistent pojo entity that contains an attribute as an aggregate type mapping.
    Now I tried to query entities with an instance of that aggregate type as parameter to the query (TL expression query in the workbench).
    First argument (query key) is the attribute of the entity (aggregate type), operator is EQUAL and second argument is the parameter which is of same aggregate type.
    I thought this would be the natural way to query but the workbench shows an error message:
    0251 - The expression (line 1.) on query readByOwner is invalid. When querying on a reference mapping, only unary operators (Is Null, Not Null) are supported.
    Is this really an error? Where is the problem?
    I found a similiar post from 2003 on this forum, saying that it is a bug, though I'm unsure if it is the same problem. I use the most recent version of Toplink and Workbench, so it's hard to believe that such a basic problem was not fixed for 5 years... was it?
    Regards,
    Sebastian

    I have recording messages using the TCD command.
    My script (very simple):
    MESSAGE ( MSG_2 ).
    TCD ( ME21 , ME21_1 , R3 ).
    ENDMESSAGE ( E_MSG_2 ).
    In the MESSAGE command interface, I defined rules to allow several kind of messages.
    Execution: 3 mesages found:
          * transform PR into PO
           MESSAGE     MSG_2 [1,009 sec]
             RULES  MSG_2 = XML-DATA-01
            Message  MODE  EXIT  TYPE  ID    NR
            [1]      'A'         'I'   06    456
            [2]      'A'         'W'   'ME'  080
            [3]      'A'         'E'   'ZE'  029
             TCD    ME21                 [0,545 sec N] Target sys R3 -> ZDA010A219
            S06017 Standard PO created under the number 8201075606
               Tgt System Z_A219->R3->ZDA010A219 (ZDA 010 ... HP-UX ORACLE)
               CALL TRANSACTION ME21 ME21_1 XML-DATA-01
               03 MESSAGES FROM ME21 ME21_1 XML-DATA-01
               I  06 456 Release effected with release code 00001
               W  ME  080 Delivery date: next workday is 02.05.2007
               S  06 017 Standard PO created under the number 8201075606
           ENDMESSAGE  E_MSG_2 (&TFILL = 0)
    As you can see, 3 messages are found but the &TFILL variable is still 0.
    I guess (but cannot test yet) I would manage to record those messages using SAPGUI command.
    Is there anything wrong with my script?
    My SAP_BASIS component is in version 620. I'm not using the ultimate version of eCATT (no WEBDYNPRO command, etc.). Could it be an explanation?
    Thank you in advance,
    Olivier

  • UNABLE TO GET CUSTOMIZED COLORS IN TILE LAYER

    Hi,
    I just created one Base map using 2 geometry themes-:
    1.THEME_DEMO_STATES
    2.THEME_DEMO_STATES_LINE.
    I jsut customized my 2 themes as follows:
    1.Theme_demo_states as follows:
    Theme optios:styling rules
    Rendering:C:PARK FOREST & labellling as T.ROAD NAME.
    2.THEME_DEMO_STATES_LINE:
    Theme optios:styling rules
    rendering as:C.ROSY BROWN & labelling as :T.AIRPORT NAME.
    my THEME_DEMO_STATES will look like with green color and THEME_DEMO_STATES_LINE will look like with rosy brown border.
    now my problem is i just created a tile layer by using these two which will give me green color states with rosy brown states boundary lines for US. but while i am using this tile layer map in answers it is showing me default colors only.like rosy brown background color for borders too.
    why i am unable to see my customised backgroung color for states and my customized boundary lines for states.
    Please suggest and help me .
    Thanks & Regards
    Rishi

    Did you clear the mapviewer map metadata cache and remove the old tiles after you made the change to the themes?

  • Aggregate descriptors and query keys

    We are in the process of migrating from TopLink to EclipseLink.
    I have a class Audit that contains the auditing columns that are common to other classes
    I have another class Customer that extends the Audit.
    Audit is an aggregate descriptor mapped in Customer.
    There is an UpdateAllQuery to update a single customer row in the customer.
    To update the audit column an addUpdate is added on the field.
    query.addUpdate(builder.getField("LAST_UPDT_USER_C"), "Test");
    When this query is executed I get an error saying the field is not mapped. But this field is mapped in the aggregate.
    This used to work in TopLink.
    Any idea why it errors out and how to solve it?
    Thanks for the help.
    The JavaDoc says that getField work on non mapped field -
    Expression org.eclipse.persistence.internal.expressions.DataExpression.getField(String fieldName)
    ADVANCED: Return an expression representing a field in a data-level query. This is used internally in EclipseLink, or to construct queries involving fields and/or tables that are not mapped.
    ERROR -
    Exception Description: Attribute name or expression passed as a first parameter to addUpdate method defines a field from a table that's not mapped to query descriptor.
    Attribute name or Expression: [
    Field LAST_UPDT_USER_C
    Base QUERY OBJECT]
    Wrong field: [LAST_UPDT_USER_C]

    Hello,
    I can't see what has changed in the area that throws the exception, as it seems similar to TopLink 11. Which version of TopLink was this working on, and what version of EclipseLink are you using?
    If the field is mapped, why are you not using the attribute mapping via the builder.get("audit").get("auditMappingForTheField") instead of accessing the field directly?
    The code itself seems to throw an exception because the table for the field cannot be found in the descriptor's table list You can try to define the table name in the field and see if this helps: builder.getField("Tablename.LAST_UPDT_USER_C"). If this works, please file a bug as it should not be neccessary or the error message needs to be fixed.
    Best Regards,
    Chris

  • How to combine "Object-to-XML (OXM)" and "Direct to XML Type" mapping?

    hi
    If I have an XMLType column in my table (wich I can map using TopLink) and I have defined the structure of the contents of this XMLType column using XML Schema (wich I can map using Toplink), how can I combine both types of TopLink mappings "as transparently as possible"?
    for "Object-to-XML (OXM)" mapping
    see http://www.oracle.com/technology/products/ias/toplink/technical/tips/ox/index.htm
    for "Direct to XML Type" mapping
    see http://www.oracle.com/technology/products/ias/toplink/doc/1013/main/_html/relmapun004.htm#CHDFIFEF
    thanks
    Jan Vervecken

    Thanks for your reply James Sutherland.
    Although I haven't used a "TopLink Converter" before, this seems like a good idea.
    The thing is that the "TopLink Workbench Editor" for my "Direct to XML Type" mapping doesn't have a "Converter" tab, some other mapping type editors do have such a "Converter" tab.
    I'm not sure if I completely understand how such a "TopLink Converter" is supposed to work. How many attributes do I need in the "XMLRow" Java object for the "MY_XML" column in the "XML_TABLE" table I try to map to?
    I suppose I should try to get a situation where the "XMLRow" Java object has an "myXML" attribute of Java class type "MyXML" (where "MyXML" has been mapped to an XML Schema), not?
    So do I also still need an attribute "myXMLDocument" of type org.w3c.dom.Document as I do now for the "Direct to XML Type" mapping?
    Oh, by the way ... for anyone who hits this forum thread looking for the reason why the TopLink Workbench reports the problem "Attribute must be assignable to java.lang.String, org.w3c.dom.Document, or org.w3c.Node" while your attribute is of such a type, read this forum post
    Re: Toplink WB 10.1.3 - Aggregate field mapping bug and XMLType question
    For me the "Direct to XML Type" mapping works fine, just ignoring the waring. This is supposed to be bug number 5071250.
    thanks
    Jan Vervecken

  • How to access multiple maps in OEID studio

    Hi,
    We are using our own instance of MapViewer(I added new tile layer) for the map component in studio. We updated the settings in the framework settings tab. Now we see the map component (google map) with the map we had configured .
    I have another map (Tile layer) in the mapviewer which shows the store view (not google map) . Now I want to display that in another map component. But as the settings for the Mapviewer are global , I am unable to do this .
    Is there any way that we can configure two different tile layers so that we can show two different maps in the studio.
    P.S. - Going forward we want to achieve this : As the user keeps on zooming in to the google map , the map changes to store Map.
    Regards,
    Mayank Batra

    Hi Maciek,
    To use google map in Oracle Map viewer , you need to do following :
    In your mapviwer :
    * Login to mapviewer admin .
    * Click on 'Management' tab on top.
    * Click on 'Manage Map Tile Layer' tab.
    * Click Create on left nav -> Select Google Maps as map source -> click continue
    * Enter tile layer map name and select your data source.
    * Enter the key . Key has to be generate from google map APIs using following link :
    https://developers.google.com/maps/documentation/javascript/tutorial#api_key
    * click on submit.
    * now your tile layer is created.
    Go to Endeca studio ->
    * Go to Framework Settings under control panel.
    * Change df.mapViewer to your mapviewer server url and df.mapTileLayer to name of <datasourcename>.<maptilelayer> you just used in MapViewer.
    Good to go...
    HTH,
    Mayank Batra

  • How to make a flat object look round?

    I have a round logo for a company. I want to make it look like it is painted on to a christmas tree ornament.. so it almost needs to look 3D. Can I do this in photoshop or illustrator or something? Any thoughts?

    And for the lights/shadows one can often achieve good effects just with brushing in black and white on either two Solid Color-layers or two Gradient-Adjustment Layers Clipping Masked to the content-layer.
    Or, if one has CS4, one can use the small 3D-objects-library under 3D – New Shape From Layer, map the content onto that and light it according to one’s taste.

  • Trying to use Particle Playground

    I just updated from CS4 to CS5 and suddenly I cannot use the Particle Playground effect. It worked just fine under CS4. Now...nothing.
    I am on a MAC intel MacPro running 10.5.8 with 2 X 3.2 Quad core Intel Xeon and 10GB Ram
    Any ideas would be appreciated.

    This is quite an old post, but I am having exactly the same problem - particle playground produces nothing .
    I'm running CS5 (AE 10.0.1.19) on a Mac Pro 2x 2.4GHz Quad Core Xeon with 12GB RAM & OS10.6.4
    Even if I just create a new project, then new comp (any size, it makes no difference), new solid (comp size), then effect>particle playground, I get nothing - not even the stream of red dots that it produces by default. BUT, when I do a RAM preview, the info panel does its usual report of "number of particles: 116" etc. so it's actually calculating the particles, just not displaying them. I've tried tweaking the particles per sec, the grid settings, etc. etc....but nothing. I used to use particle playground a lot on CS3 & CS4, so it's not user error. I've tried tweaking the memory settings and turning multiprocessing and OpenGL off and on.
    BUT - I have just discovered, if I use a layer map instead of the default particle dot, it works fine. So it's not as huge a problem as I first thought, as most of the time I use a layer map for the particle. But it would be nice to have if fixed!

Maybe you are looking for