IFS is an ERP system built by the Swedish software firm Industrial and Financial Systems AB. It exposes most of its functionality for automation, customization, etc. Below is an example of how we can use a quick script (to be executed by tools such as SQL*Plus) to automate the batch creation of detail lines in a Customer Order. Many of the other exposed APIs offered by IFS can be called in a similar manner.
declare info_ varchar2(4000) := ''; attr_ varchar2(4000) := ''; objid_ varchar2(2000) := ''; objversion_ varchar2(2000) := ''; cursor recs_ is select order_no, cust_id, part_no, qty, unit_cost from my_tmp_worklist_tab; begin for rec_ in recs_ loop Client_Sys.Clear_Attr(attr_); info_ := ''; objid_ := ''; objversion_ := ''; -- Add attributes to the Customer Order detail line Client_Sys.Add_To_Attr('ORDER_NO', rec_.order_no, attr_); Client_Sys.Add_To_Attr('DELIVER_TO_CUSTOMER_NO', rec_.cust_id, attr_); Client_Sys.Add_To_Attr('CATALOG_NO', rec_.part_no, attr_); Client_Sys.Add_To_Attr('PART_NO', rec_.part_no, attr_); Client_Sys.Add_To_Attr('BUY_QTY_DUE', rec_.qty, attr_); Client_Sys.Add_To_Attr('DESIRED_QTY', rec_.qty, attr_); Client_Sys.Add_To_Attr('REVISED_QTY_DUE', rec_.qty, attr_); Client_Sys.Add_To_Attr('COST', rec_.unit_cost, attr_); Client_Sys.Add_To_Attr('PLANNED_DELIVERY_DATE', sysdate+7, attr_); -- ... There may be other fields you may wish to populate... -- Example of how to update an already-established attribute if (rec_.unit_cost = 0) then Client_Sys.Set_Item_Value('COST', '0.01', attr_); end if; begin Customer_Order_line_API.New__(info_, objid_, objversion_, attr_, 'DO'); exception when other then info_ := sqlerrm; dbms_output.put_line('Cust Order ' || rec_.order_no || ' error: ' || info_); end; commit; end loop; end;