Monitoring Execution of ODI packages

In order to automate the monitoring of the OID pacakges, our monitoring tool (PATROL) can read txt files and when a specific key word is entered, trigger an alert.
The file should be empty if package runs successfully and whenever a package fails a keyword should be written to it (overwritting whatever was there before).
File location could be anywhere,that would not be a problem.
How it can be achieved ?

Hi,
There are a number of ways to do this, have a look at this blog post on how to write out errors to a file from ODI :
http://odiexperts.com/error-records-log
Now the example above is reporting data validation errors from the SNP_CHECK_TAB, if you want runtime errors from a scneario then you can get the error from a previous step in a package using the API :
<%=odiRef.getPrevStepLog("MESSAGE")%>
You could also use the oditool ODIFileAppend to open/overwrite/ populate a file with the error using the API method I've mentioned above. Check the API Substitution guide and ODITools guide for more info.
Regards,
Alastair

Similar Messages

  • ODI Packages execution based on condition

    Hi,
    We have clear the data using calc scripts and then load data into Hyperion using ODI packages. Currently i have one Package (Package1) to be executed on WD2 & WD3.
    I have created an interface which will execute the script.
    Here calc scripts are different which are to be executed on WD2 & WD3. I want to have all the steps in single package using any conditions.
    Example:
    Step1 - to check whether it is WD2,
    If yes go to step2 and so on till step6.
    If no, then go to step7.
    Can any one help me on this
    Thanks
    Damo

    Hi,
    ODI variables could be useful for you. Use refresh variable step with appropriate query, then evaluate variable step and organize your logical branching. You could learn about variables fron Developer's guide http://docs.oracle.com/cd/E14571_01/integrate.1111/e12643/procedures.htm#CHDIFIGB (for ODI 11g).

  • Event based Automatic execution of ODI scenario (or package)

    My requirement is that whenever my source XML data file is replaced with new file (file-name remains same by the way; the new file is ftp'ed at this location);
    Whenever this event occurs my odi scenario (or package) should get executed automatically.
    I don't wish to achieve this using web-services.
    I am using ODI 11g.
    Any help appreciated.

    Thanks a lot Sutirtha Roy.
    I achieved what I was trying but one issue is still there:
    Following are steps I follow in my ODI Package:
    Step 1:
    Odi File Wait (Waits for XML input file)
    Step 2:
    Execute interface (this interface actually does transfer of Src data of XML to Oracle db)
    Step 3:
    ODI File Move (Moves processed file to some other dir)
    ---- At this point I see a lock .lck file is created of input file
    Step 4:
    ODI File Delete (deletes .lck file)
    Step 5:
    Loop Back to "Odi File Wait" step 1
    But after first file is processed and second file is received at src directory the ODI package couldn't load data in db.
    The interface got executed as if it was void.
    I suspect File is locked in Driver.
    The deletion in step 4 didnt help.
    How can I resolve it.
    Is there a way to execute 'UNLOCK file <fileName>' command on the driver.

  • How to pass a Variable value into an ODI Scenario from ODI Package

    I have created an Interface that uses the variable #ENTITY_ID for retrieving entity data from the DWH; now I have generated a Scenario from the interface and placed the Scenario in an ODI Package; am not sure how to pass the #ENTITY_ID variable to the ODI Scenario?
    Any help is greately appreciated.
    Best Regards
    Bee

    Hi Sutrtha,
    Yeah I got the pop up asking to select the variables used, I have selected ENTITY_ID that was used by the interfaces, but on execution of the package the Scenario did not work as the passeed variable #ENTITY_ID is set to 0 instead of the value I am passing.
    Am I missing something?
    Regards
    B

  • Putting ODI packages into a .bat file

    Hello,
    I have multiple ODI packages and I want be able to execute these packages in a Window .bat execution. How do I call these packages say in a DOS command?
    Thanks!

    Create a scenario for each package and then you can call them by using startscen.bat that is the oracledi\bin directory.
    Syntax: startscen <Name> <Version> <Context code> [<Log_Level>] [-SESSION_NAME=<session name>] [-KEYWORDS=<keywords>] [-NAME=<agent_name>] [-v=<trace level>] [<variable>=<value>]
    e.g. startscen.bat SCENARIONAME 001 GLOBAL "-v=5" "PROJ1.VAR1=VARVALUE"
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How Can I Kill Excel.exe Process After finish my Execution of SSIS Package in Sqlserver2008r2

    Hi !,
          am new for c# and SSIS Package Creation , I am Trying to Read Excel file, and load the value into Sqlserver using SSIS package . My Problem is , After Execution of SSIS package Still Running EXCEL.exe Process in my server. i need to
    kill that process . I post my Code Exactly where am release my excel file object , please guide me where am going to wrong?
    Server Configuration
    OS:windows7
    SqlServer :2008r2
    Framework:3.5
    please give me some suggestion to correct my error .
    Here is My Code:
                Microsoft.Office.Interop.Excel.Application xlApp;
                Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
                Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
                var missing = System.Reflection.Missing.Value;
                xlApp = new Microsoft.Office.Interop.Excel.Application();
                xlWorkBook = xlApp.Workbooks.Open(filename, false, true, missing, missing, missing, true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, '\t', false, false, 0, false, true, 0);
                xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                Microsoft.Office.Interop.Excel.Range xlRange = xlWorkSheet.UsedRange;
                Array myValues = (Array)xlRange.Cells.Value2;
    int vertical = myValues.GetLength(0);
                int horizontal = myValues.GetLength(1);
                System.Data.DataTable dt = new System.Data.DataTable();
                bool isNameRead = false;
                // get header information
                for (int i = 1; i <= horizontal; i++)
                    string cellValue1 = "";
                    object cellObj = myValues.GetValue(1, i);
                    if (cellObj != null)
                        cellValue1 = myValues.GetValue(1, i).ToString();
                        if (cellValue1 == "Name")
                            if (!isNameRead)
                                dt.Columns.Add(new DataColumn(cellValue1));
                                isNameRead = true;
                            else
                                dt.Columns.Add(new DataColumn(cellValue1 + 1));
                                isNameRead = false;
                        else
                            dt.Columns.Add(new DataColumn(cellValue1));
                // Get the row information
                for (int a = 2; a <= vertical; a++)
                    //string cellrowvalue = "";
                    string isemt = "";
                    object[] poop = new object[horizontal];
                    for (int b = 1; b <= horizontal; b++)
                        isemt =(string) myValues.GetValue(a, b);
                        if (isemt != null)
                            poop[b - 1] = myValues.GetValue(a, b);
                    DataRow row = dt.NewRow();
                    row.ItemArray = poop;
                    dt.Rows.Add(row);
    xlWorkBook.Close(true, missing, missing);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
                return dt;
    releaseObject
    private void releaseObject(object obj)
                try
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                    obj = null;
                catch (Exception ex)
                    obj = null;
                    MessageBox.Show("Unable to release the Object " + ex.ToString());
                finally
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
    Thanks
    Parthasarathi Purushothaman

    Why are you programmatically opening an Excel sheet in C# instead of using the DataFlow task with an Excel input?
    Since your task is programmatically starting Excel via "new Microsoft.Office.Interop.Excel.Application();", it is your responsibility to stop it.
    Please see "Quit":
    http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._application.quit(v=office.15).aspx

  • How to include an Oracle Package in ODI Package

    Hi All,
    I have to include an Oracle Package into an ODI Package.
    Is this possible. If yes, please guide me through.
    Reagrds
    Manoj

    Hi John,
    Thanks for the reply. I ll implement that and will let you know.
    Can you please look at the following as well.
    How to solve this major issue.
    Thanks
    Manoj.

  • How to execute an ODI package from Command Line

    Please can anyone help me to know how to execute an ODI package from the command line without creating a scenario from the package.
    Appreciate your help.
    Thanks
    B

    You can't. Create a scenario and then execute that from the command line.

  • How to deploy ODI package?

    hi,
    I have ODI package.How to deploy it ?

    http://docs.oracle.com/cd/E23943_01/core.1111/e10113/chapter_odi_messages.htm#sthref11191
    ODI-01444: The master repository signature specified by the client {0} does not match the master repository signature of the agent {1}.
    Cause: The client and the agent are not using the same master repository
    Action: Verify the client and the agent are using the same master repository. Verify that the client is calling the correct agent.
    Level: 1
    Type: ERROR
    Impact: Other
    Edit - Also see Oracle Support doc ID 1443453.1
    Edited by: PeakIndicators_Alastair on Sep 12, 2012 11:08 AM

  • Odi  packages with unix code

    Hi Experts
    I have a set of Odi Packages and want to run this code in an unix server.
    Can you Please guide me in the same.
    Edited by: 945367 on Jul 15, 2012 10:52 PM

    Hi Sutirtha, any documents on how to install ODI agent in Unix box?
    Edited by: user13599912 on Jul 19, 2012 11:48 AM
    Edited by: user13599912 on Jul 19, 2012 11:49 AM
    Edited by: user13599912 on Jul 19, 2012 11:49 AM

  • ODI Package + Calling via Unix wrapper

    Hi,
    I am new to ODI... Can you please help me on this.
    On Overall architecture we are 3 products
    1. ODI for staging to target transformaton
    2. AbInitio conduct>IT for dependency analyisis and as work flow ( It can call Unix scripts, programs, SQL etc)
    3. dServies a scheduling product ( Which will schedule the Conduct>IT workflow)
    My question is can we wrapper the ODI Packages in UNIX and pass on the parameters? ( What i want to achieve is i want to put these wrappers in AbInitio workflow product).
    Can you please share with me any sample Unix script calling the ODI Packages via Unix wrappers; if we can do it?
    Many thanks

    Hi,
    Check this out
    http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/documentation/oracledi_getting_started.pdf
    http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/documentation/oracledi_users.pdf
    http://www.oracle.com/technology/obe/fusion_middleware/ODI/index.html
    Thanks,
    Sutirtha

  • Can we call an ODI package from another ODI package within same Project?

    hi All,
    Can we call an ODI package from another ODI package within same Project?

    What you can do is get all the interfaces on the old package that you want to be included in the new package. This way, the new package will have the exact code from the old package.Or generate a scenario out of your ("old") package and drag&drop the scenario in the "new" package.
    That seems easier to me, because you can re-use the scenario as often as you want.
    But you have to take care: If you change your original ("old") package, you have to regenerate the scenario, otherwise the changes do not affect the scenario.
    Edited by: h_elmu_t on 02.07.2009 08:50

  • How to expose ODI package as webservice..?

    hi,
    We are having a requirement where other application needs to call ODI package.
    How to expose ODI package as webservice..?

    hi John,
    when I tried to upload odi-public-ws.aar service , it faulted.
    plase help...
    This Web axisService has deployment faults
    Error: org.apache.axis2.deployment.DeploymentException: null; nested exception is: java.lang.NullPointerException; nested exception is: org.apache.axis2.AxisFault: null; nested exception is: java.lang.NullPointerException; nested exception is: org.apache.axis2.deployment.DeploymentException: null; nested exception is: java.lang.NullPointerException; nested exception is: org.apache.axis2.AxisFault: null; nested exception is: java.lang.NullPointerException at org.apache.axis2.deployment.repository.util.ArchiveReader.processWSDLs(ArchiveReader.java:273) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:604) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:195) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:207) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:155) at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:199) at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepositary(SchedulerTask.java:61) at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:68) at org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:76) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Caused by: org.apache.axis2.deployment.DeploymentException: null; nested exception is: java.lang.NullPointerException; nested exception is: org.apache.axis2.AxisFault: null; nested exception is: java.lang.NullPointerException at org.apache.axis2.deployment.repository.util.ArchiveReader.processWSDLFile(ArchiveReader.java:194) at org.apache.axis2.deployment.repository.util.ArchiveReader.processWSDLs(ArchiveReader.java:261) ... 10 more Caused by: org.apache.axis2.AxisFault: null; nested exception is: java.lang.NullPointerException at org.apache.axis2.description.WSDL2AxisServiceBuilder.populateService(WSDL2AxisServiceBuilder.java:243) at org.apache.axis2.deployment.repository.util.ArchiveReader.processWSDLFile(ArchiveReader.java:192) ... 11 more Caused by: java.lang.NullPointerException at org.apache.ws.commons.schema.SchemaBuilder.setNamespaceAttributes(SchemaBuilder.java:235) at org.apache.ws.commons.schema.SchemaBuilder.setNamespaceAttributes(SchemaBuilder.java:232) at org.apache.ws.commons.schema.SchemaBuilder.setNamespaceAttributes(SchemaBuilder.java:232) at org.apache.ws.commons.schema.SchemaBuilder.setNamespaceAttributes(SchemaBuilder.java:232) at org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:59) at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:250) at org.apache.axis2.description.WSDL2AxisServiceBuilder.getXMLSchema(WSDL2AxisServiceBuilder.java:959) at org.apache.axis2.description.WSDL2AxisServiceBuilder.copyExtensibleElements(WSDL2AxisServiceBuilder.java:1067) at org.apache.axis2.description.WSDL2AxisServiceBuilder.populateService(WSDL2AxisServiceBuilder.java:221
    regards,
    Amey

  • ODI package - how to watch for delete of records in a table

    Hello,
    Using ODI package, I am using ODIWaitForData on a table. This works for Inserts/Update, but what do I need to do in a package to do Change Data Capture for Delete?
    Thank you.

    If your data store is in CDC and you are setting the property named Journalized data only at the interface level then you can set the IKM property named synchronous_jrn_delete . It will take care of the delete operation .

  • Calling UNIX shell script from ODI package?

    Hi,
    How Can we call UNIX shell script from ODI package?
    I have a ftp_ss.sh script which which ftps a file from remote server to local server, archives the last file and renames new file to the standard (ie file data store)name.
    I want to run the above script and interfaces from a package.
    Any help is greately appreciated.
    Thanks,
    RD

    In the package window, put "OS Command" from the toolbox.
    Provide the command parameters to this tool in form of "/path/to/script/ftp_ss.sh"

Maybe you are looking for

  • Error -WIS10901

    Hi All, While executing a webi report ,on running the query , I get  the error WIS 10901 {MDX query......error } when I try to add more than 1 characterstic in the query.However, it works fine if I add only 1 characterstic to it. Has anyone faced suc

  • Running a stored procedure in JDev initiates a bpel compile

    When I want to run a stored procedure from the connections area to test it this action always initiates a bpel compile for the highlighted bpel process in the applications palette. It is annoying and time consuming but if the bpel compile fails I can

  • What is better GRPO or Goods Receipt?

    Hi All, I have an issue regarding to wrong A/P-CM, what should I do? Do I have to create again another transaction which is PO>GRPO or should I use Goods Receipt? Thanks, Lean

  • PHP MYSQL KEYWORD SEARCH HELP

    Im creating a search for a image gallery and I want it to be able to pull up an image based on the keyword assigned to the image you searched. I have 4 fields in my DB, (id,layout"or image",description,key_words). My problem is when I enter a keyword

  • How many ESR's in your landscape

    Hi Services Repository Experts, we have CE and ECC and PI. PI is our Services Repository. Question, in our landscape, if we have Development Line  (for CE, ECC, PI etc) Quality Line  (for CE, ECC, PI etc) Regression Line  (for CE, ECC, PI etc) Produc