Gå til innhold
Norsk – Norge
  • Det finnes ingen forslag fordi søkefeltet er tomt.

Serie/batch/partinr oppsett mot Business NXT

Oppsett av serienummer/batch/parti mot Business NXT med BxLogistics Pro

Business NXT har ikke egne parti-/serieklasser på varen. Hvordan serienummer, batch og parti settes opp i BxLogistics Pro mot Business NXT avhenger derfor av to ting: om varen er partistyrt i Business NXT (standard partioppsett med varepartier og reservasjoner), og hvilket felt kunden bruker for å skille de ulike typene varer fra hverandre. Ofte brukes et gruppefelt på varen (for eksempel Gruppe 10) eller et annet felt til dette.

Serie/batch/parti oppsett mot Business NXT krever en BxLogistics Pro lisens før oppsett påbegynnes.

Alle innstillinger i artikkelen gjøres i BxAdmin:

  • Spørringer (ReceiveListLines, PickinglistLines, Products, Batches, StockcountProducts): SQL Integration, velg spørringen i listen.
  • Clientconfig: Configuration → Profile. Finn linjen med riktig Area (for eksempel pickinglist) og Property (for eksempel showbatchexpirydate), og sett Value. Skrives her som area / property = verdi.
  • Import field mapping: Import from ERP, velg importen (kolonnen Import type, for eksempel products) og se Import Mapping.
  • Export field mapping og exportconfig: Export to ERP, velg eksporten (kolonnen Export type, for eksempel receivelist) og se Export Mapping eller Export Config.
Innhold

1. Parti og serienummer i Business NXT

Det finnes to måter å registrere serie/batch/parti på i Business NXT. Det er viktig å vite hvilken kunden bruker før oppsettet starter:

Oppsett i Business NXT Hva det betyr Hvor nummeret lagres
Partistyrt vare (standard partioppsett) Beholdningen føres per vareparti. Ved mottak opprettes et nytt parti med parti-/serienummer, eventuelt holdbarhetsdato og lokasjon. Ved salg reserveres partiet på ordrelinjen. Vareparti (Shipment): partinr (shipmentNo) og parti-/serienummer (serialNo). Reservasjon (Reservation) knytter ordrelinjen til partiet.
Serienummer i serienummertabellen Én ny rad i serienummertabellen per serienummer, med ordrenr og linjenr. Da kan man finne hvilket serienummer som ble sendt til en bestemt kunde, ordre og ordrelinje. Det er ingen beholdning per serienummer. Serienummertabellen (SerialNo): ordrenr, linjenr og serienummer.
Ingen sporing Vanlig vare. –

Det vanligste er at batch/parti og serienummer som skal spores på lager, er satt opp som partistyrte varer, mens serienummer som bare logges ved plukk, legges i serienummertabellen. Snakk med kundens Visma-partner hvis det er uklart hvordan varene er satt opp.

Serienummer på partiet betyr full partistyring: serienummeret for hver lagerførte enhet registreres ved varemottak og telles enkeltvis ved telling på vareparti. Ved plukk velger plukkeren serienummeret selv med oppslag, eller skanner og validerer det som Business NXT har reservert.

Business NXT har ikke et eget felt som forteller hvilken type parti eller serienummer en vare har. Kunden må derfor ha et felt på varen som skiller typene, for eksempel Gruppe 10: 1 = batch, 2 = batch med holdbarhetsdato, 3 = serienummer som parti, 4 = serienummer i serienummertabellen. Eksemplene i artikkelen bruker disse verdiene.

