Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleSystem requirementsRequirements

Business Central 17

(or newer)

Mobile WMS extension

v5

MOB5.24

(or newer)

Case

Excerpt
A customer wishes to start using there own Item barcode Barcode table when scanning Items on the mobile device.

Proposed solution

To implement using your own custom Item barcode Barcode table instead of using the standard Cross Reference table or Item Reference table (BC17) you should use the following two Events.

First you override the GetBarcodeList to collect your own Item barcodes Barcodes and then apply you own logic to lookup the Item in your own custom Item barcode Barcode table.

Step 1: Apply values from your own Item

barcode

Barcode table when returning the list of available item

barcodes

Barcodes to the mobile device.

Using event MobItemReferenceMgt - OnBeforeGetBarcodeList


    // [Example]: Add Item Identifiers to _BarcodeList
    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB Item Reference Mgt.", 'OnBeforeGetBarcodeList''', true, true)]
    local procedure MyOnBeforeGetBarcodeList(_ItemNo: Code[20]; _VariantCode: Code[10]; var _BarcodeListToReturn: Textvar _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

Barcode table

Using event MobItemReferenceMgt - OnBeforeSearchItemReference


    // [Example]: If Item is found by filtering on ItemIdentifiers then do not search through Item References
    [EventSubscriber(ObjectType::CodeunitCodeunit::"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 Item barcodes Barcodes to an Item.
  • Open "Locate Item" on the mobile device and scan your custom Item barcodeBarcode. Now you should see your Item is found based on the scanned value.
  • Create a Pick including you Item with the custom Item barcode Barcode added.
  • Select the Pick on the mobile device and scan your custom Item barcodeBarcode. Now you should see the pickline containing your item with the custom Item barcode Barcode selected.

Version History

VersionChanges