field type use - liamlamth/blog GitHub Wiki

selection list (popup LOV)

  • narrow selection list by another item: cascading list of value select parent item and set where clause = :P2_item in LOV

popup LOV

  • default value could set as sql query (not refer to expression >> sql),
    LOV setting will still be proceeded, using default value to search LOV return and map to display
    for example, a LOV return id and display name. in default, select id from original table will display the name as default
  • multiple values and storing into a relational table required manual insert/update/delete setup
    • field source: none
    • insert/update: add process >> execute code >> PL/SQL
      delete from task_worker where task_id = :P2_ID;
      insert into task_worker (task_id, emp_id)
      select :P2_ID,
          regexp_substr(:P2_EMP_ID, '[^:]+', 1, level) emp_id                               ### separate into multiple inserts
          from dual
          connect by level <= regexp_count(:P2_EMP_ID, ':') + 1;
      
    • load data: before header >> processes >> add initialize >> execute code >> PL/SQL
      declare
          worker_count number;
      begin
          select count(*) into worker_count from task_worker where task_id = :P2_ID;
          if worker_count > 0 then                                                          ### group into a string with separator colon
              select listagg(EMPLOYEE_ID, ':') emp_id into :P2_EMP_ID
              from task_worker
              where task_id = :P2_ID
              group by task_id;
          else
              select null into :P6_EMPLOYEE_ID from dual;                                   ### to clear cache
          end if;
      end;
      
    • delete: delete button >> add dynamic action
      delete from task_Worker where task_id = :P2_ID;
      
⚠️ **GitHub.com Fallback** ⚠️