Monday, May 10, 2010
Wednesday, February 10, 2010
Is it worth for customers to open an SR/ Or Sign application level support contract with the product company
It's been quite sometime now that I have been working with just the products. Worst thing I hate about the products is when it comes to support. Customers buy support contracts from the product based companies so that product based companies can help customers resolve any issues they face during the lifecycle of the product.But guess what it never happens, at least it has never happened to me in my atleast six years of experience working on different products.
If you open an Sev. 1 SR it is expected that you should get a call in atleast first two hours of opening a SR, but it takes atleast 8-10 hrs for them contact you and the first person who contacts you has no technical knowledge of the product. He wastes everybodys time in organization goes back and contacts you back in next 8-10 hrs asking you to try somethings which you have already tried and updated in the SR, so his next visit is in vain too, by the time he comes back with some other options for the third time you had already resolved your problem.
If you open a Sev 2 SR, this type of SR is treated as low level SR as if there is no urgency for this type of Issue. Again first few days some non technical person will keep asking you questions and irritates you, because answers to all his questions are already listed in SR. They do not even read the complete SR. They buy so much of time and by the time they try to provide you first non-workable solution you had resolve your issue.
And when you tell them we resolved it, Support person says "Tell me what you did to resolve it so that I can update it in the SR".
Now a days new trend has started, these support people if they call you and if you try to ask them technical questions which they are not aware of expect to hear from support person " Sir, I will get back to you on this (They will not mention when, even if you ask for estimated time) and if you feel its not getting resolved please escalate it to the higher management". This clearly means that they don't care what happens to your issue and they only call you/update SR just because they have to fill up their time.
I think when a customer signs a support contract with the product based company, customer should add a clause to the contract which says if the support team is not able to resolve the issue or takes longer than the estimated time then product based company has to pay for the lost time.
If you open an Sev. 1 SR it is expected that you should get a call in atleast first two hours of opening a SR, but it takes atleast 8-10 hrs for them contact you and the first person who contacts you has no technical knowledge of the product. He wastes everybodys time in organization goes back and contacts you back in next 8-10 hrs asking you to try somethings which you have already tried and updated in the SR, so his next visit is in vain too, by the time he comes back with some other options for the third time you had already resolved your problem.
If you open a Sev 2 SR, this type of SR is treated as low level SR as if there is no urgency for this type of Issue. Again first few days some non technical person will keep asking you questions and irritates you, because answers to all his questions are already listed in SR. They do not even read the complete SR. They buy so much of time and by the time they try to provide you first non-workable solution you had resolve your issue.
And when you tell them we resolved it, Support person says "Tell me what you did to resolve it so that I can update it in the SR".
Now a days new trend has started, these support people if they call you and if you try to ask them technical questions which they are not aware of expect to hear from support person " Sir, I will get back to you on this (They will not mention when, even if you ask for estimated time) and if you feel its not getting resolved please escalate it to the higher management". This clearly means that they don't care what happens to your issue and they only call you/update SR just because they have to fill up their time.
I think when a customer signs a support contract with the product based company, customer should add a clause to the contract which says if the support team is not able to resolve the issue or takes longer than the estimated time then product based company has to pay for the lost time.
Thursday, December 10, 2009
OIM - Addapproval process for disabling a resource
These steps help on how to add the approval workflow for disabling a resource
Create a rule
-------------
login to design console
go to rule designer
Create a rule type> Process Determination,
Sub- Type > Approval
Process >
Request Object Action == "Disable"
Create a rule
-------------
login to design console
go to rule designer
Create a rule type> Process Determination,
Sub- Type > Approval
Process >
Request Object Action == "Disable"
Monday, November 23, 2009
Modify Active Directory cn attribute
You can rename an object in a context by using Context.rename().
// Rename from Dilip Nimse to Dilip N
ctx.rename("cn=Dilip Nimse", "cn=Dilip N");
This example renames the object that was bound to "cn=Dilip Nimse" to "cn=Dilip N".
// Rename from Dilip Nimse to Dilip N
ctx.rename("cn=Dilip Nimse", "cn=Dilip N");
This example renames the object that was bound to "cn=Dilip Nimse" to "cn=Dilip N".
Monday, November 2, 2009
OIM Audit Module installation
http://download-east.oracle.com/docs/cd/B32386_01/generic.902/b32137/useraudit.htm
Metalink document ID
Doc ID: 369831.1
OIM Data Dictionary
Metalink document ID - 377992.1
1. Login to Link: https://metalink.oracle.com,
2. Search for the keyword 377992.1 in Knowledge Browser search.
3. download the zip file containing the datadictionary
http://download-east.oracle.com/docs/cd/B32386_01/generic.902/b32137/useraudit.htm
Metalink document ID
Doc ID: 369831.1
OIM Data Dictionary
Metalink document ID - 377992.1
1. Login to Link: https://metalink.oracle.com,
2. Search for the keyword 377992.1 in Knowledge Browser search.
3. download the zip file containing the datadictionary
Monday, September 21, 2009
OIM - Oracle SQL to find all the users and their resource status
Below Query will provide you the list of all the users and their resource Status.
SELECT usr.usr_login, usr.usr_first_name, usr.usr_last_name,
obj.obj_key, obj.obj_name, oiu.oiu_create, ost.ost_status, orc.orc_tos_instance_key
FROM orc, usr, obj, oiu, ost, obi
WHERE orc.orc_key = oiu.orc_key AND
oiu.usr_key = usr.usr_key AND
oiu.ost_key = ost.ost_key AND
oiu.obi_key = obi.obi_key AND
obi.obj_key = obj.obj_key
Below Query gives me all the records of users that are disabled/terminated prior to 50 days (from today) but their AD directory resource is not revoked yet.
SELECT usr.usr_login,
usr.usr_first_name,
usr.usr_last_name,
usr.usr_end_Date,
usr.usr_status "User Status",
ost.ost_status "AD Status",
sysdate - 50 "date comparison"
FROM orc,
usr,
obj,
oiu,
ost,
obi
WHERE orc.orc_key = oiu.orc_key AND
oiu.usr_key = usr.usr_key AND
oiu.ost_key = ost.ost_key AND
oiu.obi_key = obi.obi_key AND
obi.obj_key = obj.obj_key AND
obj.obj_name = 'AD User' AND
ost.ost_status != 'Revoked' AND
usr.usr_disabled = 1 AND
usr.usr_end_date < sysdate - 50
SELECT usr.usr_login, usr.usr_first_name, usr.usr_last_name,
obj.obj_key, obj.obj_name, oiu.oiu_create, ost.ost_status, orc.orc_tos_instance_key
FROM orc, usr, obj, oiu, ost, obi
WHERE orc.orc_key = oiu.orc_key AND
oiu.usr_key = usr.usr_key AND
oiu.ost_key = ost.ost_key AND
oiu.obi_key = obi.obi_key AND
obi.obj_key = obj.obj_key
Below Query gives me all the records of users that are disabled/terminated prior to 50 days (from today) but their AD directory resource is not revoked yet.
SELECT usr.usr_login,
usr.usr_first_name,
usr.usr_last_name,
usr.usr_end_Date,
usr.usr_status "User Status",
ost.ost_status "AD Status",
sysdate - 50 "date comparison"
FROM orc,
usr,
obj,
oiu,
ost,
obi
WHERE orc.orc_key = oiu.orc_key AND
oiu.usr_key = usr.usr_key AND
oiu.ost_key = ost.ost_key AND
oiu.obi_key = obi.obi_key AND
obi.obj_key = obj.obj_key AND
obj.obj_name = 'AD User' AND
ost.ost_status != 'Revoked' AND
usr.usr_disabled = 1 AND
usr.usr_end_date < sysdate - 50
Monday, August 10, 2009
Convert Date in to Active Directory (AD) date / datetime format
It has always bugged me whenever I delt with converting the date to Active directory date formats. Java's long date is not same as AD, As both of the applications start date are different.
Here is some sample code i have been using for long time now.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import junit.framework.TestCase;
/**
* @author Dilip Nimse
*
*/
public class ADDateFunctions extends TestCase {
private static final long _TIME_DIFFERENCE = 0xa9735dcc400L;
private static final long _NANO_SECONDSPER_MILLI = 10000L;
/**
* @param name
*/
public ADDateFunctions(String name) {
super(name);
}
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
private long convertDateToLong(Date date)
{
long longDate = date.getTime();
long l = longDate + _TIME_DIFFERENCE;
return l * _NANO_SECONDSPER_MILLI;
}
private Date convertLongToDate(long longDate)
{
long l = longDate / _NANO_SECONDSPER_MILLI;
long militime = l - _TIME_DIFFERENCE;
return new Date(militime);
}
private boolean isNoExpireDS(String s)
{
boolean flag = false;
if(s == null)
{
flag = true;
} else
{
s = s.trim();
Long long1 = new Long(1L);
try
{
long1 = Long.decode(s);
}
catch(NumberFormatException numberformatexception) { }
flag = flag long1.longValue() == 0L;
flag = flag s.length() == 0;
}
return flag;
}
public String datetoAD(String s, String dateFormat)
{
SimpleDateFormat simpledateformat = new SimpleDateFormat(dateFormat);
long l = 0L;
if(isNoExpireDS(s))
l = 0x7fffffffffffffffL;
else
try
{
Date date = simpledateformat.parse(s);
l = convertDateToLong(date);
}
catch(ParseException parseexception) { }
return new String(Long.toString(l));
}
public String adDatetoDate(String s, String dateFormat)
{
SimpleDateFormat simpledateformat = new SimpleDateFormat(dateFormat);
long l = Long.parseLong(s);
Date date = convertLongToDate(l);
return new String(simpledateformat.format(date));
}
public void testGetADDate(){
System.out.println("Lets test the AD Date Conversions") ;
String s = new String("05/15/2009");
System.out.println("Active Directory Date Format for " + s + " is : " + datetoAD(s, "MM/dd/yyyy"));
String s1 = datetoAD(s, "MM/dd/yyyy");
System.out.println("Active Directory Date " +s1 + " converted back to Calendar date is : " + adDatetoDate(s1, "MM/dd/yyyy"));
}
}
Here is some sample code i have been using for long time now.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import junit.framework.TestCase;
/**
* @author Dilip Nimse
*
*/
public class ADDateFunctions extends TestCase {
private static final long _TIME_DIFFERENCE = 0xa9735dcc400L;
private static final long _NANO_SECONDSPER_MILLI = 10000L;
/**
* @param name
*/
public ADDateFunctions(String name) {
super(name);
}
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
private long convertDateToLong(Date date)
{
long longDate = date.getTime();
long l = longDate + _TIME_DIFFERENCE;
return l * _NANO_SECONDSPER_MILLI;
}
private Date convertLongToDate(long longDate)
{
long l = longDate / _NANO_SECONDSPER_MILLI;
long militime = l - _TIME_DIFFERENCE;
return new Date(militime);
}
private boolean isNoExpireDS(String s)
{
boolean flag = false;
if(s == null)
{
flag = true;
} else
{
s = s.trim();
Long long1 = new Long(1L);
try
{
long1 = Long.decode(s);
}
catch(NumberFormatException numberformatexception) { }
flag = flag long1.longValue() == 0L;
flag = flag s.length() == 0;
}
return flag;
}
public String datetoAD(String s, String dateFormat)
{
SimpleDateFormat simpledateformat = new SimpleDateFormat(dateFormat);
long l = 0L;
if(isNoExpireDS(s))
l = 0x7fffffffffffffffL;
else
try
{
Date date = simpledateformat.parse(s);
l = convertDateToLong(date);
}
catch(ParseException parseexception) { }
return new String(Long.toString(l));
}
public String adDatetoDate(String s, String dateFormat)
{
SimpleDateFormat simpledateformat = new SimpleDateFormat(dateFormat);
long l = Long.parseLong(s);
Date date = convertLongToDate(l);
return new String(simpledateformat.format(date));
}
public void testGetADDate(){
System.out.println("Lets test the AD Date Conversions") ;
String s = new String("05/15/2009");
System.out.println("Active Directory Date Format for " + s + " is : " + datetoAD(s, "MM/dd/yyyy"));
String s1 = datetoAD(s, "MM/dd/yyyy");
System.out.println("Active Directory Date " +s1 + " converted back to Calendar date is : " + adDatetoDate(s1, "MM/dd/yyyy"));
}
}
Subscribe to:
Posts (Atom)