OIM Trusted Reconciliation with OID
Hi all,
1. i am facing the problem with trusted reconciliation , i mapped AttrName.Recon.OID.Map with OOTB values , and in Reconciliation manager the Event is created with No Match Found,
2. In provisioning i am using the Entity Adapter to generate the User ID is this causing the error ?.
3. when i run Trusted Recon ii am getting the following error
DEBUG,06 Apr 2011 16:49:48,655,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isDescription - Value: Cannot save: Bad SQL operation FATAL REJECT, raw value 2.
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isRemedy - Value:
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcDataObj:handleErr - Data: poError.isDetail - Value:
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcErrorList/addError entered.
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcDataObj/doRollback entered.
ERROR,06 Apr 2011 16:49:48,656,[XELLERATE.DATABASE],Class/Method: tcDataBase/rollbackTransaction encounter some problems: Rollback Executed From
java.lang.Exception: Rollback Executed From
at com.thortech.xl.dataaccess.tcDataBase.rollbackTransaction(Unknown Source)
at com.thortech.xl.dataobj.tcDataObj.rollback(Unknown Source)
at com.thortech.xl.dataobj.tcDataObj.doRollback(Unknown Source)
at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
at com.thortech.xl.dataobj.tcRCE.createUserRecord(Unknown Source)
at com.thortech.xl.ejb.databeansimpl.tcRCEBean.createUserRecord(Unknown Source)
at com.thortech.xl.ejb.beans.tcRCE_4tknfu_EOImpl.createUserRecord(tcRCE_4tknfu_EOImpl.java:615)
at com.thortech.xl.ejb.beans.tcRCE_4tknfu_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
INFO,06 Apr 2011 16:49:48,656,[XELLERATE.DATABASE],Class/Method: tcDataBase/setTransaction: ##########setTransaction getting called from: #######
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcDataObj/doRollback left.
DEBUG,06 Apr 2011 16:49:48,656,[XELLERATE.SERVER],Class/Method: tcDataObj/save left.
DEBUG,06 Apr 2011 16:49:48,657,[XELLERATE.SERVER],Class/Method: tcRCE/createUserRecord left.
DEBUG,06 Apr 2011 16:49:48,825,[XELLERATE.SERVER],Class/Method: tcErrorList/getErrors entered.
DEBUG,06 Apr 2011 16:49:48,825,[XELLERATE.SERVER],Class/Method: tcErrorList/getErrors left.
DEBUG,06 Apr 2011 16:49:48,887,[XELLERATE.SERVER],Class/Method: tcErrorList/ getRejections entered.
DEBUG,06 Apr 2011 16:49:48,887,[XELLERATE.SERVER],Class/Method: tcErrorList/ getRejections left.
DEBUG,06 Apr 2011 16:49:48,997,[XELLERATE.SERVER],Class/Method: tcDataBase/readEncryptedStatement entered.
DEBUG,06 Apr 2011 16:49:48,998,[XELLERATE.SERVER],Class/Method: tcDataBase/readPartialStatement entered.
Thank you.
Hi Khanh,
[This is not good for my use case. I don't want the users from OID to be created in OIM]
Remember this Ldap Sync we use when we want all users in OID -OIM to be in Synch. Otherwise you should have disabled Ldap Sync and used OID 11g Connector.
So if you want to link users in OIM using OID process form/resouce, then its must to use OID 11g Connector.
~J
Similar Messages
-
User not created in OIM 11gr2 - trusted reconciliation from OID
Hello,
in my tests I'm trying to do a trusted reconciliation from OID to OIM.
I checked the errors below in the log file and I checked the column on the database. The column is there but I can't understand why this error appear.
I did a select on this table and this column is empty (select RA_USERLOGIN7C7B96D4 from RA_OIDTRUSTEDUSERBCBD344A).
INFO: Generic Information: select USR_KEY from usr where USR_MIDDLE_NAME is null and USR_UDF_ORCLGUID=? and USR_FIRST_NAME=? and USR_EMAIL=? and USR_LAST_NAME=? and USR_STATUS=? and USR.USR_STATUS != 'Deleted' AND ((UPPER(USR.USR_LOGIN)=UPPER(RA_OIDTRUSTEDUSERBCBD344A.RA_USERLOGIN7C7B96D4)))
INFO: Generic Information: Params = [CF7C29EE75F5A78FE040A8C084000DE8, orcladmin, orcladmin, orcladmin, Enabled]
SEVERE: Generic Information: {0}
oracle.iam.reconciliation.exception.DBAccessException: Failed SQL:: select USR_KEY from usr where USR_MIDDLE_NAME is null and USR_UDF_ORCLGUID=? and USR_FIRST_NAME=? and USR_EMAIL=? and USR_LAST_NAME=? and USR_STATUS=? and USR.USR_STATUS != 'Deleted' AND ((UPPER(USR.USR_LOGIN)=UPPER(RA_OIDTRUSTEDUSERBCBD344A.RA_USERLOGIN7C7B96D4))) =>PARAMS:: [CF7C29EE75F5A78FE040A8C084000DE8, orcladmin, orcladmin, orcladmin, Enabled]
at oracle.iam.reconciliation.utils.DBAccessTemplate.executeQuery(DBAccessTemplate.java:71)
at oracle.iam.reconciliation.impl.BaseEntityTypeHandler.executeSql(BaseEntityTypeHandler.java:508)
at oracle.iam.reconciliation.impl.UserHandler.getMatchingKeys(UserHandler.java:601)
at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:556)
at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.ignoreEvent(ReconOperationsServiceImpl.java:535)
at sun.reflect.GeneratedMethodAccessor3188.invoke(Unknown Source)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "RA_OIDTRUSTEDUSERBCBD344A"."RA_USERLOGIN7C7B96D4": invalid identifier
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
After this error the log shows:
SEVERE: oracle.iam.connectors.icfcommon.recon.SearchReconTask : handle : Recon event skipped
oracle.iam.connectors.icfcommon.exceptions.OIMException: Thor.API.Exceptions.tcAPIException: Child tables only supported at account-level
at oracle.iam.connectors.icfcommon.service.oim11.OIM11Reconciliation.processEvent(OIM11Reconciliation.java:101)
Please help me on this and tell me if I am missing something here.
ThanksI've found something that worked for me. When executing the trusted recon schedule task, the "Configuration Lookup" field in the "OID Server" IT Resource has to have the value "Lookup.OID.Configuration.Trusted". On the other hand, when executing the user sync recon schedule task, this field must have the value "Lookup.OID.Configuration.Trusted".
The lookups' names can be different if you've manually renamed them.
--jtellier -
ADD new fields in OIM to provisioned on OID
Hello,
I need a confirmation about these steps to add a new field to provisioned to OID.
new field called slClient
did i need to do all these steps ?
1- Resource Object
OID User --> Object Reconciliation (tab), add Field: sl Client --> String
Xellerate User --> Object Reconciliation (tab) , add Field: sl Client --> String
2- Form Designer
UD_OID_USR --> add : UD_OID_USR_ CLIENT --> sl Client
3- Lookup definition
AttrName.Recon.Map.OID --> Add: sl Client --> slClient ( this is what field name in OID database)
AttrName.Prov.Map.OID --> Add: sl Client --> slClient ( this is what field name in OID database)
4- Process Definition
OID User --> Reconciliation Field Mappings (tab), Add field map: sl Client --> UD_OID_USR_ CLIENT( this is what in Form Designer)
Xellerate User --> Reconciliation Field Mappings (tab), Add field map: sl Client --> Letter Client (what is defined in User Defined Field Definition)
5- User Defined Field Definition
Users --> Add Letter Client --> USR_UDF_LTR_CLIENT ( this is what in OIM database)
I need to validate also the relationship, between all the components.
thanks,
TGI believe for trusted reconciliation with OID, the OOTB connector does not allow for additional attributes to be populated no the Xellerate User object. I beleive it only retrieves a set list of attributes that are requried for creating an OIM user and also adds in the additional values for Xellerate Role, and Xellerate Type, and Organization.
I would suggest you create a new Resource Object, marked as trusted, called OID Trusted. Duplicate your recon lookup to have only values needed for your trusted recon. Create an event handler/entity adapter on your Users data object which will populate the Xellerate Role, Xellerate Type, and Organization to populate these values. Then create a provisioning process definition with no additional tasks. Map all your reconciliation fields to your Xellerate User object. Then create a duplicate scheduled task of the OOTB OID recon and set your Resource Object to OID Trusted. Also, don't forget to create a recon rule and set your recon action rules. Run the recon and there you go.
-Kevin -
OID Trusted reconciliation failed
Hi,
I am trying to do trusted reconciliation from OID. Reconciliation task is failed and following are the error logs found:
ERROR QuartzWorkerThread-1 XL_INTG.OID - ====================================================
ERROR QuartzWorkerThread-1 XL_INTG.OID - Exception at com.thortech.xl.integration.OID.schedule.tasks.tcTskOIDUserReconciliationprocessBatch(): [B cannot be cast to java.lang.String
ERROR QuartzWorkerThread-1 XL_INTG.OID - ====================================================
I am trying to reconcile the OOTB fields (cn,sn,givenName,userPassword) and 2 user defined fields (text based).
Can anyone let us know when this casting exception will be thrown?
- Kalyan MutyaYep mappings are poor, I created an entity adapter for the EMP_TYPE & USR_TYPE, users are reconciling.
There is still an issue with the reconciliation.
I can provision all attributes on the OIM user account to their coresponding OID attributes, but when I reconcile I process all attributes, but the xellerate user only links the default ones
LastName
Organization
First Name
User ID
Xellerate Type
Email
Role
I have checked and rechecked the mappings, This is on 9.0.3.1672 using the 9.0.4.1 connector.
Any ideas? -
Trusted Reconciliation-Oracle Database to OIM
Hi,
I created a GTC in OIM for Trusted reconciliation with Oracle database as source.
I can able to create & update users in OIM according to the same operation on database.
but when i delete a user in oracle database, the same user is marked as deleted in OIM (although the user is not physically deleted).
How to know the user is marked as deleted? i mean which attribute of user is updated? how to reflect the same in OIM admin console?
RegardsHello
About the trusted conector for an Oracle DB that you mentioned before, you said that you could create and update OIM Users....
Could you please tell me what steps did you do to make the reconciliation work, is just that i already created the connector the same way the manual of the connector said but when I ran the reconciliation it doesnt create any OIM User, but when i saw the log it doesnt have any error.
I hope you can help me please!!!!! TNKS!!!! -
Lookup.USR_PROCESS_TRIGGERS not working with trusted reconciliation oim 11g
Hi,
I am facing one issue while running the trusted incremental reconciliation in OIM 11g.
In the bulkEvent of the event handler I am checking if the operation is MODIFY then I am comparing some attributes and based of that result I am performing some action.
Now the issue is that if the first name or last name of the users gets changed in OIM due to trusted reconciliation then the Change First Name or Change Last Name Process task should get execute on the resources provisioned to the user. This is not happening in my case.
I tried modifying the first name of the user via UI and then the Change First Name Process task got executed.
Please let me know if I need to do some thing extra to get this working.
ThanksHi,
Try creating a custom adapter and attach the adapter to the process task which you have created. This adapter should read the user profile value and populate in the AD provisioning form. Then test the flow for one attribute. As I am suspecting that there would be an issue with OOTB adapter.
Regards
Sai -
OIM 11g DBAT connector - trusted reconciliation for user roles
Hi,
We have a database table containing a bunch of user records, and a table with a foreign key that contains all the associations user-group. We would like to do trusted reconciliation from those two tables into OIM. I already did that for target reconciliation but now I am having a look at the DBAT connector docs, and I have found this:
"Child Table/View Names
If you want to use the connector for trusted source reconciliation, then do not enter a
value. If you want to use the connector for target resource reconciliation and if user data is
spread across parent and child tables, then enter a comma-separated list of child table
names."
Does this mean that role membership trusted reconciliation is not supported by the DBAT connector?
thanks in advanceDBAT connector does not support trusted source with child data.
But that does not mean you cannot configure user table as trusted source.
What is it that you want to do with child table ? -
OIM - GTC database trusted reconciliation not importing passwords
Hi,
I am using the latest available database connector (9.1.0.5.0) with OIM 9.1.0.2 BP07 and i have an issue with password reconciliation.
Let's say i have a table MY_USERS with users login data and i want to use it as a source for trusted reconciliation.
I have followed the tutorial available in the DBAT documentation and i get the following results:
-if i don't map the password field from the recon staging with the one of the OIM account, original password is ignored and OIM password is set to the username
- if i map the password field from the recon staging with the one of the OIM account i get an exception and reconciliation fails. To succeed i have to proceed as described in this tutorial http://st-curriculum.oracle.com/obe/fmw/oim/10.1.4/oim/obe12_using_gtc_for_reconciliation/using_the_gtc.htm , modifying the password field in the Design Console from "User password" to "Identity". Actually, this makes the recon work, but what happens is that original password is written in the USR table in the USR_FSS field and not in the USR_PASSWORD field (which is set to the username as above), and therefore the change is useless.
I would like to know what should i do to import the original password from database table.
Thanks in advance
AlexAFAIK, we can't reconcile user's password from Trusted Reconciliation. If in your case you have to bring only those passwords which resides in DB Table then you can write some custom utility/sch task which will read through DB Table and update user's password using OIM APIs.
-
OIM: trusted source reconciliation - user deletion
Hello,
I am working on a test scenario with Oracle Identity Manager 9.1.0.1.
I have succesfully setup trusted source reconciliation with Oracle 10g Database using the "Database Application Tables Release 9.1.0 connector".
In the DB resides a HR table with users.
When the data in the HR table is edited and updated everything works fine it get's reconciled to OIM.
But when a user get's deleted from the Database HR table. The user isn't deleted in OIM
How is that possbile?
Your response is greatly appreciated!
Thank you very much in advance!OK i have now managed the problem with the first unparsable error syntax.
According to here (http://download.oracle.com/docs/cd/E11223_01/doc.910/e11194/create.htm):
Database Date Format parameter for reconciliation:
Enter the same value that you enter for the Source Date Format parameter.
I entered the settings bellow and it works.
Database Date Format: DD-MMM-YY
Source Date Format: DD-MMM-YY
Another problem:+_
Now i have a problem with the "hire end" date, because if a user is still employed, there is a null value in the Oracle 10g DB.
And i get Unparsable date: "" error
Please help. -
OIM 11g R1 LDAP Synch with OID.
Hi,
We are doing an LDAP Synch with OID directly. The users from various organisations in OIM needs to be synched to different OU's in OID, instead of a single container. How do we acheive this? would it be easy if we involve OVD also?Here is some sample code configuration which may give you a start - hope it helps.
Sample code that can be called in a pre-process event handler to copy the users organinisation to the LDAP Organization Unit
HashMap<String, Serializable> parameters = orchestration.getParameters();
Serializable param = parameters.get("act_key");
String act_key = null;
if (param instanceof ContextAware) {
act_key = ((ContextAware) param).getObjectValue().toString();
} else {
act_key = param.toString();
if (act_key != null) {
OrganizationManager orgMgr = Platform.getService(OrganizationManager.class);
Set<String> retAttrs = new HashSet<String>();
retAttrs.add("Organization Name");
Organization org = null;
try {
org = orgMgr.getDetails(act_key, retAttrs, false);
} catch (OrganizationManagerException e) {
} catch (AccessDeniedException e) {
String orgName = (String) org.getAttribute("Organization Name");
orchestration.addParameter("LDAP Organization Unit", orgName);
Sample container mapping rule
<rule>
<expression>LDAP Organization Unit=Test Organization</expression>
<container>ou=Test Organization,ou=users,o=org</container>
<description>Add user to the Test Organization OU in LDAP if their OU is set to Test Organization</description>
</rule>
Sample change in /db/LDAPUser
<!-- Two act_key entries in the <reconFields> section to set RECON_ACT_KEY. -->
<!-- The first sets RECON_ACT_KEY to the default value from the scheduled job -->
<!-- The second overwrites RECON_ACT_KEY with an OU value if supplied in the LDAP User data. -->
<reconAttr>
<oimFormDescriptiveName>act_key</oimFormDescriptiveName>
<reconFieldName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Organization Name</reconFieldName>
<reconColName>RECON_ACT_KEY</reconColName>
<emDataType>number</emDataType>
<formFieldType/>
<targetattr keyfield="false" encrypted="false" required="false" type="String" name="act_key"/>
</reconAttr>
<reconAttr>
<oimFormDescriptiveName>act_key</oimFormDescriptiveName>
<reconFieldName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">ou</reconFieldName>
<reconColName>RECON_ACT_KEY</reconColName>
<emDataType>number</emDataType>
<formFieldType/>
<targetattr keyfield="false" encrypted="false" required="false" type="String" name="act_key"/>
</reconAttr> -
Configuration of oim 10g and oam 10g.. and integrating oam10g with oid
Hi..
i am trying to configure OAM10g and OIM10g and integrate OAM10g with OID..
please send me the documents if any had...
Thanks & Regards,
avinashFor integrating OIM 10g with OAM 10g, refer doc below:
http://docs.oracle.com/cd/E14899_01/doc.9102/e14761/oamsso.htm#sthref78
For OAM and OID integration refer:
http://docs.oracle.com/cd/E15217_01/index.htm
regards,
GP -
AD- OIM Reconciliation with Manager as Approver of Resources
Hi, I'm trying to setup the following scenario:
AD->OIM Reconciliation with user's manager information. Setup the manager as the user's approver for every resource available in OIM.
When a user gets added to the AD, he is reconciled into OIM and I have made 2 user defined fields, one to store his managers distinguished name and another to store the users - "usr_udf_man_dn" and "usr_udf_dn". This is working fine, both columns get populated on reconciliation.
What I would like to do is assign the manager as the approver for all the resources that are requested by the user. I am thinking of populating the usr_manager_key through an sql query, by matching "usr_udf_man_dn" with "usr_udf_dn" and getting the managers "usr_key", then storing it in usr_manager_key of the user. The query is not my real problem.
As I'm new to OIM, I don't yet know how to build the 'logic' of this process. How and where to I make the query? I'm assuming these fields can only be populated after the user has been reconciled (because there won't be any fields to do an sql query on before that). Do I use an adapter? How do I setup the approval process?
Any feedback will be greatly appreciated :)
Message was edited by:
user638778This is very simple and infact there are 2 ways to do it:
# 1) Create a User Process Trigger that adds on Change Event of your Manager UDF Field. This will kick in as soon as a value is put into the Manager UDF field (doesn't matter - via Recon or by hand). Then create an adapter that looks up a User in AD with the DN (your manager) and returns back a SamAccountName. Based on this returned SamAccountName, get the update the user with manager key. Attach this adapter to your process task event in Xellerate User Process Definition.
# 2) Create an Entity adapter that does the same operation as written in #1. Attach this entity adapter to Xellerate User Update event. This is simpler. Drawback of this is that anytime you update the user (for anything - like last name change , org change etc.) - it will repeat this process of updating the user with its manager key. so any change on employee will trigger the manager update. #1 is more efficient.
As far as the approval processes are concerned, there are 2 ways to achieve that also:
# 1) Attach approval in the standard task and assign it to User's Manager for approval. Limitation is that you can not get rid of this in future once you go production with such a setup. You can but you might not want to.
# 2) Individually on each approval process of each resource object, attach the approval task and assign it to User's Manager. That should do it.
Hope this helps.
rajnishbhatia19
For Additional Code Snippets, you may refer to my Blog site:
http://rajnishbhatia19.blogspot.com
Add RSS feed to your portals (google / yahoo / whichever:)
http://rajnishbhatia19.blogspot.com/feeds/posts/default
Connect to me:
http://www.linkedin.com/in/rajnishbhatia19 -
OIM Reconciliation with eBusiness Suite
Im seeing the following error on enabling the (eBusiness HRMS Trusted Reconciliation) task. I havent configured SSL between OIM and eBusiness suite. Will that be a problem ?
What are the exact steps to be followed for the reconciliation task?
Thanks
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],================= End Stack Trace =
======================
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],================= Start Stack Trace
=======================
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],oracle.iam.connectors.ebs.hrms.task
s.EmployeeReconciliationTask : init
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],Description :
ERROR,30 Jul 2009 14:55:50,437,[OIMCP.EBSER],oracle.iam.connectors.common.Connec
torException:
at oracle.iam.connectors.common.vo.ITResource.<init>(Unknown Source)
at oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask.init(
Unknown Source)
at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionActi
on.run(Unknown Source)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.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 Sou
rce)
at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown S
ource)
at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
ava:477)
Caused by: oracle.iam.connectors.common.ConnectorException:
... 11 more
Caused by: Thor.API.Exceptions.tcColumnNotFoundException
at Thor.API.tcMetaDataSet.getStringValue(Unknown Source)
... 11 moreComplete Log:_
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : init:: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.dao.OIMUtil : OIMUtil():: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.dao.OIMUtil : OIMUtil():: FINISHED
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : init : Task Name: eBusiness HRMS Trusted Reconciliation
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ScheduledTask : getScheduledTaskDetails():: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ScheduledTask : getScheduledTaskDetails():: FINISHED
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : init : Task Scheduler attributes :: {Resource Object=eBusiness Person, Target Date Format=MM/dd/yyyy hh:mm:ss, User Type=End-User, Query Name=ReconcileCurrentPersons, Batch Size=1000, Person Type Look Up Definition=Lookup.EBS.HRMS.PersonTypes, Query Properties File=C:\OIM\xellerate\XLIntegrations\EBSER\config\ebsERQuery.properties, Query Filter Lookup Definition=Lookup.EBS.HRMS.QueryFilters, IT Resource Name=EBS-HRMS-APPS12, Task Name=eBusiness HRMS Trusted Reconciliation, Organization=Xellerate Users, Last Execution Time=0, Recon Lookup Definition=Lookup.EBS.HRMS.Recon}
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams:: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Number of schedule task parameters: 13
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [0] : Resource Object
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [1] : Target Date Format
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [2] : User Type
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [3] : Query Name
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [4] : Batch Size
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [5] : Person Type Look Up Definition
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [6] : Query Properties File
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [7] : Query Filter Lookup Definition
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [8] : IT Resource Name
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [9] : Task Name
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [10] : Organization
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [11] : Last Execution Time
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Key [12] : Recon Lookup Definition
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Array for Validation: [Ljava.lang.String;@bae7b0
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ScheduledTask : validateMandatoryTaskAttrs():: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ScheduledTask : validateMandatoryTaskAttrs():: FINISHED
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled task Validation : true
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Batch Size :: 1000
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Last Reconciliation Time: 0
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Target Date Format =MM/dd/yyyy hh:mm:ss
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Resource Object =eBusiness Person
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : User Type =End-User
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Organization =Xellerate Users
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Checking existence of Organization Name Xellerate Users in OIM
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Row count for Organization: 1
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Person Type Look Up Definition =Lookup.EBS.HRMS.PersonTypes
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap() : LookUpName : Lookup.EBS.HRMS.PersonTypes
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: FINISHED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : personTypeMap ={Contractor=Consultant, Participant=Full-Time, Contingent Employee=Part-Time, Employee=Full-Time}
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Recon Lookup Definition =Lookup.EBS.HRMS.Recon
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Query Filter Lookup Definition =Lookup.EBS.HRMS.QueryFilters
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Query Name: ReconcileCurrentPersons
INFO QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Query File Path/Name: C:\OIM\xellerate\XLIntegrations\EBSER\config\ebsERQuery.properties
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Scheduled Task Attribute Set : [Resource Object, Target Date Format, User Type, Query Name, Batch Size, Person Type Look Up Definition, Query Properties File, Query Filter Lookup Definition, Organization, Last Execution Time, Recon Lookup Definition]
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Iterator value : java.util.Hashtable$Enumerator@1293e3f
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Resource Object :eBusiness Person
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Target Date Format :MM/dd/yyyy hh:mm:ss
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of User Type :End-User
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Query Name :ReconcileCurrentPersons
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Batch Size :1000
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Person Type Look Up Definition :Lookup.EBS.HRMS.PersonTypes
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Query Properties File :C:\OIM\xellerate\XLIntegrations\EBSER\config\ebsERQuery.properties
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Query Filter Lookup Definition :Lookup.EBS.HRMS.QueryFilters
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Organization :Xellerate Users
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Last Execution Time :0
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams : Value of Recon Lookup Definition :Lookup.EBS.HRMS.Recon
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : initializeAndValidateScheduledTaskParams:: FINISHED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : init : Schedule Task Validation: true
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource:: STARTED
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource : IT Resource Key :81
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource : Inside the exception block,spd_field_name is not found
DEBUG QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource : itResourceAttrName = Connection Retries
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ====================================================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource : column svp_field_value not found
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ====================================================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ====================================================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource : null
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ====================================================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ================= Start Stack Trace =======================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.vo.ITResource : ITResource
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ITResource initialization failed
ERROR QuartzWorkerThread-4 OIMCP.EBSER - Description :
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.ConnectorException:
at oracle.iam.connectors.common.vo.ITResource.<init>(Unknown Source)
at oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask.init(Unknown Source)
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)
Caused by: Thor.API.Exceptions.tcColumnNotFoundException
at Thor.API.tcMetaDataSet.getStringValue(Unknown Source)
... 11 more
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ================= End Stack Trace =======================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ================= Start Stack Trace =======================
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask : init
ERROR QuartzWorkerThread-4 OIMCP.EBSER -
ERROR QuartzWorkerThread-4 OIMCP.EBSER - Description :
ERROR QuartzWorkerThread-4 OIMCP.EBSER - oracle.iam.connectors.common.ConnectorException:
at oracle.iam.connectors.common.vo.ITResource.<init>(Unknown Source)
at oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask.init(Unknown Source)
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)
Caused by: oracle.iam.connectors.common.ConnectorException:
... 11 more
Caused by: Thor.API.Exceptions.tcColumnNotFoundException
at Thor.API.tcMetaDataSet.getStringValue(Unknown Source)
... 11 more
ERROR QuartzWorkerThread-4 OIMCP.EBSER - ================= End Stack Trace =======================
ERROR QuartzWorkerThread-4 XELLERATE.SCHEDULER.TASK - Class/Method: SchedulerBaseTask/run encounter some problems:
oracle.iam.connectors.common.ConnectorException:
at oracle.iam.connectors.ebs.hrms.tasks.EmployeeReconciliationTask.init(Unknown Source)
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)
Caused by: oracle.iam.connectors.common.ConnectorException:
at oracle.iam.connectors.common.vo.ITResource.<init>(Unknown Source)
... 10 more
Caused by: oracle.iam.connectors.common.ConnectorException:
... 11 more
Caused by: Thor.API.Exceptions.tcColumnNotFoundException
at Thor.API.tcMetaDataSet.getStringValue(Unknown Source)
... 11 more -
Trusted Reconciliation Status mapping does not work - 11g Release2
Hi all,
On my process for trusted reconciliation I have mapped my status attribute to Oim 'Status' attribute. It is as follow:
UserStatus -> Status
On my custom scheduled task I transform the status data get form HR (my trusted system) with the values 'Active', 'Disabled','Deleted' and create a reconciliation event.
Even the value I set for the status is 'Active' , afte reconciliation the status is not updated and it is 'Disabled'., what may be the problem? any help is strongly appreciated
Part of my reconciliation event creation code is as follow :
params.put(AttributeConstants.TCMB.ROLE, "Consultant");
params.put(AttributeConstants.TCMB.ORGANIZATION_NAME, "Xellerate Users");
params.put(AttributeConstants.TCMB.XELLERATE_TYPE, "End-User");
params.put(AttributeConstants.TCMB.DISPLAY_NAME, resourceData.getName()+" "+resourceData.getSoyadi());
params.put(AttributeConstants.TCMB.IDENTITY_STATUS, UserManagerConstants.AttributeValues.USER_STATUS_ACTIVE.getId());
System.out.println("Active param : "+UserManagerConstants.AttributeValues.USER_STATUS_ACTIVE.getId());
System.out.println("Disabled param : "+UserManagerConstants.AttributeValues.USER_STATUS_DISABLED.getId());
System.out.println("Deleted param : "+UserManagerConstants.AttributeValues.USER_STATUS_DELETED.getId());
long result = recObject.createReconciliationEvent("TCMB_PBS_TRUSTED", params, true);
Thnaks in advance,
BR
AliyeI would say don't supply status info for recon. OIM will update automatically based on start date and end date.
If you have special scenario then sure we have to map it and try params.put(AttributeConstants.TCMB.IDENTITY_STATUS,"Active") for same.
Better ignore passing status attribute. Lets OIM decide.
--nayan -
Handling Multi-Valued attribute in trusted reconciliation
Hi,
We have a requirement where an attribute is multi-valued in LDAP(Sun One Directory Server) which is a trusted source for OIM. We wanted to use oracle Out-of-the-Box connector for Sun Java System Directory Server. We wanted to bring in this multi-valued attribute into OIM, concatenate everything and populate it to a OIM User form attribute. Hence though the value is multi-valued in trusted source, we process it and populate as a single valued attribute in OIM. Since we run trusted reconciliation we are unable to bring this multivalued attribute for the user into OIM.
Can anybody suggest any other workaround available to achieve this functionality without touching connector source code?
Any help would be greatly appreciated.
Regards
DeepaI would highly suggest writing your own custom code.
You'll need to create a UDF that is large enough to handle your concatenated value. A resource object marked as trusted object. A provisioning process defintion to map the value to the field.
Then write a custom scheduled task that will connect to the LDAP directory, perform your search using the modifytimestamp attribute to get all the values. Concatenate them together in your code and create the reconciliation event.
It will turn out to be smoother than dealing with an entity adapter that runs everytime an event occurs which might not be related to this item.
-Kevin
Maybe you are looking for
-
The HUD Inspector in Full Screen View seems to position at the right margin of the image as a default(?) If I toggle the button in the top right of the HUD it 'unlocks' and I can drag it to where I prefer -- at the left margin; (for over a decade) m
-
Transferring from a Mac 10.2.8 iTunes 6 to WinXP iTunes 7
I need to transfer my Mac-formatted iPod from a Mac running OS 10.2.8 with iTunes 6 to WindowsXP with iTunes 7 as well as all my music and audiobooks from my Mac iTunes library to my PC. All of the documentation I can find says that they both have to
-
What do i do
-
How do I read tarball files in java ? I tried using the java.util.zip classes but only managed to read zip-files but no tar-files ?
-
Where can I find a diagram of the inside of a 3g ipod?
I recently changed the battery on my 3g ipod. While opening the unit, I accidentally stabbed the soft copper casing that surrounds the head phone jack. the casing was not punctured, but one side of it was dented inward. I did the best I could to resh