2. Typen må inn på varen i BxLogistics

  • Bruk standardfeltet BxProduct.BatchProfile til typen. Ikke bruk Inf-felter til dette. Legg til importfieldmapping under Import from ERP → products → Import Mapping, for eksempel product.items.group10 → BxProduct.BatchProfile, og kjør importen av varer på nytt.
  • Standard importfieldmapping henter også behandlingsfeltene på varen (product.items.processingMethod1–processingMethod5 → BxProduct.ProcessingMethod1–ProcessingMethod5), og de samme feltene på plukk- og mottakslinjene (BxPickinglistLine/BxReceivelistLine.ProcessingMethod1–5). Behandlingsfeltene skal ikke brukes til å finne varer med parti eller serienummer. Det finnes ikke ett felles flagg for dette i Business NXT. Hvilke varer som krever parti, serienummer eller holdbarhetsdato, settes på varen, som regel i et gruppefelt, og leses inn i BatchProfile.
  • For å sjekke hvilke verdier som faktisk importeres, kan du opprette og kjøre en egen spørring (gruppen Custom) under SQL Integration: select batchprofile, count(*) from BxProduct group by batchprofile. Bruk de eksakte verdiene i spørringene.
  • Standardspørringene ReceiveListLines og PickinglistLines har utkommenterte linjer for ol.batchprofile/pl.batchprofile. Begge spørringene joiner inn BxProduct p, så det enkleste er å bruke p.batchprofile. Da trenger du ikke importere typen på linjene i tillegg.
  • Plukklisteimporten henter reservasjonene som standard. Hver reservasjon blir én linje: joindown_Reservation_via_OrderLine.items.shipmentNo → BxPickinglistLine.Batchid, reservationNo → BatchLine, serialNo → Batchno, useByDateAsDate → ExpiryDate, joinup_Shipment.location → Location og quantity → PickingQuantity. Kontroller at disse er aktive under Import from ERP → pickinglists → Import Mapping.
  • Partilisten i appen (spørringen Batches) leser BxInventory. Den fylles av importen stockbalances (shipment.items.shipmentNo → BxInventory.BatchId, shipment.items.serialNo → BxInventory.Batchno). Importen må være aktiv hvis brukeren skal velge parti fra liste ved plukk, flytting eller lagerjustering.

3. Hvilken variant gjelder?

Oppsett i Business NXT Varemottak Plukk
Partistyrt vare, partiet er reservert på ordren Registrer batch/serienummer (og eventuelt holdbarhetsdato). Business NXT oppretter partiet. Variant B: plukk det reserverte partiet (pl.batchno + pl.batchline, MatchOnScan)
Partistyrt vare, partiet er ikke reservert Som over Variant A: brukeren angir/skanner parti (batchline 0)
Serienummer i serienummertabellen Normalt ingenting (kan aktiveres, se punkt 4) Variant C: brukeren skanner serienummer, som logges i serienummertabellen (addserialnos = true)

Variant B har en sikkerhetsventil: Business NXT får ikke alltid reservert et parti (for eksempel når det mangler beholdning på partiet). Linjen kommer da uten batchnr og håndteres som variant A. PickinglistLines-spørringen i punkt 7 dekker begge tilfellene.

4. Varemottak (ReceiveListLines)

  • UseSerialno = '1' for partistyrte varer med serienummer.
  • UseBatchno = '1' for partistyrte varer med batch/partinummer.
  • UseExpiryDate: for batchlinjer er utløpsdato på som standard når UseBatchno = '1', med mindre UseExpiryDate = '0'. For batch uten holdbarhetsdato må du derfor sette '0' eksplisitt. Utløpsdato vises bare når også clientconfig receivelist / showbatchexpirydate = true.
  • Export field mapping under Export to ERP → receivelist → Export Mapping (standard): lines.batches.batchno → OrderLine.SerialNo, lines.batches.quantity → OrderLine.FinishNow og lines.batches.location → OrderLine.Location. Hver batch sendes som en egen oppdatering av ordrelinjen, slik at Business NXT oppretter ett parti per batch/serienummer. Linjer med mange batcher deles opp etter maxbatchesperrequest (standard 50) i Export Config.
  • Holdbarhetsdato: legg til lines.batches.expirydate → OrderLine.UseByDate. Datoen legges da på partiet.
  • Normalt angir brukeren partinummeret selv på terminalen ved mottak. Partier som allerede er lagt inn på innkjøpsordren og bare skal valideres før ferdigmelding, er utenom det vanlige, men kan settes opp ved behov.
  • Serienummer i serienummertabellen ved mottak (sjelden): sett addserialnos = true under Export to ERP → receivelist → Export Config. Se punkt 5 for hvordan addserialnos virker.

5. Plukk (PickinglistLines)

Variant A: brukeren angir parti (partistyrt vare uten reservert parti)

  • UseSerialno/UseBatchno = '1' for typen.
  • batchline = '0'. Partinummeret (batchid = shipmentNo) som brukeren velger fra partilisten, sendes da på ordrelinjen med standard export field mapping lines.batches.batchid → OrderLine.ShipmentNo og lines.batches.quantity → OrderLine.FinishNow (Export to ERP → pickinglist → Export Mapping).
  • Det skal ikke opprettes reservasjon fra BxLogistics. Når linjen ferdigmeldes med partinummer, oppretter Business NXT selv en reservasjon som settes som plukket og ferdigmeldt.

