This article requires Mobile WMS extension version ...
Case
A customer wishes to start using there own Barcode table when scanning Items.
Proposed solution
To implement using your own custom barcode table instead of using the standard Cross Reference table or Item Reference table (BC17) you should use these two Events.
First you override the GetBarcodeList to collect your own barcodes and then apply you own logic to lookup the Item reference in your own custom barcode table.
Example Code
Apply values from your own barcode table when returning the list of available barcodes to the mobile device.
// [Example]: Add Item Identifiers to _BarcodeList [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB Item Reference Mgt.", 'OnBeforeGetBarcodeList', '', true, true)] localprocedure MyOnBeforeGetBarcodeList(_ItemNo: Code[20]; _VariantCode: Code[10]; var _BarcodeListToReturn: Text; var _IsHandled: Boolean) var ItemIdentifier: Record "Item Identifier"; begin // Intentionally do not exit here if _IsHandled but always add ItemIdentifiers to BarcodeList
ItemIdentifier.SetRange("Item No.", _ItemNo); ItemIdentifier.SetRange("Variant Code", _VariantCode); if ItemIdentifier.FindSet() then repeat if _BarcodeListToReturn = ''then _BarcodeListToReturn := ItemIdentifier.Code else _BarcodeListToReturn += ';' + ItemIdentifier.Code; until ItemIdentifier.Next() = 0;
_IsHandled := true; end;
Handle the search for an Item in your own Barcode table
// [Example]: If Item is found by filtering on ItemIdentifiers then do not search through Item References [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB Item Reference Mgt.", 'OnBeforeSearchItemReference', '', true, true)] localprocedure MyOnBeforeSearchItemReference(_ScannedBarcode: Code[50]; var _ReturnItemNo: Code[20]; var _ReturnVariantCode: Code[10]; var _IsHandled: Boolean) var ItemIdentifier: Record "Item Identifier"; begin ItemIdentifier.SetRange(code, _ScannedBarcode); if ItemIdentifier.Findfirst() thenbegin _ReturnItemNo := ItemIdentifier."Item No."; _IsHandled := true; end; end;
Test your solution
Add your own Custom Barcodes to an Item.
Open "Locate Item" on the mobile device and scan your custom barcode. Now you should see your Item is selected based on the scanned custom Barcode.
Create a Pick including you item with the custom Barcode added.
Select the Pick on the mobile device and scan your custom barcode. Now you should see the pickline containing your item with the custom Barcode selected.