The normal Barcode Mapping and Barcode Parsing option on the Document Index Fields screen are usually sufficient for populating index fields. However, if your barcode processing requirements are too complex for these options, check the "Use Barcode Processing Script" checkbox and press the Open Script Editor button. This option is available in Document Index Fields and Folder Index Fields:
The methods for both folder and document index field processing are accessed through the BarcodeProcessingScript class.
BarcodeProcessingScript Class
ProcessDocumentBarcodeData Method
The ProcessDocumentBarcodeData method is called whenever a new document is created.
Parameters:
Directions | Parameter | Type | Descriptions |
---|---|---|---|
IN | document | IDocument | The current document |
barcodes | list of IBarcode | The list of barcodes detected on the document's separator sheet |
Example – Check each barcode for a valid PO number. If found, store the number in the document’s notation.
public virtual void ProcessDocumentBarcodeData(IDocument document, IEnumerable<IBarcode> barcodes) { try { string poNumberText = string.Empty; // Locate the Purchase Order barcode foreach(IBarcode barcode in barcodes) { if(barcode.Value.StartsWith("PO", StringComparison.CurrentCultureIgnoreCase)) { // Store the barcode's value, removing the leading letters "PO" poNumberText = barcode.Value.Substring(2).Trim(); // Verify that the remaining characters make up a valid integer. // If so, we've found the value we need, so stop the foreach loop. int poNumber; if(int.TryParse(poNumberText, out poNumber)) break; // The text was no a valid PO number, so reset the local varriable and keep searching. poNumberText = string.Empty; } } // Set the document's notation value to the PO number (or to blank if none was found) document.DocumentNote = poNumberText; } catch (Exception exception) { base.ProcessException(exception); } }
ProcesFolderBarcodeData Method
The ProcessFolderBarcodeData method is called whenever a new folder is generated.
Parameters:
Direction | Parameter | Type | Description |
---|---|---|---|
IN | folder | IFolder | The current folder |
barcodes | IBarcode | The list of barcodes detected on the folder's separator sheet |
Example – Locate the first Data Matrix barcode on the page (if any). If found, set the folder’s note value to the value of the barcode.
public virtual void ProcessFolderBarcodeData(IFolder folder, IEnumerable<IBarcode> barcodes) { try { // Find the first Data Matrix barcode in the list of barcodes IBarcode dataMatrixBarcode = barcodes.FirstOrDefault(b => b.Type == BarcodeTypes.DataMatrix); if(dataMatrixBarcode != null) folder.FolderNote = dataMatrixBarcode.Value; } catch (Exception exception) { base.ProcessException(exception); } }
Comments
Please sign in to leave a comment.