Creating a Analytic Workspace

hi,
i use the AWM 10.2.0.3.Now I want to create a analytic workspace without the AWM, but i want to see the things what I have created in him. I Know that I can use the dbms_aw package to create an aw and for the dimensions and so on the dbms_awm package. For the OLAP Catalog Metadata I want to use the cwm2 package. How I have understood I must first create the Metadata for the OLAP Catalog with the cwm2 package and then I can define the dimensions with the dbms_awm. Is that right???
At first I have defined a aw with the command: execute dbms_aw.execute ('aw create ''myaw''');
After this I want to create the OLAP Catalog Metadata for the dimension Placement, but by creating the mappings he brings an excepiton and I don't know why.
execute cwm2_olap_dimension.create_dimension('GLOBAL', 'Placement_DIM', 'Placement', 'Placements', 'Place', 'Placements');
exec cwm2_olap_dimension_attribute.create_dimension_attribute ('GLOBAL','PLACEMENT_DIM','Long Description','Long Descriptions','Long Desc','Long Product Descriptions',true);
exec cwm2_olap_dimension_attribute.create_dimension_attribute ('GLOBAL','PLACEMENT_DIM','Place_NAME_DIM','Placement Name','Place Name','Placement Name');
exec cwm2_olap_hierarchy.create_hierarchy ('GLOBAL','PLACEMENT_DIM','STANDARD','Standard','Std Placement','Standard Placement Hierarchy','Unsolved Level-Based');
exec cwm2_olap_dimension.set_default_display_hierarchy ('GLOBAL','PLACEMENT_DIM','standard');
exec cwm2_olap_level.create_level ('GLOBAL','PLACEMENT_DIM','L4','Placement ID','Placement Identifiers','Place Key','Placement Key');
exec cwm2_olap_level.create_level ('GLOBAL','PLACEMENT_DIM','L3','Placement Sub-Category','Placement Sub-Categories','Place Sub-Category','Sub-Categories of Placements');
exec cwm2_olap_level.create_level ('GLOBAL','PLACEMENT_DIM','L2','Placement Category','Product Categories','Place Category','Categories of Placements');
exec cwm2_olap_level.create_level ('GLOBAL','PLACEMENT_DIM','L1','Total Placement','Total Placements','Total Place','Total Placement');
exec cwm2_olap_level_attribute.create_level_attribute ('GLOBAL','PLACEMENT_DIM','Long Description','L4','Long Description','PLACEMENT_LABEL','L4 Long Desc','Long Labels for PLACEMENT Identifiers',TRUE);
exec cwm2_olap_level_attribute.create_level_attribute ('GLOBAL','PLACEMENT_DIM','Long Description','L3','Long Description','SUBCATEGORY_LABEL','L3 Long Desc','Long Labels for PLACEMENT Sub-Categories', TRUE);
exec cwm2_olap_level_attribute.create_level_attribute ('GLOBAL','PLACEMENT_DIM','Long Description','L2','Long Description','CATEGORY_LABEL','L2 Long Desc','Long Labels for PLACEMENT Categories', TRUE);
exec cwm2_olap_level_attribute.create_level_attribute ('GLOBAL','PLACEMENT_DIM','PLACE_NAME_DIM','L4','PLACE_NAME_LEV','Placement Name','Placement Name','Placement Name');
exec cwm2_olap_level.add_level_to_hierarchy ('GLOBAL','PLACEMENT_DIM','STANDARD','L4','L3');
exec cwm2_olap_level.add_level_to_hierarchy ('GLOBAL','PLACEMENT_DIM','STANDARD','L3','L2');
exec cwm2_olap_level.add_level_to_hierarchy ('GLOBAL','PLACEMENT_DIM','STANDARD','L2','L1');
exec cwm2_olap_level.add_level_to_hierarchy ('GLOBAL','PLACEMENT_DIM','STANDARD','L1');
--- Creating the Mappings -----
exec cwm2_olap_table_map.Map_DimTbl_HierLevel ('GLOBAL','PLACEMENT_DIM','STANDARD','L4','GLOBAL','PLACEMENTS','PLACE_ID');
exec cwm2_olap_table_map.Map_DimTbl_HierLevelAttr ('GLOBAL','PLACEMENT_DIM','Long Description','STANDARD','L4','Long Description','GLOBAL','PLACEMENTS','PLACE_DESC');
exec cwm2_olap_table_map.Map_DimTbl_HierLevelAttr ('GLOBAL','PLACEMENT_DIM','PROD_NAME_DIM','STANDARD','L4','PLACE_NAME_LEV','GLOBAL','PLAcEMENTS','PLACE_NAME');
exec cwm2_olap_table_map.Map_DimTbl_HierLevel ('GLOBAL','PLACEMENT_DIM','STANDARD','L3','GLOBAL','PLACEMENTS','PLACE_SUBCATEGORY');
exec cwm2_olap_table_map.Map_DimTbl_HierLevelAttr ('GLOBAL','PLACEMENT_DIM','Long Description','STANDARD','L3','Long Description','GLOBAL','PLACEMENTS','PLACE_SUBCATEGORY_DESC');
exec cwm2_olap_table_map.Map_DimTbl_HierLevel ('GLOBAL','PLACEMENT_DIM','STANDARD','L2','GLOBAL','PLACEMENTS','PLACE_CATEGORY');
exec cwm2_olap_table_map.Map_DimTbl_HierLevelAttr ('GLOBAL','PLACEMENT_DIM','Long Description','STANDARD','L2','Long Description','GLOBAL','PLACEMENTS','PLACE_CATEGORY_DESC');
exec cwm2_olap_table_map.Map_DimTbl_HierLevel ('GLOBAL','PLACEMENT_DIM','STANDARD','L1','GLOBAL','PLACEMENTS','PLACE_TOTAL');
After this procedures I want to create and refresh the dimensions with the command:
execute dbms_awm.create_awdimension ('GLOBAL','PLACEMENT','GLOBAL','MYAW','AW_PLACE');
execute dbms_awm.refresh_awdimension('GLOBAL','MYAW','AW_PLACE);
I hope someone can follow me what I want to do.
Thanks

1. Windows 7 x64
2. awm11.1.0.7.0B
3. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
4. on my machine
5. This file contains a lot of information, I can not read it properly...
Dump file c:\oracle_db\app\jrq-\diag\rdbms\orcl\orcl\incident\incdir_31205\orcl_ora_6124_i31205.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Windows NT Version V6.1 Service Pack 1
CPU                 : 2 - type 8664, 2 Physical Cores
Process Affinity    : 0x0x0000000000000000
Memory (Avail/Total): Ph:1435M/4082M, Ph+PgF:3822M/8163M
Instance name: orcl
Redo thread mounted by this instance: 0 <none>
Oracle process number: 0
Windows thread id: 6124, image: ORACLE.EXE (SHAD)
*** 2014-06-11 00:21:58.561
Dump continued from file: c:\oracle_db\app\jrq-\diag\rdbms\orcl\orcl\trace\orcl_ora_6124.trc
ORA-07445: exception encountered: core dump [kghfrf()+367] [ACCESS_VIOLATION] [ADDR:0x0] [PC:0x8ED8231] [UNABLE_TO_WRITE] []
ORA-03113: end-of-file on communication channel
========= Dump for incident 31205 (ORA 7445 [kghfrf()+367]) ========
----- Beginning of Customized Incident Dump(s) -----
Exception [type: ACCESS_VIOLATION, UNABLE_TO_WRITE] [ADDR:0x0] [PC:0x8ED8231, kghfrf()+367]
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
Process Id: 0x0000191c  Thread Id : 0x000017ec    Time : Wed Jun 11 00:21:58
Excp. Code: 0xc0000005  Excp. Type: ACCESS_VIO    Flags: 0x00000000

Similar Messages

  • Creating an Analytic Workspace

    Hi,
    i want to create an analytic Workspace without the AWM, but I want to see the Dimensions Cubes, etc what I create in the AWM. I Work with the AWM 10.2.0.3.0. What packages must I use for it? Someone say I must use the cwm2 and the dbms package an otherone say that I must use the AW/XML package.
    Give it a Example for Creating an AWM??
    Thanks

    If you want to create the AW without manually sitting in front of the AWM, Oracle prefers you to use the AWXML and AWAction packages in Java. If you have the AWM installed on your machine, you have the jar files you need in the AWM install directory. Download JDEV and try to load and compile this example program as a way to start learning the library.
    package oracle.olapi.examples;
    import oracle.AWAction.BuildDatabase;
    import oracle.AWAction.Interaction;
    import oracle.AWXML.AggregationDefinition;
    import oracle.AWXML.AggregationHierarchySpecification;
    import oracle.AWXML.Attribute;
    import oracle.AWXML.AttributeProjection;
    import oracle.AWXML.AttributeSourceExpression;
    import oracle.AWXML.AW;
    import oracle.AWXML.AWConnection;
    import oracle.AWXML.Cube;
    import oracle.AWXML.CubeDimensionSourceExpression;
    import oracle.AWXML.CubeDimRef;
    import oracle.AWXML.CubeMapGroup;
    import oracle.AWXML.Dimension;
    import oracle.AWXML.DimensionKeySourceExpression;
    import oracle.AWXML.DimensionMapGroup;
    import oracle.AWXML.DimensionMemberExpression;
    import oracle.AWXML.HierarchicalParentSourceExpression;
    import oracle.AWXML.Hierarchy;
    import oracle.AWXML.HierarchyLevelAssociation;
    import oracle.AWXML.Level;
    import oracle.AWXML.Measure;
    import oracle.AWXML.MeasureFolder;
    import oracle.AWXML.MeasureSourceExpression;
    import oracle.AWXML.PreComputeClause;
    import oracle.AWXML.SourceColumn;
    import oracle.express.spl.SPLExecutor;
    import oracle.jdbc.OracleConnection;
    import java.io.File;
    import java.io.FileWriter;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Iterator;
    import java.util.Properties;
    import java.util.StringTokenizer;
    import java.util.Vector;
    * Creates an analytic workspace based on the Global schema and populates
    * the analytic workspace with data from the tables of that relational schema.
    * Before creating the analytic workspace, the program deletes an analytic
    * workspace of the same name if it already exists.
    * The program generates a log file and it creates a file that records the
    * creation of the Oracle OLAP Analytic Workspace Java API objects as an XML string.
    * This program requires the Global schema, which is available on the Oracle
    * Technology Network at
    * http://www.oracle.com/technology/products/bi/olap/olap.html
    * To download the sample schema, in the Documentation section see Sample
    * Schemas for Documentation.
    * To run this program, use the following command-line arguments, where
    * server_name is the server on which the Oracle Database is running,
    * port is the number of the port on which Oracle OLAP is listening,
    * and sid is the system identifier (SID) of the database instance:
    * -conn server_name:port:sid -user global_aw -password global_aw
    * Instead of the -conn argument, you could substitute a -url argument
    * of the following form:
    * -url jdbc:oracle:thin:@server_name:port:sid
    * An example of the command-line arguments is the following:
    * -conn myOracleServer:1521:orcl -user global_aw -password global_aw
    public class BuildAWExample extends BaseExample
    public static AWConnection awConnection;
    private Interaction curInteraction;
    // The elements in the _keys Vector are the relational key columns to which
    // a Level is mapped.
    Vector _keys = new Vector(0);
    // The elements in the _cols Vector are the relational columns to which
    // the attributes for a Level are mapped.
    Vector _cols = new Vector(0);
    // The elements in the _levels Vector are the Level objects for specifying
    // the levels of a hierarchy.
    Vector _levels = new Vector(0);
    // The elements in the _levColumns Vector are the relation columns to which
    // the levels of the hierarchy are mapped.
    Vector _levColumns = new Vector(0);
    Vector _dimList = new Vector(0);
    Vector _measures = new Vector(0);
    Vector _measCols = new Vector(0);
    // File name for writing the XML string.
    String xmlStr = "buildAWEx.xml";
    // File for AW build log.
    String xmlBldStr = "buildAWEx.log";
    * Constructor.
    public void BuildAWExample()
    * Creates the top-level objects for the analytic workspace and calls methods
    * that create the lower-level objects.
    * Writes the analytic workspace objects to an XML string.
    * Builds the analytic workspace framework and populates the analytic
    * workspace with data.
    * Connects to the Oracle Database instance, retrieves information
    * about the construction of the analytic workspace, and writes the
    * information to a log file.
    * Finally, closes the connection to the database.
    public void run() throws Exception
    // Get the command line arguments that are stored in the Properties object.
    String connection = getConnectionProperty(props);
    String user = props.getProperty("user");
    String password = props.getProperty("password");
    // Create the AWConnection.
    try
    System.out.println("Connecting to " + connection + ".");
    awConnection = new AWConnection(user, password, connection);
    catch(Exception e)
    System.out.println("Error connecting to " + connection + ".\n" + e);
    // Specify a name for the analytic workspace.
    String awName = "GLOBALAW";
    // Delete the analytic workspace if it already exists.
    deleteExistingAW(awConnection, user, awName);
    // Create an AW object and give it a name.
    AW globalAW = new AW();
    globalAW.setName(awName);
    // Create Dimension objects, and pass each Dimension to a method that
    // creates Attribute, Hierarchy, and Level objects for it.
    // Create the TIME_AW Dimension and set names for the object.
    Dimension timeDim = globalAW.createDimension();
    timeDim.setName("TIME_AW");
    timeDim.setShortName("TIME_AW");
    timeDim.setLongName("TIME_AW dimension");
    timeDim.setIsTime(true);
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createTimeDim(timeDim);
    // Get the detail level to use when creating a Cube.
    Vector timelevels = timeDim.getLevels();
    Level monthLevel = (Level)_time_levels.elementAt(0);
    // Create the CUSTOMER_AW Dimension and set names for the object.
    Dimension customerDim = globalAW.createDimension();
    customerDim.setName("CUSTOMER_AW");
    customerDim.setShortName("CUSTOMER_AW");
    customerDim.setLongName("CUSTOMER_AW dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createCustomerDim(customerDim);
    // Get the detail level to use when creating a Cube.
    Vector customerDim_levels = customerDim.getLevels();
    Level shipToLevel = (Level)customerDim_levels.elementAt(0);
    // Create the PRODUCT_AW Dimension and set names for the object.
    Dimension productDim = globalAW.createDimension();
    productDim.setName("PRODUCT_AW");
    productDim.setShortName("PRODUCT_AW");
    productDim.setLongName("PRODUCT_AW Dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createProductDim(productDim);
    // Get the detail level to use when creating a Cube.
    Vector productDim_levels = productDim.getLevels();
    Level itemLevel = (Level)productDim_levels.elementAt(0);
    // Create the CHANNEL_AW Dimension and set names for the object.
    Dimension channelDim = globalAW.createDimension();
    channelDim.setName("CHANNEL_AW");
    channelDim.setShortName("CHANNEL_AW");
    channelDim.setLongName("CHANNEL_AW dimension");
    // Create the Attribute, Level, and Hierarchy objects for the Dimension.
    this.createChannelDimension(channelDim);
    // Get the detail level, which is shared by all dimension hierarchies,
    // to use when creating a Cube.
    Vector channellevels = channelDim.getLevels();
    Level channelLevel = (Level)_channel_levels.elementAt(0);
    // Create the UNITS_CUBE_AW Cube and the measures to associate with it.
    this.clearCubeMapVectors();
    Cube unitsCube = globalAW.createCube();
    unitsCube.setName("UNITS_CUBE_AW");
    // Add the dimensions to the _dimList Vector.
    _dimList.add(timeDim);
    _dimList.add(customerDim);
    _dimList.add(productDim);
    _dimList.add(channelDim);
    // Specify the dimensions for the Cube.
    this.associateCubeDimensions(unitsCube, _dimList);
    // Create an aggregation map for the Cube.
    this.precomputeNA(unitsCube, "AGGMAP_UC");
    // Create a Measure for the quantities of units sold.
    Measure units = unitsCube.createMeasure();
    units.setName("UNITS_AW");
    units.setShortName("UNITS_AW");
    units.setLongName("UNITS_AW measure");
    units.setDataType("NUMBER");
    // Add the Measure to the _measures Vector.
    _measures.add(units);
    // Add the column of the Global schema relational table to the
    // _measCols Vector.
    measCols.add("GLOBAL.UNITSHISTORY_FACT.UNITS");
    // Create a Measure for the monetary amount of units sold.
    Measure sales = unitsCube.createMeasure();
    sales.setName("SALES_AW");
    sales.setShortName("SALES_AW");
    sales.setLongName("SALES_AW measure");
    sales.setDataType("NUMBER");
    _measures.add(sales);
    _measCols.add("GLOBAL.UNITS_HISTORY_FACT.SALES");
    // Add the detail levels for the dimensions to the _levels Vector and
    // the relational columns for the levels to the _cols Vector.
    _levels.add(monthLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.MONTH_ID");
    _levels.add(shipToLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.SHIP_TO_ID");
    _levels.add(itemLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.ITEM_ID");
    _levels.add(channelLevel);
    _cols.add("GLOBAL.UNITS_HISTORY_FACT.CHANNEL_ID");
    // Map the columns of the relational tables to the dimensions and measures
    // of the analytic workspace Cube.
    this.createCubeMap(unitsCube, _levels, _cols, _measures, _measCols);
    // Create the PRICE_COST_CUBE_AW Cube and the measures to associate with it.
    this.clearCubeMapVectors();
    Cube priceCostCube = globalAW.createCube();
    priceCostCube.setName("PRICE_COST_CUBE_AW");
    _dimList.add(productDim);
    _dimList.add(timeDim);
    this.associateCubeDimensions(priceCostCube, _dimList);
    this.precomputeNA(priceCostCube, "AGGMAP_PCC");
    // Create a Measure for unit prices.
    Measure price = priceCostCube.createMeasure();
    price.setName("UNIT_PRICE_AW");
    price.setShortName("UNIT_PRICE_AW");
    price.setLongName("UNIT_PRICE_AW measure");
    price.setDataType("NUMBER");
    _measures.add(price);
    _measCols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.UNIT_PRICE");
    // Create a Measure for unit costs.
    Measure cost = priceCostCube.createMeasure();
    cost.setName("UNIT_COST_AW");
    price.setShortName("UNIT_COST_AW");
    cost.setLongName("UNIT_COST_AW measure");
    cost.setDataType("NUMBER");
    _measures.add(cost);
    _measCols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.UNIT_COST");
    _levels.add(itemLevel);
    _cols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.ITEM_ID");
    _levels.add(monthLevel);
    _cols.add("GLOBAL.PRICE_AND_COST_HIST_FACT.MONTH_ID");
    this.createCubeMap(priceCostCube, _levels, _cols, _measures, _measCols);
    // Create a MeasureFolder and add the measures to it.
    // A MeasureFolder appears as an MdmSchema object to an
    // Oracle OLAP Java API application.
    MeasureFolder measureFolder = globalAW.createMeasureFolder();
    measureFolder.setName("GLOBALAW_SCHEMA");
    measureFolder.setShortName("GLOBALAW_SCHEMA");
    measureFolder.setLongName("GLOBALAW_SCHEMA schema");
    measureFolder.addMeasure(units);
    measureFolder.addMeasure(sales);
    measureFolder.addMeasure(cost);
    measureFolder.addMeasure(price);
    // Write the XML string for the analytic workspace.
    String XML = globalAW.WriteToXML();
    try
    File xmlFile = new File(xmlStr);
    FileWriter xmlout = new FileWriter(xmlFile);
    xmlout.write(XML);
    xmlout.write("\n");
    xmlout.close();
    catch (Exception e)
    System.out.println("Failure to write XML string to file: " +
    e.toString());
    // Build the analytic workspace framework.
    System.out.println("Building the " + awName + " framework.");
    globalAW.Create(awConnection);
    globalAW.Commit(awConnection);
    System.out.println(awName + " framework built!");
    // Populate the analytic workspace with the metadata objects and
    // the data from the relational schema.
    System.out.println("Populating " + awName + "." );
    try
    xml_build_global_aw(awName);
    catch(Exception e)
    System.out.println("The following error occurred while building "
    + awName + ":\n\t" + e.toString());
    // Connect to the Oracle Database instance and retrieve information
    // about building the analytic workspace.
    try
    // Create a DriverManager.
    DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
    // Create a connection to the Oracle Database instance.
    OracleConnection o_connection =
    (OracleConnection)DriverManager.getConnection("jdbc:oracle:thin:@" +
    connection, user, password);
    // Get information from the olapsys.xml_load_log table.
    String result = null;
    String sqlText = "select distinct xml_loadid " +
    "from olapsys.xml_load_log " +
    "order by xml_loadid desc";
    Statement sqlStmt = o_connection.createStatement();
    ResultSet rs = sqlStmt.executeQuery(sqlText);
    if(rs.next())
    // Get the first value.
    int loadid = rs.getInt(1);
    rs.close();
    // Now get the rest of the log without the timestamp for easy diffing.
    sqlText = "select SUBSTR(xml_message, 9) xml_message " +
    "from olapsys.xml_load_log " +
    "where xml_loadid = " + loadid + " " +
    "order by xml_loadid, xml_recordid";
    rs = sqlStmt.executeQuery(sqlText);
    String tempResult;
    while(rs.next())
    tempResult = rs.getString(1);
    if(result == null)
    result = tempResult.trim();
    else
    result = result + "\n" + tempResult.trim();
    // Write the information to a file.
    try
    File xmlBuildLog = new File(xmlBldStr);
    FileWriter xmlBldout = new FileWriter(xmlBuildLog);
    xmlBldout.write(result);
    xmlBldout.write("\n");
    xmlBldout.close();
    catch (Exception e)
    System.out.println("Failure to write XML build log: " + e.toString());
    catch(Exception e)
    System.out.println("Verifier failure with " + e.toString());
    // Close the connection to the database.
    awConnection.close();
    * Builds the analytic workspace.
    public void xml_build_global_aw(String awName)
    // Create an Interaction object for building the analytic workspace.
    curInteraction = new Interaction();
    // Set the AWConnection to use when building the analytic workspace.
    curInteraction.setConnection(awConnection);
    // Create an BuildDatabase object.
    BuildDatabase myBuild =
    (BuildDatabase)curInteraction.createAction("BUILDDATABASE");
    // Set the name of the analytic workspace.
    myBuild.setAWName(awName);
    // Specify not running solves when building the database.
    myBuild.setRunSolve(false);
    // Build the analytic workspace.
    myBuild.Execute();
    * Creates Attribute, Level, and Hierarchy objects for the Time Dimension.
    public void createTimeDim(Dimension timeDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    timeDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute timeLDAttr = createLongDescAttr(timeDim);
    Attribute timeSDAttr = createShortDescAttr(timeDim);
    // Create the End_Date and Time_Span Attribute objects.
    Attribute timeEndDateAttr = timeDim.createAttribute();
    timeEndDateAttr.setName("End_Date");
    timeEndDateAttr.setClassification("END_DATE");
    Attribute timeTimeSpanAttr = timeDim.createAttribute();
    timeTimeSpanAttr.setName("Time_Span");
    timeTimeSpanAttr.setClassification("TIME_SPAN");
    // Create the Level objects for the Dimension.
    // Create the detail level, MONTH_AW.
    Level monthLevel = timeDim.createLevel();
    monthLevel.setName("MONTH_AW");
    monthLevel.setShortName("MONTH_AW");
    monthLevel.setLongName("MONTH_AW level");
    // Create AttributeProjection objects for the attributes for the
    // MONTH_AW Level.
    this.setupAttributeProjection(monthLevel, "Long Description", timeLDAttr);
    this.setupAttributeProjection(monthLevel, "Short Description", timeSDAttr);
    this.setupAttributeProjection(monthLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(monthLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.MONTH_ID");
    _cols.add("GLOBAL.TIME_DIM.MONTH_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.MONTH_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.MONTH_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.MONTH_TIMESPAN");
    this.createLevelMap(monthLevel, _keys,_cols);
    // Create the QUARTER_AW Level.
    Level quarterLevel = timeDim.createLevel();
    quarterLevel.setName("QUARTER_AW");
    quarterLevel.setShortName("QUARTER_AW");
    quarterLevel.setLongName("QUARTER_AW level");
    // Create AttributeProjection objects for the attributes for the
    // QUARTER_AW Level.
    this.setupAttributeProjection(quarterLevel, "Long Description",
    timeLDAttr);
    this.setupAttributeProjection(quarterLevel, "Short Description",
    timeSDAttr);
    this.setupAttributeProjection(quarterLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(quarterLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.QUARTER_ID");
    _cols.add("GLOBAL.TIME_DIM.QUARTER_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.QUARTER_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.QUARTER_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.QUARTER_TIMESPAN");
    this.createLevelMap(quarterLevel, _keys, _cols);
    // Create the top level, YEAR_AW.
    Level yearLevel = timeDim.createLevel();
    yearLevel.setName("YEAR_AW");
    yearLevel.setShortName("YEAR_AW");
    yearLevel.setLongName("YEAR_AW level");
    // Create AttributeProjection objects for the attributes for the
    // YEAR_AW Level.
    this.setupAttributeProjection(yearLevel, "Long Description", timeLDAttr);
    this.setupAttributeProjection(yearLevel, "Short Description", timeSDAttr);
    this.setupAttributeProjection(yearLevel, "End Date", timeEndDateAttr);
    this.setupAttributeProjection(yearLevel, "Time Span", timeTimeSpanAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.TIME_DIM.YEAR_ID");
    _cols.add("GLOBAL.TIME_DIM.YEAR_DSC"); // Long description
    _cols.add("GLOBAL.TIME_DIM.YEAR_DSC"); // Short description
    _cols.add("GLOBAL.TIME_DIM.YEAR_END_DATE");
    _cols.add("GLOBAL.TIME_DIM.YEAR_TIMESPAN");
    this.createLevelMap(yearLevel, _keys, _cols);
    // Create the CALENDAR_YEAR_AW Hierarchy.
    Hierarchy calendarYearHier = timeDim.createHierarchy();
    calendarYearHier.setName("CALENDAR_YEAR_AW");
    calendarYearHier.setShortName("CALENDAR_YEAR_AW");
    calendarYearHier.setLongName("CALENDAR_YEAR_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(yearLevel);
    _levColumns.add("GLOBAL.TIME_DIM.YEAR_ID");
    _levels.add(quarterLevel);
    _levColumns.add("GLOBAL.TIME_DIM.QUARTER_ID");
    _levels.add(monthLevel);
    _levColumns.add("GLOBAL.TIME_DIM.MONTH_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(calendarYearHier, _levels, _levColumns);
    * Create the Long_Description Attribute for a Dimension.
    public Attribute createLongDescAttr(Dimension dim)
    Attribute ldAttr = dim.createAttribute();
    ldAttr.setName("Long_Description");
    ldAttr.setClassification("MEMBER_LONG_DESCRIPTION");
    return ldAttr;
    * Creates Attribute, Hierarchy, and Level objects for the Customer Dimension.
    public void createCustomerDim(Dimension customerDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    customerDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute customerLDAttr = createLongDescAttr(customerDim);
    Attribute customerSDAttr = createShortDescAttr(customerDim);
    // Create Level objects for the SHIPMENTS_AW Hierarchy.
    // Create the detail level, SHIP_TO_AW.
    // This level is in both of the hierarchies of the Customer Dimension.
    Level customerShip_ToLevel = customerDim.createLevel();
    customerShip_ToLevel.setName("SHIP_TO_AW");
    customerShip_ToLevel.setShortName("SHIP_TO_AW");
    customerShip_ToLevel.setLongName("SHIP_TO_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // SHIP_TO_AW Level.
    this.setupAttributeProjection(customerShip_ToLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerShip_ToLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_DSC"); // Short description
    this.createLevelMap(customerShip_ToLevel, _keys, _cols);
    // Create the WAREHOUSE_AW level.
    Level customerWarehouseLevel = customerDim.createLevel();
    customerWarehouseLevel.setName("WAREHOUSE_AW");
    customerWarehouseLevel.setShortName("WAREHOUSE_AW");
    customerWarehouseLevel.setLongName("WAREHOUSE_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // WAREHOUSE_AW Level.
    this.setupAttributeProjection(customerWarehouseLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerWarehouseLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_DSC"); // Short description
    this.createLevelMap(customerWarehouseLevel, _keys, _cols);
    // Create the REGION_AW Level.
    Level custRegionLevel = customerDim.createLevel();
    custRegionLevel.setName("REGION_AW");
    custRegionLevel.setShortName("REGION_AW");
    custRegionLevel.setLongName("REGION_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the REGION_AW Level.
    this.setupAttributeProjection(custRegionLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(custRegionLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.REGION_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.REGION_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.REGION_DSC"); // Short description
    this.createLevelMap(custRegionLevel, _keys, _cols);
    // Create the top level, TOTAL_CUSTOMER_AW.
    Level allCustomersLevel = customerDim.createLevel();
    allCustomersLevel.setName("TOTAL_CUSTOMER_AW");
    allCustomersLevel.setShortName("TOTAL_CUSTOMER_AW");
    allCustomersLevel.setLongName("TOTAL_CUSTOMER_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the ALL_CUSTOMERS_AW Level.
    this.setupAttributeProjection(allCustomersLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(allCustomersLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_DSC"); // Short description
    this.createLevelMap(allCustomersLevel, _keys, _cols);
    // Create the SHIPMENTS_AW Hierarchy.
    Hierarchy shipmentsHier = customerDim.createHierarchy();
    shipmentsHier.setName("SHIPMENTS_AW");
    shipmentsHier.setShortName("SHIPMENTS_AW");
    shipmentsHier.setLongName("SHIPMENTS_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(allCustomersLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.TOTAL_CUSTOMER_ID");
    _levels.add(custRegionLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.REGION_ID");
    _levels.add(customerWarehouseLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.WAREHOUSE_ID");
    _levels.add(customerShip_ToLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(shipmentsHier, _levels, _levColumns);
    // Create Level objects for the MARKET_SEGMENT_AW Hierarchy.
    // Create the ACCOUNT_AW Level.
    Level customerAccountLevel = customerDim.createLevel();
    customerAccountLevel.setName("ACCOUNT_AW");
    customerAccountLevel.setShortName("ACCOUNT_AW");
    customerAccountLevel.setLongName("ACCOUNT_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the ACCOUNT_AW Level.
    this.setupAttributeProjection(customerAccountLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerAccountLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_DSC"); // Short description
    this.createLevelMap(customerAccountLevel, _keys, _cols);
    // Create the MARKET_SEGMENT_AW Level.
    Level customerMktSegmentLevel = customerDim.createLevel();
    customerMktSegmentLevel.setName("MARKET_SEGMENT_AW");
    customerMktSegmentLevel.setShortName("MARKET_SEGMENT_AW");
    customerMktSegmentLevel.setLongName("MARKET_SEGMENT_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the MARKET_SEGMENT_AW Level.
    this.setupAttributeProjection(customerMktSegmentLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerMktSegmentLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_DSC"); // Short description
    this.createLevelMap(customerMktSegmentLevel, _keys, _cols);
    // Create the top level, TOTAL_MARKET_AW.
    Level customerTotalMktLevel = customerDim.createLevel();
    customerTotalMktLevel.setName("TOTAL_MARKET_AW");
    customerTotalMktLevel.setShortName("TOTAL_MARKET_AW");
    customerTotalMktLevel.setLongName("TOTAL_MARKET_AW level");
    // Create AttributeProjection objects for the long and short description
    // attributes for the TOTAL_MARKET_AW Level.
    this.setupAttributeProjection(customerTotalMktLevel, "Long Description",
    customerLDAttr);
    this.setupAttributeProjection(customerTotalMktLevel, "Short Description",
    customerSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_ID");
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_DSC"); // Long description
    _cols.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_DSC"); // Short description
    this.createLevelMap(customerTotalMktLevel, _keys, _cols);
    // Create the MARKET_SEGMENT_AW Hierarchy.
    Hierarchy marketSegmentHier = customerDim.createHierarchy();
    marketSegmentHier.setName("MARKET_SEGMENT_AW");
    marketSegmentHier.setShortName("MARKET_SEGMENT_AW");
    marketSegmentHier.setLongName("MARKET_SEGMENT_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(customerTotalMktLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.TOTAL_MARKET_ID");
    _levels.add(customerMktSegmentLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.MARKET_SEGMENT_ID");
    _levels.add(customerAccountLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.ACCOUNT_ID");
    _levels.add(customerShip_ToLevel);
    _levColumns.add("GLOBAL.CUSTOMER_DIM.SHIP_TO_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(marketSegmentHier, _levels, _levColumns);
    * Creates Attribute, Level, and Hierarchy objects for the Product Dimension.
    public void createProductDim(Dimension productDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    productDim.setUseNativeKey(true);
    // Create the Attribute objects for the Dimension.
    Attribute packageAttr = productDim.createAttribute();
    packageAttr.setName("PACKAGE_AW");
    packageAttr.setClassification("USER");
    Attribute buyerAttr = productDim.createAttribute();
    buyerAttr.setName("BUYER_AW");
    buyerAttr.setClassification("USER");
    Attribute mktMngrAttr = productDim.createAttribute();
    mktMngrAttr.setName("MARKETING_MANAGER_AW");
    mktMngrAttr.setClassification("USER");
    Attribute productLDAttr = createLongDescAttr(productDim);
    Attribute productSDAttr = createShortDescAttr(productDim);
    // Create the detail level, ITEM_AW.
    Level itemLevel = productDim.createLevel();
    itemLevel.setName("ITEM_AW");
    itemLevel.setShortName("ITEM_AW");
    itemLevel.setLongName("ITEM_AW level");
    // Create AttributeProjection objects for the attributes for the
    // ITEM_AW Level.
    this.setupAttributeProjection(itemLevel, "PACKAGE_AW", packageAttr);
    this.setupAttributeProjection(itemLevel, "BUYER_AW", buyerAttr);
    this.setupAttributeProjection(itemLevel, "MARKETING_MANAGER_AW", mktMngrAttr);
    this.setupAttributeProjection(itemLevel, "Long Description", productLDAttr);
    this.setupAttributeProjection(itemLevel, "Short Description", productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.ITEM_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_PACKAGE_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_BUYER");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_MARKETING_MANAGER");
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.ITEM_DSC"); // Short description
    this.createLevelMap(itemLevel, _keys,_cols);
    // Create the FAMILY_AW level.
    Level familyLevel = productDim.createLevel();
    familyLevel.setName("FAMILY_AW");
    familyLevel.setShortName("FAMILY_AW");
    familyLevel.setLongName("FAMILY_AW level");
    // Create AttributeProjection objects for the attributes for the
    // FAMILY_AW Level.
    this.setupAttributeProjection(familyLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(familyLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.FAMILY_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.FAMILY_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.FAMILY_DSC"); // Short description
    this.createLevelMap(familyLevel, _keys,_cols);
    // Create the CLASS_AW level.
    Level classLevel = productDim.createLevel();
    classLevel.setName("CLASS_AW");
    classLevel.setShortName("CLASS_AW");
    classLevel.setLongName("CLASS_AW level");
    // Create AttributeProjection objects for the attributes for the
    // CLASS_AW Level.
    this.setupAttributeProjection(classLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(classLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.CLASS_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.CLASS_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.CLASS_DSC"); // Short description
    this.createLevelMap(classLevel, _keys,_cols);
    // Create the top level, TOTAL_PRODUCT_AW.
    Level totalProductLevel = productDim.createLevel();
    totalProductLevel.setName("TOTAL_PRODUCT_AW");
    totalProductLevel.setShortName("TOTAL_PRODUCT_AW");
    totalProductLevel.setLongName("TOTAL_PRODUCT_AW level");
    // Create AttributeProjection objects for the attributes for the
    // TOTAL_PRODUCT_AW Level.
    this.setupAttributeProjection(totalProductLevel, "Long Description",
    productLDAttr);
    this.setupAttributeProjection(totalProductLevel, "Short Description",
    productSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_ID");
    _cols.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_DSC"); // Long description
    _cols.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_DSC"); // Short description
    this.createLevelMap(totalProductLevel, _keys,_cols);
    // Create the PRODUCT_PRIMARY_AW Hierarchy.
    Hierarchy prodPrimaryHier = productDim.createHierarchy();
    prodPrimaryHier.setName("PRODUCT_PRIMARY_AW");
    prodPrimaryHier.setShortName("PRODUCT_PRIMARY_AW");
    prodPrimaryHier.setLongName("PRODUCT_PRIMARY_AW level");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(totalProductLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.TOTAL_PRODUCT_ID");
    _levels.add(classLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.CLASS_ID");
    _levels.add(familyLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.FAMILY_ID");
    _levels.add(itemLevel);
    _levColumns.add("GLOBAL.PRODUCT_DIM.ITEM_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(prodPrimaryHier, _levels, _levColumns);
    * Creates Attribute, Level, and Hierarchy objects for the Channel Dimension.
    public void createChannelDimension(Dimension channelDim)
    // Indicate that the primary key of the dimension table contains the
    // lowest-level dimension members.
    channelDim.setUseNativeKey(true);
    // Create the Long and Short Description Attribute objects for the Dimension.
    Attribute channelLDAttr = createLongDescAttr(channelDim);
    Attribute channelSDAttr = createShortDescAttr(channelDim);
    // Create the Level objects for the Dimension.
    // Create the detail level, CHANNEL_AW.
    Level channelLevel = channelDim.createLevel();
    channelLevel.setName("CHANNEL_AW");
    channelLevel.setShortName("CHANNEL_AW");
    channelLevel.setLongName("CHANNEL_AW level");
    // Create AttributeProjection objects for the long and short description
    // attributes for the CHANNEL_AW Level.
    this.setupAttributeProjection(channelLevel, "Long Description",
    channelLDAttr);
    this.setupAttributeProjection(channelLevel, "Short Description",
    channelSDAttr);
    this.clearLevelMapVectors();
    _keys.add("GLOBAL.CHANNEL_DIM.CHANNEL_ID");
    _cols.add("GLOBAL.CHANNEL_DIM.CHANNEL_DSC"); // Long description
    _cols.add("GLOBAL.CHANNEL_DIM.CHANNEL_DSC"); // Short description
    this.createLevelMap(channelLevel, _keys, _cols);
    // Create the top level, ALL_CHANNELS_AW.
    Level allChannelsLevel = channelDim.createLevel();
    allChannelsLevel.setName("TOTAL_CHANNEL_AW");
    allChannelsLevel.setShortName("TOTAL_CHANNEL_AW");
    allChannelsLevel.setLongName("TOTAL_CHANNEL_AW level");
    // Create the Long and Short Description AttributeProjection objects for
    // the TOTAL_CHANNEL_AW Level.
    this.setupAttributeProjection(allChannelsLevel, "Long Description",
    channelLDAttr);
    this.setupAttributeProjection(allChannelsLevel, "Short Description",
    channelSDAttr);
    this.clearLevelMapVectors();
    // The order of the elements in the _cols Vector depends on the order
    // in which the attributes are created.
    // Columns in the relational tables are specified in the form
    // user.tablename.column
    _keys.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_ID");
    _cols.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_DSC"); // Long description
    _cols.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_DSC"); // Short description.
    this.createLevelMap(allChannelsLevel, _keys, _cols);
    // Create the CHANNEL_PRIMARY_AW Hierarchy.
    Hierarchy chanRollupHier = channelDim.createHierarchy();
    chanRollupHier.setName("CHANNEL_PRIMARY_AW");
    chanRollupHier.setShortName("CHANNEL_PRIMARY_AW");
    chanRollupHier.setLongName("CHANNEL_PRIMARY_AW hierarchy");
    // Add the Level objects for the Hierarchy, and the columns for them,
    // to Vector objects in the hierarcharchical order of the levels,
    // with the top level first.
    this.clearHierarchyMapVectors();
    _levels.add(allChannelsLevel);
    _levColumns.add("GLOBAL.CHANNEL_DIM.TOTAL_CHANNEL_ID");
    _levels.add(channelLevel);
    _levColumns.add("GLOBAL.CHANNEL_DIM.CHANNEL_ID");
    // Specify the levels for the hierarchy and map them to relational columns.
    this.createHierarchyMap(chanRollupHier, _levels, _levColumns);
    * Create the Short_Description Attribute for a Dimension.
    public Attribute createShortDescAttr(Dimension dim)
    Attribute sdAttr = dim.createAttribute();
    sdAttr.setName("Short_Description");
    sdAttr.setClassification("MEMBER_SHORT_DESCRIPTION");
    return sdAttr;
    * Creates an AttributeProjection for a Level and sets the name and the
    * Attribute to project onto the Level.
    public void setupAttributeProjection(Level _lev, String _name, Attribute _attr)
    AttributeProjection _ap = _lev.createAttributeProjection();
    _ap.setName(_name);
    _ap.setAttribute(_attr);
    * Creates the associations between Level objects and a Hierarchy.
    public void createHierarchyMap(Hierarchy _hier, Vector _levels, Vector columns)
    int i = 0;
    for(Iterator _lev = _levels.iterator(); _lev.hasNext();)
    Level _curLev = (Level)_lev.next();
    HierarchyLevelAssociation _hla = _hier.createHierarchyLevelAssociation();
    _hla.setLevel(_curLev);
    DimensionMapGroup _dmg = _hla.createSourceDimensionMapGroup();
    DimensionKeySourceExpression _dkse = _dmg.CreateKeyMap();
    SourceColumn _levColumn = _dkse.CreateSourceColumn();
    _levColumn.setColumn((String)columns.elementAt(i));
    // The first level has no parent.
    // Each subsequent level does have a parent.
    // The first element in the Vector must be the top-most level.
    if (i > 0)
    HierarchicalParentSourceExpression _hpse = _dmg.CreateParentMap();
    SourceColumn _hpsesc = _hpse.CreateSourceColumn();
    _hpsesc.setColumn((String)columns.elementAt(i-1));
    i++;
    * Clears the Vector objects that are used for specifying the Level objects
    * in a Hierarchy and for mapping the levels to the columns of a relational
    * table.
    public void clearHierarchyMapVectors()
    _levels.removeAllElements();
    _levColumns.removeAllElements();
    * Clears the Vector objects that are used for mapping a Level object to the
    * columns of a relational table.
    public void clearLevelMapVectors()
    _keys.removeAllElements();
    _cols.removeAllElements();
    * Creates a DimensionMapGroup that maps a Level to the columns of
    * a relational table.
    public void createLevelMap(Level _lev, Vector _keys, Vector _columns)
    // Map the keys of the relational table to the level.
    DimensionMapGroup _dmg = _lev.createSourceDimensionMapGroup();
    DimensionKeySourceExpression _key = _dmg.CreateKeyMap();
    for (int y=0; y < _keys.size(); y++)
    SourceColumn _keycol = _key.CreateSourceColumn();
    _keycol.setColumn((String)_keys.elementAt(y));
    // Map the columns of the relational tables or views to the
    // AttributeProjection objects.
    int i = 0;
    for(Iterator attrs = _lev.getAttributes().iterator(); attrs.hasNext();)
    AttributeProjection _curAttr = (AttributeProjection)attrs.next();
    AttributeSourceExpression _attrMap = _dmg.CreateAttributeMap();
    _attrMap.setTargetObject(_curAttr);
    SourceColumn _attrCol = _attrMap.CreateSourceColumn();
    _attrCol.setColumn((String)_columns.elementAt(i));
    i++;
    * Clears the Vector objects that are used for specifying the Level objects
    * in a Hierarchy and for mapping the levels to the columns of a relational
    * table.
    public void clearCubeMapVectors()
    _measures.removeAllElements();
    _measCols.removeAllElements();
    _levels.removeAllElements();
    _cols.removeAllElements();
    _dimList.removeAllElements();
    * Specifies the dimensions for a Cube.
    public void associateCubeDimensions(Cube _cube, Vector _dimList)
    for (int i=0; i < _dimList.size(); i++)
    CubeDimRef _cdr = _cube.createCubeDimRef();
    Dimension _dim = (Dimension)_dimList.elementAt(i);
    _cdr.setDimension(_dim);
    * Maps the columns of the relational tables to the dimensions and measures
    * of the analytic workspace Cube.
    public void createCubeMap(Cube _cube, Vector _levels, Vector _columns,
    Vector _measures, Vector _measCols)
    CubeMapGroup _cmg = _cube.createSourceCubeMapGroup();
    // Create the primary key in the fact table.
    for (int y=0; y < _levels.size(); y++)
    CubeDimensionSourceExpression _cdse = _cmg.CreateKeyMap();
    _cdse.addLevel((Level)_levels.elementAt(y));
    // Loop through the associated comma delimited
    // FKey columns in the fact table.
    StringTokenizer _st =
    new StringTokenizer((String)_columns.elementAt(y), "," );
    while (_st.hasMoreTokens())
    SourceColumn _keycol = _cdse.CreateSourceColumn();
    _keycol.setColumn(_st.nextToken());
    for(int x=0; x < _measures.size(); x++)
    Measure curMeasure = (Measure)_measures.elementAt(x);
    curMeasure.setAutoSolve("NO_AUTO_SOLVE");
    String curMeascol = (String)_measCols.elementAt(x);
    MeasureSourceExpression _measMap = _cmg.CreateAttributeMap();
    _measMap.setTargetObject(curMeasure);
    SourceColumn _meascol = _measMap.CreateSourceColumn();
    _meascol.setColumn(curMeascol);
    * Specifies excluding NA values when computing values while building the
    * analytic workspace.
    public void precomputeNA(Cube _cube, String _aggdef_name)
    // Rename the default aggregation definition that was implicitly created.
    AggregationDefinition _aggdef =_cube.getDefaultAggregationDefinition();
    _aggdef.setName(_aggdef_name);
    // Remove the default calculation specification.
    _aggdef.getCalculationSpecification().clear();
    Vector _dimrefs = _cube.getCubeDimRefs();
    for (Iterator _d = _dimrefs.iterator(); _d.hasNext();)
    AggregationHierarchySpecification _aggHierSpec =
    _aggdef.createAggregationHierarchySpecification();
    CubeDimRef _dimref = (CubeDimRef)_d.next();
    Dimension _dim = _dimref.getDimension();
    _aggHierSpec.setDimension(_dim);
    PreComputeClause _precompute_clause =
    _aggHierSpec.createPreComputeClause();
    DimensionMemberExpression _dimMemExp =
    _precompute_clause.createDimensionMemberExpression();
    _dimMemExp.setExpression("ALL");
    _dimMemExp.setExpressionType("EXCLUDE");
    * Deletes the analytic workspace if it already exists.
    private void deleteExistingAW(AWConnection awConnection, String user,
    String awName)
    try
    OracleConnection conn = (OracleConnection)
    awConnection.getSQLConnection();
    SPLExecutor splExec = new SPLExecutor(conn);
    splExec.initialize();
    try
    System.out.println("Deleting " + user + "." + awName + " if it exists.");
    splExec.executeCommand("aw delete " + user + "." + awName);
         // System.out.println("Deleted " + user + "." + awName + ".");
    catch(Exception e)
    // System.out.println("The " + user + "." + awName + " analytic workspace "
    // + "either did not exist or it could not be deleted.");
    catch(SQLException e)
    System.out.println("Could not initialize the SPL executor. " + e);
    private String getConnectionProperty(Properties props)
    String conn = props.getProperty("conn");
    if (conn == null)
    String url = props.getProperty("url");
    if (url.indexOf("@") > 0)
    conn = url.substring((url.lastIndexOf("@") + 1), url.length());
    props.put("conn", conn);
    return conn;
    public static void main(String[] args)
    new BuildAWExample().execute(args);
    }

  • Creating Database Standard Form Analytic Workspaces

    Just been looking through the new 9.2.0.4.1 documentation and came across the following. Thought it might be useful.
    The 9.2.0.4.1 release of Oracle OLAP introduces a new concept known as �Database Standard Form� Analytic Workspaces. This is a way of constructing analytic workspaces in a standard way such that they can be used by tools such as the Analytic Workspace Manager, the Java OLAP API, and BI Beans.
    When analytic workspaces are created from a relational star-schema using the Analytic Workspace Manager, it automatically creates the analytic workspace in standard form as part of the migration process. However, if you�re migrating an Express database to Oracle OLAP, the migrated database has to be processed to be in standard form before it is usable by any of the new Oracle OLAP GUI tools.
    If you create an analytic workspace using PL/SQL or the OLAP Worksheet, of course you can create dimensions, variables, relations and so on in any form, just as you can create table structures, joins, views and columns in any form in a relational database. However, the database standard form requirement stipulates that;
    Certain objects and properties need to be found in the analytic workspace, that are used by tools such as the Analytic Workspace Manager to perform tasks such as aggregation, data loads, and OLAP API enablement. OLAP DML views (beginning with AW$) need to created in the analytic workspace, to provide metadata and to identify relationships between objects in the analytic workspace. Objects need to be registered in the OLAP Catalog, and these registrations have to be kept in sync so that the OLAP tools are aware of changes to the base objects. Data that is migrated in to an analytic workspace, from a relational star-schema using the Analytic Workspace Manager, is already in database standard form and no further work is needed. However, some work is needed to get migrated Express databases into standard form, and Oracle have provided a utility with the 9.2.0.4.1 release of Oracle OLAP to help accomplish this.
    This utility, known as CREATE_DB_STDFORM, is an OLAP DML program that takes existing Oracle Express Objects metadata in a migrated Express database, and uses this to create the additional metadata required to make the analytic workspace �database standard form�.
    Once CREATE_DB_STDFORM has been used to create this additional metadata, it can also be used to import data into the workspace either from flat files, or from Oracle tables and views. If you don�t have Express Objects metadata in the Express database, CREATE_DB_STDFORM doesn�t work, and you�ll have to use Oracle Warehouse Builder 9.2 to initially create a relational star-schema that equates to the Express database, then use the OLAP Bridge within OWB to export the data into a database standard form analytic workspace.
    CREATE_DB_STDFORM, once run, allows the migrated Express database to be accessed via BI Beans straight afterwards, as it creates all the OLAP Catalog entries required for the OLAP API. If the Express database only contains data at the lowest level (i.e. it hasn�t been rolled up), aggregation wizards in the Analytic Workspace Manager can be used to summarise the data as required.
    CREATE_DB_STDFORM doesn�t do everything, however. First of all, you need to have created Oracle Express Objects metadata within the Express database, which is an additional step and not always appropriate for all systems. In addition, you need to create time dimensions in a particular way, which may require the data model to be adjusted to meet this requirement. Lastly, any Express language programs within the Express database may need to be adjusted to remove or change commands that have changed or become obsolete.
    The new document, �Oracle OLAP Application Developers Guide Release 9.2.0.4.1�, available on metalink under note 251352.1, details how database standard form works, has code examples, and walks through the migration of the XADEMO Express database to an analytic workspace using database standard form.

    In your message, you wrote "Certain objects and properties need to be found ... aware of changes to base objects". A large bit is represented by "...". Question is whether I have any commands or package functions that I can use to set up all the proper objects and relationships to make it have database standard form, short of regressing to a ROLAP star schema and usnig the AWM wizard. I have what appears to be working MOLAP activity, all created at the OLAP worksheet prompt, and loaded with DML program. Do I really have to put that all aside and start with a star schema? No way to put my AW in standard form for OLAP API without this?

  • Required privileges to create analytical workspace

    Is DBA role always required in order to create an analytical workspace? I don't think it will be wise to grant DBA role to everybody. Is there any other roles that allow a user name to create analytical workspace?
    I have tried to use only OLAP_DBA role but it didn't work ...
    sjarif

    No, you do not need the DBA role to create an Analytical Workspace. As long as it is your schema, you can create an AW. Please remember in order to access the Oracle OLAP option (Calculation engine, OLAP DML, OLAP API, AW, OLAP Catalog, etc.), previously you needed to install the Oracle9i Enterprise Edition with the Data Warehouse database configuration.

  • Dimension updates in Analytic workspace:Materialized views?

    We are using the 10g version of Oracle OLAP. We have 1 materialized view joining with our custom table and forming 1 source view per dimension. We load the cube programatically by refresh the dimension materialized views, followed by loading fact data to views against cube and then the actual workspace and cube creation..
    Question is :
    1) Do dimensions get loaded to analytic workspace only when the analytic workspace is created (programatically or maintain dimension via AW)?
    2) Assume we do not create the analytic workspace programatically or do not do a maintain dimension. In this case willl the dimensions in the analytic workspace get refreshed any time the data in source tables in the materialized view or custom table used in dimension source view change?
    Please advise.
    Thanks,
    Sudip

    If the data source changes for OLAP 10g then you must maintain the AW/ dimensions/cubes. There is no ability to check if anything in the source has changed.
    If using 11g, then you can use the MV refresh capabilities to maintain your AW (if your model conforms)...MV refresh features detects changes in the source tables.
    Hope I understood your question correctly.

  • Using Oracle Analytical Workspace With Excel

    Hi i have created an analytical workspace on Oracle Analytical Workspace, Now suppose i want to access this workspace from Excel , is this possible ?? If so How

    Hi,
    I understand there are three Oracle plug-ins for Excel: OLAP, OBIEE, and Essbase. I presume the plug-in you are using is the OLAP plug-in, which only works with Oracle 10g or earlier. Starting in Oracle 11g, however, Oracle recommends you use the Simba MDX Provider for Oracle OLAP (http://www.oracle.com/us/corporate/press/036550 and http://www.oracle.com/us/corporate/press/173668).
    If you use the MDX Provider, your application can connect directly to the Oracle OLAP cube. Since you are using Excel, your users don't need to connect through Oracle, and you do not need to manipulate the retrieved data before displaying it. Excel and its PivotTables will generate MDX queries against the Oracle database through the MDX Provider, so you don't need to use any plug-ins or APIs. This means you don't need to learn any new menus or APIs -- you just use native Excel functionality. Furthermore, your data is coming live from the Oracle database. Each time you open your workboook, you refresh your data with the Data -> Refresh button, and your spreadsheet data is current, not a stale copy.
    Please let me know if I am missing something in your requirements. Feel free to contact me directly if you have any questions or concerns.
    Mike

  • Analytic Workspaces and Database Tablespace

    Hi,
    I am trying to understand the intricacies in the setup of Analytic Workspaces and their corresponding tablespaces in the database, and here is the background:
    I created an Analytic Workspace, say AW1 in a database that had a tablespace, say TS1. After sometime, I created another Tablespace, TS2 in the same database and using the same schema as before, created an Analytic Workspace, AW2 in TS2.
    However, AW2 seems to get created in TS1 even though I select TS2 explicitly at the time of creating AW2. Also, if I drop an AW created using TS2 and then import it again (in the same schema) from the template, it gets created in TS1 and not TS2 as I would expect.
    In essence, it seems to me that all AWs get created in the TS that was the first TS of my database (TS1 in this case), irrespective of the fact that I created them in different Tablespaces. Also, for all these experiments, the database and the environment is the same.
    Can anyone please explain this behavior?
    For reference, the database in use is Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    and the AWs have been created using Oracle Analytic Workspace Manager (AWM) v10.2.0.3.0A.
    Any help is much appreciated.
    Thanks and Regards,
    Piyush

    Hi Piyush,
    AWM lets you specify the tablespace for your AW which allows you to override the default tablespace for the user. However, this information is not recorded in the XML template. Therefore, if you create an AW in a non-default tablespace, save the definition to an XML template, drop the AW and use the XML template to rebuild the AW then the AW will get created in the default tablespace.
    There are two workarounds to this (that I can think of)
    1) Use a script to rebuild the AW from the XML template and alter the users default tablespace as part of the script and then set it back after the AW has been built.
    2) Use the AW Create packages that do allow you to specify the tablespace for the AW, run the DML command to create the standard form metadata and then script the loading of the XML definitions for each dimension and all your cubes.
    Hope this helps
    Keith Laker
    Oracle EMEA Consulting
    BI Blog: http://oraclebi.blogspot.com/
    DM Blog: http://oracledmt.blogspot.com/
    BI on Oracle: http://www.oracle.com/bi/
    BI on OTN: http://www.oracle.com/technology/products/bi/
    BI Samples: http://www.oracle.com/technology/products/bi/samples/

  • Renaming a analytic workspace

    Hello,
    I created an Analytic workspace in dev - environment and then I created a template for it. I want to migrate the Analytic workspace to the prod environment using the template I created. I was able to do that, but now I want to rename the Analytic Workspace to a new name, but seems there is no option for me to do that. Any suggestions on how to do it.
    Thanks

    It is easy using PL/SQL.
    exec dbms_aw.aw_rename('OLD_AW_NAME', 'NEW_AW_NAME');Disconnect AWM before doing this or it will get confused.

  • Analytic Workspace Manager now available on OTN

    The Analytic Workspace Manager can now be downloaded from OTN at http://otn.oracle.com/software/htdocs/devlic.html?http://download.oracle.com/otn/java/olap/awm920.zip. It's 217MB and i've got it downloading now...
    It requires the 9.2.0.4.1 patch which can be downloaded from Metalink, using patch number 3084634
    To apply the 9.2.0.4.1 patch, you also need to have installed the 9.2.0.4 database patch beforehand, which can be downloaded from metalink using patch number 3095277.
    regards
    Mark

    I've managed to install the AWM + requisite patches now, and it's converting a relational star schema as I speak. Some points to note (not all steps listed here BTW)
    1. I first applied the 9.2.0.4 patch to an existing 9.2.0.1 database installation, which was installed alongside 9iAS R2, 9iDS, OWB9.2 and 9.0.4, and Express Server 6.3.4. The installer failed at an early stage with a 'resource bundle' error, and therefore I removed all Oracle software from my laptop, reinstalled just the Database 9.0.2.0.1, and started again from there.
    2. Follow the steps in the readme to drop the XMLCONCAT function, shutdown the database, and stop all services (including the database) in the ORACLE_HOME. Make sure you exit out of SQL*Plus before moving on.
    2. Run the 9.2.0.4 patch installer, install the new OUI, then install the 9.2.0.4 patch.
    3. Find the init.ora file (in my case named init.ora.962003152553 and located in C:/9ir2/admin/markr/pfile), and amend the file setting java_pool_size and shared_pool_size > 150M. You may need to set sga_max_size to a figure that is greater than these two amounts to fit this in. The figures I used were;
    sga_max_size=500000000
    java_pool_size=160554432
    large_pool_size=8388608
    shared_pool_size=160331648
    4. Startup the listener (lsnrct start), and the database (using 'startup migrate)
    5. set spool on, then run catpatch.sql
    6. run @ %ORACLE_HOME%/rdbms/admin/utlrp.sql
    7. Unlock the OLAPSYS account, then connect as OLAPSYS, then run @ %ORACLE_HOME%/cwmlite/admin/postamd.sql. When I ran this script, I got an error saying that a column I tried to add ('IS_AGGREGATABLE') already existed, but the rest of the script ran ok.
    8. I then unzipped the 9.2.0.4.1 patchset
    9. Run the One-Off patch that comes with the 9.2.0.4.1 patchset (in the /oneoffs directory) before you install the main 9.2.0.4.1 patch
    10. Once this has installed, start up the OUI that comes with Oracle 9i and select the products.jar file that comes with the patch. Install the patch as normal.
    11. cd $ORACLE_HOME/olap/admin, then connect as sqlplus "/ as sysdba", then run @olapu92041.sql
    12. Now the patches have all installed, unzip the awm920.zip file to a directory, run the installer, and the AWM will appear under the '%ORACLE_HOME%/Integrated Management Tools' start menu entry.
    I'm now in the process of trying to create an analytic workspace. I've submitted the COST_CUBE from the SH schema that comes with 9iR2 for conversion, although from what I understand this will not convert properly, and it has to be replaced by the BIBDEMO schema that comes with the BI Beans 9.0.3 download (http://otn.oracle.com/software/products/bib/download.html). The conversion's at 55% at the moment, so i'll see how it goes, and report back.

  • Analytic Workspace Manager - Hierarchies within hierarchies

    Hi,
    We have six levels of Sales Groups (SG) and two levels of Sales Personnel (SP).
    - SG1
    SP1- Sales Manager
    SP2- Sales Rep
    - SG2
    SP1
    SP2
    - SG3 ... so on and so forth
    We want to have drill down capability on SG1 so that we see SP levels underneath followed by the next level Sales Group i.e. SG2.
    My question is can we have hierarchies within hierarchies using Analytic Workspace Manager and can this be queried using Discoverer Plus for OLAP. If there is another way to do it, can someone please explain?
    Thanks again,
    -Esther

    I am not totally sure what you are trying to achieve as I think you might be confusing members with levels. From an OLAP perspective we support two basic types of hierarchies
    - Level based
    - Value based (Parent-Child)
    Within level based we additionally support:
    - normal
    - ragged
    - skip level
    Normal implies that you have a hierarchy where the each member for each level always has a parent at a the next level up in the hierarchy. Ragged hierarchies are where data is loaded at different levels within the hierarchy and skip level is where parents within a specific level are themselves defined at multiple levels.
    I am not sure if this answers your question, but you can find more information on how to manage hierarchies in the
    Oracle® OLAP Application Developer's Guide
    Section 3 Creating an Analytic Workspace
    Creating Hierarchies
    http://www.oracle.com/technology/products/bi/olap/OLAP_App_Dev_Guide_10.2.zip
    Hope this helps
    Keith
    Oracle Business Intelligence Product Management
    BI on Oracle: http://www.oracle.com/bi/
    BI on OTN: http://www.oracle.com/technology/products/bi/
    BI Beans http://www.oracle.com/technology/products/bib/index.html
    Discoverer: http://www.oracle.com/technology/products/discoverer/
    BI Software: http://www.oracle.com/technology/software/products/ias/devuse.html
    Documentation: http://www.oracle.com/technology/documentation/appserver1012.html
    BI Samples: http://www.oracle.com/technology/products/bi/samples/
    Blog: http://oraclebi.blogspot.com/

  • AWM: Enable Analytic Workspace for OLAP API

    Hi,
    I created an analytic workspace with Analytic Workspace Manager which is based on a relational star-schema.
    Now I want to access this analytical workspace by normal SQL-Statements. For this I executed in AWM the 'Enable Analytic Workspace for OLAP API and BI Beans ...' routine which generated views that contain the fact and dimension data.
    My problem is that these views are very huge, because they
    apparently store all possible combintations of dimension- and fact records. Most of the records contain only NULL values in the fact columns. I also used Composite Dimensions for the fact table in order to reduce sparsity.
    Is it normal to have such huge views with mostly NULL values? If yes, how can I handle this in order to get an acceptable performance.
    Here an example of a small fact table I use:
    A fact table with 5400 records with its two dimension tables (1129 and 233 rows, no hierarchies) produces 263057 rows in the view.
    Thanks for any help.

    Hi,
    First of all, thanks for the quick response flavio.
    Meanwhile I have found a solution to my problem:
    I don't use the 'Enable Analytic Workspace for OLAP API and BI Beans ...' routine of AWM anymore. Instead, I write my own statement for creating a relational view for the analytical workspace. The statement looks like following:
    create or replace force view costrate_cube as
    SELECT producttype_number, producttype_description, machine_sk, notok_costrate, production_costrate
    FROM TABLE(CAST(OLAP_TABLE(
    'costrate_aw DURATION SESSION',
    'costrate_table',
    'FETCH producttype_dim_producttype_number,
    producttype_dim_producttype_description,
    produnit_dim_machine_sk, produnit_dim_module_sk,
    notok_costrate_variable, production_costrate_variable
    USING <costrate_cube_composite>','') as costrate_table));
    The important part is the USING clause of the FETCH command. By using the composite of all dimensions of the cube, rows containing only null values in the fact columns are being eliminated. Now I get only the rows which are in my original relational fact table (which is what I wanted).
    Werner

  • Is it possible to create relational view on Analytic Workspace in Oracle 9i Release1

    Hi All,
    We are in the initial stages of Oracle 9i OLAP prototype. Since the current version of BIBeans 2.5 does not work with Release 2 of Oracle 9i OLAP, we are planning to use Oracle 9i OLAP Release 1. So can you please answer the following questions.
    1. Is it possible to create relational view on Analytic Workspace(like in Release 2) and populate the OLAP catalog, if so can you give me guidance to get the appropriate user guide. The OLAP DML guide in Release 1 talks about creating OLAP catalog metadata for Analytic Workspace using a metadata locator object.
    2, Is it advisable to use Oralce 9i OLAP Release 1? Does the Analytic Workspace and the corresponding BIBeans work in Release 1?
    Thank you,
    Senthil

    Analytic Workspaces (Express/multidimensional data objects and procedures written in
    the OLAP DML) are new to Oracle9i OLAP Release 2, you cannot find them in Release 1.
    BI Beans will soon (within a week) introduce a version on OTN that will work with Oracle9i OLAP Release 2.

  • Unable to create dimension in Analytic Workspace manager

    Hi all,
    I am trying to create dimension using Analytic Workspace Manager(AWM) and it throws the following error.
    *"The transaction is not committable: "java.lang.RuntimeException: org.xml.sax.SAXException: Missing XML attribute: Attribute for tag: <Metadata><StandardDimension><Organization><AWPrimaryDimensionOrganization><AttributeOrganization>"*
    Kindly share your comments.
    I am using Oracle 11g r1 client to connect with oracle 11g R2 database.
    Please let me know the steps to create a OLAP cube using AWM
    Regards
    Mukhil

    It sounds like a mismatch between an old version of AWM and a new version of the server. Please try a more recent version of AWM.
    http://www.oracle.com/technetwork/database/options/olap/olap-downloads-098860.html

  • Creating Dimension using template in Analytical workspace manager

    Hi,
    I am rajan, I am working with Oracle's Analytical workspace manager Release 2.
    I am trying to create the dimension using the templates from the file. it throws the following error,
    The following errors have occurred when loading contents:
    Closed Connection
    Note :     I am referring the tutorial in the following URL,
    http://st-curriculum.oracle.com/obe/db/10g/r2/prod/bidw/awm/awm_otn.htm and also i have downloaded the awm.zip file from the same URL and imported into my desktop.
    Right now, I am working based on this tutorial only.
    Kindly,help me to resolve this issue.
    Thanks
    Rajan

    Francisco,
    Query DBA_REGISTRY to verify the status of "OLAP Analytic Workspace" component.
    Also, wait for the script to finish and check the status of the objects then.
    Thanks,
    Hussein

  • Creating a DWMQY DIMENSION using Analytic Workspace Manager

    Hi everyone,
    I need some help creating a "time aware" (DAY, WEEK, MONTH, QUARTER, and YEAR) dimension using Analytic Workspace Manager.
    Let me give you some background. I'm coming from a traditional "Oracle Express" OLAP background where all our data is stored in cubes and these are defined, populated and operated on using OLAP DML, there is no SQL or traditional relational tables involved.
    I now want to pull data from relational tables into some OLAP cubes and am using Analytic Workspace Manager to do this (maybe this is not the best way?)
    Let me explain what I'm trying to achieve. In OLAP worksheet I can type the following DML commands:
    DEFINE MY_DAY DIMENSION DAY
    MAINTAIN MY_DAY ADD TODAY '01JAN2011'
    What this will do is create a "day dimension" and will populate it with values for each and every day between 1st Jan 2011 and today. It will be fully "time aware" and thus you can use date functions such as DAYOF to limit the MY_DAY dimension to all the Fridays etc. Similarly if I define a "month dimension" there will be an automatic implicit relationship between these two dimensions, this relationship and time aware cleverness is built into Oracle.
    However, a dimension defined using DML commands (and indeed all objects created using DML language) is not visible in Analytic Workspace Manager (as there is no metadata for them?) and for the life of me I cannot work out how to create such a dimension using AWM. If I create a "Time Dimension" then, as far as I can tell, this is not a proper time dimension but merely a text dimension and I, presume, I have to teach it time awareness.
    Can anyone help me? I have no issues creating, and populating cubes from relational tables using Analytic Workspace Manager, the only issue I have is creating a "proper" time aware dimension.
    Many thanks in anticipation.
    Ian.

    When a dimension is of type "TIME" in AWM, then for each member of that dimension, you need END_DATE and TIMESPAN attributes in addition to the key column and description column.
    So in your case, if there are 5 levels: DAY->WEEK->MONTH->QTR->YEAR
    then you will need atleast 15 columns in your source sql table/view
    or 20 columns if you have separate column for description.
    For example the columns in your source table/view could be:
    DAY_ID,
    DAY_DESC,
    DAY_END_DATE, (which will be that day's date)
    DAY_TIMESPAN, (which will be 1)
    WEEK_ID,
    WEEK_DESC,
    WEEK_END_DATE,
    WEEK_TIMESPAN,
    MONTH_ID,
    MONTH_DESC,
    MONTH_END_DATE,
    MONTH_TIMESPAN,
    QTR_ID,
    QTR_DESC,
    QTR_END_DATE,
    QTR_TIMESPAN,
    YEAR_ID,
    YEAR_DESC,
    YEAR_END_DATE,
    YEAR_TIMESPAN
    Just "map" this table/view to the 5-level time dimension in AWM.
    NOTE that behind-the-scenes lot of useful structures are automatically defined to support time-series measures,
    and there are lot of calculation templates available also.
    Since you came from Express background, I have to say that try to use new OLAP Expression Syntax when creating calculated measures instead of OLAP DML.
    Its very rare these days that we need OLAP DML.
    Edited by: Nasar on Nov 22, 2012 12:11 PM

Maybe you are looking for

  • In outlook 2013 emails,pdf attachments are not showing in pdf formats

    Hi, We are using outlook 2013 as pop account for our official email communication.One of the laptop is having windows 7 professional operating systems and the email we are using as outlook 2013 in that laptop. The issue is that when we try to attach

  • Help with select

    I have a select with this data: FIELD1 FIELD2 nepe07 aaa nepe07 bbb nepe07 ccc nepe08 aaa nepe08 bbb How can I do the select look like that: FIELD1 FIELD2 nepe07 aaa, bbb, ccc nepe08 aaa, bbb I just want to show only 1 register for each value in FIEL

  • Vorschau, Vorschau-Zwischenspeicher lässt sich nicht löschen

    Warum wenn etwas in der Vorschau (ein PDF Dokument mit Bildern) geöffnet wir und daraus nur ein Detail (Bild) Kopiert wird bleibt dies im Zwischenspeicher hängen? Besser gefragt wie kann ich den Zwischenspeicher der Vorschau löschen, Tastenkomination

  • Firmware Recommendati

    I wanted to start a post for people to add ideas on how to make the firmware better for Creative MP3 Players. I personally have a Zen Micro with the Plays for Sure firmware, but others are welcome to add their own two cents. Please categorize your re

  • No puedo montar mi disco duro externo

    Buenas tardes, el problema que tengo es que no puedo montar mi disco duro externo encriptado. La primera vez lo pude montar, lo desmonté y cada vez que le doy a montar disco duro no reacciona. No puedo formatear porque ahí tengo muchos archivos y cop