Visma.net - Hente salgsordre felter til leveransen

Hvordan hente ut salgsordre felter til leveransen på terminal

I noen tilfeller ønsker man vise ekstra felter som f.eks. Kundens ordrenr. eller Ekstern ref. som ekstra informasjonsfelter på leveransen i Plukk modulen i BxMobile. Ved andre tilfeller ønsker man sende med ekstra informasjon til frakt/ta-systemet (nShift, AxiaFrakt, Logistra etc.) slik at dette kommer med på fraktetikett eller generelt inn i fraktsystemet. 

Visma APIet tillater oss ikke å hente Ekstern ref. eller Kundens ordrenr direkte fra leveranse endpointet (Shipment), vi må derfor hente disse dataene fra salgsordre endpointet (SalesOrder). 

Dette krever oppsett i Imports from ERP og SQL Integration, og Export to ERP dersom det skal sendes ekstra informasjon til fraktsystemet. 

Imports from ERP

I BxAdmin, finn Imports from ERP -> pickinglist

Under Field Mappings, opprett to felter med New mapping. Fra VismaNet salesorder endpointet henter vi ut orderNo, fyll ut salesorder.orderNo i SourceField kolonnen. I Destination skal BxOrder.Orderno benyttes, det er til denne tabellen og kolonnen vi legger informasjonen fra VismaNet. Skal man f.eks. ha ut data fra Kundens Ordrenr. feltet i VN må man legge inn salesorder.customerOrder i SourceField, og bruke BxOrder.CustPO som da er et ledig felt til dette i vår database. Enabled aktiverer feltet, men man må også aktivere Header Only da informasjonen vi henter ut her er ordrehode felter. 

Alternativt kan man kopiere hele kodefliken under, og CTRL-V når du er inne i korrekt importer for å slippe å taste inn alt manuelt.

[{"id":219,"import":4,"sourcefield":"salesorder.customerOrder","destination":"BxOrder.CustPO","destinationtype":"","static":"","enabled":true,"isprimarykey":false,"sourcerow":"","isforeignkeyto":"","importoneline":true,"required":"","ignorezero":false,"comment":null},{"id":220,"import":4,"sourcefield":"salesorder.orderNo","destination":"BxOrder.Orderno","destinationtype":"","static":"","enabled":true,"isprimarykey":false,"sourcerow":"","isforeignkeyto":"","importoneline":true,"required":null,"ignorezero":null,"comment":null}] 

SQL Integration

Gå videre til SQL Integration -> Pickinglist, her må vi joine in BxOrder tabellen og legge opp korrekt felt for visning på terminal. Se eksempel på hvordan spørring til slutt bør se ut. I dette tilfellet har vi kalt feltet poref, men man kan kalle det hva man vil så lenge kolonnenavnet er korrekt. På linje 17 i skjermbildet under har vi lagt ord.custpo poref, og på linje 35 har vi joinet BxOrder tabellen slik: left join bxorder ord on ord.orderno = (select top 1 pl.orderno from BxPickinglistLine pl where pl.pickinglist = p.pickinglist) 
Husk å trykke Run Query i høyre hjørne for å se at spørring kjører slik den skal, deretter Save. 

For å hente inn data til dette feltet kan man enten trykke Run Import på importeren i Imports from ERP (krever ny nok BxEngine versjon), eller åpne Plukk i BxMobile. Er det ønskelig at informasjonen du akkurat har hentet ut skal bli synlig som et eget felt på terminal må det opprettes et Client UI felt til dette. Se vår Client UI dokumentasjon for hvordan dette gjøres. 

Export to ERP

Hvis data som er hentet ut er ønskelig å sende med til et referansefelt i fraktsystemet, i dette tilfellet Consignor (nShift) On-premises, kan man legge til en ekstra mapping under Export to ERP -> consignor (eller axia, logistra, shipmentserver unifaun etc. avhengig av hva man bruker). 
SourceField skal fylles ut med samme navn som vi ga kolonnen i spørringen tidligere, i dette tilfellet poref. Destination er feltet i fraktsystemet som skal fylles ut med data.
Siden Consignor on-premises integrasjonen er basert på filer er det i dette tilfellet felt nr 23 (22 i Consignor) i filen (krever også endringer i Import Setup i Consignor dersom mappinger for ønsket felt ikke finnes der).
Dersom dette settes opp mot et skybasert fraktsystem er det API feltet til fraktsystemet som skal fylles ut her, f.eks. References.7 i Shipment Server sitt tilfelle. 

 

Dette er alt man trenger å gjøre for å hente ut forskjellige felter fra salgsordre endpointet i Visma APIet. Når disse stegene er gjennomført korrekt skal ønskede data bli tilgjengelig for bruk i Plukk modulen.