Variant B: plukk reservert parti (partistyrt vare med reservasjon)

  • Ta med pl.batchno batchno, pl.batchid batchid og pl.batchline batchline. Batchline er reservasjonsnummeret. Når batchline > 0, oppdateres antallet (FinishNow) på reservasjonen i Business NXT i stedet for på ordrelinjen.
  • UseBatchno = 'MatchOnScan' når linjen har batchnr. Brukeren må da skanne samme batch/serienummer som Business NXT har reservert.

Variant C: serienummer i serienummertabellen

  • UseSerialno = '1' for typen. Brukeren skanner ett serienummer per enhet.
  • Sett addserialnos = true under Export to ERP → pickinglist → Export Config. Uten denne blir serienumrene ikke lagret i Business NXT. Med true opprettes én rad per serienummer i serienummertabellen (ordrenr, linjenr, serienummer). Med withQuantity lagres antallet i tillegg, for eksempel SN123 (x2).
  • Har kunden både partistyrte varer og varer med serienummertabell, kan addserialnos styres per linje med kolonnen cfg_AddSerialNos i spørringen (for eksempel 'true' bare for type 4). En tom verdi bruker verdien fra Export Config.
  • Bruker kunden bare serienummertabellen (ingen partistyrte varer), kan batch-mappingene (lines.batches.*) deaktiveres. Da ferdigmeldes linjen med det totale antallet (lines.quantity → OrderLine.FinishNow), og serienumrene legges bare i serienummertabellen.

Utløpsdato ved plukk: clientconfig pickinglist / showbatchexpirydate = true og UseExpiryDate per type. Holdbarhetsdatoen til et reservert parti kommer fra standard importfieldmapping useByDateAsDate → BxPickinglistLine.ExpiryDate.

6. Varer, flytting og lagerjustering (Products)

Bruk rutinespesifikke kolonner. Bare partistyrte varer har beholdning per parti:

  • StockTransfer_UseSerialno / StockTransfer_UseBatchno
  • StockAdjustment_UseSerialno / StockAdjustment_UseBatchno / StockAdjustment_UseExpiryDate

Standardspørringen Products har '1' UseBatchno og eksempel-linjer for StockTransfer med p.batchprofile like 'Insert Value Here'. Erstatt disse med verdiene for kundens typer. Varer med serienummer i serienummertabellen skal ha '0' her, fordi det ikke finnes beholdning per serienummer.

Standard export field mapping: lageroverføring (stocktransfer) sender lines.batchid → OrderLine.ShipmentNo og lines.batchno → OrderLine.SerialNo. Lagerjustering (stockadjustment) sender lines.batchid → OrderLine.ShipmentNo. lines.batchno → OrderLine.SerialNo finnes, men er ikke aktiv.

7. Eksempel: kunde med fire typer

Gruppe 10 / BatchProfile Beskrivelse Oppsett i Business NXT Mottak Plukk
1 Batch Partistyrt Batch B (reservert), ellers A
2 Batch med holdbarhetsdato Partistyrt med holdbarhetsdato Batch + holdbarhetsdato B (reservert), ellers A
3 Serienummer som parti Partistyrt, ett parti per serienummer Serienummer B (reservert), ellers A
4 Serienummer ved plukk Serienummertabellen Ingenting C: serienummer, addserialnos

ReceiveListLines (erstatt de utkommenterte UseSerialno/UseBatchno-linjene i standardspørringen):

case when p.batchprofile in ('3') then '1' else '0' end UseSerialno,
case when p.batchprofile in ('1','2') then '1' else '0' end UseBatchno,
case when p.batchprofile in ('2') then '1' else '0' end UseExpiryDate,
p.batchprofile,

PickinglistLines (erstatt de utkommenterte UseSerialno/UseBatchno-linjene og batchno/batchline-linjene i standardspørringen):

-- Linjetyper:
--   Reservert:      Business NXT har reservert parti (pl.batchno er fylt ut, type 1-3).
--                   Brukeren skanner reservert batch/serienummer (MatchOnScan),
--                   og antallet oppdateres på reservasjonen (batchline = reservasjonsnr).
--   Ikke reservert: linje uten pl.batchno (type 1-3). Brukeren angir parti,
--                   og partiet sendes på ordrelinjen (batchline = 0).
--   Serienummertabell: type 4. Brukeren skanner serienumre, som logges i serienummertabellen.

