Generic Order Service
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.
To setup the service add the new ServiceManager
service in app.config
and move the pick
service configuration into the list of <services>
provided by the manager.
<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="Pick"> <configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2009/01/ServiceConfiguration.xsd"> <DatabaseName>AppDatabase</DatabaseName> <PostOrderRequestDocumentName>PostPickOrder</PostOrderRequestDocumentName> <GetOrdersRequestDocumentName>GetPickOrders</GetOrdersRequestDocumentName> <GetFilteredOrdersRequestDocumentName>GetFilteredPickOrders</GetFilteredOrdersRequestDocumentName> <GetOrderLinesRequestDocumentName>GetPickOrderLines</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> </configuration> </add> </services> </configuration> </add>
To add a service simply use the <add id="serviceName">
syntax and the service is referenced through its id
. Copy the <configuration>
section from the existing pick
service.
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.
<tasklet name="PickFilter" text="Pick filter" type="TaskletFactory.WMS.Tasklets.GenericFilter, TaskletFactory.WMS.Tasklets.Filter"> <configuration> <appSettings> <add key="okMenuItem" value="filterMenuOk"/> </appSettings> <filterConfiguration> <service id="Pick" /> </filterConfiguration> </configuration> <actions> <open name="filterMenuOk" tasklet="PickList" 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>
The important bits here are type="TaskletFactory.WMS.Tasklets.GenericFilter, TaskletFactory.WMS.Tasklets.Filter"
and the <filterConfiguration>
element containing the service reference.
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
.
<tasklet name="PickList" text="Pick orders" icon="pick.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="Pick" /> </orderListConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> </tasklet>
<tasklet name="PickOrderLines" text="Pick order lines" icon="pick.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="Pick" /> ... </orderLineConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> <outputMappings> ... </outputMappings> </tasklet>
<tasklet name="Registrations_Pick" 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="Pick"/> </registrationConfiguration> <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd"> ... </listConfiguration> </configuration> <actions> ... </actions> </tasklet>