Adding new Planned function (Windows Mobile)


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

  1. Service Manager - A system definition
  2. Filter - The filter screen is the first thing the user will see when selecting from the Main menu
  3. Order List  - The list screen the user will select the primary entity (Order)
  4. 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 NewFeature service configuration into the list of <services> provided by the manager.


Service 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="NewFeature">

        <configuration xmlns="http://schemas.taskletfactory.com/MDMF/MobileWMS/Services/2009/01/ServiceConfiguration.xsd">
          <DatabaseName>AppDatabase</DatabaseName>

          <PostOrderRequestDocumentName>PostNewFeatureOrder</PostOrderRequestDocumentName>
          <GetOrdersRequestDocumentName>GetNewFeatureOrders</GetOrdersRequestDocumentName>
          <GetFilteredOrdersRequestDocumentName>GetFilteredNewFeatureOrders</GetFilteredOrdersRequestDocumentName>
          <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>NewFeature</ServiceType>

        </configuration>
      </add>
    </services>
  </configuration>
</add>


Tasklet Configuration

Edit UserRole.xml 


Add Filter page


Add the following

Pick Filter
<tasklet name="NewFeatureFilter" text="NewFeature filter"

         type="TaskletFactory.WMS.Tasklets.GenericFilter, TaskletFactory.WMS.Tasklets.Filter">
  <configuration>
    <appSettings>
      <add key="okMenuItem" value="filterMenuOk"/>
    </appSettings>

    <filterConfiguration>
      <service id="NewFeature" />
    </filterConfiguration>

  </configuration>
  <actions>
    <open name="filterMenuOk" tasklet="NewFeatureList" 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.


Add Order List


Order List
<tasklet name="NewFeatureList"  text="NewFeature orders" icon="NewFeature.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="NewFeature" />

    </orderListConfiguration>
    <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd">
      ...
    </listConfiguration>
  </configuration>
  <actions>
    ...
  </actions>
</tasklet>

Add Order Lines


Order Lines
<tasklet name="NewFeatureOrderLines" text="NewFeature order lines" icon="NewFeature.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="NewFeature" />
      ...
    </orderLineConfiguration>
    <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd">
      ...
    </listConfiguration>
  </configuration>
  <actions>
    ...
  </actions>
  <outputMappings>
    ...
  </outputMappings>
</tasklet>

Add Registration


Registration
<tasklet name="Registrations_NewFeature" 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="NewFeature"/>

    </registrationConfiguration>
    <listConfiguration xmlns="http://Schemas.TaskletFactory.com/MDMF/Platform/Controls/2008/10/CustomizableList.xsd">
      ...
    </listConfiguration>
  </configuration>
  <actions>
    ...
  </actions>
</tasklet>