Odi examples using flexfields, groovy scripting, jython scritping sample

Dear All,
I would like to know if there are any good websites, which will provide details exampls using flexfields effectively, groovy scripting , jytyon scripting , using API in odi etc.
Basically I would be intersted in learning advanced ODI programming.
Thanks and Regards
Santy

there is the other way: do it.
It's sad to do but ODI is quite wide as topic. Follow many blogs, read threads and understood them, ask and make many errors.
If you are not so distant from some guru guy of this forum it'd be an idea to take a cheaper training from them.

Similar Messages

  • How to test ODI Agent - using command line / scripts ?

    We can test ODI scheduler Agent from Topology manager, is there a way to test it using command line options / scripts ?

    Go to <ODI_HOME>/oracledi/bin in command prompt and invoke startscen command with teh below parameters.
    Edited by: Guru Sankar on Feb 28, 2011 4:19 PM

  • Looking for Analog Out example using DMA and C++; cannot find sample "GenMultVoltUpdates_SWTimed"

    Looking for example for Analog Out to multiple channels using DMA and C++.  Found reference to sample "GenMultVoltUpdates_SWTimed" which I do not have and cannot find.

    Hello Gerry,
    When you install DAQmx, there is an option to install
    support for Measurement Studio.  When you
    select this option, it will install these examples onto your hard drive.  All of the examples can be found at the
    following location: (C:\Documents and Settings\All Users\Documents\National
    Instruments\NI-DAQ\Examples\DotNET2.0\Analog Out\Generate Voltage)
    Respectfully,
    Rob F
    Test Engineer
    Condition Measurements
    National Instruments

  • Find application module instance using groovy script

    Hi,
    Can any one help me to find the instance of a specific application module using a groovy script.
    I know the below is going to give me the current application module instance
    adf.object.applicationModule.findViewObject("ViewObject").first().getAttribute("name")But I should be able to find a specific application module and then proceed with finding the viewObject in it.....
    Edited by: vijai on Mar 6, 2012 7:21 AM

    Hi john,
    This is the summary of my issue.....
    I have few Appmodules among which one is used for administration purpose. I have a particular ViewObject say V1 that is used in all the AppModules as instances from which values are used as bind variable values in viewObject query (So when these instances gets executed first time the bind variable are set). In one operation the user changes the value in the administration app module ViewObject V1 and commits it. So we face two issues here.....
    1. I need to refresh all the ViewObjects in the other appmodules
    2. and I need to refresh the Bind Variables values in the ViewObject query (or) Give the refreshed values in the page bindings Execute With Params.
    In order to do this stuffs I thought I would make a groovy script and use the viewObject in the Administration ViewObject for values in Bind variables,ExecuteWithParams value etc......
    Pls give me a better approach or a better groovy script to do this...........

  • ODI Groovy Script to create an interface

    Hi,
    I'm working on ODI 11.1.16 and trying to create an interface using Groovy Scripts. It throws me an error "java.lang.IllegalArgumentException: DataStore shouldn't be null "
    Below are my assumptions
    Source datastore : Groovy_Source
    Target datastore : Groovy_Trgt
    Context : Global
    Stndrd conn: localhost,1521,orcl
    def file = new File('c:/interfaces.txt')
    def s = 0
    Interfaces.txt contains : TEST1,SOURCE,DUMMY_GROOVY_SOURCE,STAGING,DUMMY_GROOVY_TRGT
    DataSet dataSet = odiInterface.getDataSets().get(0);
    OdiDataStore odiDatastore1 = ((IOdiDataStoreFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiDataStore.class)).findByName(DUMMY_GROOVY_SOURCE,Oracle);
    OdiDataStore targetDatastore = ((IOdiDataStoreFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiDataStore.class)).findByName(DUMMY_GROOVY_TRGT,Oracle);
    It throws an error here any help is appreciated
    Thanks
    VIB

    Hi Michael,
    Below is my entire code.. Picked it up from one of the blogs just trying to fine tune it. Thanks for your reply.
    //Created by ODI Studio
    // Context operators:
    import oracle.odi.domain.topology.OdiContext
    import oracle.odi.domain.topology.finder.IOdiContextFinder
    // Folder operators:
    import oracle.odi.domain.project.OdiFolder
    import oracle.odi.domain.project.finder.IOdiFolderFinder
    // Interface operators:
    import oracle.odi.domain.project.OdiInterface
    // Interface helpers:
    import oracle.odi.interfaces.interactive.support.InteractiveInterfaceHelperWithActions
    import oracle.odi.interfaces.interactive.support.targetkeychoosers.TargetKeyChooserPrimaryKey
    import oracle.odi.interfaces.interactive.support.mapping.automap.AutoMappingComputerLazy
    import oracle.odi.interfaces.interactive.support.mapping.matchpolicy.MappingMatchPolicyLazy
    import oracle.odi.interfaces.interactive.support.actions.InterfaceActionSetTargetDataStore
    import oracle.odi.interfaces.interactive.support.aliascomputers.AliasComputerDoubleChecker
    import oracle.odi.interfaces.interactive.support.clauseimporters.ClauseImporterLazy
    import oracle.odi.interfaces.interactive.support.actions.InterfaceActionAddSourceDataStore
    import oracle.odi.interfaces.interactive.support.actions.InterfaceActionOnTargetDataStoreComputeAutoMapping;
    // Transaction operators:
    import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition;
    import oracle.odi.core.persistence.transaction.ITransactionDefinition;
    import oracle.odi.core.persistence.transaction.ITransactionManager;
    import oracle.odi.core.persistence.transaction.ITransactionStatus;
    // Data set:
    import oracle.odi.domain.project.interfaces.DataSet;
    // Data store:
    import oracle.odi.domain.model.OdiDataStore;
    import oracle.odi.domain.model.finder.IOdiDataStoreFinder;
    // Define VARS:
    def project = new String("Test") // What is the target project?
    def folder = new String("Test Subfolder") // Which folder in target project?
    def file = new File('c:/interfaces.txt')
    def s = 0
    // Get default context:
    OdiContext context = ((IOdiContextFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiContext.class)).findDefaultContext();
    // Get Folder:
    Collection odiFolders = ((IOdiFolderFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiFolder.class)).findByName(folder);
    if (odiFolders.size() == 0)
    println("Error: cannot find folder "+folder+" in project "+project)
    OdiFolder odiFolder = (OdiFolder) (odiFolders.toArray()[0]);
    // Print default settings:
    println ("Context used = " + context.getName())
    println ("Folder for interface = " + odiFolder.getName())
    file.eachLine { line ->
    s++
    toks = line.split(",")
    if (toks.length != 5)
    println("Error in input, line: "+s)
    else
    iname = toks[0]
    Oracle = toks[1]
    DUMMY_GROOVT_SOURCE = toks[2]
    Oracle = toks[3]
    DUMMY_GROOVY_TRGT = toks[4]
    // Transactie:
    ITransactionDefinition txnDef = new DefaultTransactionDefinition()
    ITransactionManager tm = odiInstance.getTransactionManager()
    ITransactionStatus txnStatus = tm.getTransaction(txnDef)
    OdiInterface odiInterface = new OdiInterface(odiFolder, iname, context);
    InteractiveInterfaceHelperWithActions interactiveHelper = new InteractiveInterfaceHelperWithActions(odiInterface, odiInstance, odiInstance.getTransactionalEntityManager());
    DataSet dataSet = odiInterface.getDataSets().get(0);
    OdiDataStore odiDatastore1 = ((IOdiDataStoreFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiDataStore.class)).findByName("DUMMY_GROOVY_SOURCE", Oracle);
    OdiDataStore targetDatastore = ((IOdiDataStoreFinder)odiInstance.getTransactionalEntityManager().getFinder(OdiDataStore.class)).findByName("DUMMY_GROOVY_TRGT", Oracle);
    interactiveHelper.performAction(new InterfaceActionAddSourceDataStore(odiDatastore1, dataSet, new AliasComputerDoubleChecker(), new ClauseImporterLazy(), new AutoMappingComputerLazy()));
    interactiveHelper.performAction(new InterfaceActionSetTargetDataStore(targetDatastore, new MappingMatchPolicyLazy(), new AutoMappingComputerLazy(), new AutoMappingComputerLazy(), new TargetKeyChooserPrimaryKey()));
    interactiveHelper.performAction(new InterfaceActionOnTargetDataStoreComputeAutoMapping())
    interactiveHelper.computeSourceSets()
    interactiveHelper.preparePersist()
    tm.commit(txnStatus)
    Edited by: VIB on Feb 18, 2013 10:46 AM

  • Configuring ODI to use Fusion Middleware OBIA 11.1.1.7.1 Installation

    Hi,
    I am trying to install OBIA 11.1.1.7.1 in Windows 2008.
    All went well , upgraded weblogic to 10.3.6
    When I run the following command create the wallet files,
    The command used :
    c:\Middleware\Oracle_BI1\common\bin\wlst.cmd
    c:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py embedded --ADMIN_USER
    _NAME weblogic --DOMAIN_HOSTNAME localhost --DOMAIN_PORT 7001 --DOMAIN_HOME_
    PATH c:\Middleware\user_projects\domains\bifoundation_domain
    The Error:
    wls:/offline> C:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsOD
    I.py embedded –ADMIN_USER_NAME weblogic –DOMAIN_HOSTNAME obia111171w64 –DOMAI
    N_PORT 7001 –DOMAIN_HOME_PATH C:\Middleware\user_projects\domains\bifoundation_
    domain
    Traceback (innermost last):
    (no code object) at line 0
    File “”, line 1
    C:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py e
    mbedded –ADMIN_USER_NAME weblogic –DOMAIN_HOSTNAME obia111171w64 –DOMAIN_PORT
    7001 –DOMAIN_HOME_PATH C:\Middleware\user_projects\domains\bifoundation_domain
      ^
    SyntaxError: invalid syntax
    wls:/offline>
    I tried the following, still errors
    java weblogic.WLST C:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py embedded -–ADMIN_USER_NAME weblogic -–DOMAIN_HOSTNAME obia111171w64 -–DOMAIN_PORT 7001 -–DOMAIN_HOME_PATH C:\Middleware\user_projects\domains\bifoundation_domain
    from Command Prompt, I am getting this error
    C:\Middleware\user_projects\domains\bifoundation_domain>java weblogic.WLST C:\Mi
    ddleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py embedded –ADM
    IN_USER_NAME weblogic –DOMAIN_HOSTNAME obia111171w64 –DOMAIN_PORT 7001 –DOMAI
    N_HOME_PATH C:\Middleware\user_projects\domains\bifoundation_domain
    Initializing WebLogic Scripting Tool (WLST) …
    Welcome to WebLogic Server Administration Scripting Shell
    Type help() for help on available commands
    Problem invoking WLST – Traceback (innermost last):
    File “C:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py”,
    line 93, in ?
    File “C:\Middleware\Oracle_BI1\bifoundation\install\apps_commonUtils.py”, line
    107, in parseCommandlineArgs
    File “C:\MIDDLE~1\WLSERV~1.3\common\wlst\modules\jython-modules.jar\Lib/getopt
    $py.class”, line 74, in getopt
    File “C:\MIDDLE~1\WLSERV~1.3\common\wlst\modules\jython-modules.jar\Lib/getopt
    $py.class”, line 124, in do_shorts
    File “C:\MIDDLE~1\WLSERV~1.3\common\wlst\modules\jython-modules.jar\Lib/getopt
    $py.class”, line 139, in short_has_arg
    UnicodeError: ascii encoding error: ordinal not in range(128)
    Request:
    Spent lot of time in trouble shooting, I rebuilt the image from scratch, reinstalled. Still the same error at this step. I am not able to go-forward with out completing this step.
    If the issue is not resolvable, could you please give an alternate way of 'Configuring ODI to use Fusion Middleware'
    Thank You in advance.
    -Praveen Alamuru

    got the issue resolved
    Change the contents of C:\Middleware\utils\config\10.3\setHomeDirs.cmd
    from:
    set MW_HOME = @ MW_HOME
    FOR%% i in ("% MW_HOME%") DO SET MW_HOME =%% ~ FSI
    set WL_HOME = @ WL_HOME
    FOR%% i in ("% WL_HOME%") DO SET WL_HOME =%% ~ FSI
    to
    set MW_HOME =% MW_HOME%
    FOR%% i in ("% MW_HOME%") DO SET MW_HOME =%% ~ FSI
    set WL_HOME =% WL_HOME%
    FOR%% i in ("% WL_HOME%") DO SET WL_HOME =%% ~ FSI
    Rerun the patch script to set the variables properly
    cd c:\Middleware\Oracle_BI1\biapps\tools\bin
    perl APPLY_PATCHES.pl apply_patches_import.txt
    Then Go to
    c:\Middleware\Oracle_BI1\common\bin\
    Run the following command
    wlst.cmd c:\Middleware\Oracle_BI1\bifoundation\install\createJPSArtifactsODI.py embedded --ADMIN_USER_NAME weblogic --DOMAIN_HOSTNAME ibmdemo --DOMAIN_PORT 7001 --DOMAIN_HOME_PATH c:\Middleware\user_projects\domains\bifoundation_domain
    Hope this helps
    -Praveen

  • Reverse Engineering Error ODI-17517: Error during task interpretation ODI-15068: Unknown flexfield code

    Dear Experts
    In process Reverse Engineering using RKM SAP ERP but error this result.
    Reverse Engineering
    View image: r e logalagent test
    Error
    View image: r e logalagent error
    Error text
    com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation.
    Task: 2
    java.lang.Exception: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
      at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:489)
      at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:809)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
      at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
      at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
      at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
      at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
      at java.lang.Thread.run(Thread.java:744)
    Caused by: java.lang.Exception: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
      at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:476)
      ... 11 more
    Caused by: org.apache.bsf.BSFException: The application script threw an exception: com.sunopsis.core.SnpsFlexFieldException: ODI-15068: Unknown flexfield code. BSF info: Initialize at line: 0 column: columnNo
      at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
      at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
      at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
      ... 11 more
    Texto: //Command Name: Initialize
    import com.sap.mw.jco.*;
    import java.sql.Connection;
    import java.util.ResourceBundle;
    import java.util.Date;
    //Initializing resourceBundle
    odiSapErpResourceBundle = new OdiSapErpResourceBundle();//resourceBundle object to initialize & load resources
    odiSapErpResourceBundle.initializeResource();//initializing/loading resources
    resourceBundle = odiSapErpResourceBundle.getResourceBundle();
    //Check the ODI Release
    //Initialize Open Tool log file name
    //Initializing logger
    String logFileName = "";
    logFileName = <@=odiRef.getQuotedString("<?=new File(System.getProperty("java.io.tmpdir"),"sap_rkm_erp_"+odiRef.getSession("SESS_NO")+".log").toString()?> ") @>;
    OdiSapLogger sapLogger = new OdiSapLogger(logFileName, resourceBundle);
    sapLogger.fine("ODIKM-SAPERP-RKM-10000","",new Object[] {"SAP ERP RKM - Initialize step.."} );
    //Check whether Table or View checkbox selected
    typeOfObject = "T";
    if ((";AT;Q;SY;ST;T;V;").indexOf(";V;") > -1)
      typeOfObject = "V";
    if ((";AT;Q;SY;ST;T;V;").indexOf(";T;") > -1)
      typeOfObject = "T";
    //Initializing SAP Connector
    OdiSAPERPAdapter odiSapERPAdapter = new OdiSAPERPAdapter(sapLogger, odiSapErpResourceBundle);
    odiSapERPAdapter.setObjectType(typeOfObject);
    //Helper object
    OdiSAPERPMetadataHelper odiSAPERPMetadataHelper = new OdiSAPERPMetadataHelper(odiSapERPAdapter, sapLogger);
    <?
    // SAP connection properties get from Topology Manager Defintions
    String hostName = odiRef.getInfo("SRC_DSERV_NAME");//SRC_DSERV_NAME
    String userName = odiRef.getInfo("SRC_USER_NAME");
    String password = odiRef.getInfo("SRC_PASS");
    String systemNo = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_SYSTEM_NUMBER" );
    String sapClient = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_CLIENT" );
    String language = odiRef.getFlexFieldValue( odiRef.getInfo("SRC_I_CONNECT"), "1400", "SAP_LANGUAGE" );
    ?>
    //Setting the SAP Connection
    odiSapERPAdapter.setSAPConnection("<?=hostName?>", "<?=systemNo?>", "<?=sapClient?>", "<?=language?>", "<?=userName?>", "<?=password?>", null, null);
    //Get the repository connection
    Connection repoConnection = odiRef.getJDBCConnection("DEST");
    sapLogger.fine("ODIKM-SAPERP-RKM-10000","",new Object[] {"repoConnection: "+repoConnection});.
      at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:837)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
      at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
      at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
      at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
      at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
      at java.lang.Thread.run(Thread.java:744)
    What I must correct?
    What other tests can I perform?
    Thanks for any light

    Dear Expert
    Still facing this problem.
    I did several tests, changing flexfields in physical topology and the parameters of RKM.
    But the result is always the same.
    What else could do.
    The doubt remains.
    Should be poss edit details.
    >> >>> review history this post <<<<<
    I can not enter values in JDBC because the JDBC option is not active.
    Any light, suggestion or critics is welcome.
    Also I have a SR open with serveridade 1 in orcl.
    Thanks for All

  • How to output the outline parent-child relationship using a report script?

    I'd like to extract the outline's dimension members with it's parent-child relationship using a report script. Anybody can provide a sample script? Thanks.
    Example:
    DimensionX
    -----MemberX
    ----------ChildX
    Output:
    Dimension X MemberX
    MemberX ChildX
    Edited by: obelisk on Jan 11, 2010 5:16 PM

    Sorry a report script won't do it. You have two options
    1. Use at Essbase Outline API to walk the outline and get it for you
    2. Use the Outline extractor available from Applied Olap (it is a free download). It can be run interactively of as a bat file.
    Frankly, I would rather use 2 since I don't have to code it myself

  • OLAP ... Adobe example used; need help fixing a bug (clearing variables on error)

    Okay ...
    So I used one of the Adobe examples except now it's part of a container and it's using a datasource instead of the flatfile the example uses.  Also, for some reason I need to create a button instead of using the creationComplete to get it to work.  My problem is if the button is clicked to fast while it's loading the data (since another part of the application has a dropdown menu so you can requery information) you get an error and for some reason, you'll still get the same error even if the data is fully loaded and even if you change the parameter to reload the data.  My feeling is that the variables are not getting cleared out after it throws the error.
    So my question is what is the best way to clear out the variables (and how) when it throws an error.  The code for the page is below.
    Joe
    <?xml version="1.0" encoding="utf-8"?>
    <v:MaxRestorePanel xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:v="views.*"
        layout="vertical"
        creationComplete="creationCompleteHandler3();">
        <mx:Script>
          <![CDATA[
            import mx.collections.ICollectionView;
            import mx.rpc.AsyncResponder;
            import mx.rpc.AsyncToken;
            import mx.olap.OLAPQuery;
            import mx.olap.OLAPSet;
            import mx.olap.IOLAPQuery;
            import mx.olap.IOLAPQueryAxis;
            import mx.olap.IOLAPCube;
            import mx.olap.OLAPResult;
            import mx.events.CubeEvent;
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;
            [Bindable]
            public var dp:ICollectionView = null;
            // Format of Objects in the ArrayCollection:
            //  data:Object = {
            //    customer:"AAA",
            //    product:"ColdFusion",
            //    quarter:"Q1"
            //    revenue: "100.00"
            private function creationCompleteHandler3():void {
                // You must initialize the cube before you
                // can execute a query on it.
                myMXMLCube3.refresh();
            // Create the OLAP query.
            private function getQuery(cube:IOLAPCube):IOLAPQuery {
                // Create an instance of OLAPQuery to represent the query.
                var query:OLAPQuery = new OLAPQuery;
                // Get the row axis from the query instance.
                var rowQueryAxis:IOLAPQueryAxis =
                    query.getAxis(OLAPQuery.ROW_AXIS);
                // Create an OLAPSet instance to configure the axis.
                var productSet:OLAPSet = new OLAPSet;
                // Add the Product to the row to aggregate data
                // by the Product dimension.
                productSet.addElements(
                    cube.findDimension("ProductDim").findAttribute("Product").children);
                // Add the OLAPSet instance to the axis.
                rowQueryAxis.addSet(productSet);
                // Get the column axis from the query instance, and configure it
                // to aggregate the columns by the Quarter dimension.
                var colQueryAxis:IOLAPQueryAxis =
                    query.getAxis(OLAPQuery.COLUMN_AXIS);        
                var quarterSet:OLAPSet= new OLAPSet;
                quarterSet.addElements(
                    cube.findDimension("QuarterDim").findAttribute("HLMC").children);
                colQueryAxis.addSet(quarterSet);
                return query;      
            // Event handler to execute the OLAP query
            // after the cube completes initialization.
            private function runQuery(event:CubeEvent):void {
                // Get cube.
                var cube:IOLAPCube = IOLAPCube(event.currentTarget);
                // Create a query instance.
                var query:IOLAPQuery = getQuery(cube);
                // Execute the query.
                var token:AsyncToken = cube.execute(query);
                // Setup handlers for the query results.
                token.addResponder(new AsyncResponder(showResult, showFault));
            // Handle a query fault.
            private function showFault(result:Object, token:Object):void {
                Alert.show("Error in query.");
            // Handle a successful query by passing the query results to
            // the OLAPDataGrid control..
            private function showResult(result:Object, token:Object):void {
                if (!result) {
                    Alert.show("No results from query.");
                    return;
                myOLAPDG3.dataProvider= result as OLAPResult;           
          ]]>
        </mx:Script>
        <mx:OLAPCube name="FlatSchemaCube" dataProvider="{dp}" id="myMXMLCube3" complete="runQuery(event);">
            <mx:OLAPDimension name="CustomerDim">
                <mx:OLAPAttribute name="Customer" dataField="TITLE_NAME"/>
                <mx:OLAPHierarchy name="CustomerHier" hasAll="true">
                    <mx:OLAPLevel attributeName="Customer"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPDimension name="ProductDim">
                <mx:OLAPAttribute name="Product" dataField="CORP_SITE"/>
                <mx:OLAPHierarchy name="ProductHier" hasAll="true">
                    <mx:OLAPLevel attributeName="Product"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPDimension name="QuarterDim">
                <mx:OLAPAttribute name="HLMC" dataField="HLMC"/>
                <mx:OLAPHierarchy name="QuarterHier" hasAll="true">
                    <mx:OLAPLevel attributeName="HLMC"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPMeasure name="Revenue"
                dataField="CUR_YR_1"
                aggregator="SUM"/>
        </mx:OLAPCube>
             <mx:OLAPDataGrid id="myOLAPDG3" defaultCellString="-" textAlign="right" color="0x323232" width="100%" height="100%"/>
            <mx:ControlBar id="controls">       
            <mx:Button label="Pull Details" click="creationCompleteHandler3();"/>
            </mx:ControlBar>
    </v:MaxRestorePanel>

    Okay ...
    So I used one of the Adobe examples except now it's part of a container and it's using a datasource instead of the flatfile the example uses.  Also, for some reason I need to create a button instead of using the creationComplete to get it to work.  My problem is if the button is clicked to fast while it's loading the data (since another part of the application has a dropdown menu so you can requery information) you get an error and for some reason, you'll still get the same error even if the data is fully loaded and even if you change the parameter to reload the data.  My feeling is that the variables are not getting cleared out after it throws the error.
    So my question is what is the best way to clear out the variables (and how) when it throws an error.  The code for the page is below.
    Joe
    <?xml version="1.0" encoding="utf-8"?>
    <v:MaxRestorePanel xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:v="views.*"
        layout="vertical"
        creationComplete="creationCompleteHandler3();">
        <mx:Script>
          <![CDATA[
            import mx.collections.ICollectionView;
            import mx.rpc.AsyncResponder;
            import mx.rpc.AsyncToken;
            import mx.olap.OLAPQuery;
            import mx.olap.OLAPSet;
            import mx.olap.IOLAPQuery;
            import mx.olap.IOLAPQueryAxis;
            import mx.olap.IOLAPCube;
            import mx.olap.OLAPResult;
            import mx.events.CubeEvent;
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;
            [Bindable]
            public var dp:ICollectionView = null;
            // Format of Objects in the ArrayCollection:
            //  data:Object = {
            //    customer:"AAA",
            //    product:"ColdFusion",
            //    quarter:"Q1"
            //    revenue: "100.00"
            private function creationCompleteHandler3():void {
                // You must initialize the cube before you
                // can execute a query on it.
                myMXMLCube3.refresh();
            // Create the OLAP query.
            private function getQuery(cube:IOLAPCube):IOLAPQuery {
                // Create an instance of OLAPQuery to represent the query.
                var query:OLAPQuery = new OLAPQuery;
                // Get the row axis from the query instance.
                var rowQueryAxis:IOLAPQueryAxis =
                    query.getAxis(OLAPQuery.ROW_AXIS);
                // Create an OLAPSet instance to configure the axis.
                var productSet:OLAPSet = new OLAPSet;
                // Add the Product to the row to aggregate data
                // by the Product dimension.
                productSet.addElements(
                    cube.findDimension("ProductDim").findAttribute("Product").children);
                // Add the OLAPSet instance to the axis.
                rowQueryAxis.addSet(productSet);
                // Get the column axis from the query instance, and configure it
                // to aggregate the columns by the Quarter dimension.
                var colQueryAxis:IOLAPQueryAxis =
                    query.getAxis(OLAPQuery.COLUMN_AXIS);        
                var quarterSet:OLAPSet= new OLAPSet;
                quarterSet.addElements(
                    cube.findDimension("QuarterDim").findAttribute("HLMC").children);
                colQueryAxis.addSet(quarterSet);
                return query;      
            // Event handler to execute the OLAP query
            // after the cube completes initialization.
            private function runQuery(event:CubeEvent):void {
                // Get cube.
                var cube:IOLAPCube = IOLAPCube(event.currentTarget);
                // Create a query instance.
                var query:IOLAPQuery = getQuery(cube);
                // Execute the query.
                var token:AsyncToken = cube.execute(query);
                // Setup handlers for the query results.
                token.addResponder(new AsyncResponder(showResult, showFault));
            // Handle a query fault.
            private function showFault(result:Object, token:Object):void {
                Alert.show("Error in query.");
            // Handle a successful query by passing the query results to
            // the OLAPDataGrid control..
            private function showResult(result:Object, token:Object):void {
                if (!result) {
                    Alert.show("No results from query.");
                    return;
                myOLAPDG3.dataProvider= result as OLAPResult;           
          ]]>
        </mx:Script>
        <mx:OLAPCube name="FlatSchemaCube" dataProvider="{dp}" id="myMXMLCube3" complete="runQuery(event);">
            <mx:OLAPDimension name="CustomerDim">
                <mx:OLAPAttribute name="Customer" dataField="TITLE_NAME"/>
                <mx:OLAPHierarchy name="CustomerHier" hasAll="true">
                    <mx:OLAPLevel attributeName="Customer"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPDimension name="ProductDim">
                <mx:OLAPAttribute name="Product" dataField="CORP_SITE"/>
                <mx:OLAPHierarchy name="ProductHier" hasAll="true">
                    <mx:OLAPLevel attributeName="Product"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPDimension name="QuarterDim">
                <mx:OLAPAttribute name="HLMC" dataField="HLMC"/>
                <mx:OLAPHierarchy name="QuarterHier" hasAll="true">
                    <mx:OLAPLevel attributeName="HLMC"/>
                </mx:OLAPHierarchy>
            </mx:OLAPDimension>
            <mx:OLAPMeasure name="Revenue"
                dataField="CUR_YR_1"
                aggregator="SUM"/>
        </mx:OLAPCube>
             <mx:OLAPDataGrid id="myOLAPDG3" defaultCellString="-" textAlign="right" color="0x323232" width="100%" height="100%"/>
            <mx:ControlBar id="controls">       
            <mx:Button label="Pull Details" click="creationCompleteHandler3();"/>
            </mx:ControlBar>
    </v:MaxRestorePanel>

  • Best method for timestamping? (for later use with perl script)

    What is the best method that I can use to timestamp events in Linux for later use with perl script?
    I am performing some energy measurements.. where I am running several tasks separated by 20 secs in between. Before I start any execution of tasks, I always place initial delay for me to start the script and start the measurement device.
    My problem is that I don't know how long is that first delay exactly. So to solve this, I thought I could use date commands to time stamp all tasks.. or at least to timestamp first dela.
    Here is example of what I am doing:
    1st delay
    task 1
    20s
    task 2
    20s
    task 3..... etc
    What would be the best to use?

    logger.
    It posts messages straight to the system log.  You can see the message, in all its glory using tools like journalctl.  You will see the message, the date, time, host name, user name, and the PID of logger when it ran.

  • Using SQL Server Script to create Oracle DB Schema

    Hi,
    I have a SQL Server script which does a few things such as creating databases (after dropping), creating tables etc. Now I want to replicate the SQL Server databases and their tables etc in an Oracle9i DB. How would a SQL Server script compare to an Oracle script? i.e. what differences are there? and how would I have to alter the script to have it work on Oracle?
    As an example, my SQL Server script would look something like this:
    DROP DATABASE test1;
    DROP DATABASE test2;
    CREATE DATABASE test1;
    CREATE DATABASE test2;
    GO;
    USE test1;
    CREATE TABLE Table1 (
    TableOneID INT IDENTITY PRIMARY KEY NOT NULL,
    Name VARCHAR(255) NOT NULL,
    PRIMARY KEY(TableOneID));
    CREATE TABLE Table2 (
    TableTwoID INT IDENTITY NOT NULL,
    TableOneID INT NOT NULL,
    PRIMARY KEY(TableTwoID, TableOneID),
    FOREIGN KEY(TableOneID) REFERENCES Table1(TableOneID));
    USE test2;
    CREATE TABLE ....
    etc...
    thanks!

    Also I think
    CREATE TABLE table1
    ( tableoneid INT PRIMARY KEY NOT NULL
    , name VARCHAR(255) NOT NULL
    , PRIMARY KEY(tableoneid) );should probably be
    CREATE TABLE table1
    ( tableoneid INT CONSTRAINT table1_pk PRIMARY KEY
    , name VARCHAR(255) NOT NULL );otherwise you specify the primary key twice (and PRIMARY KEY implies NOT NULL so the NOT NULL is redundant).
    Then TABLE2 might need to be something like:
    CREATE TABLE table2
    ( tabletwoid INT NOT NULL
    , tableoneid NOT NULL CONSTRAINT table2_table1_fk REFERENCES table1
    , CONSTRAINT table2_pk PRIMARY KEY(tabletwoid, tableoneid) );although the table-level constraint syntax could be used for the foreign keys if it meant less editing of your scripts. The "CONSTRAINT constraintname" clause of constraints is optional but recommended, as otherwise they will get system-generated names like "SYS_C005157". (Note that if you specify the FK inline as part of the column definition you do not need to include a datatype.)
    If the IDENTITY clause causes a sequential value to be assigned as a default, there is no direct equivalent to that in Oracle. The nearest thing would be a row-level BEFORE INSERT trigger.

  • How to use "do shell script" when Terminal replies with a prompt?

    Hey all,
    I'm wondering how to properly use "do shell script" when Terminal replies with a question? In this example, I'm building a small tool in AppleScript that will auto-update the Android SDK via command line prompts. The problem is when I tell it to update all ("update sdk --no-ui"), I need to accept licence agreements before it continues, and the amount of licence agreements brought up is different every time.
    So, basically, I'm wondering how to handle a case where "do shell script" encounters a case where Terminal would normally need a user's response to?
    Thanks,
    Behn

    If it is variable number of prompts that is a problem.  Look around hd and figure out how many prompts there will be. Ask around android forum for a bash solution. There are some test case apps that will let you put conditionals on output from running programs.
    # traditional way.  Pipe output to command.
    do script "echo 'ok' | update sdk --no-u"
    Here is the preferred way of getting administrator privileges.
    It is easier to diagnose problems with debug information. I suggest adding log statements to your script to see what is going on.  Here is an example.
        Author: rccharles
        For testing, run in the Script Editor.
          1) Click on the Event Log tab to see the output from the log statement
          2) Click on Run
        For running shell commands see:
        http://developer.apple.com/mac/library/technotes/tn2002/tn2065.html
    on run
        -- Write a message into the event log.
        log "  --- Starting on " & ((current date) as string) & " --- "
        --  debug lines
        set unixDesktopPath to POSIX path of "/System/Library/User Template/"
        log "unixDesktopPath = " & unixDesktopPath
        set quotedUnixDesktopPath to quoted form of unixDesktopPath
        log "quoted form is " & quotedUnixDesktopPath
        try
            set fromUnix to do shell script "sudo ls -l  " & quotedUnixDesktopPath with administrator privileges
            display dialog "ls -l of " & quotedUnixDesktopPath & return & fromUnix
        on error errMsg
            log "ls -l error..." & errMsg
        end try
    end run

  • What are the different functions used in sap script?

    Hi,
    What are the different functions used in sap script? What are the parameters used in each Function?
    Regards,
    Mahesh

    he print program is used to print forms. The program retieves the necesary data from datbase tables, defines the order of in which text elements are printed, chooses a form for printing and selects an output device and print options.
    Function modules in a printprogram:
    When you print a form you must used the staments OPEN_FORM and CLOSE_FORM. To combine forms into a single spool request use START_FORM and END_FORM.
    To print textelements in a form use WRITE_FORM. The order in which the textelements are printed, is determined by the order of the WRITE_FORM statements. Note: for printing lines in the body, you can also use the WRITE_FORM_LINES function module.
    To transfer control command to a form use CONTROL_FORM.
    Structure of a print program
    Read data
    Tables: xxx.
    SELECT *
    FROM xxx.
    Open form printing - Must be called before working with any of the other form function modules.
    Must be ended with function module CLOSE FORM
    call function 'OPEN_FORM'.....
    To begin several indentical forms containing different data within a single spool request, begin each form using START_FORM, and end it using END_FORM
    call funtion 'START_FORM'.....
    Write text elements to a window of the form
    call function 'WRITE_FORM'.....
    Ends spool request started with START_FORM
    call funtion 'END_FORM'.....
    Closes form printing
    call function 'CLOSE_FORM'...
    OPEN_FORM function
    Syntax:
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      APPLICATION                       = 'TX'
      ARCHIVE_INDEX                     =
      ARCHIVE_PARAMS                    =
      DEVICE                            = 'PRINTER'
      DIALOG                            = 'X'
      FORM                              = ' '
      LANGUAGE                          = SY-LANGU
      OPTIONS                           =
      MAIL_SENDER                       =
      MAIL_RECIPIENT                    =
      MAIL_APPL_OBJECT                  =
      RAW_DATA_INTERFACE                = '*'
    IMPORTING
      LANGUAGE                          =
      NEW_ARCHIVE_PARAMS                =
      RESULT                            =
    EXCEPTIONS
      CANCELED                          = 1
      DEVICE                            = 2
      FORM                              = 3
      OPTIONS                           = 4
      UNCLOSED                          = 5
      MAIL_OPTIONS                      = 6
      ARCHIVE_ERROR                     = 7
      INVALID_FAX_NUMBER                = 8
      MORE_PARAMS_NEEDED_IN_BATCH       = 9
      SPOOL_ERROR                       = 10
      OTHERS                            = 11
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Some important parameters:
    FORM      Name of the form
    DEVICE      
    PRINTER : Print output using spool
    TELEFAX: Fax output
    SCREEN: Output to screen
    OPTIONS      Used to control attrubutes for printing or faxing (Number of copies, immediate output....
    The input for the parameter is structure ITCPO.
    CLOSE_FORM function
    CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
      RESULT                         =
      RDI_RESULT                     =
    TABLES
      OTFDATA                        =
    EXCEPTIONS
      UNOPENED                       = 1
      BAD_PAGEFORMAT_FOR_PRINT       = 2
      SEND_ERROR                     = 3
      SPOOL_ERROR                    = 4
      OTHERS                         = 5
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Paramerters:
    RESULT      Returns status information and print/fax parameters after the form has been printed. RESULT is of structure ITCPP.
    WRITE_FORM function
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
      ELEMENT                        = ' '
      FUNCTION                       = 'SET'
      TYPE                           = 'BODY'
      WINDOW                         = 'MAIN'
    IMPORTING
      PENDING_LINES                  =
    EXCEPTIONS
      ELEMENT                        = 1
      FUNCTION                       = 2
      TYPE                           = 3
      UNOPENED                       = 4
      UNSTARTED                      = 5
      WINDOW                         = 6
      BAD_PAGEFORMAT_FOR_PRINT       = 7
      SPOOL_ERROR                    = 8
      OTHERS                         = 9
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Some important parameters:
    ELEMENT      Specifies which textelement is printed
    WINDOW      Specifies which window is printed
    TYPE      Specifies the output area of the main window. This can be:
    TOP - Used for headers
    BODY
    BOTTOM - Used for footers
    FUNCTION      Specifies whether text is to be appended, replaced or added
    Example of how to use the WRITE_FORM function module together with a script.
    Form layout of the MAIN window
    /E INTRODUCTION
    Dear Customer
    /E ITEM_HEADER
    IH Carrier, Departure
    /E ITEM_LINE
    IL &SBOOK-CARRID&, &SPFLI-DEPTIME&
    /E CLOSING_REMARK
    The print program
    Writing INTRODUCTION
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT                  = 'INTRODUCTION'
              FUNCTION                 = 'SET'
              TYPE                     = 'BODY'
              WINDOW                   = 'MAIN'
        EXCEPTIONS
             OTHERS                   = 8
    Writing ITEM_HEADER
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT                  = 'ITEM_HEADER'
              FUNCTION                 = 'SET'
              TYPE                     = 'BODY'
              WINDOW                   = 'MAIN'
        EXCEPTIONS
             OTHERS                   = 8
    Set ITEM_HEADER into TOP area of main window for subsequent pages
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT                  = 'ITEM_HEADER'
              FUNCTION                 = 'SET'
              TYPE                     = 'TOP'
              WINDOW                   = 'MAIN'
        EXCEPTIONS
             OTHERS                   = 8
    Write ITEM_LINE
    LOOP AT .....
       CALL FUNCTION 'WRITE_FORM'
            EXPORTING
                 ELEMENT               = 'ITEM_LINE'
                 FUNCTION              = 'SET'
                 TYPE                  = 'BODY'
                 WINDOW                = 'MAIN'
           EXCEPTIONS
                OTHERS                 = 8.
    ENDLOOP.
    Delete ITEM_HEADER from TOP area of main window
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT                  = 'ITEM_HEADER'
              FUNCTION                 = 'DELETE'
              TYPE                     = 'TOP'
              WINDOW                   = 'MAIN'
        EXCEPTIONS
             OTHERS                    = 8
    Print CLOSING_REMARK
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT                  = 'CLOSING_REMARK'
              FUNCTION                 = 'SET'
              TYPE                          = 'BODY'
              WINDOW                   = 'MAIN'
        EXCEPTIONS
             OTHERS                    = 8
    START_FORM function
    CALL FUNCTION 'START_FORM'
    EXPORTING
      ARCHIVE_INDEX          =
      FORM                   = ' '
      LANGUAGE               = ' '
      STARTPAGE              = ' '
      PROGRAM                = ' '
      MAIL_APPL_OBJECT       =
    IMPORTING
      LANGUAGE               =
    EXCEPTIONS
      FORM                   = 1
      FORMAT                 = 2
      UNENDED                = 3
      UNOPENED               = 4
      UNUSED                 = 5
      SPOOL_ERROR            = 6
      OTHERS                 = 7
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    END_FORM function
    CALL FUNCTION 'END_FORM'
    IMPORTING
      RESULT                         =
    EXCEPTIONS
      UNOPENED                       = 1
      BAD_PAGEFORMAT_FOR_PRINT       = 2
      SPOOL_ERROR                    = 3
      OTHERS                         = 4
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CONTROL_FORM function
    The CONTROL_FORM function module alows you to create SapScript control statements from within an APAB program.
    Syntax:
    CALL FUNCTION 'CONTROL_FORM'
      EXPORTING
        command         =
    EXCEPTIONS
      UNOPENED        = 1
      UNSTARTED       = 2
      OTHERS          = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Example:
    Protecting the text element ITEM_LINE
    CALL FUNCTION 'CONTROL_FORM'
      EXPORTING
        COMMAND = 'PROTECT'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        TEXELEMENT = 'ITEM_LINE'.
    CALL FUNCTION 'CONTROL_FORM'
      EXPORTING
        COMMAND = 'ENDPROTECT'.

  • Example using command protect & endprotect

    hii gem's
    im unable to find the difference when using protect...endprotect
    without tht bcoz im getting same output
    ex:
    /: protect
    PH  'THIS IS TEST'
    PH  'THIS IS TEST'
    /: NEW-PAGE
    PH 'THIS IS TEST'
    ENDPROTECT
    please give a example using command protect & endprotect
    THANK U
    REWARDS FOR GUD REPLY
    REGARDS
    JAIPAL

    Hi Jaipal,
    It is mainly used to prevent the page break
    menas whatever lines you wrote between these protect and endprotect they are always printed in a single page only and they won't split into two pages though there is no full space
    go to SE71 see any scripts pagewindows
    you will find a lot of examples
    /E           TOTAL_AMOUNT
    /:           PROTECT
    UL           &ULINE(71)&
    TO                                                                                  
    TO           ,,Total net value excl. tax &EKKO-WAERS&,,
                                        &KOMK- FKWRT&
    /:           IF &SUM-EURO-PRICE& NE '                0,00'
    /           ,,                          EURO,,&SUM-EURO-PRICE&
    /:           ENDIF
    /:           ENDPROTECT
    Reward points for useful Answers
    Regards
    Anji

  • Export all dimension using a report scripts

    Does anybody has an idea on how to Export the dimensions from Essbase through a report script? Because i will use this to load the dimensions in odi.
    any idea is highly appreciated.
    Thanks in advance.
    Hanson

    If you look at my blog, I talk about the <preview function. it brings back them members with zeros as the values. It's much quicker than actually returning the data.
    There is a problem in general with your premise of using a report script to do this. For ODI, you will want the dimensions in a parent child format. The report script will not do that for you. I would suggest you look at the outline extractor housed on applied olap's web site. www.appliedolap.com it's free and you can run it in a batch mode.
    I think you should also look at John Goodwin's blog http://john-goodwin.blogspot.com/ he has a series of articles on ODI. you whould be able to extract the dimensionality from a cube and load it into another cube directly from ODI

Maybe you are looking for

  • Kodo 4.1.2 in Weblogic 10 Problem

    I was told by BEA that Kodo/openJPA is included in Weblogic 10. However, now I have Weblogic 10 but I could not located much Kodo classes from Weblogic libraries. I searched all the JARs under BEA_HOME\wlserver_10.0\server\lib. I also tried to migrat

  • How to do that with Automator?

    Hi there, I've a certain difficulty using Automator for my problem: Let's say that I have a folder named "Movie" on my desktok, and in it I have a movie (.avi, mp4 or whatever) and I also have a subtitled file (.srt) for subtitles. How can i do to se

  • HP VirtualRooms seem to connect but the room content does not display.

    When initially connecting to the HP Virtual Rooms system: http://rooms.hp.com, all looks well and I can enter a conference/meeting key and after hitting the 'go' button and I am greeted with a 'Thank you for joining us message'... but there is no act

  • Remaping the comma-key to be a dot-key (Apple Keyboard)

    Hi there, I am working on an Apple Keyboard and need to remap the comma-key to be a dot-key. Do you know how to do it? Thank you.

  • OS Update gets stuck

    MacBook with OS 10.6.2. Software Update asked me to install an OS update and something else when I got online again after a couple of months of not having internet at home. The download went fine, but the installation sticks after I restart and a pro