Entersoft Business Suite® | Entersoft WMS®

ESRF Technical Reference



Document Version

Software Version Entersoft WMS Mobile Mobile (ESRF)

Last Update March 2021


© Copyright 2021 Entersoft S.A. All rights reserved.

No part of this work may be reproduced, transmitted, stored, or used in any form or by any means, without the prior written permission of the publisher.

Regarding the present content …

  • It may be altered at any time.
  • It serves exclusively informative goals.
  • No guarantee whatsoever is handed out for the possible existence of mistakes or the wrongful use or non-wanted results produced by the use of processes hereby followed and recommended.


WMS architecture


  • Modern architecture
  • Integrated but Stand-Alone
  • Works with all Entersoft Business Suite Modules
  • Adds Value to the EBS Investment
  • Scalable to ‘000s Users
  • State-of-the Art N-Tier Architecture
  • Scale-up, Scale-out, Distributed
  • On-premises, On-Cloud, Hybrid
  • Robust, Reliable, Secure and Expandable
  • Uniform & Consistent

Device characteristics

Devices & OSs:

  • Windows CE 4.0+ and Windows Mobile 6+ (written with .Net compact framework 3.5)
  • Android 4.1.x (API level 16) and onwards (written with Kotlin)
  • Wi-Fi and http(s) protocol (Google protobuf)
  • Keyboard or Touchscreen
  • Barcode reader
  • Camera (optional)


  • Native printing Engine (performance, device specific features and tools)
  • Printing stations sharing through LAN
  • Zebra, Datamax, etc.

Barcode stacks – GS1 parser


A set of parameters and functions to parse and validate a GS1 barcode:

  • ESGS1Config.xml: Definition of GS1 application identifiers (AI)
  • GS128Parser.BarCodeDecode(input, session): Function to parse a GS1 barcode
  • WMS_FNC1: GS1 variable length AI separator
  • EAN13PREFIX: GS1 global unique ID per company
  • GS1_BARCODE_ID: Default starting set of characters ]C1 for GS1 barcode
  • DBG_SSCC_VALIDATION: Enable GS1 SSCC validation method

Barcode processing types (script) to read:

  • Variable Weight materials
  • Color/Size
  • Lot/serial number
  • Custom barcodes

RF client application characteristics

User interface

  • It’s all about speed
  • Quick response (use of Google protobuf as serialization format)
  • Limited screen real estate
  • As less user input as possible
  • Minimal UI, no icons, basic colors
  • Keyboard and/or touch screen
  • Parametric per device type

Navigation keys

  • ESC
  • Backspace
  • Enter
  • Numeric keys
  • Function keys
  • Search keys (default *)

Touch events

  • Simulation gestures (esc, enter, search, scan)
  • Action menus

Features of the application

  • Multilingual

  • Common workflow scenarios for all OSs

  • Versions for

    • Windows mobile, Android, emulator on windows desktop:

ESWMS-RF-Technical-Reference-Guide-image3.png ESWMS-RF-Technical-Reference-Guide-image4.png ESWMS-RF-Technical-Reference-Guide-image5.png

RF client application settings for Windows

  • Customization per device type.
    • Connection settings
    • Hardware (Device type - OS)
    • Appearance (themes)
    • Keycodes (Keys)
    • Login type
      • Retain credentials
      • Clean credentials
      • Clean password
  • Auto update RF client version on Windows Mobile devices thru Web API
  • Download RF client version from

RF client application settings for Android

  • Touch mode
  • Soft keyboard behavior
  • Scanner settings
  • Fast configuration by QR code / email.
  • Download RF app version from

Entersoft's mobile apps, all in one place.


RF communication

Entersoft Web API

  • RF communication through ES WEB API
    • Connect with multiple app servers
      • On heavy load
      • Use of sticky session
  • RF calls
    • Init
      • Server recognizes user and device type
      • Do some checks
      • Send keycodes & themes to RF client
    • GetFirstView
      • Initiates WF Engine or continues with the last (shows the last screen, continue work)
    • OnVkeyPressed
    • OnItemSelected
    • Logout
  • Server returns the whole view. Client just renders the view!

