Produmex WMS Complete Configuration Guide

Overview

In Produmex WMS you can create your company structure by defining Organizational Structure Elements (OSEs). You can define them manually and you can also import zones and bin locations with the Import Tool.

The following elements can be created in the structure:

Company

ElementDescription
CompanyA company can be created only once per company database
WarehouseThe warehouse marks the highest level below a company. It refers to the place where goods are received, stored and from which they are shipped and it can also be the location where goods are transformed (manufactured or packaged). A warehouse in Produmex must always be linked to a warehouse in SAP Business One.
ZoneThe zone is a specific area in the warehouse where certain functions are grouped (e.g. goods receipt, shipping, packaging, etc.)
Production LineThe production line is a line where goods are produced and packaged (as a part of a warehouse).
Packing LineThe packing line is a line where goods that are picked on a movable location can be packed onto a logistic carrier to be shipped as a logistic unit.
DockThe doc is a location where goods are received and/or shipped (as a part of a warehouse).
Warehouse Automation LocationThe Warehouse Automation Location is an automated warehouse (mini load) that manages input and output of items automatically. Produmex does not manage the individual locations (boxes) in the automated warehouse, but keeps track of the inventory on a global level.
BinThe bin is an individual storage location managed by Produmex.
Silo TankThe silo tank is a fixed bulk storage location.
Movable LocationThe movable location is a movable storage location (e.g. a picking cart) on which goods are temporarily stored after picking and before they are packed on a logistics carrier or used in production (e.g. a forklift).
Thin ClientThe Thin Client (or Mobile Client / Fat Client) is a fixed or mobile operator station (e.g. a touch screen, a handheld terminal) by which the operator interacts with Produmex.
PrinterIt marks a printer at a specific location or connected to a specific thin client.
ScaleOne scale can only belong to a single weighing room / dock / packing station.
Weighing room

1. Create your company

Create your company in the Organizational Structure and define the general company settings.

1. Go to Produmex menu > Organizational Structure.

2. Right-click on your company, select New OSE and select Company.

3. Fill in the Name and Code fields.

4. Set a default language for your Mobile Client in the Language drop-down menu.

5. Provide your MS SQL / HANA credentials in the DB User Name and Password fields.

6. Fill in the PMX License Server field.

7. Click OK.

Defining general company settings

2. Define SAP warehouse settings

Define your SAP warehouse settings. Produmex WMS adds the following user defined fields (UDFs) to the SAP warehouse settings:

  • Is managed by Produmex?
  • Is transit WHS?

Warehouses

There are three possible combinations of the UDFs:

Managed by PMXTransit WHSWMS TerminologySetup needed in the Organizational StructureExampleCan be used on scanner
TRUEFALSEWMS warehouseYES - full setupMain stock warehouseYES - full usage
FALSETRUETransit warehouseYES - only warehouse & dock requiredtruck, sales employee stock, etc.YES - Ad-hoc moves, Receive from warehouse, Picking for Transfer Requests
FALSEFALSEStandard SAP warehouseNOStandard SAP Production warehouse, other SAP warehouseNO
TRUETRUEN/A/N/ANot possibleN/A

3. Create PMX WMS warehouses

Create your PMX WMS warehouses in the Organizational Structure and define the warehouse settings.

1. Go to Produmex menu > Organizational Structure.

2. Right-click on your company, select New OSE and select Company.

3. Fill in the Name and Code fields. Use the same code as defined in SAP Business One.

4. Link the warehouse to the SAP Business One warehouse in the Warehouse drop-down list.

5. Click OK.

Creating a PMX WMS warehouse

4. Create additional elements

Define the structure of your company by creating the necessary Organizational Structure Elements, for example create the zones, docks, bin locations of your warehouses.

Example of Organizational Structure

Example of Organizational Structure

1. Go to Produmex menu > Organizational Structure.

2. Right-click on your company, select New OSE and select the necessary Organizational Structure Element.

Creating the Organizational Structure

3. Provide a code and a name for the element and define its settings.

Tip: You can also import zones and bin locations with the Import Tool. For more information click here.

4. To create a sub-element, right-click on an element in the Organizational Structure, select New OSE and select the necessary sub-element.

Creating a sub-element

5. Define Organizational Structure settings

1. Beside the general settings, define additional settings on a company level. For information click here.

Defining settings on a company level

2. Define the settings of your Organizational Structure Elements. For more information on the settings click here.

2021/08/11 07:45 · vise

Overview

You can perform the initial set-up of Produmex WMS with the Produmex Import Tool that allows you to import elements through CSV or XML files to the Produmex system.

The following elements can be imported with a CSV file:

  1. Box Type by Item for WAS
  2. Box for WAS
  3. Item – Allergens
  4. Item – Batch Attributes
  5. Item – Card Code/Shelf Life
  6. Item – Card Code/Quality status
  7. Item – Packaging types
  8. Item – Zone types
  9. Item – Warehouse – Location or Zone
  10. OSE - Bin
  11. OSE - Bin Item
  12. OSE - Bin Item WAS
  13. OSE - Location Put Away Zones
  14. OSE - Location Attributes
  15. OSE - Movable location
  16. OSE - Zone
  17. Route Header
  18. Route Line

The following elements can be imported with an XML file:

  1. Localization (translation)
  2. OSE objects
  3. OSE settings

Additional information:

  • Bin location import:
    In case of bin locations you can use the tool for updating the existing locations. In case of any other entities, the tool cannot be used for updating them.
  • Location attribute import:
    Inheritance applies to location attribute import. The imported location attribute types and their values are automatically inherited from the main zone to sub-zones and bin locations and from sub-zones to bin locations. When a sub-zone or bin location inherits location attribute values, the system allows for selecting a different location attribute value later on.
  • Localization import:
    The localization (translation) file is overwritten during a Produmex database upgrade. You must repeat the import after every Produmex database upgrade.
  • OSE objects:
    You can import the following Organizational Structure Elements: company, warehouse, zone, bin, dock, printer, production line, thin Client

1. Prepare files

1.1 Prepare CSV files

The CSV templates for the Produmex Import Tool can be found in the installation zip folder > Templates > Import Templates subfolder.

Note: If the data to be imported contains special characters (e.g. °), save the CSV file with UTF-8 encoding.

UTF-8 encoding

1. Box Type by Item for WAS

Template: ImportBoxTypeforWAS

  • Code
  • Name
  • U_BoxType: The box type
  • U_ItemCode: The item code
  • U_Quantity: The quantity of the item that can be stored in the given box type.
  • U_DividerType: The divider type
  • U_CompartmentNr: The number of compartments a box has.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code;Name;U_BoxType;U_ItemCode;U_Quantity;U_DividerType;U_CompartmentNr
C1;C1;BT1;ITEM02;25;DIV1;3
2. Box for WAS

Template:ImportBoxForWAS

  • Code: The box code
  • Name: The box name
  • U_BoxType: The box type. The box type should exist in the Box type for WAS user table.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code,Name,U_BoxType
C1;C1;BT1
C2;C2;BT2
3. Item – Allergens

Template: ImportItemAllergens

  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • AllergenCode: The allergen code. Must be an allergen code defined on the Allergen types user table.
  • Can contain allergen (Y/N): If set to ’Yes’, the item does not contains the allergen by default, but it is possible that there are some traces of this allergen present.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;AllergenCode;CanContainAllergen
A006;GLUTEN;Y
A006;EGGS;N
4. Item – Batch Attributes

Template: ImportItemBatchAttributes

  • Item code: The item code. Must be an item defined in SAP Business One.
  • BatchAttributeCode: The batch attribute code. This code should exist in the PMX_BATT user table.
  • ValueEntryOption: This will set whether the value should be asked during reception. Possible values:
    • Required: User will have to fill in the data.
    • Optional: User can skip entry of the data.
    • Hidden: This batch attribute will not be asked during reception.
  • IsLinkedToBatch (Y/N): Is the batch attribute linked to a batch number?

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;BatchAttributeCode;ValueEntryOption;IsLinkedToBatch
02004;COUNTRY_OF_ORIGIN;OPTIONAL;N
02004;MANUFACTURING_DATE;HIDDEN;N
02005;COUNTRY_OF_ORIGIN;REQUIRED;N
5. Item – Card Code/Shelf Life

Template: ImportItemCustomerShelfLife

  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • CardCode: The cardcode of the customer. Must be a customer defined in SAP Business One.
  • CountryCode: The country code for this shelf life. (optional)
  • ShelfLifeInDays: Shelf life for the customer for the item.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;CardCode;ShelfLifeInDays
A006;K00001;94
6. Item – Card Code/Quality status

Template: ImportSupplierQualityStatus

  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • CardCode: The card code of the supplier. Must be a customer defined in SAP Business One.
  • QualityStatusCode: The code of the quality status. Must be a quality status defined on the Quality status tab of the Organizational Structure

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;CardCode;QualityStatusCode
A006;V00002;BLOCKED
7. Item – Packaging types

Template: ImportItemPackagingTypes

  • ItemCode: The item code. This item code must be known in SAP Business One.
  • PackagingTypeCode: The SAP UoM code.
  • Quantity: The quantity of the inventory unit of measure.
  • BarcodeType: Fixed value. Possible values:
    • G: Use this value for a GTIN14 barcode type (System will do a check if it is a valid GTIN-14 barcode).
    • F: Use this value for a Free Barcode type (System will perform no check).
  • Barcode: The Barcode of the Packaging Type.
  • AskDuringReception:
    • N: The system will not ask the quantity in the packaging type during the reception process.
    • Y: The system will ask the quantity in the packaging type during the reception process.
    • Remark: if the item is not managed in batches, the system will not allow a ‘Y’ value in this field.
  • HideDuringEnteringQuantity
    • N: The user cannot enter how much packaging types he is receiving.
    • Y: The user can enter how many packaging types he is receiving.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;PackagingTypeCode;Quantity;BarcodeType;Barcode;AskDuringReception;HideDuringEnteringQuantity
ITEM02;BOX;12;G;12345678901231;Y;N
8. Item – Zone types

Template: ImportItemZoneTypes

  • ItemCode: Item of the zone type. Must be an item defined in SAP Business One.
  • ZoneTypeCode: The code of the Zone Type. The Zone Type must exist in the organizational structure of Produmex.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;ZoneTypeCode
A006;C
9. Item – Warehouse – Location or Zone

Template: ImportItemWarehouseLocationOrZone

  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • PmxWhsCode: The Produmex code of the warehouse. The warehouse must exist in the organizational structure of Produmex.
  • DefaultLocationZone: The code of the location or zone that is default location/zone in the warehouse for the item. The location/zone must exist in the organizational structure of Produmex.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;PmxWhsCode;DefaultLocationZone
