ERP expert
Knelpuntenanalyse Materiaal

Eenvoudig een knelpuntenanalyse voor uw materiaal opstellen

In het MKB is op tijd leveren aan klanten van groot belang. Om op tijd te leveren moet op tijd worden geproduceerd en daarvoor moeten grondstoffen weer op tijd in huis zijn.

De MRP functie bij ERP pakketten zorgt ervoor dat behoeftes tijdig worden gesignaleerd en bestellingen kunnen worden gedaan. Dat zegt echter niet dat deze bestellingen ook op tijd worden geleverd voor productie. Er is daarom aanvullend behoefte aan inzicht in de materiaalbeschikbaarheid voor productie.

In dit artikel lichten Marcel Blokland, directeur van Planlogic, en Bart de Waard, Senior SAP-consultant, toe hoe een dergelijk overzicht genaamd “Knelpuntenanalyse Materiaal” relatief eenvoudig kan worden opgesteld.

Material Requirements Planning

In bijna alle ERP systemen die als doelgroep het Midden en Kleinbedrijf hebben, kan via ‘Material Requirements Planning’ (MRP-1) de materiaal behoefte in kaart worden gebracht. Op basis van deze behoefte kunnen vervolgens bestellingen en/of productieorders worden aangemaakt. Bij het instellen van MRP kan rekening worden gehouden met externe levertijd, acceptabele afwijkingen (tolerantie dagen), voorkeur leverancier, bestelgrootte etc.

Voorbeeld:
Stel van artikel A is een vrije voorraad van 10 stuks en 5 stuks minimum voorraad. Verkocht zijn er 23. De MRP zal in de basis een advies geven om er 23 (Behoefte) -10 (Vrije voorraad) +5 (Minimum) = 18 te bestellen of te produceren.

Afhankelijk van de artikelgegevens kan dit geadviseerde aantal naar boven worden afgerond naar hele verpakkingen of naar een minimum bestelhoeveelheid.

Op basis van de lever- of productietijd van het artikel zal ook een datum worden berekend waarop het artikel moet worden besteld of met productie moet worden gestart.

Plan tolerantiedagen tegen dubbele bestellingen

Wanneer bestelde grondstoffen te laat geleverd worden, zal de MRP voor de grondstoffen op basis van haar systeem instellingen een nieuwe bestelling aanmaken. Het gevolg hiervan is dat dubbele bestellingen ontstaan. Om dit te voorkomen, kunnen tolerantiedagen worden aangehouden. Het gebruik van tolerantiedagen voorkomt dat bij een vertraging in de verwachtte leverdatum bij het volgende MRP advies nogmaals een bestelling of productieorder wordt aangemaakt voor die behoefte.

Voorbeeld:
Stel op 20 januari zijn artikelen type A nodig. Via de MRP wordt een advies opgesteld om deze artikelen te bestellen bij de (hoofd)leverancier waarbij rekening wordt gehouden met de standaard leverdagen. Als de leverancier aangeeft dat hij meer tijd nodig heeft om te kunnen leveren, is het mogelijk dat de levering na 20 januari plaatsvindt. De bestelling zal dan worden aangepast met de geplande/bevestigde leverdatum. Als er geen rekening wordt gehouden met tolerantiedagen zal bij gebruik van de MRP geadviseerd worden nogmaals een bestelling aan te maken voor de levering op 20 januari.

Het gebruik van de tolerantiedagen is daarom gewenst maar heeft ook een bijkomend nadeel. Het zegt niets over het op tijd beschikbaar zijn voor de geplande productieorders. Voor het productieproces kan het moment van levering van de grondstof juist van cruciaal belang zijn. Het ontbreken van een grondstof zal er immers toe leiden dat niet gestart kan worden met een productieorder. 

De “Knelpuntenanalyse Materiaal”

Er zijn ERP-systemen waarbij de signalering van materiaaltekorten binnen één productieorder zichtbaar kunnen worden gemaakt. Op basis van de behoeften en (toekomstig) beschikbare voorraad worden knelpunten weergegeven. Productieorders moeten daarvoor wel individueel worden geraadpleegd.

Bij grotere aantallen productieorders is dit een omslachtige en arbeidsintensieve werkwijze. Iedere productieorder moet namelijk regelmatig gecontroleerd worden. Daarnaast zijn deze tekorten ook van belang voor de levering van handelsgoederen, die dus niet worden geproduceerd. Ook voor de klantorders moeten knelpunten zichtbaar worden gemaakt.

Er is daarom behoefte aan één totaaloverzicht van alle artikelen waarbij wordt getoond of er nu of in de toekomst een tekort zal ontstaan, de zogenaamde “Knelpuntenanalyse Materiaal”. Op basis van deze getoonde knelpunten kan vervolgens actie worden ondernomen.

