Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...


Info
iconfalse

This article requires Mobile WMS extension version MOB5.25 (or newer).

An older version of this article exists, see (Legacy) How-to: Select Line from Custom Barcode (MOB5.19 - MOB5.24)

Description

Filter and reduce Order Lines by a scanned value.This article builds on the concept

...

of Select, Add or Refresh Order

...

Lines by Scan (LineSelection)

Used for custom barcodes (Non GS1), in special cases where a regular expression is needed to decipher the barcode.

...


Step 1 - Set up mobile config

Follow the setup on Select, Add or Refresh Order

...

Lines by Scan (LineSelection) and define your regular expression for

...

the Barcode converter.

...


Step 2 - Register "GetLineSelectionInformation"

You must register this mobile document type.

Use event OnAfterCreateDefaultDocumentTypes


    // Step 2

    [EventSubscriber(ObjectType::CodeunitCodeunit::"MOB WMS Setup Doc. Types", 'OnAfterCreateDefaultDocumentTypes''', true, true)]
    local procedure OnAfterCreateDefaultDocumentTypes()
    var
        MobWmsSetupDocTypes: Codeunit "MOB WMS Setup Doc. Types";
    begin
        MobWmsSetupDocTypes.

...

CreateDocumentType('GetLineSelectionInformation', '',

...

Codeunit::"

...

MOB WMS Whse.

...

Inquiry"

...

);

    end;


Remember to run Create Document Types from Mobile WMS Setup. Otherwise you will get this error.

Image Modified Image Modified

...


Step 3 - Respond with Item No.

Respond to the "GetLineSelectionInformation" request and return an Item no.

Adjust the code to your needs.

You are likely to decipher the "ScannedValue".


    // Step 3    

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Whse. Inquiry", 'OnWhseInquiryOnCustomDocumentType', '', true, true)]
    localprocedure OnWhseInquiryOnCustomDocumentType(_DocumentType: Text; var _RequestValues: Record "MOB NS Request Element"; var _ResponseElement: Record "MOB NS Resp Element"; var _RegistrationTypeTracking: Text; var _IsHandled: Boolean)
    var
        SerialNumber: Code[50];
    begin
        if _IsHandled then
            exit;

        if _DocumentType = 'GetLineSelectionInformation' then begin            
            SerialNumber := _RequestValues.GetValue('SerialNumber', true);
            _ResponseElement.Set_SerialNumberInformation(GetItemFromBarcode(SerialNumber));
            _IsHandled := true;
        end;
    end;


    procedure GetItemFromBarcode(ScannedValue: Text)Code[20]
    var
        Item: Record Item;
    begin
        // Please make your own logic to identify the Item from a barcode
        Item.SetRange("Description 2", ScannedValue);
        if Item.FindFirst() then
            exit(Item."No.");
    end;