Application server components

  • Entersoft framework - extend use of
    • Backend services
    • Automations
    • PublicQueries

Application monitoring

Error logging

Event logging per user, device and event type (info, warnings, errors, exceptions) in folder: ESNoSync\RF\AppName\UseName

Activation of:

  • Aggregate recording of the duration of requests every 12 hours
  • Aggregate recording of services every 12 hours (eg Save, PQs)
  • Recording information for requests/ services that lasted more than 5 seconds

Remote assistance – remote monitoring


RF application - workflow

Design principles

  • No logic, just renderer
  • Zero maintenance
  • Wizard like
    • Gathers info in each view
    • Save at the end
    • Loop if needed
  • Just 4 view types:
    • MenuView, MessageView, FieldView, SelectionListView


Application components

  • Themes: The appearance of the application
  • Modules:
    • Keys: User interaction using virtual keys
    • Config and Resources: Application parameters
    • Views: Menus, messages, data entry views, search or reporting views
    • Events: Manage when a key is pressed on the client, when a field value change
    • Commands: Τrigger the execution of various actions (e.g. login, beep, ShowCamera, CameraScan)
  • Custom functions used in the application, such as, in execution conditions, for object manipulation etc.:
    • Scripts: e.g. WhoAmIInfo.vb, NewLotBarcode.vb, ValidateSSCC.vb
    • Filters: e.g. AddDays.vb, ConvertUnits.vb
    • Expressions: GetSite.vb, GetViewID.vb, NewGUID.vb


Themes for Windows mobile:

  • Theme.json
  • Dark.json

Themes for Android:

  • theme_android.json
  • Android_touch.json

Properties for:

  • Margins
  • AppStyle, TitleStyle
  • SelectionKeyStyle
  • FieldCaptionStyle
  • FieldTextBoxStyle
  • FieldTextBoxReadOnlyStyle
  • HelpStyle, StatusStyle
  • PageIndicatorStyle
  • Specific / custom styles (used in the property Appearance)


Hex colors e.g.




Common Keys (ESRF\Common):

  • <Key VKey=“Enter”/>
  • <Key VKey=“Esc”/>
  • <Key VKey=“ExitView”/>
  • <Key VKey=“PageUp”/>
  • <Key VKey=“PageDown”/>
  • <Key VKey=“PageLeft”/>
  • <Key VKey=“PageRight”/>
  • <Key VKey=“ArrowUp”/>
  • <Key VKey=“ArrowDown”/>
  • <Key VKey=“ArrowLeft”/>
  • <Key VKey=“ArrowRight”/>
  • <Key VKey=“Backspace”/>
  • <Key VKey=“Selection”/>
  • <Key VKey=“SelectionAlt”/>
  • <Key VKey=“FK80”/> (esc)
  • <Key VKey=“FK81”/> (F2)

