Thursday, December 5, 2013

Cannot getVersions. Error while processing AppParameters in SOAP Header: AppParameters does not exist in SOAP Header.

+---------------------------------------------------------------------------+
General Ledger: Version : 12.0.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

GLDRMLDR module: Load Segment Values and Hierarchies
+---------------------------------------------------------------------------+

Current system time is 04-DEC-2013 16:16:48

+---------------------------------------------------------------------------+

2013.12.04 16:16:53:-- Initializaing Load Segment Values and Hierarchies program ...
2013.12.04 16:16:53:-- Request ID =6365737
2013.12.04 16:16:53:-- Value Set =COMPANY_CODE
2013.12.04 16:16:53:-- Fetching DRM profile options values ...
2013.12.04 16:16:53:-- Profile: GL_DRM_VALUE_SET_PROP ==> OracleGL.ValueSet
2013.12.04 16:16:53:-- Profile: GL_DRM_VER_EXPORT_PROP  ==> OracleGL.AllowExport
2013.12.04 16:16:53:-- Profile: GL_DRM_HIER_EXP_PROP ==> OracleGL.AllowHierExport
2013.12.04 16:16:53:-- Profile: GL_DRM_VER_EXPORT_DEFN ==> EBSValueSetExport
2013.12.04 16:16:53:-- Profile: GL_DRM_HIER_EXPORT_DEFN  ==> EBSHierarchyExport
2013.12.04 16:16:53:-- Profile: GL_DRM_WSDL_URL ==> http://server:9000/oracle-epm-drm-webservices/DrmService?wsdl
2013.12.04 16:16:53:-- Profile: GL_DRM_API_URL  ==> http://server:5240/Oracle/Drm/APIAdapter
2013.12.04 16:16:53:-- Profile: GL_DRM_USERNAME ==> user
2013.12.04 16:16:53:-- Scanning DRM for version to Export...
2013.12.04 16:16:57:-- oracle.apps.gl.drm.ws.DrmWSClient.getVersions(): Event payload -
<drm:getVersions xmlns:drm='http://drm.webservices.epm.oracle'/>
2013.12.04 16:16:57:-- Unexpected Error -> oracle.apps.gl.drm.ws.DrmWSException: Exception when Invoking Web Service -> oracle.apps.fnd.wf.bes.InvokerException: javax.xml.rpc.soap.SOAPFaultException: Cannot getVersions. Error while processing AppParameters in SOAP Header: AppParameters does not exist in SOAP Header.
oracle.apps.fnd.wf.bes.EventDispatcher.executeSubscription(EventDispatcher.java:891)
oracle.apps.fnd.wf.bes.EventDispatcher.processSubscription(EventDispatcher.java:556)
oracle.apps.fnd.wf.bes.EventDispatcher.dispatch(EventDispatcher.java:335)
oracle.apps.fnd.wf.bes.BusinessEvent.raise(BusinessEvent.java:1819)
oracle.apps.gl.drm.ws.DrmWSClient.raiseInvokerEvent(DrmWSClient.java:531)
oracle.apps.gl.drm.ws.DrmWSClient.getVersions(DrmWSClient.java:480)
oracle.apps.gl.drm.util.DrmLoader.scanDRMVersions(DrmLoader.java:348)
oracle.apps.gl.drm.util.DrmLoader.runProgram(DrmLoader.java:133)
oracle.apps.fnd.cp.request.Run.main(Run.java:157)
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+


If you see error like above, it is most likely because missing patch. make sure below batches are applied and re-test.
Patch set 11659733:R12.GL.B and Pre-req: 10632813:R12.OWF.B

Wednesday, November 20, 2013

Object reference not set to an instance error when opening a hierarchy.

This happens if you have included custom properties in hierarchy property "user display property" and one/many of these properties were deleted. Just update this property value and remove any properties that were deleted.

Friday, November 15, 2013

Script Formula to find distict values from all the children of a node.

/*
This formula tries to find list of all the distinct property values for all the children of a parent node.
it helps to identify nodes that have different children with different property values.
*/

var cprt;
var childEnumerator = node.GetChildEnumerator();
while(childEnumerator.MoveNext()) {
    var propValue = childEnumerator.GetCurrent().PropValue("Custom.CPRTSchedule");
       if(cprt == null)
           cprt=propValue;
   
var re=new RegExp(propValue);
    if( re.test(cprt)==false)
         cprt=cprt+","+propValue;
   
}
if(!cprt)
    return(node.PropValue("Custom.CPRTSchedule"));
return cprt;

Tuesday, November 5, 2013

There are currently no applications available for login DRM Webclient cannot connect to application.

Had tough time isloating the issue and resolving it. we were getting this error inspite of drm services and engines up and running. no issues with IIS, Database, DRM, windows etc but still drm web client would not connect.

At last was able to get it up and running with the below changes. I dont say this is the fix for the issue, but it might help if you are facing a similar problem.



  1.  Start IIS Manager
  2. Goto IIS->Application Pool->drm_pool
  3. Click Advanced properties and Click on Identity under Process Model section.
  4. Change the Built-in account from NetworkSerivce to LocalSystem. Click OK and go back to main interface (Application Pool)
  5. Recycle Application Pool (Click the recycly button on the right)
  6. Restart DRM Application. Now test if it works.

If above did not resolve then try these

  1. Create a new windows user. e.g. DRM_ADMIN (local system )
  2. add the user to Administrator group.
  3. click 

Security Policy - DRM WebServices

Tip: Everytime you make a change to security policy, make sure you restart shared services. preferabally restart both shared services and web logic.

I learnt it the hard way! :-)

Tuesday, October 29, 2013

Access DRM Application on Virtual Box (Guest) from local (host) system.

Here are instructions to setup port forwarding so users can access application hosted on virtual box from their local system.

  1. Click Settings -> Network -> Port Forwarding
  2. Click Add (+) icon to create a new rule.
  3. Enter the Application Name, Protocol,Host Ip,Host Port,Guest Ip,Guest Port. check the screen shot below (i ignored host and guest ip).
  4. now just point to the application/url from your local pc and you should be able to access it.

Monday, October 28, 2013

Check DRM Application Status - vbscript

Here is a small vbscript that can be used to check if DRM Application is up and running, this will come handy if for any reason you want to check if application is up and may be kick off exports form batch utility. Or may be use this to notify support team whenever the application is down.

1. Create a text file with extension vbs. e.g. Check_Application_Status.vbs
Note: In the example i'm only checking for Engines,Services, Process Manager and netjnibridge. If you want you can include DRM-api-Adapter and event-host.
--- Here is the vbscript code ---
set service = GetObject("winmgmts:")
i=1
cnt=0
for each Process in Service.InstancesOf("Win32_Process")
If Process.Name="drm-engine.exe" Then
i=i+1
if i=2 then
cnt=cnt+1
end if
ElseIf Process.Name="drm-process-manager.exe" Then
cnt=cnt+1
ElseIf Process.Name="drm-service.exe" Then
cnt=cnt+1
ElseIf Process.Name="drm-netjnibridge-host.exe" Then
cnt=cnt+1
End If
Next
If cnt >=4 Then
Wscript.Quit(0)
Else
Wscript.Quit(1)
End If
--- end of the vbscript code --- --- Batch File to call the vbscript ---
cscript Check_Application_Status.vbs
GoTo %ERRORLEVEL%
:0
echo Drm Services are up and running.
goto End
:1
echo DRM services are down. Please Restart.
goto End
:End
--- End of Batch File ---