Solved

On hand inventory alert

  • 20 April 2022
  • 2 replies
  • 231 views

Userlevel 6
Badge +17

Hi All, 

I am looking to setup an alert to notify a member of our planning team when the on hand inventory of a part drops to zero. My thought was to setup an event action, but I believe I would then need to configure multiple event actions for each part. Is there a way to setup the event or another feature in IFS that could be used to notify someone in the event the on hand inventory level is zero? Any help would be greatly appreciated. Thank you.,

icon

Best answer by william.klotz 21 April 2022, 03:22

View original

2 replies

Userlevel 7
Badge +21

Hi @cjohnson ,

 

We are using IFS Application 10.   I do not know of a built-in notification when an inventory part qty_onhand goes to zero.   I believe you will need to create a custom event and action to perform the task.   You could setup a custom event on the InventoryPartInStock logical unit set to trigger on a change.   I believe the event action will need to be a PL/SQL action and you’ll need to create a procedure to determine the qty_onhand and then send the an email to the individuals who require the notification.

Below is a query we created in a quick report to produced a Part Availability report that we export to Excel.   I’ve added the UPPER(ip.PART_NO)=UPPER('&PART_NO') to the query below so you can just type in a part number instead of running it for all your active parts.   This line IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_OnHand(ip.contract, ip.part_no, '*') AS QTY_ONHAND will return plannable QTY_ONHAND meaning it will exclude any location with a non-nettable availability control.    

You could easily convert the below query into a PL/SQL procedure to use in an event action to send your notification.

 

SELECT ip.PART_NO, 
ip.DESCRIPTION,
IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_OnHand(ip.contract, ip.part_no, '*') AS QTY_ONHAND,
IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_Reserved(ip.contract, ip.part_no, '*') AS QTY_RESERVED,
IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Total_Qty_In_Transit(ip.contract, ip.part_no, '*') AS QTY_INTRANSIT,
(IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_OnHand(ip.contract, ip.part_no, '*') + IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Total_Qty_In_Transit(ip.contract, ip.part_no, '*') - IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_Reserved(ip.contract, ip.part_no, '*')) AS QTY_AVAILABLE,
IFSAPP.ORDER_SUPPLY_DEMAND_API.Get_Sum_Qty_Demand(ip.contract,ip.part_no) - IFSAPP.INVENTORY_PART_IN_STOCK_API.Get_Plannable_Qty_Reserved(ip.contract, ip.part_no, '*') AS QTY_ORDERS_UNRESERVED
FROM IFSAPP.INVENTORY_PART ip
WHERE UPPER(ip.CONTRACT)=UPPER('&SITE')
AND UPPER(ip.PART_NO)=UPPER('&PART_NO')
AND UPPER(ip.PART_STATUS) <> 'I'
GROUP BY ip.PART_NO, ip.CONTRACT, ip.DESCRIPTION
ORDER BY ip.PART_NO

 

Regards,

William Klotz

Userlevel 6
Badge +17

Thank you @william.klotz !

Reply