Application Keys (ESRF\WMS):

  • <Key VKey="FK1" KeyCode="112" KeyText="F1" CommandText="~Αλλαγή" />
  • <Key VKey="FK2" KeyCode="113" KeyText="F2" CommandText="~Νέο Είδος" />
  • <Key VKey="FK3" KeyCode="114" KeyText="F3" CommandText="~Αναζήτηση" />
  • <Key VKey="FK4" KeyCode="112" KeyText="F1" CommandText="~Αλλαγή ΜΜ" />
  • <Key VKey="FK5" KeyCode="116" KeyText="F5" CommandText="~Ανανέωση" />
  • <Key VKey="FK6" KeyCode="112" KeyText="F1" CommandText="~Προσθ.ποσ." />
  • <Key VKey="FK7" KeyCode="113" KeyText="F2" CommandText="~Νέο απόθ." />
  • <Key VKey="FK8" KeyCode="112" KeyText="F1" CommandText="~Αλλαγή ΜΜ" />
  • <Key VKey="FK9" KeyCode="113" KeyText="F2" CommandText="~Τυπ.Παλ." />
  • <Key VKey="FK10" KeyCode="121" KeyText="F10" CommandText="~Νέα Lot" />
  • <Key VKey="FK13" KeyCode="112" KeyText="F1" CommandText="~ΔΣΜ" />
  • <Key VKey="FK14" KeyCode="113" KeyText="F2" CommandText="~ΑΚΑΤ" />
  • <Key VKey="FK15" KeyCode="116" KeyText="F5" CommandText="~Δηλ.ΚΟΛΑ" />
  • <Key VKey="FK16" KeyCode="40" KeyText="" CommandText="~(↓)Μείωση" />
  • <Key VKey="FK17" KeyCode="38" KeyText="" CommandText="~(↑)Αύξηση" />
  • <Key VKey="FK18" KeyCode="113" KeyText="F2" CommandText="~Περιέκτες" />

RF application file structure

RF application file structure in the application server:

  • ESRF\Common: Common library that all applications have access to the following objects:

    • Themes (default themes per device type)

    • Modules

      • ES (common for all applications)

        • Keys.xaml & Keycodes.xaml

        • Views.xaml

        • Resources_Init.xaml

        • Config_Init.xaml

        • Commands.xaml

      • Remote (enables remote monitoring)

      • Debug (enables F11 debug)

  • ESRF\{RFAppName}

    • WF.xaml (+ other included xamls)

    • Config.xaml

    • Keys.xaml (per device type)

    • Theme.json (per device type)

    • Scripts folder

    • Filters folder

    • Expressions folder

  • CSRF\{RFAppName}

    • Themes

    • Modules

    • Scripts

Common modules

Common modules in folder ESRF\Common\Modules\ES:

  • Keys.xaml
    • Key VKey=Enter/>
    • Key VKey=Esc/>
    • Key VKey=ExitView/>
    • Key VKey=PageUp/>
    • Key VKey=PageDown/>
    • Key VKey=PageLeft/>
    • Key VKey=PageRight/>
    • Key VKey=ArrowUp/>
    • Key VKey=ArrowDown/>
    • Key VKey=ArrowLeft/>
    • Key VKey=ArrowRight/>
    • Key VKey=Backspace/>
    • Key VKey=Selection/>
    • Key VKey=SelectionAlt/>
    • Key VKey=FK80/> (esc)
    • Key VKey=FK81/> (F2)
  • Keycodes.xaml
    • Set Property=Keys.Enter.KeyCode Value=13/>
    • Set Property=Keys.Esc.KeyCode Value=27/>
    • Set Property=Keys.ExitView.KeyCode Value=27/>
    • Set Property=Keys.PageUp.KeyCode Value=38/>
    • Set Property=Keys.PageDown.KeyCode Value=40/>
    • Set Property=Keys.PageLeft.KeyCode Value=37/>
    • Set Property=Keys.PageRight.KeyCode Value=39/>
    • Set Property=Keys.ArrowUp.KeyCode Value=38/>
    • Set Property=Keys.ArrowDown.KeyCode Value=40/>
    • Set Property=Keys.ArrowLeft.KeyCode Value=37/>
    • Set Property=Keys.ArrowRight.KeyCode Value=39/>
    • Set Property=Keys.Backspace.KeyCode Value=8/>
    • Set Property=Keys.Selection.KeyCode Value=13/>
    • Set Property=Keys.SelectionAlt.KeyCode Value=97/>
    • Set Property=Keys.FK80.KeyCode Value=27/>
    • Set Property=Keys.FK81.KeyCode Value=113/>
  • Views.xaml
    • <Include Source=ActiveSessionsView/>
    • <Include Source=InitErrorView/>
    • <Include Source=ErrorView/>
    • <Include Source=WarningView/>
    • <Include Source=NoDataView/>
    • <Include Source=InfoView/>
    • <Include Source=OKCancelView/>
    • <Include Source=YesNoView/>
    • <Include Source=YesNoCancelView/>
    • <Include Source=SystemInfoView/>)
  • Commands.xaml
    • Login
    • Beep
    • Undo
    • ViewInfo
    • CmdToggleSip
    • CmdPing
    • CmdServerPing