ITEM01;WH01;A0001
ITEM01;WH02;ZONE2.2
10. OSE - Bin

Template: ImportBin

  • Code: The scancode of the bin
  • Name: The name of the bin
  • Parentcode: The code of the structure element where the bin belongs to. The parent element must exist in the organizational structure of Produmex.
  • Is Active (Y/N): Is the location active?
  • IsDestinationForPicking (Y/N): Can the location be selected to put products on after a picking? Is the location a ‘pick and hold’ – location?
  • CanBeLinedUp (Y/N): Can the location be lined up during a production process. (Mostly used for Tanks/ Silo’s)
  • Sequence: The order in which the products at this location are used to compose a picking order. The pick locations with the lowest sequence number are used first to complete the pick order.
  • IsPickLocation: Can the location be used to perform item picking?
  • IsFixedItem (Y/N): Is the location a fixed pick location?
  • CanBeReplenished (Y/N): Can the location be replenished?
  • AllowCountDuringCycleCount (Y/N): Is the location allowed to be counted?
  • CountAfterNumberOfDays: The number of days after the location needs to be counted again.
  • MaximumLogisticUnits: The maximum number of allowed logistic units.
  • ItemStorageLocationType: Defines the item storage location type. Must be an existing Item Storage Location type stored in the PMX_ISLT user table.
  • VerificationCode: Verifies bin locations in the different flows. See more.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code;Name;ParentCode;IsActive;IsDestinationForPicking;CanBeLinedUp;Sequence;IsPickLocation;IsFixedItem;CanBeReplenished;AllowCountDuringCycleCount;CountAfterNumberOfDays;MaximumLogisticUnits;ItemStorageLocationType;VerificationCode
E01A001;E01A001;Zone1;Y;N;N;100;Y;N;N;Y;0;;;
A05A05;A05A05;Zone2;Y;N;N;120;Y;N;N;Y;0;;;

Note: In case of bin locations you can use the tool for updating the existing locations.

11. OSE - Bin Item

Template: ImportBinItem

  • ParentCode: The code of the Bin location. The bin location must exist in the organizational structure of Produmex.
  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • MinimumNumberOfItems: The minimum quantity of the item on the location. If the quantity falls below the minimum the system will generate a replenishment order.
  • MaximumNumberOfItems: The maximum quantity the location can contain of the specified item on the specified location.
  • NumberOfItemsToReplenish: Quantity that should be used to replenish a fixed pick location.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ParentCode;ItemCode;MinimumNumberOfItems;MaximumNumberOfItems;NumberOfItemsToReplenish
E01A001;A0001;10;999;10
12. OSE - Bin Item WAS

Template: ImportBinItem

  • ParentCode: The code of the Bin location. The bin location must exist in the organizational structure of Produmex.
  • ItemCode: The item code. Must be an item defined in SAP Business One.
  • MinimumNumberOfItems: The minimum quantity of the item on the location. If the quantity falls below the minimum the system will generate a replenishment order.
  • MaximumNumberOfItems: The maximum quantity the location can contain of the specified item on the specified location.
  • NumberOfItemsToReplenish: Quantity that should be used to replenish a fixed pick location.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ParentCode;ItemCode;MinimumNumberOfItems;MaximumNumberOfItems;NumberOfItemsToReplenish
E01A001;A0001;10;999;10
13. OSE - Location Put Away Zones

Template: ImportLocationPutAwayZones

  • ParentCode: The code of the parent structure element. The bin location must exist in the organizational structure of Produmex.
  • PutAwayZone: The code of the put away zone.
  • SortPickSequenceDescending (Y/N): Are the locations belonging to the put away zone sorted by the pick sequence descending?
  • Sequence: The sequence number for the put away zone.
  • BelongsTo (Y/N): Does the location belong to the put away zone?

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ParentCode;PutAwayZone;SortPickSequenceDescending;Sequence;BelongsTo
A11;Z1;Y;1;N
AA10;Z1;Y;2;N
AA10;Z4.1;Y;3;N
AA10;Z4;Y;4;N
14. OSE - Location Attributes

Template: ImportLocationAttributes

  • OSECode
  • AttributeCode
  • AttributeValue

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

OseCode;AttributeCode;AttributeValue
AAA1;AT1;abc
Zreception;AT1;def
Zreception;AT3;2
AA3;AT3;33
AA3;AT4;LV_2
15. OSE - Movable location

Template: ImportMoveableLocation

  • Code
  • Name
  • ParentCode
  • IsActive (Y/N)

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code;Name;ParentCode;IsActive
ML89;ML-89B;Zsale;Y
ML99;ML-99A;02;N
16. OSE - Zone

Template: ImportZones

  • Code: The code of the zone
  • Name: The name of the zone
  • Parentcode: Code of the warehouse/zone the zone belongs to. The parent element must exist in the organizational structure of Produmex or must be defined in the same import file in a preceding line.
  • UseForZonePicking (Y/N): Can this zone be selected on the Zone Picking Flow?

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code;Name;ParentCode;UseForZonePicking
Z1;Zone1;02;N
Z2;Zone2;Z1;Y
17. Route Header

Template: ImportRouteHeader

  • Code: The code of the route template.
  • Name: The name of the route template.
  • Weekday: The code of the weekday.
  • StandardLoadingDock: The loading dock assigned to the route template. Must be a loading dock that exists in the organizational structure of Produmex.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

Code;Name;Weekday;StandardLoadingDock
Test;Test route header;2;D2.1
Test2;Test2 route header;3;D2.1
18. Route Line

Template: ImportRouteLine

  • ParentCode: The route template code.
  • CardCode: The cardcode of the customer.
  • Sequence: Defines the shipping order of the route.
  • ShipToCode: The ship to code of the customer. Must be an existing Ship To code.

Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:

ParentCode;CardCode;Sequence;ShipToCode
Test;C00002;1;Customer 2 B
Test2;C00001;2;Customer 1
Test2;C00002;1;Customer 2 B
1.2. Prepare XML files
1. Prepare Localization file

When preparing the Localization file, with the Produmex Import Tool you can convert the file from XML to CSV and CSV to XML. In the drop-down menu you can select one of the following options:

  • XML > CSV
  • CSV > XML (New)
  • CSV > XML (Update): In case of update, provide the language code. The system updates the existing XML file only for the given language.
2. Prepare OSE settings XML

With this function the following configurations are exported:

  • General settings (except Language, Logo and DB Credentials)
  • Default tab settings: default quality statuses (Default quality status reception, Released quality status reception, Quality status sales return, Quality status cycle counting, Quality status returnable items)
  • Production tab settings: Quality status production
  • 3PL Invoicing settings
  • Extension Parameters

1. Go to the General tab of the Organizational Structure.

2. Click Export. The configurations are exported to an XML file.

Exporting configurations

3. Select the destination folder for the export.

The default folder is C:\Program Files\SAP\SAP Business One\AddOns\PMX\Produmex Add-On Loader 20

4. The export is finished message indicates that the export is finished. Click OK.

When the XML file is imported, it means that you have imported the data to the General tab, 3PL Invoicing tab and Extension Parameters tab of the Organizational Structure.

2. Import data

2.1. Run the Produmex Import Tool

1. Run the Produmex.Sbo.Logex.Tools.ImportTool.exe file.

Path: C:\Program Files\Produmex\Produmex Tools

2. Select a connection string from the Connection dropdown menu to define the destination database. Every connection string defined in the configuration file of the Produmex Import Tool can be selected (Produmex.Sbo.Logex.Tools.ImportTool.exe.config).

The selected connection string connects the database to the tool.

3. Perform the importing process (see general import or route templates).

Produmex Import Tool

2.2. General import

1. Select the import type in the Import type drop-down menu.

The following import types can be selected in the Import type drop-down menu:

  • Box Type by Item for WAS (.csv)
  • Box for WAS (.csv)
  • Item – Allergens (.csv)
  • Item – Batch Attributes (.csv)
  • Item – Card Code/Shelf Life (.csv)
  • Item – Card Code/Quality status (.csv)
  • Item – Packaging types (.csv)
  • Item – Zone types (.csv)
  • Item – Warehouse – Location or Zone (.csv)
  • Localization (.xml)
  • OSE objects (.xml)
  • OSE settings (.xml)
  • OSE - Bin (.csv)
  • OSE - Bin Item (.csv)
  • OSE - Bin Item WAS (.csv)
  • OSE - Location Put Away Zones (.csv)
  • OSE - Location Attributes (.csv)
  • OSE - Movable location (.csv)
  • OSE - Zone (.csv)

2. Browse the file.

3. Click on the Import button. At the bottom of the window the tool shows that the import has finished.

In case of OSE - Location Attributes and OSE - Movable location:

  • the tool asks if you want to overwrite the existing objects or skip them,
  • with the end of the import the tool also displays the number of inserted, updated and ignored objects.

4. Restart the add-on.

2.3. Import Route Templates

1. Browse the Route Header.csv file in the File Location - route template header field.

2. Browse the Route Line.csv file in the File Location - route template line field.

3. Click the Import Route Templates (.csv) button. At the bottom of the window the tool shows that the import has finished.

4. Restart the add-on.

2.4. OSE Objects Xml File Samples
2017/06/12 10:54 · csuhaa

Overview

On a database where Produmex WMS is installed for the first time, the Import Initial Stock Tool can be used to create Produmex stocks for all SAP stocks in selected warehouses.

Make sure that you do not run this tool if there is stock registered in Produmex for the warehouse. It can result inconsistencies between stock in SBO and stock in Produmex.

Limitation

Items managed by serial numbers are not supported.

Batches with lowercase alpha characters are not supported. All SAP Batch Numbers must be converted to uppercase before importing the initial stock.

Prerequisites

Each SAP warehouse where the Is managed by Produmex? setting is set to TRUE must have a corresponding warehouse set up in your Organizational Structure or the tool fails. For more information click here.

Importing initial stock

To start the import configure the connection string as a starting parameter as follows:

1. Open an empty text file.

2. Add the path of the Produmex.Sbo.Logex.Tools.ImportInitialSAPStockTool.exe file between quotations marks. Press the Space button and add the connection string.

“C:\Program Files\Produmex\Produmex Tools\Produmex.Sbo.Logex.Tools.ImportInitialSAPStockTool.exe” /cs:<connectionstring>

3. Save the text file as a .Bat file. E.g. Run_ImportInitialStockTool.Bat

4. Run the .Bat file.

On the opening form every warehouse that is managed by Produmex and has inventory in SAP Business One is listed.

Form

5. Enter the location code to the PmxLocationCode field on the line of the warehouse.

