FS 344085 SCR-344060-05 UDF GS1 Barcode Extraction

From Calidus HUB





Aptean Logo.png







Oak Furniture Land

UDF GS1 Barcode Extraction


CALIDUS ePOD

25th July 2017 - 0.2
Reference: FS 344085 SCR-344060-05












































Functional Overview

Client Requirement

SCR-344060-05: Container UDF Barcode Extraction Changes

There is a requirement to capture the Lot number portion of the barcode scan and pass this back to the WMS/ERP.

Additionally, in the instance of a failed scan (container or Lot), the customer would like a facility to take a photo.


Solution Overview

Both of these requirements will be achieved through configuration of a Container user-defined form (UDF) against the items. This will allow the user, after scanning the Item ID, to enter the Lot number and potentially a photo.


This will be prompted as "Product Barcode" on the form. The driver will scan the Product Barcode in this field. The form will store the lot extracted from the barcode scanned (with validation).

The product barcode is in GS1 format, and contains:

  • 91 - Agreed between suppliers - in this case this is confirmed to be the numeric Product ID, representative of the product code. This is up to 30 characters, but will predominantly be 4 numeric characters.
  • 10 - Batch or Lot Number. This is up to 20 characters, but will predominantly be 5 numeric characters.

The photo will be present, labelled as "Missing Barcode" and allow as many photos as the driver requires.

Both of these items will be optional entry by the driver, and may be skipped.

The application will require changes to this UDF functionality for the following purposes:

  • Recognise GS1 (UCC/EAN-128) barcodes
  • Extract the correct AI (Application Identifier) for the Lot number from the barcode scanned

The driver can select to start this UDF page at any time against any Item by pressing the item in the list and selecting Product Barcode'


Scope

This change will be applied to system version 3.X.


Set-up

Pre-requisites

Menu Structure

Data

All items (containers) for the site will be configured to require a Lot number scan and a Photo, through the configuration of Container UDF for all items scanned for the Site, as follows:

   <FORM NAME="Lot Number" REQUIRED="Y">
       <FIELD ID="LOT_NUMBER">
           <TEXT>Lot Number</TEXT>
           <FORMAT>N</FORMAT>
           <REQUIRED>N</REQUIRED>
           <ACTION>GS1:10</ACTION>
           <REGEXP>[0-9]{1-20}</REGEXP>
       </FIELD>
       <FIELD ID="BARCODE_PHOTO">
           <TEXT>Missing Barcode</TEXT>
           <FORMAT>P</FORMAT>
           <REQUIRED>N</REQUIRED>
           <ACTION>N</ACTION>
       </FIELD>
   </FORM>

This is configured through the UDF Configuration screen on the Admin system: REQ 3440085 Admin UDF Config1.png
Admin UDF Configuration, showing GS1 Barcode types


Functional Description

Admin UDF Configuration Screen

The UDF Configuration screen (udf_config.aspx) will be modified for this change.


A Validation field (labelled as such) will be added to this screen when entering fields, under the existing fields. This will allow entry of technical regular expressions for validation. These are valid for Text, Text Area and Numeric fields only. When saved, these will be saved into a REGEXP tag against the field.


The Barcode drop-down list will be modified to allow barcode scanning for Text, Text Area and Numeric field types only. The list will be extended to add the supported AI types.

For example: This should be defined in the List Items list, so that new AIs can be added as required. The value of this will be sent in the existing ACTION tag:

  • "P" - "Photo"
  • "B" - "Barcode (Whole Value)"
  • "N" - "None"
  • "GS1:10" - "GS1 AI 10 (Batch Number)"
  • "GS1:91" - "GS1 AI 91 (Company Internal Information)"
  • "GS1:3701" - GS1 AI 00 (SSCC-18)"
  • etc

The list of GS1 barcode types to support in this list (on top of the 3 existing values) is as follows:

Key Description
GS1:00 GS1 AI 00 (SSCC-18)
GS1:01 GS1 AI 01 (GTIN-14)
GS1:10 GS1 AI 10 (Batch Number)
GS1:11 GS1 AI 11 (Production Date)
GS1:15 GS1 AI 15 (Sell by Date)
GS1:21 GS1 AI 21 (Serial Number)
GS1:240 GS1 AI 240 (Addn Product Identification)
GS1:37 GS1 AI 37 (Number of Units Contained)
GS1:90 GS1 AI 90 (Mutually Agreed)
GS1:91 GS1 AI 91 (Company Internal Information)
GS1:92 GS1 AI 92 (Company Internal Information)
GS1:93 GS1 AI 93 (Company Internal Information)
GS1:94 GS1 AI 94 (Company Internal Information)
GS1:95 GS1 AI 95 (Company Internal Information)
GS1:96 GS1 AI 96 (Company Internal Information)
GS1:97 GS1 AI 97 (Company Internal Information)
GS1:98 GS1 AI 98 (Company Internal Information)
GS1:99 GS1 AI 99 (Company Internal Information)

