Apex 5: dynamic action to set item and submit page - item unchanged - oracle

I want to set an item value with a dynamic action located on a button.
After displaying a dialog page in the "DialogClose"-Action I do a "SetValue" and "SubmitPage" in the True-branch of the action.
Problem is: the item is set but not submitted. Reloading displays the original value.
Have tried the solution showed here, but it didn't solve it for me: Apex 5 : Dynamic action set page item value
Next I was suspecting that the problem is that the region is being set to "read only" on page load. But I tried with the region not being set to read only - problem stayed the same.
Update: double checked on the "read only"-region: it does make a difference. Unsetting "read only" made id work. Seems I was a bit confused while testing ...
Here's how the dynamic action looks like:
The set-value part looks like this:
And here's the submit action:
Any ideas? Thanks!

My first guess is that your item P11_GUT_LIZ has a "Source" attribute with setting "used" at "Always, replacing any existing value in session state"
If this is not the case, I suggest you add an "After submit" process for debugging in the processing tab, showing you the value after page submit:
raise_application_error (-20001,'The value of P11_GUT_LIZ is: '||: P11_GUT_LIZ);

As written in the update to the question, problem was that the region was read-only. So the idea of setting a value and submitting it was probably flawed from the beginning. But the region has to stay read-only.
So my solution to circumvent this was to set that value inside of an automomous transaction by calling a pl/sql procedure.
Thanks for all the valueable input!

Related

Display Warning popup while entering a new page after the new page is rendered in oracle adf

I have a requirement to show a warning popup while navigating from a page to another page . The warning popup should be displayed when the second page is rendered based on the value of a binding(whether the binding has any value (rendered=true)
or is null(rendered=false)).How can i implement it such a way that the popup would be displayed when the second page is rendered itself?
Assuming few things:
1) By page you mean fragment.
2) You are on JDev 12c +.
This is something you may refer to:
execute code on fragment load
This tells you how to register a ControllerClass for your fragment page definition, and get hold of your phase Id.
You may also directly work with regionContext.getRefreshFlag().
However, please note that this code will fire for every request you make from that fragment. So once you close the warning popup, you should set a page-flow parameter which would prevent the popup from opening further.
For 11g releases, this functionality can be achieved by using the invokeAction binding to call a managed bean method, and setting the refresh condition as prepareRender.
Just add a showPopupBehaviour in the Form and make the TrigerType="load"
follow the follow this link : http://prabhat-java.blogspot.ae/2015/10/displaying-popup-on-page-load.html

If statement in QF-test

I am learning QF-test and want to do a simple if statement. If I make a change on this one page it enabled an "Apply" button that I want to click if it becomes enabled.
When I check if the button is enabled this is what appears
Check boolean: enabled (true) [buttonApply=>($client)]
So I want to say something like
if 'buttonApply.enabled'=="true"
Mouse Click [buttonApply=>($client)]
but that doesn't seem to work
Well I emailed QF-test support and got this answer
Set the variable in the field 'Variable for Result'. Let's say 'CompPresence'
When you run the script , the variable 'CompPresence' will be filled with the value 'true' if the button "Apply" is enabled.
You can use the If loop like If '$(CompPresence)'==”true”

Loading default XSLTForms subform on body onload event

I'm trying to use subforms and I had a problem: I saw the example provided in the oficcial XSLTForms but in that case the elements that load/unload the forms are always in the "main form" and, in my case, I need them to desappear, because I'm trying to build something like a wizard, So the first subform must desappear when the user press "Next" and then subform2 is loaded, and so on. This presents two problems:
1) If I include the first subform elements in the "main page", when I press the trigger the elements of subform1 are never unloaded. The other subforms do it, but that initial one is treated as part of the structure that never changes... And I really need to desappear. SO I think I have to put all the content of subform1 outside, in a separate xml and load it in the same way as the other subforms, but there is another problem:
2) I need it be loaded by default, and I tryed to put a load element directly in the main form body, but it didn't work.
I "patched it" temporally with a trigger in the main form, which loads the firms subform, but it is so... ugly, and I still have the same problem: I can navigate through subforms but that initial trigger never dissapears... So, any idea will be welcome! Thanks in advance!
<xf:model xmlns="" >
<xf:action ev:event="xforms-ready">
<xf:load show="embed" targetid="subform" resource="FirstSubform.xml"/>
</xf:action>
</xf:model>