Note: Only active locations that belong to the warehouse can be added. If you leave the location code empty, the import is not performed for the given warehouse.

6. Click Import.

After the import is finished, the system displays a message containing the number of the updated stock lines.

The initial inventory from SAP Business One is booked for the selected location. The quality status of the stock is Released. The stock has no linked LUID.

Note:

  • If a batch managed item is on stock with multiple batches, each batch counts as a stock line.
  • The import is not registered in the Traceability Report.

Message

Once the stock is booked in Produmex, you can distribute it to their location with the Move function on the scanner. During the move it is possible to create new SSCCs or scan existing SSCCs.

2018/02/23 14:49 · csuhaa

There are typically 2 types of startup configurations: 1 for a scanner, and 1 for a touchscreen.
Below you can find 1 example of each:

SCANNER:
"C:\Program Files (x86)\Produmex\Produmex Fat Client\Produmex.Sbo.Logex.Execute.FatClient.exe" /f- /a:Produmex.Foundation.SlimScreen.WinGui.PocketSize /s+ /w:240 /h:320 /i:SCANNER1 /cs:SboConnectionString

TOUCH:
"C:\Program Files (x86)\Produmex\Produmex Fat Client\Produmex.Sbo.Logex.Execute.FatClient.exe" /f- /a:Produmex.Foundation.SlimScreen.WinGui.TouchScreen /s+ /w:1024 /h:768 /i:TOUCH1 /cs:SboConnectionString

Explanation for all the parameters:

Parameter Description
/f- f- means no fullscreen, f+ means fullscreen
/a:Produmex.Foundation.SlimScreen.WinGui.PocketSize PocketSize is for scanner fatclient, TouchScreen is for touch fatclient
/s+ s+ means form is sizable, s- means not sizable. Ignored if 'FullScreen' is set.
/w:240 Screen width (pixels) , scanner default = 240, touch default = 1024. Ignored if 'FullScreen' is set.
/h:320 Screen height (pixels) , scanner default = 320, touch default = 768. Ignored if 'FullScreen' is set.
/i:SCANNER1 SCANNER01 is the code of the client defined in the organizational structure
/cs:SboConnectionString Connection string tag name defined in fatclient config file.
/k:+ Show a keyboard.
/kp:50 The percentage of keyboard height.
/sp:50 The percentage of screen width.
/dilng:EN The language to use in the DI API connection (overrides the Produmex.DI_API.Language app setting). Use language codes from the OLNG table (ShortName column). Default: EN.
/cust The cust enables customization mode, cust- disables customization mode
/nocust The nocust startup parameter on the Mobile Client can be used to turn off customization. It stops collecting all the row data from the visualizers and only collects data for the selected line.
2023/07/13 15:00

A thin client is a fixed or mobile operator station (touchscreen, handheld terminal, etc.), by which the operator can interact and communicate with Produmex WMS. On the thin client level the following settings can be made:

1. Workflow tab

Workflow tab

Workflow
Next you can also assign a thin client to a “workflow”. A workflow is a sequence of actions to execute a certain operation, e.g. Reception, Picking, Production, Shipping, …

Parameter set
For certain flows extra parameters can be set. When selecting a parameter set, the options to enter are available below.

Number of items in sales unit column name
Define here the column name of the column that stores the number of items in the sales unit, defined on the item master data. By default ‘NumInSale’ is used. If you have a UDF to store this value, you can provide the name of the UDF.

Admin password
Provide here the password that will be used to unlock the administrator functionality in the showroom application. By default the password is ‘produmex’

2. Warehouses tab

Workflow tab

Thin clients created under a warehouse will see the warehouse locations and orders for the warehouse by default. On the ’Warehouse’ tab additional warehouses can be assigned for the thin client. If a warehouse is assigned for the thin client, its locations and orders can be seen on the client. It is not possible to disable the parent warehouse for the thin client by unticking the checkbox to the parent warehouse.

3. Users tab

Workflow tab

By default every SBO user can use the thin client if there is a free license that can be allocated for the thin client. However it is possible to assign only certain users for a thin client.

If there is at least one assigned user, only assigned users can login on the thin client. In case no users are assigned, ALL users are allowed to access the flow.

On the Users tab every SAP Business One user is listed. Check the ’Assigned’ checkbox in to assign an user.

4. Default Scales tab

Workflow tab

On the Default Scales tab you can set the default scales for users that they use during the Weighing Flow. For more information click here.

2017/06/12 14:26 · csuhaa

Overview

From product version 2023.06, users can start the scanner application of the Mobile Client in customization mode and you can customize all the workflows available. From product version 2024.06, users can now create more complex customized workflows in the customization mode by creating user queries and adjusting & filtering the options in the Customization Manager.

Users have the possibility to customize the buttons and the screens of the flow while different customization for user groups and users can be defined in a way that is optimal for the warehouse.

Videos on the customization mode are available here and here.

Overview about the customization UIs:

Customization mode

The name of the parameter is /cust. When you start the Mobile Client in customization mode, a customization icon (a cog sign) is displayed on the top-right corner of the screen. If you click the icon, it becomes red and the customization mode is active.

To customize the flow, proceed as follows:

  1. Click the customization icon.
  2. If you want to customize the screen, you can click anywhere on the screen. If you want to customize a button, click on the given button to be customized.
  3. Customize your screen on the displayed Customization form (see customization options below) and click Save.

Note: In order to see the changes the user needs to restart the Mobile Client with disabled/switched off customization mode.

Customization mode

Customization options

1. Customization options on the Customization Tab

User Group: If you select a specific user group, the customization applies to the users in the given user group.

User: By default, no user is selected. Instead of user groups, you can define a specific user to whom the customization applies. Enable the User option and use the drop-down menu to select a user.

Default Button: The Default Button section is active if you customize a button.

  • If you select the Default Button option, the user does not need to tap the button when working with the flow because the system automatically proceeds with the button. Only one button can be set as the default button on a screen.
  • If you use the Default Button option, you can also set a screen timeout in seconds. In this case the system displays the button for the user for the defined interval. Within this interval the user can tap another button or the flow proceeds with the default button.

Visible: By default, the visible option is enabled.

  • If you disable the option, the screen is not displayed for the user during the flow.
  • If you disable the option, the button is not displayed for the user even if it is set as a default button.

Note: Hiding buttons overrides customizations. 'User' settings override 'User Group' settings and specific 'User Group' settings override 'All Users' settings.

Example: The customization applies to the Inventory user group. The Order button is set as the default button on the Select a Filter screen. The screen is displayed for the user for two seconds and if the user doesn't tap another button, the system proceeds with the Order button.

Customization mode

Example: The GS1/EAN Barcode button is not visible for any group on the Select a Filter screen.

Customization mode

2. Customization options on the Events Tab

Load Event: In this field you can customize an existing event, write the preferable name in the field than push the save button. What we do here is selecting any of the events that are already in use and modifying it's action.

Load Event Name: In this field you can modify an existing event by giving a unique name for your new customized event, after saving the unique name open the Query Manager in B1 where you can add your query to the name. For example create a “sales_return” name in the Load Event field and open it up in the Query Manager for furthermore customization.

Load Event List: Under the Load Event field there are a list of the previous events and actions that you have already been through.

Manage: Pushing the manage button will show the customization manager screen.

Customization Manager

The Customization Manager screen is a helpful UI to manage your customizations in a visual way. On this screen you can find all of your user queries in a simple table. In the Customization Manager you can not change the database informations, you only have the option to filter/activate/inactivate/delete your added queries.

1. All Components

In the All Components part you can find a tree structure, the purpose of this navigation tree is to easily manage the rows where you added a new queries. The “golden arrow” shows the selected row in the tree structure. If you select the All components row than in the table on the right side will show every grid, every lines that are found below it in the system.

The main components in the tree structure:

  • Mainflows
  • Subflows
2. Filter

The Filter section contain all the filter options to search for a specific query.

Screen: By default, no screen is selected. In the screen from dropdown menu you can select the preferred screen.

User Group:If you select a specific user group, the customization applies to the users in the given user group.

Options:

  • All Users
  • Finance
  • Inventory
  • Purchase
  • Sales

User:By default, no user is selected. Instead of user groups, you can define a specific user to whom the customization applies. Enable the User option and use the drop-down menu to select a user.

Show: This options is a dropdown menu where you can choose between several options to search a specific group of queries e.g. if you would like to check on the all of your inactive queries.

Options:

  • Everything
  • All Active
  • All Inactive
  • Active Visible
  • Active Invisible

Customization: By clicking the options inside of the Customization aggregation you can easily set a quick filter and search for a group of queries.

Options:

  • Screen
  • Controls
  • User Quiers

Full Workflow: Clicking on the Full Workflow will extend the Workflow column with extra information about the path of the flows.

Reset Filters: With this button you can clear the filters that you previously set.

Customization Examples

1. Limitation: On the Events tab you can see your previous steps/actions listed under the Load Event field. In that list you can clearly follow all your steps since you opened the mobile client in customization mode. Be aware you will not find those kind of actions listed when you selected a value from a list by a manual click, for example you chose a product by clicking it's name from the list instead of scanning the item barcode.

The selected values will only appear in the action list when you manually entered the value (customercode, location etc.) into the field or scanned that value.

Choosing from a list by a clickEntering the value

2. Limitation: If a user query are no longer used there is a specific procedure to remove the query from the system. First you have to delete the query from the Customization Manager, after that action open the Query Manager in SBO and remove the unused query from that table.

Example 1. - Default customer for sales return

Insert the <customercode> to the input field, and after you added the query to the Query Manager, the query automatically will select the predefined customer then waits 1 second and clicks the forward button.

Load Event Name: sales_return

MSSQL:

SELECT '<customercode>' as "txtCustomerCode", 'btnForward' as  "DefaultButton", 1 as "DefaultButtonClickTimeout"

HANA:

SELECT '<customercode>' as "txtCustomerCode", 'btnForward' as  "DefaultButton", 1 as "DefaultButtonClickTimeout" FROM DUMMY

Implementation: Add the query in the Query Manager in SBO.

Example 2. - Validations of the default value

Validation of the input quantity value on the reception flow, in this example we are showing as default quantity the minor between still to receive and default quantity logistic unit.

Load Event Name: default_quantity

Implementation: Add the query in the Query Manager in SBO.

MSSQL:

SELECT 
CASE 
  WHEN CAST(LEFT('$[lblQuantity]', CHARINDEX(' ', '$[lblQuantity]')-1) AS INT) < U_PMX_DQLU THEN LEFT('$[lblQuantity]', CHARINDEX(' ', '$[lblQuantity]')-1)
  ELSE U_PMX_DQLU
END AS "edtCounter0" 
FROM "OITM" WHERE U_PMX_CUDE = '$[lblItem]'

