• Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ

Olof Simren - Microsoft Dynamics 365 Business Central Blog

  • Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ

Shop Floor Barcode System

April 10, 2014 Posted by Olof Simren Development, Manufacturing, Warehouse 14 Comments

In 2005 I developed a simple barcode system that allowed you to put barcodes on printouts for displaying the documents in Microsoft Dynamics NAV. Initially the system was called ‘Document Lookup’ because it was exactly what it did; you scanned the barcode and Dynamics NAV displayed the form in the client. This barcode system turned out to be a big success and it was extended to perform different functions as well (such as creating picks, finishing production orders, etc.). Since then I have used it in most places where I implemented Dynamics NAV and it now goes under the name ‘Shop Floor Barcode System’. Here is how it works:

The concept is quite simple; each barcode has two components separated by a special character (in this case a ‘$’): the first component is a number that identifies what NAV should do when the barcode is scanned, and the second component is the primary key field(s) also separated with a special charter (if more than one field).

For example: when scanning barcode ‘10$PA-00001’ Dynamics NAV knows that ‘10’ means that a Warehouse Put-Away should be displayed and ‘PA-00001’ is the Put-Away to display (and Dynamics NAV then simply runs that page).

All barcodes are being scanned into the same field on a separate ‘Shop Floor Barcode Scan’ page that looks like below.

ShopFloorScan

In many cases this is the only page that is needed on the terminals on the shop floor (or warehouse), the users then scans the barcodes to perform their activities. It becomes very efficient this way.

A Job Card printout can for example look like below, with different barcodes to Show Production Order, Show Components, Create Inventory Pick, Show Production Journal and Finish Production Order.

JobCard

With the above, creating a pick for the production order is as easy as scanning the barcode and wait for it to print (Dynamics NAV will create and print the pick in the same process). Finishing a production order is as easy as scanning the barcode and wait for the confirmation. No more searching for the right document in Dynamics NAV and no more processing the wrong order by mistake. 🙂

The objects involved are one Page (‘Shop Floor Barcode Scan’) and one Codeunit (‘Shop Floor Barcodes Mng’). The page is where the barcodes are scanned and the Codeunit has functions to construct and read the barcodes. The barcodes then runs standard Dynamics NAV functions the same way you can run them in a client (very simple, nothing magic).

Adding a barcode to a printout is as easy as adding the call to the relevant function in the Codeunit to the Report Dataset.

ReportDataset

Then placing it on the Layout and selecting a barcode font.

ReportLayout

In the Codeunit (that is available in the download section) there are predefined functions for the following:

– Display Warehouse Put-Away
– Display Warehouse Movement
– Display Warehouse Pick
– Display Inventory Put-Away
– Display Inventory Pick
– Display Warehouse Receipt
– Display Warehouse Shipment
– Display Transfer Order
– Display Simulated Production Order
– Display Planned Production Order
– Display Firm Planned Production Order
– Display Released Production Order
– Display Finished Production Order
– Create Put-Away for Purchase Order
– Create Pick for Warehouse Shipment
– Create Pick for Production Order
– Create Pick for Sales Order
– Display Production Journal
– Finish Production Order
– Display Production Order Components
– Create Pick for Transfer Order

Once you have the basic running, extending the functionality is easy. You can for example create barcodes for displaying the item tracking page if using lot or serial numbers, generate reclassification journals for moving materials to production, showing the bin contents for an item, displaying custom screens, etc… Basically anything you can do in the client you can also make it run with a barcode.

I use a Code 39 barcode; I think this is the simplest way of printing barcodes. The Codeunit has a function called ‘MakeBarcode’ that just appends an ‘*’ in the beginning and end of what is being barcoded, this way you can just change the font to a Code 39 font and it should work.

MakeBarcode

I have also used Code 128 barcodes before; those have the advantages that they become shorter since they are high-density barcodes. If you want to use a Code 128 barcode you need to change the ‘MakeBarcode’ function to generate a string that can be printed as Code 128. I might make a future post about this.

I know that the special character I use (‘$’) sometimes causes issues when used with different character sets or barcode fonts (I have implemented this in different European countries as well as in the US and China). If you bump into this, just open the Codeunit and replace ‘$’ with something else using the replace all feature. I have used ‘&’ in places where ‘$’ didn’t work.

If you are a NAV programmer and you are looking at the code you probably thinking; why not using Record IDs or Positions in the barcodes? That would probably work, but the barcodes then becomes even longer, so I decided to us the special character and separate the primary key fields this way.

This solution works best if the scanner is programmed to submit a return after each scan, then the users does not need to use the keyboard during the scan.

Creating a desktop shortcut for the scanning page on the terminals is not a bad idea, then modifying the MenuSuite is not required and it is easy to find it on the terminal.

ShopFloorScanShortcut

Search the Microsoft help about how to create shortcuts.

If you download and use this, let me know what people think!

I know you will like it! 🙂

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X

Related


Discover more from Olof Simren - Microsoft Dynamics 365 Business Central Blog

Subscribe to get the latest posts sent to your email.

Tags: BarcodeDevelopmentProductionWarehouse
14 Comments
Share
10