De data die voor een dergelijk overzicht nodig zijn, zijn vaak standaard aanwezig in het ERP-systeem. Het betreft lopende documenten zoals klantorders, bestellingen, productieorders etc. en hun vastgelegde leverdatum. Hiermee kan een overzicht worden gemaakt dat per datum de beschikbare voorraad weergeeft:

Bron: Knelpuntenanalyse Materiaal in SAP Business One

Bij de opzet hiervan is het verstandig ervan uit te gaan dat wanneer de bestelling op dezelfde dag wordt geleverd als het verbruik moet plaatsvinden, deze te zien als een tekort. 

Het komt ook voor dat een interne “aflevertijd” in acht moet worden genomen, bijvoorbeeld omdat ontvangen goederen eerst intern moeten worden gekeurd. Het verdient dan de aanbeveling om ook deze “aflevertijd” als variabele mee te nemen bij het  inzichtelijk maken van materiaaltekorten. 

Het hebben van een overzicht “Knelpuntenanalyse Materiaal” is een welkome aanvulling op MRP besteladvieslijsten. Maar hoe kun je nu binnen jouw ERP systeem relatief eenvoudig een dergelijk overzicht opzetten?

In 3 stappen een 'Knelpuntenanalyse Materiaal' opstellen

Hiervoor hebben we een drietal stappen geformuleerd (let op het wordt nu wel wat technischer): 

Stap 1

Onderzoek of uw database software al een functie heeft voor het gebruik van werkdagen. Als er geen functie voor het gebruik van werkdagen is, maak dan twee functies aan als hieronder (MS-SQL) die bepalen of de volgende- of vorige  datum een werkdag is:

GO
/****** Object: UserDefinedFunction [dbo].[fNextWorkingDay] Script Date: 26-2-2020 09:08:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



/********************************************************
****
**** returns next working day (Gebruikt de SAP feestdagentabel HLD1)
****
********************************************************/


ALTER FUNCTION [dbo].[fNextWorkingDay] (@Start datetime)
RETURNS datetime
AS
BEGIN
DECLARE @NextDay datetime

-- First, add a single day

SET @NextDay = DATEADD(d, 1, @Start)

-- Now, depending on the day of the week, move it forward
-- to the next weekday. Note this assume -- s that the first
-- day of the week is Sunday, the defaul -- t.


SET @NextDay = CASE DATEPART(dw, @NextDay)
WHEN 1 THEN DATEADD(d, 1, @NextDay)
WHEN 7 THEN DATEADD(d, 2, @NextDay)
ELSE @NextDay
END

-- Now look up the date in the Holiday table, looping
-- to the next clear weekday.


WHILE EXISTS(SELECT StrDate FROM HLD1 WHERE StrDate = @NextDay)
BEGIN
  SET @NextDay = DATEADD(d, 1, @NextDay)
  SET @NextDay = CASE DATEPART(dw, @NextDay)
  WHEN 1 THEN DATEADD(d, 1, @NextDay)
  WHEN 7 THEN DATEADD(d, 2, @NextDay)
  ELSE @NextDay
  END
END

-- Finally, return the next working date
RETURN @NextDay
END
GO
/****** Object: UserDefinedFunction [dbo].[fPreviousWorkingDay] Script Date: 26-2-2020 09:09:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/********************************************************
****
**** returns previous working day
****
********************************************************/


ALTER FUNCTION [dbo].[fPreviousWorkingDay] (@Start datetime)
RETURNS datetime
AS
BEGIN
DECLARE
@PrevDay datetime

-- First, add a single day

SET @PrevDay = DATEADD(d, -1, @Start)

-- Now, depending on the day of the week, move it backward
-- to the next weekday. Note this assume -- s that the first
-- day of the week is Sunday, the defaul -- t.


SET @PrevDay = CASE DATEPART(dw, @PrevDay)
WHEN 1 THEN DATEADD(d, -2, @PrevDay)
WHEN 7 THEN DATEADD(d, -1, @PrevDay)
ELSE @PrevDay
END

-- Now look up the date in the Holiday table, looping
-- to the next clear weekday.


WHILE EXISTS(SELECT StrDate FROM HLD1 WHERE StrDate = @PrevDay)
BEGIN
  SET @PrevDay = DATEADD(d, -1, @PrevDay)
  SET @PrevDay = CASE DATEPART(dw, @PrevDay)
  WHEN 1 THEN DATEADD(d, -2, @PrevDay)
  WHEN 7 THEN DATEADD(d, -1, @PrevDay)
  ELSE @PrevDay
  END
END

-- Finally, return the next working date

RETURN @PrevDay
END

Stap 2

Maak vervolgens een functie aan die op basis van een startdatum en het aantal werkdagen de einddatum bepaald. Hiervoor is de volgende functie nodig:

GO
/****** Object: UserDefinedFunction [dbo].[fAddWorkingDay] Script Date: 26-2-2020 09:10:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/********************************************************
**** returns date after given number of working days
**** uses function fNextWorkingDay
****
********************************************************/


