Skip to main content

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.,

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


Thank you @william.klotz !


Reply