Tree on Dyanamic region . Uncommited data means warn me

hi jdev experts,
am using jdev 11.1.1.5.0 - adfbc - oracle db10g.
what i did:
am using af:tree. on that tree leaves holds command links.
if i hit that links means one dynamic regions(jsff) will opens.
it's ok all are fine.
but my need:
i did some changes one dynamic regions(jsff). and i go to another dynamic regions(jsff)
means.
some Uncommited datas please save it or want to lost it.
One more thing:
in adf jspx page af:document holds uncommited data warning on or off state. i know about it. it is working properly.
question1:
my question if it is jspx that ok. i want the same in jsff also?
how can i achieve it ?
edit in late:_
question 2:
for eg:
i had two tabs;
tab1 - input text1
tab2 - input text123
here i did some changes in tab1 inputtext1 not saved
and switch to another tab means.
it should warn me please that data or want to last?
so this my question? how can i do uncommited data in tabs(pane tabbed or show detail item)?

Can't you check with getDBTransaction().isDirty() on am instance
Edited by: Ramandeep Nanda on Feb 10, 2012 2:17 PM

Similar Messages

  • How to turn off uncommitted data warning?

    I have a bounded task flow that calls a second bounded task flow.
    The second task flow shares transaction and data control scope with calling task flows.
    Both task flows use the main area of the UI shell.
    I make changes in second task flow and when I close the task flow I get a uncommited data warning.
    Is there a way to turn off this uncommitted data warning?

    <AF:document uncommittedDataWarning="off">i hope that this will helps you.
    http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-100139.html

  • 11.1.1.3 Uncommitted Data Warning not working for fields  AutoSubmit =true

    We are facing an issue in our application where [ Uncommitted Data Warning |http://www.oracle.com/technetwork/testcontent/unsaveddatawarning-096556.html] doesnot seem to work for input fields on which autosubmit is turned to true. Once I unset thye autoSubmit property to false , this works fine.
    The autosubmit is needed in our application for specific needs.
    Can you please throw some light on this weird behaviour ! We have followed the exact steps as mentioned viz -
    1)Turn the Critical to 'true' for the bounded taskflow.
    2)Turned the UncommittedDataWarning to 'on' for the af:document of the container .jspx page
    Thanks
    Sudipto

    I tried this as a small prototype . Can someone please give any pointers ?
    TEST CASE 1 (Using a simple jspx and no taskflows)
    1)Created a new Test1.jspx and put a af:inputText in it bound to an attribute binding coming from a DataControl (using EJB).
    2)Set the autoSubmit property to true for the inputText.
    3)For the af:Document of the above Test1.jspx set the UnCommittedDataWarning to “on”
    4)Register the above page in jazn-data.xml for anonymous and auntenticated-role for login purpose.
    5)Run the page and found that the UncommittedDataWarning (UD Warning henceforth) pops up fine after dirtying the inputText and pressing browser back button.     
    TEST CASE 2 (Using a jsff embedded into a taskflow which in turn is embedded into a jspx
    1)Created a new Test2.jsff and put a af:inputText in it bound to an attribute binding coming from a DataControl.
    2)Set the autoSubmit property to true.
    3)Insert the Test2.jsff into a bounded task flow say Test2TF.xml. Have critical set to “true” for this taskflow.
    4)Embed the Test2.xml into a new jspx say Test2.jspx
    3)For the af:Document of the above Test2.jspx set the UnCommittedDataWarning to “on”
    4)Register the above page , jsff and taskflow in jazn-data.xml for anonymous and auntenticated-role for login purpose
    5)Run the page and find that the UD Warning doesnot pop up after dirtying the inputText and pressing browser back button.
    +(The above is a typical scenario of our application)+
    I also checked the steps and concepts well explained at http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-100139.html
    ,but couldnot arrive at a solution . The transaction and data control properties seem to be fine since , the UD warning does fire for a couple of fields having autoSubmit=”false” .
    Thanks
    Sudipto

  • Uncommitted Data warning on loading the taskflow

    Hi,
    I want to use the Uncommitted data warning for our application.
    I am getting the Uncommitted data warning while loading the taskflow.
    I am using the JDeveloper 11g 11.1.1.3.0
    I have create Taskflow with Isolated scope and start new transaction every time.
    My Takflow have Following thing:
    1) Execute Action: Which will call as default activity adn load the data.
    2) Router: That will if row exist in view then transfer to jsff page otherwise Call CreateInsert binding action and then redirected to same jsff page.
    3) Jsff Page: jsff page that have panelFormLayout with the fields for add/Update.
    In that scenario if my table don't have any record in database that why CreateInsert binding action will called. Once it will called and control is redirected to jsff page.
    Page is throwing the uncommitted data warning but there is not data on that page only the blank fields are there.
    If I click on OK button of popup that is showing blank screen not even label of the fields.
    Can anybody tell me please how can i resolve this issue?
    How will my page will appear with calling CreateInsert binding Action with UncommitedDatawarnings set as on?
    Thanks in Advance
    Amit

    As per http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22adf-1518265.html , in 11.1.2.1) or later ->
    Access the tab transaction state. Tabs can be marked as having their content changed, in which case they are referred to as dirty.
    A warning dialog box will appear if users or the application try to close these tabs. A tab’s dirty state can be checked and manipulated with the TabContext API.Looks like this is available out of the box.

  • Unexpected Uncommitted Data Warning

    Build JDEVADF_11.1.1.6.0_GENERIC_111205.1733.6192.1
    I have a bounded task flow (The rule TF) wherein I have a table which is backed by a programmatic VO (the rule condition VO). The default page for the rule TF is displayed in the main area of the UI shell template. The rule TF always begins a new transaction and shares data control with the calling task flow.
    From within the rule task flow, I can call a bounded task flow to select a set of products (the select target products TF). The select target products TF used shared transaction ("Always use Existing Transaction") and shares data control with calling task flow. Originally, I wanted to run this as a dialog, but there appears to be some bug in the UI shell that prevents this, so now I have run as dialog "False" and Display type "External Window". The default view for this task flow renders into the main area of the UI shell.
    When I add rule conditions and then invoke the select target products TF, I get an "Uncommitted data warning" when I press the OK button in that task flow, which returns the selected products to the calling task flow. The warning appears to happen after I get the return value from the select target task flow.
    If I don't add any rule conditions and simply invoke the select products TF, I do not see an issue.
    According to http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-100139.html, calling a bounded task flow from a bounded task flow with shared transaction should NOT cause this.
    Is this a bug? Is there a workaround for this?
    Thanks, -Klaus

    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core">
    <c:set var="ResourcesGenBundle"
    value="#{adfBundle['oracle.apps.common.acr.resource.ResourcesGenBundle']}"/>
    <c:set var="ZspBusinessRulesAttrBundle"
    value="#{adfBundle['oracle.apps.spe.businessRules.resource.ZspBusinessRulesAttrBundle']}"/>
    <c:set var="ZspBusinessRulesGenBundle"
    value="#{adfBundle['oracle.apps.spe.businessRules.resource.ZspBusinessRulesGenBundle']}"/>
    <af:pageTemplate viewId="/oracle/apps/fnd/applcore/templates/UIShellMainArea.jspx"
    id="pt1">
    <f:facet name="localArea">
    <af:panelHeader text="#{pageFlowScope.ManageRuleFolder.title}" id="ph1">
    <f:facet name="menuBar">
    <af:panelFormLayout id="pfl2">
    <af:toolbar id="t2" stretchId="s2" flex="1"
    inlineStyle="background-color:transparent;">
    <af:spacer width="2" height="2" id="s2" clientComponent="true"/>
    <af:commandButton text="#{ResourcesGenBundle['Action.OK']}"
    id="cb1" action="OK"/>
    <af:commandButton text="#{ResourcesGenBundle['Action.Cancel']}"
    id="cb2" action="CANCEL"
    immediate="true"/>
    </af:toolbar>
    </af:panelFormLayout>
    </f:facet>
    <af:panelGroupLayout layout="scroll" id="pgl1">
    <af:panelFormLayout id="pfl-d">
    <af:selectOneRadio id="sor1"
    label="#{ZspBusinessRulesAttrBundle['ColAttr.FolderType.RuleFolderType.RuleFolderEO.RuleTypeName']}"
    value="#{pageFlowScope.ManageRuleFolder.ruleTypeName}"
    autoSubmit="true" required="true"
    disabled="#{pageFlowScope.ManageRuleFolder.ruleFolderId != null}">
    <af:selectItem label="#{ZspBusinessRulesGenBundle['OLabel.Prediction.PredictionRuleType']}"
    value="#{pageFlowScope.ManageRuleFolder.recommendationRuleType}"
    id="si1"/>
    <af:selectItem label="#{ZspBusinessRulesGenBundle['OLabel.Eligibility.EligibilityRuleType']}"
    value="#{pageFlowScope.ManageRuleFolder.eligibilityRuleType}"
    id="si3"/>
    </af:selectOneRadio>
    <af:spacer width="10" height="10" id="s5"/>
    <af:inputText id="id2" columns="50" maximumLength="#{pageFlowScope.ManageRuleFolder.maxNameLength}"
    label="#{ZspBusinessRulesAttrBundle['ColAttr.FolderName.NameofRuleFolder.RuleFolderEO.RuleFolderName']}"
    value="#{pageFlowScope.ManageRuleFolder.name}"
    autoSubmit="true" required="true">
    <af:validateLength maximum="#{pageFlowScope.ManageRuleFolder.maxNameLength}" minimum="1"/>
    </af:inputText>
    <af:spacer width="10" height="10" id="s55"/>
    <af:inputText id="id3" columns="50" maximumLength="#{pageFlowScope.ManageRuleFolder.maxDescriptionLength}" rows="5"
    wrap="soft"
    label="#{ZspBusinessRulesAttrBundle['ColAttr.Description.RuleFolderDescription.RuleFolderEO.Description']}"
    value="#{pageFlowScope.ManageRuleFolder.description}"
    autoSubmit="true" required="true">
    <af:validateLength maximum="#{pageFlowScope.ManageRuleFolder.maxDescriptionLength}" minimum="1"/>
    </af:inputText>
    <af:spacer width="10" height="10" id="s4"/>
    <af:inputDate label="#{ZspBusinessRulesAttrBundle['ColAttr.StartDate.RuleFolderEffectiveStartDate.RuleFolderEO.EffectiveStartDate']}"
    id="id1"
    value="#{pageFlowScope.ManageRuleFolder.effectiveStartDate}"
    autoSubmit="true" required="false">
    <af:convertDateTime pattern="#{applCorePrefs.dateFormatPattern}"/>
    </af:inputDate>
    <af:spacer width="10" height="10" id="s6"/>
    <af:inputDate label="#{ZspBusinessRulesAttrBundle['ColAttr.EndDate.RuleFolderEffectiveEndDate.RuleFolderEO.EffectiveEndDate']}"
    id="id4"
    value="#{pageFlowScope.ManageRuleFolder.effectiveEndDate}"
    autoSubmit="true" required="false">
    <af:convertDateTime pattern="#{applCorePrefs.dateFormatPattern}"/>
    </af:inputDate>
    <af:spacer width="10" height="10" id="s8"/>
    <af:selectBooleanCheckbox text="#{ZspBusinessRulesAttrBundle['ColAttr.Active.IndicatorofActiveRuleFolder.RuleFolderEO.ActiveFlag']}"
    selected="#{pageFlowScope.ManageRuleFolder.activeFlag}"
    label="#{null}" id="sbc1" autoSubmit="true"/>
    </af:panelFormLayout>
    </af:panelGroupLayout>
    </af:panelHeader>
    </f:facet>
    </af:pageTemplate>
    </jsp:root>

  • UI Shell :Uncommitted data warning on closing tab

    H experts,
    My JDeveloper version is 11.1.2.1.0.
    I am using UI Shell template in my application. How can i show uncommitted data warning on closing a tab using the close icon (which come with the tab by default) on the top right side.
    Help me to solve this problem by sending valuable comments, links, advises...
    Thanks in advance
    gtg.

    As per http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22adf-1518265.html , in 11.1.2.1) or later ->
    Access the tab transaction state. Tabs can be marked as having their content changed, in which case they are referred to as dirty.
    A warning dialog box will appear if users or the application try to close these tabs. A tab’s dirty state can be checked and manipulated with the TabContext API.Looks like this is available out of the box.

  • How to customize the Uncommitted data warning popup message

    Hi,
    As per this link https://cn.forums.oracle.com/forums/thread.jspa?threadID=2381421 we can customize the session time out warning message by adding the below lines of code.
    +<af:document id="d1">+
    +<af:resource type="javascript">+
    function myload(evt)
    +{+
    AdfDhtmlLookAndFeel._TRANSLATIONS['af_document.POST_SESSION_TIMEOUT_MSG']='Time is over...';
    +}+
    +</af:resource>+
    +<af:clientListener method="myload" type="load"/>+
    +...+
    +</af:document>+
    For modifying the uncommitted data warning message which resource string is required instead of 'af_document.POST_SESSION_TIMEOUT_MSG'
    Thanks,
    -Gaurav

    Hi,
    see the red message in http://docs.oracle.com/cd/E28389_01/apirefs.1111/e12046/oracle/adfinternal/view/js/laf/dhtml/rich/AdfDhtmlLookAndFeel.html ? AdfDhtmlLookAndFeel is an internal implementation class that should not be used in custom code.
    Frank

  • Uncommitted data warning behavior

    Hie
    I tried to turn on show uncommitted data warning in an adf app developed in latest version of jdev 11g. What I am noticing is it is firing in case i close the browser. But it does not fire if i close the tab of dynamic shell ui.
    the browser used is IE
    Please advise if this is the expected behavior or some possible issue?

    Hi,
    I am alos facing the same issue . But i have another issue and doubt which i wanted to ask you hoping you would give me a proper solution . scenario goes like this ... I have my application in which i have 2 tabs opened . kept the application idle for 20 min , after that when i try navigating across the tabs , the data in the tab is found lost . For the app module , i have kept the idle instance time out as 600s . Can you please tel me as to how to prevent this losing of data in keeping the app idle for long time whererin time = n ..
    Thanks ,
    Vini

  • Dynamic regions issue data transmission was interrupted

    Hi. I'm using JDev 11.2.2 and ADF full stack.
    Issue is when I'm trying to refresh a dynamic region to load a new task flow. Let me give a test case step by step:
    1.- Using HR, build model: Create objects(Entities, View Objects) for tables Employees and Departments and an Application Module.
    2.-In VC, add a facelets page with two columns layout, first for a tree for switching regions and a dynamic region in the second column.
    3.- Create a page fragment which includes a table generated from employees view in data controls and another page fragment for departments view.
    4.- Create two bounded task flows, one for employees fragment and another for departments fragment.
    5.- Drag and drop a bounded task flow to create a dynamic region in the second column of main page. Make sure selecting backingBean scope for new bean (default is Request scope).
    6.- In model, create a static list populated View Object with two attributes: one for task flow id and one for description
    7.- In VC, generate a Tree in the first column of main page
    8.- Write a selection listener for tree component to read the current task flow id and set that value to dynamic region task flow id in appropriate bean.
    9.- Set partials triggers in dynamic region in the main page to listen to tree events.
    10.- Run and try to load a new task flow by clicking in the tree. An alert is fired with this message:
    *"The content of this page failed to load as expected because data transmission was interrupted. Please try again, or contact your system administrator."*
    And, in the log appears following lines:
    *<FaceletViewHandlingStrategy> <handleRenderException> Error Rendering View[index.jsf]*
    java.lang.IllegalStateException: Could not find component to stream
         at oracle.adfinternal.view.faces.streaming.StreamingDataManager.submit(StreamingDataManager.java:378)
         at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer._encodeStreamingResponse(DocumentRenderer.java:3666)
         at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1474)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl._processRender(PartialViewContextImpl.java:321)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:152)
         at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:974)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1674)
         at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
         at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
         at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
         at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1032)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:339)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:237)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
         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.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         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:139)
         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:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    If the taskflow id of taskflow which didn't work is established in dynamic region bean as initial taskflow for the region, it works, but the other taskflow fails.....
    Any suggestions?
    DEMR

    Thank you. That solves the issue. Maybe a mistake in docs:
    [http://docs.oracle.com/cd/E35521_01/web.111230/e16182/taskflows_regions.htm#CHDJHACA]
    It says:
    To create an ADF dynamic region:
    In the Application Navigator, select and open the JSF page where you want to create the ADF dynamic region.
    Drag and drop the first bounded task flow onto the JSF page.
    From the context menu that JDeveloper displays, choose Create > Dynamic Region.
    Choose the appropriate option in the Choose Managed Bean for Dynamic Region dialog that JDeveloper displays:
    If you want an existing managed bean to store the bounded task flow's ID, select an existing managed bean from the Managed Bean dropdown list.
    The managed bean passes the value of the bounded task flow's ID into the task flow binding of the ADF dynamic region. Make sure that the managed bean you select is not used by another ADF dynamic region.
    If no managed bean exists for the page, click the Add icon next to the Managed Bean dropdown list to create a new one. Enter values in the dialog that appears as follows:
    Bean Name: Enter a name for the new managed bean. For example, enter DynamicRegionBean.
    Class Name: Enter the name of the new managed bean class.
    Package: Enter the name of the package that is to contain the managed bean or browse to locate it.
    Extends: Enter the name of the Java class that the managed bean extends. The default value is java.lang.Object.
    Scope: This field is read-only and its value is set to backingBean. For more information about the memory scope for managed beans, see Section 18.2.4, "What You May Need to Know About Memory Scope for Task Flows."
    Click OK to close the dialogs where you configure the managed bean.
    Regards,
    DEMR

  • Prevent navigation on uncommitted data

    hi
    Please consider the example application created using JDeveloper 11.1.2.3.0
    at http://www.consideringred.com/files/oracle/2013/UncommittedDataReviewApp-v0.01.zip
    It contains a page which has an af:document with uncommittedDataWarning="on" [1], and next to a regular af:commandLink also an af:commandLink with immediate="true" combined with an af:checkUncommittedDataBehavior component [2].
    It allows to get warnings like
    "This page contains uncommitted data.
    Would you like to perform navigation?
    Pres OK to continue, or Cancel to abort navigation."
    which allow you to choose if you want to continue the navigation or not.
    See also the screencast at http://screencast.com/t/IBujeLmKE
    question :
    - (q1) What would be the preferred (and future proof) way to prevent navigation on uncommitted data (instead of just a warning)?
    - [1] see http://docs.oracle.com/cd/E35521_01/apirefs.111230/e17491/tagdoc/af_document.html
    - [2] see http://docs.oracle.com/cd/E35521_01/apirefs.111230/e17491/tagdoc/af_checkUncommittedDataBehavior.html
    many thanks
    Jan Vervecken

    Thanks for your reply Frank.
    Frank Nimphius wrote:
    ... So if this works as with how you change the ADFc exception handler, then its by a file with this name in the application META-INF/service folder (the latter doesn't exist by default). ...The documentation section "22.5.3 How to Designate Custom Code as an Exception Handler "
    at http://docs.oracle.com/cd/E35521_01/web.111230/e16182/taskflows_complex.htm#ADFFD22602
    says directory path "application_root\.adf\META-INF\services".
    ... However, the default abstract class is DirtyPageHandler and this is in a public package. ...Sure, but (without documentation) it does not seem trivial to extend it and implement a custom implementation.
    Reviewing some parts of the ADF framework source code suggest this API has some obscure aspects.
    A DirtyPageContext seems to be passed between AdfcDirtyPageHandler and ControlFlowEngine via a request attribute.
    adf_111230_6276_source.zip!\oracle\adfinternal\controller\application\AdfcDirtyPageHandler.java
       public void trackNavigation(DirtyPageHandler.DirtyPageContext dirtyContext)
          if (dirtyContext != null)
             // Store DirtyPageContext on the request for future use
             Map<String, Object> requestMap = JsfInterface.getInstance().getRequestMap();
             requestMap.put(StateParams.DIRTY_PAGE_CONTEXT_KEY, dirtyContext);
       }So, is ControlFlowEngine (also in an "adfinternal" package) intended to be extended/overridden/replaced/customized somehow, or does a custom DirtyPageHandler also have to use this StateParams.DIRTY_PAGE_CONTEXT_KEY request attribute technique?
    adf_111230_6276_source.zip!\oracle\adfinternal\controller\engine\ControlFlowEngine.java
       private boolean cancelNavigationCheck(AdfcContext adfcContext, ActivityId currentActivityId,
                                             ActivityId nextActivityId, Activity activity, String fromAction,
                                             String outcome)
          Object value = requestMap.get(StateParams.DIRTY_PAGE_CONTEXT_KEY);
          DirtyPageHandler.DirtyPageContext dirtyHandler = null;
          if (value instanceof DirtyPageHandler.DirtyPageContext)
             dirtyHandler = (DirtyPageHandler.DirtyPageContext)value;
          else
             return false;
       }Also a framework "adfinternal" RichPhaseListener has a rather explicit dependency on the DirtyPageContextImpl class because it is calling static methods on this implementation class.
    adf_111230_6276_source.zip!\oracle\adfinternal\view\faces\context\RichPhaseListener.java
      public void beforePhase(PhaseEvent event)
        if (phaseId == PhaseId.APPLY_REQUEST_VALUES)
          // Check we we received response from the navigation confirmation dialog
          if (!DirtyPageContextImpl.checkConfirmNavigationResponse())
        else if (phaseId == PhaseId.INVOKE_APPLICATION)
          // Inform DirtyPageHandler that it needs to track navigation (if enabled)
          DirtyPageContextImpl.initDirtyPageContext();
      }This suggests that no alternative implementation for DirtyPageContextImpl is possible.
    But it seems to be the DirtyPageContextImpl class that is responsible for (part of) the "ui interaction", which seems to be what should change to prevent navigation on uncommitted data.
    adf_111230_6276_source.zip!\oracle\adfinternal\view\faces\context\DirtyPageContextImpl.java
      public void confirmNavigation(String confirmationToken)
        script.append("AdfPage.PAGE.confirmNavigation(\"");
          service.addScript(context, script.toString());
      static boolean checkConfirmNavigationResponse()
        String param = external.getRequestParameterMap().get(_CONFIRMATION_RESPONSE_PARAM);
      }So, a rather obscure API.
    ... Maybe worth filing an ER to get a public listener / hook into this instead of dealing with your own implementation. Will file one ...
    ... ER 16663793 ...Sounds like a good idea.
    On My Oracle Support I have been able to find enhancement request 16663793, "PROVIDE HOOK INTO DIRTY PAGE WARNING FOR CUSTOMERS TO HANDLE W. CUSTOM DIALOG" (after requesting it to be published in service request 3-7073188791).
    But, for the current version my question (q1) remains:
    - (q1) What would be the preferred (and future proof) way to prevent navigation on uncommitted data (instead of just a warning)?
    many thanks
    Jan Vervecken

  • QBE on uncommitted data in af:table

    Hi,
    I am using Jdev v11.1.1.7.0.
    I have an af:table in which I can insert, delete or save data.
    I also have QBE enabled on this table.
    If I add some rows and save the data before doing some query using QBE it works fine. But if add some rows and without clicking save I do QBE then it behaves erratically i.e. search results get lost when I remove the query criteria.
    But if try to add a row with same primary key (which a lost row had), it gives me error. So it means that row is still there.
    Does anyone has any idea about this? I can explain in more detail if you want. Is this adf default behavior i.e. it doesn't support qbe on uncommitted data?

    Hi,
    as an Oracle employee you can use the internal JDeveloper mailing list and internal forums (especially when you work with internal builds of JDeveloper)
    To answer your question (assuming the VO to query is based on an EO), set the query mode of the VO to also look into the entity cache. If the QBE is based on a custom ViewCriteria, then you can set this on the View Criteria (see the second tab in teh View Criteria editor). If you use the "all queryable attributes" default view criteria, use the following Java code to set the VO query mode
    vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS | ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES);
    Frank

  • How can I disable meta data sending warning? I want to accept every meta data without asking.

    How can I disable meta data sending warning? I want to accept every meta data without asking.

    Do you mean the message about resending POST data if you use the Back button to go to a previously visited page?
    You can't suppress that message.

  • What does this TJ data mean?

    Hello,
    I am implementing a PDF parser in Objective-C  (using CoreGraphics API's) that will aid in PDF search. I know that the Tj and TJ operators are used for displaying text, and that to retrieve the text information from a page I should be looking there.
    The problem comes in when there are weird operands in the TJ operator. Below is one such example:
    [<1C>]TJ
    0.7039 0 Td
    [<1D>]TJ
    What does the above highlighted red text data mean, in terms of the semantic information that it contains? During parsing, the output of the above 2 operands are the characters ˝ and ˛ respectively. Am I going to have to use the font encoding provided in the Resources dictionary of the page to decipher what these characters semantically mean?
    Thanks a lot,
    Michael

    I assume you have a copy of ISO 32000-1:2008 available, so that you are reading what is written there first before asking.
    The answer is that NOT ONLY do you need to read the font encoding information for ANY TEXT EXTRACTION, but you ALSO need to read the information from any embedded fonts for the embedded encoding information.  This is especially true for TrueType fonts vs. Type 1 fonts, and CID-based fonts.
    And don't forget ToUnicode tables!
    There is a section in ISO 32000-1 that describes the entire process of text extraction.

  • Flex 4, is it possible to populate a tree component with sqlite table data?

    is it possible to populate a tree component with sqlite table data?
    If it is, how would I go about doing this?
    Thanks
    Kristin

    Hi Mustafa,
    it is true, the function can return component as type. This is more for the scenario, when you want to recognize some component based on some checks, eg.
    if(something)
    return CHECKBOX_1;
    else
    return CHECKBOX_2;
    so, the use case exists for sure. But of course the application itself is static.
    where do you see a scenario for dynamic creation of components?
    The only one component which can instantiate new components is the SplitCellContainer, and this is restricted to the drag&drop action from Fragment Bookmark Gallery. And this is again restricted to containers, as Fragment can hold containers as parent component. Of course the container content will be created/instantiated as well (I have coded example with ComponentManager in the Community SDK: Second Functional Application with SDK Components (Online Composition v.2) blog).
    As far I know there is no function in SplitCellContainer which would "simulate" the drop of a Fragment today (perhaps worth an Idea on this?). Having that - the scenario would be possible. Today, this can be made partly - but the user would need to drag&drop a prepared fragment with the component.
    Anyway, the problems will start after the creation - then it would be require to have also functions to re-position the new created component in some other container - this would be complex probably.
    Karol

  • Including uncommited data in extents from current transaction

    Is there a way to tell KODO to include uncommitted data in it's extent query
    results from the current transactions.
    i.e.
    Start Transaction
    find persistent object 1
    if not found run generic add persistent object 1 function
    find persistent object 1
    Make further changes to persistent object
    End Transaction

    Graham-
    Yes: set IgnoreCache to false. Queries and Extents will when pick up and
    new/modified instances in the cache.
    See the caveats in the docs, and control the performance with the
    FlushBeforeQueries configuration parameter.
    In article <bmmff7$mrr$[email protected]>, Graham Cruickshanks wrote:
    Is there a way to tell KODO to include uncommitted data in it's extent query
    results from the current transactions.
    i.e.
    Start Transaction
    find persistent object 1
    if not found run generic add persistent object 1 function
    find persistent object 1
    Make further changes to persistent object
    End Transaction
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

Maybe you are looking for