- 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
- 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.
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.