HANA:

SELECT
CASE
WHEN CAST(LEFT('$[lblQuantity]', LOCATE( '$[lblQuantity]',' ')-1) AS INTEGER) < "U_PMX_DQLU" THEN LEFT('$[lblQuantity]', LOCATE( '$[lblQuantity]',' ')-1)
ELSE "U_PMX_DQLU"
END AS "edtCounter0"
FROM "OITM" WHERE "U_PMX_CUDE" = '$[lblItem]'
Example 3. - Finding a Pick List connected to a default customer

In this example if the query finds a Pick List that is connected to the <customercode> then the query will select the first Pick List then clicking on the forward button, if the query will not find a Pick List then nothing will happen.

Load Event Name: finding_picklist_connected_default_customer

Implementation: Add the query in the Query Manager in SBO.

MSSQL & HANA:

SELECT TOP 1 "DocEntry" AS "txtPickList", 
CASE WHEN "PMX_PLHE"."DocEntry" IS NOT NULL THEN 'btnForward'
ELSE ''
END AS "DefaultButton",
CASE WHEN "PMX_PLHE"."DocEntry" IS NOT NULL THEN '1'
ELSE ''
END AS "DefaultButtonClickTimeout" 
FROM "PMX_PLHE" WHERE "CardCode" = '<customercode>'
ORDER BY "DocEntry" ASC
2021/04/05 21:05 · vise
4.2.1. Difference between scanner and touchscreen mode

The application can run either on a scanner or on a touch screen. The scanner mode is used in mobile scanner devices. The touchscreen mode can be used in addition to the scanner, on immobile devices. The minimum screen resolution is 240 x 320 for the scanner mode and 1024 x 768 for the touchscreen mode.

The menu structure is the same on both mode, but the available functions are different. Because the touchscreen is used on immobile devices, flows connected to fixed stations are available in touch screen mode.

2017/06/12 11:22 · csuhaa
4.2.2. Sections of the screen

Title

The title is located on the top of the screen. It can display system commands or the name of the current step. While navigating among the menus, the title shows the menu structure. Next to the menu name, the system also displays the menu page number.



Menu screens have a blue background. Screens in a normal flow have a grey background.

Toolbar

The toolbar is located on the bottom of the screen. When a button is inactive, it is displayed in gray.



(1) Left arrow: Displays the previous screen.
(2) Stop: Exits from the current flow.
(3) Refresh: Updates the document list.
(4) Delete: Removes the selected item.
(5) Right arrow: Displays the next screen.

Additional toolbar buttons on the touchscreen:



(1) Left arrow: Displays the previous screen.
(2) Stop: Exits from the current flow.
(3) Keyboard: Displays the touchscreen keyboard.
(4) Clock: Used in the production flows to start the time registration.
(5) Delete: Removes the selected item.
(6) Settings (This button is not currently in use but is reserved for future use.)
(7) Refresh: Updates the document list.
(8) Right arrow: Displays the next screen.

2017/06/12 11:22 · csuhaa
4.2.3. Quick access menu

When hovering over or pressing on the title, a downward arrow appears. Press the arrow to open the Quick Access menu. To close the menu, press the upward arrow on the bottom.

Quick Access menu

In the standard product the Quick Access menu shows the main menu buttons. The menu can be reached from any flow. When pressing a button on the menu, the user will leave the current flow and all parent flows without any warning and the system will open the selected flow.

The data registered in the current flow will be lost when clicking on a Quick Access button.

Configuration

When a quick access button is pressed, the current flow will be left, and all parent flows also until there is a flow whose constructor contains the following:

 this.StopOnQuickAccessButtonClicked = true 


In the standard product the stop is added in the MainWarehouseMenuFlowScript.

ListOfQuickAccesButtonsToShow dictionary

To be able to show the quick menu, a configuration needs to be done on the main flow to add a list of buttons to show on the quick access menu.

The buttons shown in the quick access menu are the ones defined in the ListOfQuickAccesButtonsToShow dictionary. In the standard product the MainWarehouseMenuFlowScript has this configuration after the user logged on:

ListOfQuickAccesButtonsToShow = new Dictionary<string, string[]>();
ListOfQuickAccesButtonsToShow.Add("MSG_BUTTON_PURCHASE", new string[] { "MSG_BUTTON_PURCHASE" });
ListOfQuickAccesButtonsToShow.Add("MSG_BUTTON_SALES", new string[] { "MSG_BUTTON_SALES" });
ListOfQuickAccesButtonsToShow.Add("MSG_BUTTON_LOGISTICS", new string[] { "MSG_BUTTON_LOGISTICS" });
ListOfQuickAccesButtonsToShow.Add("MSG_BUTTON_PRODUCTION", new string[] { "MSG_BUTTON_PRODUCTION" });


This builds the list of buttons to show, and the ‘path’ to get to that flow.

ListOfQuickAccesButtonsToShow dictionary

Customization

It is possible to customize the Quick Access menu and show buttons one level deeper or disable quick buttons.

It is recommended to customize the Quick Access menu in a custom flow that is created based on the standard Produmex main flows. For more information about how to customize main flows please see: 5.1.13. Workflows

In the example we will add the Picking flow to the Quick access menu and disable the Purchase, Logistic and Production buttons. To add the Picking flow, insert the following after the other quick access buttons in the workflow script:

ListOfQuickAccesButtonsToShow.Add("MSG_BUTTON_PICKING", new string[] { "MSG_BUTTON_SALES",  "MSG_BUTTON_PICKING"  });

The translation key of the new button is ‘MSG_BUTTON_PICKING’.

The path to the flow is “MSG_BUTTON_SALES”, “MSG_BUTTON_PICKING”.

After the Picking button is pressed, the system leaves the current flow and all its parent flows until there is a flow with the option

 ‘StopOnQuickAccessButtonClicked’ = true 

(With default settings it is the main menu flow). Then the main menu flow will start the flow behind the “MSG_BUTTON_SALES” button. This flow contains a list of buttons. The system will start the flow behind the “MSG_BUTTON_PICKING” button that was defined in the path.

Please note: If the path does not exist, an error message will be shown.

Quick Access buttons can be disabled in the same way as other menu buttons. Please see: 5.1.13. Workflows.

If there are existing customized main flows, this functionality will not be enabled by default, because the customized flows do not contain the configuration, nor does it have the functionality to automatically proceed to the correct flow using the patch defined on the Quick Access menu.

2017/06/12 11:23 · csuhaa
2017/06/12 11:24 · csuhaa
4.3.1. Login screen

Before using the system, log in.
Press the ‘Username’ field and enter the username. The user must be an SAP user. In order to post the documents in SAP Business One, the SAP user need the relevant authorizations and at least an SAP Indirect Access license as of SBO 9.2. PL08.
Press on the ‘Password’ field and enter the password.
Press the right arrow button or 'Enter' to proceed.

It is possible to set a barcode username and password for scanners without numeric keyboards.

2017/06/12 11:25 · csuhaa
4.3.2. Selection screens

List with filtering option and a button
When it is possible to continue the flow without selecting an item from a list, the system will display a ‘No list item’ button on the screen. Press the button to continue the flow without selecting an item.

2017/06/12 11:26 · csuhaa
4.3.3. Scanning screens

In the title section the system displays which type of barcode is required for scanning.
When the system requires a barcode, it will show the text “- - >BarCode< - -“ in the field.

Scan a barcode on a logistic unit

Scan the barcode(s) on the item.
All the information from the GS1 barcodes will be saved into the memory and the system will not ask additional questions about the scanned information.

When handling multiple items, it is possible to scan all the SSCC barcodes in one screen. The barcodes that have been already scanned are displayed in a list.
For removing an item, select it from the list and press the ‘Delete’ button on the toolbar.

When it is possible to continue the flow even though there is no GS1 label, a button will appear in the bottom of the screen. Press the button to continue the flow without scanning a barcode.
After having all the barcodes scanned, proceed by pressing the ‘Done’ button.

Scan a barcode on a product

Scan the barcode on the product.
When it is possible to continue the flow even though there is no product barcode, a button will appear in the bottom of the screen. Press the button to continue the flow without scanning.

Scan a location

When the system indicates a default location, it is displayed in the bottom of the screen. Scan the barcode of the indicated location. It is possible to continue with another location by using the buttons, but the system will ask for confirmation.

Scan a master SSCC

When performing consolidated picking, it is possible to scan both master SSCCs and child SSCCs on the Scan a master SSCC screen. Master SSCCs that contain multiple batches are also supported.

Note: The screen is displayed if the Consolidate items to pick? setting is enabled on the picklist controller.

2017/06/12 11:27 · csuhaa
4.3.4. Screens for entering additional information

Add (define) quantity by scanning the serial numbers

The quantity of serial managed items can or must be added by serial number scanning, depending on their management method. WMS supports multiple ways for adding quantity by serial number scanning.

It is possible to remove an already scanned serial number. Go to the list of already scanned serial numbers. When the list is too long to be displayed on one screen, use the green arrows to scroll through the list. Select the serial number and press the ‘Delete’ button on the toolbar.

Serial numbers
Scan the serial numbers one by one. The serial number is immediately validated after scanning.
The successfully scanned serial numbers are listed on the screen. On the top of the scanner field, the screen displays the number of the products that have been already scanned and the maximum number of products.
After having all the serial numbers scanned, proceed by pressing the right arrow button.

Serial numbers - Range
Scan the start range (first serial number) and the end range (last serial number). After scanning the two serial numbers, proceed by pressing the right arrow button. Serial number validations run after proceeding from the Scan a serial number screen.
The system calculates the entered quantity based on the number of serial numbers in the range. Confirm the quantity by pressing 'OK'.
After confirming the quantity, the list of scanned serial numbers is displayed. Press the right arrow button or 'Enter' to proceed.

Serial numbers - Bulk
Scan the serial numbers one by one. Serial numbers are only validated after the forward button is pressed.
If there is an issue with the scanned serial numbers, only the first error is displayed. Acknowledge the error by pressing 'OK'. The system goes back to the list of scanned serial numbers.

This input method is implemented in the following flows:

  • Reception flow
  • Packing flow
  • Consolidation Packing flow
  • Item Packing flow
  • Mobile Packing flow.

Enter Best Before Date
Enter the date to the respective field. By default, the system displays a date which is calculated based on the expiry definition settings for the item and the current date.
Press the right arrow button or 'Enter' to proceed.

When there is a best before date linked to the item which expires later than the entered best before date, a warning will be displayed.

2017/06/12 11:27 · csuhaa
4.3.4. System messages

Error message

Error messages are displayed when an error occurred. Press the ‘Ok’ button to proceed.