EBS file structure

Some services running on the RF application use files located on the application server file structure, such as:

  • Public queries in folder: ESPublicQueries\ESWMMobile
  • Scroller commands in folder:ESScrollerCommands\ESWMMobile
  • Shadowing with the corresponding files in CS folders:
    • CSPublicQueries\ESWMMobile
    • CSScrollerCommands\ESWMMobile

Workflow engine

Workflow execution logic

One workflow engine is created per RF connection (userID and appID).

At first:

  • Server recognizes userID and appID
  • Do some checks
  • Initiates WF Engine or continues with the existing

When new WF engine is started the following objects are loaded and are available during workflow execution:

  • Workflow engine objects (commands, services etc.)
  • Send keycodes & themes to RF client
  • Application and CACHE variables
  • All objects from ESRF\Common
    • Themes (per device type)
    • Modules (Config, Keys, Keycodes, Views, Resources, Commands, Scripts)
  • All objects from ESRF\[RFAppName]
  • All objects from CSRF\[RFAppName]

The engine reads the files (themes, keys, etc.) with the corresponding device type as suffix, otherwise reads the files without suffix, for example Keys.xaml, Keys.Motorola.xaml, Keys.Android.xaml

and starts then execution of the workflow that is defined in WF.xaml of the selected app [RFAPPName]


  • Executes workflow which is defined in WF.xaml
  • WF.xaml :
    • It’ s the main file of the application.
    • We define in xaml:
      • Keys
      • Config / Resources
      • Commands
      • Events
      • Views
  • Each View is appeared sequentially
  • Engine keeps views in a stack


Customization - files shadowing

Shadowing takes place between files with the same name which are in different folders (ES – CS).

If file with the same name is created in the folder CSRF\WMS then it replaces the corresponding file in the folder ESRF\WMS during execution of the workflow.

For example, file CSRF\WMS\Config.xaml will be executed instead of file ESRF\WMS\Config.xaml.

Customization – objects conflict resolution

All objects in files under subfolders are loaded and merged with the following order:

  1. The objects from files with suffix _Init in folder CSRF\WMS\Modules\MyFolder. For example, Config_Init.xaml, Views_Init.xaml.
  2. The objects from files in folders ESRF\WMS\ (and ESRF\Common\Modules). For example,

Config.xaml, View.xaml, Keys.xaml

  1. The objects from files in folder CSRF\WMS\Modules\MyFolder. For example,

Config.xaml, View.xaml, Keys.xaml


* The bold prevails.


XAML dev environment



  • F9: To get the ViewID. Custom views have an asterisk * in front of the ViewID.
  • F11: To enable debug mode
  • Config: <Set Property="DebugEnabled" Value="True" />


