Why the tool
The application was created starting in 2013 out of necessity and for my own use to test barcode label printers; then in 2014 my customer contacted me with a request. I was presented with a challenge – find something to do with the wall-to-wall inventory team during their downtime. Labeling was the most pressing need that my customer had at the time. However, none of these contractors (or I) had Navy ERP access and I did not want to show up at a site and ask the warehouse staff repeatedly to print individual labels for us. So I had to devise a way to easily print labels in bulk, preferably before I showed up on-site. So I took my own Access tool and began turning it into something more user-friendly. I must admit that my early inspiration was NAVSUP BSC’s bin label tool that was written in Excel and VBA. However, because the file was encrypted, I stopped being able to use it in 2013 when its encryption certificate expired and that was the reason I started developing my own tool.
Why MS Access
I had done similar work with LOGMARS and IBS in the Navy for the Trident submarine TRAP program. However, for this project I was constrained to existing technology at each site. This meant relying on what I knew was available and approved in NMCI. Hence the decision to develop in MS Access for networked Intermec PM4i and Zebra S4M printers, using 3″x1″ labels.
Label design
I was not able to get any response to technical questions regarding the original ERP label design. FDSs RMM3300-1948, 1949, 1950, 1951, 1952, 1953, etc. were not helpful.
I was looking for the design of the PDF417 barcode symbol in order to develop a parsing algorithm. No luck. Nobody would answer my calls or emails. Such is life as a contractor.
So I had to reverse-engineer the design. Using a Morotola software tool and a DS670 handheld scanner I logged some scans of Navy ERP labels and was able to determine the field layout byte by byte.
While I was at it, and since the ERP label design was already not MILSPEC compliant anyway, I removed a couple of unecessary fields that did not affect the PDF417 symbol, as well as adding the UI field (why was this ever left out?), and tweaking the layout to avoid the barcode symbol from getting cut-off at the edge of the paper.
Development
I picked up an Intermec PM4i and a Zebra S4M printer from eBay to use for testing and I procured some ribbons and labels to replicate the Navy ERP deployed solution.
I also taught myself ZPL II (the Zebra Programming Language) in order to be able to write the print commands to match what I had reverse-engineered.
From there, writing the application was fairly easy. Since my goal was to let the crew doing the labeling print their own labels as they needed, my goal was to keep the application interface as simple as possible and require the fewest clicks possible to print a label (no offense to SAP; ok, maybe a little).
The first operational use/test of the application was during a labeling project from 26 January to 6 February 2015, where tens of thousands of labels were applied throughout 18 different buildings. The site was fairly satisfied with this project and awareness of the tool began to spread. The rest, as they say, is history.
The disclaimer
This software is not for sale. I do not benefit financially from the use or distribution of this tool, and I do not want any third party to use my code to create a product to sell back to the government.
About me
I have been a Navy Logistician since 1982. I retired from the Navy in 2003 as a Senior Chief Storekeeper (Submarines).
I may not be the smartest computer scientist, but my field of study is computer science, although I am a PhD dropout at the ABD level (ouch).
I have been writing code since 1987 and have been fluent, at one time or another, in about 9 computer languages (Clipper/DBASE/FoxPro, PASCAL, x86 Assembly, C++, Java, Visual Basic, PHP, JavaScript, SQL).
I am also an Adjunct Professor of Computer Information Systems at Florida Tech and of Computer Science at University of the People.
Therefore, I am embarrassed to admit that the code in the application is “hack-ish” due to how it evolved never intended for distribution, and due to my own laziness. There are bits of code repeated everywhere, leftover debugging code, etc. If you are a government user, making use of my code within the rules, feel free to clean things up.