ALTER FUNCTION [dbo] [fAddWorkingDay] (@Start datetime, @NumDfDays integer)
RETURNS datetime
AS
BEGIN
DECLARE @NextDay datetime
DECLARE @Counter int

IF @Num0fDays>0
BEGIN
  SET @Counter=1
  -- Drop the time part and initialize the Return Variable

  SET @NextDay=CONVERT(datetime ,(CONVERT(char(10),@Start,102)),102 )

  WHILE @Counter <= @Num0fDays
   BEGIN
    SET @NextDay = dbo.fNextWbrkingDay(@NextDay)
    SET @Counter=@Counter+1
   END
  END
ELSE
BEGIN
  SET @Counter=ABS(@NumOfDays)
  -- Drop the time part and initialize the Return Variable

  SET @NextDay=CONVERT(datetime ,(CONVERT(char(10),@Start,102)),102 )

  WHILE @Counter>0
   BEGIN
    SET @NextDay = dbo.fPreviousWorkingDay(@NextDay)
    SET @Counter=@Counter-1
   END
END
RETURN @NextDay
END

Deze functie zorgt ervoor dat bij het bepalen van beschikbaarheid rekening wordt gehouden met weekenden, kerstdagen en nieuwjaarsdag. 

Voorbeeld:
De geplande leverdatum van de grondstoffen is 20 december. Hierbij dienen 10 interne werkdagen te worden opgeteld waarbij rekening wordt gehouden met weekenden, kerstdagen en nieuwjaarsdag.

Het statement SELECT [dbo].[fAddWorkingDay] ('20191220',10) geeft als resultaat 8 januari 2020 als datum waarop de materialen beschikbaar zijn om gebruikt te kunnen worden voor productie. 

--Zet de zondag als eerste dag van de week
SET DATEFIRST 7
SELECT [dbo].[ISOYearWeek](T1.Date) AS [Jaar-ISO Week],
 T1.Date AS [Datum],
 T1.Type AS [Document Type],
 T1.Document AS [Documentnummer],
 T1.ItemCode AS [Artikelnummer],
 T1.ItemName AS [Omschrijving],
 T1.WhsCode AS [Mag.],
 T1.Available AS [Benodigd],
SUM(D1.Available) AS [Beschikbaar],
 T1.Eenheid AS [Eenheid],
 T1.CardCode AS [ZP Code],
 T1.CardName AS [ZP Naam],
 T1.DocType AS [DocType ID],
 T1.DocEntry AS [DocEntry]
--Eigen SQL Functies
FROM dbo.PL_GetAvailability() AS T1, dbo PL_GetAvailability AS D1
WHERE T1.ItemCode = D1.ItemCode AND
   T1.Regel >= D1.Regel AND
   T1.Available < 0
GROUP BYT1.Regel,
   T1.Type,
   T1.ItemCode,
   T1.ItemName,
   T1.WhsCode,
   T1.Date,
   T1.Available,
   T1.Eenheid,
   T1.Document,
   T1.CardCode,
   T1.CardName,
   T1.DocType,
   T1.DocEntry
HAVING SUM(D1.Available) < 0
ORDER BY 71.ItemCode, T1.Regel

Stap 3

Verzamel nu de documentregels met de behoefte in voorraad eenheden via bijvoorbeeld uw eigen SQL Table Valued Function en vergelijk deze per artikel per datum door een koppeling op dezelfde functie te maken.

Het eindresultaat is een overzicht van de beschikbare materialen voor de aanwezige productie orders, de “Knelpuntenanalyse Materiaal”

Per tekort (= materiaal knelpunt) kan vervolgens gezocht worden naar de oorzaak en actie worden ondernomen door de afdeling  productie/inkoop- of verkoop.

Real-time inzicht in materiaal tekorten

Samengevat zorgt MRP ervoor dat de voor productie benodigde grondstoffen op tijd worden besteld. De “Knelpuntenanalyse Materiaal” is daarop een aanvulling en zorgt voor real-time inzicht in materiaal tekorten bij productie. MRP advies en de “Knelpuntenanalyse Materiaal" zorgen er samen voor dat u de afgesproken levertijd kunt nakomen. 

We hopen met dit blog bij te dragen aan het optimaliseren van uw inkoop en productie processen. Mocht u hierover verder van gedachten willen wisselen met ons, nodigen wij u graag uit voor een gesprek.

Dit artikel is geschreven door ERP expert:

 

Marcel Blokland

Planlogic

Directeur
   
bouw

Behandel uw klanten beter - CRM maakt het mogelijk!

Met een CRM-module in ERP kunnen bouwbedrijven hun eigen klanten veel beter begrijpen en ondersteunen. We laten u zien hoe.

Lees verder
bouw

3 ultieme tools voor materiaalbeheer

Met deze 3 functies voor materiaalbeheer maakt u uw ERP-systeem meer dan alleen concurrerend. Vooral bouwbedrijven profiteren hiervan.

Lees verder