Monday, April 30, 2012

RangeSize of a VO Iterator

A Row Iterator is an iterator over a collection of View rows or Entity rows. The RangeSize property does not control the number of rows displayed in a table based on the collection. In fact, an applications table in ADF can actually display as many rows as can fit into the available space physically. The RangeSize controls is the number of transactions that are required to populate the table as the user scrolls up and down. You can set it to -1 if you want to get all records at once. Else, a typical setting should be
(tableSize + 1)

Use the rangeSize of your VO Iterador, right click in your jsp/jspx page go to definition page, inside executables > iterator > rangeSize.

Tuesday, February 21, 2012

ADF Dynamic Regions

What are they?
As per the fusion docs, "An ADF dynamic region is an ADF region where the task flow binding dynamically determines the value of its taskFlowId attribute at runtime. This allows the Fusion web application to determine which bounded task flow to execute within the ADF dynamic region based on the result of evaluation of the task flow binding's taskFlowId attribute".

Thus, a page renders a different task flow page fragments in response to the command component button that the end user clicks.

Why Dynamic Regions?
I happened to come across and make use of ADF Dynamic Regions because of a peculiar issue that I faced. I was to make use of a taskflow (that belonged to a different workspace) as a region within my workspace page-fragment. This particular region would not behave as expected at runtime on the said page-fragment (pop-up would not render on click of the commandImageLink) but would behave normally on all others. The difference between this page-fragment and others was that, it had two different bounded taskflows with page fragments that would show up conditionally on click of a commandImageLink. The parent page-fragment was not making use of dynamic ADF regions initially. Once we switched to make use of ADF Dynamic regions to show the containing taskflow regions conditionally at runtime, our issue was solved!!

Monday, February 13, 2012

JpsRuntimeException: JPS-01520: Cannot initialize identity store

For the last couple of times, I've been running into this security exception while running my junit test cases. This time around I was determined to get over it. A number of links on googling mention some workarounds related to SOA. Most of these solutions are also for windows based OS(s).

Some links talk about permissions for either your cwallet.sso file or mentioning an accessible IP address in your console or connections.xml file.

Finally, a simple workaround that worked for me, was :

just check-out your jazn-data.xml file and re-run your test. And Lo...and Behold...your test case runs perfectly fine !!

The error could sometimes also pop-up in a slightly different form :


javax.security.auth.login.LoginException: Run into error oracle.security.jps.JpsException: JPS-03026:
PDPService and PolicyStore Service instance not found in default context. Reason: {0} while using identity store.

In this case, a check-out of both connections.xml and cwallet.sso files and then re-running the test case should work!

Wednesday, February 8, 2012

When you run into a classNotFoundException..

In case you do happen to run into a ClassNotFoundException and the culprit is a class outside your own workspace and you do have a jar that fixes the exception, make sure you follow the below mentioned steps :-

1. Copy the jar (that fixes the issue) into some location on your machine.
2. Delete the current jar that is problematic from its said location.
3. Copy the new jar at the required location.
4. Deploy the project with the new jar in place.
5. Run your application to get rid of the exception.

Wednesday, December 21, 2011

ServletException /oracle/apps/fnd/applcore/templates/UIShell.jspx: Line #57

When running your application UI, if your page renders blank with the following error :

