Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Info | ||
---|---|---|
| ||
| ||
Business Central 17 Mobile WMS extension version MOB5...24 |
Case
Excerpt |
---|
A customer wishes to start using there own Item Barcode table when scanning Items on the mobile device. |
Proposed solution
To implement using your own custom
barcodeItem Barcode table instead of using the standard Cross Reference table or Item Reference table (BC17) you should use
thesethe following two Events.
First you override the GetBarcodeList to collect your own
barcodesItem Barcodes and then apply you own logic to lookup the Item
referencein your own custom
barcodeItem Barcode table.
Example Code
Step 1: Apply values from your own
barcodeItem Barcode table when returning the list of available
barcodesitem Barcodes to the mobile device.
Using event event MobItemReferenceMgt - OnAfterGetBarcodeListOnBeforeGetBarcodeList
// [Example]: Add Item Identifiers to _BarcodeList
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB Item Reference Mgt.", 'OnBeforeGetBarcodeList', '', true, true)]
local procedure 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;
Step 2: Handle the search for an Item in your own Item Barcode table
Using event MobItemCrossReferenceMgt MobItemReferenceMgt - OnBeforeSearchItemCrossRefOnBeforeSearchItemReference
// [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)]
local procedure 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() then begin
_ReturnItemNo := ItemIdentifier."Item No.";
_IsHandled := true;
end;
end;
Test your solution
- Add your own Custom custom Item Barcodes to an Item.
- Open "Locate Item" on the mobile device and scan your custom barcodeItem Barcode. Now you should see your Item is selected found based on the scanned custom Barcodevalue.
- Create a Pick including you item Item with the custom Item Barcode added.
- Select the Pick on the mobile device and scan your custom barcodeItem Barcode. Now you should see the pickline containing your item with the custom Item Barcode selected.