WF.xaml – Behavior




  • <Include Source="Staging" />: Include the XAML statements of the external xaml file.
  • <LocalInclude Id="CheckLotExpiration">: Define local include in xaml file for reusing XAML statements.
  • ESWMS-RF-Technical-Reference-Guide-image19.png
  • <Include Id="CheckLotExpiration" />: Reference to a specific local include.
  • Block: Organize XAML statements into conditionally executable blocks
    • Property: Condition




  • MenuView properties:
    • Id, Title, TitleLines, HelpText, HelpLine, StatusLines
    • Appearance
  • MenuView.MenuItem:
    • Text
    • Visible
    • ClientCommandId: If defined this command will be executed
  • MenuView.Events
    • OnVKeyPressed




  • FieldView properties:

    • Id, Title, TitleLines, HelpText, HelpLine, StatusLines

    • Appearance, DefaultCaptionPosition (Top, Left)

  • FieldView.Fields:

    • Label

    • Text

    • Numeric

    • Date

    • Lookup

  • FieldView.Events

    • OnSubmit

    • OnVKeyPressed




  • Properties:
    • Id
    • Caption
    • Text
    • Visible



  • Properties:
    • Id, Caption, Text, HelpText, MaxLength
    • Visible: Allows you to display or hide the field.
    • Blocking: It is mandatory to fill or set the field value.
    • Editable: The user is allowed to fill a value to the field.
  • Events:
    • OnVKeyPressed
    • OnValueChanged



  • Properties:
    • Id, Caption, Text, HelpText
    • Visible: Allows you to display or hide the field.
    • Blocking: It is mandatory to fill or set the field value.
    • Editable: The user is allowed to fill a value to the field.
    • ControlType (Decimal or Integer)
  • Events:
    • OnVKeyPressed
    • OnValueChanged



  • Properties:
    • Id, Caption, Text, HelpText
    • Visible: Allows you to display or hide the field.
    • Blocking: It is mandatory to fill or set the field value.
    • Editable: The user is allowed to fill a value to the field.
  • Events
    • OnVKeyPressed
    • OnValueChanged



  • Properties:
    • Id, Caption, Text, HelpText
    • Visible: Allows you to display or hide the field.
    • Blocking: It is mandatory to fill or set the field value.
    • Editable: The user is allowed to fill a value to the field.
    • ValueMember: The column of the public query that contains the value we want
    • VKey: The Vkey that activates the search, e.g. the execution of PublicQuery. Without VKey, the list opens automatically when the field gets the focus.
  • Hidden properties:
    • Value: The value of the column in ValueMember
    • SelectedItem: The selected row of ListView
  • Lookup.ListDataContext
    • ItemsSource: Is the data source of ListView
    • CtrlValue: The non-validated and temporary value of field ([VIEW.StorageLocation.CtrlValue])
  • Lookup.ListView
    • The display of the contents of ItemsSource (e.g. the results of PublicQuery)
    • ITEM: <Column Text="[ITEM.StorageLocation_Code][N][ITEM.StorageLocation_Description]"/>
  • Lookup.Events
    • OnVKeyPressed
    • ExitView



  • Properties:
    • Id, Title, TitleLines, HelpText, HelpLine, StatusLines, Appearance
    • Style : SingleColumn, CardView, CardViewSuppressNulls, SingleCard, SingleCardSuppressNulls
    • AutoSelectSingleItem
    • NoDataMessage
  • SelectionListView.ItemsSource
    • Is the data source of the SelectionListView.Columns
  • SelectionListView.Columns
    • Column Id, Caption, Text, Visible
    • ITEM: <Column Id="ContainerType" Text="[ITEM.Code] - [ITEM.Description]" Visible="[VIEW.ContainerType]" />
  • SelectionListView.Events
    • OnSubmit
      • <ExitView /> or <ExitView ExitCode = “OK” />
    • OnVKeyPressed

ESWMS-RF-Technical-Reference-Guide-image28.png ESWMS-RF-Technical-Reference-Guide-image11.png


  • Properties
    • Id, Title, TitleLines, HelpText, HelpLine, StatusLines, Appearance
    • Message
    • InitClientCommandId
  • Answers
    • VKey
    • Text
    • ExitCode: The ExitCode will be checked to decide the continuation of workflow.
    • Visible
  • Events
    • OnVKeyPressed




Error Message

  • Properties: Message, Condition, Title

  • Syntax:

<Error Message = "~no balance" Condition="[CTX.SelectedItem.HasBalance|NOT]"/>

  • In fact, a MessageView with Id “ErrorView” is executed when an error occurs.

  • EXIT.Message

<Invoke Service="CTX.Action.Save">


<Set Property="EXIT.Message" Value="~Απέτυχε η αποθήκευση[N][EXIT.Message]" />

