You could get your PK sequence nextval through ajax at Row initialization of the interactive grid and then use the setValue() method of the model to set the value of your inserted row's PK column and then append this value also to P1004_CAS_UID_MULTIPLE. When the new row is deleted you need to remove the value again from P1004_CAS_UID_MULTIPLE
The IG DML process expects to be able to find, using the source SQL, all the rows updated or inserted. Normally you don't even need to refresh the IG or the page because the server returns the updated/inserted rows with up to date values such as for the PKs.
I have not tried this but I think you can switch the IG DML process to target type PL/SQL Code (see the example in the page designer help tab for PL/SQL Code to Insert/Update/Delete). Then you can append the inserted PKs onto the page item.
I found a solution
Create an after submit PLSQL process (Point: Processing) after the DML IG process
- v_currval number(15);
- v_UID_MULTIPLE varchar2(2000);
- select CDB_CAS_UID_SEQ.currval
- into v_currval
- from dual;
- if instr(:P1004_CAS_UID_MULTIPLE,v_currval) = 0 then
- v_UID_MULTIPLE :=:P1004_CAS_UID_MULTIPLE||','||v_currval;
- v_UID_MULTIPLE :=:P1004_CAS_UID_MULTIPLE;
- end if;
In the process Execution Scope Attribute "For Created and Modified Rows" (See below for workaround if Execution Scope does not appear)
You have to first set the process to: Interactive Grid ...(DML)
and select the GRID name in Editable Region
then SET IT BACK TO A PLSQL PROCESS and Execution Scope remains.