13 February 2015 - Mobile WMS Classic 1.1.160
Table of Contents | ||||
---|---|---|---|---|
|
...
This release adds support for the DOTH-300 device.
Configuration
In order to enable the DOTH-300 support the Mobi package Dotel Scanner Libraries needs to be installed in addition to the Mobile WMS release. It is important that this package is installed after Mobile WMS since it needs to override the Symbol.dll
library distributed as part of the Mobile WMS package.
A small change needs to be done to the CommonConfiguration
section of the app.config
configuration file, where the <scanTrigger>
elements is added to enable the center scan button.
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- Service containing common configuration -->
<add type="TaskletFactory.WMS.Services.CommonConfigurationService, TaskletFactory.WMS.Services.CommonConfiguration"
factory="TaskletFactory.WMS.Services.Configuration.CommonConfigurationServiceFactory, TaskletFactory.WMS.Services.CommonConfiguration"
startup="true">
<configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2010/10/CommonConfigurationServiceConfiguration.xsd">
...
<tasklet>
<scanTrigger enabled="true" keyName="152" />
...
</tasklet>
...
</configuration>
</add> |
...
As something new it is now possible to create an arbitrary number of services; one is no longer forced to choose from the predefined pick
, receive
, etc services but can e.g. create a pick_extra_validation
service and enable extra validation for new employees.
Service Configuration
The following configuration example shows how to convert the pick
service and tasklets into using the new generic versions. It could just as well be an entirely new service type. The change has to be applied to the whole chain: service, filter, order list, order lines and registration tasklets.
...
What is a Planned function
A Planned function is designed to work with "Document" like Receive, Pick etc.
It can however be any custom data entity as well.
It's counter-part is Ad-hoc functions like Unplanned Move and Unplanned Count.
How to add a new Planned function
There are four parts to a Planned function
- Service Manager - A system definition
- Filter - The filter screen is the first thing the user will see when selecting from the Main menu
- Order List - The list screen the user will select the primary entity (Order)
- Order Line - The list screen the user will select the secondary entity (Line)
In this example shows how to add a Planned function called "NewFeature".
To setup the function add the new ServiceManager
service in app.config
and move the pick
NewFeature
service configuration into the list of <services>
provided by the manager.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<add type="TaskletFactory.WMS.Services.ServiceManager, TaskletFactory.WMS.Services.Base" factory="TaskletFactory.WMS.Services.ServiceManagerFactory, TaskletFactory.WMS.Services.Base" startup="true"> <configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2015/01/ServiceManagerConfiguration.xsd"> <services> <add id="PickNewFeature"> <configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2009/01/ServiceConfiguration.xsd"> <DatabaseName>AppDatabase</DatabaseName> <PostOrderRequestDocumentName>PostPickOrder< <PostOrderRequestDocumentName>PostNewFeatureOrder</PostOrderRequestDocumentName> <GetOrdersRequestDocumentName>GetPickOrders<<GetOrdersRequestDocumentName>GetNewFeatureOrders</GetOrdersRequestDocumentName> <GetFilteredOrdersRequestDocumentName>GetFilteredPickOrders<<GetFilteredOrdersRequestDocumentName>GetFilteredNewFeatureOrders</GetFilteredOrdersRequestDocumentName> <GetOrderLinesRequestDocumentName>GetPickOrderLines<<GetOrderLinesRequestDocumentName>GetNewFeatureOrderLines</GetOrderLinesRequestDocumentName> <GetBackendInfoRequestDocumentName>GetBackendInfo</GetBackendInfoRequestDocumentName> <LockOrderRequestDocumentName>LockOrder</LockOrderRequestDocumentName> <UnlockOrderRequestDocumentName>UnlockOrder</UnlockOrderRequestDocumentName> <UseOrderLocking>true</UseOrderLocking> <ScanBehaviourWhenRegisteringQuantity>SCAN_NEXT_ITEM</ScanBehaviourWhenRegisteringQuantity> <DataSource>ONLINE</DataSource> <ExpirationDateSeparator>,</ExpirationDateSeparator> <BarcodeSeparator>;</BarcodeSeparator> <AddOrderLineRequestDocumentName>AddOrderLine</AddOrderLineRequestDocumentName> <AutoPostWhenAllLinesComplete>true</AutoPostWhenAllLinesComplete> <ServiceType>Pick< <ServiceType>NewFeature</ServiceType> </configuration> </add> </services> </configuration> </add> |
...
Finally remove the existing pick
service configuration.
Tasklet Configuration
The next step is to convert the accompanying tasklets from using the specific PickFilter
, PickOrderList
, etc. types to the GenericFilter
, GenericOrderList
, etc. versions instead by modifying the UserRole.xml
configuration file.Edit UserRole.xml
Add Filter page
Add the following
Code Block | ||||
---|---|---|---|---|
| ||||
<tasklet name="PickFilterNewFeatureFilter" text="PickNewFeature filter" type="TaskletFactory.WMS.Tasklets.GenericFilter, TaskletFactory.WMS.Tasklets.Filter"> <configuration> <appSettings> <add key="okMenuItem" value="filterMenuOk"/> </appSettings> <filterConfiguration> <service id="PickNewFeature" /> </filterConfiguration> </configuration> <actions> <open name="filterMenuOk" tasklet="PickListNewFeatureList" priority="110" text="OK_" context=""></open> <exitTasklet name="unplanRegMenuBack" text="Back" priority="1" icon="Arrow Left.bmp" context="The text on the softkey that goes back to the previous tasklet"></exitTasklet> </actions> </tasklet> |
...
Below follows the configuration for the order list, order lines and registration tasklets. For all of these it is a matter of instantiating the correct generic type and referencing the service by id
.
Add Order List
Code Block | ||||
---|---|---|---|---|
| ||||
<tasklet name="PickListNewFeatureList" text="PickNewFeature orders" icon="pickNewFeature.bmp" type="TaskletFactory.WMS.Tasklets.GenericOrderList, TaskletFactory.WMS.Tasklets.OrderList"> <configuration> <appSettings> ... </appSettings> <orderListConfiguration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Tasklets/2013/08/OrderListConfigurationSection.xsd"> <service id="PickNewFeature" /> </orderListConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> </tasklet> |
Add Order Lines
Code Block | ||||
---|---|---|---|---|
| ||||
<tasklet name="PickOrderLinesNewFeatureOrderLines" text="PickNewFeature order lines" icon="pickNewFeature.bmp" type="TaskletFactory.WMS.Tasklets.GenericOrderLines, TaskletFactory.WMS.Tasklets.OrderLines"> <configuration> <appSettings> ... </appSettings> <shortcut enabled="true"> ... </shortcut> <orderLineConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Tasklets/2009/01/OrderLineConfiguration.xsd"> <service id="PickNewFeature" /> ... </orderLineConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> <outputMappings> ... </outputMappings> </tasklet> |
Add Registration
Code Block | ||||
---|---|---|---|---|
| ||||
<tasklet name="Registrations_PickNewFeature" text="Registrations" icon="Notepad.bmp" type="TaskletFactory.WMS.Tasklets.GenericRegistration, TaskletFactory.WMS.Tasklets.RegistrationTasklet"> <configuration> <appSettings> ... </appSettings> <registrationConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/MobileWMS/Tasklets/2015/01/RegistrationConfiguration.xsd"> <service id="PickNewFeature"/> </registrationConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> </tasklet> |
...
It is now possible to enable online bin validation, separately for to and from bins. It requires a change to app.config
for the service in question.
Configuration
Code Block | ||||
---|---|---|---|---|
| ||||
<add type="TaskletFactory.WMS.Services.PickService, TaskletFactory.WMS.Services.Pick"
factory="TaskletFactory.WMS.Services.Configuration.PickServiceFactory, TaskletFactory.WMS.Services.Pick"
startup="true">
<configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2009/01/ServiceConfiguration.xsd">
<validation>
<fromBin enabled="true" requestDocumentName="ValidateFromBin" />
<toBin enabled="true" requestDocumentName="ValidateToBin" />
</validation>
</configuration>
</add> |
The requestDocumentName
has to match the document handler on the backend. The values in the example show the default values which will be used if the requestDocumentName
attribute is omitted.
Request from the mobile client to the ERP system
The mobile application sends a request with the parameters shown below.
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="utf-16"?>
<request name="ValidateFromBin" created="2015-02-13T14:28:49+01:00" xmlns="http://schemas.microsoft.com/Dynamics/Mobile/2007/04/Documents/Request">
<requestData name="ValidateFromBin">
<orderType>Pick</orderType>
<orderBackendId>PI000059</orderBackendId>
<lineNumber>90000</lineNumber>
<itemNumber>TF-004</itemNumber>
<bin>W-02-0001</bin>
</requestData>
</request> |
Related JIRA Issues
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...