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:
Element | Description |
---|---|
Company | A company can be created only once per company database |
Warehouse | The 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. |
Zone | The zone is a specific area in the warehouse where certain functions are grouped (e.g. goods receipt, shipping, packaging, etc.) |
Production Line | The production line is a line where goods are produced and packaged (as a part of a warehouse). |
Packing Line | The 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. |
Dock | The doc is a location where goods are received and/or shipped (as a part of a warehouse). |
Warehouse Automation Location | The 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. |
Bin | The bin is an individual storage location managed by Produmex. |
Silo Tank | The silo tank is a fixed bulk storage location. |
Movable Location | The 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 Client | The 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. |
Printer | It marks a printer at a specific location or connected to a specific thin client. |
Scale | One scale can only belong to a single weighing room / dock / packing station. |
Weighing room |
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
.
Define your SAP warehouse settings. Produmex WMS adds the following user defined fields (UDFs) to the SAP warehouse settings:
There are three possible combinations of the UDFs:
Managed by PMX | Transit WHS | WMS Terminology | Setup needed in the Organizational Structure | Example | Can be used on scanner |
---|---|---|---|---|---|
TRUE | FALSE | WMS warehouse | YES - full setup | Main stock warehouse | YES - full usage |
FALSE | TRUE | Transit warehouse | YES - only warehouse & dock required | truck, sales employee stock, etc. | YES - Ad-hoc moves, Receive from warehouse, Picking for Transfer Requests |
FALSE | FALSE | Standard SAP warehouse | NO | Standard SAP Production warehouse, other SAP warehouse | NO |
TRUE | TRUE | N/A | /N/A | Not possible | N/A |
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
.
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
1. Go to Produmex menu > Organizational Structure.
2. Right-click on your company, select New OSE and select the necessary Organizational Structure Element.
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.
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:
The following elements can be imported with an XML file:
Additional information:
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.
Template: ImportBoxTypeforWAS
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
Template:ImportBoxForWAS
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
Template: ImportItemAllergens
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
Template: ImportItemBatchAttributes
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
Template: ImportItemCustomerShelfLife
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
Template: ImportSupplierQualityStatus
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
Template: ImportItemPackagingTypes
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
Template: ImportItemZoneTypes
Fill in the worksheet and save the worksheet as a CSV file. The CSV file should look like this:
ItemCode;ZoneTypeCode A006;C
Template: ImportItemWarehouseLocationOrZone
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
Template: ImportBin
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.
Template: ImportBinItem
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
Template: ImportBinItem
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
Template: ImportLocationPutAwayZones
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
Template: ImportLocationAttributes
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
Template: ImportMoveableLocation
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
Template: ImportZones
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
Template: ImportRouteHeader
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
Template: ImportRouteLine
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
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:
With this function the following configurations are exported:
1. Go to the General tab of the Organizational Structure.
2. Click Export
. The configurations are exported to an XML file.
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.
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).
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:
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:
4. Restart the add-on.
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.
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.
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.
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.
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.
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:
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.
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. |
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:
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’
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.
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.
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.
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:
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:
Note: In order to see the changes the user needs to restart the Mobile Client with disabled/switched off customization mode.
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.
Visible: By default, the visible option is enabled.
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.
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.
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.
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:
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:
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:
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:
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.
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.
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.
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.
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]'
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
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.
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.
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.
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 | |
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. |
Scan a barcode on a product |
Scan a location |
Scan a master SSCC Note: The screen is displayed if the Consolidate items to pick? setting is enabled on the picklist controller. |
Add (define) quantity by scanning the serial numbers | |
Serial numbers | |
Serial numbers - Range | |
Serial numbers - Bulk
|
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
Make sure the scale is connected and visible in the device manager. Only continue if the scale is visible.
The configuration steps might differ based on the used device. In this documentation we describe the configuration steps of a Mettler Toledo PS60 scale.
Check the following setup parameters of the scale:
Mettler Toledo PS60 example
In order to check the scale settings, follow these steps:
Parameter | Scale display | Example Value |
---|---|---|
Baudrate | BAud | 9600 |
Number of Databits per ASCII Characters | ASCii | 7 |
Parity Bit | PAr | Even |
Number of Stopbits | StoP | 1 |
Protocol | Proto | toLEdo |
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/
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:
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
Set up the scale on the Scale definition user table:
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.
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:
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.:
The configuration files are XML text files, they can be edited with a text editor (Notepad).
Examples:
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\
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
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.
Default value: 10
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:
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
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
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.
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 |
Download an example for the fat client config file from here:
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.
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 "@PMX_LOG" ("Code","Name","U_Date","U_Thread","U_Level","U_Logger","U_Message","U_Exception","U_DomainName","U_UserName","U_SessionName") 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 "@PMX_LOG" 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>
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.
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.
Download an example for the fat client config file from here:
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 "PMX_Log" ("Date","Thread","Level","Logger","Message","Exception","DomainName","UserName","SessionName") 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 "PMX_Log" 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>
Please see: 10.6.1.2.1. Trigger Ado Net Appender
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
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:
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:
Produmex offers the functionality of measuring the quality of the goods during the following processes:
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 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.
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"
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.
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.
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.
Set the Minimum Customer Stock Levels Controller on the Extension Parameters tab of the Organization Structure by selecting the default extension.
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.
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.
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:
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
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 1
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
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
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
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
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
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 | - |
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.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:
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.
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.
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.
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.
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
.