2017/06/12 11:29 · csuhaa
2017/06/12 11:29 · csuhaa

With product version 2020.12, filter bars are added to additional screens of the Mobile Client. This documentation lists the screens and next to each screen name you can find the flows where the screen is available. The third column shows the data on which filtering is possible. It is enough to start typing the given code or text in the filter bar and the system immediately updates the list on the screen.

For the batch selection screen, the filter bar contains the ability to parse GS1 codes and recognize the AI for Lot Number.

Scanner mode

ScreenFlowFiltering on
Select a Logistic Unit to Pack onMobile PackingSSCC
Select Zone TypeBulk Reception, Receptionzone type code and name, reason code and name
Select Sales Order LineBulk Shippingcustomer code, name, document
Select Batch NumberAd Hoc Picking, Combine Packed LUID, Consolidated Ad Hoc Move, Move Order, Move to Production Line, Picking for Production, Picking, Purchase Return, Put Away, Receive from Whs, Sales Return, Select Product from Stock, Undo Picking, WA Move ProcessingBatch number, batch number2, quality status code and GS1 barcodes with lot number (10), lot number 0 (230) and lot number 1 (231) identifiers can be used for filtering. Filtering on best before date is not supported.
Select Customer AddressCombine Packed LUID, Mobile Packing, Shippingcustomer code, name, address
Select ReasonAd Hoc Move, Ad Hoc Picking, Adjust SSCC, Cycle Count, Bulk Reception, Consolidated Ad Hoc Move, Move Multiple SSCCs, Move Order, Move Partial SSCC, Picking for Production, Purchase Return, Put Away, Quality Status, Reception, Sales Return, Shipping, Undo Pickingreason text
Select SSCCAd Hoc Picking, Consolidated Ad Hoc Move, Move Order, Move Partial SSCC, Move to Production Line, Picking for Production, Purchase ReturnSSCC
Select Stock ItemChecks, Quality Statusbatch number, batch number2, item code, item name, item barcode, storage location, quantity, SSCC, Master SSCC, UoM, UoM2 code and name, quality status
Select Alternate StockPicking Flow, Box Pick and Pack Flowitem code, item description, batch number, storage location and item barcode

Touchscreen mode

ScreenFlowFiltering on
Select a Logistic Unit to Pack onPackingSSCC and parts of the code
Select Customer AddressPackingcustomer code, name, address
Select ReasonPackingreason text
2020/12/18 15:01 · vise

1. Prepare setup

1.1. Install Serial Grabber

As the first step, install the Serial Grabber. The Serial Grabber is an application that tests the connection and the configuration of the scale.

You can download the application from here: FTP

1.2. Check scale connection

Make sure the scale is connected and visible in the device manager. Only continue if the scale is visible.

2. Configure scale

The configuration steps might differ based on the used device. In this documentation we describe the configuration steps of a Mettler Toledo PS60 scale.

2.1. Verify the settings of the scale

Check the following setup parameters of the scale:

  • Baudrate
  • Number of Databits per ASCII Characters
  • Parity Bit
  • Number of Stopbits
  • Protocol

Mettler Toledo PS60 example
In order to check the scale settings, follow these steps:

  1. Press the ’Units’ key and hold it until the „SETuP?” message is displayed. (This takes approximately 10 seconds.)
  2. Press the Units key repeatedly until a required parameter is shown on the display. The required parameters are shown with the following codes:
    • Baudrate: BAud
    • Number of Databits per ASCII Characters: ASCii
    • Parity Bit: PAr
    • Number of Stopbits: StoP
    • Protocol: Proto
  3. Press the Zero key to read the parameter value.
  4. Write down the parameter vale.
  5. Repeat steps 2. 3. and 4. until you have checked every required parameter.
ParameterScale displayExample Value
BaudrateBAud9600
Number of Databits per ASCII CharactersASCii7
Parity BitPArEven
Number of StopbitsStoP1
ProtocolPrototoLEdo
2.2. Test connection

Test the scale connection with the help of the SerialGrabber application.

Run the application and fill in the values:
1. Port: The port number. You can check the port number on the Device Manager.
2. Baudrate: The Baudrate value.
3. Databits: The number of Databits per ASCII characters.
4. Parity: The Parity value.
5. Stopbits: The number of Stopbits.

Add any scale command to the field next to the ‘Send’ button (6) then press the button. You can look up the scale command in the documentation of the scale. Make sure that you use a valid command used by the given scale. The response of the scale is displayed on the field below the command in the following format:
7. TX: entered command
8. time
9. returned command in HEX
10. returned command in ASCII

Example:
In the example we used the get weight command for the Mettler Toledo PS60 scale which is ‘W’.
In return, the Serial Grabber displays the return weight command displayed in hexadecimal and in ASCII characters.

Serial Grabber does not support special characters except for the line feed (\n) and carriage return (\r) characters.
If you have to include another special character(s) in the entered command, you can use Docklight instead of SerialGrabber. You can download the evaluation version of Docklight from here: https://docklight.de/downloads/

2.3. Configure the scale

Create a scale in the Organizational Structure. For more information about the scale settings please see: Scale settings.

First define the scale connection. Make sure that you use the correct scale parameters when you define the communication parameters. In some cases it is possible that the connection can be established with incorrect parameters but the scale returns the result in incorrect characters if the connection is not set properly.

Example: Scale definition for the Mettler Toledo PS60
The following parameters are required in order to define the scale connection:

  • Port number: We can check the port number on Computer Management. In this example the port number is COM3.
    • Baudrate: In this example the Baudrate value is 9600.
    • Databits: In this example the Databits value is 7.
    • Parity: In this example the Parity value is Even (E).
    • Stopbits: In this example the Stopbits value is 1.

If the scale is connected through direct connection, the scale definition is: com://COM3?9600,7,E,1

If the scale is connected through the ScaleComm service, the scale definition is: com://COM3?9600,7,E,1

Then set up the scale commands based on the manual of the given scale. The weight return command is used to return the captured weight into the Produmex application. The weight return command must be defined as a regular expression.

You can use the RegExTester tool to test your regular expression for the weight return command. Download the tool from here: FTP

Example: Weight return command for the Mettler Toledo PS60
On the SerialGrabber we can see that the scale returns the following HEX command:
02 30 30 31 2E 39 30 0D

The HEX command starts and ends with a control character, in this example the start control character is ‘02’ and the end control character is ‘0D’.

HEX code Regexp code
02 \x02
0d \x0d

The string between the control characters is the weight. The weight in the expression should always be surrounded by (?’weight’). Because the weight string can contain any character and has no defined length, we also add the ‘.’ (match any character operator) and the ‘+’ (match one or more operator) to the expression.

Therefore the regular expression for the weight return command is: \x02(?'weight'.+)\x0d

2.3.1. Legacy configuration for the Component weighing flow

Set up the scale on the Scale definition user table:

  • Define the code and the name.
  • Define the scale provider type.

Link a scale to a thin client on the Defines the weighing scales available to a specific thin-client user table.
Please note: Only one scale can be hooked up to a thin client.

2.4. Enable ports in remote desktop connection

Enable the ports, otherwise the scale will not communicate through the RDP session.

Open the Remote Desktop and click on ‘Show options’. Go to the Local Resources tab and click on the ‘More…’ button under Local devices and resources. On the opening window check the ‘Ports’ checkbox.

2017/06/12 14:33 · csuhaa

1. General parameters

Logging level
The logging level defines the amount of logging done by the application. Each event that can be logged has a priority. The logging level defines which events will be added to the log file.

Logging levels listed in order of increasing amount of information logged:

  • OFF
  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • ALL

The default value is WARN and it can be changed to other logging levels in two lines of the given configuration file (see examples below).

The location of the configuration files are described in the sections below. Additional configuration files of Produmex WMS can be found in C:\Program Files\Produmex\Produmex Tools, e.g.:

  • Produmex.Sbo.Logex.Tools.UpdateDatabaseTool.exe
  • Produmex.Sbo.Logex.Tools.SalesDeliveryTool.exe

The configuration files are XML text files, they can be edited with a text editor (Notepad).

Examples:

Add-On Loader

Fat Client

ScaleCommService

Notification Listener

2. Add-On

The configuration file of the add-on loader will be used. The configuration file for the add-on loader application is located in the folder of the Add-On Loader.

Example of 64-bit SAP client:

C:\Program Files\SAP\SAP Business One\AddOns\PMX\Produmex AddOnLoader 20
The file name is Produmex.Foundation.Sbo.AddOnLoader.exe.config

Example of 32-bit SAP client:

C:\Program Files(x86)\SAP\SAP Business One\AddOns\PMX\Produmex AddOnLoader 20
The file name is Produmex.Foundation.Sbo.AddOnLoader.exe.config

TransactionIsolation

Defines the isolation level. For more information see: IsolationLevelEnumeration
Default value: ReadCommitted

TransactionTimeout
Sets the wait time before terminating the attempt to commit the transaction. The value is in hour:minute:second format.
Default value: 00:10:00

CommandTimeout
Sets the wait time before terminating the attempt to execute an SQL command and generating an error. The value is in seconds.
Default value: 30

NumberOfRetriesDeadlock
Specifies the amount of times the application will try to book the same transaction again, when it fails due to specific error types like deadlock, timeout, uncommittable transaction or -2038 SBO error code.
Default value: 3

LogDocumentAsXML
If set to true, data sent to the SAP DI API to generate documents will be exported to the log file in xml format.
Default value: false

In order to export documents to the log file, the ’INFO’ level logging is required. Change all ’WARN’ levels to ’INFO’ in the configuration file.

DebugLocalization
If set to true, localization will be logged on Debug level logging.
Default value: false

DebugLicenseServerClientComm
If set to true, the License Server Client communication (Tx/Rx messages) will be logged on Debug level logging.
Default value: false

Log File configuration
The relative path of the log file is configured in the config file in the line below:

<file value=“.\Log\AddOnLoader.${USERDOMAIN}.${USERNAME}.${SESSIONNAME}.txt” />

All the log files to all of the components of WMS are saved into one common directory from version 2023.06.00 (users are notified at update)

The new location to the log files is:

%ProgramData%\Boyum IT\WMS

For older versions, the path of the log file is:

c:\Program Files\SAP\SAP Business One\AddOns\PMX\Produmex Add-On Loader 20\Log\

3. Fat Client

The configuration file for the fat client application is located in the installation folder of the fat client, for example: C:\Program Files\Produmex\Produmex Fat Client
The file name is Produmex.Sbo.Logex.Execute.FatClient.exe.config

TransactionIsolation
Defines the isolation level. For more information please see: IsolationLevelEnumeration
Default value: ReadCommitted

