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.
Similar Messages
-
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/ -
Copying substitution varibale using Maxl script
Hi,
Ive been trying to copy application using Maxl script in essbase to take backups. Everything gets copied except substitution variables. Could some one help me in sorting out this issue.
Is there any specific Maxl Command to copy substitution variable alone from one application to another, if so could u please share it with me.
thanksHi,
Unfortunately, as John said, there is no command to copy the subvars. One of my colleagues ran into this same issue on one of my projects. He ended up spooling a script with display variable all command to show all your variables and write them to a text file. from there he wrote a batch file to parse the text file for each of the variables, and then updated the subvars in the backup application with these values.
The thing you want to look out for here is that you want to make sure you properly handle checking for whether the subvar already exists in the backup application. If it does, you just want to run an update of the value. If it doesn't exist, you want to add it first. This is because there is no create or replace variable, so to avoid any errors, you need to be careful with that. I think you may want to look into some of the other alternatives John provided if you are still looking into this issue.
Thanks,
Daniel
http://www.DVEPM.com -
I need to give security for a folder using Maxlscript/Bach filesl.Is it possile.......?
Is it possile.......?^^^Yes.
Regards,
Cameron Lackpour -
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! -
I was helping a client with automating the running of a MaxL script, using the Windows AT command, and we encountered something odd: a MaxL script that runs fine in EAS does not run correctly when invoked programmatically.This seems to occur when the script involves path references (for error file locations, etc.). Surrounding the path (which had no spaces or "funny" characters) with single quotes works in a script that is to be run from the EAS console.However, when the script is run programmatically (through a batch file, or the AT command), it seems that you have to surround paths with--get this:First: single quotes, to denote the stringSecond: double quotes (outside the single quotes), for a reason a can't quite put into wordsThird: the backslash character used in Windows path references is an escape character in MaxL, so to actually refer to a backslash, you have to use two of them in a row.So, the path used in error writing was originally written in the script like this: 'D:\Errors\DimBuild.err'...and to run programmatically, it had to be:"'D:\\Errors\\DimBuild.err'"...and the problem is, the latter example will NOT run from EAS. Has anyone else encountered this issue?Jared
I've found that to use a windows path in MAXL, I've found by trial and error that the form that works is'\\\\server05\essbase\buddb\budapp\dataload.txt'Don't know why, but the double backslashes preceding the server need to be escaped, but the subsequent ones don't. I discovered this by trial and error and carefully reading error output.And of course shell statements don't work from EAS.
-
Hi How to "set the note" and "variable" in a cube using Maxl script?thank u very much in advanceesstulasi
Thank you. It is running perfect. How to pass a value to the variable in generic here. Say here iam passing "May" for the variable "xyz"alter database AppName.DbName set variable xyz May;Thanks in advance..Ess
-
Maxl scripts to perform backup of the following
Help me with these (Maxl script to do these backups)
How to take Backup of filters (use maxl script to get filter information of all native cubes).
Since we use xref calc a lot so we need to backup information of location alias.
We have partitioning so we need to get partition information backed up.Hi,
Filter information is stored in the essbase.sec file so it is good start to make sure that is being backed up.
As for extracting filter information by maxl you can do it with something like :-
login admin password on localhost;
spool on to 'c:\temp\filters.txt';
display filter row all;
spool off;
logout;
or if you want to narrow the filter down to a database use
display filter row app.db;
You will also need to change the column width to fit all the filter in e.g.
set column_width 50;
You can also dump the whole security file to a text file if you wanted which includes all the filter information (from 9.3.1)
export security_file to data_file C:\temp\sec_file.txt;
I take it your partitions don't change very often so you can easily just export the partition to xml from EAS, depending on what you are on.
Cheers
John
http://john-goodwin.blogspot.com/ -
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, JacobIt'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 -
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
-
Error While Deploying the BPEL Process using obant script
Hi All,
I am getting the following error while deploying the BPEL Process using obant script. we are using the BPEL Version 10.1.2.0.2.Any information in this regard will be really helpful.
Buildfile: build.xml
main:
[bpelc] file:/home5102/dibyap/saravana/Test/CreditRatingService.wsdl
[bpelc] validating "/home5102/dibyap/saravana/Test/CreditRatingService.bpel" ...
BUILD FAILED
/home5102/dibyap/saravana/Test/build.xml:15: ORABPEL-01002
Domain directory not found.
The process cannot be deployed to domain "default" because the domain directory "/opt02/app/ESIT/oracle/esit10gR2iAS/BPEL10gR2/iAS/integration/orabpel/domains/default/deploy" cannot be found or cannot b
e written to.
Please check your -deploy option value; "default" must refer to a domain that has been installed locally on your machine.
Total time: 23 seconds
dibyap@ios5102_ESIBT:/home5102/dibyap/saravana/Test>
Thanks,
SaravanaIn 10.1.2.0.2 you need to create your own build.xml
I have found an example, it may be of some help. This does call a property file
cheers
James
<?xml version="1.0" ?>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run cxant on this file to build, package and deploy the
ASB_EFT BPEL process
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<project name="ASB_EFT" default="main" basedir=".">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name of the domain the generated BPEL suitcase will be deployed to
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<property name="deploy" value="default" />
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What version number should be used to tag the generated BPEL archive?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<property name="rev" value="1.0" />
<!-- BPEL Best Practices Properties -->
<!-- Defaults Properties for TARGET environments
# CHANGE THIS FILE TO REFLECT THE TARGET ENVIRONEMNT
# either dev, test, or prod.properties
-->
<property file="ebusd.properties"/>
<property name="env" value="${env.name}"/>
<property name="current.project.name" value="${project.name}"/>
<property name="target.project.name" value="${project.name}_${env}"/>
<property name="deployment.profile" value ="${env}.properties"/>
<property name="source.development.directory" location="${basedir}"/>
<property name="target.env.directory" location="${basedir}/deploy/${project.name}_${env}"/>
<property file="${deployment.profile}"/>
<property name="build.fileencoding" value="UTF-8"/>
<!-- Prints Environment
-->
<target name="print.env" description="Display environment settings">
<echo message="Base Directory: ${basedir}"/>
<echo message="Deployment Profile: ${deployment.profile}"/>
<echo message="target.env.directory: ${target.env.directory}"/>
<echo message="Deploy to Domain: ${deployToDomain}"/>
<echo/>
<echo message="os.name: ${os.name}"/>
<echo message="os.version: ${os.version}"/>
<echo message="os.arch: ${os.arch}"/>
<echo/>
<echo message="java.home: ${java.home}"/>
<echo message="java.vm.name: ${java.vm.name}"/>
<echo message="java.vm.vendor: ${java.vm.vendor}"/>
<echo message="java.vm.version: ${java.vm.version}"/>
<echo message="java.class.path: ${java.class.path}"/>
<echo/>
<echo message="env: ${env}"/>
<echo message="current.project.name: ${current.project.name}"/>
<echo message="target.project.name: ${target.project.name}"/>
<echo message="server.name: ${server.name}"/>
</target>
<!--
Copies the current directory structure along with
all the file into the target.env.directory and
change the name of the project
-->
<target name="create.environment">
<copy todir="${target.env.directory}">
<fileset dir="${basedir}"/>
<filterset begintoken="@" endtoken="@">
<filtersfile file="${deployment.profile}"/>
</filterset>
</copy>
<move file="${target.env.directory}/${current.project.name}.jpr" tofile="${target.env.directory}/${target.project.name}.jpr"/>
</target>
<target name="main">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
the bpelc task compiles and package BPEL processes into versioned BPEL
archives (bpel_...jar). See the "Programming BPEL" guide for more
information on the options of this task.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<bpelc input="${basedir}/bpel.xml" rev="${rev}" deploy="${deploy}" />
</target>
</project>
here is a property file
project.name=ASB_EFT
env.name=ebusd
deployToDomain=default
server.name=[server]
server.port=7788
ebusd\:7788=http://[server]:7788/
IntegrationMailAccount=OracleBPELTest
IntegrationMailAddress=[email]
IntegrationMailPassword=[password]
archivedir=[directory]
inbounddir=/[directory]
errordir=[directory]
outbounddir=[directory]
bpelpw=bpel
dbhost1=[dbserver]
dbhost2=[dbserver]
dbport=1523
dbservice=bpel
dbconnstr=jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=[server])(PORT=1523))(ADDRESS=(PROTOCOL=tcp)(HOST=[server])(PORT=1523)))(CONNECT_DATA=(SERVICE_NAME=ebusd))) -
Can you suggest me how to run multiple calc scripts using singel maxl script
Hello,
I am writing a maxl script which should be able to :
1. update Set Variables for the Essbase DB
2. Execute multiple calc scripts
2a. Trying to put specific sleep time within multiple calc scripts.
Thanks and Regards.Why are you looking for a Maxl to run multiple maxls? Can't you use a batch or sh script to do it.
Unix has a sleep command in batch file try using choice
Regards
Celvin -
Using $ sign on MaxL scripts
Hi all,
How does using $ sign on MaxL scripts work? I have seen scripts that $ sign was used instead of username, password, server name, etc. What are the advantages of using it and how can it be set up?
Thanks in advance.
A$ are used to denote variables and to be pedantic about it, encrypted usernames and passwords which I guess are used sort of like variables.
I use them all the time unless the MaxL script is super quick, dirty, and disposable. And they never end up being disposed of.
Check out this part of the Tech Ref for all you ever wanted to know about variables in MaxL:
http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/maxl_syntax_vars.html
If you want to get a different take on them, check out ODTUG's Resource Center and my presentation from 2009 to get a feel for how they can be used in scripting. My blog also has a post from 2009 on how to use variables under the "Fixing Planning's Filters" topic.
Regards,
Cameron Lackpour -
Using MaxL in batch script to get Essbase database size before proceeding
I have a batch script which dynamically generates some MaxL before passing it to ESSMSH. I would like to insert a command at the beginning of the MaxL script, to get and assess the size of the database before proceeding. If the database is empty I would like the script to quit. This is to prevent the script from exporting data and overwriting the previous export file if the database is empty.
The generated MaxL (modified) is currently as follows. What logic can I add to the MaxL script, to assess the database size and go to the "errorhandler" label if it is empty? Is this even possible?
login %USER% identified by %PASS% on %SERVER%;
iferror "errorhandler";
/* log file */
spool stdout on to '<directory>.log';
iferror "errorhandler";
/* error file */
spool stderr on to '<directory>.err';
iferror "errorhandler";
/* export data */
set timestamp on;
execute calculation %APP%.%DB%.C_Export;
iferror "errorhandler";
/* reset database */
alter database %APP%.%DB% reset data;
iferror "errorhandler";
/* import data */
import database %APP%.%DB% data from server data_file "<filename>.txt" on error abort;
iferror "errorhandler";
/* calculate database */
execute calculation default on %APP%.%DB%;
iferror "errorhandler";
/* error handler */
spool off;
define label "errorhandler";
logout;
exit;Hi Stuart,
Yes I was aware of display database "app"."db"; however this will output a table rather than a specific value. And what logic can I then add to the MaxL script to assess the specific value of "Db Status" and go to the "errorhandler" label if it is empty?
It would seem this needs to be done via a VBScript, to loop through the file rows to find the value before proceeding accordingly. But I was hoping there might be a way to do this within MaxL. -
HOW can i delete the members in dim using MAXL
Hi All,
I want to delete the all the memebers for dimensions before reloading so how ca n i write the maxl script for this to delete the members in the dimensions
plz can any one help on this its very urjent ,
It would be appriciated ...
ThanksThere is no way to alter an outline with MaxL, MaxL is an admin language for processing. The only option, as Glenn mentioned is to issue the reset all command to blow away everything. But you probably don't want to do that, so instead you use Maxl to run a series of load rules to achieve your goal.
Load rules do not have functionality to delete outline members, it does have a feature however that allows you to remove unspecified members from a dimension build, so when loading in your members, if existing members are not in the import, they are removed. So Glenn's point was to create a source file with a single dummy member. When you load using "Remove Unspecified" it will delete all the members and just keep the one dummy member. Then when you go back a second time and actually load the real members, the dummy member will be removed and you will have a clean dim with only your new members. This is a work around solution, but it's what a lot of people do.
Now if you have 15 dimensions you need to do this with, you might want to take a slightly different approach. I'm assuming 15 dimensions is probably an ASO cube and this method will be preferable to avoid outline fragmentation.
Create a copy of your outline with all the base dimensions that do not change intact. For the ones that do change, just have your dim root member. Consider this your starting outline template and save a copy of it. When you want to rebuild your cube have a server process that takes the copy of your template outline and copies it over your existing outline file in the directory structure. Then run your load rules to import your new members.
Maybe you are looking for
-
Multiple user creation in R12 and migration of users
I would like to know how we can automate a process of user creation in R12, or is there a way to create multiple users in Ebiz with respective responsibilities. Second case is, migration of users from one instance to another. The problem out here is
-
Hi, Few accounts are managed with open item management. These accounts are containing more 10,00,000 open items. Now we are planning to clear all open item for past years based on certain selection criteria through transction code F-03. Since data vo
-
I can't not use spatial operator and index .
Dear all, I create following spatial tales and spatial index. create table LHelix( PDB_IDcode varchar(8) not null, chainID varchar(2), Hnum number not null, anum varchar(6), Hgeo MDSYS.SDO_GEOMETRY, primary key(PDB_IDcode,chainId,hnum,anum)
-
SBO Backup. ¿Incorpora planificador con borrado ciclico de copias?
SBO Backup, ¿ha incorporado la utilidad que si tiene SQL Server de permitir que se progranmen copias con una duración determinada dentro del plan de copias de seguridad de la empresa?
-
Has this happened to anyone else? Will the ship date update or does this mean I will be getting it shipped out soon?