-- Serienummer angis av brukeren når partiet ikke er reservert, og alltid for type 4
case when p.batchprofile in ('3','4') and coalesce(pl.batchno,'') = '' then '1' else '0' end UseSerialno,

-- Reservert parti må skannes, ellers angir brukeren batch
case
    when coalesce(pl.batchno,'') <> '' then 'MatchOnScan'
    when p.batchprofile in ('1','2') then '1'
    else '0'
end UseBatchno,

-- Utløpsdato bare for type med holdbarhetsdato
case when p.batchprofile in ('2') then '1' else '0' end UseExpiryDate,

pl.batchno batchno,
pl.batchid batchid,

-- Batchline 0 = partiet sendes på ordrelinjen. Ellers oppdateres reservasjonen
case when p.batchprofile in ('1','2','3') and coalesce(pl.batchno,'') = '' then '0' else pl.batchline end batchline,

-- Serienummer til serienummertabellen bare for type 4
case when p.batchprofile in ('4') then 'true' else '' end cfg_AddSerialNos,

p.batchprofile,

Products:

case when p.batchprofile in ('3') then '1' else '0' end StockTransfer_UseSerialno,
case when p.batchprofile in ('1','2') then '1' else '0' end StockTransfer_UseBatchno,
case when p.batchprofile in ('3') then '1' else '0' end StockAdjustment_UseSerialno,
case when p.batchprofile in ('1','2') then '1' else '0' end StockAdjustment_UseBatchno,
case when p.batchprofile in ('2') then '1' else '0' end StockAdjustment_UseExpiryDate,
p.batchprofile,

Clientconfig (Configuration → Profile): receivelist / showbatchexpirydate = true og pickinglist / showbatchexpirydate = true.

Exportconfig: pickinglist / addserialnos kan stå til false når cfg_AddSerialNos styrer det per linje som i eksemplet. Settes den til true, legges også serienumre fra partistyrte varer i serienummertabellen.

8. Varetelling (StockcountProducts)

Se også Varetelling mot Business NXT for selve gjennomføringen av tellingen.

  • Partistyrte varer: Business NXT har beholdning per parti, og tellingen må ha én linje per parti per lokasjon. Aktiver importfieldmappingene shipment.items.* → BxStockCountBatch under Import from ERP → stockcountproducts → Import Mapping (de er ikke aktive som standard). Partiene lastes ned til appen fra spørringen StockCountBatches når stockcount / downloadbatches = true.
  • Standard StockcountProducts setter '0' UseBatchno og '0' UseSerialno. Sett UseBatchno = '1' for partistyrte varer (type 1–3 i eksemplet). For serienummer kan du sette UseSerialno = '1' og UseBatchno = '0' (type 3), slik at antallet blir 1 per serienummer.
  • Varer som bare er satt til telling på partinivå (fanen varepartiliste i Business NXT), kommer ikke med i standard StockcountProducts, som bare leser BxStockCountProduct. Skal kunden telle på den måten, må spørringen utvides med varene fra BxStockCountBatch.
  • Nye partier under telling krever stockcount / addnewbatches = true. stockcount / addbatchidonnewbatch = true (standard) holder nye partier adskilt ved sammenslåing.
  • Serienummer i serienummertabellen (type 4): ingen beholdning per serienummer. Varene telles som vanlige varer, og spørringen trenger ingen tilpasning.

9. Sjekkliste før produksjon

  • Varemottak per type: riktig felt i appen (serienummer, batch, holdbarhetsdato), og partiet blir opprettet riktig i Business NXT med partinummer, lokasjon og eventuelt holdbarhetsdato.
  • Plukk med reservert parti: MatchOnScan stopper feil batch, og antallet blir ferdigmeldt på riktig reservasjon i Business NXT.
  • Plukk uten reservasjon: partiet som brukeren velger, blir brukt på ordrelinjen i Business NXT.
  • Serienummer ved plukk (type 4): serienumrene kommer i serienummertabellen på riktig ordrelinje (addserialnos/cfg_AddSerialNos).
  • Partilisten ved plukk, flytting og lagerjustering viser partier (stockbalances-importen er aktiv).
  • Flytting og lagerjustering på partistyrte varer krever batch/serienummer. Type 4 krever det ikke.
  • Varetelling: talte partier oppdaterer riktig parti, og nye partier kommer inn med riktig partinummer.