Note Note: Although all of these types are supported, for this change only 10 (Lot) and 91 (Company-agreed, in this case the product barcode) will be used. However, adding these will accrue no additional development charge, as this list will simply be stored as a list in the database, for reference.


Mobile Device Changes

The existing UDF functionality (styling.js, method CreateUDFields2) will be modified to support this change.


The following AIs will be supported by this extraction:

AI Description Data Format
00 Serial Shipping Container Code(SSCC-18) 18 digits – numeric
01 GTIN-14 14 digits – numeric
10 Batch Number 1-20 alphanumeric
11 Production Date 6 digits: YYMMDD
15 Sell by Date (Quality Control) 6 digits: YYMMDD
21 Serial Number 1-20 alphanumeric
240 Additional Product Identification 1-30 alphanumeric
37 Number of Units Contained 1-8 digits
90 Mutually Agreed Between Trading Partners 1-30 alphanumeric
91 Company Internal Information 1-30 alphanumeric
92 Company Internal Information 1-30 alphanumeric
93 Company Internal Information 1-30 alphanumeric
94 Company Internal Information 1-30 alphanumeric
95 Company Internal Information 1-30 alphanumeric
96 Company Internal Information 1-30 alphanumeric
97 Company Internal Information 1-30 alphanumeric
98 Company Internal Information 1-30 alphanumeric
99 Company Internal Information 1-30 alphanumeric

Note Note: Although these types are supported, for this change only 10 (Lot) and 91 (Company Internal Information, in this case the product barcode) will be used. However, adding these will accrue no additional development charge, as this list will simply be stored as a list in the database, for reference.

These will be added as an object in the code, as follows:

  • AI - the AI, a string ID.
  • Min - the minimum length
  • Max - the maximum Length
  • Type - the type, values "A" - alphanumeric, "N" - numeric, "D" - date

This object will be used to look up the minimum and maximum lengths based on the AI provided.


The device will extract the required AI from the UDF field parameters and compare to this list to determine the length required and then create a pattern to extract the data. The pattern will be worked from the following example:

  • .*(?:(?:^|\(|\|)
  • The AI, extracted from the UDF Field parameters.
  • \)?(
  • The type, which will be based on the type of the AI. For "A" - alphanumeric - use "." (period). For any other ("N" - numeric, "D" - date) use "\d"
  • The length, which will be built from the min and max length values, separated by a comma if the max length property is populated and different to the min length property, surrounded in curly brackets, for example {1,20}, {6}, etc.
  • )).*

For example

  • ID "GS1:10" will extract 10 as the AI and lookup the length in a fixed array keyed on the AI, which will result in the pattern .*(?:(?:^|\(|\|)10\)?(.{1,20})).* on the device.
  • ID "GS1:91" will extract 91 as the AI and lookup the length in a fixed array keyed on the AI, which will result in the pattern .*(?:(?:^|\(|\|)91\)?(.{1,30})).* on the device.
  • ID "GS1:15" will extract 15 as the AI and lookup the length in a fixed array keyed on the AI, which will result in the pattern .*(?:(?:^|\(|\|)15\)?(\d{6})).* on the device.

The device will use the replace function to return just the matched data.

Therefore scanning the following (where "\|" is the FNC1 character) and requesting 10 AI (the lot) will all result in the Lot number being extracted:

  • 911408|1016274
  • 1016274|911408
  • 1016274

Scanning the following will not extract the lot number, as it is not contained in the data:

  • 9114108

Keying in the following and requesting 10 AI (the lot) will all result in the Lot number being extracted:

  • (10)16274
  • (91)1408(10)16274
  • (10)16274(91)1408

Keying in the following will not extract the lot number as it is not contained in the data:

  • (91)1408

UDF Fields created by this function add a Barcode button (and are considered barcode-enabled) if the ACTION tag value is "B". This will be extended if the value is not "P" or "N".

For barcode-enabled fields (i.e. not ACTION "P" or "N"), data in the field will be cleared on entry and the device will move to the next field to enter, whether the value is keyed or scanned through the application scanner or an integrated physical barcode scanner.

On entry of a GS1-barcode-enabled field (i.e. not ACTION "P", "B" or "N"), the barcode value will be extracted immediately and replace the data in the field, using the pattern generated from the AI.

Validation of the field entered in this way (in this case, the Lot Number) need not be affected - no additional validation is required. However, it is recommended when setting up this specific Lot number field for this UDF configuration that this be set to a numeric only field, validating as numeric only.