TransactionTimeout
Sets the wait time before terminating the attempt to commit the transaction. The value is in hour:minute:second format.
Default value: 00:10:00

CommandTimeout
Sets the wait time before terminating the attempt to execute an SQL command and generating an error. The value is in seconds.
Default value: 30

NumberOfRetriesDeadlock
Specifies the amount of times the application will try to book the same transaction again, when it fails due to specific error types like deadlock, timeout, uncommittable transaction or -2038 SBO error code.
Default value: 3

LogDocumentAsXML
If set to true, data sent to the SAP DI API to generate documents will be exported to the log file in xml format.
Default value: false

In order to export documents to the log file, the ’INFO’ level logging is required. Change all ’WARN’ levels to ’INFO’ in the configuration file.

DebugLocalization
If set to true, localization will be logged on Debug level logging.
Default value: false

DebugLicenseServerClientComm
If set to true, the License Server Client communication (Tx/Rx messages) will be logged on Debug level logging.
Default value: false

Produmex.ScriptAssembliesPath
Specifies the path to the script assemblies.
Default path: C:\Produmex\ScriptAssemblies\

Produmex.TempSAPReportPath
Specifies the path to the folder where reports that are retrieved from SAP Business One directly, are stored temporary during the printing.
Default path: C:\Produmex\Reports\TempSAPReports\

Produmex.Error.BackColor
Determines the background color of the error messages. For the supported values please see: Color.FromName Method (String)
Default value: DarkOrange

Produmex.Message.BackColor
Determines the background color of the information messages. For the supported values please see: Color.FromName Method (String)
Default value: WhiteSmoke

Produmex.Screen.Menu.BackColor
Determines the menu background color. For the supported values please see: Color.FromName Method (String)
Default value: LightSteelBlue

Produmex.DI_API.Language
Defines the DI API language.
Supported values: language codes (You can find the language codes in the OLNG table).
Default value: EN

Produmex.Barcode.UseAltModeForBarcode
Defines whether Produmex reads scanned barcode digits as they were keyed in ALT mode or not. Set this option to true if the ALT mode is enabled on the scanning device.
Default value: false

Produmex.Barcode.ParseCode128AsGS1
If set to ‘True’, every Code 128 barcode will be parsed as a GS1-128 barcode.
Default value: false

Produmex.Grid.NavigationByPage
Defines the grid navigation type.
If set to True, the list/grid will navigate by page.
If set to False, the list/grid will navigate by element.

Produmex.Screen.IEnterItemQuantityCombinedScreen.MaxNumberOfButtons
Specifies the maximum number of the component buttons on the ‘Enter the quantity disassembled’ screen in the Disassembly-weight flow. If there are more components than the value set, component buttons will be displayed on multiple screens. Left and right buttons will be added for navigation.

Supported values: n*n, n*(n+1), n*(n+2) where n=positive integer
Default value: 49 (7*7)

SearchForOnlyPicklistNumberOnSelectPicklistScreens
When set to 'True', it forces the client to search only for picklist numbers.

Default value: False

picklistnumber

Log File configuration
The path of the log file is configured in the config file in the line below:

<file value=“c:\ProgramData\Boyum IT\WMS\Produmex.Sbo.Logex.Execute.FatClient.exe.${USERDOMAIN}.${USERNAME}.${SESSIONNAME}.log” />

All the log files to all of the components of WMS are saved into one common directory from version 2023.06.00 (users are notified at update)

The new location to the log files is:

%ProgramData%\Boyum IT\WMS

For older versions, the path of the log file is:

c:\Produmex\Log\

MemoryCleanerFrequencyInSeconds
The Memory Cleaner execution frequency in seconds.

  • If the value is positive, it will be used as the frequency in seconds.
  • If the value is 0, the default frequency will be used.
  • If the value is negative, the Memory Cleaner will be disabled.

Default value: 10

4. ScaleComm Service

The configuration file for the ScaleComm service is located in the installation folder of the ScaleComm service, for example: C:\Program Files\Produmex\ProdumexScaneComm
The file name is Produmex.Sbo.Logex.ScaleComm.Service.exe.config

TransactionIsolation
Defines the isolation level. For more information please see: IsolationLevelEnumeration
Default value: ReadCommitted

TransactionTimeout
Sets the wait time before terminating the attempt to commit the transaction. The value is in hour:minute:second format.
Default value: 00:10:00

Mode
Specifies the communication mode of the ScaleComm Service. Possible values:

  • SBO: Obsolete communication mode. Scales will be identified based on the InstanceID.
  • WSBO: New communication mode. Scales will be identified based on the ScalesCodes. In order to use Produmex Weigh, the mode must be WSBO.

Default value = WSBO

Instance ID
The instance ID of the scale defined in the Scale definition (PMX_SCLD) table. Please note: The Instance ID will only be taken into account if the Mode is ‘SBO’.
Default value = Instance 1

ScalesCodes
The scale code defined in the Produmex Organizational Structure. To add multiple scales, separate the scale codes by comma.

Skip Polling
Specifies whether to automatically fill the Scale weight result UDT with the measured weight.

Default value = False

Please note: When using the SBO mode, the Scale weight result UDT will not be filled regardless of this setting.
The values saved in the Scale weight result UDT are not used in the standard Produmex WMS processes. However these values can be used to easily integrate the Produmex WMS scale integration to other systems. (You can find an integration example with PDC here.)

Polling Interval
Defines the polling frequency. The value is in milliseconds.
Default value = 1500

All the log files to all of the components of WMS are saved into one common directory from version 2023.06.00 (users are notified at update)

The new location to the log files is:

%ProgramData%\Boyum IT\WMS

5. Notification Listener Tool

The configuration file for the Notification Listener tool is located in the installation folder of the Notification Listener, for example: C:\Program Files\Produmex\Produmex SB1 Notification Listener (SboConnectionString)
The file name is Produmex.Foundation.SboNotification.ServiceHost.exe.config

TransactionIsolation
Defines the isolation level. For more information please see: IsolationLevelEnumeration
Default value: ReadCommitted

TransactionTimeout
Sets the wait time before terminating the attempt to commit the transaction. The value is in hour:minute:second format.
Default value: 00:10:00

FrequencyMiliseconds
Defines the run frequency of the Notification Listener tool. The value is in milliseconds.
Default value: 5000

All the log files to all of the components of WMS are saved into one common directory from version 2023.06.00 (users are notified at update)

The new location to the log files is:

%ProgramData%\Boyum IT\WMS

6. How to configure logging into database in the config file

This document describes how to set additional logging into a database/schema by modifying the configuration file.

It is possible to insert the logs into an UDT in the given database or into a manually created table in a separate database.

6.1. Logging into an UDT
6.1.1. Create UDT

First create the user defined table in SAP Business One.

In this example we added a PMX_LOG user table.

Then add the following fields to the user table:

field name field type field structure length
Date Date/Time Date -
Thread Alphanumeric Text -
Level Alphanumeric Regular 50
Logger Alphanumeric Text -
Message Alphanumeric Text -
Exception Alphanumeric Text -
DomainName Alphanumeric Regular 50
UserName Alphanumeric Regular 50
SessionName Alphanumeric Regular 50
6.1.2. Modify config file
6.1.2.1. Trigger Ado Net Appender

In order to trigger the Ado Net Appender, add the following to the root tag:

<appender-ref ref="AdoNetAppender" />

If there is no logging level defined in the root tag, then the logging level is the minimum logging level set for the AdoNetAppender.

If there is a logging level defined in the root tag, then that logging level is used regardless of the minimum logging level set for the AdoNetAppender.

6.1.2.2. Edit appender tag

Then insert the following before the <root> tag:

MSSQL

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
	<filter type="log4net.Filter.LevelRangeFilter">
		<levelMin value="DEBUG" />
		<levelMax value="FATAL" />
	</filter>
	<bufferSize value="100" />
	<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
	<connectionString value="data source=server;initial catalog=database;integrated security=false; persist security info=True;User ID=user;Password=password" />
	<commandText value="NSERT INTO &quot;@PMX_LOG&quot; (&quot;Code&quot;,&quot;Name&quot;,&quot;U_Date&quot;,&quot;U_Thread&quot;,&quot;U_Level&quot;,&quot;U_Logger&quot;,&quot;U_Message&quot;,&quot;U_Exception&quot;,&quot;U_DomainName&quot;,&quot;U_UserName&quot;,&quot;U_SessionName&quot;) SELECT  NEWID(), NEWID(), @log_date, @thread, @log_level, @logger, @message, @exception,@DomainName,@UserName,@SessionName" />
	<parameter>
		<parameterName value="@log_date" />
		<dbType value="DateTime" />
		<layout type="log4net.Layout.RawTimeStampLayout" />
	</parameter>
	<parameter>
		<parameterName value="@thread" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%thread" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@log_level" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@logger" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%logger" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@message" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%message" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@exception" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.ExceptionLayout" />
	</parameter>
	<parameter>
		<parameterName value="@DomainName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERDOMAIN}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@UserName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERNAME}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@SessionName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${SESSIONNAME}" />
		</layout>
	</parameter>
</appender>

HANA

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="100" />
<connectionType value="System.Data.Odbc.OdbcConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Driver=driver;SERVERNODE=server address:port number;CURRENTSCHEMA=schema;UID=user;PWD=password;" />
<commandText value="INSERT INTO &quot;@PMX_LOG&quot; SELECT SYSUUID, SYSUUID, ?, ?, ?, ?, ?, ?, ?, ?, ? FROM DUMMY" />
	<parameter>
		<parameterName value="@log_date" />
		<dbType value="DateTime" />
		<layout type="log4net.Layout.RawTimeStampLayout" />
	</parameter>
	<parameter>
		<parameterName value="@thread" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%thread" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@log_level" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@logger" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%logger" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@message" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%message" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@exception" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.ExceptionLayout" />
	</parameter>
	<parameter>
		<parameterName value="@DomainName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERDOMAIN}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@UserName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERNAME}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@SessionName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${SESSIONNAME}" />
		</layout>
	</parameter>
</appender>
6.1.2.3. Adjust the log4net connection string

Adjust the dummy connection string in the log4net part to point to your database/schema.

SQL

<connectionString value="data source=server;initial catalog=database;integrated security=false; persist security info=True;User ID=user;Password=password" /> 

The DATA SOURCE is the server name.
The INITIAL CATALOG is the database where the logging table has been created.
The USER ID is the database user and the PASSWORD is the password of the user.

HANA

<connectionString value="Driver=driver;SERVERNODE=server address:port number;CURRENTSCHEMA=schema;UID=user;PWD=password;" /> 

