Barcode Assignment
One document per company. One line per screen. The line says whether that screen scans and whether it prints. Behind the line, the Actions say what a scan does there and the Template says how a code is built there.
What it is for
This is where barcode behaviour is switched on screen by screen. It has the same shape as Process Number Range assignment: a header that names only the Legal Entity, and below it a grid of processes.
Each grid line is one screen, named by its process code. Two link columns on the line, Actions and Template, each open a sub-grid that belongs to that line.
A screen without an active line here has no barcode behaviour at all for that company: no Scan barcode button, no Generate barcode button, no Print links, and the scanner is not listened to.
The engine looks for the line by the legal entity the user is logged in to and the screen he is on. A company gets exactly one document, and a screen appears on it at most once. Saving a second line for the same screen is refused.
Every field, in plain words
Header
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Legal Entity | The company this assignment belongs to | The company | Required. One document per company |
Process grid: one line per screen
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Screen | The process code of the screen | ICPL, PCPO | Required. Once per document |
| Purpose | Why this screen is here | Scan batches while picking | For the next consultant |
| Nomenclature | The rule book this screen reads and builds with | A nomenclature, or empty | Empty when scanning means DEFAULT. Empty when generating means the company default on Legal Entity, then DEFAULT |
| Scan Enabled | The screen accepts scans | Tick to scan | Shows the Scan barcode button and starts listening for the scanner. Off, a scan is answered "scanning is switched off" |
| Generate Enabled | The screen may produce codes | Tick to print | Shows Generate barcode, or, when the line has PRINTCELL action lines, their Print links instead of it. Off, generation is answered "generation is switched off" |
| Active | The line is in force | Tick it | An inactive line is the same as no line |
| Capture Mode | How scans reach the screen | Leave empty, or field | With field, the screen does not listen to the keyboard for a scanner. Scans come through the Scan barcode button only. Any other value listens for the scanner while the screen is the open tab |
| Prefix Character | A character the scanner sends before every code | Usually empty | Set it only if the scanner is programmed to send one |
| Suffix Character | The character the scanner sends after every code | Usually empty | Empty means Enter, which is what scanners send out of the box |
| Inter-key (ms) | The longest gap between two characters that still counts as a scanner | Usually empty | Empty means 30. A scanner types far faster than a person, and this is how the two are told apart. Raise it for a slow scanner |
| Target Field | The field the cursor returns to after a scan | A field id | Used together with Refocus After Action |
| Target Grid | Recorded on the line | Usually empty | Not read by the scan handling today |
| Target Column | Recorded on the line | Usually empty | Not read by the scan handling today |
| Refocus After Action | Put the cursor back in Target Field once the action has run | Tick for continuous scanning | Lets the user scan again without touching the mouse |
| Allow Unknown Code | Let a code through even when it cannot be read or found | Usually off | Off, an unreadable code is refused and an unknown one is answered nothing matched. On, the scan carries on to the actions without a record |
| Symbology | The printed form of the codes this screen produces | code128, code39, ean13, upca, qr | Empty means code128 |
| Auto Generate | Recorded on the line | Usually empty | Nothing generates a code by itself from this today. A code is produced when Generate barcode or a Print link is pressed |
| Actions | Link. Opens the Actions sub-grid of this line | What a scan does on this screen | |
| Template | Link. Opens the Template sub-grid of this line | How a code is built on this screen |
Actions sub-grid: what a scan does on this screen
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Sequence | The order actions are considered in | 1, 2, 3 | Lowest first |
| Context Activity | When the action applies | view, create, edit, list, or empty | Empty or any means always. list is the document list, before a record is open |
| Scanned Entity Type | The kind of thing scanned that this action is for | ITEM, LOT, EMPLOYEE, or empty | Empty or any means every kind. Must match the Entity Type from the nomenclature rule or the resolver |
| Action | What to do | One of the action codes below | |
| Target | A value the action needs | Depends on the action | For RUNTOOLBAR the button. For PRINTCELL the prefix of the label |
| Field Id | The header field the action works on | A field id | For SETFIELD, OPENHELP, and a PRINTCELL line that prints a header field |
| Grid | The grid the action works on | A grid number | For SETGRIDCELL, ADDGRIDLINE, PRINTCELL. Empty on a PRINTCELL line that prints a header field |
| Column | The column the action works on | A column id | For ADDGRIDLINE this is the key column, the one the scanned record's code goes into |
| Quantity Column | The column that counts repeats | A column id | For ADDGRIDLINE and SETGRIDCELL. With it, scanning the same thing again adds one to this column instead of adding a line or filling the cell again |
| Report | The report to open | A report number | For OPENREPORT |
| Object No | The screen action to run | An action object | For RUNACTION |
| Help Object | The lookup to open | A help object | For OPENHELP. Empty uses the one from the resolver |
| Action Label | The words shown for this action when the user must choose | Add to lines, Open the item | Empty shows a standard name for the action |
| Confirm First | Recorded on the line | Usually off | Sent to the screen with the action. No confirmation is asked for today |
| Confirmation Text | Recorded on the line | Usually empty | As above |
| Stop After | Run this action and consider no others | Tick for the normal case | See how one action is chosen, below |
| Active | The action is in force | Tick it |
The action codes
SETFIELD- writes the code of the record that was found, or the scanned code itself when no record was found, into the header field named in Field Id.LINK- records the scanned code in the Barcode Register against the record that is open, so a later scan of that code finds this record. It is for a code that is already on the goods, such as a supplier's or a carton's barcode. The record must be saved first. A code already registered to another record is refused.SETGRIDCELL- writes the same value into Column of Grid, on the line that is selected, the same as if it had been typed there. The grid needs a line: with none, the user is asked to add one first. If Quantity Column is set and a line already holds the scanned value, that line's quantity goes up by one instead, the selected line first. An empty selected line always takes the value.ADDGRIDLINE- adds a line to Grid and writes the found record's code into Column, the same as if it had been typed there, so the screen fills the name, unit and price as usual. If Quantity Column is set and the record is already on a line, that line's quantity goes up by one instead. A carton or pallet code, one whose line in the Barcode Register has a Unit, gets a line of its own in that unit, and scanning it again adds one to that line.OPENDOC- opens the record that was scanned.OPENREPORT- opens the report named in Report.OPENHELP- opens the lookup on the field named in Field Id.RUNACTION- runs the screen action named in Object No.RUNTOOLBAR- presses the toolbar button named in Target.CALLMETHOD- hands the scan to the screen's own scan handling. If the screen has none, the user is told so.NAVIGATE- with TargetMENU, goes back to the document list.NEWDOC- starts a new document on the screen whose process code is in Target.SHOWINFO- shows what was scanned and does nothing else. This is also what an unrecognised action code does.PRINTCELL- not something a scan does. It puts a Print link on a grid column, or a print icon beside a header field. See below.
How one action is chosen
The engine keeps the active actions whose Context Activity and Scanned Entity Type fit the scan, in Sequence order. PRINTCELL lines are left out.
- None fit: the scan is answered "nothing is configured to happen here".
- A code that is found nowhere is still let through when a
LINKaction fits, because recording an unknown code is whatLINKis for. - One fits, or the first one has Stop After ticked: it runs at once.
- Several fit and the first does not stop: the user is shown the list and picks. Action Label is what he reads.
Print a grid cell or a header field: the PRINTCELL action
A document can be given a barcode from its header with Generate barcode. Some things worth labelling are not header fields. A batch number lives on a line of a grid, and one document can have many.
A PRINTCELL action line answers that by configuration. Fill it like this:
| Field | What to put in it |
|---|---|
| Action | PRINTCELL |
| Grid | The grid that holds the column |
| Column | The column whose values are to be labelled |
| Target | The prefix printed in front of the value, such as 06 for a batch |
Every non-empty cell of that column then shows a Print link. Pressing it opens the barcode label dialog for that one value. The code on the label is the prefix followed by the cell value, and the readable text under it is the cell value alone. The printed form is the Symbology of the process line.
To print a header field instead, leave Grid empty and put the field in Field Id. When that field holds a value, a barcode icon, Print barcode, shows beside it and works the same way.
Three things to know:
- The links appear only when Generate Enabled is ticked on the process line.
- Context Activity and Scanned Entity Type are not used on a
PRINTCELLline. - While the line has any
PRINTCELLaction, the screen does not show Generate barcode. - The labels are counted. The first print of a value adds it to the Barcode Register as a label, and each print adds the number of labels sent to its Print Count. The code is still read back by the nomenclature rule for its prefix, not by the register.
Template sub-grid: how a code is built on this screen
The Template is used by Generate barcode on the document. Each line is one segment. The segments are built in Sequence order and joined.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Sequence | The position of the segment in the code | 1, 2, 3 | |
| Segment | The kind of segment | One of the segment kinds below | |
| Application Identifier | The GS1 identifier this segment is announced by | 01, 10 | For an AI segment |
| Field Id | The field of the record the value is taken from | A field id | For FIELD and AI |
| Segment Value | Fixed text, or text with placeholders | 06, or text containing a field id in braces | For LITERAL, EXPRESSION and URL |
| Pad Length | The length the segment is filled out to | 0 for none | Filled on the left |
| Pad Character | What it is filled with | Usually empty | Empty means 0 |
| Required | The segment must have a value | Tick for the key | If the field is empty the code is not built, and the user is told which field |
| Active | The segment is used | Tick it |
LITERAL- the fixed text in Segment Value.FIELD- the value of the record's field named in Field Id.AI- a GS1 element: the Application Identifier followed by the field's value, laid out by the nomenclature's rule for that identifier.EXPRESSIONandURL- Segment Value with each{fieldid}replaced by that field's value.URLis for a QR code that opens a link.CHECKDIGIT- a check digit calculated over the code built so far. The code must be all digits.NUMBER- reserved for a running number. It is not available yet, and a template using it does not build.
A code built from a template gets the company's Barcode Prefix in front, is written to the Barcode Register, and is shown in the label dialog. Pressing Generate barcode again on the same record returns the same code, and the dialog is headed Existing barcode.
The label dialog
Generate barcode, a Print link and the print icon all open the same dialog. It shows the code and asks Labels to print, 1 unless changed. Print opens the browser's print window with one 70 x 40 mm page per label. The tab then says how many labels were sent to print and how many have been printed so far for that code.
Opening the dialog counts nothing. Print Count goes up only by the labels sent to print.
How to configure it
- Create the document and choose the Legal Entity. If the company already has one, open it instead: a second is refused.
- Add a line for the screen. Put its process code in Screen and say why in Purpose.
- Tick Scan Enabled if the screen should read codes, Generate Enabled if it should print them, and Active.
- Leave Nomenclature empty to use
DEFAULT, or choose another. - Leave Capture Mode, Prefix Character, Suffix Character and Inter-key empty for an ordinary scanner.
- Click Actions on the line. Add one action per thing a scan should do, and tick Stop After on each unless you want the user to choose. A screen that handles scans itself needs no action lines.
- Click Template on the line if the document itself should get a barcode. Add the segments in order.
- Save, then close and reopen the screen you configured.
Scenarios
Scan items into an order's lines
On the order screen's line tick Scan Enabled. In Actions add one line: Scanned Entity Type ITEM, Action ADDGRIDLINE, Grid the lines grid, Column the item column, Quantity Column the quantity column, Stop After ticked. Each scan adds the item. Scanning it again raises the quantity by one.
Print a label for every batch on a production order
On the production order's line tick Generate Enabled. In Actions add one line: Action PRINTCELL, Grid flexproductionorderbombatchbalancing, Column batchnumber, Target 06. Walked through in full in Print a batch label on the production order, scan it on Picking List Registration.
Record a supplier's or a carton's barcode on the item
On the item screen's line, Screen PIPL (Release Item In Legal Entity), tick Scan Enabled. In Actions add one line: Action LINK, Stop After ticked. Open a saved item and scan the code printed on the goods. The tab says the code is now linked to the item.
From then on the code stands for the item. On an order screen set up as in the first scenario, scanning it adds the item as if its own code had been scanned. For a carton or pallet code, open the code in the Barcode Register and put the carton's unit in Unit. A scan of it then adds a line in that unit, and scanning it again adds one more carton to that line.
A screen that only needs to listen
Picking List Registration knows what a scanned batch means. It needs a line with Scan Enabled and Active, and no action lines at all.
Offer the user a choice
Add two action lines for the same Scanned Entity Type and leave Stop After unticked on the first. After the scan the user sees both Action Labels and picks one.
What it is connected to
- Legal Entity owns the document, and its Barcode Enabled switch gates Generate barcode.
- Barcode Nomenclature is named on each process line.
- Barcode Identity supplies the Entity Type that action lines are matched on.
- Barcode Register receives every code built from a Template, every code recorded with
LINK, and every label printed from aPRINTCELLlink.
If something looks wrong
- "no barcode assignment for" followed by the screen - the company the user is logged in to has no active line for that screen. Check the Legal Entity on the document first.
- "scanning is switched off for" the screen - the line exists but Scan Enabled is off.
- "generation is switched off for" the screen - Generate Enabled is off.
- "no payload template is configured for" the screen - Generate barcode was pressed and the Template sub-grid has no active lines.
- "nothing is configured to happen here for a" kind of thing - the code was read and found, but no active action line fits that Scanned Entity Type in this activity.
- "No Print link on the column" - Generate Enabled is off on the line, or Grid and Column on the
PRINTCELLline do not match the grid and column exactly, or the cell is empty. - "No Generate barcode button" - Generate Enabled is off, or the line has a
PRINTCELLaction. A screen prints either its document or its cells and fields, not both. - "Add a line first, then scan onto it." - a
SETGRIDCELLscan on a grid with no lines. - "Save the record first, then scan the code." - a
LINKscan on a record that has not been saved. - "That code already belongs to" another record - a
LINKscan of a code registered to a different record. Void it in the Barcode Register first. - "Print Count went up but nothing was printed" - the count is taken when the print window opens, even if it is then cancelled.
- "The scanner types into a field instead of being caught" - the scanner is slower than Inter-key, or it does not send Enter and Suffix Character is empty.
- "Nothing happens when I scan" - the screen is not the open tab, Capture Mode is
field, or the screen was open before the assignment was saved. Reopen it. - "I am asked to choose every time" - Stop After is not ticked on the first action that fits.