<Error Exit="[EXIT]" />




Warning Message

  • Properties: Message, Condition, Title

  • Syntax:

<Warning Message = "~no balance" Condition="[CTX.SelectedItem.HasBalance|NOT]"/>

  • In fact, a MessageView with Id “WarningView” when a warning is displayed.

Invoke service

  • Properties:
    • Service: The service to be executed
    • Result: The returned objects from the execution of the service
    • Condition: Execution condition
  • Invoke.Params: The execution parameters of the service
  • Results handling:
    • OK: When the execution of the service returns results / objects
    • NO_DATA: When the execution of the service does not return results / objects
  • Exception handling:
    • ELSE: When an exception occurs


  • Displays a new view which is added to the stack (push a view at the top of the stack).
    • Properties:
      • View
      • Condition
      • DataContext
  • Results handling:
    • <OK>: default exitcode
    • <YES>, <NO> answers from message views
    • <When ExitCode="custom ExitCode">

Show an external view:


Show “inplace” view:



  • Displays an existing view in the stack (pop from the top of the stack) and removes the subsequent views.
  • Properties: View, DataContext, Condition, ReuseDataContext

Show an external view that already exists is the stack:ESWMS-RF-Technical-Reference-Guide-image33.png

Remains to the same view but with different datacontext:ESWMS-RF-Technical-Reference-Guide-image34.png


  • Stops the execution of the event.
  • Properties: Condition



  • The workflow remains on the same view


Set Property

  • Used to create object properties, to assign values to objects, to parameters, etc.
  • Syntax: <Set Property = “NameOfProperty” Value = “ValueOfProperty” Condition = “assignment condition” />

Use of “[Object]”, example:

<Set Property = “MyValue“ Value = “123” />

<Set Property = “MyObject“ Value = “MyValue” /> : The MyObject has value the text “MyValue“

<Set Property = “MyObject“ Value = “[MyValue]” /> : The MyObject has the value of the object MyValue which is “123”



  • Executes the barcode pre-processing and post-processing mechanism and returns an object with the identified item and the values assigned to the corresponding columns.
  • Invoke.Params : ItemCode


  • The WMS.ResolveItemInfo service returns the following columns:

GID, Code, ItemCode, Description, ItemDescription, fItemControlPolicyGID, AssemblyType, ItemType,

fItemMUGID, ItemMUCode, fMainMUGID, fAltMUGID, fWeightMUGID, ItemWeightMUCode, WeightReservedRelation, fVolumeMUGID, ItemVolumeMUCode, VolumeReservedRelation,

fServiceMUGID, ServiceMUCode, Quantity, QtyBaseMU, QtyAltMU, Weight, Volume,

ColorMgmt, SizeMgmt, LotMgmt, SerialNumberMgmt, StockDim1Mgmt, StockDim2Mgmt, LotCharacteristicsMgmt, fColorCode, fSizeCode, fStockDim1Code, fStockDim2Code, RequiresBCProcessing, fBCProcessingTypeCode, fLotGID, LotCode, LotBarCode, fSerialNumberGID, SerialNumberCode, SerialNumberBarCode, LotExpirationDate, LotProductionDate, LotLimitOrderDate, fLotTableField1Code, fLotTableField2Code, fLotTableField3Code, fLotTableField4Code, fLotTableField5Code, fLotTableField6Code,

LotStringField1, LotStringField2, LotStringField3, LotStringField4, LotStringField5, LotStringField6,

LotNumericField1, LotNumericField2, LotNumericField3, LotNumericField4, LotNumericField5, LotNumericField6,

LotNumericField7, LotNumericField8, LotNumericField9, LotNumericField10, LotNumericField11, LotNumericField12, NumericField1, NumericField2, NumericField3, NumericField4, NumericField5, NumericField6, NumericField7, NumericField8, NumericField9, NumericField10, NumericField11, NumericField12


Returns an object with all application IDs that were identified by barcode processing. The application IDs are defined in file ESConfig\ESGS1Config.xml.

