General
It can be useful for the Warehouse worker to view an Image of the Item to handle.
These functions can display images
- Locate Item (Thumbnail)
- Order Lines (Thumbnail)
- Any custom List
Supported versions
- Mobile WMS for Android App version 1.3.0
- NAV 2013
- NAV 2015
- NAV 2016
- NAV 2017
- NAV 2018
Please note
- Images are cached by the app to reduced bandwidth requirements
- But still, do keep in mind the image file size
- Import images in Items
- Import NAV objects
- Enable in NAV code
- Configure the Mobile App (Optional)
Step 1 - Import images in Items
Import Picture on the relevant Items.
Step 2 - Import NAV objects
The following two objects will be create
- Codeunit 6181391 - MOB WMS Media
- Codeunit 50011- RunMe Setup MOB WMS Media
- Re-Compile the object (Important)
- Run the object "RunMe Setup MOB WMS Media"
- This will set up Image support, by creating a Mobile Document Type called "GetMedia" pointing to Codeunit 6181391
Step 3 - Enable in NAV code
Enable for Warehouse Pick, Put-away and Move
In Codeunit 6181388 - MOB WMS Toolbox and function CreateWhseActLinesResponse
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(WhseActLineTake."Item No.",XMLOrderLine,NS_BASE_DATA_MODEL);
// MEDIA |
Enable for Warehouse Receipt
In Codeunit 6181372 - MOB WMS Receive and function CreateOrderLinesResponse
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(WhseReceiptLine."Item No.",XMLOrderLine,BaseDataModelNS);
// MEDIA |
Enable for Purchase Order Receipt
In Codeunit 6181372 - MOB WMS Receive and function CreatePurchaseLinesResponse
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(PurchaseLine."No.",XMLOrderLine,BaseDataModelNS);
// MEDIA
|
Enable for Transfer Order Receipt
In Codeunit 6181372 - MOB WMS Receive and function CreateTransferLine
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(Transferline."Item No.",XMLOrderLine,BaseDataModelNS);
// MEDIA
|
Image Added
Enable for Locate Item
There are two modifications to be made.
1st modification
In Codeunit 6181382 - MOB WMS Lookup and function LookupLocateItem
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest("Item No.",XMLLookupResponse,MobXMLMgt.GetNodeNSURI(XMLResponseData));
// MEDIA |
2nd modification
In Codeunit 6181382 - MOB WMS Lookup and function AddLookupResponse
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(ItemNo,XMLLookupResponse,Namespace);
// MEDIA |
Enable for Planned Count
In Codeunit 6181376 - MOB WMS Count and function PhysCreateOrderLinesResponse
- Create a Global variable for Codeunit "MOB WMS Media"
- Insert the following snippet
Code Block |
---|
|
// MEDIA
MOBWMSMedia.AddItemImageToRequest(ItemJnlLine."Item No.",XMLOrderLine,BaseDataModelNS);
// MEDIA |
Perform the following modifcations to application.cfg
Please note
- Version 1.3.0.0 Images are already supported
- For existing systems Tasklet Factory Support will assist you with this part
1st modification
Lookup Item
Add the following snippet marked with "<!-- MEDIA -->
Code Block |
---|
|
<!-- Lookup With Registrations -->
<listConfiguration id="LookupWithRegistrations">
<columns>
<column width="65%" xAlign="left" yAlign="top">
<elements>
<textElement fontId="headlineFont" text="{DisplayLine1}"/>
<textElement fontId="contentFont" text="{DisplayLine2}" />
<textElement fontId="contentFont" text="{DisplayLine3}" />
<textElement fontId="contentFont" text="{DisplayLine4}"/>
<textElement fontId="contentFont" text="{DisplayLotNumber} {DisplaySerialNumber} {DisplayExpirationDate}"/>
</elements>
</column>
<column width="35%" xAlign="right" yAlign="top">
<elements>
<textElement fontId="headlineFont" text="{Quantity}/{ExtraInfo1}" horizontalAlignment="right" />
<!-- MEDIA -->
<imageElement height="25%" sourceId="{ItemImage}" horizontalAlignment="right" ></imageElement>
<!-- MEDIA -->
</elements>
</column>
</columns>
</listConfiguration> |
2nd modification
Order Lines (Pick / Receive / Put-away)
Step 1
Add this entire snippet. This will add an entirely new List with support for images.
Code Block |
---|
|
<!-- MEDIA -->
<!-- Order lines With Image-->
<listConfiguration id="OrderLinesWImages" displayStatus="true">
<columns>
<column xAlign="left" yAlign="top" width="82%" >
<elements>
<textElement fontId="headlineFont" text="{DisplayLine1}" verticalAlignment="top"/>
<textElement fontId="contentFont" text="{DisplayLine2}" />
<textElement fontId="contentFont" text="{DisplayLine3}" />
<textElement fontId="contentFont" text="{DisplayLine4}" />
</elements>
</column>
<column xAlign="right" yAlign="top" width="18%" >
<elements>
<textElement fontId="headlineFont" horizontalAlignment="right" verticalAlignment="top" text="{ActionDefinedQuantity}/{Quantity}"/>
<textElement verticalAlignment="top" fontId="contentFont" horizontalAlignment="right" text="{UnitOfMeasure}"/>
<imageElement height="25%" sourceId="{ItemImage}" horizontalAlignment="right" >
</imageElement>
</elements>
</column>
</columns>
</listConfiguration>
<!-- MEDIA --> |
Step 2
Change where the "OrderLines" list is used to instead use "OrderLinesWIMages".
Pick
Put-away
Receive
3nd modification
Add Order Line Action "View Image"
Add the following snippet marked with "<!-- MEDIA -->
Code Block |
---|
|
<!-- MEDIA -->
<actions>
<showImage id="ShowImage" enabled="true" title="Show Image" imageProperty="ItemImage" />
</actions>
<!-- MEDIA --> |
Pick
A functional description
How Images are technically requested from the back-end.
Images on Order lines
- A sourceID XML tag appears in the App Configuration file, application.cfg.
- This is named "ItemImage".
- When the Mobile Request Document Type "GetXXXOrderLines" is reponded to, an Image tag is included.
- This is also named "ItemImage".
- The value of the tag is a combination of Item No. and the date and time when the Item / Image was modified.
This way, whenever an Item is modified, the App will know by the value changing and request the Image again, now receiving an updated image.
- When the sourceID matches with the answer to the request, additional requests are made for the images needed.
- One request after the next. These will have the Document Type "GetMedia".