Versions Compared

Key

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


Info
titleMinimum Requirements
  • Android App 1.8.1.1

Description

Excerpt

Interrupt Interrupts posting in Pick and add adds an extra Header (ImageCapture) Step.

  • Adds an extra ImageCapture step during posting .The collected image is then saved in Mob Wms Media Queue.of a pick
  • In the Mobile Document Queue List, a PostMedia Request will  will appear after adding the Header Steps - for these examplesin this case, after PostPickOrder or PostAdHocRegistration.

...

  • The collected image is then saved in Mob Wms Media Queue

Behavior on the device

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

Examples

This How-to contains two examples.

The following examples are made for an unplanned (Adjust Quantity) and a planned step (Pick), respectively.

Example 1: Add header ImageCapture step for Planned function (Pick)

...

Step 1: Create an header step

Use OnPostPickOrder_OnAddStepsToWarehouseActivityHeader to add an ImageCapture step:

      // Create an ImageCapture header step that interrupts the posting of a pick.
   [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Pick", 'OnPostPickOrder_OnAddStepsToWarehouseActivityHeader', '', true, true)]
    localprocedure MyOnPostPickOrder_OnAddStepsToWarehouseActivityHeader(var _OrderValues: Record"MOB Common Element"; _WhseActivityHeader: Record"Warehouse Activity Header"; var _StepsElement: Record"MOB Steps Element")
    begin
        //Already collected, break to avoid adding the same new step indefinitely
        if _OrderValues.HasValue('ImageCapture') then
            exit;

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


Step

...

2

...

: Handle the header step

...

Use OnPostPickOrder_OnBeforePostWarehouseActivityOrder to handle the steps:

 //Step 2: Handle the ImageCapture step. The picture taken will be saved step, saving the values in the MOB Mob Wms Media Queuequeue.
      [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Pick", 'OnPostPickOrder_OnBeforePostWarehouseActivityOrder', '', true, true)]
    localprocedure OnPostPickOrder MyOnPostPickOrder_OnBeforePostWarehouseActivityOrder(var _OrderValues: Record"MOB Common Element"; var _WhseActivityHeader: Record"Warehouse Activity Header")
    var
        MobWmsMediaQueueMobMedia: RecordCodeunit"MOB WMS Media Queue";
        MobWmsLanguage: Codeunit"MOB WMS Language";
        ImageIdsAndNotes: Text;
        ImageAndNoteList: Listof [Text];
    begin
        ImageIdsAndNotes:=if _OrderValues.GetValue('ImageCapture', true);        if ImageIdsAndNotes = ) <>''thenbegin
            Error(MobWmsLanguage.GetMessage('NO_PICTURE_TO_ATTACH'));
        MobWmsMediaQueue.Init();
        ImageAndNoteList:=ImageIdsAndNotes.Split(';');    //Splits the list into Image Id and NoteImageIdsAndNotes
:=_OrderValues.GetValue('ImageCapture');


        ImageAndNoteList.Get(1, MobWmsMediaQueue."Image Id");
        ImageAndNoteListMobMedia.Get(2, MobWmsMediaQueue.NoteAddImageToMediaQueue(ImageIdsAndNotes);
        MobWmsMediaQueue."Device ID":=MOBSessionData.GetDeviceID();   //Gets the Device ID
        MobWmsMediaQueue.Description:=format(_WhseActivityHeader.RecordId); // Add the RecordId from the Warehouse Activity Header, to know which pick the picture came from.
        MobWmsMediaQueue.Insert(true);
        MobWmsMediaQueue."Record ID":=MobWmsMediaQueue.RecordId;
        MobWmsMediaQueue.Modify(false) end;
    end;

Image Removed

Example 1: ImageCapture Step in Pick

Image Removed

Example 1: The picture and note were saved in Mob Wms Media Queue

Example 2: Add header ImageCapture step for Unplanned function (Adjust Quantity)

Step 2.1 - Create an adhoc header step 

    //Create a simple ImageCapture header 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;

...



Step 2.2 - Handle the header step

  // 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
        MobWmsMediaQueue: Record "MOB WMS Media Queue";
        MobWmsLanguage: Codeunit "MOB WMS Language";
        MobWmsToolbox: Codeunit "MOB WMS Toolbox";
        MobSessionData: Codeunit "MOB SessionData";
        ItemImageList: List of [Text];
        Image: Text;
    begin
        if _RegistrationType <> MobWmsToolbox."CONST::AdjustQuantity"() then
            exit;

...

Image Removed

Example 2: ImageCapture Step in Adjust Quantity

Image Removed

 Example 2: The Image Added

 ImageCapture Step in Pick


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

Image Added

 The picture and note were saved in Mob Wms Media Queue

...

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
reversetrue
excerptTypesimple
cqllabel in ( "integrationevent" , "example" ) and label = "lineselectionimage"