Wicket replacing panel with ajax fails with MarkupNotFoundException

the page markup has
<div wicket:id="stepPanel" />
tag in it and when the page is first loaded it works great that is
add(new MyFirstPanel("stepPanel"));
works fine. But then when I trigger an Ajax event and request redrawing
addOrReplace(new MySecondPanel("stepPanel"));
target.add(MyPage.this);
i get the following error
Last cause: Failed to find markup file associated. MyFirstPanel: [MyFirstPanel [Component id = stepPanel]]
please note that it tries to find the wrong markup (should look for markup for MySecondPanel) and it fails regardless it succedded to do so before!
I instantiate panels using reflection, but could it be a problem here? No exceptions thrown.
Anwser:
Actually it was something else - I have noticed that one of my AjaxSubmitLinks had reference to a form that was no longer placed in a markup... so whatever you do just remember not to leave that reference.
You are adding MyPage after replacing the Panel causing MyPage to re-render.
There is a good example on how to replace panels here.
Yes you can call panels via reflection. I don't clearly know what you are trying to do with event here but if you want you can attach your panel with AjaxSelfUpdatingTimerBehavior and define the duration which will update this component in the given time period.
Hope its useful.

HTML.SelectListFor selectedValue never gets set

I have the following partial view which renders a drop down list:
#model MartinDog.Core.Models.Section
#{
#Html.DropDownListFor(x=>x.Name
, new SelectList(Model.Dock.DockTemplate.Columns,
"Id", "FriendlyName",
Model.DockTemplateColumn.Id.ToString())
, new { #id = "ddlb_dockTemplateColumns" +
Model.Id.ToString()})
}
I render it on my page like so:
#{Html.RenderPartial("_Admin_Page_DockTemplateColumnDropDown", Model);}
The partial view is rendered once for every Section object. A Section object one I've created and is editable in a jquery dialog box (change the name, display order, dock template column, etc.)
On the test page I am using, this Section dialog box is rendered four times (as there are four of them in my parent object).
The problem:
*The SelectedValue in the SelectList for the drop down never gets set* - that is to say, the correct item in the drop down list is never selected when the dialog is displayed and I can't quite work out why.
I thought it might be because the drop down is rendered four times, so I tried rendering it for just one of the 'Sections' but still the same problem.
Anyone know what I can do?
***edit
Not sure if I'm doing it in a sucky way. I had thought of building the dialog just once with jquery and json but I'd prefer to do it this way as it just feels cleaner.
I do this:
In controller action (Edit for example):
ViewData["ProvinceID"] = new SelectList(dc.Provinces.OrderBy(p => p.NameAr), "ID", "NameAr", factory.ProvinceID);
and Markup:
<%: Html.DropDownList("ProvinceID") %>
See? so it is a list of factories and it has a Province field and what I want you to notice is the 4th parameter in the SelectList constructor, I passed factory.ProvinceID so the DropDownList knows which option to be set on. Otherwise the DropDownList will show the default value (the first one).
P.S: It is your job to change to Razor syntax; I don't use it.
Hope that helps.
Doh... fixed - totally my own fault.
I had set up my html.dropdownlistfor like so
#Html.DropDownListFor(x=>x.Name,
When it should've been like so:
#Html.DropDownListFor(x=>x.DockTemplateColumn.Id,
Setting the first argument to x=>x.DockTemplateColumn.Id (which uniquely identifies the items in my list) instead of x.Name fixed the issue straight away.
Just thought I'd post it here in case someone else makes the same mistake I did.
edit
Found the answer here:
C# mvc 3 using selectlist with selected value in view

Resources