InputSelect, InputSelectGroup datatags not working - JDeveloper and ADF

- I'm developing a JSP application using the datatags, etc.
- I've created a ViewObject ClientView.
- I've created an update page ClientView_Edit.jsp and
ClientView_EditSubmit.jsp.
I've implemented datatags(InputSelect and InputSelectGroup) on
two fields. I created the individual datasources for the LOVs on
these two fields.
My problem is that when I modify the values of the respective
fields in the update form using the drop-down and radio group,
press submit, I get a success message that the information was
posted and comitted. However, when I go back to the update form,
the values have not changed.
The text entry fields work fine.
The only thing I have done to the underlying Entity object is
that I implemented the HOWTO that describes pre-populating the
primary key which is based on an oracle sequence.
TIA.

Related

Default database values on create

Hi,
I've a table with two columns having default values that are created by the database, one is assigned to a sequence(DBSequence) and the other defaults to SYSDATE - both generated by the DB when a new record is created.
Everything works and their values are correctly generated when I set them to non-mandatory in the EO when saving the new record.
However I've now run out of ideas to get these values displayed on the screen when a new record is created so i'm posting for help.
My page is fairly standard stuff and based on a normal ADF Create Form doing the invokeCreate executable - I've also tried changes to the order and refresh properties of both the Iterator and the invoke: still nothing !!! 
Do use editable table for displaying data rather than normal form??? if yes, use CreateInsert invoke rather than Create.
please update us if u need any other helps.
Best Regards 
create, shows a blank form - but oddly the table does not contain any rows - only after clicking the Submit button the table contains the row - but both the ID and Date's are blank in both the form and the table.
createInsert shows a blank form and a table with one blank row - still no default values for either ID and Date.
There's a few oddities to the project; maybe they've got something to do with the issue: when OC4J starts it reports:
1)WARNING: JSF1033: Resource injection is DISABLED.
2)Also during running it I get the following messages:
m.evermind.server.http.HttpMessages warningHeaderModificationIsRejected
WARNING: Header modification request was rejected. Because the setter method was called from included servlet. It is restricted by SRV.8.3 of Servlet Specification 2.4. : current-workspace-app
3) The BC4J Oracle Domains package I've added manually - to get acces to DBSequence as it was not available in the dropdown list for EO attributes; in most posts it would seem to me that it should be a default option in the list - mine reads: oracle.jbo.domain.DBSequence so not sure if this is ok. 
Some news ...
At first I've download the smaller package (one without the jdk as I already had it) - this would seem to be very different from the full download (one with the jdk) - after installing the full version I've now got correct access to the DBSequence and friends - the entire system tree works much better as a whole now in general.
I've come to realize that the defaults will only be assigned after the actual database insert at the time the blank create form is shown there doesn't really exist a record yet.
Regards

Changing OIM Lookup Query Based On Dropdown Menu Selection

I would like to know if it is possible to dynamically change a lookup query or dropdown values based on the selection of another dropdown in an OIM form.
I have the following case:
In the OIM Create User screen, I have a dropdown menu for Department and another for Position. Based on the selection of Department, I would like to narrow down the values in the Position dropdown menu to only include positions from that department.
Is this possible in OIM?
Thanks. 
As such I don't think we have a framework for doing this but you will have to implement it on your own. You can define two fields and based on the selection value in the first one you will have to handle it in the action class and set the second field's values. Had we been using AJAX this would have been real easy and pleasing as well as efficient UI 
Where in OIM do you go to define the fields to have this behavior? And where can I go edit the action class? 
You can create lookup definitions in OIM Design console under Xellerate Administration. Then that lookup definition you can use in one of the forms you create. You can create forms using Form Designer present under development tools menu. But this form you need to attach with either process or resource to use it. 
I already know how to populate lookups and apply them to fields on a form. I am looking for more advance information. Specifically, how to change lookup values of a drop-down dynamically based on a choice selection of another field on the Create User page. I would like to do this without refreshing the page if possible.
Can I create my own event handler for this? If so, what methods do I need? Is it any useful to play around and make changes to the JSPs? Is it possible to use AJAX? 
You will have to use actual lookups, and not datalists or combo boxes.
If you have multiple lookups on the same process, you can save your query, then using the drop downs available for source/field/value or something like that ,you can say where lkv_encoded = '$Form Name.Field Name' or something like that to only return values where the encoded is equal to the value above. The only issue is if you went from a parent table, to a child table, you would have no way to reference the previous lookup.
Hope that helps, couldn't think of a real good example.
-Kevin

How to show disabled items in LOV?

Hello,
We are designing our application using Jdev 11.1.1.6. We are planning to use model driven LOVs. All lookup based static list will be exposed on Shared Application Module (Application Scope).
This is how we are planning to show our page navigation after user opens a page from it's menu:
CanvasPage will appear with data displayed as Read-Only in Tabular form. LOV attributes also displayed read-only
EditPage will appear when user wants to add or edit data with many attributes having LOVs.
Use Case:
1. CanvasPage has record(s) where attrubute contains a lookup value that stands disabled [enabled_ind=N in lookup table] today but was enabled in past when saved on this record.
2. Need to show the description of all lookup values [all enabled and disabled]
3. User tries to modify this record and LOV should display only enabled list of values on EditPage or disabled values should be non-selectable.
My question is:
How to implement this behavior where lookup lov query need to display description for all lookup values on CanvasPage but still somehow filters/disables the disabled values on EditPage.
Remember this lookup VO is exposed on application scope shared application module so the WHERE CLAUSE cannot change at runtime.
I see that non-selectable solution has been proposed here
and here
What I am not sure about above solutions is if it is an efficient solution for pages showing 30-40 LOV attributes on page. Both of these solution talks about implementing using tree binding and then iterating through each item to disable based on condition.
Performance is going to be key measure to implement any solution to achieve above behavior.
Is there any other idea/implementation that I can pursue to achieve above-mentioned behavior?
Thanks,
Jai 
I am surprised that nobody has responded to this.
The use case is simple and I thought it is very common for LOVs.
Let me put the use case in simple words again:
1. PageOne has attributeXYZ which is a lookup based LOV (selectOneChoice) that has 2 items (Item_A and Item_B, coming from lookup table with enabled_ind=Y).
2. User saves the record with Item_A.
3. User goes to lookup setup and disables Item_A (sets enabled_ind=N)
4. Opens PageOne again and now attributeXYZ doesn't show the description (since lookup query is selecting enabled_ind=Y and Item_A has been disabled)
Question: How to show this Item_A description in View mode but still restrict user to select Item_A during Add or Edit mode.
Again Jdev version is 11.1.1.6 and any help/pointer is much appreciated.
Thanks,
Jai 
You can use SelectItem's setDisabled(true) property to do this.
These may help you - http://www.oracle.com/technetwork/developer-tools/adf/learnmore/102-disable-selectmany-chckbx-1672609.pdf
http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_selectOneChoice.html 
Hello,
Thanks for your response.
I should have clarified this little in detail that I am not particularly looking to disable the values in SelectOneChoice but best practice to implement the use case mentioned in my earlier posts.
I mentioned 2 solutions in my original post that explains how to make items in SelectOneChoice non-selectable here
and here
But what I am not sure is if given solution of using tree binding and then iterating through each item to disable based on condition is an efficient solution from performance point of view when page has many (20-30) LOV attributes.
That's why I presented in simple usecase where LOV should display description of items that are invalid (enabled_ind=N) for input today but were valid (enabled_ind=Y) when they were saved.
How's everyone handling this usecase or Is this unique to our project only?
Thanks,
Jai

Need help Synchronizing  master-detail in datacontrol

I have a master-detail in a datacontol (VOs). The master has an autogenerated primary key.
I want to display details on a second page (this is an adf page flow set up as a train) I have an EJB that is executed on insert that generates several records based on data in the first (master page).
I set the view object to refresh after insert - but this generated and error - as a trigger is used to generate the key - and the error says since the database has generated the key - the view cannot be refreshed.
So attempt 2 - return the key value from the EJB and set the attribute in the datacontrol (since I am setting on the current row for the insert) - error - cannot set the value for ID. Apparently it knows this is a key value.
So attempt 3 - create a parameter in the second query (read only VO) and invoke "ExecuteWithParams - still no data found.
Has anyone had a chance to do this before? Am I making a mistake using master-detail? 
Hi there:
I did a lot of this kind before. The life using ADF11g is much easier compared with the one using ADF10g. In ADF10g time if you didn't do something in the model layer, pretty much you have to remove all the view links, views and go back to make entity associations and do the views and view links again.
Since you are using Train Bounded Task Flow, you are using ADF11g.
Please do the following:
1) Go back to your Model layer Entities, make sure your Master/Detail Entities have associations by the primary key/foreign key field;
2) Very preferrably, the Master primary key field is a DBSequence instead of Number; By DBSequence, ADF knows this field has a database/system generated key value, and when you make Master/Detail association a 'Composite', ADF will populate the master primary key field and the detail foreign key field with the sequence number that the backend trigger generated. If it's only Number type, ADF won't do this kind of value population and synchronization for you! Association may not necessarily be 'Composite' type any more in ADF11g.
This way it is trouble free and no need to code anything 'cause ADF takes care of things at its convenience and yours. Otherwise even a lot of coding may not do the work since the newly generated record has not been commited yet and a lot of synchronization work out there and heavy problem prone.
If this is the 'Correct' answer, please feel free to mark it as 'Correct'. Or mark it as 'Helpful' if it helps you.
Thanks,
Alex 
Still not working - I am using MySql rather than Oracle - so this has some unforeseeable consequences.
I have a solution that I can use - this will not need the query - but it would be nice to use - the same query works fine if the master is already present.
This indicates that the primary key is not being retrieved from the DB after insert so synchronization may not be possible.
I retrieve the value programatically.
I had used ExecuteWithParams and put a button on the screen just to test - it still does not execute properly. I even hard coded the ID - no results displayed.
So for the time being - I will use an EJB to show the total only.
Eventually - maybe an EJB to display the results (I have a session bean that holds the key value so it is accessible) 
Hi:
In your case, since you're using MySQL, things are different. You might want to think about the following:
1) Go to parent region page definition file, add an 'Action' commit which is associated with your Applicaiton Module; Same place here, you should add an 'Iterator' which is your Detail table's iterator and its 'createInsert' action; Remember the id of this 'createInsert' in your page definition file, I will assume it is 'createInsert1';
2) On your parent region page, instead of using the built-in Train Task Flow 'Next->' '<-Back' button, drag and drop your own command button (commandButton);
3) Define your own commandButton's ActionListener in a backing bean class;
4) In your parent region page task-flow.xml, make sure you add a 'Flow Control Case' between your master View and Detail view. The outcome should be the 'Action' of commandButton;
5) Go to your backing bean class and go into commandButton's ActionListener, add some code (here for illustration purpose only) like:
a. OperationBinding commitOperation = GetOperationBinding("Commit");
b. commitOperation.execute()
This will save the Master record in your MySQL table;
c. OperationBinding insertOperation = GetOperationBinding("createInsert1"); // createInsert1 is the insert operation on your detail table
d. insertOperation.execute();
6) Here you should be good to go. Because in step 5), your Master record is in database and you create a new empty record and when you go into the Detail page, the empty record is there waiting for you to modify;
Hope this works out for you.
Thanks and good luck,
Alex

readonly LOV without entity

Hi,
We would like to use a LOV in an ADF Form (inside a taskflow).
The adf form is not entity linked, because it is a form to capture some data and directly send an email when the user do click in "Send" button ( without store the data in the database ).
The lov is a typical lov for a combobox with the subject types the user is sending. These types are coded in the database.
TABLE: EMAIL_QUESTION
CODE NUMBER,
DESCRIPTION VARCHAR2(50)
We have made a readonly view in the model project:
SELECT CODE, DESCRIPTION
FROM EMAIL_QUESTION;
And we have publish this view in the app module.
But we don´t know how to properly add this data to the form, using a combobox object.
We have tried to drag and drop from the data control published, and chosing several control types (e.g.: Single selection -> Select one choice ). At runtime, we can see the combobox with the description text, but we can't access to the "CODE" attribute value selected in the manage bean code. The iterator only contains the "description" data value selected by the user.
How should we do this?
Regards. 
Hi,
Check out this blog post for a solution. https://blogs.oracle.com/adf/entry/combo_lov_how_to_display
- Juan Camilo 
Thanks, but the article uses entity based view, and i can't see how i should apply it to our problem. 
Any idea to solve this? Regards.

Categories

Resources