Thursday, January 21, 2021

Make Interactive Grid work like Excel or Google Sheets in Oracle APEX

Interactive grid (IG) is arguably one of the best components available in newer versions of Oracle APEX. IG is an awesome blend of a form and an interactive report that lets users view the data in IR format as well as make DML operations (CRUD) to the dataset.

By default, user needs to explicitly click the Save button after each change made in the IG...but what if you want to make IG behave like an online excel or google sheet where all the changes are automatically saved ?

We can certainly do this by incorporating below changes. Lets see the steps -

1. First, assign a static ID to your Interactive Grid e.g. ig_test

2. Now, lets create a Dynamic Action on this IG and set event details as below -

Event - Change

Selection Type - Region

Region - <IG region>

3. For the True event of this DA, select Action as Execute JavaScript Code -

4. Enter below JS code. Note - Here we've used static ID of our IG (ig_test) to invoke Save action.

apex.region( "ig_test" ).widget().interactiveGrid( "getActions" ).invoke( "save" );

5. Save and run the application.

Now, as soon as you make any modifications to the data and navigate to the next item by tabbing out or with a mouse click, you'll see the changes are automatically saved and standard 'Changes saved' message is shown.

By implementing this solution, users don't have to click Save button every time they make any changes in Interactive Grid and it delivers an experience that's very close to Excel online or Google Sheets.


Wednesday, January 6, 2021

Deployment process for OAF controller classes in R12.2.x

 - When it comes to deployment of OAF classes, R12.2.x moves away from conventional Oracle Applications Server setup to Weblogic server and jar concept comes into the picture.

- Here are the steps to follow to deploy controller classes in 12.2 –

1. Move the controller class file to the desired product top under JAVA_TOP

(e.g. $JAVA_TOP/oracle/apps/xxcustom/oracle/apps/icx/por/req/webui)

2. Attach extended controller to OAF page via personalization

3. Generate the product jar file. This can be done by running ‘adcgnjar’ utility in UNIX.

This needs WebLogic credentials so DBA team needs to perform below task -

Run adcgnjar utility and regenerate product jar file (customall.jar) for <product> (e.g. XXAP)

adcgnjar generates and signs a file named customall.jar file containing the custom Java and BC4J code and extensions. The customall.jar file resides on $JAVA_TOP as indicated by CLASSPATH.

It internally performs the following steps:

- Creates a temporary file that contains all the directories under $JAVA_TOP except the oracle, META-INF, and policies directories.

- Generates and signs the customall.jar file with the contents of the file.

- Deletes the temporary file.

4. Bounce oacore and apache server, as needed.

Please note, since introduction to WebLogic in 12.2, adcgnjar utility and oacore bounce require WebLogic password, hence usually DBA team performs these two tasks.