Invoke.Params : Barcode


PQ.ESWMMobile (PublicQuery)

Executes a PublicQuery located on the application server in the subfolder: ESPublicQueries\ESWMMobile\[PublicQueryName]



  • Filters a PublicQuery results with the corresponding columns of ItemResolver.
  • Invoke.Params:
    • PQname
    • PQparams
    • ItemResolver
    • ignoreMU
    • joinMode: Default inner, Mem, PQ, Both
    • joinType: Equal, MemNullOrEqual, PQNullOrEqual, BothNullOrEqual
    • orderbyList
    • fromReplenishment
    • columnsSource


  • ESWMS-RF-Technical-Reference-Guide-image41.png


Executes a ScrollerCommand located on the application server in the subfolder: ESScrollerCommands\ESWMMobile\DummyFilter\[ScrollerCommandName]



Executes the printing mechanism for a specific StorageLocation, ActionType and Action. We must set the scroller Params that are defined in the specific ESGOReport.

  • ESWMS-RF-Technical-Reference-Guide-image43.png


Executes a specific script with its parameters.


Copies specific columns from one object to another



Groups the columns of one object and copies the result to another object



  • A set of services to create, update, delete, discard an action or actionitem.
  • Header of action:
    • WMS.NewAction : Create new action
      • Properties: ActionTypeInternationalID, TransportMode (From, To, Both)
      • Results: VIEW.Action
    • VIEW.Action.Update : Update existing action
      • Properties: Data, TransportMode
    • VIEW.Action.Save : Save action
    • VIEW.Action.Delete : Delete action
    • VIEW.Action.Discard : Discard action from cache
    • VIEW.Action.Complete : Change the state of the action to complete.
  • ActionItems of specific action:
    • VIEW.Action.NewItem : Insert new actionitem
      • Properties: TransportMode
      • Results: VIEW.ActionItem
    • VIEW.ActionItem.Update : Update existing actionitem
      • Properties: Data, TransportMode
    • VIEW.ActionItem.Action.Save : Save actionitem
    • VIEW.ActionItem.Delete : Delete actionitem
    • VIEW.ActionItem.Discard : Discard actionitem from cache
  • Properties:
    • DiscardOnException : Auto discard the action from cache when exception occurs
    • CreateRelation : Creates new relation in item mu relation


Events determine what happens when the RF workflow status changes, either on the client or on the server. For example, there are events that manage when a key is pressed on the client, but there are also events that manage when a field value change.

The engine automatically adds events that we can override.

  • OnAppStart: Is triggered at startup (WF.xaml)
  • OnVKeyPressed: Is triggered by user interaction
  • OnValueChanged: Is triggered when a field value is changed
  • OnSubmit: This event occurs when the focus is changed from the last field of a view

They apply to the following objects:ESWMS-RF-Technical-Reference-Guide-image46.png


Is triggered at startup (WF.xaml). Used to initialize parameters / objects.



Is triggered when a virtual key (VKey) is pressed by user.

The event is defined in fields, views and in APP level. It will be executed with the following priority.

First the event defined in the field, then in the fieldview and finally in the APP object, if the execution conditions are evaluated.


  • VKey, Vkeys: <OnVKeyPressed VKeys="Esc,ExitView">

  • Condition

  • ClientCommandId: If defined this command will be executed otherwise the XAML statements contained in the event will be executed.

  • ValueChanged (True, False): Will be executed only if the value of the focused field has changed.

    The engine adds some OnVKeyPressed automatically.

    Field event:


    View event:


    OnAppStart event:



Is triggered when a field value is changed.




This event occurs when the focus is changed from the last field of the current view and either a new view will appear, or an action like save will be performed.



Filters are used internally when evaluating an expression.

They are used: in conditions, in visibility, to display info, to assign values etc.


The evaluation order of an expressions is left to right and follows the Reverse Polish Notation.


VIEW and DataContext (CTX)


