- Oracle JET Simple Table with Fake JSON Server. What if you want to build JET UI, but there is no back-end REST service ready yet. You could use static JSON data inside JET app and load it from the JSON file. This works, but data retrieval logic will need to be changed after REST service will be ready. This is not productive. Ideally you would like to have fake REST service to simulate REST calls from JET UI, until real REST back-end is ready.
Download - jetsimplecrud
- Oracle JET CRUD - Search and Edit Form - Part I. I'm going to post a series of articles about CRUD functionality (on top of ADF BC) implementation in JET. I already had a couple of posts about JET CRUD implementation, this new series will bring improved and simplified structure for JET code implementation.
Download - GitHub repository
- Calculating HTML ID for ADF UI Table Row. Each row in ADF UI table is assigned with ID, this is how rows are referenced in HTML. I had a blog post describing how to set a focus for newly inserted row - Improving ADF UI Table CRUD Functionality with Auto Focus. I'm getting ID for selected row using getClientRowKey method and this method returns row identifier, the one which is used in HTML. Blog reader was trying to use the same method to get ID for any row from the table, but it didn't worked for him. The trick is how to construct a key properly, to use this key to retrieve ID. I'm going to describe it in this quick sample application below.
Download - ADFTableFocusApp_v2.zip
- Improving ADF UI Table CRUD Functionality with Auto Focus. Improving and tuning ADF applications performance, doesn't mean only ADF framework technical parameters tuning. Performance tuning could be applied to application UI behaviour. I will use ADF Faces table example in this post, by default when new row is inserted - focus for the new row column is not set, user needs to do one extra click to set focus and start entering data. There is a way to eliminate this extra click and set focus automatically for a column in ADF table row. I will describe generic method to achieve such functionality.
Download - ADFTableFocusApp.zip
- Simple JQuery Notification Message for ADF UI. If you would like to use JQuery in ADF and looking for some simple example, this post if for you. I'm sharing use case of JQuery notification message, displayed after successful commit operation is completed in ADF. Once commit is completed, notification message is displayed for 2 seconds and later it disappears.
Download - ADFNotification.zip
- Evil Behind ChangeEventPolicy PPR in CRUD ADF 12c and WebLogic Stuck Threads. In your production application, you may experience WebLogic Stuck Threads. This is usually related to the large fetching, in most cases it happens unexpected and is not reproduced easily. In ADF 11g this is related to AM passivation/activation behaviour (will be described more in the next post), in ADF 12c I found another reason for unexpected large fetch in CRUD - ChangeEventPolicy = PPR setting usage for ADF iterator in Page Definition.
Download - LargeFetchApp.zip
- ADF Rollback Operation and Stay On Current Row. This post is extension for my previous posts about ADF CRUD and is based on - ADF Query Search and Results Form blog. As most likely you have noticed it already, Rollback operation in ADF removed all pending changes plus it resets current row to the first row in data collection. Resetting current row to the first is not always desirable, I will provide sample application which demonstrates how to prevent resetting to first row after Rollback operation was invoked.
Download - ADFCRUDRollbackApp.zip
- After Commit Call for Centralized Transaction Management. With this post I would like to update sample application from my previous post on this topic - Centralized Transaction Management for ADF Data Control. This previous post was about how to call global commit/rollback operations applied for ADF Data Control, without declaring Commit and Rollback in each and every page definition file. Centralized Commit and Rollback operations are created in fragment template, this allows to reuse the same buttons across different fragments. There is one bit we can use to extend centralized transaction management concept - custom method invocation after successful commit. Based on use case requirements, we may need to invoke iterator refresh after commit, etc.
Download - GlobalTransactionControlApp_v2.zip
- Centralized Transaction Management for ADF Data Control. Did you ever had an idea to implement centralized Commit/Rollback management in ADF application. This would allow to save development time, no need to create Commit/Rollback operation in each page definition file - forget about this. You can manage transaction on ADF Data Control level and I will show you how with this sample application.
Download - GlobalTransactionControlApp.zip
- CRUD Use Case Implementation and ADF Query Search. One of the most important topics to research when rewriting legacy Oracle Forms system into Oracle ADF 11g/Oracle Fusion is how to implement CRUD operations in smooth way for the new system. CRUD operations play one of the central roles for Oracle Forms and Oracle ADF applications, because most of the applications implemented with Oracle Forms and Oracle ADF are designed to process/maintain data. CRUD implementation should be efficient for usability and performance. With today post I will provide updated sample application based on old post from 2009 - Oracle ADF Tuning: Preventing SQL Query Execution on Page Load. I have improved handling of Rollback operation when executing ADF Query search operation.
Download - ADFPageOpening_v2.zip
- Refreshing Single Row Without Full Rollback. With ADF Rollback operation - ADF is reloading entire dataset from DB. It invokes ROLLBACK from database and then executes View Object to return latest data from DB for all rows. This works well when we want to undo multiple changes at once. It may happen to encounter such use case, where we need to undo changes per row, not per set of rows. This is possible in ADF as well - using refresh(...) method for ADF BC Row. But keep in mind, while this method refreshes selected row - it never cleans up ADF BC transaction, it will remain dirty. This is logical - ADF BC doesn't know, if there are other changed rows.
Download - RowHighlight_v2.zip