About Olof Simren

I am a Microsoft Dynamics NAV and 365 Business Central Expert, I started implementing Microsoft Dynamics NAV in 2002, back then it was called Navision Attain. Throughout the years there has been many exciting implementations in different parts of the world, all of them with different challenges but with one common theme; manufacturing. As a consultant, I bring over 20 years of experience in implementing Microsoft Dynamics NAV and 365 Business Central within manufacturing and distribution companies. The services I offer includes project management, consultation, development and training. Feel free to contact me if you need help with anything related to Microsoft Dynamics NAV or 365 Business Central. I work through my company Naviona where I team up with other skilled Microsoft Dynamics NAV and 365 Business Central Experts.

You also might be interested in

Reversing Production Output and Consumption

Oct 27, 2016

Production orders in Dynamics NAV allows you to consume both[...]

View Change Log from Ribbon

Apr 25, 2014

The Change Log in Microsoft Dynamics NAV is used to[...]

Batch Creation of Warehouse Shipments

May 10, 2015

In one of my previous blog posts about processing shipments[...]

14 Comments

Leave your reply.
  • Bartosz
    · Reply

    March 20, 2015 at 4:13 AM

    Hi Olof,

    thanks for a very nice article.
    I can’t find how to create shortcut to NAV without Navigation Pane.
    Could you post some example?

    Thanks in advance.

    Bartosz

    • Olof Simren
      · Reply

      Author
      August 14, 2015 at 8:10 AM

      Hi Bartosz,
      Here are some instructions and examples;
      https://msdn.microsoft.com/en-us/library/dd338670.aspx

      Just like Torsten asked below, the client will start if you don’t have it running, but you don’t need to use the navigation pane.

      Sorry for a late reply, I am trying to reply on all questions, but sometimes I miss stuff. But I guess it is better late than never. 🙂

      Have a great day!

      /Olof

  • Torsten
    · Reply

    August 14, 2015 at 7:03 AM

    Hi Olof,

    I like your blog very much as it is cearly structured and helpful.

    But I must ask the same question as Bartosz: how can you call a page from desktop without starting the role center. When I try this the common way via hyperlink the page, the role center starts in the background.

    Thank you very much in advance.

    Torsten

    • Olof Simren
      · Reply

      Author
      August 14, 2015 at 7:59 AM

      Hi Torsten,
      Yes, you need the client running. The idea with the shortcut was just to provide an as simple as possible access to the page you scan in (if that is all the user needs).

      /Olof

  • Brian
    · Reply

    January 25, 2016 at 3:10 PM

    This sounds like a great way to have the barcodes drive the processing. Since I am new to warehouse processing, I am having a hard time determining which documents to add the barcodes to in order to create the desired function.

  • Divyesh Parmar
    · Reply

    August 16, 2017 at 5:38 AM

    Hi, I still have a question olofsimren on each input still user need to press enter to validate the code logic behind it. Is there a way without pressing enter the barcode field gets clear?

    • Olof Simren
      · Reply

      Author
      August 16, 2017 at 7:45 AM

      Hi Divyesh,
      Yes, the scanner should be programmed to send an enter after each scan, most scanners does this as default, other needs to be programmed.
      You typically program them by scanning some barcodes in the manual.

      /Olof

  • Swati Persaud
    · Reply

    May 31, 2019 at 10:35 AM

    Hi, we would like to implement this job card with bar coding system. Our Nav consultant advised us the following: ” I cant do an external app that would communicate with NAV trough webservice. Suggestion from this article is that you have an app that transfers data to NAV via webservice. This is smart because it eliminates the need for additional NAV licences. That software can use one license and everyone connects to that software.” Is this true, we will not need additional Nav licenses for the Production floor? Additionally, is this an out of the box solution (or an app) that can be purchased and integrated with our system?

    Thank you,

    Swati

    • Olof Simren
      · Reply

      Author
      June 4, 2019 at 5:46 AM

      Hi Swati,
      I think that’s partially true. From a technical point of view, that’s how it works, you can have a lot of devices communicating with NAV through a single web service session and it will work. But from a licensing point of view, I think you will need to purchase licenses anyway to be covered correctly without violating the licensing agreement. It is called ‘Multiplexing’, check the licensing guide from Microsoft. Don’t take my word for it.
      There are a lot of add-ons that does this for you as well. What we typically do is to advice our customers to purchase scanners with the Android operating system, then install the NAV app on them and you have a connection from the scanner to your NAV system. You will then have to create some simplified pages in NAV to make it user friendly, but this works well (and this way you can use tablets as well).

      /Olof

  • Suzanne
    · Reply

    June 12, 2019 at 10:15 AM

    Hello Olof, I love this and we would like to implement this. We are using NAV2013r2 and Lot track all. I was wondering if there was a easy way to incorporate Item tracking with Warehouse Receipts and Warehouse shipments into this. We would like to scan the lot nos. and qtys for the receipt or shipment all at once then post. Is this possible. I was thinking of looping through the lines and creating the necessary reservation entries, but I don’t know enough about how these then get posted to the Item ledger entries and tracking specs. I was wondering if anyone else had ever done this before in this way. With the easiest scenario, I guess we could scan the receipt or shipment to show the warehouse document, then navigate to the item tracking for each line manually and then scan the lot and key in the qty. What I was looking for, was an easier way to record all the scan lot number and Qtys for the document at once. Looking for feedback on this. Thanks!

    • Olof Simren
      · Reply

      Author
      July 5, 2019 at 8:03 AM

      Hi Suzanne,
      I don’t see why not, I have personally not done it with this barcode system, but it sounds very doable.
      You could also do something where you scan a barcode and the system opens up the item tracking lines for that document line, and in that page you scan in your lot numbers. This would be fairly easy do do (since it is more or less standard functionality).

      Hope this helps.

      /Olof

  • Matthias
    · Reply

    July 30, 2019 at 10:41 PM

    Hi Olof,

    I love your website and thank you for being so kind to offer these solutions.

    Do you have any plans to rewrite these apps, in particular the Shop Floor Barcode System, for Business Central?

    BC is such a great ERP without breaking the bank right away and getting over-complicated, the former crucial for startups, but there seems to be a lack of affordable add-ons for warehouse management.

    Thanks!

    Matthias

    • Olof Simren
      · Reply

      Author
      August 18, 2019 at 8:39 AM

      Hi Matthias,
      Yes, that’s actually something we have in the works. We have developed some solutions for manufacturing, warehouse and assembly that’s registered with Microsoft as add-ons, they are in beta testing with a handful of customers now and will be released to the public in the end of the year is the plan.
      Agree that there is a need for this. 🙂

      Cheers!

      /Olof

  • Pradeep
    · Reply

    August 11, 2022 at 11:49 PM

    Hi OlofSimren,
    I like this post very much, this is exactly what we are looking for our organization.
    we would like to implement this concept using NAV2016r2 with item tracking number for QC confirmation, Production journal posting, warehouse shipment for sales.
    It will be great if you could share those codes with us.