...............................
]] Root cause of ServletException.
oracle.jsp.parse.JspParseException:
/oracle/apps/fnd/applcore/templates/UIShell.jspx: Line # 57,
Error: Encountered deferred syntax #{ in template text. If intended as a literal, escape it or set directive deferredSyntaxAllowedAsLiteral
at oracle.jsp.parse.JspParseTagXMLTextContainer.processAttributeForELFunctions(JspParseTagXMLTextContainer.java:118)
at oracle.jsp.parse.JspParseTagXMLTextContainer.processAttributeValue(JspParseTagXMLTextContainer.java:103)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1565)
at oracle.jsp.parse.JspParseTag.parse(JspParseTag.java:1610)
at oracle.jsp.parse.JspParseTag.genXMLSrcTag(JspParseTag.java:886)
at oracle.jsp.parse.JspParseTag.parseXMLSrcNextTag(JspParseTag.java:780)
at oracle.jsp.parse.JspParseTag.parseXMLSrcBody(JspParseTag.java:1297)
at oracle.jsp.parse.OpenJspTagHandler.parseXMLSrcBody(OpenJspTagHandler.java:782)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1572)
at oracle.jsp.parse.JspParseTag.parse(JspParseTag.java:1610)
at oracle.jsp.parse.OpenJspTagHandler.parse(OpenJspTagHandler.java:846)
at oracle.jsp.parse.JspParseTag.genXMLSrcTag(JspParseTag.java:923)
at oracle.jsp.parse.JspParseTag.parseXMLSrcNextTag(JspParseTag.java:780)
at oracle.jsp.parse.JspParseTag.parseXMLSrcBody(JspParseTag.java:1297)
at oracle.jsp.parse.OpenJspTagHandler.parseXMLSrcBody(OpenJspTagHandler.java:782)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1572)
at oracle.jsp.parse.JspParseTag.parse(JspParseTag.java:1610)
at oracle.jsp.parse.OpenJspTagHandler.parse(OpenJspTagHandler.java:846)
at oracle.jsp.parse.JspParseTag.genXMLSrcTag(JspParseTag.java:923)
at oracle.jsp.parse.JspParseTag.parseXMLSrcNextTag(JspParseTag.java:780)
at oracle.jsp.parse.JspParseTag.parseXMLSrcBody(JspParseTag.java:1297)
at oracle.jsp.parse.OpenJspTagHandler.parseXMLSrcBody(OpenJspTagHandler.java:782)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1572)
at oracle.jsp.parse.JspParseTag.parse(JspParseTag.java:1610)
at oracle.jsp.parse.OpenJspTagHandler.parse(OpenJspTagHandler.java:846)
at oracle.jsp.parse.JspParseTag.genXMLSrcTag(JspParseTag.java:923)
at oracle.jsp.parse.JspParseTag.parseXMLSrcNextTag(JspParseTag.java:780)
at oracle.jsp.parse.JspParseTag.parseXMLSrcBody(JspParseTag.java:1297)
at oracle.jsp.parse.OpenJspTagHandler.parseXMLSrcBody(OpenJspTagHandler.java:782)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1572)
at oracle.jsp.parse.JspParseTag.parse(JspParseTag.java:1610)
at oracle.jsp.parse.OpenJspTagHandler.parse(OpenJspTagHandler.java:846)
at oracle.jsp.parse.JspParseTag.genXMLSrcTag(JspParseTag.java:923)
at oracle.jsp.parse.JspParseTag.parseXMLSrcNextTag(JspParseTag.java:780)
at oracle.jsp.parse.JspParseTag.parseXMLSrcBody(JspParseTag.java:1297)
at oracle.jsp.parse.JspParseTag.parseXMLSrc(JspParseTag.java:1572)
at oracle.jsp.parse.JspParseTagFile.parseXMLSrc(JspParseTagFile.java:341)
at oracle.jsp.parse.JspParseTagFile.parse(JspParseTagFile.java:256)
at oracle.jsp.parse.OracleJsp2Java.transformImpl(OracleJsp2Java.java:439)
at oracle.jsp.parse.OracleJsp2Java.transform(OracleJsp2Java.java:593)
at oracle.jsp.runtimev2.JspPageCompiler.attemptCompilePage(JspPageCompiler.java:691)
at oracle.jsp.runtimev2.JspPageCompiler.compileBothModes(JspPageCompiler.java:490)
at oracle.jsp.runtimev2.JspPageCompiler.parseAndGetTreeNode(JspPageCompiler.java:457)
at oracle.jsp.runtimev2.JspPageInfo.compileAndLoad(JspPageInfo.java:624)
at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:645)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:385)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:785)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:523)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:444)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:184)
at oracle.adfinternal.view.faces.taglib.region.IncludeTag.__include(IncludeTag.java:440)
at oracle.adfinternal.view.faces.taglib.region.IncludeTag.doEndTag(IncludeTag.java:230)
at oracle.adfinternal.view.faces.taglib.region.PageTemplateTag.doEndTag(PageTemplateTag.java:162)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:62)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspNode.execute(OracleJspNode.java:89)
at oracle.jsp.runtimev2.ShortCutServlet._jspService(ShortCutServlet.java:89)
at oracle.jsp.runtime.OracleJspBase.service(OracleJspBase.java:29)
at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:665)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:385)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:785)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:523)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
at oracle.adfinternal.view.faces.config.rich.RecordRequestAttributesDuringDispatch.dispatch(RecordRequestAttributesDuringDispatch.java:44)
at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:267)
at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:469)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
at org.apache.myfaces.portlet.faces.application.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:259)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:777)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:293)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:213)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.webcenter.framework.events.dispatcher.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:44)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.apps.financials.expenses.creditCard.setup.ui.CardIssuerMDSFilter.doFilter(CardIssuerMDSFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.apps.fnd.applcore.common.ApplSessionFilter.doFilter(ApplSessionFilter.java:598)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.wcps.client.PersonalizationFilter.doFilter(PersonalizationFilter.java:75)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.webcenter.content.integration.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:168)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:114)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:97)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:164)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:114)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:97)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:164)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)


Solution :
This issue occurs when you have a public_html folder created in one of the Model/UiModel projects present in the working set. Delete this folder from the terminal and close and reopen the application. Running the page after this should solve the issue.

Tuesday, November 29, 2011

Accessing an entity based ViewAccessor from a ViewObject

View accessors in ADF Business Components are value accessor objects that point from an entity object attribute (or view object) to a destination view object or shared view instance in the same application workspace . The view accessor returns a row set that by default contains all rows from the destination view object. You can optionally filter this row set by applying view criteria to the view accessor. The base entity object or view object on which you create the view accessor and the destination view object need not be in the same project or application module, but they must be in the same application workspace.

Because view accessors give you the flexibility to reach across application modules to access the queried data, they are ideally suited for accessing view instances of shared application modules.

When you create a ViewAccessor at the entity level, accessing the same at the ViewObject level is a little tricky, especially if you want to have it as part of a groovy expression in a transient attribute. An expression that works is :

row = (object.getEntity(0).ViewAccessorName.first())
return (row == null) ? null : row.Name

Jdeveloper IDE table-inspector error

When you're working with jdeveloper and the ide gives the below error in the property inspector :

Error : Error constructing column editor

Reason : This mostly happens when the related AM data control is not loaded properly in the data controls section.

Soln : Clean, build, and deploy the model project.
Re-load the data controls region.
Now., clicking on the property inspector shud render the column editor for your table!!