The DRIVER is {HDBODBC32} on 32 bit environments and {HDBODBC} on 64 bit environments.
The SERVERNODE is the server address and the port number, for example 10.45.74.42:30015.
The CURRENTSCHEMA is the schema where the logging table has been created.
The UID is the database user ID and the PWD is the password of the user.

6.2. Logging into a separate database
6.2.1. Create the log table

First create a new database/schema for the log table. Then run the following query on the database/schema:

MSSQL

CREATE TABLE [dbo].[PMX_log] (
[Id] [int] IDENTITY (1, 1) NOT NULL,
[Date] [datetime] NOT NULL,
[Thread] [varchar] (4000) NOT NULL,
[Level] [varchar] (50) NOT NULL,
[Logger] [varchar] (4000) NOT NULL,
[Message] [varchar] (64000) NOT NULL,
[Exception] [varchar] (64000) NULL,
[DomainName] [varchar] (50) NULL,
[UserName] [varchar] (50) NULL,
[SessionName] [varchar] (50) NULL)

Where the PMX_log is the name of the table where the log entries will be inserted.

HANA

CREATE TABLE "schema"."PMX_log " (
    "Date" datetime NOT NULL,
    "Thread" varchar (4000) NOT NULL,
    "Level" varchar (50) NOT NULL,
    "Logger" varchar (4000) NOT NULL,
    "Message" varchar (64000) NOT NULL,
    "Exception" varchar (64000) NULL,
    "DomainName" varchar (50) NULL,
    "UserName" varchar (50) NULL,
    "SessionName" varchar (50) NULL
)

Where the schema is the new schema and the PMX_log is the name of the table where the log entries will be inserted.

6.2.2. Modify config file
6.2.2.1. Edit appender tag

Insert the following before the <root> tag:

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
	<filter type="log4net.Filter.LevelRangeFilter">
		<levelMin value="DEBUG" />
		<levelMax value="FATAL" />
	</filter>
	<bufferSize value="100" />
	<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
	<connectionString value="data source=server;initial catalog=extra_database;integrated security=false; persist security info=True;User ID=user;Password=password" />
	<commandText value="INSERT INTO &quot;PMX_Log&quot; (&quot;Date&quot;,&quot;Thread&quot;,&quot;Level&quot;,&quot;Logger&quot;,&quot;Message&quot;,&quot;Exception&quot;,&quot;DomainName&quot;,&quot;UserName&quot;,&quot;SessionName&quot;) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception,@DomainName,@UserName,@SessionName)" />
	<parameter>
		<parameterName value="@log_date" />
		<dbType value="DateTime" />
		<layout type="log4net.Layout.RawTimeStampLayout" />
	</parameter>
	<parameter>
		<parameterName value="@thread" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%thread" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@log_level" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@logger" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%logger" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@message" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%message" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@exception" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.ExceptionLayout" />
	</parameter>
	<parameter>
		<parameterName value="@DomainName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERDOMAIN}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@UserName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERNAME}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@SessionName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${SESSIONNAME}" />
		</layout>
	</parameter>
</appender>

HANA

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="100" />
<connectionType value="System.Data.Odbc.OdbcConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Driver=driver;SERVERNODE=server address:port number;CURRENTSCHEMA=extra_schema;UID=user;PWD=password;" />
<commandText value="INSERT INTO &quot;PMX_Log&quot;  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" />
	<parameter>
		<parameterName value="@log_date" />
		<dbType value="DateTime" />
		<layout type="log4net.Layout.RawTimeStampLayout" />
	</parameter>
	<parameter>
		<parameterName value="@thread" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%thread" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@log_level" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@logger" />
		<dbType value="String" />
		<size value="4000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%logger" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@message" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%message" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@exception" />
		<dbType value="String" />
		<size value="64000" />
		<layout type="log4net.Layout.ExceptionLayout" />
	</parameter>
	<parameter>
		<parameterName value="@DomainName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERDOMAIN}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@UserName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${USERNAME}" />
		</layout>
	</parameter>
	<parameter>
		<parameterName value="@SessionName" />
		<dbType value="String" />
		<size value="50" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="${SESSIONNAME}" />
		</layout>
	</parameter>
</appender>
6.2.2.2. Trigger Ado Net Appender

Please see: 10.6.1.2.1. Trigger Ado Net Appender

6.2.2.3. Adjust the log4net connection string

Adjust the dummy connection string in the log4net part to point to the extra database/schema where the created log table is located.

SQL

 <connectionString value="data source=server;initial catalog=extra_database;integrated security=false; persist security info=True;User ID=user;Password=password" />

The DATA SOURCE is the server name.
The INITIAL CATALOG is the new database where the log table is located.
The USER ID is the database user and the PASSWORD is the password of the user.

HANA

 <connectionString value="Driver=driver;SERVERNODE=server address:port number;CURRENTSCHEMA=extra_schema;UID=user;PWD=password;" /> 

The DRIVER is {HDBODBC32} on 32 bit environments and {HDBODBC} on 64 bit environments.
The SERVERNODE is the server address and the port number, for example 10.45.74.42:30015.
The CURRENTSCHEMA is the new schema where the log table is located.
The UID is the databse user ID and the PWD is the password of the user.

All the log files to all of the components of WMS are saved into one common directory from version 2023.06.00 (users are notified at update)

The new location to the log files is:

%ProgramData%\Boyum IT\WMS

2023/10/09 10:03

With the catch weight function, it is possible to keep track of the stock in two UoM’s. The catch weight settings of an item can be set on the Produmex Catch Weight tab of the Item Master Data.

The following setup is needed for catch weight items:

  • Set the inventory UoM to the lowest sellable unit, eg. pieces, cases in order to avoid rounding issues.
  • Set the number of decimals of the inventory UoM to zero.
  • Set the weight as the second UoM.

Example: The stock is stored in a case that contains six pieces. If the company only sells cases, the inventory UoM can be ‘piece’ or ‘case’ for this item. But if the company sells pieces as well, the inventory UoM should be pieces. When the UoM would be case, it means that one piece would be 0,16666 cases. This would cause rounding issues during picking/delivering etc.

Please note: Serial managed catch weight items are not supported.

Supported functionality:

  • Purchase Receipt
  • Purchase Return
  • Ad hoc moves
  • Picking
  • Multi picking
  • Ad hoc picking customer collect
  • Packing
  • Shipping
  • Cycle count
  • Production flow
  • Production receipt flow
  • Cross docking
  • Put away
  • Sales return
  • Quality status changes
  • Zone picking
  • Ad hoc picking
  • Mobile packing
  • Consolidated packing
  • Easy Stock selector
  • Direct cycle count
  • Picking for production
  • Production manager
  • Replenishment
2017/06/12 11:16 · csuhaa

Produmex offers the functionality of measuring the quality of the goods during the following processes:

  • Reception
    • Document type = 20
  • Bulk reception
    • Document type = 20
  • Production
    • Document type = 202
  • Production receipt
    • Document type = 202
  • Disassembly
    • Document type = 202

Define quality types and valid values

First define the quality types on the Produmex Quality Types UDF. Open the table via: Tool > Default Forms > PMX_QUTY Produmex quality types. For more information see: 3.2.3.33. Quality types

Set the valid values for quality types with the convertor type „List” on the Produmex quality valid values UDF. Open the table via: Tool > Default Forms > PMX_QUVV Produmex quality valid values. For more information see: 3.2.3.34. Quality type valid values

Perform the reception

Perform the reception on your terminal. Based on the value set as ‘Moment of capture’ on the Produmex quality types UDF, the system will ask the quality type in the beginning or in the end of the reception.
The input screen type will vary based on the convertor type.

Int. and Double List
“Int. and Double” “List”
String Date
“String"“Date”

Access the data

The data can be accessed by using the following query:

SELECT OPDN."Docnum", OPDN."CardCode", OPDN."CardName", "@PMX_QUTY"."Name", "PMX_QUVA"."QualityValue"
FROM OPDN
LEFT OUTER JOIN PMX_QUVA ON OPDN."DocEntry" = PMX_QUVA."BaseEntry" AND OPDN."ObjType" = PMX_QUVA."BaseType"
INNER JOIN "@PMX_QUTY" ON PMX_QUVA."QualityTypeCode" = "@PMX_QUTY"."Code"
2017/06/12 12:21 · csuhaa

When adding a Sales Order document, the system calculates the freight charges if the shipping type of the Sales Order matches the freight definition.

1. Set the shipping type on the Shipping Types - Setup form.

2. Set the Shipping Type on the Logistics tab of the Sales Order window.

3. Set the freight on the Freight - Setup form.

4. Open the Freight charges definitions UDT and configure the freight charges that needs to be added to the sales document.

Freight charges definitions UDT

When you fill in the Sales Order document and click Add, the system opens the Freight Charges form and displays the data that is based on the view defined in the Freight Charges Controller filtered by Card Code, Shipping Type, Country Code and Document Price.

The default view is PMX_FREIGHT_CHARGES.

Freight Charges Controller

2021/01/04 15:25 · vise

With Produmex WMS it is possible to reserve a minimum stock quantity of an item. The functionality is available via Item Master Data > Produmex tab > Sales tab.

For information on configuration see Item Master Data / Sales tab.

Reserving Minimum Stock for Customers

1. Prerequisite

Set the Minimum Customer Stock Levels Controller on the Extension Parameters tab of the Organization Structure by selecting the default extension.

Minimum Customer Stock Levels Controller

2. Reserve minimum stock levels for customers

1. Add the card code of the customer to the first field of the Card code column.

You can enter the data manually or click on the grey circle which displays the list of your business partners. After selecting the customer, click Choose. The code of the customer is added and the name of the customer is automatically displayed in the Card name column.

2. Add the warehouse to the Whs column.

You can enter the data manually or click on the grey circle which displays the list of your warehouses. Select the one where the item is located and click Choose.

3. Add the minimum stock quantity to be reserved for the customer.

Click in the first field of the Minimum stock level column and add the quantity manually or click on the on-screen keyboard and provide the quantity.

4. After providing all the necessary information, click Update or press Enter and then click OK.

To delete the row click on the number of the row and click Delete row.

It is possible to specify minimum stock quantity of the very same item for more than one customer as well by filling in the fields of the next rows in the grid.

5. Execute the reservation with the Robot Tool and call the Minimum Stock Level tool with parameter /t:customerminimumstock.

Executing the reservation

3. Examples for reserved stocks and picklist proposals

Example 1
If you reserve stock of an item for more than one customers, Produmex WMS starts to reserve the pieces of the item by following the order in the grid.

In the 1. row of the grid: you reserve 5 from the item for Customer A.
In the 2. row of the grid: you reserve 3 from the item for Customer B.
Inventory: 3