Leave a Reply

Your email is safe with us.
Cancel Reply

Subscribe to My Blog via Email

Check Out Our Apps in AppSource

My Dynamics NAV Partner

Naviona, LLC

Categories

  • Assembly (3)
  • Development (35)
  • Finance (14)
  • General (28)
  • Inventory (24)
  • Manufacturing (36)
  • Miscellaneous (27)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in AI AppSource Assembly Assembly BOM Business Central CAL Capacity Consumption Contact Copilot Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Item Tracking Low-Level Code MRP NAV 2015 NAV 2016 Output Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Routing Sales Sales Order Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment Work Center

Recent Posts

  • Business Central Configuration Audit using Vibe Coding
  • Copilot in Planning Parameter Worksheet
  • Copilot in Planning Worksheet
  • Copilot Inventory Queries
  • Record Deletion Tool for Business Central in AppSource
  • Reopen Finished Production Orders
  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)

Categories

  • Assembly
  • Development
  • Finance
  • General
  • Inventory
  • Manufacturing
  • Miscellaneous
  • Purchase
  • Sales
  • Warehouse

Contact Us

We're currently offline. Send us an email and we'll get back to you, asap.

Send Message

Categories

  • Assembly (3)
  • Development (35)
  • Finance (14)
  • General (28)
  • Inventory (24)
  • Manufacturing (36)
  • Miscellaneous (27)
  • Purchase (9)
  • Sales (11)
  • Warehouse (7)

Tags

.net Add-in AI AppSource Assembly Assembly BOM Business Central CAL Capacity Consumption Contact Copilot Costs Customer Development Dimensions Excel Finance Flushing General Ledger Inventory Item Item Tracking Low-Level Code MRP NAV 2015 NAV 2016 Output Planning Production Production BOM Production Orders Purchase Orders Receipts Reporting Reports Routing Sales Sales Order Stockkeeping Unit Subcontracting Task List Warehouse Warehouse Shipment Work Center

Recent Posts

  • Business Central Configuration Audit using Vibe Coding
  • Copilot in Planning Parameter Worksheet
  • Copilot in Planning Worksheet
  • Copilot Inventory Queries
  • Record Deletion Tool for Business Central in AppSource
  • Reopen Finished Production Orders
  • XML Buffer and CSV Buffer Tables
  • Functionality Improvements in NAV 2017
  • Reversing Production Output and Consumption
  • Return Merchandise Authorization (RMA)

Recent Comments

  • Olof on Business Central Configuration Audit using Vibe Coding
  • Andrew Trayfoot on Business Central Configuration Audit using Vibe Coding
  • Barrett Allen on Reopen Finished Production Orders
  • Kateryna on Business Central Configuration Audit using Vibe Coding
  • Takeshi Setoya on Reopen Finished Production Orders
  • Steve on Consignment Inventory
  • Olof Simren on Copilot in Planning Worksheet
  • Omaer Amjad on Copilot in Planning Worksheet

© 2026 · Olof Simren

  • Home
  • About Me
  • Contact Me
  • Downloads
  • White Papers
  • Web Sites
  • Post List
  • Articles
  • FAQ
Prev Next