So the process on the device will be as follows:

  • The user is prompted to enter the product barcode.
  • They use the scanner to scan "911408|1016274" (where "\|" is the FNC1 character).
  • When entered, the Lot data is extracted and the data in the field on the screen is changed to "16274".
  • Clicking on the field again or the barcode button will blank the data entered, ready for another keyed or scanned entry.
  • Scanning (or keying) a barcode without the data required (in this case lot, AI 10, for example (91)1408) will result in no value being extracted into the field on the screen, leaving it blank.
  • Scanning (or keying) a barcode that extracts a non-numeric value in this field will result in an error when the user confirms entry of the field.


Appendix A: TEST PLAN

Test Script / Scenario ReferenceUDF GS1 Barcode ExtractionCall Number(s): 344085 SCR-344060-05
Test Script / Scenario DescriptionTesting GS1 barcode scanning.PASS / ISSUES / FAIL
Menu AccessN/A 
Pre-requisitesA system configured as Oak Furniture Land.Tested By:
 
Test ObjectiveTo test that: GS1-barcode AIs may be configured against UDF and; GS1 barcodes may be scanned and extracted as required by the mobile device application.Date:
 


Step Action Result Remarks P/F
1 Admin      
         
1.01 Add a new UDF configuration (suggesting name "Product Barcode", type Container UDF, for the Site). Create a new field. Text, Text Area and Numeric fields may be configured with a GS1 Barcode type. All others may not.    
1.02 Create a Numeric field with a GS1 barcode type (suggesting id LOT_NUMBER, action GS1:10 - Batch). Set the Validation field (to .*{5}). Save the field and the form. No errors.    
1.03 Open the new configuration. Select the new field. The field is configured as it was originally set.    


Step Action Result Remarks P/F
2 Mobile Device      
  Configure Container UDF for the site in the format required by the customer. Create a job with several containers (items). Create GS1 barcodes in the format as required by the customer, and some that do not contain a batch (AI 10). Complete these tests with a device that has an integrated barcode scanner.      
2.01 Log on to the device, start and arrive to the job, and long-press against a container. The option for Product Barcode is present.    
2.02 Complete a container (with the Deliver option). The Product Barcode UDF screen is displayed, asking for a Product Barcode and a Photo. The product barcode has a barcode button. The Product Barcode is highlighted immediately.    
2.03 Scan a correct product barcode. The lot number is extracted and placed in the field.    
2.04 Click the field again. The barcode value is removed    
2.05 Key in a valid product barcode The lot number is extracted and placed in the field.    
2.06 Click the Barcode button The app displays a camera window for scanning a barcode.    
2.07 Scan a correct product barcode. The lot number is extracted and placed in the field.    
2.08 Repeat the test, scanning a Product Barcode without a Batch number. The scan is accepted, but no Lot number is extracted.    
2.09 Scan a correct product barcode and click Save. The container list is displayed, and this item is removed.    
2.10 Complete another container. On the Product Barcode screen, do not scan a lot number, but instead take a photo. The photo is taken and a new Photo bar is present for another photo if required.    
2.11 Click Save. The container list is displayed, and this item is removed.    
2.12 Complete another container. On the Product Barcode screen, do not scan a lot number, or take a photo. Click Save. The container list is displayed, and this item is removed.    
2.13 Complete the job. Check Admin. All photos and UDF are displayed as expected.    


Appendix B: Quote & Document References

Cost Details
Activity Estimate
No. of Days
No. of Days Rate per Day (£) Cost (£ Exc. VAT)
Requirements 0.00 0.00 750 £0.00
Change Request Evaluation 0.00 0.00 750 £0.00
Functional Specification 1.00 1.00 750 £750.00
Technical Specification 0.00 0.00 750 £0.00
Development 4.00 4.00 750 £3,000.00
Testing and Release 0.50 0.50 750 £375.00
Implementation 0.25 0.25 750 £187.50
Project Management 0.25 0.25 750 £187.50
 
TOTAL 6.00 6.00   £4,500.00
Estimate excludes training, release to live and go live support.

B.1 References

Ref NoDocument Title & IDVersionDate
1REQ 344060 Oak Furniture Land Solution Design0.824/07/2017


B.2 Glossary

Term Definition
EPOD Electronic Proof of Delivery. The OBS EPOD system is CALIDUS ePOD.
CALIDUS eSERV The OBS mobile system to complete Service functionality in the field. This is part of the CALIDUS ePOD system.
PDA The mobile device on which the C-ePOD system will run in the field. This can be a Phone, EDA or industrial PDA, running Android.
DAL Data Access Layer. A mechanism for accessing data by the system that is removed from the application, allowing for simplified access and providing protection to the data, as only approved DAL methods can be used to modify it.
GPS Global Positioning System. A mechanism of retrieving accurate positioning information in the form of Latitude and Longitude (Lat-Long) co-ordinates from a device.
GPRS, 3G, HSDPA, Data Service All terms referring to mobile device network connectivity, and the speed at which the device connects to the internet.


B.3 Authorised By


Matt Turner

OBSL Account Manager
_____________________________

Louis Merrett

Customer Representative
_____________________________