MaxL script invocation solution?

I need to use maxl script to refresh data. But before doing this I have to call an oracle sql package to do something first like prepare data. After finishing that maxl script I also need to do something else. And furthermore I need to catch exceptions and do some logging. I think the whole process should be in a transaction.
Is there a solution for this?
pure os script? pure oracle script? or a java programe?

There is error handling available in all the solutions suggested.
In case you are using an Oracle package, you can specify the execution to be exited on failure. For the maxl errors you can check the return value of sqlcmd execution in the procedure itself OR you can check for files which the essbase dataload might have created.
In ODI also you can create process flows which can stop execution on failure. In Batch scripts I know there is way to handle errors but I have not implemented it. May be someone else can throw some light on it.
Personally, I would prefer doing everything in Oracle just so that I have only 2 technologies to take care of.
Hope this helps!

Similar Messages

  • How to delete the members in one dimension use the maxl script

    i have question that i want to delete the members in one dimension useing the maxl script, but i do not know how to do it. can the maxl delete the members in one dimension? if can, please provide an sample script, thank you so mcuh.

    MaxL does not have commands to alter an outline directly, except the reset command which can delete all dimensions but not members selectively. The best you could do would be to run a rules file (import dimensions) using a file that contains the members you want to keepload rule for the dimension. As typical the warning is to test this first before you do it on a production database

  • How to change the Existing alias with new alias name...MAXL SCRIPT

    HI Experts
    I need to change alias name of the existing member with new alias name.
    please send me maxl code to change the alias name .
    My thought is
    1) Old alias should be replaced with new alias name .
    2)There is one account that should be rolled out to another parent..these parents are already exsist
    3) I need a MAXL Script to change the new alias name .
    please suggest ASAP.
    Thanks
    USER

    John
    I heard that we can replace existing alias name with new alias thru MAXL
    i.e replace alias name XXXX member with YYYY ;
    please correct me if iam wrong ,might be Maxl command is wrong but this is the idea.
    Thanks
    USER

  • Looping in Maxl Script - To load multiple files

    Hi,
    I am using Essbase 11.1.2 on UNIX.
    I have maxl script which will load 20 to 30 extraction file. Number is inconsistent. Extraction files will grow each month. Extraction files are with same name with the suffix _1,_2...(2 Gb thing). My previous script was hard coded to load file by file to load up to 50 files. I am trying to remove these hard coded lines, and try to loop the “load” statement. I have tried several ways using while loop in shell to call maxl /msh , but no luck. Any ideas?
    Thanks

    A very similar question was asked recently (but for Windows): Re: Maxl to import datafolders
    What have you tried? Maybe someone here can show you what's wrong with your script.
    The approach I usually take with this type of problem is to write a script that dynamically builds one single MaxL script with the appropriate number of files, rather than calling MaxL multiple times.
    I am generally too ashamed to share my Unix scripts, but at it's most basic, non-error-trapped, probably-inadvisable-and-full-of-holes-for-all-kinds-of-reasons, you could include something like this to build your load script:
    ls filename*.txt | awk {'print "import database etc... "$1" ...on error etc;"'} > scriptname.mshSince you can nest MaxL scripts, you can then reference scriptname.msh from a static 'master' script which handles login / spool on / spool off / logout as appropriate. See http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/maxl_commands_nesting.html or Cameron's 2009 K'scope presentation: http://odtug.com/apex/f?p=500:575:526121996615242::NO::P575_CONTENT_ID:4605

  • ODI fails when running MAXL scripts

    HI,
    We have a problem with ODI where when a scenario has a maxl script as a step the scenario fails.
    This is not a problem in our production environment but it is present in our DEV and TEST environments. We believe it may be a problem with the cloning process from PROD.
    Has anyone had this issue previously or can provide some helpful direction.
    Regards
    Luke
    ODI 10.1.3.5

    What is the error you are getting at the failure point?

  • Weird problem using "Login" in MaxL script

    Hi there
    I have created a MaxL script for loading som data into an Essbase. The script you can see below.
    login 'user' 'password' on 'nkm18k14';
    import database 'realtest'.'Loadtest'
    data from text data_file '\\nkm18k00\Planning\Loaddata\lonbud.txt'
    using server rules_file 'LonBLoad'
    on error write to '\\nkm18k00\Planning\Errorlogs\realtest.txt';
    When I try to execute it, as it is i get the following error "(3) Syntax error near ['$'], which im guessin is line 3, right?
    When I remove line 1 (the login statement), the script runs just fine. What is goin on, any ideas?
    I as a user have write acces to the network locations specified, could it be that the essbase uses som kind of system user that doesn't have acces to the network location?
    Any valuable input will be appreciated.
    Regards, Jacob

    It's true that they are not "needed" from a security approach, but from a maintenance approach you still end up having to touch a large number of scripts if you store the connection details in them.
    As a system user, you don't even have to change the password -- but if you have someone leave the company you may just want to.
    Either way, I would never want to hard code connectivity details inside dozens of scripts when I can keep it in a single place.
    Here is the MXL_Shell file for Windows -- you can obtain the SendEmail.exe from multiple places, but the syntax should be validated.
    The location of the scripts, log files, and batch items can of course be modified to your liking as well...
    The Errors that are ignored are stored in a file called "IGNORED.TXT" in the Batch directory (see below for what I ignore).
    @echo off
    REM ================================================================
    REM   MXL_Shell.cmd - Wrapper to call EssMsh (MXL) scripts
    REM ----------------------------------------------------------------
    REM   Author: Doug Bliss
    REM   Initial QC: 5/21/2005
    REM ----------------------------------------------------------------
    REM   Script to Execute should be base name (without extension)
    REM   Script should exist in the ..\Scripts directory
    REM   Both StdOut and StdErr are redirected to ..\Logs\<Script>.log
    REM   Call activity is logged to ..\Logs\Daily_ddmmyy.log
    REM   Log file is appended to ..\Logs\<Script>.hst at finish
    REM   Log file is processed for "Error" tokens to determine if
    REM      the result was successful or not
    REM   Notifications are taken from comment blocks in the script:
    REM      /* Notifications:
    REM         ONSUCCESS [email protected]
    REM         ONERR [email protected]
    REM       */
    REM   Localization details: Update the variables set immediately below (typically SRCPATH and EMAIL*)
    REM ================================================================
    SET SRCPATH=C:\Automation
    SET EMAILDOM=<yourcompany.com>
    SET EMAILRELAY=<relay>.%EMAILDOM%
    SET DEVBOX=<devboxname>
    SET IGNORE=%SRCPATH%\Batch\Ignored.txt
    SET MXLFILE=%SRCPATH%\Scripts\%1.mxl
    SET LOGPATH=%SRCPATH%\Logs
    SET LOGFILE=%LOGPATH%\%1.log
    SET ERRFILE=%LOGPATH%\%1.err
    SET HSTFILE=%LOGPATH%\%1.hst
    SET DAYFILE=%LOGPATH%\Daily_%date:~4,2%%date:~7,2%%date:~10,4%.log
    REM ################################## Step 1: Sanity Checks
    IF "%1"=="" EXIT /B 1
    IF NOT EXIST %MXLFILE% EXIT /B 2
    REM ################################## Step 2: Initialize Log entries
    IF NOT EXIST %LOGPATH%\. MKDIR %LOGPATH% >nul
    IF EXIST %ERRFILE% MOVE /Y %ERRFILE% %SRCPATH%\Logs\%1.bak.err >nul
    IF EXIST %LOGFILE% MOVE /Y %LOGFILE% %SRCPATH%\Logs\%1.bak.log >nul
    REM ################################## Step 3: Call the Script
    ECHO %time% -- Calling EssMsh Script: %1.mxl %2 %3 %4 %5 %6 %7 %8 %9 >>%DAYFILE%
    ECHO ============================== ESSBASE SESSION LOG >%LOGFILE%
    ECHO Log Opened: %date% %time% >>%LOGFILE%
    CALL User.cmd
    essmsh.exe -s %COMPUTERNAME% -u %UID% -p %PWD% %MXLFILE% "%2" "%3" "%4" "%5" "%6" "%7" "%8" "%9" >>%LOGFILE% 2>&1
    REM ################################## Step 4: Post Processing
    REM #### Daily Log Entry (return call)
    ECHO %time% -- Returned from Maxl Script: %1.mxl >>%DAYFILE%
    ECHO Log Closed: %date% %time% >>%LOGFILE%
    ECHO ============================== END OF SESSION >>%LOGFILE%
    REM #### Process Error entries and filter via Ignored.txt file
    TYPE %LOGFILE% | FIND "ERROR" >%ERRFILE%
    FOR /f "tokens=1" %%a in (%IGNORE%) DO TYPE %ERRFILE% | FIND /V "%%a" >%ERRFILE%
    FOR %%a in (%ERRFILE%) DO SET /a ErrCount=%%~za >nul
    IF '%COMPUTERNAME%'=='%DEVBOX%' (
         SET TYPE=NON-Production
         SET SVR=development
    ) ELSE (
         SET TYPE=Production
         SET SVR=production
    IF %ErrCount% EQU 0 (
         ERASE /Q %ERRFILE%
         SET SUBJECT=Essbase %TYPE% Script Completed
         SET MESSAGE=Maxl script '%1' has successfully completed on the %SVR% server.
         SET ATTACH=
         SET RESULT=SUCCESS
    ) ELSE (
         REM ################################## ERROR Processing
         SET SUBJECT=Essbase %TYPE% Script Error
         SET MESSAGE=Errors were detected in Maxl script '%1', the job's log and error files are attached.
         SET ATTACH=%LOGFILE% %ERRFILE%
         SET RESULT=ERR
    TYPE %MXLFILE% | FIND "ON%RESULT%" >Notify.tmp
    FOR /f "tokens=2" %%a in (Notify.tmp) DO SendEmail -f %COMPUTERNAME%@%EMAILDOM% -t %%a -u "%SUBJECT%" -m "%MESSAGE%" -s %EMAILRELAY% -a %ATTACH%
    ERASE /Q Notify.tmp
    ECHO. >>%DAYFILE%
    ECHO. >>%HSTFILE%
    TYPE %LOGFILE% >>%HSTFILE%
    :FIN
    ECHO.
    EXIT /B %ERRCOUNT%Here is my IGNORED.TXT file (only the code itself is used, the rest is for reference).
    0000000  This file contains Essbase Error codes which should be ignored by ESS_Shell.cmd or MXL_Shell.cmd
    1051083  This substitution variable does not exist.
    1003029  Encountered formatting error in spreadsheet file [%s]
    1090010  Error in File [%s] Which is a [%s] Spreadsheet
    1051068  Database is not in archive read-only mode

  • MAXL Script

    I'm having trouble with running a MAXL Script. I have a macro in Access that creates my load table. The last command in the macro is "essmsh loadcube.msh".The shell will open, but doesn't take input from the file. The file contents are:login user pswd on server;set message level all;import database Invstmnt.Invstmnt data from data_file 'C:\Hyperion\Essbase\Client\loadinv05.xls' using rules_file 'T:\App\Invstmnt\Invstmnt\Data05.rul' on error append to 'C:\Hyperion\Essbase\Client\errorinv.log';execute calculation 'SET MSG ERROR; CALC ALL;' on Invstmnt.Invstmnt;logout;exit;Is this incorrect??? These steps work fine when I key it into the shell.

    I am making the assumption you want to update a substitution variable, not a 'global' variable. Symantecs of course as they are global, but hope I get you heading down the right path.
    Yes, you'll need to use the Alter Database command. You must first drop the variable then add the variable you want.
    ex:
    alter database $4.$5 drop variable pyryear;
    alter database $4.$5 add variable pyryear;
    alter database $4.$5 set variable pyryear "FY07";
    obviously this is a snipit of code I have from a MaxL automation with positional variables included, but this should have you heading in the proper direction.

  • Any Maxl Script to Export and import of Partition

    Hi All,
    Is there any maxl or Esscmd command which will do an Export or an import of the partition.
    Regards,
    Krishna.

    Hi Krishna,
    here ,there are 2 things.
    Firstly, creation of partition( which is possible through MAXL scripts).Once the partition is made, an XML is created(which is what garycris was mentioning in his post).
    Goto any application -> database -> partitions ->right click here , you see "import partition",and the file nature is of XML.When you look at this window , you will undestand .I am not sure of the same functinoality in MAXL.
    Hope this info helps
    Sandeep Reddy Enti
    HCC

  • Script to export Security file using maxl script

    can anyone provide me the Script to export Security file using maxl script.It should create a log file and a batch file should also be there to schedule the Maxl script.Please help me with this

    Hi,
    You can use something like
    [b]login admin password on localhost;
    [b]spool on to 'c:\temp\log.txt';
    [b]export security_file to data_file C:\temp\sec_file.txt;
    [b]spool off;
    [b]logout;
    Then you can have a batch file that just calls the maxl script
    essmsh name_of_maxl_script.mxl
    The batch script can then be scheduled.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Auto-kick off MaxL script after Oracle GL data load?

    Hi guys, this question will involve 2 different modules: Hyperion and Oracle GL.
    My client has their accounting department updating Oracle GL on a daily basis. My end-user client would like to write a script to automatically kick off the existing MaxL script which is for our daily data load in Hyperion. Currently, the MaxL script is manually executed.
    What's the best approach to build a connection for both modules to communicate with each other? Can we use a timer to trigger the run? If so, how?

    #1 External scheduler.
    I've worked on Appworx and it has build a chain dependent task. There are many other external schedulers like Tivoli,....
    #2 As Daniel pointed out you can use Windows scheduler.
    For every successful GL load add a file to a folder which is accessible for your Essbase task.
    COPY Nul C:\Hyperion\Scripts\Trigger\GL_Load_Finished.txt
    Create another bat file which is scheduled to run on every 5 or 10 mins (this should start just after your GL Load scheduled task)
    This is an example i've for a triggered Essbase job.
    IF EXIST %BASE_DIR%\Trigger\Full_Build_Started.txt (
    Echo "Full Build started"
    ) else (
         IF EXIST %BASE_DIR%\Trigger\Custom_Build_Started.txt (
         Echo "Custom Build started"
         ) else (
              IF EXIST %BASE_DIR%\Trigger\Post_Build_Batch_Started.txt (
              Echo "Post Build started"
              ) else (
              IF EXIST %BASE_DIR%\Trigger\Start_Full_Build.txt (
              Echo "Trigger found starting batch"
              MOVE %BASE_DIR%\Trigger\Start_Batch.txt %BASE_DIR%\Trigger\Full_Build_Started.txt
              call %BASE_DIR%\Scripts\Batch_Files\Monthly_Build_All_Cubes.bat
              ) else (
                   IF EXIST %BASE_DIR%\Trigger\Start_Custom_Build.txt (
                   Echo "Trigger found starting Custom batch"
                   MOVE %BASE_DIR%\Trigger\Start_Custom_Batch.txt %BASE_DIR%\Trigger\Custom_Build_Started.txt
                   call %BASE_DIR%\Scripts\Batch_Files\Monthly_Build_All_Cubes_Custom.bat
                   ) else (
                        IF EXIST %BASE_DIR%\Trigger\Start_Post_Build_Batch.txt (
                        Echo "Trigger found starting Post Build batch"
                        MOVE %BASE_DIR%\Trigger\Start_Post_Build_Batch.txt %BASE_DIR%\Trigger\Post_Build_Batch_Started.txt
                        call %BASE_DIR%\Scripts\Batch_Files\Monthly_Post_Build_All_Cubes.bat
    )So this bat file if it finds Start_Full_Build.txt in the trigger location, it'll rename that to Full_Build_Started.txt and will call the Full Build (likewise for custom and post build)
    Regards
    Celvin
    http://www.orahyplabs.com

  • How to exit Maxl Script

    Hi,
    In the tech ref, "It is not necessary to exit at the end of MaxL script files or stream-oriented input (using the -i switch)". How is this done?
    I want to run a DOS batch after the Maxl script is done.
    Thanks.

    Nevermind I figured it out. I changed the .bat command to follow.

  • Cahnge the date  dynamically in Maxl script

    Hi All,
    I am excuting one max for clearing the data for particuler cells it s ok
    It will work for 9th month but next month it will not work until i dont change the value manually
    Dynamically i need to change
    alter database 'ACCOUNT'.'account' clear data in region '{([2010.09],[Actual])}' physical;
    how can i do this , any help would be appriciated..

    I think he wants to avoid updating anything manually though?
    you should be able to:
    a. Build the date/string in a batch file.
    b. pass that date/string to the maxl script as a paramter
    c. use the parameter in your alter database script
    I have also seen people rebuild the entire maxl script each month from a skeleton in another text file or a database but thats probably over complicating.
    You could also use that variable to update a substitution variable

  • Maxl script unable to read/write to a folder

    When logged in to EAS, we are trying to run a maxl script to read/write to a report script in a particualr folder on the server. Even though the eas login username has write permissions to that folder, the maxl keeps saying: unable to open file.
    Is there any internal Hyperion service account that should specifically have write permissions to the folder?
    here is the maxl:
    SPOOL ON TO 'D:\Oracle\WE.log;
    LOGIN 'username' 'password' on 'server1';
    ALTER SYSTEM LOAD APPLICATION 'Plan1';
    ALTER APPLICATION 'Plan1' LOAD DATABASE 'Main';
    export database Plan1.Main using report_file 'D:\Oracle\WE.rep' to data_file 'D:\Oracle\WE.rpt';
    SPOOL ON TO 'D:\Oracle\REV.log';
    When we run it, we get the following error:
    It gets past the alter systen and alter application commands, and then:
    'Unable to open file ['D:\Oracle\WE.rpt']

    Have you tried running it from a maxl session and not EAS, if you are testing using maxl you may need double backslashes instead of single ones.
    Have you tried with the report script in the database app folder and using the server option - export database Plan1.Main using server report_file 'WE' to data_file 'D:\Oracle\WE.rpt';
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Maxl Script running Issue in Essbase 11.1.2.2

    Hi All,
    We have a Maxl Script which takes Level 0 Backup of the Database. We have migrated the apps to the new server 11.1.2.2 and this script is not running in the new server but it works fine in the Old Server.We have the code like this in the script
    REM $1 = USERNAME
    REM $2 = PASSWORD
    REM $3 = servername
    REM $4 = BSOAppName = RPSBSO
    REM $5 = BSODB_Name = RPSBSOD
    REM $6 = ASOAppName = RPSASO
    REM $7 = ASODB_Name = RPSASOD
    essmsh C:\Hyperion\Automation\MAXL\Backup_BSO.msh Username  password gvw3086-v.atlanta.hp.com  RPSBSO RPSBSOD RPSASO RPSASOD
    When i run the .bat script  an Fatal Error is shown under the above line saying
    MSH Fatal Error: Error Initializing localization module.
    I have changed all the path locations,server names etc according to the new environment in the script but the script is displaying error like above. Can any one help me on this.
    Regards,
    Naveen

    972698 wrote:
    Hi John Thanks for your post.
    I would like to give some more information like this is the script named BU_BSO_2.bat which is used for taking backup of individual application  RPSBSO,  and  it calls  Backup_BSO.msh script which is internally called in BU_SO_2.bat file as given below the command. What we do is we just run this BU_BSO_2.bat batch file where it executes  everything and places the backup in given path in the script. But actually  its giving error in executing only the given below line
    essmsh C:\Hyperion\Automation\MAXL\Backup_BSO.msh Username  password gvw3086-v.atlanta.hp.com  RPSBSO RPSBSOD RPSASO RPSASOD
    Error shown :   MSH Fatal Error: Error Initializing localization module
    And i went through your doc but they are the server  specific paths which we are not using in this script and this script runs fine in 11.1.1.
    Let me know if i can provide any more information.
    Regards,
    Naveen
    Try updating
    essmsh C:\Hyperion\Automation\MAXL\Backup_BSO.msh Username  password gvw3086-v.atlanta.hp.com  RPSBSO RPSBSOD RPSASO RPSASOD
    to
    startMaxl.bat C:\Hyperion\Automation\MAXL\Backup_BSO.msh Username  password gvw3086-v.atlanta.hp.com  RPSBSO RPSBSOD RPSASO RPSASOD
    If the location of startMaxl is not in the windows path variable you will need to either update the path variable or put the path in the script e.g.
    C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat
    or C:\Oracle\Middleware\EPMSystem11R1\products\Essbase\EssbaseClient\bin\startMaxl.cmd
    Alternatively edit startMaxl and take the variable information out of it and put it in your script then you will be able to use essmsh.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Automation process in Workspace (using MaxL script)

    Hi All,
    I have a MaxL script to export Level 0 data and to update new data in a database
    It is working fine.
    I have tried to schedule it, and its also working fine.
    But according to my requirement, i have to publish this MaxL script in workspace as a job or as a file so that I can run this MaxL script in workspace only.
    I have tried some way but didn't get success.
    So help me to solve my problem
    Thanks in advance

    We are using workspace and jobs to automate our processes. Here is how we do it:
    In the server that runs workspace, we place the batch or exe that needs to be run. Then we set up a job factory using that same batch file.
    Then on workspace we import this batch file as a generic job with the associated job factory and DONE!
    Next time you execute the job from workspace, that batch file will run from your workspace machine.
    send me an email to [email protected] and I'll give you the documentation that we used to set it up in more details.

Maybe you are looking for

  • Field in billing document

    Dear Friends, Pls let me know is there any field available at Billing Document at Header Level where i can maintain text manually and the same field is available (can be seen) at FBL5N report?? Plos tell the Tab and Field name. Srikky.

  • Neeeeeeeeeeed a help my contact disappear when they call me

    dear all i'll be much obliged if some one can help me to solve this problem , i'm using iphone 3gs & sync my contact by outlook but all my contact start with the area code like "(+2) or (+218) like this so if some one calling me localy his name don't

  • Storing my iPhoto library in "normal" folders?

    Hi Guys, I am quite happy with what iPhoto does feature-wise, but it appears the only way to store your library is in the "iPhoto library", which is a "closed format" folder - ie you can't drag it onto other drives to back up, or open it to view the

  • Calling Reports from 11gForms

    Hi Can anyone give me an example of calling report from forms11g. Thnx in advance.. Regards Ahamed

  • Serializing & Deserializing objects through ObjectMessage

    Hi, I'm having trouble sending objects/instances of a class (Data) through the message queue. I also made Data to be serializable. public class Data implements Serializable { }The following are snippets of code from the Message producer side: objectM