How-to: Add ImageCapture Step for Adjust Quantity

Minimum Requirements

  • Android App 1.8.1.1

Description

Adds an extra ImageCapture Step to the Adjust Quantity functionality.

  • Adds an extra ImageCapture step after finishing a registration in an unplanned function
  • In the Mobile Document Queue List, a PostMedia Request will appear
  • The collected image is then saved in Mob Wms Media Queue

Behavior on the device

To collect an Image in a step, the user will need to use the plus sign (+) to take a picture and add an optional note before posting.


Step 1: Create the step 

Use OnPostAdhocRegistration_OnAddSteps to add an ImageCapture step:

    //Step 1: Create a simple ImageCapture step
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Adhoc Registr.", 'OnPostAdhocRegistration_OnAddSteps', '', true, true)]
    local procedure MyOnPostAdhocRegistration_OnAddSteps(_RegistrationType: Text; var _RequestValues: Record "MOB NS Request Element"; var _Steps: Record "MOB Steps Element"; var _RegistrationTypeTracking: Text)
    var
        MobWmsToolbox: Codeunit "MOB WMS Toolbox";
    begin
        if _RegistrationType <> MobWmsToolbox."CONST::AdjustQuantity"() then
            exit;

        //Already collected, break to avoid adding the same new step indefinitely
        if _RequestValues.HasValue('ImageCapture') then
            exit;

        _Steps.Create_ImageCaptureStep(10000, 'ImageCapture');
        _Steps.Set_helpLabel('Take a picture of the item');
    end;

Step 2: Handle the step

Use OnPostAdhocRegistration_OnAfterPost to handle the step

//Step 2: Handle the ImageCapture step. The picture taken will be saved in the MOB Wms Media Queue
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Adhoc Registr.", 'OnPostAdhocRegistration_OnAfterPost', '', true, true)]
    local procedure MyOnPostAdhocRegistration_OnAfterPost(_MessageId: Guid; _RegistrationType: Text; var _RequestValues: Record "MOB NS Request Element"; var _XmlResponseDoc: XmlDocument; var _RegistrationTypeTracking: Text)
    var
        MobMedia: Codeunit "MOB WMS Media";
        MobWmsToolbox: Codeunit "MOB WMS Toolbox";
        Image: Text;
    begin
        if _RegistrationType <> MobWmsToolbox."CONST::AdjustQuantity"() then
            exit;
        if _RequestValues.GetValue('ImageCapture') <> '' then begin
            Image := _RequestValues.GetValue('ImageCapture');


            MobMedia.AddImageToMediaQueue(Image);
        end;
    end;


ImageCapture Step in Adjust Quantity


Go to Business Central > "Mobile WMS Media Queue" -page

The picture and note were saved in the Mob Wms Media Queue


See also