Wednesday, December 23, 2015

Another happy customer

Another happy customer where we extended Oracle eBS R12 by fully integrating Oracle Apex just by following the instructions on my own blog :-)



Using the page wizard I created a 'form on table with report' to maintain records in a custom table. However for each record you want to update, you first have to open an update form via a click on the pencil at the beginning of the line. You'd rather want to update the records straight on the interactive report page. Therefore using the page wizard I also created a tabular form. This form has far less options for filtering, sorting, downloading, ... than an interactive report page. Too bad!

I added a button to this tabular form that a status field of all selected records sets to 'FINAL'. The processing is not so straightforward. There is no field in the screenbuffer that corresponds with the check box at the beginning of the line. So it is not possible to write an UPDATE statement with a condition like check box checked. Now I had to develop a piece of code that goes through some internal apex collection to update the correct rows. The process added to the page processing:

DECLARE  
   l_checked_row  NUMBER;
   l_pkey         NUMBER;
BEGIN  
  FOR i IN 1..apex_application.g_f01.count 
  LOOP  
    l_checked_row := apex_application.g_f01(i);
    l_pkey        := apex_application.g_f02(l_checked_row);

    UPDATE xxapx_contractline
    SET STATUS = 'FINAL'
    WHERE contractline_id = l_pkey;
  END LOOP;
END;