[DYNA] No Allocation 10001178 Fissan Extra Cool Powder 50g 48'

Creation date: 08/05/2024 14:03    Updated: 08/05/2024 14:03   = => allocate allocation rotation rotationid shelf life type sku sku master
Question:

INCIDENT REPORT


[Dyna Drug Corporation] No Allocation for 10001178 Fissan Extra Cool Powder 50g 48'

Affected Environment:

PROD

Affected warehouse:

1120

Screenshots of error messages:




Time when issue occurred:

1:25PM

Affected module:

Outbound

Detailed description of issue:

Despite having sufficient inventory for SKU 10001178 Fissan Extra Cool Powder 50g 48', the system does not trigger allocation (auto or manually).

First level investigation/troubleshooting taken:


Case replication in original warehouse:

N/A


Answer:

Findings:
When checking debug log, the '=' in filter criteria "INV_LOT_ATT.lotAtt01 = '2024-02-06' causes the problem.
The SKU master 
10001178 Shelf Life Type is set to "Manufacturing Date" (lotatt01) and Rotation ID set to "FEFO"
When check the Rotation ID "FEFO", it does not have the setting for Manufacturing Date (lotatt01)



There are 2 solutions to this:
1) If they use the SKU shelf life type as "Manufacturing Date" = lotatt01, then they need to go RotationID and add lotatt01 and select Fuzzy match.

2) If they change the the SKU shelf life type to "Expiration Date" = lotatt02, it will be able to allocate as RotationID FEFO already has the lotatt02 setting.

Customer is able to allocate after changing the SKU shelf life type to "Expiration Date".



Checking with flux.

Findings:
1) The existing inventory does not fill the mandatory fields.


2) There is a filter criteria "INV_LOT_ATT.lotAtt01 = '2024-02-06' " due to SKU master 10001178 Outbound Life Days = 91.
SELECT 
  INV_LOT_LOC_ID.lotNum, 
  INV_LOT_LOC_ID.locationId, 
  INV_LOT_LOC_ID.traceId, 
  INV_LOT_LOC_ID.qty, 
  INV_LOT_LOC_ID.qtyAllocated, 
  INV_LOT_LOC_ID.qtyRpIn, 
  INV_LOT_LOC_ID.qtyRpOut, 
  INV_LOT_LOC_ID.qtyOnHold, 
  INV_LOT_LOC_ID.netWeight, 
  INV_LOT_LOC_ID.GrossWeight, 
  INV_LOT_LOC_ID.cubic, 
  INV_LOT_LOC_ID.price, 
  INV_LOT_LOC_ID.qtyMvOut, 
  BAS_LOCATION.locationUsage, 
  BAS_LOCATION.workingArea, 
  INV_LOT_LOC_ID.cubic, 
  INV_LOT_LOC_ID.grossWeight, 
  INV_LOT_LOC_ID.netWeight, 
  INV_LOT_LOC_ID.price, 
  INV_LOT_ATT.lotAtt01, 
  INV_LOT_ATT.lotAtt02, 
  INV_LOT_ATT.lotAtt03, 
  INV_LOT_ATT.lotAtt04, 
  INV_LOT_ATT.lotAtt05, 
  INV_LOT_ATT.lotAtt06, 
  INV_LOT_ATT.lotAtt07, 
  INV_LOT_ATT.lotAtt08, 
  INV_LOT_ATT.lotAtt09, 
  INV_LOT_ATT.lotAtt10, 
  INV_LOT_ATT.lotAtt11, 
  INV_LOT_ATT.lotAtt12, 
  INV_LOT_ATT.lotAtt13, 
  INV_LOT_ATT.lotAtt14, 
  INV_LOT_ATT.lotAtt15, 
  INV_LOT_ATT.lotAtt16, 
  INV_LOT_ATT.lotAtt17, 
  INV_LOT_ATT.lotAtt18, 
  INV_LOT_ATT.lotAtt19, 
  INV_LOT_ATT.lotAtt20, 
  INV_LOT_ATT.lotAtt21, 
  INV_LOT_ATT.lotAtt22, 
  INV_LOT_ATT.lotAtt23, 
  INV_LOT_ATT.lotAtt24, 
  BAS_LOCATION.pickLogicalSequence, 
  IFNULL(tw.PickToLocation, '') PickToLoc 
FROM 
  INV_LOT_LOC_ID INV_LOT_LOC_ID 
  INNER JOIN BAS_LOCATION BAS_LOCATION ON INV_LOT_LOC_ID.organizationId = BAS_LOCATION.organizationId 
  AND INV_LOT_LOC_ID.warehouseId = BAS_LOCATION.warehouseId 
  AND INV_LOT_LOC_ID.locationId = BAS_LOCATION.locationId 
  INNER JOIN INV_LOT_ATT INV_LOT_ATT ON INV_LOT_LOC_ID.organizationId = INV_LOT_ATT.organizationId 
  AND INV_LOT_LOC_ID.lotNum = INV_LOT_ATT.lotNum 
  LEFT JOIN TSM_WORKINGAREA tw ON BAS_LOCATION.organizationId = tw.organizationId 
  AND BAS_LOCATION.warehouseId = tw.warehouseId 
  AND BAS_LOCATION.workingArea = tw.workingArea 
WHERE 
  INV_LOT_LOC_ID.organizationId = 'OJV_DDC' 
  AND INV_LOT_LOC_ID.warehouseId = '1120' 
  AND INV_LOT_LOC_ID.customerId = '1000' 
  AND INV_LOT_LOC_ID.sku = '10001178' 
  AND (
    INV_LOT_LOC_ID.qty + INV_LOT_LOC_ID.qtyRpIn - INV_LOT_LOC_ID.qtyAllocated - INV_LOT_LOC_ID.qtyOnHold - INV_LOT_LOC_ID.qtyMvOut
  )> 0 
  AND BAS_LOCATION.locationUsage NOT IN('ST', 'WB') 
  AND BAS_LOCATION.locationUsage != 'SS' 
  AND BAS_LOCATION.locationAttribute in ('OK', 'FI') 
  AND IFNULL(INV_LOT_ATT.lotAtt08, '') = 'N' 
  AND INV_LOT_ATT.lotAtt01 = '2024-02-06' 
  AND INV_LOT_ATT.lotAtt12 = '1120_10001178' 
  AND BAS_LOCATION.locationUsage IN ('EA', 'PC', 'HP', 'AP', 'SS') 
Order by 
  CASE WHEN IFNULL(INV_LOT_ATT.lotAtt02, '') = '' THEN 1 ELSE 2 END, 
  INV_LOT_ATT.lotAtt02 ASC, 
  CASE WHEN IFNULL(INV_LOT_ATT.lotAtt03, '') = '' THEN 1 ELSE 2 END, 
  INV_LOT_ATT.lotAtt03 ASC, 
  BAS_LOCATION.pickLogicalSequence


Advised customer to fill the mandatory fields for the inventory using transfer document, and try to allocate again.
Files