The VIEW is an object that contains the properties and the fields of the current view.

Properties of a view:

  • VIEW.Fields: The fields of a fieldview.
  • VIEW.FieldName.Value: The current value of the field (dirty value).
  • VIEW.Obj.ColumnsSource: The caption and Id for every column of an object.
  • VIEW.Obj.ItemsSource: The data rows of an object.
  • VIEW.Obj.ItemsSource|First: The first data row of an object.
  • VIEW.Obj.SingleItem: When the object contains one data row.


CTX is the data context of an object.

  • Used to transfer objects to the subsequent views through <ShowNext.DataContext>
  • CTX.FieldName.Value : Contains the previous value of the field
  • When the field value (VIEW.FieldName.Value ) is validated it is copied to CTX.FieldName.Value (auto binding)
  • CTX.Obj.SelectedItem : The selected item of a LookUp.ListView.

How to

Display custom info from a PublicQuery

The View is an object that contains the properties and the fields of current view.


  1. Create custom publicquery or modify the existing one to get the requested columns
    • Define the query parameters
  2. At the appropriate point in the workflow should be defined the execution of publicquery to get the results
    • Save the result to an object for next use


  1. Pass the object containing the results to the next view


  1. Display the results of publicquery on the view


Add OnVKeyPressed event to a field or a view


  1. Add OnVKeyPressed event to a specific field or view:


  1. Create a SelectionListView that will be displayed when the VKey is pressed by the user:


Enable remote assistance – remote monitoring

  1. Create or update the file CSRF\WMS\Modules\MyModuleName\Config.xaml and set the followings:

<RFInclude xmlns=">

<!-- Enable VKey FK95 for remote monitoring -->

<Set Property="Keys.FK95.CommandText" Value="Select RF" />

<Set Property="Keys.FK95.KeyCode" Value="119"/>

<Set Property="Keys.FK95.KeyText" Value="F8"/>

<!-- Enable VKey FK96 to ask for remote assistance -->

<Set Property="Keys.FK96.CommandText" Value="SOS" />

<Set Property="Keys.FK96.KeyCode" Value="118"/>

<Set Property="Keys.FK96.KeyText" Value="F7"/>

<!-- Enable VKey FK97 to disconnect for remote monitoring -->

<Set Property="Keys.FK97.CommandText" Value="Disconnect" />

<Set Property="Keys.FK97.KeyCode" Value="119"/>

<Set Property="Keys.FK97.KeyText" Value="F8"/>

<!-- Disable VKey FK44 -->

<Set Property="Keys.FK44.CommandText" Value="" />

<Set Property="Keys.FK44.KeyCode" Value=""/>

<Set Property="Keys.FK44.KeyText" Value=""/>


  1. Create or update the file CSRF\WMS\Modules\MyModuleName\Events.xaml and set the followings:

<RFInclude xmlns=">


<!-- Set the administrators userIDs that have remote access to the devices -->

<Set Property="CACHE.RF.IsAdmin" Value="[CACHE.RF.UserID|EQ;admin;admin1]"/>



  1. Users should be re-login to the devices and the following VKeys will be activated:

  • F7: to ask remote help (SOS) and disconnect from remote help.
  • F8:

a) help the remote user who requested help

  1. disconnect from remote help

  2. monitor the workflow of the remote user


ESWMS-RF-Technical-Reference-Guide-image61.png ESWMS-RF-Technical-Reference-Guide-image62.png

Αn eye icon appears to the administrator user during monitoring of the remote workflow:

ESWMS-RF-Technical-Reference-Guide-image63.png ESWMS-RF-Technical-Reference-Guide-image64.png

Αn SOS icon appears to the remote user when asks for help and a life vest icon is blinking to administrators:

ESWMS-RF-Technical-Reference-Guide-image65.png ESWMS-RF-Technical-Reference-Guide-image66.png

The administrator with F8 has the ability to select the remote user and take control of the remote workflow.


PDF Version