Example of Scheduled task - OIM

If you can provide an example of schedule task I would appreciate it very much. It looks like it should be extended from SchedulerBaseTask and implement execute method. Example will be very helpful.
Thank you for your time

Here's an example
How to create a new schedule task from java code

Similar Messages

  • How to use DB queries inside a schedule task - OIM

    Hello Experts,
    I am trying to create an UDF from a schedule task by directly inserting into table.
    1. Insert a record into Table SDC for the new UDF
    2. Alter table USR for the new UDF (After inserting into SDC)
    When I run the task it inserts a record into SDC table and throws below error when it tries to alter the USR table but same query works in SQL Plus.
    Alter Query -- ALTER TABLE USR ADD (USR_UDF_UID  varchar2(50))
    ERROR,12 Sep 2011 14:04:29,509,[XELLERATE.DATABASE],Class/Method: tcDataBase/writeStatement encounter some problems: Invalid column index
    java.sql.SQLException: Invalid column index
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
    at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5007)
    at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:4997)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:277)
    at weblogic.jdbc.wrapper.PreparedStatement.setString(PreparedStatement.java:745)
    at com.thortech.xl.dataaccess.tcDataBase.writePreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.writePreparedStatement(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcDataBaseBean.writePreparedStatement(Unknown Source)
    at com.thortech.xl.ejb.beans.tcDataBase_vhi04i_EOImpl.writePreparedStatement(tcDataBase_vhi04i_EOImpl.java:4280)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
    at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
    at $Proxy59.writePreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBaseClient.writePreparedStatement(Unknown Source)
    at com.thortech.xl.dataobj.PreparedStatementUtil.executeUpdate(Unknown Source)
    at com.test.TestUtility.createUDF(TestUtility)
    at com.test.TestUtility.execute(TestUtility)
    at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:477)
    ERROR,12 Sep 2011 14:04:29,569,[XELLERATE.DATABASE],Class/Method: tcDataBaseClient/writePreparedStatement encounter some pr
    com.thortech.xl.orb.dataaccess.tcDataAccessException
    at com.thortech.xl.dataaccess.tcDataAccessExceptionUtil.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.writePreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.writePreparedStatement(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcDataBaseBean.writePreparedStatement(Unknown Source)
    at com.thortech.xl.ejb.beans.tcDataBase_vhi04i_EOImpl.writePreparedStatement(tcDataBase_vhi04i_EOImpl.java:4280)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
    at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
    at $Proxy59.writePreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBaseClient.writePreparedStatement(Unknown Source)
    Code:
    String insertQry = "INSERT INTO SDC () VALUES (?,?.,,,,)"
              prepareStmtUtil = new PreparedStatementUtil();
              prepareStmtUtil.setStatement( getDataBase() , insertQry );
              prepareStmtUtil.setString(1, SDC_NAME);
    prepareStmtUtil.executeUpdate();
              int rc = prepareStmtUtil.getRowsUpdated();
              if (rc == 1)
    String alterQry = "ALTER TABLE USR ADD ("+SDC_NAME+" varchar2("+SDC_SQL_LENGTH+"))";
                   prepareStmtUtil.setStatement( getDataBase() , alterQry );
                   prepareStmtUtil.executeUpdate(); --> throws exception here
    Kindly assist me.
    Thanks and Regards
    INIYA

    I am trying to create an UDF from a schedule task by directly inserting into table.This is altering DB schema, not inserting into a table, that are you trying to do. DDL operations are not supported in PrepareStatementUtil. Moreover, I'm almost sure the DDL operations are not allowed for operational db connection.
    Use OIM API (ConfigManager) if you want to manipulate UDF.
    Regards,
    Vladimir

  • How to Deploy the Scheduler Task OIM 11g

    Hi.
    I have deployed the scheduler task in OIM 11g and also I have configured the Scheduler task in OIM Admin Console. The Java Scheduler class was not invoked when I run the Scheduler task.
    I have done the following configuration to develop and deploy the scheduler task in OIM.
    1) Developing the Java Class File.
    package edu.sfsu.oim11g.scheduler;
    import java.util.HashMap;
    import oracle.iam.scheduler.vo.TaskSupport;
    import edu.sfsu.oim11g.logger.SfsuLogger;
    public class SfsuTrustedSourceReconciliation extends TaskSupport {
         //private Logger logger= Logger.getLogger(SfsuTrustedSourceReconciliation.class);
         private SfsuLogger logger= new SfsuLogger("SFSU-LOGGER");
         private String className=this.getClass().getCanonicalName();
         private String methodName="";
         public SfsuTrustedSourceReconciliation() {
              methodName="SfsuTrustedSourceReconciliation";
              debug("SfsuTrustedSourceReconciliation() Called");
         @Override
         public void execute(HashMap arg0) throws Exception {
              // TODO Auto-generated method stub
              methodName="execute";
              debug("SfsuTrustedSourceReconciliation Arguments "+arg0);
         @Override
         public HashMap getAttributes() {
              // TODO Auto-generated method stub
              return null;
         @Override
         public void setAttributes() {
              // TODO Auto-generated method stub
         private void debug(Object message)
              logger.info(className+" : "+methodName+" : "+message);
    2) Custom Scheduler XML File
    This file is located in
    /home/oracle/confg_files/schedulers/db/SfsuTrustedSourceReconciliation.xml
    <scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
         <task>
         <name>SfsuTrustedSourceReconciliation</name>
              <class>edu.sfsu.oim11g.scheduler.SfsuTrustedSourceReconciliation</class>
              <description>Reconciliation IDSync Data</description>
              <retry>5</retry>
              <parameters>
                   <string-param required="true" encrypted="false" helpText="Source Data Source">Source Resource Data Source Name</string-param>
                   <string-param required="true" encrypted="false" helpText="Config Data Source">Config Resource Data Source Name</string-param>
                   <string-param required="true" encrypted="false" helpText="Reconciliation Type is Full Or Cincremental. Default is Incremental">Reconciliation Type</string-param>
                   <number-param required="true" encrypted="false" helpText="Max Records" >Max Records</number-param>
              </parameters>
         </task>
    </scheduledTasks>
    3) Plugin File Configuration.
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="edu.sfsu.oim11g.eventhandlers.SfsuPostProcessEventHandler" version="1.0" name="SfsuPostprocessExtension"/>
    </plugins>
    <plugins pluginpoint="oracle.iam.scheduler.vo.TaskSupport">
    <plugin pluginclass="edu.sfsu.oim11g.scheduler.SfsuTrustedSourceReconciliation" version="1.0" name="SfsuTrustedSourceReconciliation"/>
    </plugins>
    </oimplugins>
    The event handler is successfully deployed and working fine without any issue.
    4) making the scheduler jar file.
    5) Making the scheduler zip with the following directory format.
    plugin.xml
    lib/scheduler.jar
    6) Registering the Schedule task and event handler as a Plugin.
    ant -f pluginregistration.xml register
    7) Importing the SfsuTrustedSourceReconciliation.xml file into the MDS.
    7.1) weblogic.properties
    wls_servername=oim_server1
    application_name=oim
    metadata_from_loc=/home/oracle/configfiles/schedulers
    7.2) Running the weblogicImportMetadata.sh file
    It imported the SfsuTrustedSourceReconciliation.xml file into the MDS Schema and it is available in the MDS_PATH table in MDS schema
    Path_Name : SfsuTrustedSourceReconciliation.xml
    PATH_FULL : /db/SfsuTrustedSourceReconciliation.xml
    8) Imported the EventHandlers.xml file into the MDS Schema.
    9) Run the PurgeCache.sh file
    10) Restarted the OIM Server.
    11) Loggin into the OIM Admin Console and Created the Scheduler job based on the SfsuTrustedSourceReconciliation listed in the scheduler.
    12) Run the Scheduler job and log file entries are not logged into the log file. My Log File Configuration
    <log_handler name='sfsu-handler' level='FINEST' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
    <property name='logreader:' value='off'/>
    <property name='path' value='/u01/app/wl-10.3.5.0/Oracle/Middleware/user_projects/domains/oim_domain/servers/oim_server1/logs/sfsu-connector.log'/>
    <property name='format' value='ODL-Text'/>
    <property name='useThreadName' value='true'/>
    <property name='locale' value='en'/>
    <property name='maxFileSize' value='5242880'/>
    <property name='maxLogSize' value='52428800'/>
    <property name='encoding' value='UTF-8'/>
    </log_handler>
    <logger name="SFSU-LOGGER" level="FINEST" useParentHandlers="false">
    <handler name="sfsu-handler"/>
    <handler name="console-handler"/>
    </logger>
    Is there any special configuration Do i need to do invoke my Scheduler Java Class File.
    Help is Greatly Appreciated.

    Seems like you did it all right but just piece which if you can modify and test. The plugin.xml has two artifacts eventhandler and the schduler. Can you try creating separate plugin.xml with one for the scheduler zipped up with /lib/scheduleClass.jar and test it?
    Just deregister everything before trying it and let us know how it goes.
    Also the logger as I see is a custom logger, so it is extending the OOTB Logger? Just put some sysouts in the code and check for those in the server out file to be sure.
    Edited by: bbagaria on Jul 22, 2011 5:15 PM

  • Modify  Schedule Task - OIM 11g

    Hello Experts,
    I have created a custom schedule task and deployed it in OIM11g and it works. Now I want to modify the deployed schedule task (add some more scheduled task parameters). How to do that? Can you assist?
    I tried the following but its not happening,
    1.exported the schedule task
    2.modified
    3.Imported
    Thanks and Regards
    INIYA

    835060 wrote:
    Two ways
    1.either create a new job with your attributes,deploy and disable the old one(better if its dev env)
    2.Take the export of your metadata.Modify the attributes and import back the fileI guess he already has tried the 2nd option which is not working and I believe it should not work as well. The time you create a job, it reads your xml and sets the attributes and creates a instance of the task. Thus if you just change the xml it won't reflect in the previously created instance.
    Hence create a new job and delete the previous one.
    HTH,
    BB

  • Run library ThirdParty in Schedule Task - OIM 11

    Hi
    I have a custom code to ScheduleTask, in this code, I need import a external library. In java code I declared the import of library
    I loaded of the .jar to directory OIM_HOME/server/ThirdParty and I ran the UploadJars.sh to ThirdParthy, option 3, but when run the schedule task is diplayed java.lang.NoClassDefFoundError:
    I have to do anymore to run this ThirdParty ?
    Tks

    You need to go into the Weblogic console, select the server (oim_server1) and then the startup tab. Under the classpath box, put in the full path to your jar file. Restart your application server.
    Now your scheduled task will be able to find the jar file.
    -Kevin

  • OIM - Understanding the scheduled-task User Operations

    Hi,
    Could anybody here explain what that task means?
    The manual says:
    This scheduled task performs the operation specified by the UserOperation attribute on the user account specified by the UserLogin attribute
    Does anybody here have an example of a scenario that this task could be useful?
    Regards
    HH

    Pretty simple. That scheduler is used to perform some actions on the OIM user account on a pre-defined schedule. That means you can perform ENABLE, DISABLE, or DELETE actions on any OIM user. And the attribute values could be:
    UserLogin - OIM User Login
    UserOperation - ENABLE
    The above scheduler run will enable the user if its disabled. Now the utility part. Consider the following use cases:
    *1)* You terminated any user, say User001 and you want to Disable this user and all its provisioned resources at 18:00 hours once he finishes all the office works, and if you directly Disable the user from Disable User button the User and all his resources would be gone immediately. So you can set this scheduler to run at 18:00 hours with the values User001 and DISABLE
    *2)* You are an OIM help-desk guy and OIM administrator doesn't want you to have access to menu item Users because he doesn't want you to have a look at the OIM user personal details but he still want that you can actually perform enable-disable actions on OIM. In such case he will give you access to Manage Schedule Task menu-item so that you can perform the daily operations activity. This will be a solution to the use-case.
    Thanks
    Sunny

  • Security Violation Error while running schedule task from OIM.

    Hi All,
    I am getting this error while running a custom java schedule task from OIM:
    *Thor.API.Exceptions.tcAPIException [EJB:010160] Security Violation: User '<anonymous>' has insufficient permission to access EJB:*
    type=<ejb>,application=Xellerate,module=xlDataObjectBeans.jar,ejb=tcReconciliationoperations,method=createDeleteReconciliationEvent
    at Thor.API.Operations.tcReconciliationOperationsClient.createDeleteReconciliationEvent(UnKnown Source).
    I got this error as soon as my code start creating Delete Reconciliation Event.
    Note: I have already protected the JNDI Namespace.
    Please provide some pointers.
    Regards,
    Sunny

    Hi Rajiv,
    Check this:
    package com.centrica.iam.scheduletask;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Set;
    import oracle.iam.connectors.common.ConnectorLogger;
    import com.thortech.xl.dataaccess.tcDataSet;
    import com.thortech.xl.dataaccess.tcDataSetException;
    import com.thortech.xl.dataobj.PreparedStatementUtil;
    import com.thortech.xl.orb.dataaccess.tcDataAccessException;
    import com.thortech.xl.scheduler.tasks.SchedulerBaseTask;
    import Thor.API.tcResultSet;
    import Thor.API.Exceptions.tcAPIException;
    import Thor.API.Exceptions.tcInvalidValueException;
    import Thor.API.Operations.tcLookupOperationsIntf;
    import Thor.API.Operations.tcReconciliationOperationsIntf;
    import Thor.API.Operations.tcSchedulerOperationsIntf;
    public class CustomFlatFile extends SchedulerBaseTask {
         private static tcSchedulerOperationsIntf schedulerIntf;
         private static tcLookupOperationsIntf lookupIntf;
         private static tcReconciliationOperationsIntf reconIntf;
         String sObjectName;
         String LookupName;
         String LookupName2;
         String FileDirectory;
         String FileName;
         String File;
         String delimeter;
         String isDeleteTrue;
         HashMap<String, String> attrMap = new HashMap();
         HashMap<String, String> delMap = new HashMap();
         HashMap<String, String> finalMap = new HashMap();
         ArrayList list = new ArrayList();
         public boolean isReconStopped;
         public CustomFlatFile()
              isReconStopped = false;
         public void init()
              LookupName = getAttribute("Attribute Lookup Name");
              FileDirectory = getAttribute("Directory Path");
              FileName = getAttribute("File Name");
              delimeter = getAttribute("Delimeter");
              sObjectName = getAttribute("Resource Object Name");
              isDeleteTrue = getAttribute("Is Delete Allowed");
         public void execute(){
              try {
                   System.out.println("Start Exceute");
                   //Initiate lookupIntf
                   lookupIntf = (tcLookupOperationsIntf)getUtility("Thor.API.Operations.tcLookupOperationsIntf");
                   reconIntf=(tcReconciliationOperationsIntf)getUtility("Thor.API.Operations.tcReconciliationOperationsIntf");
                   catch (tcAPIException tcapiexception){
                        tcapiexception.printStackTrace();
                        //logger.error(classname, s, tcapiexception.toString());
                        //logger.setStackTrace(tcapiexception, classname, s, tcapiexception.getMessage());
                   catch (Exception excep){
                        excep.printStackTrace();
                        //logger.error(classname, s, excep.toString());
                        //logger.setStackTrace(excep, classname, s, excep.getMessage());
                   attrMap = readLookup(LookupName);
                   System.out.println(attrMap.toString());
                   readFile();
                   if (isDeleteTrue.equalsIgnoreCase("true"))
                        performDelete();
                   System.out.println("Finish Execute");
         public void performDelete()
              System.out.println("Start Perform delete");
              int k = list.size();
              System.out.println("list size " + list.size());
              try
                   Thread.sleep(15000);
         /*     Hashtable ahashtable[] = new Hashtable[k];
              Hashtable hashtable = new Hashtable();
              for (int i=0;i<k;i++)
                   hashtable.put("User Id", list.get(i));
                   ahashtable[i] = hashtable;
                   System.out.println(list.get(i));
              Set set = reconIntf.provideDeletionDetectionData(sObjectName, ahashtable);
              System.out.println("Set--" + set.toString());
              tcResultSet tcresultset = reconIntf.getMissingAccounts(sObjectName, set);
              System.out.println("tcresultset - " + tcresultset.getRowCount());
              if (!(tcresultset.isEmpty()))
                   long l[] = reconIntf.deleteDetectedAccounts(tcresultset);
                   for (int i1=0;i1<l.length;i1++)
                        System.out.println("delete recon key " + l[i1]);
              //Get the existing list of Managed users
                   tcDataSet tcdataset = new tcDataSet();
                   tcDataSet tcdataset1 = new tcDataSet();
                   String query = "select orf.orf_fieldname,prf.prf_columnname, sdk.sdk_name from orf, sdk, pkg, tos, prf, obj " +
                             "where pkg.obj_key = obj.obj_key and pkg.pkg_key = tos.pkg_key and tos.sdk_key is not null " +
                             "and tos.sdk_key=sdk.sdk_key and tos.tos_key=prf.tos_key and prf.prf_iskey='1' and prf.orf_key=orf.orf_key " +
                             "and orf.orf_parent_orf_key is null and obj.obj_name='" + sObjectName + "'";
                   tcdataset.setQuery(getDataBase(), query);
                   tcdataset.executeQuery();
                   String FFName = tcdataset.getString("prf_columnname");
                   String FName = tcdataset.getString("sdk_name");
                   String ROFName = tcdataset.getString("orf_fieldname");
                   System.out.println("form- " + FName + " Field- " + FFName);
                   query = "select " + FFName + " from " + FName + " udtable, oiu a, ost b " +
                             "where udtable.orc_key=a.orc_key and a.ost_key=b.ost_key and b.ost_status!='Revoked'";
                   System.out.println(query);
                   tcdataset1.setQuery(getDataBase(), query);
                   tcdataset1.executeQuery();
                   int i = tcdataset1.getRowCount();
                   ArrayList list1 = new ArrayList();
                   String s1 = null;
                   System.out.println("N. of rows--" + i);
                   for (int j=0;j<i;j++)
                        tcdataset1.goToRow(j);
                        s1 = tcdataset1.getString(0);
                        System.out.println("s1---" + s1);
                        if (!(list.contains(s1)))
                             list1.add(s1);
                             System.out.println("under if--" + s1);
                   //Getting the existing list of unmanaged users
                   query = "select distinct (b.rcd_value) from rce a, rcd b, orf c, obj d where a.rce_key=b.rce_key and " +
                             "b.orf_key=c.orf_key and c.orf_fieldname='" + ROFName + "' and a.rce_status!='Event Linked' " +
                                       "and a.obj_key = d.obj_key and d.obj_name='" + sObjectName + "'";
                   tcdataset1.setQuery(getDataBase(), query);
                   tcdataset1.executeQuery();
                   i = tcdataset1.getRowCount();
                   System.out.println("No. Of Unmanaged Users " + i);
                   for (int j=0;j<i;j++)
                        tcdataset1.goToRow(j);
                        s1 = tcdataset1.getString(0);
                        System.out.println("s1---" + s1);
                        if (!(list.contains(s1)))
                             list1.add(s1);
                             System.out.println("under if--" + s1);
                   int k1 = list1.size();
                   System.out.println("list1 size--" + k1);
                   for (int j1=0;j1<k1;j1++)
                        delMap.clear();
                        delMap.put(ROFName, (String)list1.get(j1));
                        System.out.println(delMap.toString());
                        long l = reconIntf.createDeleteReconciliationEvent(sObjectName, delMap);
                        System.out.println("delete recon key--- " + l);
              catch (Exception exception)
                   exception.printStackTrace();
         public void readFile(){
              String s = "readFile()";
              //logger.setMethodStartLog(classname, s);
              HashMap map = new HashMap();
              try {
              File = getFile();
              BufferedReader reader = new BufferedReader(new FileReader(new
                        File(File)));
              String line = "";
              int k = attrMap.size();
              String value[] = new String[k];
              String Header[]= new String[k];
              if (delimeter.equalsIgnoreCase("|"))
                   delimeter = "\\" + delimeter;
                   line = reader.readLine();
                   Header = line.split(delimeter);
                   while((line = reader.readLine()) != null)
                        value = line.split(delimeter);
                        k = value.length;
                        for (int i = 0;i<k;i++){
                             finalMap.put(attrMap.get(Header), value[i]);
                        System.out.println(finalMap.toString());
                        System.out.println("Start Ignoring Event");
                        if (!(reconIntf.ignoreEvent(sObjectName, finalMap)))
                             System.out.println("Not Ignored");
                        long l1 = reconIntf.createReconciliationEvent(sObjectName, finalMap, true);
                        System.out.println("Recon Key--" + l1);
                        else
                             System.out.println("ignore event ---" + finalMap.toString());
                        list.add(finalMap.get("User Id"));
                        System.out.println(list.size() + "add--" +finalMap.get("User Id") );
                        finalMap.clear();
              catch (Exception exception)
                   exception.printStackTrace();
         public boolean stop(){
              String s = "stop()";
              //logger.setMethodStartLog(classname, s);
              //logger.info(classname, s, "Stopping Reconciliation........");
              isReconStopped = true;
              //logger.setMethodFinishLog(classname, s);
              return true;
         FileFilter fileFilter = new FileFilter()
         public boolean accept(File file)
         String sFilePath = file.getName();
         if( sFilePath.startsWith(FileName) )
         return true;
         else
         return false;
         public String getFile() throws FileNotFoundException, Exception{
              String s = "getFile()";
              //logger.setMethodStartLog(classname, s);
              String s1;
              File dir =     new File(FileDirectory);
              File[] files = dir.listFiles(fileFilter);
              if (files.length ==0)
                   throw new FileNotFoundException();
              if (files.length>1)
                   throw new Exception("Multiple Matches found for this file name");
              s1 = files[0].toString();
              //logger.setMethodFinishLog(classname, s);
              return s1;
         public HashMap readLookup(String s1){
              String s = "readLookup()";
              //logger.setMethodStartLog(classname, s);
              HashMap map = new HashMap();
              try {
              tcResultSet tc1=     lookupIntf.getLookupValues(s1);
              int i = tc1.getRowCount();
              for (int j = 0;j<i;j++){
                   tc1.goToRow(j);
                   map.put(tc1.getStringValue("Lookup Definition.Lookup Code Information.Code Key"), tc1.getStringValue("Lookup Definition.Lookup Code Information.Decode"));
              catch (tcAPIException tcapiexception){
                   tcapiexception.printStackTrace();
                   //logger.error(classname, s, tcapiexception.toString());
                   //logger.setStackTrace(tcapiexception, classname, s, tcapiexception.getMessage());
              catch (Exception excep){
                   excep.printStackTrace();
                   //logger.error(classname, s, excep.toString());
                   //logger.setStackTrace(excep, classname, s, excep.getMessage());
              return map;

  • Not able to create Schedule Task in OIM 9.1.0.2

    Hi,
    I created one Java program and created Jar file. Then placed in Schduled Task folder.
    When I try to create one Schedule Task in OIM web console, I am not able to see the Class File name in the list.
    Please let me know what could be the reason for this.
    Thansk for your help.

    In OIm Web console, there is one serach where we can serach the required class file. I am not able to see the class file in the list where as I am able to see other class files for other scheduled Tasks.
    But I am not able to see my Class file.
    When I try to paste the full class file path in Design Console, It gives an error saying No database read.
    This is very urgent for me to create the scheduled Task.
    Any idea??

  • Schedule task - manager updation for user in oim 11g

    Hi,
    I am in the way of writing a custom schedule task to update manager for the user created in oim.
    I know the procedure of custom scedule task
    I want the code snipet to be written in the execute() method of java class to update the manager for the user
    Could anybody help me with this!

    Hi Gyanprakash,
    How will you retrieve the user detail ..?? i am getting null pointer exception error
    public void execute(HashMap taskParameters) {
    System.out.println("inside the Execute methode");
    System.out.println("Schedule task Arguments "+taskParameters);
    String userId = (String)taskParameters.get("User Login");
    System.out.println("===========input=============== "+userId);
    String passwordex=taskParameters.get("usr_pwd_expire_date").toString();
    System.out.println("===========input=============== "+passwordex);
    String passwordwar=taskParameters.get("usr_pwd_warn_date").toString();
    System.out.println("===========input=============== "+passwordwar);
    Thanks,
    Edited by: Srivatsa.kashyap on May 25, 2012 6:00 AM

  • OIM 11g - How to run a schedule task using API

    Hi All,
    May I know how i can run a schedule job in OIM 11g through API.I referred the below link but it is for 9.x version.I need the same functionality in 11g?.
    Schedule Tasks
    Thanks in advance.

    Check this :
    SchedulerService schService = oimClient.getService(SchedulerService.class);
    schService.triggerNow("Second Demo Scheduled Task");
    API Reference :
    void triggerNow(java.lang.String jobName)
    throws SchedulerException,
    SchedulerAccessDeniedException
    Runs the specified job
    Parameters:
    jobName - The job that is to be triggered
    Throws:
    SchedulerException - when an error occurs at the Quartz Engine or scheduler is not running.
    SchedulerAccessDeniedException - This exception will be thrown if access permission for operation is not available to the user

  • OIM - Making schedule task a dependent task

    Hi,
    Can some one suggest me , is it possible to make a schedule task, dependent on another schedule task in OIM.
    Regards
    Vicky

    Start the second scheduled task using the APIs at the end of the first scheduled task.
    Best regards
    /Martin

  • OIM Schedule task query

    Hi
    I have installed two separate weblogic servers (non-cluster) and installed OIM 9101 on them with same Oracle Database. This system does not include any other servers. I am planning to use a hardware load balancer on top of these two OIM Weblogic servers.
    I have deployed EBS trusted source recon connector. This connector has a recon schedule task which run at every 6 hrs. It was working fine on single node OIM weblogic pair. Now I have two weblogic servers with corresponding OIM servers. I wonder how the schedule task will work now. which OIM will have the priority ??
    any idea about this..

    Disable schedule task in one of the servers, so that it does not account for running schedule purposes. Go to xellerate/config/xlConfig.xml
    You can find the scheduler section and change the StartOnDeployment parameter to false. SO that this server never runs the scheduler.
    Suren- The database is same ! ! !
    Thanks
    Sunny

  • Scheduled task going to running state in OIM

    hi all,
    After running the Target reconciliation it is going to running state ....how to fix this?
    Thank you.

    For how much time it shows Running status ?
    Check the status of schedule task using http://localhost:7001/xlScheduler if OIM is deployed on weblogic on 7001 port.
    I have seen couple of clients who are using OID connector and never heard such issues in OOTB connector.
    Try with restarting the server.

  • OIM - Scheduled Tasks - Validade/Enable

    Hi All,
    I am quite new to OIM, two days working with it, and I have some questions that seem to be easy to answer but I could not find it here, neither on the internet (or I am not using the correct keywords).
    In our OIM environment we have some custom recon scheduled tasks, developed by oracle, and, as our internal processes with the targets are not working properly still, sometimes the scheduled tasks fail and when they fail they got disabled too. Most of the times they fail is because its input file, a CSV file coming from a target, is not there.
    Based on it, my questions are:
    1. I know there is a way to list all scheduled tasks and their status using the API, check this link: http://www.rameshgk.com/blog/2010/09/23/oim-scheduled-task-for-monitoring-other-scheduled-tasks/, but is there a way to do it by command line in Unix?
    2. Is there a way, when the schedulted tasks got disabled due to a failure, to enable it automatically, via API or any other method, without the need to go to web client?
    I was forgetting to comment one thing, unfortunately, I don't have access to the OIM database!
    Thanks for your attention!
    Regards.

    You can execute the scheduled task from the command line and use the following API:
    void updateScheduleTask(long scheduledTaskKey,
    java.util.Map attributes)
    throws Thor.API.Exceptions.tcAPIException,
    Thor.API.Exceptions.tcScheduledTaskNotFoundException,
    Thor.API.Exceptions.tcInvalidAttributeException,
    Thor.API.Exceptions.tcAttributeMissingException,
    tcAPIExceptionUpdates schedule task information based on the attribute that are passed to this method
    Parameters:
    scheduledTaskKey - the scheduled task key
    attributes - a map of updated attributes valid attributes
    •Task Scheduler.ClassName
    •Task Scheduler.Disable
    •Task Scheduler.Frequency Type
    •Task Scheduler.Interval
    •Task Scheduler.Key
    •Task Scheduler.Last Start Time
    •Task Scheduler.Last Stop Time
    •Task Scheduler.Max Retries
    •Task Scheduler.Name
    •Task Scheduler.Next Start Time
    •Task Scheduler.Retry Count
    •Task Scheduler.Start Time
    •Task Scheduler.Status
    You can provide the Frequency Type and Next Start Time and then it should be picked up. Just like when you are in the design console and you have it set to run once and you clear the entries in the time and set it to the current one.
    -Kevin
    Please don't forget to give points where earned on helpful posts.

  • OIM 10g Scheduled Task

    Hi experts,
    I am newbie to OIM. I am writing scheduled task I want retrieve parameter from scheduled task which I have added using scheduled task. How we can achieve this?

    Hi,
    you can retrieve scheduled task parameter using :
    for e.g:
    String groupName = this.getAttribute("ATTRIBUTE_NAME");
    You will get lot of related post on this forum. give it a try

Maybe you are looking for

  • How to order a Macbook Pro with international English keyboard in the USA?

    Does anybody know how can I order on the US Apple Online Store a new (2011) Macbook Pro with international English keyboard? I don't see any possibility for that on the online store's webpage. I tried to contact an expert with the online chat support

  • Problem when activating Query from Business Content

    Hi Gurus, I'm currently encountering problems when activating a query (Financial Statement and P&L: Actual/Actual Comparison) in the business content under these 2 cubes (0FIGL_VC1 and 0FIGL_VC2). Since I was told that these cubes are Virtual Cubes I

  • MS SS 7.0 - 8.1.7: "Migrate Table Data" N/A

    Hello there, We're currently attempting to do a migration from MS SQL Server 7.0 to Oracle 8.1.7, using Migration Workbench. I'm able to capture, and create the model successfully, but when going to Object->Migrate Table Data it is grayed out and dis

  • Safari Not Opening - Possible Solution

    Recently, my Safari has been bombing. It wouldn't open. I would just get the pinwheel. I was able to get it restarted by following the suggestions here. A couple weeks ago, I couldn't get it back at all. I did everything that was suggested here in th

  • Config Suse 9 and Oracle Database 10g

    Hi, I'm trying to install Suse 9 with Oracle 10g on a HP DL380 server and I need some information (This will be an environment for Portal applications): 1) Can SuSE SLES run ok with Processor Hyper Threading (PHT)? 2) What kind of RAID is better for