Friday, February 21, 2014

Create Expense Report - Unexpected Error java.lang.NullPointerException

A client declared error which occured when create Expense Report button pressed with following detail,

Exception Details.  
 oracle.apps.fnd.framework.OAException: java.lang.NullPointerException
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:886)
at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:1009)
at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211)
at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:133)
at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:797)
at oracle.apps.ap.oie.entry.header.webui.HeaderKffCO.renderKeyFlexfield(HeaderKffCO.java:81)
at oracle.apps.ap.oie.entry.header.webui.HeaderKffCO.processRequest(HeaderKffCO.java:41)
....

## Detail 0 ##
java.lang.NullPointerException
at oracle.apps.ap.oie.entry.accounting.server.ExpenseAllocationsAMImpl.getFlexStructureCode(ExpenseAllocationsAMImpl.java:412)
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 oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:190)
at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:133)
at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:797)
at oracle.apps.ap.oie.entry.header.webui.HeaderKffCO.renderKeyFlexfield(HeaderKffCO.java:81)
at oracle.apps.ap.oie.entry.header.webui.HeaderKffCO.processRequest(HeaderKffCO.java:41)
....


Metalink doc 1244614.1 gives detail about this error.In doc , improper setting of security attributes can cause this issue. Normally securing attributes which are ICX_HR_PERSON_ID and TO_PERSON_ID should have per_all_people_f.person_id value for related employee.In this case i have encountered that these values were different from original value.

For solution,

1.From Security--> User-->Define query user.
2.Remove employee name from Person field
3.Save
4.Add employee name to Person field back
5.Save
6.Re-query user.
7.Observe that ICX_HR_PERSON_ID and TO_PERSON_ID attributes should have employee_id of user

Source : Metalink Doc.Id 1244614.1 

2 comments: