Problem description:
- Application contains two ADF Task Flows. Both ADF Task Flows are with Data Control Scope set to Isolated. First ADF Task Flow implements call to second, second returns back to first using Task Flow Return activity
- First ADF Task Flow contains JSF page with ADF Query component. ADF Query component property Disclosed is set to True
- Second ADF Task Flow contains basic JSF page with Close button. This page must have associated Page Definition file
- From first page with ADF Query, open second page. Press Close button - you will return to first page. Repeat same action couple of times, while returning to first page you will get incorrectly rendered screen
Workarounds:
- Set Disclosed property to False for ADF Query component. This means, ADF Query will not be rendered when page will be opened and error will not appear
- For second ADF Task Flow, set Data Control Scope to Shared. Yes, this works well. For some reason, when second ADF Task Flow is using same data control instance as a first one - ADF Query component is rendered correctly. It works even with Disclosed set to True.
You can download sample application, where you can reproduce described bug - ADFBugTaskFlowQuery.zip.
Sample contains first ADF Task Flow from where second is called:
Second ADF Task Flow contains Task Flow Return activity:
Data Control Scope is set to Isolated:
On runtime, when first ADF Task Flow is opened:
Press Job List button, second ADF Task Flow will be opened:
Press Close button, if you will not get error from first time, repeat same steps for 5-6 times and you will get it:
Page is rendered incorrectly and error is generated:
This error, is system error related to ADF Query criteria.
When Data Control Scope for second ADF Task Flow is set to Shared, it works well.
Spanish Summary:
Titulo: Bugs en el uso combinado de ADF Task flow and ADF Query Component.
Resumen: En este articulo, Andrejus muestra otro bug que tiene la herramienta, la cual se produce cuando se utiliza varios ADF Task Flow que muestra los mismos resultados basados en una consulta de datos. La soluciĆ³n finalmente radica en que ambos task flow compartan el mismo DataControl.
Andrejus, I didn't see any comments on this yet. Don't know if you actually raised an SR/bug about this, and if there was communication regarding this offline. But for whatever it is worth, I ran your application in a later 11g build and couldn't reproduce it after trying repeatedly. (Tried ~ 20 times, as opposed to 5-6 times you mentioned.) So most likely, the build you were using had this as a transient bug which got fixed.
ReplyDeleteHi Chandu,
ReplyDeleteThis bug is reproduced in current build available to download from OTN (Build 5188). Registered bug #8260652. However, as JDeveloper Product Management communicated to me, this bug is not reproduced in newest Oracle internal build.
Regards,
Andrejus
Andrejus, my question is regarding "Data Control Scope":
ReplyDeleteMy master table is in a region (a.jsff) and my detailed table is in a task flow with Data-Control-Scope: shared which is a region inside a.jsff.
I want with one save button which is in a.jsff to save both changes from master and detail table. Update works fine, so saves changes from both tables. Perfect.
But I want deletion from the detail table (Delete button inside nested region) to be isolated. So that Delete button supposed to delete detail-table records and to commit in database, but not to commit changes in a master table.
Is this possible and how?
Shared-update with one save button (in a a.jsff), but isolated delete for the child records.?
Your advice is much appreciated.
Vesna