Voorraadbeheer
Balansen (fysieke telling)
Een balans (Physical Inventory Order in Business Central) legt vast dat je op een bepaalde datum de fysieke voorraad op een locatie telt. Getelde aantallen worden vergeleken met wat het systeem verwacht; het verschil wordt als voorraadcorrectie (positieve of negatieve aanpassing) geboekt.
Dezelfde flow dient twee scenario's:
- Periodieke telling — op een locatie waar al voorraadhistorie is. Klik Initialiseer uit voorraad om de verwachte aantallen vanuit Dynamics op te halen, dan tellen, daarna boeken om verschillen door te zetten.
- Beginvoorraad / onboarding — op een nieuwe schoollocatie waar nog geen voorraad bekend is. Initialiseer uit voorraad sla je over: de balans start leeg, elke gescande EAN wordt een nieuwe regel met verwacht = 0 zodat alles wat je telt als positieve correctie wordt geboekt.
De functionaliteit zit in school-apps (de per-locatie mobiele app), bereikbaar via het menu-item Balansen op de homepage.
Wie doet wat?
| Actie | Recht |
|---|---|
| Balansen inzien | inventory:read |
| Balans aanmaken, tellen, registratie afronden | inventory:write |
| Balans definitief boeken (voorraadaanpassing) | inventory:approve |
Het inventory:approve-recht dient als vierogenprincipe: degene die telt is doorgaans niet degene die de correctie definitief in de boekhouding zet.
De flow in het kort
- Iemand met
inventory:writestart een balans via Balansen → Nieuwe balans. In de dialog vult diegene een korte omschrijving in (default:Balans <locatie> dd-mm-yyyy). - Optioneel: Initialiseer uit voorraad — alleen bij periodieke tellingen. Dynamics maakt regels aan voor alle artikelen met positieve voorraad op deze locatie. Bij een beginvoorraad sla je deze stap over.
- Een teller maakt een registratie aan — één registratie per opslaglocatie (bin) op locaties met
binMandatory, of één gedeelde registratie op locaties zonder bin-eis. Meerdere tellers kunnen parallel verschillende registraties hebben. - Per scan/ingave wordt de regel direct in BC bijgewerkt (geen lokale buffer — elke invoer is een PATCH).
- Teller rondt de registratie af. Aantallen stromen door naar de balans.
- Manager met
inventory:approveboekt de balans. Verschillen tussen verwacht en geteld worden als Item Ledger Entries (Positive/Negative Adjmt.) vastgelegd.
Een balans aanmaken
Klik op Nieuwe balans op de landingspagina /count. Er opent een dialog met één invulveld:
- Omschrijving — vrij tekstveld, max. 50 tekens. Default
Balans <locatie> dd-mm-yyyy. Verplicht (mag niet leeg).
Klik op Start. Wimpel:
- Controleert dat er geen open balans op deze locatie staat (één tegelijk — anders krijg je een foutmelding met het bestaande balansnummer en moet je die eerst afronden of annuleren)
- Maakt een
Phys. Inventory Orderaan op de locatie die bij je sessie hoort - Roept de Business Central-actie Calculate Lines aan, die per (artikel, variant, bin) één regel aanmaakt met de verwachte voorraad
- Brengt je direct naar de detailpagina van de balans
Op een locatie zonder voorraadhistorie (onboarding) komt Calculate Lines met een leeg resultaat. Dat is geen fout — de balans is leeg tot de teller scant of plakt.
Initialiseren uit voorraad — bij binMandatory
Op een locatie met binMandatory = true is Initialize from Inventory een per-bin operatie. BC's standaard Calc. Phys. Invt. Order Lines rapport itereert over Item Ledger Entries gegroepeerd op (Item, Variant, Locatie, Bin). Resultaat:
- Voor elke (Item, Bin)-combinatie waar voorraad staat → één regel met
qtyExpected = inventory in die bin. - Bij een lege bin → geen regel.
- Beginvoorraad-locatie (geen ILE's) → niks geïnitialiseerd, blijft leeg.
Initialize is dus niet "alle voorraad op de locatie, één regel per item". Bij binMandatory krijg je N regels per item als het in N bins ligt.
Digitale en non-inventory items zijn automatisch uitgesloten van Initialize: BC's rapport baseert zich op Item Ledger Entries, en die bestaan niet voor items zonder fysieke voorraadtracking.
Detailpagina
Boven de pagina staan twee balans-niveau acties:
- Balans boeken (groen, alleen met
inventory:approve) — definitief de voorraadcorrecties doorzetten. Opent een dialog met een variantie-preview (top regels die afwijken, met+/-per regel) zodat je vóór bevestigen ziet wat er geboekt gaat worden. - Annuleren (rood) — de balans wegmieteren met al z'n registraties. Onomkeerbaar (achter een confirm-dialog).
Onder de header zie je een metrics-blok met Status / Regels / Verwacht / Variantie:
- Regels —
X/Y geteld. X = aantal balansregels dat aan een afgeronde registratie hangt. Y = totaal aantal regels op de balans. - Verwacht = som van wat het systeem verwacht over alle regels (totaal aantal stuks, niet aantal regels).
- Variantie =
Geteld - Verwacht. Positief = méér gevonden dan verwacht (bv. ongeregistreerde retour, of beginvoorraad). Negatief = items missen (verlies, schade, of nog niet geteld). Nul = telling klopt met administratie. Bij het boeken wordt deze variantie als voorraadcorrectie weggeschreven.
Empty-state CTA
Als de balans nul regels en nul registraties heeft, vervangt een gecentreerde lege-staat-card de Registraties-tabel:
Nog geen registraties Een registratie is één telsessie — bij meerdere tellers maakt elke teller zijn eigen registratie. Bij een periodieke telling kun je optioneel eerst Initialiseer uit voorraad klikken; bij een beginvoorraad sla je dat over en begin je direct te tellen. [+ Nieuwe registratie] [⤓ Initialiseer uit voorraad]
Zodra er één registratie is, verdwijnt de card en zie je de gewone Registraties-tabel met inline Nieuwe registratie knop in de section header.
Registraties-tabel
| Kolom | Inhoud |
|---|---|
# | Recording number |
| Omschrijving | Default Registratie <persoonsnaam> |
| Geteld door | personResponsible (auto: ingelogde gebruiker bij aanmaken) |
| Voortgang | X/Y geteld waarbij X = lines met recorded=true, Y = totaal lines in de registratie. — voor nul-line registraties. |
| Status | Open of Finished |
| Acties | Verwijderen (alleen bij Open, achter confirm-dialog die waarschuwt over te verliezen regels) |
Registraties
Een balans wordt niet rechtstreeks geteld — je maakt registraties aan. Een registratie is één telsessie:
- Op een locatie met
binMandatory = true(bv.102X087Tilburg) kies je bij Nieuwe registratie eerst de bin (opslaglocatie) uit een combobox. Wimpel seedt de registratie met alle balansregels van díe bin. Het aantal registraties = aantal bins. - Op een locatie zonder
binMandatory(bv.101X270Veghel) wordt er direct één registratie aangemaakt met alle regels — geen dialog. Doorgaans één registratie per teller.
Meerdere registraties kunnen tegelijk open staan en zijn niet aan elkaar gekoppeld — twee mensen die parallel een andere bin tellen, werken volledig onafhankelijk.
Hetzelfde artikel in twee registraties = twee regels
Als twee tellers tegelijk dezelfde EAN scannen in twee verschillende registraties, bestaan er twee getelde regels naast elkaar. Bij het afronden tellen ze samen in de balans. Dat is meestal gewenst (verschillende bins, samen total), maar wees alert wanneer geen binMandatory: dan kunnen tellers per ongeluk dubbel registreren.
Tellen
Op de registratiepagina zie je:
- Een scanveld bovenaan (barcodemodus voor scanners, toetsenbordmodus voor handmatige invoer)
- Een tabel met regels — kolom Systeem toont wat het systeem verwacht, kolom Geteld is waar jij invult
- Een plakveld onderaan om meerdere EAN's tegelijk toe te voegen
- Een knop Registratie afronden
Scannen
Scan je een EAN die al op een regel staat, dan springt de focus naar die regel. Typ je aantal, druk op Enter, en de regel wordt direct opgeslagen (groen vinkje).
Scan je een EAN die er nog niet is maar wél in de Wimpel-catalogus zit, dan wordt er automatisch een nieuwe regel aangemaakt met verwacht = 0. Dit is hoe onbekende vondsten en beginvoorraad worden verwerkt.
Scan je een EAN die niet in de catalogus zit, dan krijg je een foutmelding (EAN ... niet gevonden in de catalogus). Voeg het product eerst toe via Product toevoegen en daarna ook in Dynamics; pas dan kan het in een balans verschijnen.
Plakken en importeren
Het plakveld accepteert één regel per artikel in de vorm EAN gevolgd door aantal, gescheiden door tab, komma, puntkomma of spatie:
9789001234567 12
9789007654321 0
9789004567890 1
Een EAN zonder aantal wordt als 0 verwerkt — handig om snel een lijst "gezien" vast te leggen en later de aantallen in te vullen. Onbekende EAN's worden onder het plakveld als foutregels getoond; de bruikbare regels worden wél direct opgeslagen.
Upsert-gedrag (vervangen, niet optellen)
Plak je dezelfde EAN twee keer (in één batch óf in een latere paste), dan vervangt Wimpel het eerdere aantal — het wordt niet opgeteld. Hetzelfde geldt bij het scannen: scan je EAN X drie keer, dan staat de regel op 1, niet op 3. Je moet zelf het juiste totaal opvoeren. Dezelfde EAN dubbel in een paste-batch wordt automatisch gededupliceerd (laatste opgave wint) met een waarschuwingstoast.
Importeren uit Excel of CSV
Rechtsboven de Toevoegen-knop staat de link "of importeer Excel/CSV". Hiermee upload je een .xlsx-, .xls- of .csv-bestand. De eerste kolom moet de EAN bevatten, de tweede het aantal. De inhoud van het bestand wordt in het plakveld geladen zodat je nog kunt controleren en aanpassen voor je op Toevoegen klikt.
Plakveld is interactief
Bestand uploaden vervangt de inhoud van het plakveld niet automatisch — het wordt erin geplakt. Je kunt dus eerst handmatig wat regels intypen, dan een Excel uploaden om aan te vullen. Op Toevoegen klikken stuurt alles in één batch naar Dynamics.
Aantal = 0
Typ expliciet 0 als je een artikel bent tegengekomen en niks op de plank vindt. Een lege "Geteld"-cel betekent nog niet geteld — bij het boeken van de balans beslis je wat er met niet-getelde regels moet gebeuren.
Artikel-types: wat kun je tellen?
Tellers krijgen ALLE artikelen in beeld die in de Wimpel-catalogus staan. Onder de omschrijving toont Wimpel een type-badge (combi, digitaal) zodat je weet wat je in de hand hebt. We blokkeren niets aan de Wimpel-kant — het uitgangspunt is "telt wat fysiek aanwezig is". Dynamics is de tweede verdedigingslinie.
| Type | Voorbeeld | Wat gebeurt er? |
|---|---|---|
| Fysiek | 9789001079369 (Reflecteren) | Reguliere flow — accepteert, variantie wordt geboekt. |
| Combi | 9789001000929 (Stepping Stones FLEX book + online) | Wimpel toont badge combi. Dynamics accepteert als het in BC's Item-tabel staat als voorraadhoudend. Kanttekening voor de teller: een combi-pakket op de plank tellen kan kloppen (één doos = één stuk). Maar tel je de losse fysieke component én de combi-EAN, dan tel je dubbel. |
| Digitaal | 08721516857071 | BC weigert de regel met Internal_InvalidTableRelation (digitaal item bestaat niet in BC's Item-tabel). Wimpel vertaalt dit naar: "Digitale artikelen kunnen niet fysiek geteld worden in Dynamics — overslaan." |
| Onbekend in Wimpel | EAN niet in prisma.product | Wimpel geeft toast / plakveld-error: "EAN niet gevonden in de catalogus". Voeg eerst het product toe via Catalogus → Product toevoegen én synchroniseer naar Dynamics. |
| Bestaat in Wimpel maar niet in BC | Edge case na onvolledige sync | Vergelijkbare BC-error → vertaald naar "… bestaat in Wimpel maar niet als voorraadhoudend item in Dynamics." |
Geen blokkade — wel duidelijkheid
We weigeren bewust niets op type-niveau. Een school met licentiekaarten op papier of combi-pakketten op de plank moet die in een beginvoorraad kunnen meenemen. Het type-badge en de geüsmaakte foutmelding zorgen dat de teller weet wat 'ie aan het tellen is — zonder valide flows te blokkeren.
Registratie afronden
Knop Registratie afronden onderaan. De registratie krijgt status Finished en de getelde aantallen stromen door naar de balans. Vanaf dat moment kun je de registratie niet meer bewerken — maak een nieuwe registratie aan als je nog moet bijtellen.
Bij binMandatory betekent dit: één registratie afgerond ⇒ die bin is klaar. Andere bins blijven beschikbaar voor parallel afronden.
Balans boeken
Op de balansdetailpagina staat de knop Balans boeken (alleen zichtbaar met inventory:approve). Klik je hem aan, dan verschijnt een bevestigingsdialoog met:
- Variantie-preview (als er verschillen zijn): top 8 regels gesorteerd op
|variantie|, met EAN, omschrijving en+/-getal. Header toont totaal aantal regels en cumulatief positief/negatief. Klikken op Boeken zonder eerst dit overzicht te zien is dus niet meer mogelijk. - Niet-getelde regels (als er regels zijn zonder ingevulde waarde en niet afgerond): radio-keuze:
- Markeer als systeemaantal — regels krijgen hun verwachte aantal toegewezen (geen variantie geboekt). Kies dit als je alleen bedoelde te corrigeren wat je hebt aangeroerd.
- Markeer als 0 — regels worden als volledig afgeschreven geboekt. Kies dit wanneer je alles hebt geteld en alleen wat je hebt gezien telt als aanwezig.
Bevestig je? Dan roept Wimpel de Business Central-actie Post aan. Per regel met een verschil ontstaat een Item Ledger Entry (Positive of Negative Adjmt.). De balans gaat naar status Finished en verhuist op de landingspagina naar Recent geboekt.
Boeken is onomkeerbaar
Zodra een balans geboekt is, zijn de voorraadaanpassingen definitief in de boekhouding. Een fout rechtzetten vraagt om een nieuwe balans met een tegenovergestelde correctie.
Balans annuleren
Een balans in status Open kan je annuleren via de Annuleren-knop. Alle getelde regels en registraties gaan verloren. Een geboekte balans kan niet geannuleerd worden.