First Produmex WMS reserves 3 pieces for Customer A, then it will wait till you receive further purchase orders when it can keep on reserving the remaining 2 pieces for Customer A. It will start to reserve pieces for Customer B only if 5 pieces have already been reserved for Customer A.

Example 2
If you have reserved stocks for an item and you have a sales order for the item by a customer for whom no stock is reserved (Customer C), Produmex WMS allows for allocating items to a picklist proposal for the customer only if you have free stock.

In the 1. row of the grid: you reserve 5 from the item for Customer A.
In the 2. row of the grid: you reserve 3 from the item for Customer B.
Inventory: 3
Sales order 1 by Customer C: 4 pieces

You can create a picklist proposal for customer C only if you have more than 8 items in your inventory (5 reserved for Customer A + 3 reserved for Customer B). If you have fewer items than 8, the picklist proposal do not find any stock to allocate for Customer C.

Example 3
If there is free stock, any picklist proposal that is being generated can use this stock.

In the 1. row of the grid: you reserve 5 from the item for Customer A.
In the 2. row of the grid: you reserve 3 from the item for Customer B.
Inventory: 11 Sales order 1 by Customer A: 6
Sales order 2 by Customer C (has no reserved stock): 3

5 pieces are reserved for Customer A and additional 3 pieces are reserved for Customer B. In the inventory there are 3 extra pieces which can be allocated (5+3=8 reserved, 11-8=3 extra).

Scenario 1: you prioritize Sales order 1

You create a picklist proposal for Sales order 1 by allocating the 5 reserved items and allocating one extra piece. You can also create a picklist proposal for Sales order 2, that is, the remaining extra 2 items can be allocated, but you need to wait for a purchase order to receive 1 more piece.

Scenario 2: you prioritize Sales order 2

You create a picklist proposal for Sales order 2 by allocating the 3 extra pieces. For sales order 1 you can allocate the 5 reserved pieces and need to receive a purchase order to allocate one more.

2018/12/06 10:04 · vise

The Sales Delivery Tool creates SBO Sales Deliveries from PMX Sales Shipping documents. When the tool is started, it processes all deliveries that need to be processed when it was started, then exits. The Sales delivery tool only runs once.
Please note: The SBO Sales Delivery is only created if the items on the PMX Sales Shipping document can be shipped.

It is recommended to run the tool as a scheduled task.

The tool is located in the Produmex Tools folder. Before running the tool, make sure that an extension is set for Create SAP delivery from PMX delivery controller.

With default settings, the tool only processes PMX Sales Shipping documents that were created within 7 days from the company that has the „SboConnectionString” connection string in the app config file of the sales delivery tool.

The name of the config file is Produmex.Sbo.Logex.Tools.SalesDeliveryTool.exe.config.

In order to run the sales delivery tool with different conditions, run it from a batch file. The following parameters are supported:

  • /NumberOfDays: or /d: A number of days to go back in time to get possible items to deliver.
  • /ConnectionStringName: or /cs: A string that identifies the name of the connecting string in app.config file to use.

Example batch file
In order to process the PMX Sales Shipping documents from the last two weeks, run the Sales delivery tool with the following parameters:

Produmex.Sbo.Logex.Tools.SalesDeliveryTool.exe /d:14 /cs:SboConnectionString
2018/06/05 09:10 · csuhaa

This section describes different material configurations and related possibilities when using the Production Manager, the Receipt from Production Flow or the Production Flow.

Material configuration

Material configuration 1

  • Input Bin location: Can Be Lined UP FALSE
  • Input Bin location: Direct Consumption of Goods FALSE
  • Production Line: Production Manager Type NONE
  • Production Order: ItemLine: Has to be Lined Up FALSE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order Y - N - Y -
Produce N - Y Material locked on production line, Receipt from Production document generated Y Material locked on production line, Receipt from Production document generated
Enter quantity to consume N - N - Y Used, rest, waste quantities can be set
Stop production N Error - missing configuration Production Manager Type Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated Y No locking, stock consumed from production line, stock not used for production is put away to rest location, Issue for Production document generated

Material configuration 2

  • Input Bin location: Can Be Lined UP FALSE
  • Input Bin location: Direct Consumption of Goods FALSE
  • Production Line: Production Manager Type SPL_CONS_LOCK
  • Production Order: ItemLine: Has to be Lined Up FALSE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order Y - N - Y -
Produce N - Y Material locked on production line, Receipt from Production document generated Y Material locked on production line, Receipt from Production document generated
Enter quantity to consume N - Y - Y Used, rest, waste quantities can be set
Stop production Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated

Material configuration 3

  • Input Bin location: Can Be Lined UP FALSE
  • Input Bin location: Direct Consumption of Goods FALSE
  • Production Line: Production Manager Type MPL_CONS_INPUT
  • Production Order: ItemLine: Has to be Lined Up FALSE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order Y - N - Y -
Produce N - Y Material locked on production line, Receipt from Production document generated Y Material locked on production line, Receipt from Production document generated
Enter quantity to consume N - Y - Y Used, rest, waste quantities can be set
Stop production Y No locking, stock consuming from input location, Issue for Production document generated Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated Y No locking, stock consuming from production line, stock not used for production is put away to rest location, Issue for Production document generated

Material configuration 4

  • Input Bin location: Can Be Lined UP TRUE
  • Input Bin location: Direct Consumption of Goods FALSE
  • Production Line: Production Manager Type NOT NEEDED
  • Production Order: ItemLine: Has to be Lined Up TRUE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order Y Assign tank N - Y -
Produce N - Y Material locked on lined-up location, Receipt from Production document generated Y Material locked on lined-up location, Receipt from Production document generated
Enter quantity to consume N - N Not needed Y -
Stop production N No locking, stock consuming from lined-up location N - Y No locking, stock won't be consume from lined-up location

Material configuration 5

  • Input Bin location: Can Be Lined UP TRUE
  • Input Bin location: Direct Consumption of Goods TRUE
  • Production Line: Production Manager Type NOT NEEDED
  • Production Order: ItemLine: Has to be Lined Up TRUE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order Y Assign tank N - Y -
Produce N - Y No material locking, Receipt from Production document generated, Issue for Production document generated Y No material locking, Receipt from Production document generated, Issue for Production document generated from lined-up location
Enter quantity to consume N - N Not needed N Not needed
Stop production N Production order closed N - Y Production order closed

Material configuration 6

  • Input Bin location: Can Be Lined UP FALSE
  • Input Bin location: Direct Consumption of Goods FALSE
  • Production Line: Production Manager Type NOT NEEDED
  • Production Order: ItemLine: Has to be Lined Up TRUE
Production step
possible (Y)
not possible (N)
Production Manager Receipt from Production Flow Production Flow
Y/N Comment Y/N Comment Y/N Comment
Start Production Order N Production order cannot be started, it needs a location that can be lined up N - N No possible location to be lined up for the item
Produce N - Y - N -
Enter quantity to consume N - N - N -
Stop production N - N - N -

Workflows

Working with Production Flow

Working with Production Flow

Working with Production Manager and Receipt from Production Flow

Working with Production Manager and Receipt from Production Flow

2021/05/31 09:46 · vise

On MSSQL, the connection data is replaced dynamically when printing and there is no need to save the report with the actual connection data.

On SAP HANA, the connection data is not replaced dynamically and it is necessary to save the selected reports with the actual connection to the right database and schema. With the HANA Report Setting Tool it is possible to modify the connection data for multiple reports.

1. Configuration

1.1. Run the Produmex.Sbo.Logex.Tools.HanaReportSettingTool.exe.

The file can be found in the Produmex Tools folder, for example: C:\Program Files\Produmex\Produmex Tools.

Note: The file is only installed during a HANA installation.

When the tool opens, the fields of the Database section are prefilled based on the configuration file of the tool (Produmex.Sbo.Logex.Tools.HanaReportSettingTool.exe.config).

Possible values in the DB Server field:

  • Single-Database: hostname:portnumber
  • Multi-Database: tdn@hostname:portnumber where tdn = Tenant Database Name
    • If the system does not accept the provided values, pls proceed as in case of a single-database: hostname:portnumber

HANA Report Setting Tool

1.2. Configure the 32-bit section

32-bit OBCD Driver: On the 32-bit Section tab the default 32-bit OBCD Driver is automatically set.

Folder of 32-bit RPT files: This is the source folder of the reports that you want to modify and this is where the modified reports are saved.

  • The default setting for the source folder is C:\Produmex or C:\Produmex\Reports. If the default folder contains RPT files, they are displayed in the Report Files grid.
  • If the source folder does not contain any RPT file, the grid is empty.
  • If you want to change the setting, browse another folder.

32-bit section

1.3. Configure the 64-bit section

64-bit OBCD Driver: On the 64-bit Section tab the default 64-bit OBCD Driver is automatically set.

Folder of 64-bit RPT files: This is the folder where the generated 64-bit reports are saved.

  • By default, no folder is set. Create your new folder for the 64-bit reports and browse it for the Folder of 64-bit RPT files field.
  • Make sure that you have two different folders for the 32-bit and for the 64-bit RPT files.

Configuration 64 bit

2. Saving reports

2.1. Save reports with 32-bit

1. Copy the necessary reports from your installation folder (for example: C:\Install\Produmex_WMS_19_1.x64\Reports\HANA) into your 32-bit RPT file source folder. All the reports from your source folder are listed in the grid.

2. Select the necessary report files in the grid. Click Select All to select all of the reports in the grid or select the necessary ones one by one.

3. Click Update selected reports to the new connection settings.

4. The tool starts converting the reports into 32-bit versions. In the log window the process is displayed step by step.

The tool creates a new folder named OLD within your 32-bit RPT file source folder and saves a copy of the selected report files into the OLD folder.
It overwrites the report files by converting them into 32-bit versions. When the process is finished, you can find the 32-bit version files in your source folder.

Saving Reports with 32-bit

2.2. Save reports with 64-bit

With this function the tool generates 64-bit RPT files from 32-bit RPT files.

Click Copy and update all reports to 64-bit folder.

The tool starts to generate 64-bit RPT files from all the 32-bit RPT files and saves them to your 64-bit RPT files folder.

Saving Reports with 64-bit

3. Defining the report path

Set the appropriate report path in SAP Business One so that the system knows where to find the reports whenever you want to generate a new report in SAP Business One.

1. Open your organization structure and select the Reports tab.

2. Provide the path of your 32-bit RPT files folder or your 64-bit RPT files folder in the Report Path field.

3. Click OK.

Reports tab

2021/11/26 15:13

This topic does not exist yet

You've followed a link to a topic that doesn't exist yet. If permissions allow, you may create it by clicking on Create this page.