User Tools

Site Tools


implementation:wms:confguide_complete

Configuration Guide

1. Introduction

Produmex WMS for SAP Business One extends the standard functionality of SAP Business One with functions supporting shopfloor operations in the area of production, packaging, inventory management and logistics (inbound, picking, shipping). Produmex WMS consists of three parts:

1. Extensions of existing SAP Business One functions (e.g. articles, users, etc.)

2. An administrative Produmex module offering new office functions for defining the organizational structure of a company and streamlining the operational processes of goods receipt, put away, production, packaging, picking, shipping, etc.

Sales Flow

These functions are grouped under the Produmex tab in the main menu of SAP Business One and they are also available via Module > Produmex.

Office Module

3. Produmex WMS offers functions supporting the shopfloor operations. These functions are made available on the shopfloor with the Produmex Fat Client (scanner and touchscreen). With the help of the application operators can execute the production, packaging and logistics operations and transfer the required information transparently to SAP Business One. Produmex WMS also provides connections to data capture (barcode) and print devices (label and document printers).

Device Chain

2. Glossary

Without definition

AI GS1 Application Identifier
ATP Available to Promise
BBD Best Before Date
BoM Bill of Material
DB Database
FEFO First Expired, First Out
FIFO First-In, First-Out
PRD Production
SLD System Landscape Directory
UDF User Defined Field
UDO User Defined Object
UDT User Defined Table
UoM Unit of Measure
WA Warehouse Automation
WAS Warehouse Automation System

With definition

ITRIItem Transactional Information Key
A key used to identify a batch, batch number 2, BBD, etc.
LUIDLogistic Unit ID
An internal identifier used by Produmex WMS. Each time a logistic unit is received into a warehouse managed by Produmex, the system assigns a new LUID to it.
OSEOrganizational Structure Element
An element defining the structure of the company, for example: warehouse, printer, scanner, bin location, etc.
Produmex
Fat Client
A scanner application or a touchscreen
Additional terms used in this context:
Pocket Size: The small screen layout used on scanners
Touchscreen: The large screen layout used on touchscreens
RouteA group of pick lists that are shipped together (for example, they are loaded to the same truck), but are not necessarily picked together.
SSCCSerial Shipping Container Code
In contrast with LUID, this is an 18-digit-number displayed on labels and used externally to identify logistic units.
WaveA group of pick lists that are picked together. Each pick list is in a wave and a wave can contain one or more pick lists.

3. Extensions of SAP Business One

Produmex WMS extends SAP Business One’s standard functions with a number of concepts that are important for the operational management of items, including Best Before Date, location code, etc.
Besides, Produmex WMS also adds a number of specific parameters to standard SAP Business One functions, which have to be set to ensure the proper functioning of Produmex WMS.

It is recommended to avoid the asterisk (*), pipe (|) and apostrophe (’) characters in Produmex or SBO master data because these characters have a special role in Produmex products.

3.1. Item Master Data

3.1.1. Item Master Data - Main Screen

Item Master Data - Main Screen

Bar Code
Bar Code is an existing field in SAP Business One. Produmex offers users the possibility to choose the type of barcode:

  • GTIN-14 (GS1 Global Trade Item number)
    • The system verifies whether this is a correct bar code (according to the GS1 rules).
  • GTIN-Variable
    • This is also a GTIN-14 barcode, but with a part of the barcode that holds information about a certain value (weight, price, etc.).
    • This kind of barcode is used nationally and not internationally. This means some additional configuration needs to be added so it is possible to know what part of the barcode is variable, and what that values represent. This configuration is done in the Produmex Variable GTIN Configuration (PMX_VGTC) UDT.
    • The barcode that needs to be stored should only be the fixed part of the variable barcode, without the check digit.
  • Free barcode.
    • No restrictions on format.

On the scanner it will be possible to scan an EAN 13. The system will convert it to a GTIN, and check that GTIN against the barcode on the Item Master Data. Consequently, if you have valid EAN 13 barcodes, they should be stored in the system as a GTIN, with a leading 0 in front of the EAN 13.

Has PMX Serial Number
In SAP Business One an item can be managed by batches OR serial numbers. Produmex also allows to manage an item both by batches AND serial numbers.

Track Location of Serial Numbers
If this is checked, Produmex will keep track of the location of items with serial numbers (both SAP serial numbers and Produmex serial numbers) by forcing the stock to be on an SSCC. The serial number is linked to that SSCC.

Serial Number Format
Specifies the serial number format as a regular expression. The available formats have to be specified in the Produmex Item Serial Number Format (PMX_ISFT) UDT.

3.1.2 Item Master Data – Inventory Data Tab

Inventory Grid

The following columns are added to the inventory grid:

PMX Free Stock
This is the free stock that is available for Produmex. This is the sum of the quantity in inventory minus the sum of the quantity that is locked.
(SUM(PMX_INVT.Quantity) – SUM(PMX_INLD.Quantity))

The UOM2 columns will only be filled in when there is a UOM2 defined.

Uom2 Qty Warehouse
This is the quantity for the second UOM that is in stock. In case it is a catch weight item, this will be the actual weight. If it is an item with a UOM2, but no catch weight, this will be the calculation of UOM2 based on the default ratio between both UOM.

Uom2 Qty Confirmed
This is the quantity for the second UOM that is committed. The calculation of UOM2 based on the default ratio between both UOM.

Uom2 Qty Ordered
This is the quantity for the second UOM that is ordered. The calculation of UOM2 based on the default ratio between both UOM.

Uom2 Qty Available
This is the quantity for the second UOM that is available. The calculation is: (In stock + Ordered) - Confirmed

3.1.3. Produmex Item Master Data Tabs

Under the Inventory function → Item Master Data, a special Produmex tab has been added which contains a number of fields that are not available in standard SAP Business One.

3.1.3.1. Inventory

Inventory UOM
Inventory UoM is an existing SAP Business One field, with a formatted search on the SAP OUOM table. This table contains all the defined UoM’s.

Number of Decimals for uom1
This field indicates the number of decimals for the first UoM. This is used in flows when entering a quantity.

Uom 2
Uom2 identifies the second UoM for the item.

1 uom 2 =
If a second UoM is defined, the conversion rate between the two UoM’s is entered in this field.

Has best before date
If the item has a best before date, this field has to be ticked.

Has second batch number
Defines whether the item has a second batch number.

Default quantity on logistic unit
Defines whether the item has a default quantity on a logistic unit.
Is used for:

  • Splitting a proposal in full pallets/item picking
  • Cycle count flows: When configured to propose default quantity, this field is used
  • Bulk receiving
  • Bulk shipping
  • Production: Splitting produced quantity
  • Reception: Default quantity when entering quantity
  • Reception: When configured to split quantity into multiple logistic units, this is the quantity of a logistic unit

Item storage location type
Defines the item storage location type.
The list is retrieved from the UDT PMX_ISLT?
This is used in the Location suggestions functionality.

Is logistic carrier
This field has to be ticked if the item in question is a logistic carrier (pallet, europallet, container, …). An item can be a logistic carrier as well as a returnable item, e.g a europallet.

Is logistic unit (GS1)
A logistic unit is an individual unit that has been composed for transport and/or storage and have to be manageable throughout the supply chain. These items are identified by means of the Application Identifier 01 in the GS1 standard.

Has no value
Only applies to logistic carriers. If this is checked, the system will allow to deliver the logistic carrier free of charge to the customer during ad hoc picking – customer collect.

Report label key
The identification of the label that belongs to a specific item.

Report label number of copies
The number of labels that have to be printed for a specific item.

Ask for quantity on item label printing
If checked the system will ask to enter a quantity. This entered quantity is passed to the label. This can be used for instance to put the weight on the label.

Item label printing by packaging type
If checked the system will print item labels based on packaging types. When item labels need to be printed, the user can enter the number of labels by each packaging type + inventory uom. On the Produmex Attributes tab it is possible to set a specific report for each packaging type. Also the number of copies can be set there.
If the global option on Company for automatic printing of item labels during goods receipt is set to true, and the option for printing item labels by packaging type is set to true, the system will print the label for the packaging type linked to the purchase order, of purchase uom in case of receiving without PO.

Seveso class (Hazmat in North America)
Defines the seveso class the item belongs to. Based on the Seveso class, Produmex will check the quantity of the item that can be ordered (maximum inventory). An order for a quantity that will exceed the maximum allowed inventory will show a warning. Receiving the goods will be prevented. Configuration is done in user defined table: PMX_SEVE

Use in WA functionality
Enable this option to use this item for the WA functionality.

Is returnable item
This field is checked if the item in question is a “returnable item” (“empties”).

Non-inventory returnable item code
This field contains the item code of the non-inventory returnable item. This code is used for the delivery and receipt of returnable items (“empties”) and is one-to-one coupled with the inventory item code of the same returnable item. (This is configurable on the organizational structure on the ‘General’ tab of the company)

Force serial numbers during cycle count?
When this option enabled for an item with PMX serial numbers and track location enabled, then serial numbers must be entered during cycle counting operations. Otherwise, it's also possible to just enter the counted quantity.
Note: This option has no effect on SAP serial numbered items.

Zone type code
Apart from indicating a standard location or zone, the user can also specify the zone type code. If such a code is entered, the system verifies upon storing an item whether it can be stored in this zone and prevents the item from being stored in a different zone. This can be used for instance if a product needs to be ‘cooled’. If the product has this zone type, it can only be stored on location within a zone that is also ‘cooled’.

Default location/zone for warehouse
On this grid a default location or zone can be specified for each warehouse for the item. The default location/zone is shown as information on the handheld.

First select the warehouse from the dropdown list on the Pmx warehouse code field. Every warehouse that is managed by Produmex can be selected. Then add the code of the location or the zone on the Default location or zone code field. Only locations or zones that belong to the selected warehouse can be added. To remove a line, select the line and click on the ‘Delete row’ button.

3.1.3.2. Sales

Shelf life delivery
This field specifies the minimum remaining shelf life in days of an item (article) from the moment it is outside the responsibility of the manufacturer/distributor (external shelf life), i.e. the actual period that the product is physically present at the customer and can be sold to the end customer. The external shelf life is defined by the Best Before Date and means that the product will need to stay good at the retailer for at least a specified number of days before the “Best Before Date”. To guarantee that a product can be sold long enough, the retailer usually requires a minimal external shelf life from the manufacturer/distributor of the product.

Pick type
Will define how an item will be handled during pick list generation and picking. The list of item pick types is defined on the User Defined table “PMX_IPIT”. If an item is a of a certain pick type (e.g. ’Handle with care’) and it is indicated on the Produmex Pick List Type (User Defined Table “PMX_PITY”) that a pick list should be split based on the item pick type, this item will not be added to pick list with items of another pick type (e.g. slow mover). In this case two pick lists will be generated. On the UDT “PMX_UIPT” users can be linked to certain item pick types. If such a configuration exists, the system will only allow the user to pick items that he is allowed to pick. This option is used in the ‘Zone picking’ option on the scanner.

Pick type 2
Apart from the primary pick type, an item can also have a second pick type. The list of item pick types is defined on the User Defined table “PMX_IPIT”. If it is indicated on the Produmex Pick List Type (User Defined Table “PMX_PITY”) that a pick list should be split based on item “pick type 2” the system will generate separate pick lists based on this criterion, if applicable in combination with the first pick type. The configuration for linking it to a user is also available for item pick type 2.

Bulk pick quantity
The quantity (lower or equal than a full logistic unit) for which the system will also allow to pick from a bulk location. This is used on stock allocation to a pick list, when it is selected on the scanner. Configuration on the PickListController needs to allow picking from bulk. Example: If bulk quantity = 10 and on the sales order you need 24 items, 20 pieces can be picked from bulk, and 4 from pick location.

Enter reason for sales return
Indicates whether a reason has to be specified when a sold item is returned.

Print label during picking
Set whether item labels need to be printed during picking for this item.

Replenishment: quantity on pick locations
The quantity of that item that should be available on pick locations. Based on the parameters that are set in the “Item-based replenishment generator” the system will check whether there are pick locations with this item where there is a lower quantity than the needed quantity and will replenish these. In the “item-based replenishment generator” it can be specified whether or not the system has to take into account open pick lists, pick lists for a specific due date range, or required quantities for a specific stock coverage period (based on the estimated sales quantity by month)

Estimated sales quantity by month
Estimated sales quantity to be sold by month (1 month = 30 days), to be used for stock coverage calculations. Used by the “Item-based replenishment generator”.

Default quality status for sales return
Indicates the default quality status of a sold item that is returned. The standard possibilities are: blocked, quarantine, released, rejected, returned. This overrides the general definition of the quality status for sales return.

Allow multiple batches on sales doc.
Indicates whether it is allowed on a sales document to have multiple batches of an item in one line (e.g. ordered quantity cannot be fulfilled by a single batch of a product). This is for information only.

Allow stock to be locked in advance
When this option is set to true, this item can be used for locking in advance. This means it will be possible to lock the stock for certain customer(s) at the moment the stock is received. (Purchase/production/inventory receipt, warehouse transfer)

Smallest sellable packaging type
Indicates the smallest packaging type of the item that can be sold. This is for information only.

Default log. car. picking
The default logistic carrier that is used for the product (e.g. a CHEP or a EURO pallet, …) on the picking process. This is for information only.

Scan base component
In case items are shipped in a special container (e.g. a crate), it can be indicated that the base component needs to be scanned, instead of scanning the container with the items (the crate as a whole). So a single item in the crate has to be scanned to make sure that the crate is sent containing the right items.
This is used in the Picking flow on the scanner. It uses a BOM to check the base component.

Packing remarks
Specific remarks for packing the item in question which is shown on the RF terminal or touchscreen when handling the item.

Packing image
Image of the specific packing of the item in question (e.g. picture of the kit). This image is shown during Packing and Consolidated packing flow.

Sales remarks pop-up
If checked, the system will show the sales remarks that are specified for the product when selecting the product on a sales document.

Sales remarks
Specific remarks that are shown in SAP Business One when creating a sales order for this item.

Add non-inventory item to pick list
If some non-inventory items need to be on the pick list, this option can be checked. When creating a pick list/proposal, the system will add this item to the pick list/proposal.
This option can only be set for items that are configured to be non-inventory items.
This item can be picked/packed on the scanner/touchscreen. Only the quantity will be asked as this is a non-inventory item.
When the pick list has 10 pieces to pick, and the user only enters 8, the system will register this 8 pieces, but the 2 additional pieces will automatically be skipped, so they will not be picked.

Grid 1: Shelf life by customer and country
Produmex also offers the possibility to define a shelf life per individual customer and/or countries, apart from the general shelf life. This is then taken into account when picking goods (i.e. some goods may still be picked for certain customers or countries, but not for others).
You can enter a shelf life for either just a customer, or just a country, or a combination of both a customer and a country.

Grid 2: Minimum reserved stock per customer
This function makes it possible to reserve a minimum stock quantity of an item for your customers.

The following pieces of information are mandatory in the grid:

  1. Column Card code: the card code of the customer for whom you wish to reserve a minimum stock quantity; it can be added manually or selected from the list of Business Partners.
  2. Column Card name: the field cannot be edited; it is automatically filled in after providing the card code.
  3. Column Whs: the warehouse where the item is located; it can be added manually or selected from the list of Warehouses.
  4. Column Minimum stock level: the minimum stock quantity of the given item to be reserved for the customer; its value can only be numeric and can be added manually or entered with the on-screen keyboard.
  • If the item is managed in batch, the locking level is in batch.
  • If the item is managed in item, the locking level is ‘item’.

When the necessary data is provided, the stock quantity is reserved for the given customer and from this point pick list proposals cannot be created from the reserved stock for a different customer.

This reservation is based on the item/quality level. This means that this functionality does not block a batch from being used. It is only when a proposal is being created that a batch will be locked.

3.1.3.3. Purchase

Shelf life reception
The minimum number of days a product will have to remain sellable from the moment the system receives the product into inventory (prior to the product’s expiry date).

Enter reason for purchase return
Indicates whether a reason has to be specified when returning a purchased item.

Default quality status for reception
This is the default quality status when receiving the item in question.

Released quality status for reception
The released quality status for reception. This is only used for the ‘Quality status for reception by batch’ controller. When the system receives a quantity of this item of a certain batch, the system will check whether there is already a specific quantity of the same batch available with the “released quality status”. If there is such a quantity available, the system will overrule the default quality status and assign the released quality status to the received item.

Expiry def. for reception
Allows to specify the expiry definition for reception as defined in the User Defined Table “PMX_EXDE” – Expiry Definitions

Purchase barcode type
If the purchase barcode differs from the main barcode, the type of this barcode can be filled in. The possible values are: GTIN-14 (GS1 Global Trade Item Number) or a free code. If the user enters a GTIN-14 code, the system verifies whether this is a correct barcode (according to the GS1 rules).

Purchase barcode
Contains the purchase barcode if it is different from the main barcode.

Create SSCC on reception
If checked the system will automatically generate an SSCC on reception if no SSCC was scanned. If unchecked, no SSCC will be created and stock can be manipulated without reference to the SSCC.
If multiple items are received, and at least one of them requires an SSCC, the system will create one.
If no SSCC is created at reception, no put away order will be generated. Items need to be moved through ad hoc movement.
If the items is configured as a serial number, with track location on, this setting needs to be ticked.

Print label at reception
Set whether item labels need to be printed at reception for this item.

Sample quantity
Defines the quantity (in inventory uom) of the sample that should be sent back for inspection. The sample generator will use this quantity to generate the sample order (Sales order). The generation of the actual sample order is done through the SboNotificationListener.

Weight capture from scale needed
Set whether the item must be weighed during the reception or not.

Purchase remarks pop-up
Is set to true, the text in the purchase remarks is shown as a pop-up when using this item in a purchase document in SAP.

Purchase remarks
The purchase remarks to be shown when selecting the item in a purchase document in SAP.

Grid: Released quality status reception by supplier
Produmex offers the possibility to define a default quality status on reception per supplier. Enter the supplier card code and select the quality status from the dropdown list.

This option is used in the ‘Reception’ and the ‘Receive from WHS’ flows if the QS reception controller on company is set to the ‘Gets the quality status for reception’ extension.

3.1.3.4. Production

Default quality status for production
This is the quality status the stock will get when producing new stock. This overrules the general setting.

Default log. car. Production
This is the default logistic carrier for production. If this is set, the system will automatically use that logistic carrier to put the stock on.

Expiry def for production
Allows to specify the expiry definition for production as defined in the UDT “PMX_EXDE” – Expiry Definitions

Auto line up selection
Does this item need to be automatically lined up? If set to true, the system will automatically line up the location, instead of letting the user select it. This option is used in combination with the production manager.

Lined up locations are sorted by location name.

Additional pick for production (%)
When picking for production without a pick list, the system will propose to pick more than theoretically needed for the production order.

Allowed production deviation (%)
The allowed deviation of the produced quantity. This is used in combination with the setting ‘Confirm produced quantity after production’ on the production controller. It will check if the deviation is allowed, based on the default quantity to produce. If it is not allowed, a warning is shown on the flow.

Default production quantity
This is the default quantity on a produced logistic unit. This setting is used in combination with the ‘Split produced quantity into logistic units of default size’ setting on the ProductionController.

Use for time registration
Indicates if the item is used as a time registration type that can be added to a Bill of Material and a production order. The quantity is in hours.

Production remarks
Here production remarks for the item. This is for information only.

3.1.3.5. Catch weight

Catch weight item?
Indicates if the item is a catch weight item.

GS1 AI for uom
The GS1 application identifier to capture the quantity for pieces. Possible values:

  • 37 (Count)
  • 31 (Net weight Kilo)
  • 32 (Net weight Pound)

GS1 AI for uom2
The GS1 application identifier to capture the quantity for the weight. Possible values:

  • 37 (Count)
  • 31 (Net weight Kilo)
  • 32 (Net weight Pound)

1 uom = xxx uom 2
The weight of 1 piece.

Weight tolerance (%)
The weight tolerance in percentage. Here it can be defined what the allowed tolerance for the weight is. If the tolerance >= 100, no tolerance check will be done. This check will be used for all documents except: goods issue and goods receipts. Calculation:
( Pieces * Default weight of 1 piece ) -
( Pieces * Default weight of 1 piece ) * Weight tolerance/100
< Allowed weight <
( Pieces * Default weight of 1 piece ) +
( Pieces * Default weight of 1 piece ) * Weight tolerance/100

Uom to use for purchase
The uom that should be asked when receiving items.
Possible values:

  • Pieces (UOM1): The weight is calculated based on the weight of 1 piece.
  • Weight (UOM2): The number of pieces are calculated based on the weight of 1 piece.
  • Pieces and weight

Uom to use for inventory
The uom that should be asked when moving items.
Possible values:

  • Pieces (UOM1): The weight is calculated based on the weight of 1 piece.
  • Weight (UOM2): The number of pieces are calculated based on the weight of 1 piece.
  • Pieces and weight

Uom to use for sales The uom that should be asked when delivering items.
Possible values:

  • Pieces (UOM1): The weight is calculated based on the weight of 1 piece.
  • Weight (UOM2): The number of pieces are calculated based on the weight of 1 piece.
  • Pieces and weight

Price calculation for sales
The calculation of the price for creating a sales delivery.
Possible values:

  • Price by piece: This option is the default option. In this case no price calculation is done because the price from SAP is already by piece
  • Price by weight: The calculation of the price is done by weight.

Price by weight
When a sales delivery/reserve invoice is generated, the price will need to be set when:

  • The item is a catch weight item
  • The option for price calculation is set to 'Price by weight'
  • The base document is NOT an invoice
  • Delivery is made through Produmex functionality

The unit price before discount will be adjusted. The default unit price is based on the default weight of a catch weight item. So a recalculation based on the actual delivered weight needs to be done.

The calculation formula is: Unit price before discount = (Unit price before discount sales order / Default weight by piece) * Actual weight) / Quantity

Database columns: DLN1.PriceBefDi = ( RDR1.PriceBefDi / OITM.U_PMX_DQUM) * DLN1.U_PMX_QTY2 ) + DLN1.Quantity

Example:

ItemA
* Inventory uom = Case
* Weight uom = Pounds
* 1 Case = 24 pounds (U_PMX_DQUM = 24)
* Price per case = 48$ (= 2$ / pound)

Sales order
* 20 cases
* Unit price = 48$
* Total price = 960$

When we deliver the 20 cases the actual weight = 500 pound (Nominal weight was 480 pound)
The calculation is as follows:

(Unit price sales order / Default weight by piece) * Actual weight) / Quantity = Unit price

(48$/24 pounds) * 500 pounds) / 20 cases = 50$

Total price of the delivery line will be 1000$
This means if you deliver 500 pounds, this is 2$ by pound.

Scan weight for each case
When this is enabled, when scanning/entering the weight in the device, the system will not automatically calculate the number of pieces that would be associated with the weight, but it will use the # pieces in a case.
So on the first entry of the weight, the user can either enter the total weight for all pieces.
Flow:

  • Check if scanned weight is within tolerance of the # pieces in case
  • Yes: Use the pieces and weight, and ask for next weight
  • No:
    • Check if the scanned weight is within tolerance of the needed number of pieces
    • Yes: Use the needed number of pieces, and total weight
    • No: Error is shown that weight is not within tolerance

# pieces in case
This is used in combination with the setting 'Scan weight for each case'. It stored the number of pieces in a case.

Record weight details during picking
When this is enabled, the entered weight during picking on a device will be stored in a separate table: PMX_WDET.
It stores the pick list doc entry, item and batch details.
This allows to retrieve the detailed weight entry for an item on a pick list.

3.1.3.6. Attributes

Packaging type
Shows the packaging type of the item. If the UoM Group of the item is set to manual, the user can define here a specific packaging type based on the SAP OUOM Table. If the item is linked to a defined UoM Group, the system will apply the packaging type specified therein.

Packaging type code
The packaging type code.

Number of UOM 1
The quantity in the packaging, in inventory uom.

Has variable quantity (Goods entry)?
If the quantity for the packaging type can change on each goods entry, this option can be set to true. If the item is batch controlled, the system will ask during goods entry what the quantity in the current packaging type is. This information will be stored, linked to the batch information.

Hide during entering quantity
When this option is set, that packaging type is not shown to the user when he needs to enter the quantity.

Item label report
The specific report that needs to be printed when the option ‘Item label printing by packaging type’ is set to true. When a report is selected, the number of copies need to be more than 0.

# Copies item label
The number of copies that need to be printed in case of option ‘Item label printing by packaging type’ is set to true. If this is set to 0, no item labels will be printed for that packaging type.

Batch attributes
If an item has a batch, batch2 or BBD, the system can ask for batch attributes during reception and production.
When a new combination of batch, batch2 or BBD is entered, the system will ask for the batch attributes linked to the item.

The data will be stored into the table PMX_ITBA.
There are some predefined batch attribute types. Those batch attributes will be stored also on the table PMX_ITRI.

Batch attribute code
This is a list of batch attribute types defined in the UDT @PMX_BATT

Value entry option at reception
This will set whether he 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.

Is linked to batch?
When this option is set to true, this batch attribute will be linked to the batch number.
This means when a new combination of batch/batch2/BBD is created, and the batch number already exists in the system for this item, the batch attribute is not asked to the user, but the value is copied.

Allergens
This grid stores all the allergens the item can have.

Allergen code
This is a list of allergens defined in the UDT @PMX_ALLE

Can contain allergen?
If this product does not contain the allergen by default, but it is possible that some trace of this allergen could be present, this option can be checked.

3.1.3.7. 3PL

3PL inbound price
Defines the price to invoice 3PL partners for each received unit (in inventory UoM) of that item.

3PL outbound price
Defines the price to invoice 3PL partners for each delivered unit (in inventory UoM) of that item.

3.2. Administration

The Administration module of SAP Business one allows to define important general settings to ensure the proper functioning of the system. Produmex WMS adds specific settings to these in the field of authorizations and users.

3.2.1. Authorizations

General authorizations for Produmex WMS

At the user level it is possible to define the authorizations for the various functions of Produmex WMS.
An authorized user can define the rights of the individual users. In order to do this select Administration → System Initialization → Authorizations → General Authorizations.

An authorized user can then set the user authorization for Produmex WMS as a whole or for the various parts of it. The authorization levels are:

  • Full Authorization
  • Read Authorization
  • No Authorization

The various aspects to which the authorization levels apply are:

  • Organization structure
  • Print reception logistic unit reports
  • Inventory reports selection criteria
  • Inventory report detail
  • Change quality status
  • Route templates
  • Route generation
  • Route detail
  • Picklist proposal generation
  • Generated Picklist proposal detail
  • Picklist proposal detail
  • Picklist detail
  • Open documents
  • Move
  • Production order step list
  • Tracking Tracing Search
  • Route planning customer details
  • Production step list
  • Open Sales Orders
  • Audit trail search
  • Audit trail
  • Interface monitor
  • Production manager
  • Cycle count select location
  • Cycle count processing
  • Adjust packaging quantity
  • Adjust manual locking
  • Move order
  • Manual interfacing
  • Container
  • Advance inventory locking
  • Print SSCC
  • Change BBD on batch
  • Change Batch2 on batch
  • Wave report form
  • Change batch attributes
  • Stock selection
  • Cycle count Pmx serial numbers
  • KPI Report selection criteria
  • 3PL invoicing selection criteria
  • Alternate items selection
  • Select printer form
  • Stock allocation form
  • Picklist proposal manager selection criteria
  • Picklist proposal manager
  • Perform move form
3.2.2. Users

Additional setting for users

  • It is possible to set the language in which the “thin client” application runs for each individual users. To do this select Administration → Setup → General → Users. A user-defined field “Language” has been added there to allow you to set the language code for the user in question. This language is used on the scanner/touchscreen when the user has logged on.
  • It is also possible to assign a user to a PMX User Group. The available authorizations are defined in the UDT “PMX_UAUT(User Authorizations Definitions Table) and can be linked to the PMX User Groups (UDT “PMX_USGR”) through the UDT “PMX_UGAU(Link Usergroup To Authorizations Table).

3.2.3. User defined tables

User defined tables are available via SAP Tools > Default Forms.

3.2.3.1. Shipping Quality Option (PMX_SQOP)
3.2.3.2. Produmex Pick List Types (PMX_PLTY)
3.2.3.3. Produmex Item Pick Types (PMX_IPIT)
3.2.3.4. Produmex user item pick types (PMX_UIPT)
3.2.3.5. Produmex user pick list types (PMX_UPLT)
3.2.3.6. User group for PMX (PMX_USGR)
3.2.3.7. User authorization definition (PMX_UAUT)
3.2.3.8. Link usergroup to authorization(PMX_UGAU)
3.2.3.9. Link pack line to zone (PMX_LPLZ)
3.2.3.10. Box type for WAS (PMX_BTWA)
3.2.3.11. Box for WAS (PMX_BFWA)
3.2.3.12. Box type for item for WAS (PMX_BTIT)
3.2.3.13. Down time types (PMX_DTTY)
3.2.3.14. Pmx priority (PMX_PRIO)
3.2.3.15. Produmex user warehouses (PMX_UWHS)
3.2.3.16. Produmex user item group (PMX_UITB)
3.2.3.17. Produmex cycle count – Other operations filter (PMX_COOF)
3.2.3.18. Freight charges definitions (PMX_FCDE)
3.2.3.19. Scale definition (PMX_SCLD)
3.2.3.20. Defines the weighing scales available to a specific thin-client (PMX_TCSC)
3.2.3.21. Seveso (PMX_SEVE)
3.2.3.22. Produmex item serial number format (PMX_ISFT)
3.2.3.23. List of warehouse to warehouse where serial numbers need to be entered (PMX_WSMM)
3.2.3.24. List of selectable trailer numbers (PMX_TRNR)
3.2.3.25. License plate (PMX_LIPL)
3.2.3.26. Drivers (PMX_DRIV)
3.2.3.27. Links between ‘GS1 units of measurement’ (PMX_LUMT)
3.2.3.28. Location types (PMX_LOTY)
3.2.3.29. Expiry definition (PMX_EXDE)
3.2.3.30. List of actions for certain events (PMX_EVAC)
3.2.3.31. Batch attribute types (PMX_BATT)
3.2.3.32. Batch attribute valid values (PMX_BAVV)
3.2.3.33. Quality types (PMX_QUTY)
3.2.3.34. Quality type valid values (PMX_QUVV)
3.2.3.35. Allergen types (PMX_ALLE)
3.2.3.36. Shelf life per country and business partner (PMX_CSSL)
3.2.3.37. Variable GTIN configuration (PMX_VGTC)
3.2.3.38. Put away zones (PMX_PAZO)
3.2.3.39. Item storage location type (PMX_ISLT)
3.2.3.40. Sequence configuration (PMX_SECO)
3.2.3.41. Ports (PMX_PORT)
3.2.3.42. Container shipping status (PMX_CSST)
3.2.3.43. Hidden Fat Client Buttons (PMX_HFCB)
3.2.3.44. Scale weight result user table (PMX_SCWR)
3.2.3.45. Package Dimensions (PMX_PADI)

3.2.3.1. Shipping quality option (PMX_SQOP)

This lists the options for shipping quality.

The values are:

  • CAN_USE_SUQ: All quality statuses that ‘Can be shipped’ and ‘Can be shipped under quarantine’ are allowed.
  • MUST_USE_SUQ: Only quality statuses that ‘Can be shipped under quarantine’ are allowed.
  • RELEASED: Only quality statuses that ‘Can be shipped’ are allowed.

It is allowed to delete an option if this is not needed. But changes to the code are not allowed.
This is used on an SAP document line UDF (Shipping quality option) in combination with the pick list proposal creation.

3.2.3.2. Produmex pick list types (PMX_PLTY)

Pick list types are used on proposals and pick lists.
On a business partner there is also a default pick list type.
On a sales order/sales reserve invoice/warehouse transfer request a pick list type can be defined.

When creating a proposal, the system will set the pick list type in this order:

  • Pick list type on document
  • Pick list type on business partner (Only for sales proposals)
  • Default pick list type

Configuration:

Code
The code.

Name
The name.

Split PL on item pick type?
When this is true, several pick list proposals can be created, grouping items with the same item pick type.

Split PL on item pick type 2?
When this is true, several pick list proposals can be created, grouping items with the same item pick type 2.

Ask weight?
When this is true, the weight of the (master) logistic unit will be asked when the logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Weight UoM set on the Display tab of General Settings.

Ask length?
When this is true, the length of the (master) logistic unit will be asked when the logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Ask width?
When this is true, the width of the (master) logistic unit will be asked when the logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Ask height?
When this is true, the height of the (master) logistic unit will be asked when the logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Full pallet pick list type
When this is set, the proposal that is created will be split up between full quantity (This is a multiple of the default quantity defined on the item master data) and partial quantity (Item pick). The proposal created for the full pallet will have this pick list type.

Item pick pick list type
When this is set, the proposal that is created will be split up between full quantity (This is a multiple of the default quantity defined on the item master data) and partial quantity (Item pick). The proposal created for the item pick will have this pick list type.

Always status picked?
When this is true, the pick list line status after picking will always be ‘Picked’. This means that when you pick without a moveable location, the status will not be ‘Packed’. Pick lists with a type that have this setting, need to go through the ‘Consolidated packing flow’. If any pick list within the same wave has this option, all pickings will follow this setting.

Use for production?
When this is true, the pick list can be used for pick lists of type ‘Production’. When this is false, the pick list type can be used for shipping and warehouse transfer.

Use for picking?
When this is true, the pick list can be used in the picking flow.
At least 1 of the pick lists in the flow needs to have a pick list type with this flag enabled.

Use for ad hoc picking?
When this is true, the pick list can be used in the ad hoc picking flow.

Use for zone picking?
When this is true, the pick list can be used in the zone picking flow.
At least 1 of the pick lists in the flow needs to have a pick list type with this flag enabled.

Use for multi picking?
When this is true, the pick list can be used in the multi picking flow.

Number of pallets
This defines the number of pallets that can be added to a pick list proposal.
When the value is higher than 0, the proposals will be split during creation.
The splitting will be done based on the setting on the item master data for the default quantity on a logistic unit. (OITM.U_PMX_DQLU)
The system will calculate a fill rate of the proposal line, based on this setting. The fill rate of the proposal lines can go up to the defined number of pallets.
In case the default quantity on a logistic unit on the item master data is not set (=0), the fill rate of that proposal line will be 0.

Ask weight Sub SSCC?
When this is true, the weight of the logistic unit will be asked when the sub logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Weight UoM set on the Display tab of General Settings.

Ask length Sub SSCC?
When this is true, the length of the logistic unit will be asked when the sub logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Ask width Sub SSCC?
When this is true, the width of the logistic unit will be asked when the sub logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Ask height Sub SSCC?
When this is true, the height of the logistic unit will be asked when the sub logistic unit is finished. The data will be stored on the PMX_LUID table. The unit of measure is the Default Length UoM set on the Display tab of General Settings.

Use for Cash register packing?
When this is true, the pick list can be used in the Cash register packing flow.

3.2.3.3. Produmex item pick types (PMX_IPIT)

This lists the possible item pick types. This is used on the item master data on fields ‘Item pick type’ and ‘Item pick type 2’.
This is only used in the ‘Zone Picking’ flow.

Configuration:

Code
The code.

Name
The name.

3.2.3.4. Produmex user item pick types (PMX_UIPT)

This table is to configure the item pick types a user can pick. If the user is not present in the list, he is allowed to pick all items. If the user is present in the list, he can only pick items with item pick types defined in the table.
This is only used in the ‘Zone Picking’ flow.

Configuration:

Code
The code.

User code
The code of the user.

Item pick type
The item pick type. The item pick type can be selected from a list. The list comes from the ‘Produmex Item pick types’ UDT.

Item pick type property
The property on the item master data the current line refers to. Possible values:

  • ItemPickType1: The item pick type on item master data.
  • ItemPickType2: The item pick type 2 on item master data.
3.2.3.5. Produmex user pick list types (PMX_UPLT)

This table is to configure the pick list types a user can pick. If the user is not present in the list, he is allowed to pick all pick lists. If the user is present in the list, he can only pick from pick lists with pick list types defined in the table.

Configuration:

Code
The code.

User code
The code of the user.

Pick list type
The pick list type. The pick list type can be selected from a list. The list comes from the ‘Produmex pick list types’ UDT.

3.2.3.6. User group for PMX (PMX_USGR)

Definition of Produmex user groups. The user group can be linked to a user.

There are already 2 predefined user groups.

  • 01_ADMIN: Administration
  • 02_SHPFLR: Shopfloor
3.2.3.7. User authorization definition (PMX_UAUT)

Definition of possible authorizations that can be set. This is system information. Do not adjust/delete the code.

Possible values:

  • PRD_FLOW_ON_HOLD: The ‘on hold’ button on the Production flow
  • PRD_FLOW_STOP_BTN: The ‘stop’ button on the Production flow
  • PROPOSAL_CLOSE_BUTTON: The close button to close pick list proposals (Open documents report, pick list proposal form, …)
  • PICK_LIST_CLOSE_BUTTON: The close button to close pick lists (Open documents report, pick list proposal form, …)
  • QC_SUPERVISOR: The ‘Change Qualification’ button on the Quality Test Results form.
  • WO_OVERRULE_SCALE_SWITCH: The ‘Switch scale’ button in the weighing flows.
  • WO_OVERRULE_WEIGHT: For weighing outside of the tolerance range in the weighing flows.

Define the authorization a user group can have.

Configuration:

Code
The code.

User code
The code of the user.

User group code
The user group code. The user group code can be selected from a list. The list comes from the ‘User group for PMX’ UDT.

User authorization code
The user authorization code. The user authorization code can be selected from a list. The list comes from the ‘User authorization definition’ UDT.

Value
The actual authorization. Possible values:

  • Disabled
  • Enabled
  • Hidden

Defines the zone linked to pack lines. This is use on the ‘Consolidated packing’ flow.
The pick list destination location should be on that zone. Also the available stock to pack needs to be stored on that zone.
The level of the zone is 1. This means that the zone you define here needs to be the direct zone of the location.

Configuration:

Code
The code.

Name
The code of the user.

Code of the pack line
The code of the pack line, as define in the organizational structure.

Code of the zone
The code of the zone, as define in the organizational structure.

3.2.3.10. Box type for WAS (PMX_BTWA)

Definition of box types that can be used in the warehouse automation system (WAS).

Configuration:

Code
The code.

Name
The name.

# Compartments
The number of compartments a box has.

3.2.3.11. Box for WAS (PMX_BFWA)

Definition of all boxes that can be used in the warehouse automation system (WAS).

Configuration:

Code
The code.

Name
The name.

Box type
The box type. The box type can be selected from a list. The list comes from the ‘Box type for WAS’ UDT.

3.2.3.12. Box type for item for WAS (PMX_BTIT)

If needed, it can be specified how much items in a certain box type can be stored.

Configuration:

Code
The code.

Name
The name.

Box type
The box type. The box type can be selected from a list. The list comes from the ‘Box type for WAS’ UDT.

Item code
The item code.

Quantity
The quantity of the item that can be stored in the given box type.

3.2.3.13. Down time types (PMX_DTTY)

List of down time types. This is used in the time registration module when entering a down time.

Configuration:

Code
The code.

Name
The name.

3.2.3.14. Pmx priority (PMX_PRIO)

The Produmex priorities. This is used on pick list (proposals) and move orders. The system has already 3 predefined priorities:

  • High (100)
  • Normal (200)
  • Low (300)

Configuration:

Code
The code.

Name
The name.

Sequence
A number defining the order of the priority. The value needs to be unique.
Order is done ascending. This means that 1 has a higher priority than 99.

Is default?
For the default priority this option should be set to true.

3.2.3.15. Produmex user warehouses (PMX_UWHS)

Here it can be defined what warehouses can be visible for a certain user.
This is used on the RF terminals and Produmex screens in the administrative module (SAP).
If the user is not present in the table, he can view data for all warehouses.

Configuration:

Code
The code.

User code
The code of the user.

SBO Warehouse
The SBO warehouse a user is allowed to view.

3.2.3.16. Produmex user item group (PMX_UITB)

Here it can be defined what item groups can be visible for a certain user.
This is used on the RF terminals and Produmex screens in the administrative module (SAP).
If the user is not present in the table, he can view data for all item groups.

Configuration:

Code
The code.

User code
The code of the user.

Item group
The item group a user is allowed to view.

3.2.3.17. Produmex cycle count – Other operations filter (PMX_COOF)

Cycle counting can be done during other operations. To have a more flexible way of configuring when such a cycle count can be performed, configuration settings can be defined in this table.

Configuration:

Code
The code.

[Days of the week]
Define whether the cycle count during other operations can occur or not on a certain day of the week.

Other operation type for cycle count
The type of operation where the cycle count can be performed. Possible values:

  • Ad hoc picking – Transport (Pick list or route)
  • Ad hoc picking – Customer collect.
  • Picking
3.2.3.18. Freight charges definitions (PMX_FCDE)

Configuration of freight charges that will be added to a sales document.

Configuration:

Code
The code.

Name
The name.

Freight code
The line number of the freight to be added. The freight charges are added on a sales order when it is added. The line number must correspond to a line in the freight charges screen on sales order header:

Shipping type code
The shipping type code where this freight charge needs to be added.

Cost
The price to be added.

Min. document price
The minimum document price that is required to add the cost.

Example:

Freight code Shipping type code Cost Min document price
1 1 30 0
1 1 20 100
1 1 0 200

If the price is between 0 and 99,999999, a cost of 30 will be added to Freight for shipping type 1
If the price is between 100 and 199,999999, a cost of 20 will be added to Freight for shipping type 1
If the price is above or equal to 200, no cost will be added to Freight for shipping type 1

3.2.3.19. Scale definition (PMX_SCLD)

Configuration of scales that can be used in Produmex RF terminals.

Configuration:

Code
The code.

Name
The name.

Linked object type
Data needed by the system for the current weighing object. Do NOT adjust values in this column.

Linked doc entry
Data needed by the system for the current weighing object. Do NOT adjust values in this column.

Linked line number
Data needed by the system for the current weighing object. Do NOT adjust values in this column.

Scale setting
Settings for the scale. What needs to be entered here is depending on the scale.

Scale provider type
Provider type for the scale. What needs to be entered here is depending on the scale.

Scale setting
Settings for the scale.

Instance ID
The instance ID

Max. Weight
The maximum weight the scale can handle.

Nr. of decimals
The number of decimals the weight is captured in.

3.2.3.20. Defines the weighing scales available to a specific thin-client (PMX_TCSC)

Links a scale to a thin client.

Configuration:

Code
The code.

Name
The name.

Thin client code
The code of the thin client, as defined in the organizational structure.

Scale def. code
The scale definition code. This can be selected from a list. The list comes from the ‘Defines the weighing scales available to a specific thin-client’ UDT.

3.2.3.21. Seveso (PMX_SEVE)

Defines a seveso class, to hold the maximum quantity allowed on a warehouse.
This class can be linked to an item.

Configuration:

Code
The code.

Name
The name.

Max. Quantity
The maximum quantity.

3.2.3.22. Produmex item serial number format (PMX_ISFT)

A list of possible serial number formats. This can be linked to item master data.

Configuration:

Code
The code.

Name
The name.

Serial format
The format a serial number must have. This is a regular expression (regex).

3.2.3.23. List of warehouse to warehouse where serial numbers need to be entered (PMX_WSMM)

Defines whether a PMX serial number needs to be asked when performing a move between warehouses.

Configuration:

Code
The code.

Name
The name.

From warehouse (PMX)
The source warehouse. This is the code of the warehouse as defined in the organizational structure.

To warehouse (PMX)
The source warehouse. This is the code of the warehouse as defined in the organizational structure.

Ask serial number?
Do serial numbers need to be asked?

Print documents?
Do warehouse documents need to be printed?

3.2.3.24. List of selectable trailer numbers (PMX_TRNR)

A list of known trailer numbers that can be selected during shipping process.

Configuration:

Code
The code.

Name
The name.

Is the record canceled?
If set to ’Yes’, the record is cancelled. The user cannot select cancelled records when the data is asked on the scanner or the touchscreen.

3.2.3.25. License plate (PMX_LIPL)

A list of known license plates that can be selected during shipping process.

Configuration:

Code
The code.

Name
The name.

Is the record canceled?
If set to ’Yes’, the record is cancelled. The user cannot select cancelled records when the data is asked on the scanner or the touchscreen.

3.2.3.26. Drivers (PMX_DRIV)

A list of known drivers that can be selected during shipping process.

Configuration:

Code
The code.

Name
The name.

Is the record canceled?
If set to ’Yes’, the record is cancelled. The user cannot select cancelled records when the data is asked on the scanner or the touchscreen.

This is not used.

3.2.3.28. Location types (PMX_LOTY)

A list of location types. These types can be selected on the organizational structure – location.

Configuration:

Code
The code.

Name
The name.

3PL item code
For 3PL invoicing only. The code of the item that will be used on the A/R invoices sent to the 3PL customers. The price of one day of storage in each location of that location type is represented by the 3PL item’s price.
The item must be non-inventory.

3PL active?
For 3PL invoicing only. If disabled, the price for this location type will not be included in the A/R invoices sent to the 3PL customers.

3.2.3.29. Expiry definition (PMX_EXDE)

A list of possible expiry definitions. This is used to calculate best before dates.

Configuration:

Code
The code.

Name
The name.

Days
The number of days to add.

Months
The number of months to add.

Years
The number of years to add.

3.2.3.30. List of actions for certain events (PMX_EVAC)

Defines actions that can be performed for certain events.

Possible events:

  • Open extra documents when another print job within SAP is performed.

This print job needs to be for Sales quotation/order/invoice.
It will get documents defined on the item master data in the column defined.

Configuration:

  • Table name = OITM
  • Colum name = [a column name within OITM where the path to the document that needs to be opened is stored]
  • Object type = The object type for Sales quotation/order/invoice
  • Action type = Does not need to be filled
  • For event = Does not need to be filled

Configuration:

Code
The code.

Name
The name.

Table name
The name of the table.

Column name
The column name.

For event
Defines the event this action is for.

Action type
The type of action that needs to be performed.

Object type
The object type.

3.2.3.31. Batch attribute types (PMX_BATT)

Configuration:

Code
The code.

Name
The name.

Convertor
The data is stored in the database as text. The system needs to know what type to convert it to.
This can be set with the convertor.
Possible values:

  • Int
  • String
  • Date
  • Double
  • List

Sequence
The sequence the batch attributes should be shown when entering the data. This is used to sort the batch attributes. This can be any numeric value.

The key for translation
The key that will be used for the translation of the title. When this is not set, the system will use MSG_TITLE_BATCH_ATTRIBUTE.<Code of the batch attribute>. In case there is only 1 language in the company, a title can be entered here directly.

A list of possible batch attributes that can be linked to an item.
Some predefined codes have been added:

  • COUNTRY_OF_ORIGIN: Country of origin
  • MANUFACTURING_DATE: Manufacturing date

When custom batch attribute types are added, a translation should be added to the system. This translation is used on a device when entering the batch attributes.
The translation node for COUNTRY_OF_ORIGIN looks like:

<PmxLocalizationKey>
    <Canceled>False</Canceled>
    <LocalizationKey>MSG_TITLE_BATCH_ATTRIBUTE.COUNTRY_OF_ORIGIN</LocalizationKey>
    <ApplicationTypeCode>SLIM_SCR</ApplicationTypeCode>
    <LocalizationProperties>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty />
        <ExtensionCode>CONVSTR</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Enter the country of origin</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Vul het land van herkomst in</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
    </LocalizationProperties>
  </PmxLocalizationKey>

The LocalizationKey starts with ‘MSG_TITLE_BATCH_ATTRIBUTE.’
Add the code of the attribute type at the end.

When making a complete valid translation file to import, make sure the root tags are also added:

<?xml version="1.0" encoding="utf-8"?>
<TestRoot>
</TestRoot>

AI
The application identifier. It allows a scanned value from a barcode to be automatically stored in the batch attributes.

3.2.3.32. Batch attribute valid values (PMX_BAVV)

A list of possible values a batch attributes type can have.

Configuration:

Code
The code.

Name
The name.

Batch attribute type
The batch attribute type. This is a link to the table PMX_BATT

Value
The possible value for the batch attribute type

3.2.3.33. Quality types (PMX_QUTY)

This is the configuration of quality types that can be asked during certain processes. The recorded values are stored in the table PMX_QUVA.
Supported flows:

  • Reception
  • Bulk reception
  • Production
  • Production receipt
  • Disassembly

Configuration:

Code
The code.

Name
The name.

Convertor
The data is stored in the database as text. The system needs to know what type to convert it to.
This can be set with the convertor.
Possible values:

  • Int
  • String
  • Date
  • Double
  • List

Document type
The document object type for this quality type. This is the ObjType from SAP.
For the moment only Purchase delivery (=20) and production order (202) are supported.

Remarks
Additional remarks. This is just informational.

Sequence
The sequence the quality type should be shown when entering the data. This is used to sort the quality types. This can be any numeric value.

Moment of capture
The moment of capture: When does this quality type need to be asked?
Possible values:

  • Start
  • End

The key for translation
The key that will be used for the translation of the title. When this is not set, the system will use MSG_TITLE_QUALITY_TYPE.<Code of the quality type>.
In case there is only 1 language in the company, a title can be entered here directly.

When custom quality types are added, a translation should be added to the system. This translation is used on a device when entering the quality values.
The translation node for TEMP_TRUCK looks like:

<PmxLocalizationKey>
    <Canceled>False</Canceled>
    <LocalizationKey>MSG_TITLE_QUALITY_TYPE.TEMP_TRUCK</LocalizationKey>
    <ApplicationTypeCode>SLIM_SCR</ApplicationTypeCode>
    <LocalizationProperties>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty />
        <ExtensionCode>CONVSTR</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Enter the temperature of the truck</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Vul de temperatuur in van de vrachtwagen</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
    </LocalizationProperties>
  </PmxLocalizationKey>

The LocalizationKey starts with ‘MSG_TITLE_QUALITY_TYPE.’
Add the code of the attribute type at the end.

When making a complete valid translation file to import, make sure the root tags are also added:

<?xml version="1.0" encoding="utf-8"?>
<TestRoot>
</TestRoot>

AI
The GS1 application identifier (AI) linked to this batch attribute. On the flows batch attributes can be entered, based on the batch attributes linked to an item. When a GS1 barcode has been scanned, and a batch attribute needs to be entered with an AI, the system will check if this AI is available in the scanned barcode. If so, this value will be used and the user will not have to manually enter a value for this batch attribute.

3.2.3.34. Quality type valid values (PMX_QUVV)

A list of possible values a batch attributes type can have.

Configuration:

Code
The code.

Name
The name.

Sequence
The sequence of the valid value in the list. This is used to sort the values to select from.

Quality type
The quality type. This is a link to the table PMX_QUTY

Value
The possible value for the quality type

3.2.3.35. Allergen types (PMX_ALLE)

A list of possible values an allergen can have.
This is used on the item master data to select an allergen.

Configuration:

Code
The code.

Name
The name.

3.2.3.36. Shelf life per country and business partner (PMX_CSSL)

A list of default shelf lives per business partner and country.
These shelf lives are taken into account for items where no shelf life per business partner and country is defined on the item master data. They have however precedence over the general shelf lives defined on the item master data.
You can enter a shelf life for either just a customer, or just a country, or a combination of both a customer and a country.

Configuration:

Code
The code.

Name
The name.

Country code
The country code (from table OCRY).

Card Code
The card code of the business partner.

Shelf life
The shelf life in days.

3.2.3.37. Variable GTIN configuration (PMX_VGTC)

This table holds a list of configurations of variable GTIN barcodes. The user can store a prefix, define the variable part of the barcode, and what the purpose is of the quantity retrieved from the barcode.

Configuration:

Code
The code.

Name
The name.

Prefix
The prefix of a barcode that needs to be regarded as a variable GTIN. This does not need to be the full fixed part of the barcode.

Start index variable part
The barcode has variable part. This field stores the index where the variable part starts. This index is zeor-based.

Length variable part
The barcode has variable part. This field stores the length of the variable part.

# Decimals
The number of decimals of the variable value.

Value purpose (AI)
This defines on what Application Identifier the value needs to be stored, after the value has been captured.

3.2.3.38. Put away zones (PMX_PAZO)

This table holds a list of put away zones.
It is used in the functionality for 'Location suggestions'

Configuration:

Code
The code.

Name
The name.

3.2.3.39. Item storage location type (PMX_ISLT)

This table holds a list of item storage location types.
An item and/or location can have this property.
It is used in the functionality for 'Location suggestions'

Configuration:

Code
The code.

Name
The name.

3.2.3.40. Sequence configuration (PMX_SECO)

This table holds the configuration of sequence numbers.
It is used when Produmex creates a document.
It sets the sequence on a document for the Brazilian localization.
(Like ODLN.SeqCode)

So when a document is created by Produmex, the sequence code for the type of document, and branch is retrieved from this configuration table.
When no configuration is found, no sequence code is set.

Configuration:

Code
The code.

Name
The name.

Document type
The type of the document.
Like '17' = Sales order, '15' = Sales delivery, …

Branch ID
The branch ID.

Sequence code
The sequence code. This is a numeric value.

3.2.3.41. Ports (PMX_PORT)

This table holds the ports.
It is used for the container management: Port of origin, port of destination.

Configuration:

Code
The code.

Name
The name.

Normal lead time (in days)
The lead time in days for normal delivery at this port.
This is used for calculation of dates in the container management.

Express lead time (in days)
The lead time in days for express delivery at this port.
This is used for calculation of dates in the container management.

3.2.3.42. Container shipping status (PMX_CSST)

This table holds the shipping statuses a container can have.

Configuration:

Code
The code.

Name
The name.

Sequence
The sequence is used for the sorting on the combobox on the container management screen.

3.2.3.43. Hidden Fat Client Buttons (PMX_HFCB)

This table holds configuration to hide buttons on flows used in the Fat Client.
This configuration table is intended to be used by consultants who are familiar with the workflows and know how to retrieve the needed information to complete the configuration.

Configuration:

Code
The code.

Name
The name.

Calling workflow
The work flow that is used.

Title key
The title key of the screen where the button needs to be hidden.

Button key
The button key of the button that needs to be hidden.

Disabled
Check this checkbox to disable the configuration to hide the button.

Pmx User Group
The user group this configuration applies to.
If no user group is set, it applies to all users.

Examples:

  • How to hide button 'No PO' on the reception flow
  • How to hide button 'Change lined up location' on the production flow

3.2.3.44. Scale weight result user table (PMX_SCWR)

SCWR

Code
The code of the scale. Add the Organizational Structure scale code here.

Name
The name of the scale.

Weigh
The measured weigh. This field will be filled by the ScaleComm Service if the ‘Skip Polling’ option is set to ‘False’ in the configuration file of the ScaleComm Service.

Uom
The Uom of the scale. This field is for information only.

3.2.3.45. Package Dimensions (PMX_PADI)

Depending on the pick list type, the user might have to add the dimensions of the package after a logistic unit is finished during picking and packing. The user can enter the dimensions manually or select a package dimension that was defined on this table.

Code
Internal code of the package dimension.

Name
The name of the package dimension that is displayed on fat client screens.

Is the record canceled? (Y/N)
If checked, it indicates that the record is cancelled and cannot be selected as the package dimension during picking or shipping. Cancelled records can be restored.

Width
The width of the package.

Length
The length of the package.

Height
The height of the package.

3.2.4. Business partner master data

S/P remarks pop-up
If checked, the text in the Sales/Purchase remarks is shown as a pop-up when using this business partner in a sales/purchase document in SAP.

Sales/Purchase remarks
The Sales/Purchase remarks to be shown when selecting the business partner in a sales/purchase document in SAP.

Group sales delivery
If various orders for a customer have been entered and picked, it is possible to group the various orders in one sales delivery (Y) or to have a sales delivery per individual order (N). It is also possible to base this setting on the extension parameter “Sales delivery note generator” at the company level in the organization structure.

Linked Business Partner
In a third party logistics context, a supplier can be linked to a customer so that a purchase order to the supplier can be linked to a sales order to the customer.

Pick list type
In case a default pick list type applies to a business partner, this can be indicated here. When a proposal is created, it will set a pick list type in this order:

  • On document
  • On business partner (Only for sales proposals)
  • Default pick list type

Pallet packing type
This is used during packing, consolidated packing,item packing, in combination with allowing to use the pallet packing type on customer (Setting on PackingController).
Possible values:

  • Pallet (Default)
    • In case master is allowed, then user is asked whether to create master SSCC or normal SSCC
  • Multiple identical pallets
    • Creates identical normal pallets
  • Pallet - Multiple identical sub packages
    • Creates 1 master SSCC, but identical sub SSCC's
  • Always ask user
    • Ask the user how to create the pallets
      • Identical master and/or identical sub SSCC's are allowed.

Check to add return items
Defines whether the system adds returnable items when booking a document for this business partner or not. Possible values:

  • If set to ‘Yes’, the system adds returnable items when booking a document for this business partner.
  • If set to ‘No’, the system does not add returnable items to the documents of this business partner.
  • If set to ‘Take setting on company’, returnable items are added based on the ‘Check to add returnable items’ setting on the General tab of the Organizational Structure.

Enter specific pallet number?
If checked, a supplier pallet number needs to be entered during reception. This is stored on the table (PMX_LUID) where the SSCC is stored.

If for certain business partners you use that business partner’s own pallets (meaning that these have to be traceable within your company), you can indicate that upon receipt of such a pallet, the pallet number has to be registered.

Has no logistic carriers
If checked, the screen to select a logistic carrier will be skipped during the reception process

Has no logistic labels
If checked, the screen to scan the logistic label will be skipped during the reception process

Has no identical logistic units
If checked, the screen to choose between identical and non identical logistic units will be skipped during the reception process

Never delivers mixed logistic units?
If checked, the screen to add more items to the logistic unit will be skipped during the reception process

Group purchase delivery
If stock is received based on multiple purchase orders from the same vendor, it is possible to group the orders into a single Goods Receipt PO document. Possible values:

  • If set to ‘Yes’, a single Goods Receipt PO document is created for every purchase order that is received in one step.
  • If set to ‘No’, a separate Goods Receipt PO document is created for each purchase order.
  • If set to ‘Take setting on company’, the Goods Receipt PO document is created based on the ‘Group purchase delivery’ setting on the Purchase delivery generator.
3.2.5. Shipping types

Produmex has extended the shipping types.
Configuration for pick list/proposals, creation of delivery documents, … can be done here.

When creating proposals, the goods on the sales document can be split up in several proposals, according to settings defined on the shipping type on document line level

Automatic shipping?
If checked, the system will try to automatically create a delivery when the pick list is packed. This setting is taken in account for splitting document lines into several proposals.

Automatic invoicing?
If checked, the system will try to automatically create an invoice when the delivery is made. This setting is taken in account for splitting document lines into several proposals.
The automatic invoicing is only supported for deliveries made by an RF terminal.

Mail report on document add
If checked, a report will be mailed when the document is added. This requires the SBO Notification listener to be installed, and configured to perform the mailing.

Is customer coming to collect?
If checked, the proposal/pick list that is generated will have the setting that it is for a customer collect to true. This setting is taken in account for splitting document lines into several proposals.

Ask license plate during shipping?
If checked, system will ask for a license plate when performing the shipping. This overrules the setting on global level.

Ask driver name during shipping?
If checked, system will ask for a driver name when performing the shipping. This overrules the setting on global level.

Ask trailer number during shipping?
If checked, system will ask for a trailer number when performing the shipping. This overrules the setting on global level.

Ask tracking number during shipping?
If checked, system will ask for a tracking number when performing the shipping. If it is configured to have multiple deliveries created when shipping (multiple) pick lists, only 1 tracking number is asked, and stored on all deliveries.

The shipping type setting in SBO 9.2.

Disclaimer: This documentation describes the standard SAP Business One shipping type function.

The shipping type can be set in three level:

  1. Business Partner (On the General tab of the Business Partner Master Data)
  2. Sales order (On the Logistics tab of the order)
  3. Item (On the General tab of the Item Master Data)

The default shipping type of a sales order is the shipping type of the customer, but it can be adjusted on the Logistics tab of the order. When changing the sales order shipping type, the system will ask whether to modify the shipping type of the sales order lines as well.

The default shipping type of the sales order lines is the shipping type of the sales order. When adding an item that has a shipping type defined, the shipping type will be automatically set to the item’s default. Changes of the sales order line shipping type will not affect the sales order shipping type.

3.3. Production

3.3.1. BOM

Is base component
Is the current ingredient the base component of the product to produce? (Informational)
This is also used in combination with the ‘Scan base component’ option on item master data.
During picking the user will be asked to scan the barcode of this base component when picking the master item.

Has to be lined up
Does this component need to be consumed from a lined up location?

Qty tolerance %
The tolerance (percentage) of the quantity of components to consume. This will allow the system deviate from the theoretical quantity needed for the production.

Is the item optional
Set wether the component is optional. If set to true, this component is not required to produce.

Prod. Order start condition

  • N = No condition
  • Q = Component part. weighed
  • W = Component weighed

These are the start conditions of a production order. The requirements need to be met, before the production order can be started.

Best before date option
This is used when picking for production. It configures the way the system should calculate a valid best before date for the ingredient. Possible values:

  • BBD of finished product and shelf life: Take the BBD defined on the production order + shelf life of the ingredient.
  • Due date and shelf life: Take the due date of the production order + shelf life of the ingredient
  • Pick date: Take the date when the picking occurs or in case of pick lists for production the creation date of the proposal.

Allow to pick for line up? (True/False)
If enabled for a component that has to be lined up, the component can be consumed from every lined up location assigned for the production line, otherwise it can be consumed only from the assigned lined up locations with stock for the item.

Such a component will be added to the pick list (proposal) for production or can be picked for production. When moving the components to the production line, it will be moved to the lined up location selected for the component.

When the ‘Direct consumption of goods’ option is enabled for the lined up location the component is consumed, the component will be automatically issued when the product is received, therefore it will not be listed among the other components on the Production Manager – Stop screen. However, it the ‘Allow to pick for line up setting’ is enabled for the component, it is possible to issue more than the planned quantity, therefore the component will be listed on the Stop screen of the Production Manager.

Weighing needed? (True/False)
Set whether the component must be weighed or not. When creating a weighing order, only components, that have the ‘Weighing needed?’ setting enabled, are added to the weighing order.

Weigh order batch quantity
Add number of batches for the weighing order. If the quantity is greater than 1, the planned quantity of the item to be weighed will be split into multiple weigh order lines. The number of lines is defined by the Weigh order batch quantity value.

Batch attribute & Batch attribute value
This is used when picking for production.

If certain batch attributes need to be picked for production, select the batch attribute type from the dropdown menu in the Batch attribute field. Every batch attribute defined on the Batch attribute types user table can be selected. Then enter the given value to the Batch attribute value field. You can add up to three batch attribute per line.

On the production order, you can also add batch attributes by selecting the ‘Batch attributes’ option from the right-click menu of the line. On the opening Batch attributes control screen you can select the batch attribute type and add/select the batch attribute value.

If a batch attribute is defined for a production line, the stock that can be picked is filtered based on the batch attribute.

3.3.2. Production order header

Produmex production status
Next to the status of SAP, there is the Produmex production status.
Possible values: Planned, On hold, Started, Closed

Production step list
Next to the item to produce, the user can select a steplist.
The requirements to select a steplist:

  • One or more steplists for the item to produce needs to be configured
  • The production type needs to be ‘Special’

When a step list is selected, a list of components is created according to the selected steplist.

Production line
Next to the warehouse, the user can select the production line where this production order needs to be produced. Only the production lines in the warehouse are shown.

3.3.3. Production order lines

The extra fields added to the BOM, are also added to the production order. When creating a new production order, the Produmex add-on will copy the data from the BOM to the production order in case the UDF’s are named the same.

The following fields are used for picking for production: (And not for Pick List for production)

Quantity picked
The quantity that already has been picked for this component.

Batch(es) to pick
If a certain batch needs to be picked for this production order, this column needs to be filled with the batch to pick.
When multiple batches are required, those batches can be entered with a pipe as separator: '|'

3.3.4. Production issue lines

Is waste?
Is this line registered as waste?

The production batch
This stores the production batch this line was issued for.

3.4. Resource Master Data

Produmex tab

Use for time registration (Y/N)
Indicates if the resource can be used for time registration when added to the Bill of Materials or production order.

4. Produmex WMS Office Module

Apart from the extension of existing SAP Business One functions, Produmex WMS offers specific administrative functions for streamlining the operational processes of goods receipt, put away, production, packaging, picking and shipping. These functions are grouped under the Produmex tab in the main menu of SAP Business One. You can also access these functions by way of the menu option Module where you can then select the option Produmex at the bottom.

5. Organizational Structure

Before you can start using Produmex you have to define the structure of your company. Here you define how your company is organized in practice.
In the main screen of the organization structure you can start by adding and arranging the various structure elements in your company.

These OSE’s (Organization Structure Elements) are (in hierarchic order):

  • Company: this OSE can only be created once per company database
  • Warehouse: this is the highest level below a company. Warehouse not only refers to the place where goods are received, stored and from which they are shipped. The warehouse 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: a specific area in the warehouse where certain functions are grouped (e.g. goods receipt, shipping, packaging, …)
  • Production line: a line where goods are produced and packaged (as part of a warehouse)
  • Packing line: a line where goods that were picked on a movable location can be packed onto a logistic carrier to be shipped as a logistic unit
  • Dock: a location where goods are received and/or shipped (as part of a warehouse)
  • Warehouse Automation Location – 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 in on a global level.
  • Bin: an individual storage location managed by Produmex.
  • Silo Tank: a fixed bulk storage location
  • Movable Location: a movable storage location (e.g. a picking cart) on which goods are temporarily stored after picking before they are packed on a logistics carrier or used in production (e.g. a forklift).
  • Thin Client: a fixed or mobile operator station (touch screen, handheld terminal, …), by which the operator interacts with Produmex
  • Printer: a printer at a specific location or connected to a specific thin client

5.1. Organizational Structure Settings at Company Level

All the data on several tab pages can be changed within the tab page itself. When a change has been made, the OK button (Number 4) will be enabled.
It is only when clicking the OK button (4) the changes are committed to the database.

An example to add a report:

  1. Enter the configuration of the report.
  2. Click the Add button to add the new report to the list.
  3. The report is added, but has as key = 0, because it is not committed to the database yet.
  4. Click OK button to add the changes to the database.
5.1.1. General settings

At the company level a number of general settings can be specified that apply to the entire Produmex WMS Add-On.

Language
This includes the standard language (the language that is used by default on the thin clients, unless specified otherwise at the individual user level (cfr. Administration → Users).

Logo
Furthermore a reference to the company logo can be added: this path points to a shared folder which contains the company logo that is used on the login page of the thin clients.

DB credentials
The standard connection to the SAP Business One database (username / password ). Needs to be set for reporting purposes.

Logistic carriers
Next it is also possible to define whether logistic carriers (pallets, containers, …) are stored at one location per warehouse (where they are stored after emptying) and what the standard quality status for logistic carriers is.

  • Store logistic carriers on 1 storage location by warehouse \\When this option is enabled, logistic carriers are stored at one location per warehouse. Set the default storage location for logistic carriers on the Warehouse level.
    This setting should be enabled in order to use logistic carriers properly.
  • Move all logistic carriers on reception
    When this option is enabled, logistic carriers are automatically moved to the default storage location of the logistic carriers after the reception.
    This setting is only active if the ‘Store logistic carriers on 1 storage location by warehouse’ option is enabled.
  • Quality status for logistic carriers
    Select the standard quality status for logistic carriers from the dropdown menu.

Transport services
In case the company uses transport services, it is also possible to indicate whether the name of the driver has to be specified or selected when loading and/or whether the license plate and/or the trailer number of the transport vehicle should be recorded.
These global settings can be overruled on the SAP Shipping types.

Goods receipt requires suppl. ref
If this parameter is checked, the operator will be asked to enter a supplier reference number during the goods reception process.

Goods receipt automatically prints item labels
When this is ticked, the goods receipt on scanner will automatically print item labels. The number of labels printed, is the received number of items. Otherwise the user will be asked if he wants to print.

Use inventory returnable items on documents
If this is ticked, the returnable item added to the document will be the inventory item.

Set vat group returnable items on documents
If this is ticked, the VAT group of the returnable item will be set when added to the document. For purchase this will be OITM.VatGroupPu and for sales this will be OITM.VatGourpSa.

Check to add returnable items
When this is ticked, the system will try to add returnable items when booking a document. To avoid this check this can be unticked.

Disable item selection in flows
If this is ticked, it will not be possible to select an item on scanner/touchscreen. The user will always have to scan a barcode to identify the item.

Use Produmex Quality
This setting must be enabled in order to use the Produmex Quality module.

Pick list proposal allowed to exceed order
If ticked, it is possible to adjust the quantity of the proposal, so it exceeds the ordered quantity.

Do not lock stock on picking (pick lists can be created even if no stock is available)
When proposals are made, stock is locked. If this is ticked, the system will not lock stock when creating the proposal. This means that there is no more check of available quantity, so proposals can be made, even if there is not enough quantity.
Picking can only happen through the ‘Ad hoc picking’ flow.
This option does not apply to pick lists for production. Those pick lists will have locking.

Allow over picking
If “Allow over picking” is checked, the operator will be able to pick more items than specified in the sales order/picklist. This can be done for convenience purposes, e.g. if an order for 14 items is received and the packaging unit for that item is a box of 15 items. In such a case, picking a whole box may be more convenient than opening the box and taking one item out.
This option is only available for Picking, Zone picking and Multi picking, Ad hoc picking - route, Ad hoc picking - pick list.

Allow overpicking (Customer collect)
If this setting is enabled, the operator will be able to pick more items than specified in the sales order/pick list in the Ad hoc picking – Customer collect flow.

Count colli after picking
As a further check to ensure the correctness of deliveries, it can be specified that the operator has to count and enter the number of colli that were picked and put onto a logistic unit (SSCC), which the operator wishes to finish. The system will then verify whether this number is the same as the number of colli it has recorded during the picking process onto this logistic unit (SSCC). The count is done in the inventory UoM.
When this is ticked, it can be configured how many times the user can enter an incorrect count.
When this maximum is reached, the picked SSCC is considered unpicked, and a new pick list is created for these items, forcing the user to pick again.

Embed .NET forms in SBO forms
When this option is set, all forms run within SAP.
But in some cases it is useful if some screens are not embedded in SAP. In that case it is possible when you have 2 monitors to move certain screens outside of SAP on another monitor.
This can be done by unchecking this checkbox.
Some screens will be shown in the Windows taskbar, and will be outside of SAP.
Supported screens:

  • Organizational structure
  • Route planning
  • Production manager
  • Cycle count – Select location
  • Cycle count – Process
5.1.2. Defaults

Labels
In the default settings you can specify the standard labels for goods receipt, shipping and the standard item label.

Additional expenses generator:
This setting is used to copy additional expenses like for example freight costs from a sales order/line to a sales delivery. The way the costs get divided on the base documents depend on the configuration within SAP. Produmex does not handle this.

Default quality status reception
The default quality status for goods receipt.
This option can be overruled by settings on the item master data.

Released quality status reception
This setting is related to the setting “default quality status reception”. The setting defines the quality status of a lot number that is released in inventory. For example an item with a lot number is received in inventory with a quality status of quarantine (default quality status reception), if the item and lot number changed of quality status to released and the item with the same lot number is again received into inventory it will retrieve the quality status defined in the setting “Released quality status reception”.
This option can be overruled by settings on the item master data.

Quality status sales return
The default quality status for sales return.
This option can be overruled by settings on the item master data.

Quality status cycle counting
Defines the default status of items that are added to the inventory (Inventory Transaction → Goods Receipt) as a result of Cycle Counting (when a positive difference has been established between the actual physical stock in the warehouse and the administrative stock that was registered in SAP Business One). This quality status only applies to additional items that are NOT on an existing logistic unit (SSCC) in the system. Additional items that are counted on an existing logistic unit get the quality status of that logistic unit.

Quality status returnable items
The default quality status for returnable items.
This is used when inventory returnable items need to be added to the system.

5.1.3. Extension Parameters

On the Extension Parameters tab it is possible to define a number of parameters for certain properties. The properties and the applicable extension parameters are listed in the Property and Extension drop-down menus.

The Extension Parameters Tab

After you select a property and the applicable extension parameter, the related parameters are displayed.

With the Search Parameters field it is possible to filter the shown parameters. Only parameters that contain the entered characters will be displayed.

The following sections describe the available properties together with their extensions.

5.1.3.1. 3PL invoicing controller
5.1.3.2. Archiving controller
5.1.3.3. Barcode controller
5.1.3.4. Batch number 1 on company and Batch number 2 on company
5.1.3.5. Batch number generator for sales return
5.1.3.6. Batch number production company
5.1.3.7. Best before for production generator
5.1.3.8. Best before for reception generator
5.1.3.9. Checks controller
5.1.3.10. Container management controller
5.1.3.11. Cycle count controller
5.1.3.12. Freight charges controller
5.1.3.13. Interface for PMX Advance Shipping Notice importer and exporter
5.1.3.14. Inventory controller
5.1.3.15. Location controller
5.1.3.16. Move controller
5.1.3.17. Open documents screen controller
5.1.3.18. Open Sales Orders Controller
5.1.3.19. Packing controller
5.1.3.20. Picking for production controller
5.1.3.21. Pick list controller
5.1.3.22. Pick list proposal manager screen controller
5.1.3.23. Pick list proposal generator
5.1.3.24. Pick list robot
5.1.3.25. Production controller
5.1.3.26. Proof of delivery controller
5.1.3.27. Purchase delivery generator
5.1.3.28. Receive from Whs controller
5.1.3.29. Replenishment generator
5.1.3.30. Report mailer
5.1.3.31. Route controller
5.1.3.32. Sales delivery note generator
5.1.3.33. Sales return generator
5.1.3.34. Serial number controller
5.1.3.35. Stock allocation controller
5.1.3.36. Track and trace controller

5.1.3.1. 3PL invoicing controller

3PL Invoicing Controller (3PLINV)

Add zero-price lines to 3PL invoices? (Y/N)
Option to whether or not include price with a calculated price or zero to the 3PL invoices.

Shortest invoiceable storage duration
Defines the minimum duration to be invoiced when a bin location is used by an item.
Possible values:

  • ‘Day’: if a bin location is used by an item on one day, invoice the daily storage price or that bin location one time
  • ‘Week’: if a bin location is used by an item on any day of a week, invoice the daily storage price of that bin location for the whole week
  • ‘Month’: if a bin location is used by an item on any day of a month, invoice the daily storage price of that bin location for every day of the month

Storage price calculation type
Defines the way to calculate the storage price for bin locations.
Possible values:

  • ‘Daily used number of locations’: every bin location that has contained a supplier item will be considered as having been used for storage, and will be included in the storage price calculation
  • ‘Daily final stock’: only the bin locations that contain an item of the supplier at the end of each day will be considered as having been used for storage, and will be included in the storage price calculation
5.1.3.2. Archiving Controller

Archiving Controller (ARCHCTRL) Archiving Controller Settings

Days to keep data line database before moving to archive Y/N
With the process of archiving you will move data to separate, archive tables and with this setting you let the system know which data can be moved. In this example the configuration is 365 days, which means that the system will archive those transactional data/documents which were created/updated more than 365 days ago.

In case data refers to documents, only closed documents can be archived.
For example, if you have a pick list which was created more than 365 days ago, but is still open, it will not be archived.

General data lookup is allowed to use archive Y/N
The archived data is stored in separate, archive tables and they are not available from the SAP B1 client, however, if this setting is enabled, the system will also check the archive tables to find the necessary data.
For example Pick List number 10 is archived. If you look for this pick list in SAP B1 client and this setting is not enabled, they system will not find the pick list. If the setting is enabled, the system will find the pick list and show the details.

Sales Delivery Pick List lookup is allowed to use archive Y/N
This setting refers to archived pick lists from a sales delivery.
Archived pick lists are not available from the SAP B1 client, however, if this setting is enabled, the system will also check the archive tables to find the necessary pick list.
For example Pick List number 10 from a sales delivery is archived. If you look for this pick list in SAP B1 client and this setting is not enabled, the system will not find the pick list. If the setting is enabled, the system will find the pick list and show the details.

Traceability Report is allowed to use archive Y/N
If this setting is enabled, the Traceability Report shows archived data as well.
If this setting is not enabled, the Traceability Report shows data which has not been archived yet.

5.1.3.3. Batchnumber 1 on company

Generates batch number for reception based on format (BGRF)

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the reception process.

Must batch number be overwritten by scanned batch number of GS1 label? (Y/N)
Can the entered batch number be overwritten by the batch number that is present in the barcode on the GS1 label (if any) of the received items.

The current sequential number
Field that holds the current sequential number.

The date format to reset sequential number
Defines the date format on what the sequential number will be reset. In the example above the sequential number fill be reset when the year changes.

The format
Defines the format of the generated batch numbers.
A tag starts with ‘[‘ and ends with ‘]’. Inside a tag the first part is the identifier of the type of value that needs to be entered. Next is a ‘:’ to split the identifier and the value of the identifier.

Possible tags in the format:

[Date:yyMMdd] or [D:yyMMdd]
Date: This will be replaced by the date format provided in the value of the identifier. All windows allowed formats are allowed. It will perform the method DateTime.ToString(string value) of Windows.

[DayOfYear:3] or [DY:3]
Date: This will be replaced by the day of year. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the day of year is 99, and value is 3, the processed value will be 099.

[X:4]
Sequential number: This will be replaced by the sequential number. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the sequential number is 99, and value is 4, the processed value will be 0099.

The update date for sequential number
The last update date in the specified format. This is used to know when the sequential number needs to be reset.

Generates prefix-year-month-serial batch number for reception XXXYYYYMMSSSSS

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the reception process.

Must batch number be overwritten by scanned batch number of GS1 label? (Y/N)
Can the entered batch number be overwritten by the batch number that is present in the barcode on the GS1 label (if any) of the received items.

The current month
Field that holds the current month.

The current serial
Field that holds the current serial number.

The current year
Field that holds the current year.

The length of the serial
Defines the length of the serial number

The prefix
Defines the prefix of the generated batch number.

BatchNumberGeneratorReception - Generates empty batch number for reception

The user will have to enter the batchnumber manually.

Must batch number be overwritten by scanned batch number of GS1 label? (Y/N)
Must the entered batch number be overwritten by the batch number that is present in the barcode on the GS1 label (if any) of the received items.

BatchNumberGeneratorReception - Generates year-serial batch number for reception YYYYSSSSS

Generates an automatic batch number based on the specified criteria: i.e. year + serial number of a specific length. It can furthermore be defined whether or not the user will be able to change the generated batch number.

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the reception process.

Must batch number be overwritten by scanned batch number of GS1 label? (Y/N)
Can the entered batch number be overwritten by the batch number that is present in the barcode on the GS1 label (if any) of the received items.

The current serial
Field that holds the current serial number.

The current year
Field that holds the current year.

The length of the serial
Defines the length of the serial number.

Prefix-year-month-day-salesordernum batch number for reception PPPYYYYMMDD-SSSSSS (BGR-YMDS)

Generates an automatic batch number based on the specified criteria: prefix + year + month + date + linked sales order. It can furthermore be defined whether or not the user will be able to change the generated batch number.

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the reception process.

Default postfix if no sales order link
Defines the postfix of the generated batch number, if there is no sales order linked to the purchase order.

Must batch number be overwritten by scanned batch number of GS1 label? (Y/N)
Can the entered batch number be overwritten by the batch number that is present in the barcode on the GS1 label (if any) of the received items.

Prefix
Defines the prefix of the generated batch number.

5.1.3.3. Batchnumber 2 on company

See the description of the Batch number 1 on company settings.

5.1.3.4. Batchnumber production company

Generates batch number for production based on format

Can the user change the batch number during production? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the production process.

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number.

Save changed batch on production order? (Y/N)
This option defines if the changed batch number needs to be saved on the production order or not.

The current sequential number
Field that holds the current sequential number.

The date format to reset sequential number
Defines the date format on what the sequential number will be reset. In the example above the sequential number fill be reset when the month changes.

The format
Defines the format of the generated batch numbers.

A tag starts with ‘[‘ and ends with ‘]’. Inside a tag the first part is the identifier of the type of value that needs to be entered. Next is a ‘:’ to split the identifier and the value of the identifier.

Possible tags in the format:

[Date:yyMMdd] or [D:yyMMdd]
Date: This will be replaced by the date format provided in the value of the identifier. All windows allowed formats are allowed. It will perform the method DateTime.ToString(string value) of Windows.

[DayOfYear:3] or [DY:3]
Date: This will be replaced by the day of year. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the day of year is 99, and value is 3, the processed value will be 099.

[L:2] or [Line:2]
Production line: This will be replaced by the name of the production line linked to the production order. The value indicates the length of the processed value. The system will take the first part of the production line name, until the required length.

[X:4]
Sequential number: This will be replaced by the sequential number. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the sequential number is 99, and value is 4, the processed value will be 0099.

The update date for sequential number
The last update date in the specified format. This is used to know when the sequential number needs to be reset.

Generates prefix-year-month-serial batch number for production XXXYYYYMMSSSSS

Can the user change the batch number during production? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the production process.

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number.

Save changed batch on production order? (Y/N)
This option defines if the changed batch number needs to be saved on the production order or not.

The current date
Field that holds the current date, based upon the defined date format below. i.e.: date format = yyyy, the current date will be 2013.

The current serial
Field that holds the current serial number.

The date format
Field that holds the date format, based upon this the current date is stored and calculated.

The length of the serial
Field that holds the length of the serial number.

The prefix
Field that holds the prefix of the batch number.

BatchNumberGeneratorProduction - Empty batch number

The user will have to enter the batch number manually.

Can the user change the batch number during production? (Y/N)
Option to whether or not the user will be able to change the batch number during the production process.

Save changed batch on production order? (Y/N)
This option defines if the changed batch number needs to be saved on the production order or not.

BatchNumberGeneratorProduction - Generates batch number

The format is: yy-[DayOfYear]-[ProductionOrderNumber]

Can the user change the batch number during production? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the production process.

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number.

Save changed batch on production order? (Y/N)
This option defines if the changed batch number needs to be saved on the production order or not.

5.1.3.5. Batchnumber generator for sales return

Generates batch number for sales return based on format

Can the user change the generated batch number? (Y/N)
Option to whether or not the user will be able to change the generated batch number during the production process.

The current sequential number
Field that holds the current serial number.

The date format to reset sequential number
Defines the date format on what the sequential number will be reset. In the example above the sequential number fill be reset when the month changes.

The format
Defines the format of the generated batch numbers.

A tag starts with ‘[‘ and ends with ‘]’. Inside a tag the first part is the identifier of the type of value that needs to be entered. Next is a ‘:’ to split the identifier and the value of the identifier.

Possible tags in the format:

  • [Date:yyMMdd] or [D:yyMMdd]
    Date: This will be replaced by the date format provided in the value of the identifier. All windows allowed formats are allowed. It will perform the method DateTime.ToString(string value) of Windows.
  • [DayOfYear:3] or [DY:3]
    Date: This will be replaced by the day of year. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the day of year is 99, and value is 3, the processed value will be 099.
  • [X:4]
    Sequential number: This will be replaced by the sequential number. The value indicates the minimum length the processed value should have. The fill character is ‘0’. So if the sequential number is 99, and value is 4, the processed value will be 0099.

The update date for sequential number
The last update date in the specified format. This is used to know when the sequential number needs to be reset.

5.1.3.6. Best before for production generator

Generates best before date for production

Can the user change the bbd number during production? (Y/N)
Option to whether or not the user will be able to change the generated best before date during the production process.

Can user change the date (Y,N)
Option to whether or not the user will be able to change the generated best before date.

Generate on every receipt
When enabled, the BBD will be calculated each time a production receipt is being added.

Save changed bbd on production order? (Y/N)
This option defines if the changed best before date needs to be saved on the production order or not.

5.1.3.7. Best before for reception generator

Default BBD generator for reception

Can the user change the generated best before date? (Y/N)
Option to whether or not the user will be able to change the generated best before date.

5.1.3.8. Barcode controller

GS1 Barcode

Captures barcodes according to GS1 standards.

Set AI(17) as AI(15) (Y/N)
If enabled, then when scanning a barcode containing an AI17 value, the AI17 value will be added as the best before date (AI 15).

B10 Automotive Barcode

Captures barcodes according to B10 standards. If the scanned value does not seem to be a B10 barcode, the scanned value is parsed through the GS1 barcode controller.
To be able to know the difference between a scanned barcode and manual entry, the barcode needs to be in Code39 format.
This means that the barcode needs to start with ]A0
Remark: The location barcodes cannot be in format Code39, otherwise locations that for instance start with Q, P, … would be considered a value for the B10

Q: Quantity - Stored in field for AI(37) Count (=int)
P: Part number - This is the item code
S: Serial number - Will be stored as SSCC
V: Supplier code

5.1.3.9. Cycle count controller

Controls the cycle counting

Allow to adjust quantity of current stock items?
If this option is enabled, and the option 'Show current stock items' is enabled, the Cycle Count flow will allow to select currect stock and adjust the quantity instead of performing a 'blind' count.

Allow to select account in case of perpetual inventory?
If this option is enabled, the accounts numbers need to be selected during the cycle count processing process if the option ‘Perpetual inventory’ is set.

Allow user to skip count
When performing cycle count during other operations, the user is allowed to skip the count.

Auto handle batch?
When this option is set, no batch needs to be entered in the cycle count process. The system will try to fill in the batch. If there is only 1 batch on the location, the system will take that batch. If there are multiple batches, the system will take the youngest batch. If no batch is on the location, the system will take the batch defined in the ‘Default batch on auto handle batch’.

Auto move SSCC
When an SSCC is counted on a location, it is possible that for the system it is stored on another location. These options set what actions should happen when this occurs:

  • No move
  • Ask user
  • Auto move

Option is available for type 'Lost and Found'

Auto select batch/BBD when monolot pallet
When cycle counting a monolot pallet (a pallet with only 1 item and lot number), the system will auto select the batch and BBD instead of the user that needs to fill it in.

Count after number of days
When a location has not been counted for the number of days defined here, the location needs to be counted. This setting is only used if on location level this setting is not set.
A zero means that this location will always have to be counted.

Count after number of operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. This setting is only used if the setting is not set on location level.
A zero means that this location will always have to be counted.

Count location when it becomes empty
Count the location if the used location becomes empty (count during other process)

Count type cycle count
The type of cycle count to use when doing cycle count.
Possible values:

  • ‘Lost and Found’: An actual theoretical location where differences are stored. This option will correct the stock on the counted location.
  • ‘Registration’: Differences are stored in a table. With this option the stock on the counted location remains the same until the count is processed.

Please note that differences for serial numbers will always use type 'Registration', regardless of the selected type.

Count type other operations
The type of cycle count to use when doing cycle count during other operations.
Possible values:

  • ‘Lost and Found’: An actual theoretical location where differences are stored. This option will correct the stock on the counted location.
  • ‘Registration’: Differences are stored in a table. With this option the stock on the counted location remains the same until the count is processed.

Please note that differences for serial numbers will always use type 'Registration', regardless of the selected type.

Default batch on auto handle batch
The batch number to use when there is no batch on the counted location, and if the ‘auto handle batch’ option is set to true.

Dummy serial number format
When using the lost & found method for cycle count, and processing the cycle count for lost serial numbers on release only, dummy serial numbers might need to be generated in order to be issued.
In this setting you can enter a fix part for all dummy serial numbers. Incrementing numbers will be appended to this value to generate unique dummy serial numbers.

Enter reason on direct cycle count?
Does the user need to enter a reason during direct cycle counting?

Enter reason when skipping count?
Does the user need to enter a reason when skipping a count? A count can only be skipped during other operations.

Manually set price on processing the count
This allows the user to enter the price that needs to be used when making the goods issue/receipt.
By default the new price will be the value from the column 'item cost'.
For catch weight items a price per weight can be entered.

Note: If the setting is enabled, settings Price List for Goods Issue and Price List for Goods Receipt are ignored for any price calculation.

Price list for goods issue
The price list to use when the cycle count needs to perform a goods issue. Possible values:

  • An SBO price list (OPLN.ListNum)
  • -1 for last purchase price
  • -2 for last evaluated price

Note: If setting Manually Set Price on Processing the Count is enabled, setting Price List for Goods Issue is ignored during any price calculation. In this case it is only used by the system to put the price list number on the header of Goods Issue documents.

Price list for goods receipt
The price list to use when the cycle count needs to perform a goods receipt. Possible values:

  • An SBO price list (OPLN.ListNum)
  • -1 for last purchase price
  • -2 for last evaluated price

Note: If setting Manually Set Price on Processing the Count is enabled, setting Price List for Goods Receipt is ignored during any price calculation. In this case it is only used by the system to put the price list number on the header of Goods Issue documents.

Propose default quantity on logistic unit
If set, the system will automatically fill in the default quantity on a logistic unit.

Registration: Store lines with no difference
If set, the system will also store lines in the registration table where the counted difference is zero. This option is only taken in account when the 'Count type' = Registration.

Show current stock items
If set, the system will show the current items in stock for the selected location when the counting starts.

Show differences during cycle count
After counting a location it is possible to show the differences between the counted items and the items in the system. This is shown on the device during cycle count.

Show differences during other operations
After counting a location during other operations, it is possible to show the differences between the counted items and the items in the system. This is shown on the device during cycle count.

5.1.3.10. Container management controller

Container management controller - Controls the containers

Allow to show purchase reserve invoices
If enabled, purchase invoices can be selected on the container management form.

Auto close container when delivered? (Y/N)
If enabled, the container will be closed when it is delivered.
If disabled, the container will be in status 'Delivered'.
This means that some fields can still be adjusted. Closing the container needs to be done through the Container management screen.

Color if values are in range
Defines the color the controls should get if the values are in range. If no maximum value is set, this color will also be used. This name needs to be a valid Windows color name.

Color if values are too high
Defines the color the controls should get if the values are higher than the ‘in range’ values. This name needs to be a valid Windows color name.

Color if values are too low
Defines the color the controls should get if the values are lower than the ‘in range’ values. This name needs to be a valid Windows color name.

Lead time in days between port and warehouse
The lead time in days between port and warehouse. This is used for the calculation of dates in the container management screen.

Lower threshold: price (%)
The lower threshold (in percentage) for the ‘in range’ values for the price.

Lower threshold: volume (%)
The lower threshold (in percentage) for the ‘in range’ values for the volume.

Lower threshold: weight (%)
The lower threshold (in percentage) for the ‘in range’ values for the weight.

Upper threshold: price (%)
The upper threshold (in percentage) for the ‘in range’ values for the price.

Upper threshold: volume (%)
The upper threshold (in percentage) for the ‘in range’ values for the volume.

Upper threshold: weight (%)
The upper threshold (in percentage) for the ‘in range’ values for the weight.

5.1.3.11. Document series controller

Default SAP Document series

5.1.3.12. Freight charges controller

Document price reference
The price to take in account for the freight charges

View name
The name of the view to use for calculation of the freight charges. The default value is: ‘PMX_FREIGHT_CHARGES’

Configuration of the freight charges is done on the UDT PMX_FCDE

5.1.3.13. Incoming payment generator

None

5.1.3.14. Inventory Controller

Inventory Controller – Controller for the inventory

View name - Detail
The view name that is used to show the inventory report for ‘Group by’ = Detail.
This means that the inventory report can be customized.
It is possible to ADD additional columns to this view.

Localization key - Detail
When the inventory report is called for ‘Group by’ = Detail, this translation key will be used.
There is the possibility to select one of the existing sortings.

Order by - Details
When the inventory report is called for ‘Group by’ = Detail, this sorting will be used on the query.
There is the possibility to select one of the existing sortings.
But it is also possible to just type text for the order by statement.

The text in the field will be added to the ORDER BY clause of the query.
There is no need to start the text with ORDER BY.

Possible values:

  • ItemCode ASC, InternalKey ASC: This will sort it on the item code, and next the row key of the inventory.
  • InternalKey ASC: This will sort based on the row key of the inventory.
  • StorLocCode ASC, ItemCode: This will sort on the storage location code and next on the item code.
5.1.3.15. Interface for PMX Advance Shipping Notice importer and exporter

IPmxAdvanceShippingNoticeInterface - Default (DEASINT)

Interface fow ANS importer and exporter

The CSV file
The CSV file is received from a supplier and from the file goods that will be received against purchase orders and purchase invoices can be imported to SAP B1 with the help of the Produmex Interfacing Tool.

The CSV file must contain 14 columns with predefined column names that can be present in any order (see the table below).

CSV Custom Header
If the supplier sets different column names in the header of the CSV file (for example Object Type instead of ObjType, Document Number instead of DocNum, etc.), the Interfacing Tool is not be able to match the columns to the correct fields. In this case the header of the CSV file is overwritten by the CSV Custom Header.

  • If the supplier lists the columns in an order different from the default order in the CSV Custom Header field, you can change the order of the columns in the field.
  • Note: While customizing the order of the columns in the CSV Custom Header field, make sure that you do not change the column names and do not remove any value from the field.
Column name (case sensitive)Description
ObjType The object type of the document, that is, it is either a purchase order or a purchase invoice.
DocNum The document number of the purchase order/purchase invoice.
LineNum The correct line of the item in the purchase order.
ItemCode The item code of the product.
Quantity The quantity of the item to be received.
SSCC The SSCC of the logistic unit.
MasterSSCC The SSCC number of the master logistic unit.
Batch The batch number of the product.
Batch2 The second batch number of the product.
BBD The best before date of the product.
SerialNumber The serial number of the product.
UF1 User information
UF2 User information
UF3 User information
5.1.3.16. Interface for PMX move order im-/export

IPmxMoveOrderInterface – Default

5.1.3.17. Interface for PMX move im-/export

IPmxMoveInterface – Default

5.1.3.18. Interface for PMX serial number im-/export

IPmxStockInterface - Pmx stock im-/exporter

5.1.3.19. Interface for stock QS change import

None

5.1.3.20. Interface for stock im-/export

None

5.1.3.21. Report mailer

IReportMailerInterface – Default

Default e-mail body file
Location of the email body

Default e-mail recipient
Default email recipient

Default e-mail send password
Default e-mail send password

Default e-mail send server
Default e-mail send server

Default e-mail send user name
Default e-mail send user name

Default e-mail sender
Default e-mail sender

5.1.3.22. Interface for SBO business partner im-/export

None

5.1.3.23. Interface for SBO goods issue im-/export

None

5.1.3.24. Interface for SBO goods receipt im-/export

None

5.1.3.25. Interface for sbo item master data im-/export

ISboItemMasterDataInterface – Default

5.1.3.26. Interface for SBO incoming payment im-/export

None

5.1.3.27. Interface for SBO purchase credit note im-/export

ISboPurchaseCreditNoteInterface – Default

5.1.3.28. Interface for SBO purchase delivery im-/export

ISboPurchaseDeliveryInterface – Default

5.1.3.29. Interface for SBO purchase invoice im-/export

ISboPurchaseInvoiceInterface – Default

5.1.3.30. Interface for SBO production issue im-/export

None

5.1.3.31. Interface for SBO production receipt im-/export

None

5.1.3.32. Interface for SBO purchase return im-/export

ISboPurchaseReturnInterface – Default

5.1.3.33. Interface for SBO purchase order im-/export

ISboPurchaseOrderInterface – Default

5.1.3.34. Interface for SBO sales credit note im-/export

ISboSalesCreditNoteInterface – Default

5.1.3.35. Interface for SBO sales delivery 2 im-/export

None

5.1.3.36. Interface for SBO sales delivery im-/export

ISboSalesDeliveryInterface – Default

5.1.3.37. Interface for SBO sales invoice im-/export

ISboSalesInvoiceInterface – Default

5.1.3.38. Interface for SBO sales return im-/export

ISboSalesReturnInterface – Default

5.1.3.39. Interface for SBO sales return 2 im-/export

None

5.1.3.40. Interface for SBO sales order im-/export

ISboSalesOrderInterface – Default

5.1.3.41. Interface for SBO warehouse transfer im-/export

None

5.1.3.42. Open Sales Orders Controller

OpenSalesOrderController - Controls the open sales orders

This shows all approved sales orders with active business partners and with open lines.

Fields to sort by in GUI
Define the field(s) the screen should be sorted on. The value to enter is adjustable.
However 2 predefined options can be chosen:

  • CardCode in Ascending order
  • DocDueDate, Cardcode both in Ascending order.

OpenSalesOrderController - Open sales orders that are in stock

Shows all approved sales orders with active business partners and with items that are in stock.

Fields to sort by in GUI
Define the field(s) the screen should be sorted on. The value to enter is adjustable.
However 2 predefined options can be chosen:

  • CardCode in Ascending order
  • DocDueDate, Cardcode both in Ascending order.

*This option will become obsolete. Please use the option Open sales orders with stock status*




OpenSalesOrderController - Open sales orders with stock status

Show all approved sales orders with active business partners and with items that are in stock. This will also check if partial deliveries are allowed.

Fields to sort by in GUI
Define the field(s) the screen should be sorted on. The value to enter is adjustable.
However 2 predefined options can be chosen:

  • CardCode in Ascending order
  • DocDueDate, Cardcode both in Ascending order.

Show undeliverable orders
When checked, the system will also show sales orders that cannot create a proposal, meaning all open orders are shown.




OpenSalesOrderController - Open sales orders controller custom

This contoller uses a view to show the data on the screen.
This means it is customizable what to show on the screen.

Localization key
This is the key that is used for the translation of the grid.

Order by
Define the field(s) the screen should be sorted on.

View name
The view can be customized, but the following fields are required:

  • ObjType
  • DocEntry
  • DocDueDate
  • PmxWhsCode
  • CardCode
5.1.3.43. Purchase delivery generator

Purchase delivery generator

Allow to enter reason on purchase delivery
This option enables you to enter a reason during reception on the handheld device. This option could be used for example to identify that there was no label found on the logistic unit and you want to record why the label was not scanned.

Allow to exceed ordered quantity?
If set to false, it will not be possible to receive more than what was ordered. This check is done on the scanner application.

Allow to select batch?
If this is set to true, the system will propose all batch numbers that are currently in stock for the item to receive. The user can still enter another batch number if he wants.

Ask user to print labels? (Y/N)
If this is set to true, during the reception flow the user will be asked if he wants to print labels or not.
When disabled, the system will not ask, and perform the printing as normal.

Auto reserve stock when purchase order is linked to sales order?
A purchase order can be linked to a sales order. If this setting is set to true, the system will lock the received stock for this sales order. So if a pick list is made for that sales order, the system will use the locked stock to pick. All quantities received will be locked, even if more quantity is received than what was on the purchase order.
When performing cross docking, this option should be checked, so the system will use the received items.

Auto select internal batch based on batch number?
If this is ticked, the system will not ask for an internal batch number if there is one found for the entered/scanned batch number.

Check data in UDF’s from PO line?
If this is ticked, the system will check if the correct data has been entered on the scanner.
If the data is incorrect, a warning will be shown. The possible data to check: Batch number, Batch number 2, Best before date, Serial number.
On the scanner the selection of the item to receive will now be done based on PO line, instead of grouping it on item.

Cross-docking pick list type
For cross docking, the received goods will be delivered immediately based on the linked sales order of the purchase order. To do this, a pick list will be generated. To have a distinction between pick lists that are created for cross-docking, you can provide a pick list type.

Group purchase delivery (Y/N)
During the reception, it is possible to receive stock based on multiple purchase orders for the same vendor.

  • If this setting is enabled, only one Goods Receipt PO document is created for those purchase orders.
  • If this setting is disabled, a separate Goods Receipt PO documents are created for each purchase order.

Purchase line remarks view name
The view to be used to get the line remarks that need to be shown on the scanner.
This view needs at least these columns:

  • ObjType
  • DocEntry
  • LineNum
  • ItemCode

The view can return multiple rows/columns for the same document.
The screen to show the remarks will then show the data in multiple rows/columns.

Receive all items in one purchase delivery?
If set to true, the system will try to make 1 purchase delivery for all the entered data on reception. So at reception the user needs to fill in all the data for each logistic unit. After all data has been entered the system will create the purchase delivery. Because the logistic labels need to be printed after the data has been entered for each logistic unit, the printed label is not based on the actual stock in the system. So if some logistic units have been printed, but for some reason there was an error while creating the purchase delivery, the labels will not correspond to stock in the system. The user will need to enter the data again to create the purchase delivery. But now he can use the already printed labels to enter the data.
If set to false, a purchase delivery is made for each logistic unit.

Receive on location instead of dock?
By default Produmex will receive the goods on the selected dock. But it is possible to let the user identify another location. In this case the items are stored directly on the warehouse location, and no put away is created.

Remarks view name
The view to be used to get the remarks that need to be shown on the scanner.
This view needs at least these columns:

  • ObjType
  • DocEntry

The view can return multiple rows/columns for the same document.
The screen to show the remarks will then show the data in multiple rows/columns.

Show reserve invoices for purchase order selection?
When set to true, purchase reserve invoices are also shown in the selection of the purchase orders on the thin client.

Split received quantity into logistic units of default size (Y/N)
If enabled, the received quantity is automatically split into multiple logistic units based on the ‘Default quantity on logistical unit’ setting of the item.

Take the rate of the base document?
By default SAP uses the current exchange rate. If this setting is set to true, Produmex will use the exchange rate defined on the purchase order instead of the current exchange rate.

5.1.3.44. Pick List Controller

Pick List Controller - Controls the Pick List

Ad Hoc Picking

Ad Hoc Picking

Route picking: pick list order by
The sorting of pick lists in case of Ad Hoc Picking task Route.
From the drop-down menu the following options can be selected:

  • Order by priority, due date and doc entry
  • Order by sequence on route: forward
  • Order by sequence on route: reverse

Ad hoc picking: Keep picking the same item
If the setting is enabled, the system keeps asking to pick the selected item until everything is picked for that item.
If the setting is disabled, after picking an item, the system goes to the Select a Product screen so that the picking can be started for another item.

Ad hoc: Auto fill pick quantity
If the setting is enabled, the quantity to pick is displayed in the quantity input field of the Enter the Quantity screen. If the setting is disabled, the displayed quantity is 1.

Note: If the quantity to pick is below 1, the displayed quantity in the quantity input field is the maximum quantity to pick. (The maximum quantity is indicated under the quantity input field).

Ad hoc: Force to scan SSCC
If the setting is enabled, an SSCC must be scanned when performing item picking.

Allow ad hoc picking from bulk locations
If the setting is enabled, items can be picked from non-pick locations as well.

Allow confirmation that all goods were picked
If the setting is enabled, at the end of the picking process a confirmation message is displayed that all the items are picked.

Auto move SSCC on a customer-collected related move
If the setting is enabled, the SSCC is automatically moved to the dock in case of Ad Hoc Picking task Customer Collect. If the setting is disabled, the system asks if the SSCC needs to be moved.

Choose dock on ad hoc picking
The setting is valid for Ad Hoc Picking tasks Route and Pick List. If it is enabled, you can select a dock where you will pick to. The selected dock is then saved on the route/pick list.

Express Ad Hoc Picking
If the setting is enabled, during Ad Hoc Picking task Pick List, step Scan SSCC / Location is skipped after selecting a product. Instead, after the Select a Product screen the Enter the Quantity screen is immediately displayed.

Reason requirements when skipping first location
The Ad Hoc Picking flow suggests a number of locations where the picking can be performed and the locations are sorted in a way that the first location is the best location to pick the items from. (Docks are not considered first locations.) If you want to pick from another location, this setting defines if a reason for skipping the first location is needed.

The following options can be selected from the drop-down menu:

  • No reason
  • Requires user-entered reason text: Free text, entered by user, minimum 10 characters
  • Requires a reason to be selected from a list on the scanner

Function/SP name to get the locations
The setting refers to the function/stored procedure that is used to get the locations for Ad Hoc Picking.

Input parameters on SQL:

  • @pmxWhsCode
  • @itemCode
  • @batchToPick
  • @separator
  • @pickListDocEntry

The input parameters can be checked in standard function PMX_FN_GetAllLocationsForItemForAdHocPicking.

Input parameters on HANA:

  • p_pmxWhsCode
  • p_separator
  • p_pickListDocEntry

The input parameters can be checked in standard SP PMX_SP_GetAllLocationsForItemForAdHocPickingInTmp.

Function/SP name to get the location sequence
The setting refers to the function/stored procedure that is used to get the sequence of the locations.

Input parameters on SQL:

  • @pmxWhsCode nvarchar
  • @itemCode nvarchar
  • @batchToPick nvarchar

The input parameters can be checked in standard function PMX_FN_GetFirstSequenceForLocationsForItemForAdHocPicking.

Input parameters on HANA:

  • p_pmxWhsCode nvarchar
  • p_pickListDocEntry

The input parameters can be checked in standard SP PMX_SP_GetFirstSequenceForLocationsForItemForAdHocPicking.

View name to get the products
With the setting a separate view can be provided to get the products to be picked. Mandatory columns to be listed for a view:

  • DocEntry
  • PmxWhsCode
  • ProductCode
  • ProductDescription
  • ManBtchNum
  • HasBestBefore
  • GTIN
  • DefaultLocationCode
  • BaseLine
  • BaseEntry
  • LocationCodes
  • Sequence
  • batchToPick
  • StillToPick
  • QuantityPerUom

If no value is entered, the system executes the standard query.

General

Allow multiple customers on SSCC?
If set to true, the system will allow to put stock for multiple customers/delivery addresses on the same SSCC. This means that when you have a wave for multiple customers, the user is not forced to pick on a moveable location and going through the pack station.

Allow to create master SSCC (Y/N)
If enabled, a master SSCC can be created. A master SSCC is a single logistic unit that contains multiple sub-logistic units.

Auto fill quantity for packaging types?
If set to true, the quantity to pick will be automatically entered instead of a zero.

Copy non-inventory items to reserve invoice?
If set to true, the system will copy non-inventory items to the reserve invoice when creating reserve invoices from pick lists.

Disable selection of items? (Y/N)
If set to true, it will not be possible to select items on flows. The user will always have to scan a barcode for the item selection.

Force the user to pick full pallet? (Y/N)
Allows to define whether or not the user will be forced to pick a full pallet of items that contains the same or a lower quantity than the quantity that has to be picked for the pick list. Example: if a quantity of 60 has to be picked, and if a full pallet of 40 that answers the best before date and batch number criteria is available, this full pallet will be selected by the system for picking.
Picking will occur by scanning the SSCC. The quantity will not be asked. The SSCC will remain the same as the original SSCC.
If this is set to false, the user will need to pick it as ‘item picking’.

Please note that this setting does not apply when assigning stock to the pick list!
This setting is only used AFTER the stock is assigned to the pick list, and the user is going to pick the stock on the scanner.

Make picklist ready before print? (Y/N)
The ‘Make pick list ready’ functionality allocates stock on location level to the pick list. So if a pick list report needs to have the locations filled in, this option should be enabled.

Only pick items on location on same or lower level as dock? (Y/N)
If set to true, the system will only create a pick list for items it can find on storage location defined on the same or lower level as the dock selected on the pick list proposal. The levels are defined by the zones those locations are in.

Time to show ‘item is picked’ message?
The number of seconds the ‘item is picked’ message is shown on the scanner:
Possible values:

  • Negative values: The message is not shown.
  • Value 0: The message will remain visible until the user clicks the ‘OK’ button
  • Positive values: The message will remain visible for the entered number of seconds.

Create replenishment orders after picking? (Y/N)
If enabled, a replenishment order is generated after the picking is completed for the source location, if the following conditions are met:

  • The location can be replenished
  • There is a minimum quantity set for a picked item
  • The stock for item on the location reaches the minimum quantity

The replenishment after picking is supported in the following flows:

  • Picking
  • Zone picking
  • Multi picking
  • Ad hoc picking

For the item based replenishment generator, system will try to create replenishment orders for all locations. The default replenishment generator will only try to create replenishment orders for the locations where goods were picked from.

JOIN-sql for custom wave description for scanner
If the ‘Custom wave description fields for scanner’ option contains fields that are not used in the default query, the user needs to define the JOIN query here.
This option cannot be used for pick list for production.

Custom wave description fields for scanner
Here the user has the possibility to enter a custom wave description that will be shown on the scanner. This text will be added to the select statement to select the waves on the Picking flow.
If the fields in the description are not on tables used by the default query, the option ‘JOIN-sql for custom wave description for scanner’ need to have the correct join to the table.
The standard available tables are:

  • ORDR
  • OUSR
  • PMX_OSEL
  • PMX_OSWA
  • PMX_PLHE
  • PMX_PLLI
  • PMX_PLPL
  • PMX_WAVE
  • PMX_WALO (Zone picking only)

Make sure the selected fields are casted to nvarchar if required. To add the PMX_PLHE.PickPackRemarks field for example, fill this in the input box : CAST(“PMX_PLHE”.“PickPackRemarks” as nvarchar (2000))
This option cannot be used for pick list for production.

MultiPicking

Multi picking: Set movable location at start of picking? (Y/N)
When this is enabled, then during multi picking all the movable locations need to be assigned to a pick list before starting to perform the picking.
If disabled the movable location is asked when the first item of a certain pick list is picked.

Multi picking: Allow to select wave? (Y/N)
When this is enabled, then during multi picking the user can select the wave instead of scanning a pick list.

All, except Ad hoc picking

All, except Ad hoc picking

Ad hoc alternate item? (Y/N)
If this is set to false, the system will show a list of alternate items to choose from.
If this is set to true, the system will allow the user to enter any data when performing alternate picking, and the system will check if the entered data is allowed.

Allow cycle count on alternate picking? (Y/N)
If this option is enabled, the user has the possibility to perform a cycle count on the original pick location in case of alternate picking form a different location.

Allow to identify the SSCC to pick on?
If set to true, the system will allow the user to scan an SSCC number he wants to use to put the picked stock on.

Allow to select the item to pick?
Enables the option to select an item to pick instead of letting the system choose the first item.

Alternate: Show locked quantity for current line? (Y/N)
When this is checked, the system will also show the item that was locked for the current pick list line in the list of alternate items.

Auto fill quantity (No packaging types)? (Y/N)
If set to true, the quantity to pick will be automatically entered.
If set to false, the quantity to pick will be zero. And in case a barcode was scanned in the item identification screen, the quantity will be 1, because there was already an item scanned.
This is for items without packaging types.

Auto select batch/BBD on picking?
Enables the option to automatically select a Batch/BBD.

Auto select the wave?
If set to true, the system will select the wave. If set to false, the user can select the wave he wants to pick.
Please note: This settings does not apply in the 'Multi picking' flow.

Auto selection of moveable location during picking? (Y/N)
If set to true, the system will automatically select the moveable location. But this is only when there is 1 available moveable location. In case of full pallets, no moveable location will be used.

Can the user pick bulk quantity from bulk location? (Y/N)
If ticked the user can pick bulk quantities defined on the item master data from bulk locations.

Can the user pick full pallet from bulk location? (Y/N)
Normally bulk locations are not considered when allocating stock to a pick list. However this flag makes it possible that full monolot pallets at bulk locations (containing items that match the best before date and batch number criteria) can be picked by the operator.
The sorting of the stock to use depends on this setting and the option ‘Must user first pick full pallet from bulk’.
More information at: Pick list.

Consolidate items to pick?
If set to true, items that have the same Batchnumber/BBD/Quality status/Location/… will be picked in one action, instead of a pick action by pick list line.
This option is used in ‘Picking’ and ‘Zone picking’ flow.

Copy batch number when selecting alternate item? (Y/N)
When the user wants to select an alternate batch, does the system need to copy the original batch number from the pick list?
Remark: If on the base document line a batch number is set, the batch will always be copied when selecting alternate items.

Force first available batch on selecting alternate item? (Y/N)
This setting refers to the process of selecting alternate stock on the fat client during a picking flow and it is based on FEFO (first expired, first out).
If it is set to true, you can select an item only from the batch with the earliest expiry date that is according to the shelf-life.
This option cannot be used in combination with Ad hoc alternate item? (Y/N). If that setting is enabled, the Force first available batch on selecting alternate item? (Y/N) setting is ignored.

Item picking: Force user to scan SSCC when stock is on SSCC? (Y/N)
When this setting is enabled, the user will have to scan the SSCC if the stock he is picking is on an SSCC.
This setting refers to 'Item picking' and not full pallet picking.
It will show an additional screen to scan the SSCC before proceeding to selection of batch, or entering the quantity.

Must the user first pick full pallet from bulk location? (Y/N)
Normally bulk locations are not considered when allocating stock to a pick list. However this flag makes it possible that full monolot pallets at bulk locations (containing items that match the best before date and batch number criteria) can be picked by the operator.
This option forces to first take full pallets from a bulk location before using pick locations.
The sorting of the stock to use depends on this setting and the option ‘Can user pick full pallet from bulk’.
More information at: Pick list.

Skip screen to identify the pick location? (Y/N)
When this is enabled, the user does not need to identify the pick location.
Users can immediately identify the item to pick. (The pick location is visible in that screen)

Stock order by
Custom 'ORDER BY' clause for when the pick list is allocating stock to the pick list line.
This is not applicable for ad hoc picking
It adds the value to the ORDER BY clause of the query to get the stock. The text 'ORDER BY' does not need to be added to the value.
Any text can be entered here, however there are 2 predefined options:

  • *DEFAULT*
    • This option will use the sorting as it is currently in the system
  • *BIGGEST PALLET FIRST*
    • The pallet with the biggest quantity will be assigned first.

If there are 2 pallets with the same quantity, the oldest LUID will be taken first.
When stock is not on an SSCC, the quantity not on an SSCC is still regarded as if it would be on an SSCC, and it will be used first in case of equal quantity.

  • “Quantity”, “IsPickLoc” DESC, “LogUnitIdentKey_IsNull” DESC, “LogUnitIdentKey”, “InternalKey”
    • This option will take lowest quantity, pick location, no LUID, LUID

For more information please see: 1.2. Stock order by.

Wave order by
Sorting of waves on the picking flows
Options:

  • Order by Priority, due date, wave key
  • Order by due date, priority, wave key

Only pick on 1 SSCC? (Y/N)
If enabled, the system will auto select an SSCC when there was already an SSCC created for the wave. This is useful for when users need to go out of the picking flow, and continue at a later time.

Pick items order by
How are the items to pick sorted on the scanner?
Options:

  • Order by Full LUID, sequence, no location: First full pallet, then the sequence of the location, then all lines without a location.
  • Order by Full LUID, picked item, location code: First full pallets, then picked items, then location code. This means that when ItemA and ItemB needs to be item-picked on several locations, the system will first pick all quantities of ItemA, regardless of where it is stored. (Full pallets are still picked first)
  • Order by Sequence, Location code, Full LUID, : First Sequence of the location, then the code of the location, then full pallets.
  • Order by Custom stored procedure: The sorting is based on a custom SP.

It uses the SP defined in the setting below.

Pick items order by - Stored procedure name
The name of the stored procedure that is used for the custom order by.
Used for the picking and zone picking flow.
The input of this stored procedure is the wave key. SQL: @waveKey, HANA: p_waveKey
This SP needs to be in the extra DB.
If this SP does not return all line numbers to pick, the system will still add those lines to be picked, but in the order:

  • Order by Full LUID, sequence, no location.

Packing

Packing

Time to show pick/pack remarks on packing?
The number of seconds the pick/pack remarks are shown in a popup window in the packaging client:
Possible values:

  • Negative values: The message is not shown.
  • Value 0: The message will remain visible until the user clicks the ‘OK’ button
  • Positive values: The message will remain visible for the entered number of seconds.

Picking

Picking

Picking: Make pick list ready for selected line? (Y/N)
If enabled, the status of the pick list lines remain ‘Not Ready’ and the system does not allocate stock to them up until the user selects the item on the scanner. This setting is used only in the Picking flow.

Picking: Keep picking same location (Y/N)
When this is set to true, the system will not ask the user to identify the pick location again when the next item to pick is in the same location.

Picking/Multi-picking

Picking/Multi-picking

Select wave – View name
For the picking and multi-picking flows, it is possible to define a customized view which filters the list of waves to be displayed on your scanner when you have the option of selecting a wave.
It is optional to provide a view name to the field . If you do not need a customized view, you can leave the field empty and the system will use its own query.

Mandatory fields:

  • InternalKey
  • InternalKeyAsString
  • DueDate
  • Description
  • Priority
  • SameDelivery
  • PmxWhsCode
  • ItemLabelsPrinted
  • LockedBy
  • USER_CODE
  • U_UseForPicking
  • U_UseForMultiPicking

Example view query:

SELECT "PMX_WAVE"."InternalKey" AS "InternalKey", CAST("PMX_WAVE"."InternalKey" AS NVARCHAR) AS "InternalKeyAsString", "PMX_WAVE"."DueDate" AS "DueDate", 
 "PMX_WAVE"."Description" AS "Description", "PMX_WAVE"."Priority", "PMX_WAVE"."SameDelivery", "PMX_OSEL"."PmxWhsCode", "PMX_WAVE"."ItemLabelsPrinted"
 ,"PMX_WAVE"."LockedBy", "OUSR"."USER_CODE", MAX("U_UseForPicking") AS 'U_UseForPicking', 
MAX("U_UseForMultiPicking") AS 'U_UseForMultiPicking'
 FROM "PMX_WAVE"  WITH (NOLOCK)
 INNER JOIN "PMX_PLHE"  WITH (NOLOCK) ON "PMX_WAVE"."InternalKey" = "PMX_PLHE"."WaveKey"
 INNER JOIN "PMX_OSEL"  WITH (NOLOCK) ON "PMX_OSEL"."Code" = "PMX_PLHE"."DestStorLocCode"
 LEFT JOIN "@PMX_PLTY"  WITH (NOLOCK) ON "PMX_PLHE"."PickListType" = "@PMX_PLTY"."Code"
 LEFT JOIN "OUSR"  WITH (NOLOCK) ON "PMX_WAVE"."LockedBy" = "OUSR"."INTERNAL_K"
 LEFT JOIN (  "PMX_PLLI"  WITH (NOLOCK)
    INNER JOIN "PMX_PLPL" WITH (NOLOCK) ON "PMX_PLPL"."DocEntry" = "PMX_PLLI"."BaseEntry" AND "PMX_PLPL"."LineNum" = "PMX_PLLI"."BaseLine" AND "PMX_PLLI"."BaseType" = N'PMX_PLPH'
    LEFT JOIN "PMX_OSWA" WITH (NOLOCK) ON "PMX_OSWA"."Code" = "PMX_PLLI"."StorLocCode"
 ) ON "PMX_PLLI"."DocEntry" = "PMX_PLHE"."DocEntry" AND "PMX_OSWA"."Code" IS NULL
  AND "PMX_PLLI"."PickListLineStatus" IN ('N','R')
 
 
 WHERE "PMX_WAVE"."InternalKey" 
 IN  ( SELECT DISTINCT "PMX_PLHE"."WaveKey" FROM "PMX_PLHE" WITH (NOLOCK) WHERE "PickListStatus" IN ('N' , 'R' , 'A' , 'I' ))
 AND "IsCustomerCollect" = N'N' AND "PMX_PLLI"."InvLockLevel" <> 'N' 
 AND "PMX_PLHE"."PickObjType" IN (N'Sales', N'WhsTransfer') 
 
 GROUP BY "PMX_WAVE"."LockedBy", "PMX_WAVE"."Priority", "PMX_WAVE"."DueDate", "PMX_WAVE"."InternalKey", "PMX_WAVE"."Description", "PMX_WAVE"."SameDelivery", "PMX_WAVE"."ItemLabelsPrinted", "PMX_OSEL"."PmxWhsCode", "OUSR"."USER_CODE"

Prepare carts

Prepare carts

Wave – View name
This view defines the waves to be displayed on the screen of the fat client.
The default view is PMX_PREPARE_CARTS_WAVE. It lists all the waves which involves a pick list type that can be used for multi-picking and to which no movable location has been assigned yet.

Mandatory fields to be provided:
1.WaveKey
2.Priority
3.WaveDescription

Wave – Order by
This setting defines the order by which the waves are displayed on the screen of the fat client.

Pick list – Order by
This setting defines the order by which the pick lists are displayed on the screen of the fat client.

Zone picking

Zone picking

Lock wave by zone/user (Zone picking)
If this is set to true, the system will lock all items to pick on the zone for the current user instead of only locking the item/zone he is picking from.
This is used in the ‘Zone picking’ flow.

Only show completely unlocked waves in case of zone picking?
If set to true, the user can only see wave that have no locking for a user on it. This is used in the ‘Zone picking’ flow.

5.1.3.45. Pick List Proposal generator

PickListProposalGenerator - Generates picklist proposals

Add empty rows for items with insufficient stock? (Y/N)
If set, the system will add rows with quantity = 0 to the proposal when there is no stock available. This can be used to quickly see if all stock is available.

Add empty rows for items with quantity to reserve zero? (Y/N)
If set, the system will add rows with quantity = 0 to the proposal when there is nothing to reserve. This can be used to quickly see if all stock is available. Useful in custom proposal generator.

Allow broken-up (incomplete) sales-item BOM's? (Y/N)
If set, the system will not add components from a BOM when there is one or more component missing. The check is done based on the original BOM.

Base document - order by
When proposals are made, it is possible to do this for several orders in one time.
The system will group them by customer, ship to, and pick list type and item pick list types.
This option is to sort those orders within the same group.
Options:

  • Order by doc due date,
  • Order by line delivery date, doc entry,
  • Order by doc entry

Calculate stock status for expired stock (=slower creation)? (Y/N)
For a new database, the default value is set to No.
For existing databases where Produmex WMS is already installed, the default is set to Yes. It means that the system calculates the stock status for expired stock and will display the data in the Full stock and Stock compliant shelf life on the Pick List Proposal screen.
If it is set to No, the stock status is not calculated. As a result, no data will be displayed in in the Full stock and Stock compliant shelf life on the Pick List Proposal screen.

Force the proposed batch? (Y/N)
When this option is set to true, the batch the system proposes will be forced. This is used on ad hoc picking, in combination with the option ‘Allow multiple batches’ on a document line. When both are true, ad hoc picking can only pick from that batch, instead of any batch.

Serial numbers stock order by
This option handles what stock should be taken first to put on the proposal, for serial numbered items with track location.
Options:

  • Use default order by
    The sorting of stock to allocate for serial numbered items with track location is the one defined in the “Stock order by” option.
  • Order by serial numbers (alphanumerical)
    The sorting of stock to allocate for serial numbered items with track location is: Oldest serial number found on LUID (serial numbers are sorted alphanumerically). The allocation is done on item-batch-LUID level.

Show pick list proposal info screen on incomplete proposal? (Y/N)
When this option is set to true, an additional screen will be shown after creating a proposal, and not all stock is on the pick list proposal.
The screen will show the information why not all stock was on a proposal.

Show proposals with pick lists on open doc. report? (Y/N)
When this option is set to false, the open documents report for pick list proposals will not show proposals that have already a pick list.

Stock order by
This option handles what stock should be taken first to put on the proposal.
Options:

  • Order by FEFO on a pick location
    The sorting of stock to allocate is: Expiry date, Batch number, batchnumber2. The allocation is done on item-batch level.
  • Order by FEFO ITRI on a pick location
    The sorting of stock to allocate is: Expiry date, Batch ID. The allocation is done on item-batch level.
  • Order by LUID
    The sorting of stock to allocate is: Has LUID, LUID, Expiry date, Batch number, batchnumber2.
    The allocation is done on item-batch-LUID level.
  • Order by Bulk, Full LUID, LUID, BBD, Itri
    The sorting of stock to allocate is: Non Pick location, Is full pallet, Has LUID, LUID, Expiry date, Itri.
    The allocation is done on item-batch-LUID level.
  • Order by Bulk, Full LUID, BBD, Itri, LUID
    The sorting of stock to allocate is: Non Pick location, Is full pallet, Expiry date, Itri, Has LUID, LUID.
    The allocation is done on item-batch-LUID level.

Try to group items on 1 proposal
When this is checked the system will try to group the items on 1 proposal. This means that each time a proposal is being made, it will try to close the existing one (If no pick list has been created yet), and create a new one for all remaining items.
When this is not checked, the system will always try to create a new proposal.




PickListProposalGenerator - Generates picklist proposals grouped by customer-address

If multiple sales orders are selected for the same customer/address, they will be grouped into 1 proposal.

Add empty rows for items with insufficient stock? (Y/N)
If set, the system will add rows with quantity = 0 to the proposal when there is not enough stock available. This can be used to quickly see if all stock is available.

Add empty rows for items with quantity to reserve zero? (Y/N)
If set, the system will add rows with quantity = 0 to the proposal when there is nothing to reserve. This can be used to quickly see if all stock is available.

Allow broken-up (incomplete) sales-item BOM's? (Y/N)
If set, the system will not add components from a BOM when there is one or more component missing.

Base document - order by
When proposals are made, it is possible to do this for several orders in one time.
This option is to sort those orders.
Options:

  • Order by doc due date,
  • Order by line delivery date, doc entry,
  • Order by doc entry

Calculate stock status for expired stock (=slower creation)? (Y/N)
For a new database, the default value is set to No.
For existing databases where Produmex WMS is already installed, the default is set to Yes. It means that the system calculates the stock status for expired stock and will display the data in the columns Full stock and Stock compliant shelf life on the Pick List Proposal screen.
If it is set to No, the stock status is not calculated. As a result, no data will be displayed in columns Full stock and Stock compliant shelf life on the Pick List Proposal screen.

Force the proposed batch? (Y/N)
When this option is set to true, the batch the system proposes will be forced. This is used on ad hoc picking, in combination with the option ‘Allow multiple batches’ on a document line. When both are true, ad hoc picking can only pick from that batch, instead of any batch.

Serial numbers stock order by
This option handles what stock should be taken first to put on the proposal, for serial numbered items with track location.
Options:

  • Use default order by
    The sorting of stock to allocate for serial numbered items with track location is the one defined in the “Stock order by” option.
  • Order by serial numbers (alphanumerical)
    The sorting of stock to allocate for serial numbered items with track location is: Oldest serial number found on LUID (serial numbers are sorted alphanumerically). The allocation is done on item-batch-LUID level.

Show pick list proposal info screen on incomplete proposal? (Y/N)
When this option is set to true, an additional screen will be shown after creating a proposal, and not all stock is on the pick list proposal.
The screen will show the information why not all stock was on a proposal.

Show proposals with pick lists on open doc. report? (Y/N)
When this option is set to false, the open documents report for pick list proposals will not show proposals that have already a pick list.

Stock order by
This option handles what stock should be taken first to put on the proposal.
Options:

  • Order by FEFO on a pick location
    The sorting of stock to allocate is: Expiry date, Batch number, batchnumber2.
    The allocation is done on item-batch level.
  • Order by FEFO ITRI on a pick location
    The sorting of stock to allocate is: Expiry date, Batch ID. The allocation is done on item-batch level.
  • Order by LUID The sorting of stock to allocate is: Has LUID, LUID, Expiry date, Batch number, batchnumber2.
    The allocation is done on item-batch-LUID level.
  • Order by Bulk, Full LUID, LUID, BBD, Itri
    The sorting of stock to allocate is: Non Pick location, Is full pallet, Has LUID, LUID, Expiry date, Itri.
    The allocation is done on item-batch-LUID level.
  • Order by Bulk, Full LUID, BBD, Itri, LUID
    The sorting of stock to allocate is: Non Pick location, Is full pallet, Expiry date, Itri, Has LUID, LUID.
    The allocation is done on item-batch-LUID level.

Try to group items on 1 proposal
When this is checked the system will try to group the items on 1 proposal. This means that each time a proposal is being made, it will try to close the existing one (If no pick list has been created yet), and create a new one for all remaining items.
When this is not checked, the system will always try to create a new proposal.

5.1.3.46. Pick list robot

Default pick list robot (PLRBTCTR)

Pick lists

Create pick lists? (Y/N)
If set, the system will try to create pick lists.

Order by
The ORDER BY clause that is used in combination with the view.

View name
The view name that will be used to create the pick lists. Required fields:

  • DocEntry (Of the proposal)
  • CardCode
  • PmxWhsCode

Proposals

Create proposals? (Y/N)
If set, the system will try to create pick list proposals.

Order by
The ORDER BY clause that is used in combination with the view.

View name
The view name that will be used to create the pick list proposals. Required fields:

  • ObjType
  • DocEntry
  • PmxWhsCode
  • CardCode

Waves

Group waves? (Y/N)
If set, the system will try to group pick lists into waves.

View name
The view name that will be used to group pick lists. The logic to group pick lists into waves is based on the column 'Grouping'. All rows with the same data in the field 'Grouping' will be grouped into 1 wave. The standard view will group all pick lists for the same customer and delivery address into the same wave. Pick lists that have been started picking will not be adjusted anymore, so the pick lists will not be added to another wave, even if they have the same customer/delivery address. Required fields:

  • DocEntry
  • WaveKey
  • PickListStatus
  • CardCode
  • PmxWhsCode
  • Grouping
5.1.3.47. Picking for production controller

IPickingForProductionController - Controles the picking for production

Allow continuous picking for production
If set, the system will allow to pick production order lines, even if full quantity has been picked.

Picking order by
Select the sorting of the items to propose when performing picking for production.
This option is used when no proposals are created for production (FEFO = BBD, BatchNumber, BatchNumber2)
Options:

  • FEFO_LUID_PickProduction: Order by FEFO, Non pick location, LUID, no LUID
  • LUID_PickProduction: Order by LUID, No LUID, Non pick location, FEFO
  • FEFO_FullPallet_PickProduction: Order by FEFO, Non pick location, Full LUID, LUID, no LUID
  • FEFO_PickProduction: Order by FEFO, Non pick location, no LUID, LUID

Create proposal for picking
If set, the system will create pick lists for the production orders. This will lock stock for this pick list (proposal). If ticked you can create proposals and pick lists for production orders with the same functionality as the pick lists for sales.

Force all ingredients to be on a proposal before creating a pick list?
If set, the system will check that all ingredients on of the production orders are available on an open proposal.
If not, a pick list cannot be created.

5.1.3.48. Production controller

IProductionController - Controls production orders

Allow starting production order on production receipt flow? (Y/N)
The normal process using the production manager, is to start the production order on the production manager. On the production receipt flow, only started production orders are shown.
If this is set to true, the user will be able to start the production order on the production receipt flow. If there are locations that need to be lined up, the system will only line them up if on the item master data the option to auto line up has been set. Otherwise the lined up locations will need to be set on the production manager.

Allow to move stock to prod. line from rest location? (Y/N)
By default the stock is moved from the input to the production line. By setting this option to true, the user can also move stock from the rest location to the production line.

Auto fill consumed qty from prepared qty on stop production? (Y/N)
This option is used in the production flow with immediate consumption. If components have been prepared (Weighed, …) and it is not for the theoretical quantity, but within the tolerance, the system will fill in the prepared quantity, instead of the theoretical quantity.

Auto move all linked items to BOM? (Y/N)
If this is set to true, all items that are on the production order line will be moved from the input location to the production line when selecting the production order on the device. This will move all quantities for those items.

Automatically close production orders on completion? (Y/N)
If this is set to true, the production order will be closed when all planned quantity for the production order has been reached.
This is used in the ProductionFlow and ProductionReceiptFlow.

Confirm produced quantity after production? (Y/N)
If this is set to true, the user will need to confirm the quantity he has entered to produce if it deviates from the allowed quantity (See item master data configuration). The system will show the product description + quantity on the screen to confirm.

Hide move all item buttons? (Y/N)
If this option is enabled, when adding the items to use in the production client, there is only the possibility of ‘Move an item’ instead of ‘move an item’, move all items linked to the production order’ and ‘move all items’.

Skip consumption screen on flow for linked components?
If this is set to true, all screens for consumption on the production flow for items that are prepared (Weighed, …) will be skipped.

Split produced quantity into logistic units of default size
If this is set to true, the system will create a number of logistic units, based on the default quantity defined on the item master data. If the default quantity for production is set, the system will take that quantity, otherwise the default quantity is used.

Use waste? (Y/N)
When producing, it is possible to enter waste quantities. When set to true, the user will be able to set waste quantities when producing according to ‘Production with immediate consumption’.

Allow waste to be editable when finishing production on production manager?
If this is set to true, the user will be able to also edit the columns for the waste quantity.
This option is used on the production manager.

Print labels for open partial weighing when doing ‘Complete weighing’
When there is still open quantity and the user presses ‘Complete weighing’, do labels need to be printed?
Options:

  • Yes
  • No
  • Ask

Proceed with current production order after entering quantity on prod. receipt flow?
The user can proceed with the current production order on the production receipt flow when this option is enabled.
When this option is enabled, the production flow will go to the screen to enter quantity/serial numbers after a logistic unit has been created instead of going to the selection of production order screen.

Stock row limitation on stop PRD (PRD manager)
The number of rows shown for used stock when stopping the production on the production manager can be limited. When putting a negative number here, the system will show all rows.

5.1.3.49. QS reception contr. on company

IQualityStatusReceptionController - Gets the quality status for reception

When receiving, the default quality status defined for the supplier on the Produmex Purchase tab of the Item Master Data is used.

If there is no quality status set for the supplier, the default quality status defined on the Produmex Purchase tab of the Item Master Data is used.

If on the item there is no default quality status set, the default quality status on company level is used. (Produmex Organizational Structure → Company → Tabpage ‘Defaults’).

IQualityStatusReceptionController - Gets the quality status for reception by batch

This controller is more complex. The system will first check the batch that is being received. If this batch is not present in the system, the default quality status defined on the item is used. If on the item there is no default quality status set, the default quality status on company level (Produmex Organizational Structure → Company → Tabpage ‘Defaults’).

If this batch is present in the system, the system will check if the stock of this batch has the released quality status defined on the item. If on the item there is no released quality status set, the released quality status on company level. If the stock has the released quality status, the stock to receive will also get this quality status, because this batch has already been approved.
If the released quality status is not found in the system, the stock to receive will get the default quality status.

5.1.3.50. Replenishment generator

IReplenishmentGenerator - Generates item based replenishment orders

This replenishment generator starts from the configuration on the item master data. It will try to generate orders where the ‘Replenishment Quantity on pick locations’ (OITM.U_PMX_RQPL found on the item master data produmex sales tab) is greater than 0.
If there is enough stock on pick locations, no order will be generated.

In case of setting a destination location for the replenishment order:
When the generator has calculated the quantity that should be replenished, it will try to find all pick locations that have this item in the ‘Can be replenished’ list and where the minimum quantity for that item on the location is higher than zero. It will try to create orders on those locations, ordered by the sequence defined on the location.
If no location can be found, or if there is enough stock on the location(s), (taking in account the maximum quantity on the location), it will not create a replenishment order.

Close open orders first? (Y/N)
When this is checked, the system will first close all open replenishment orders when running the replenishment tool.

No destination location on order? (Y/N)
When this is checked, the system will create replenishment orders without setting the destination location.
The user who executes the replenishment will be able to select a pick location.

Pick list due date range (in days)
The pick list due date range in days. If ‘Take in account pick lists’ is checked, this setting defines the due date range of all the pick lists that should be taken in account.

Remove SSCC on execution? (Y/N)
When this setting is enabled, the executed move will remove the SSCC of the stock.
This means that the stock that will be stored on the pick location will not contain an SSCC anymore.
This removal of the SSCC can only happen if there is no locking for this SSCC.

Select zone on replenishment flow? (Y/N)
If enabled, the user has to select the zone before selecting the replenishment order. After a zone is selected, only replenishment orders for locations in the zone can be selected. The zones that are shown are the parent zones of the locations that need replenishment.
Please note: If the ‘No destination location on order’ option is enabled, the zone will not be asked regardless of the ‘Select zone on replenishment flow’ setting.

Skip stock when LUID is blocked? (Y/N)
When this option is checked, the blocked LUID will not be moved to the pick location. This can be used when the system is configured that the pick list proposal generator already locks stock based on the LUID and if on the pick list controller the option to pick full pallet from bulk location is allowed.

Stock coverage in days
In combination with the configuration on Item master data it will calculate the needed quantities within the days defined in the stock coverage. If for example you have a stock coverage of 15 days, the generator will calculate the needed quantities for those 15 days, and create replenishment orders (if needed) so there will be enough stock on the locations for at least 15 days.

Stock order by
The order of the stock to be used:

  • Order by BBD, Batch1, Batch2 (FEFO)
  • Order by ItriKey, No LUID, LUID (FIFO)
  • Order by BBD, ItriKey (FEFO_ITRI)

Take in account pick lists? (Y/N)
When this option is checked, items that are on pick lists (with a due date in range) will be subtracted from the current available stock on the location.

CALCULATION:

A replenishment order will be generated when: (Stock on pick location – # on pick list) < = (Est. sales qty * (Stock coverage/#days in month))

Configuration 1:

  • ItemA: Quantity on pick locations = 120 (OITM.U_PMX_RQPL)
  • ItemA: Estimated sales quantity by month = 100 (OITM.U_PMX_ESQM)
  • ItemA: Sum of Stock On Hand on pick locations = 70
  • ItemA: Sum of Items on a pick list (in range) = 10
  • Generator: Stock coverage = 15

In this example:
(70 – 10) < (100 * (15/30)) → 60 < 50
So we need 50 items to be picked in the 15 days, but there are still 60 available, so no replenishment orders need to be generated.

Configuration 2:

  • ItemA: Quantity on pick locations = 120 (OITM.U_PMX_RQPL)
  • ItemA: Estimated sales quantity by month = 100 (OITM.U_PMX_ESQM)
  • ItemA: Sum of Stock On Hand on pick locations = 40
  • ItemA: Sum of Items on a pick list (in range) = 15
  • Generator: Stock coverage = 15

In this example:
(40 – 15) < (100 * (15/30)) → 25 < 50
So we need 50 items to be picked in the 15 days, and there are only 25 available, so replenishment orders need to be generated.

The number of items to be replenished is calculated:
(Qty on pick locations – (Stock on pick locations - # on pick list))

In this example:
(120 – (40 – 15)) = 95

So 95 items need to be replenished from bulk locations to pick locations.



IReplenishmentGenerator - Generates replenishment orders

This replenishment generator takes in account the items defined on the pick location. When the stock goes below the minimum quantity, it will generate a replenishment order.
The system will create an order so the minimum quantity (Defined on the location) is exceeded after the execution of the replenish order. The quantity will be a multiple of the Replenish Qty.

Close open orders first? (Y/N)
When this is checked, the system will first close all open replenishment orders when running the replenishment tool.

Pick list due date range (in days)
If ‘Take in account pick lists’ is checked, this setting defines the due date range of all the pick lists that should be taken in account.

Remove SSCC on execution? (Y/N)
When this setting is enabled, the executed move will remove the SSCC of the stock.
This means that the stock that will be stored on the pick location will not contain an SSCC anymore.
This removal of the SSCC can only happen if there is no locking for this SSCC.

Select zone on replenishment flow? (Y/N)
If enabled, the user has to select the zone before selecting the replenishment order. After a zone is selected, only replenishment orders for locations in the zone can be selected. The zones that are shown are the parent zones of the locations that need replenishment.

Skip stock when LUID is blocked? (Y/N)
When this option is checked, the blocked LUID will not be moved to the pick location. This can be used when the system is configured that the pick list proposal generator already locks stock based on the LUID and if on the pick list controller the option to pick full pallet from bulk location is allowed.

Stock order by
The order of the stock to be used:

  • Order by BBD, Batch1, Batch2 (FEFO)
  • Order by ItriKey, No LUID, LUID (FIFO)
  • Order by BBD, ItriKey (FEFO_ITRI)

Take in account pick lists? (Y/N)
When this option is checked, pick list lines in status 'Not ready' with a due date in range will be subtracted from the current available stock on the location. This means that only pick list lines without an allocation on location level will be taken into account.

CALCULATION:

A replenishment order will be generated when: {(Stock on pick location - # on pick list) < = Minimum quantity}.

Example:

  • Stock on pick location= 25
  • Minimum quantity = 20
  • Maximum quantity = 60
  • Replenish quantity = 10
  • # on pick list = 12

Configuration 1: Pick list not taken into account/ not within the due date range
In this example: 25 < 20
Since the stock on the pick location exceeds the minimum quantity, no replenishment order needs to be generated.

Configuration 2: Pick list taken into account and within the due date range
In this example: 25-12= 13 < 20
If we take into account the pick list, the quantity on the pick location will fall below the minimum quantity, therefore a replenishment order needs to be generated.

The quantity to replenish in the order will be a multiple of the Replenish Qty. It will be calculated by: {n*(Replenish Quantity) > = Minimum Quantity - Stock on pick location + # on pick list} where n is a non-negative integer.

Example:

  • Stock on pick location= 5
  • Minimum quantity = 20
  • Maximum quantity = 60
  • Replenish quantity = 10
  • # on pick list = 12

Pick list not taken into account:
n*10 >= 20-5 → n*10 >=15
Because the quantity to replenish must be the multiple of the Replenish quantity, 20 items need to be replenished from bulk locations to pick locations.

Pick list taken into account:
n*10 >= 20-5+12 → n*10>=27
Because the quantity to replenish must be the multiple of the Replenish quantity, 30 items need to be replenished from bulk locations to pick locations.

5.1.3.51. On release of route controller

None

5.1.3.52. Route controller

RouteController – Controls the routes

The settings below is to customize the grids on the route planning. There is a view to get the data to show on the grid. The order in which the columns are on the view, will also be the order in which they will appear in the grid.
Per view there are some mandatory fields, so the system knows what column to use for certain values.

Pick list (proposals) without route (Bottom-left grid):

Required fields:

  • DocType, DocEntry, PickListStatus, PmxWhsCode

View name – Open pick list (proposals)
The name of the view that will be used.

Order by – Open pick list (proposals)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

Localization key – Open pick list (proposals)
The localization key to use. This is used to translate the grid.
Below is a reduced translation tag for the standard grid.
It shows how to translate, or if needed how to hide a columns.

<PmxLocalizationKey>
    <Canceled>False</Canceled>
    <LocalizationKey>Logex.AddOn.RoutePlanningControl.GrdPicklistsWithoutRoute</LocalizationKey>
    <ApplicationTypeCode>SBOGUIAP</ApplicationTypeCode>
    <LocalizationProperties>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[1].HeaderText</LocalizationProperty>
        <ExtensionCode>CONVSTR</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Type</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Type</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[13].Visible</LocalizationProperty>
        <ExtensionCode>CONVBOOL</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
    </LocalizationProperties>
  </PmxLocalizationKey>

Route details (Right grids):

Required fields:

  • RouteDocEntry, RouteLineNum, Sequence, DocType, DocEntry, PickListStatus

View name – Route details
The name of the view that will be used.

Localization key – Route details
The localization key to use. This is used to translate the grid.

Open routes (Top left grid):

Required fields:

  • DocEntry, PmxWhsCode

View name – Open routes
The name of the view that will be used.

Order by – Open routes
The order by clause for the view. The text ‘ORDER BY’ does not need to be entered here.

Localization key – Open routes
The localization key to use. This is used to translate the grid.

Route header extra information:

This will show additional information for the route in the route planning screen.
This view can contain multiple rows/columns for the route.
All that data will be combined into 1 line of text.
Values of rows/columns will be separated by the separators defined below.

Required fields:

  • DocEntry

View name – Route details header
The name of the route that will be used.

Order by – Route details header
The order by clause for the view. The text ‘ORDER BY’ does not need to be entered here.

Column separator – Route details header
The separator between columns.

Row separator – Route details header
The separator between rows.

Routes are by default POD? (Y/N)
When creating a new route, this setting will automatically set whether the route is used for the 'Proof of delivery' functionality.

5.1.3.53. Sales delivery note generator

SalesDeliveryNote Generator - Generates sales delivery notes in separate transactions

This means that for instance when delivering a route, all deliveries are created in a separate transaction, instead of 1 transaction.
This will lead to less long lasting blocks when creating deliveries.

General

Add quantity to non-inventory sales BOM item? (Y/N)
If enabled, the non-inventory components from a sales BOM are automatically added to the sales delivery when it is created through the Produmex functionality.

Copy text lines from order to delivery? (Y/N)
If set to true, text lines from the base document will be copied to the delivery.

Fill packing info in delivery? (Y/N)
If set to true, the packing info will be entered in the delivery.
This will be based on the SSCC/Master SSCC.
(DLN7 & DLN8)

Use Pmx sales shipping? (Y/N)
If set to true, it will book the delivery into a temporary table. The SAP sales delivery can be created through a tool, or manually in SAP.
The advantage of this setting is that the creation of the delivery is much faster.
The disadvantage is that the stock remains on the dock, pick list is still open until the SAP delivery is created.
Also when invoices need to be created immediately after the creation of the delivery, this setting cannot be enabled.

Grouping

Add grouping columns to header level? (Y/N)
Defines how data is queried for grouping. For backward compatibility the default value is ’True’. If you have performance issues during the generation of sales delivery notes, disable this setting.

If this setting is enabled, the ‘Grouping filter columns’ and the ‘Join clause for grouping filter’ fields are added in the main string:

SELECT Table1.*, <Grouping filter columns> 
FROM (
SELECT …  
FROM …
) AS Table 1 
<Join clause for grouping filter> 
WHERE …
ORDER BY … ,<Order by for grouping filter>

If this setting is disabled, the ‘Grouping filter Columns’ and the ‘Join clause for grouping filter’ fields are added in a substring:

SELECT Table1.* 
FROM (
SELECT … , <Grouping filter columns> 
FROM … 
<Join clause for grouping filter>
) AS Table 1 
WHERE …
ORDER BY … ,<Order by for grouping filter>

Group sales orders for the same customer to 1 delivery? (Y/N)
When the delivery is made, it is possible according to the type of shipping: wave/route/… that there are goods that come from different sales orders, for the same customer.
If the option is set to true, only 1 delivery will be made for those sales orders.
If set to false, a delivery by sales order will be made.

Grouping filter columns
Enter columns on which deliveries need to be grouped.
When columns are added, the deliveries that will be created will be split when values in these columns are different.
Multiple columns can be split by ','

Join clause for grouping filter
When the grouping filter columns are in a table that is not available in the standard query, a join clause can be added to join to the missing table(s).
This join clause will be fully added to the query, which means that the 'INNER JOIN', 'LEFT JOIN', … keywords need to be added to this value.

Example grouping filter
When splitting on discount percentage of the sales order:
Value for filter: “DiscPrcnt”
Value for join clause: INNER JOIN “ORDR” ON “ORDR”.“DocEntry” = “GROUPED_TABLE”.“SalesDocEntry”

Grouping Order by
Defines the sorting of the sales orders for the grouping. If this field is empty, the value of the 'Grouping filter columns' is used for sorting.

Shipping

Allow loading of ready logistic units on not fully packed picklists? (Y/N)
If set to true, the users will be able to already select an unfinished picklist on the shipping client, and already start loading finished SSCC’s.

Allow shipping of partial LUID? (Y/N)
If set to true, on the shipping flow, a button will be available to only ship a part of a picked SSCC. The remainder will still be open on the pick list.

Allow to load all SSCC’s in one time? (Y/N)
If enabled, the user will be able to load all picked SSCC in one step during shipping without scanning the barcodes.

Group similar picklists? (Y/N)
If set to true, during shipping the system will get all picklists that are available for the same customer, delivery address, … for the selected pick list.
All SSCC’s for those pick lists can to be loaded.





SalesDeliveryNote Generator - Generates PMX sales shipping delivery

This functionality will book the delivery into a temporary table. The SAP sales delivery can be created through a tool, or manually in SAP.

This generator will become obsolete

General

Allow loading of ready logistic units on not fully packed picklists? (Y/N)
If set to true, the users will be able to already select an unfinished picklist on the shipping client, and already start loading finished SSCC’s.

Allow shipping of partial LUID? (Y/N)
If set to true, on the shipping flow, a button will be available to only ship a part of a picked SSCC. The remainder will still be open on the pick list.

Fill packing info in delivery? (Y/N)
If set to true, the packing info will be entered in the delivery.
This will be based on the SSCC/Master SSCC.
(DLN7 & DLN8)

Group sales orders for the same customer to 1 delivery? (Y/N)
When the delivery is made, it is possible according to the type of shipping: wave/route/… that there are goods that come from different sales orders, for the same customer.
If the option is set to true, only 1 delivery will be made for those sales orders.
If set to false, a delivery by sales order will be made.

Group similar picklists? (Y/N)
If set to true, during shipping the system will get all picklists that are available for the same customer, delivery address, dock, due date, … for the selected pick list.
All SSCC’s for those pick lists can be loaded.

Grouping filter columns
Enter columns on which deliveries need to be grouped.
When columns are added, the deliveries that will be created will be split when values in these columns are different.
Multiple columns can be split by ','

Join clause for grouping filter
When the grouping filter columns are in a table that is not available in the standard query, a join clause can be added to join to the missing table(s).
This join clause will be fully added to the query, which means that the 'INNER JOIN', 'LEFT JOIN', … keywords need to be added to this value.

Example grouping filter
When splitting on discount percentage of the sales order:
Value for filter:

 "ORDR"."DiscPrcnt" 


Value for join clause:

 INNER JOIN "ORDR" ON "ORDR"."DocEntry" = "GROUPED_TABLE"."SalesDocEntry" 





SalesDeliveryNote Generator - Generates sales delivery notes

This generator will become obsolete

General

Allow loading of ready logistic units on not fully packed picklists? (Y/N)
If set to true, the users will be able to already select an unfinished picklist on the shipping client, and already start loading finished SSCC’s.

Allow shipping of partial LUID? (Y/N)
If set to true, on the shipping flow, a button will be available to only ship a part of a picked SSCC. The remainder will still be open on the pick list.

Copy text lines from order to delivery? (Y/N)
If set to true, text lines from the base document will be copied to the delivery.

Fill packing info in delivery? (Y/N)
If set to true, the packing info will be entered in the delivery.
This will be based on the SSCC/Master SSCC.
(DLN7 & DLN8)

Group sales orders for the same customer to 1 delivery? (Y/N)
When the delivery is made, it is possible according to the type of shipping: wave/route/… that there are goods that come from different sales orders, for the same customer.
If the option is set to true, only 1 delivery will be made for those sales orders.
If set to false, a delivery by sales order will be made.

Group similar picklists? (Y/N)
If set to true, during shipping the system will get all picklists that are available for the same customer, delivery address, … for the selected pick list.
All SSCC’s for those pick lists can to be loaded.

Grouping filter columns
Enter columns on which deliveries need to be grouped.
When columns are added, the deliveries that will be created will be split when values in these columns are different.
Multiple columns can be split by ','

Join clause for grouping filter
When the grouping filter columns are in a table that is not available in the standard query, a join clause can be added to join to the missing table(s).
This join clause will be fully added to the query, which means that the 'INNER JOIN', 'LEFT JOIN', … keywords need to be added to this value.

Example grouping filter
When splitting on discount percentage of the sales order:
Value for filter: “DiscPrcnt”
Value for join clause: INNER JOIN “ORDR” ON “ORDR”.“DocEntry” = “GROUPED_TABLE”.“SalesDocEntry”

5.1.3.54. Sales return generator

Default sales return generator

Force mono lot pallet? (Y/N)
If set to true, the system will not allow to have multiple items/batches on one SSCC. SO the user is forced to create a new logistic unit for each item.

5.1.3.55. Sample generator

Generates samples to supplier

This generator makes the sample orders if this is needed. A sample order is a sales order. This sales order will be created for the customer linked to the business partner on the purchase delivery. The linked business partner can be set on the business partner master data.  

5.1.3.56. Serial number controller

SerialNumberController - Control the serial numbers

Always entering serial numbers in uppercase? (Y/N)
If set to true, the system will always put the entered serial numbers in upper case.

Ask for dest. loc. before entering serial numbers? (Y/N)
When moving stock, the system normally first asks to scan the serial numbers before asking for the location.
If the user wants to first ask for the destination location, this option can be set.

Picking: Warn when serial number has been sent in the past? (Y/N)
When this is enabled, the user will see a warning when this serial number has already been used in a delivery or pick list.
This check happens for the item, and does not take into account the batch.

5.1.3.57. Warehouse automation controller

None

5.1.3.58. Move controller

Default move controller

Ad hoc move

Always scan product? (Y/N)
If enabled, the item must be scanned during an ad hoc move on the scanner, even if it is the only item on the SSCC/location.

General

Return to next move when performing ad hoc move? (Y/N)
If set to true, the system will go back to a screen to perform the next move instead of going back to the start of the ad hoc move flow. This allows the user to quickly perform another move of the same type without entering again if it is a local move, select destination whs, …

Translation key for 'Select empty location'?
This can be used to customize the text on the button to select an empty location when choosing a destination location.
This is used in combination with the SelectLocationForAdHocMovesHookScript.
That hook script can return a customized query to list locations.
Used in the flows:

  • Ad hoc moves
    • Partial move
    • Full LUID move
    • Multiple LUID move
  • Undo picking
5.1.3.59. Stock allocation controller

Controller for the stock allocation screen

This controller holds the configuration for the Stock Allocation Screen.
The screen supports custom views that are used to show data on the screen.
This can be used when customers want additional info on the screen.
But that custom view will have some fields that are required.

Grid localization key (Customer info)
The translation key that is used to translate the grid on the screen for grouping option 'Customer'

Grid localization key (Sales order info)
The translation key that is used to translate the grid on the screen for grouping option 'Sales document'

Order by (Customer info)
The order by clause for the query for grouping option 'Customer'

Order by (Sales order info)
The order by clause for the query for grouping option 'Sales document'

View name (Customer info)
The view used for grouping option 'Customer'.
The view can be customized, but the following fields are required:

  • ItemCode
  • SboWhsCode
  • GroupCode
  • CardCode
  • CardName
  • AllocatedQuantity
  • AllocatedQuantityOriginal
  • FreeQuantity
  • FreeQuantityOriginal
  • InventoryQuantity
  • OpenQuantity
  • OpenQtyNotAllocated
  • ErrorMessage

View name (Sales order info)
The view used for grouping option 'Sales document'.
The view can be customized, but the following fields are required:

  • ItemCode
  • SboWhsCode
  • GroupCode
  • CardCode
  • CardName
  • AllocatedQuantity
  • AllocatedQuantityOriginal
  • FreeQuantity
  • FreeQuantityOriginal
  • InventoryQuantity
  • OpenQuantity
  • OpenQtyNotAllocated
  • ObjType
  • DocEntry
  • LineNum
  • ErrorMessage
5.1.3.60. Picklist proposal manager screen controller

Controller for the picklist proposal manager screen

This controller holds the configuration for the Picklist Proposal Manager Screen.
The screen supports custom views that are used to show data on the screen.
This can be used when customers want additional info on the screen.
But that custom view will have some fields that are required.

Production

Grid localization key (Production info)
The translation key that is used to translate the grid on the screen for document type 'Production'

Order by (Production info)
The order by clause for the query for document type 'Production' This option is not supported yet by the Pick list proposal manager.

View name (Production info)
The view used for document type 'Production'.
The view can be customized, but the following fields are required:

  • ObjType
  • DocEntry
  • WhsCode
  • ItemCode
  • ItmsGrpCod
  • CardCode
  • DocDueDate

Sales order

Grid localization key (Sales order info)
The translation key that is used to translate the grid on the screen for document type 'Sales'

Order by (Sales order info)
The order by clause for the query for document type 'Sales order'

View name (Sales order info)
The view used for document type 'Sales order'.
The view can be customized, but the following fields are required:

  • ObjType
  • ObjTypeString
  • DocEntry
  • LineNum
  • WhsCode
  • ItemCode
  • ItmsGrpCod
  • CardCode
  • DocDueDate

Whs transfer

Grid localization key (Transfer info)
The translation key that is used to translate the grid on the screen for document type 'Transfer'

Order by (Inv. transfer info)
The order by clause for the query for document type 'Transfer'

View name (Inv. transfer info)
The view used for document type 'Transfer'.
The view can be customized, but the following fields are required:

  • ObjType
  • ObjTypeString
  • DocEntry
  • LineNum
  • ToWhsCode
  • WhsCode
  • ItemCode
  • ItmsGrpCod
  • CardCode
  • DocDueDate
5.1.3.61. Location controller

This controller holds the configuration for suggesting locations on moves.

Location controller - Handle location suggestions

This controller uses put away zones to get a list of possible locations to store the goods.

Use suggested locations?
Enables the location suggestion functionality.

Allow to suggest an empty fixed pick location?
When getting the list of locations, can an empty fixed pick location be suggested? If an empty fixed pick location is found, this will be the first suggested location.

Allow to suggest pick locations during moves?
Are pick locations allowed to be suggested?
This is used on the ad hoc move flows.

Allow to suggest pick locations during put away?
Are pick locations allowed to be suggested?
This is used on the put away or reception flow.

Force to use first suggested location during moves?
Is the user forced to use the first suggested location?
If he is forced to do this, but he enters another location, he will need to enter a reason.
This is used on the ad hoc move flows.

Force to use first suggested location during put away?
Is the user forced to use the first suggested location?
If he is forced to do this, but he enters another location, he will need to enter a reason.
This is used on the put away or reception flow.

Order by (Moves)
The order by clause for the locations that need to be retrieved.
A predefined value can be selected:

  • CASE COUNT( “PMX_INVT”.“InternalKey” ) WHEN 0 THEN 0 ELSE 1 END, ISNULL(“PAZ”.“Sequence”, 999999999),CASE WHEN “PAZ”.“SortPickSequenceDescending” = 'Y' THEN “PMX_OSSL”.“Sequence” *-1 ELSE “PMX_OSSL”.“Sequence” END,“PMX_OSSL”.“Code”

It sorts the location on:

  • Empty locations
  • Put away zone sequence (Defined on the location)
  • Pick sequence of locations that belong to the put away zone
  • Location code

The value can be adjusted freely.
This is used on the ad hoc move flows.

Order by (Put away)
The order by clause for the locations that need to be retrieved.
A predefined value can be selected:

  • CASE COUNT( “PMX_INVT”.“InternalKey” ) WHEN 0 THEN 0 ELSE 1 END, ISNULL(“PAZ”.“Sequence”, 999999999),CASE WHEN “PAZ”.“SortPickSequenceDescending” = 'Y' THEN “PMX_OSSL”.“Sequence” *-1 ELSE “PMX_OSSL”.“Sequence” END,“PMX_OSSL”.“Code”

It sorts the location on:

  • Empty locations
  • Put away zone sequence (Defined on the location)
  • Pick sequence of locations that belong to the put away zone
  • Location code

The value can be adjusted freely.
This is used on the put away or reception flow.

For more information about the usage see: Location suggestions

5.1.3.62. Checks controller

This controller holds the configuration for the Checks flow.

ChecksController - Controls the checks

This is the default controller to store the configuration used in the checks flow.

Check SSCC: Show global SSCC information? (Y/N)
When enabled, the flow to check an SSCC will show a screen with additional information about the SSCC.
This screen is shown after the SSCC was scanned.

5.1.3.63. Proof of delivery controller

This controller holds the configuration for the Proof of Delivery functionality.

POD Controller - For IM2 ePOD

This is the default controller for the POD.

Allow only full quantity to be delivered? (Y/N)
When this is enabled, the delivery of the item is a 'All or nothing' delivery.
The user can either deliver nothing, or deliver the full quantity.

Image path
The path where the images will be stored.

Route export mode
The level of details the export needs to contain.

Possible values:

  • SSCC: Lists every SSCC. Confirmation is on SSCC level
  • Item: Lists every item on an SSCC. Confirmation is on item level
  • Batch: Lists every batch for every item on an SSCC. Confirmation is on batch level
5.1.3.64. Create SAP delivery from PMX delivery controller

This controller holds the configuration for the tool to create an SAP delivery from a PMX sales shipping.

Create SAP delivery

This is the default controller.

Create automatically SAP delivery from PMX deliveries? (Y/N)
This is not used. When installing a recent version on a new DB, this setting will not be present. In older Db's this setting exists, but does not do anything.

5.1.3.65. On consume for production controller

This is a controller that gets executed when ingredients are being consumed for production.
This can be used for adding additional items to the issue for production.

There is no default implementation of this controller.
It needs to be created on a customer base.

5.1.3.66. Open documents screen controller

Controller for the open documents screen (DEDOCCTR)

The settings below are to customize the grids shown on the open documents report.
There is a view to get the data to show on the grid. The order in which the columns are on the view, will also be the order in which they will appear in the grid.
Per view there are some mandatory fields, so the system knows what column to use for certain values.

Container

Order by – (Container)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Container)
The name of the view that will be used. Required fields:

  • DocEntry

Grid localization key – (Container)
The localization key to use. This is used to translate the grid.


Move orders

Order by – (Move order)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Move order)
The name of the view that will be used. Required fields:

  • DocEntry, FromPmxWhsCode, ToPmxWhsCode

Grid localization key – (Move order)
The localization key to use. This is used to translate the grid.


Pick lists

Order by – (Pick list)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Pick list)
The name of the view that will be used. Required fields:

  • DocEntry, DestStorLocCode, WaveKey

Grid localization key – (Pick list)
The localization key to use. This is used to translate the grid.


Pick list proposals

Order by – (Pick list proposal)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Pick list proposal)
The name of the view that will be used. Required fields:

  • DocEntry, DestStorLocCode, HasPickList

Grid localization key – (Pick list proposal)
The localization key to use. This is used to translate the grid.


Pmx Sales shipping

Order by – (Pmx sales shipping)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Pmx sales shipping)
The name of the view that will be used. Required fields:

  • DocEntry

Grid localization key – (Pmx sales shipping)
The localization key to use. This is used to translate the grid.


Routes

Order by – (Route)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Route)
The name of the view that will be used. Required fields:

  • DocEntry, LoadingDock

Grid localization key – (Route)
The localization key to use. This is used to translate the grid.
Below is a reduced translation tag for the standard grid is.
It shows how to translate, or if needed how to hide a columns.

<PmxLocalizationKey>
    <Canceled>False</Canceled>
   <LocalizationKey>Logex.AddOn.OpenDocumentsReportForm.Grid.Route</LocalizationKey>
    <ApplicationTypeCode>SBOGUIAP</ApplicationTypeCode>
    <LocalizationProperties>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[1].HeaderText</LocalizationProperty>
        <ExtensionCode>CONVSTR</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Document number</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Type</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
      <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[13].Visible</LocalizationProperty>
        <ExtensionCode>CONVBOOL</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
    </LocalizationProperties>
  </PmxLocalizationKey>


Weigh orders

Order by – (Weigh orders)
The order by for the view. The text ‘ORDER BY’ does not need to be entered here.

View name – (Weigh orders)
The name of the view that will be used. Required fields:

  • DocEntry

Grid localization key – (Weigh orders)
The localization key to use. This is used to translate the grid.

5.1.3.67. Packing controller

Controller for packing (DEPC)

Combine packed SSCC

Start by scanning SSCC?
If enabled, the system will start by scanning an SSCC instead of selecting the customer/ship to address. Available on the Combine packed SSCC flow.

Consolidated packing

Allow partially picked pick lists to be packed (Y/N)
If set to true, the system will allow to pack ‘Partially Picked’ pick lists with the Consolidated packing flow.

General

Add logistic carriers to all Sub SSCC’s (Y/N)
If enabled, the selected logistic carrier is linked to the sub SSCC instead of the master SSCC. Otherwise the logistic carrier is linked to the master SSCC only. Combination of adding logistic carriers to master and sub is not possible.
This setting only effects the Packing, Consolidated packing and Item packing flows.

Ask logistic carrier when LUID is finished
When enabled, the packing flow will not ask the logistic carrier when users starts a new LUID, but when the users indicates that the LUID is full.

Finished LUID screen. View name
The name of the view that is used for customizing the Finished LUID screen. The following field is required:

  • LUID

Perform automatic shipping per customer/address? (Y/N)
When enabled, the process to try to automatically ship will occur for each packed pick list for the same 'customer/address/ship to code' instead of checking if all pick lists in the wave are packed.

Pick list grouping
When packing items users need to select the customer/address if there are multiple customer/address on the movable location or SSCC.
There are 2 options:

  • Grouping on CardCode, ShipToCode, ShipToAddress
  • Grouping on CardCode, ShipToAddress

Time to show 'Packing LUID finished' message
The number of seconds the ‘Logistic unit finished’ message is shown on the scanner: Possible values:

  • Negative values: The message is not shown.
  • Value 0: The message will remain visible until the user clicks the ‘OK’ button
  • Positive values: The message will remain visible for the entered number of seconds.

Use pallet packaging type from customer master data?
When enabled the packing flows will use settings available on the business partner master data to know if multiple identical master and/or sub SSCCs need to be made.
Supported flows:

  • Packing flow
  • Consolidated packing flow
  • Item packing flow

Item and Cash register packing

Force user to only scan items (Y/N)?
If enabled, the user must add the quantity to pack by scanning the barcodes because (s)he cannot enter the quantity manually. This setting is used in the item packing and cash register packing flows.

5.1.3.68. Receive from WHS controller

Receive from WHS controller – Controls the Receive from WHS flow

General

Line remarks view name
The view that gets the line remarks to show on the scanner after the product is identified. This view needs at least these columns:

  • ObjType
  • DocEntry
  • LineNum
  • ItemCode

The view can return multiple rows/columns for the same document. The screen to show the remarks will then show the data in multiple rows/columns.

Move all items in 1 stock transfer? (Y/N)
If enabled, the Inventory Transfer Document is created after every item is transferred, otherwise an Inventory Transfer Document is created after each transferred LUID.

Remarks view name
The view that gets the line remarks to show on the scanner after the Inventory Transfer Document is identified. This view needs at least these columns:

  • ObjType
  • DocEntry

The view can return multiple rows/columns for the same document. The screen to show the remarks will then show the data in multiple rows/columns.

5.1.3.69. Put away for order generator

Determines how received goods (logistic units – SSCC) have to be put away.

Generates full pallet put away orders (DFPPAOG)
Generates put away orders that cannot be split up. The user will always have to move the full SSCC to a location.


Generates NO put away orders (EMPAOGEN)
No put away orders are generated during the reception.


Generates put away orders (DEPAOGEN)
Generates put away orders that can be split up. When processing the order, the user can select if he wants move the full SSCC or not for monolot pallets. Mixed pallets will have to be split up.

5.1.3.70. Put away for production generator

Generates put away for production (DEPAPGEN)

Generates production put away orders when producing onto a logistic unit.

5.1.3.71. Interface for PMX pick list im-/export

None

5.1.3.72. On sales delivery creation

None

5.1.3.72. On sales delivery creation

None

5.1.3.73. Track and trace contoller

Determines how to use the track and trace product

Movilitas Cloud Track and Trace (MCTATCTR)
This uses the Movilitas Cloud interface.

API URL
The URL to the API of Movilitas Cloud

5.1.4. SSCC

In the SSCC (Serial Shipping Container Code) settings screen, the system shows the actual SSCC number, as well as the start and end number of the range.

5.1.5. Reports
5.1.5.1. Overview

The Reports tab offers an overview of the standard reports that have been defined in Produmex.

1. It includes a reference to the shared folder (Report path, Coresuite report path) where the reports are stored and makes it possible to set the report parameters:

  • Format in which the report is created (for example Crystal Reports, CoreSuite)
  • Name
  • Page size
  • Orientation
  • Type
  • Path from the entered report path

2. The Uses the external database checkbox is checked in by default.

As it is not allowed to store Stored Procedures in the SAP Business One databases, an external Produmex database has been created which contains the stored procedures that are required to generate the reports.

5.1.5.2. Configuration

1. Select the format you wish to use from the Format drop-down menu:

  • A) Crystal Reports: uses the reports you download with your Produmex installation file
  • B) Crystal Reports by SAP: uses the default reports that are stored within SAP.
  • C) Coresuite: uses the reports available in Coresuite.
  • D) Unknown: can be used for custom report types.

2. The next step depends on the format you have selected in step 1:

  • A) Crystal Reports

Provide the path of the reports in the Report path field.

  • MSSQL: You can find the reports in your installation folder and you can add its path to the Report path field, for example: C:\Install\Produmex_WMS_19_1.x64\Reports\MSSQL.

Report folder

Besides, if you use a HANA environment, some connection information needs to be provided for Crystal Reports, for example DbServer. When the CR Connection Name field is filled in, the value is passed to Crystal reports. When it is not filled in, the DbServer is used that is available from the connection.

  • B) Crystal Reports by SAP

Check the ID of the report, then add the ID into the Path field. When the system starts printing, it will get the report with this particular ID from the database.

  • C) Coresuite

When printing the system will create a file to a certain folder. The field Coresuite report path needs to be filled in with a folder where the file needs to be stored. The Coresuite add-on will pick up the file and print the report.

3. Provide the necessary report parameters.

4. Click ADD and the list of the added reports will be displayed in the grid.

On the Print events tab you can indicate which report has to be generated and printed on which event. You can find the list of the events here: List of print events.

5.1.6.1. Setting up a print event

To set up a print event proceed as follows.

1. Select the necessary event in the drop-down menu.

2. Select the report to be generated upon the occurrence of the event.

3. Provide the number of copies to be printed.

4. Check in the Ask for reprint? option if you want the system to ask if more copies should be printed after the given number of copies has been printed.

5. Optional: select a predefined filter, a condition that has to be met for the report to be generated. Please see section 5.1.6.2. Predefined filters.

6. Click Add.

5.1.6.2. Predefined filters

1. PRFLUIDG
The filter PRFLUIDG determines that when a logistic unit is received with a valid logistic label containing an SSCC, the system will NOT generate a new reception label with a new system-generated SSCC. The filter can be used for the following print events:

  • 101 Reception new LU identified
  • 200 Picking: new LU full
  • 400 Production: LU produced
  • 500 Packing: finished LU
  • 700 WHS: created LU
  • 702 WHS: created master LU

2. PRFWMM
The filter PRFWMM can be used for warehouse move documents. It will use the settings on the Warehouse move Matrix UDT to check whether a document should be printed.

3. - 4. PRFCUCO and PRFNCUCO
The filter PRFCUCO determines that the document will not be printed for customer collects. On the other hand, the filter PRFNCUCO determines that the document will only be printed for customer collects. These filters can be used for the following print events:

  • 200 Picking: new LU full
  • 300 Shipping: sales delivery note created
  • 302 Shipping: picklist shipped
  • 500 Packing: finished LU

5. PRFSCRIP
The filter PRFSCRIP offers users the possibility to develop own criteria for determining when and how a label should be printed. Please see section 5.1.6.3. Scripted print filters below.  

5.1.6.3. Scripted print filters

It is possible to define a custom print filter. It will allow to block printing for certain parameters.

A typical print filter consists of 3 main sections

  • Running of SELECT QUERY to get needed info for document
  • Determination of TRUE or FALSE value according to needed info
  • Return RESULT

Creation of a new print filter
In the Produmex Organizational Structure, go to the Print Events tab:

Here you can add a filter to the desired print event.
Select Filter → IPrintReportFilter – Script (PRFSCRIPT)
Then select the ‘Edit’ button.

The following script editor opens, here we will paste our script.

Press the ‘Empty script’ button to open a script template designed for the selected print event. We recommend to use this template instead of starting from an empty script.

The template contains two print report methods.

  • Use the first method if the report has only one parameter.
  • Use the second method if the report has more than one parameters.

Here you can find a demonstration script that explains what is needed.

using System;
using System.Reflection;
using Produmex.Foundation.Data.Sbo;
using Produmex.Foundation.Diagnostics;
using Produmex.Sbo.Logex.Data.BusinessObjects;
using Produmex.Sbo.Logex.Data.Providers;
using Produmex.Foundation.Data.Sbo.BusinessObjects;
using Produmex.Foundation.Data.Sbo.Utilities;
using Produmex.Foundation.Data.SqlClient;

public class Script
{
    private static readonly ILog s_log = 
			LogProvider.GetLogger(MethodInfo.GetCurrentMethod().DeclaringType);

    public static bool PrintReport(PmxPrintReportEventType eventType, int key, PmxDbConnection dbConn)
    {
        //Create the query you want to use
        string query = "SELECT [COLUMNAME1], [COLUMNAME2] FROM [TABLENAME] WHERE [Key] = " 
+ key.ToString();

        //Run the query
        using (ISboRecordset rs = SboRecordsetHelper.RunQuery(s_log, query, dbConn))
        {
            if (!rs.EoF)//Check if you get result from the query
            {
                string var1 = rs.GetTypedValue<string>("COLUMNAME");//Get a string value
                int var2 = rs.GetTypedValue<int>("COLUMNAME2");//Get an int value

                //Possibility to add a check on the result
                //In this case if the value of column with name 'COLUMNAME2' equals to 99, 
                //a label should be printed
                if (var2 == 99)
                {
                    return true; //Label will be printed
                }
                else
                {
                    return false; //Label will not be printed
                }
            }
        }
        return false; //Label will not be printed
    }
}

So you can modify this script to fit your needs:

  • Modify the query to lookup the needed info
  • Get the needed values from the query result
  • Modify the check on the result and return the correct TRUE or FALSE

Validate and test

You can also use this screen to:

  • Validate the Script
  • Do a test run with a KEY from the database :
    The key is what is passed to the report. So for the print event ProductionLogisticUnitProduced this is the LUID of the produced pallet.

In order to avoid performance issues, do not use ‘SELECT *’ syntax in the select query. Select only the required columns or the primary key.
Example:

  1. What should be avoided:
    SELECT * FROM "OITM" WHERE "ItemCode" = 'ITEM01'
  2. What to use instead:
    • SELECT "InvntItem", "MinLevel" FROM "OITM" WHERE "ItemCode" = 'ITEM01' 
    • SELECT "ItemCode" FROM "OITM" WHERE "ItemCode" = 'ITEM01'

It’s also recommended to add the WITH (NOLOCK) hint to all tables used in these queries.
For example:

  • SELECT "ItemCode" FROM "OITM" WITH (NOLOCK) WHERE "ItemCode" = 'ITEM01'
  • Or with a join (NOLOCK on all tables):
    SELECT "OITM"."InvntItem" FROM "DLN1" WITH (NOLOCK) JOIN "OITM" WITH (NOLOCK) ON "DLN1"."ItemCode" = "OITM"."ItemCode" WHERE "DLN1"."ItemCode" = 'ITEM01' 
5.1.7. Zone types

The “Zone types” tab allows you to define the various zones types in your company that can be assigned afterwards to specific items, depending on their storage conditions.

Once a zone type is created it remains possible to change and update its name (description) but not its code.

Needs reason
If ticked you will have to enter a reason when receiving this item.
This can be used to confirm that specific conditions were met when receiving the item.
For example the item needs to be stored below 5° Celsius and it arrives at 10 °
You would enter that conditions were not ok.

Show zonetype?
If ticked the zone type will show at reception of an item.

5.1.8. Page sizes

The “Page sizes” tab allows you to define the used page sizes for reports and printers.

Once created it is possible to change the name (description) of a page size but not its code.

5.1.9. Quality status

The “Quality status” allows you to define the applicable quality statuses for your company.
For each quality status it is possible to define whether or not an item with that specific quality status can be shipped and/or picked for production and/or picked for a replenishment order.
Furthermore you can specify to which quality status a specific status can be changed: e.g. “blocked” can be changed to “released”.

Ask for reason
On the transition between quality statuses the user can set whether a reason needs to be entered for the change.

Can be shipped
The quality status is allowed to be picked and shipped.

Can be picked for replenishment
Indicates if the stock can be used to replenish pick locations.

Can be picked for production
Indicates if the stock can be used pick for production.

Can be used for production
Indicates if the stock can be used for production. Stock that does not have this option, are not allowed to be stored on production lines.

Can be put on a pick location
Indicates if the stock can be stored on pick locations.

Can be shipped under quarantine
Indicates that the stock is in quarantine, but still allowed to ship. Setting ‘Shipping quality option’ on the sales order line can be changed to allow shipment of these goods.

Quality status transitions

This lists the quality statusses to where the current quality status can be changed to.

It is possible to flag the setting Ask for reason. By doing this, when the user changes the quality status through the inventory report, he will have to select a reason for this quality status change.

It is also possible to limit users from making certain quality status transitions.
This is done by selecting a user group for the transaction.
If a user wants to perform a quality status transition, he is only allowed to change it to a quality status that has no user group, or a quality status that has the user group he is assigned to.

Please note that reasons or user group limitations do not apply when moving stock to a location with a predefined quality status.

5.1.10. Reasons

Define the reasons that can be used in Produmex WMS flows on the Reasons tab. A reason might be required to perform certain actions or to explain why a specific action cannot be completed or a specific item cannot be used.

Add the code, name and sequence number of the reason. The sequence number defines the order the reason is shown on the terminals.

Then specify when the reason can be used by checking the corresponding checkbox.

If extra explanation is needed, check the ‘Requires extra reason text’ checkbox as well.

5.1.11. 3PL invoicing

The “3PL invoicing” tab offers the possibility to define which items will be used on the A/R invoices sent to the 3PL customers. 6 items can be defined, each corresponding to one kind of 3PL price calculation:

  • ‘Inbound document count’: price depending on the number of Goods Receipt PO’s
  • ‘Inbound line count’: price depending on the number of lines in Goods Receipt PO’s
  • ‘Inbound item quantity’: price depending on the item quantities received
  • ‘Outbound document count’: price depending on the number of sales deliveries
  • ‘Outbound line count’: price depending on the number of lines in sales deliveries
  • ‘Outbound item quantity’: price depending on the item quantities delivered

Only non-inventory items can be selected. Each item can be enabled or disabled; prices corresponding to disabled items will not be added to the 3PL invoices.

In addition to these 6 kinds of 3PL price calculations, it’s also possible to define 3PL price calculations based on the storage per location type. See Location Types section for more details.

5.1.12. History configuration

The “History config.” tab offers the possibility to define for which elements or aspects (which are stored in individual database tables) the changes have to be tracked in the context of Audit Trail.

This can be changes to characteristics of specific Organizational Structure Elements (e.g. a bin, a zone, a production line, … ) which need to be tracked, such as their name, zone type code, …

It may also be necessary to track changes to specific characteristics of items, such as e.g. the shelf life of an item for the various business partners of a company. This is shown in the example below, where it has been configured that for the table “Item shelf life for partner” it has to be recorded when the shelf life for a specific item for a specific business partner is added, updated or deleted.

These changes will then be tracked by the Produmex Office function Audit Trail.

5.1.13. Workflows

Overview of the used workflows

5.1.13.1. Edit workflowscripts

It is possible to adjust for instance main menu flows to remove buttons. Do not adjust the flows provided by Produmex, because they will be overwritten when an update of the database is done.

Instead a copy should be made:

Open the Produmex Organizational Structure (1) → Select the company (2) → go to ‘Workflows’ tab (3) → Select the flow you want to edit (4) en click ‘Edit Script’ (5)

This opens the following screen:
Press CTRL + C to copy all the content to your clipboard

Then you can close this screen again.

Next, we will need to add a new script for the customer that we will edit later on.

On the Workflows tab → Select the script you want to edit again and modify the name below (6) →
Then click on ‘Add’ (7)

This has added a line to you workflows (see (8)), now we must paste the content in this script.
Select this newly added line and click on ‘Edit script’ (9) → Then paste (CTRL + V) the copied content in this new script:

In this Workflow script editor, scroll to the top of this new script. There, edit the following line in the code to match the name you gave your script (MainWarehouseMenuFlowScrip becomes MainWarehouseMenuFlowScript_CustomerName in this example)

If you do not do this, the flow will not run on the client! This has to be done on 2 places in the script, see red underline in the image below.

Now we can really edit the available button in this script.
Therefore we have to scroll to the section with the button list.
Here we can disable or enable button by placing them in or out comment.
( / / in front of the code means it is in comment and will not be taken into account)

So I will delete the Production button from the main flow in this example.

I look for the code m_MenuOptions.Add(new MenuOption(“MSG_BUTTON_PRODUCTION”, Create(“ProductionMainFlowScript”)));

Then I can disable this button by adding / / in front of it:

Then we can ‘Validate’ this script with the foreseen button.

Finally, we need to make sure this code is launched, so we will possibly need to modify the script that is used on the fat client: Select client in Org. Struc. (1) → Select new Workflow (2) → OK (3)

If we then startup this client, we can see that he production button is no longer present:
(Only Purchase, Sales and Logistics)

5.1.13.2. Call modified workflowscripts

When we have created a modified workflowscript that is a sub-script of the main script, we need to call this modified script.

An example could be that with the explanation from point 5.1.13.1 you have created a modified SalesMainFlowScript_CustomerName. After it has been created, we have to make sure it is called in our MainWarehouseMenuFlowScript_CustomerName.

So we open the MainWarehouseMenuFlowsScript_CustomerName to edit, and call the modified SalesMainFlowScript_CustomerName like this:

5.1.14. Config

The config tab list some configuration that can be done for several processes.
Also customer specific configuration can be stored here.

It will have settings for:

  • Interfacinig
  • WA interfacing
  • Configuration for SBO notification listener actions

5.2. Other Organization Structure Settings

All OSE objects have a code and a description field.

Code
The code of the OSE object. This field cannot be updated.

Description
The description of the OSE object.

5.2.1. Warehouse settings

At the warehouse level the following settings can be defined:

Warehouse
This is the link between the warehouse defined in Produmex and the warehouse in SAP Business One (Cfr. Administration → Setup → Inventory → Warehouses.)
Each SAP warehouse can only be linked once in Produmex warehouses.

Stor. Loc. logistic carriers
The location in the warehouse where the logistic carriers are located (in case you have indicated at the company level that logistic carriers have to be stored at one location per warehouse).
This location needs to be a pick location!

Stor. Loc. returnable items
The storage location for the returnable items. This is used when inventory returnable items are used.

Location ‘Lost and Found’
The ‘Lost and Found’ location for that warehouse. All item differences counted during cycle counting (indirect cycle counting) will be moved to the Lost and found location in case this is set up on the CycleCountController.

Stock on storage locations set for Lost and found, logistic carriers, … are not taken in account to create pick list (proposals).

Use location suggestions?
Set whether location suggestions will be used for move in or to this warehouse. This is used in the Location Suggestions functionality.

5.2.2. Zone settings

At the level of a zone, the following settings can be defined:

Use for zone picking
Can this zone be selected on the flow ‘Zone picking’?

Zone type
Selection from a drop-down list. A zone can belong to one or more zone types: e.g. temperature-related and/or humidity-related. If the zone in question is a main zone (highest level) consisting of one or more sub-zones, the zone type that applies to the highest level zone also applies to the lower level ones too. In that case the “Locked” field is ticked.

5.2.3. Production line settings

A production line in Produmex WMS is always subordinate to a warehouse.

There are multiple ways of doing production:

  • Production flow: This flow handles the receipt AND issue for production in the client
  • Production manager + Production receipt: On the scanner/touchscreen the receipt for production is booked. The production manager handles the starting + stopping of the production order.

Do not use the same production line for both flows

The following settings can be defined for a production line:

5.2.3.1. General

Active
Set whether or not the production line is active. A production line can only be active when an Input, Output and Rest location is filled in.

Only 1 started production order allowed
If set, only 1 started production order is allowed for this production line. This can only be used in combination with the production manager and ‘Production receipt’ flow.
The ‘Production’ flow always forces to only have 1 production order started on the production line.

Pick to location
The location where the needed ingredients are picked to. When this is not filled in, the system will use the ‘Input’ location. The ComponentWeighingFlow will use the ‘Pick to’ location as input for the items to be weighed. The weighed items will be stored on the ‘Input’ location. Stock on a ‘Pick to’ location is not taken in account to create pick list (proposals).

Lock items picked to this location
When the setting is enabled, the Picking for Production and the Pick List for Production flows lock the items that are picked to this location.
During the Component Weighing Production flow the locked stock is removed when it is weighed.

Input location
The location where the needed ingredients are picked to. Production flows will move stock from the input location to the production line. Stock on an input location is not taken in account to create pick list (proposals).

Output location
The location where the finished products will be stored.

Rest location
Location to which the rest of used materials and ingredients are moved. It is possible to use the input location as rest location. In this case the remaining items will be ready to use for the next production order.

Parent production line
The parent production line is used if for instance the production is done in several steps. In this case the user can define the sequence of the production lines.

Production manager type
This is used when the processing of the production issues is done administratively. This can have 2 possible values.

  • SPL_CONS_LOCK: When producing on the shop floor, the items to consume are not directly consumed, but they are locked. When processing the production order administratively, the system will use the locked stock as base for the consumption.
  • MPL_CONS_INPUT: When the users do not want to perform the tasks to move the correct stock to the production line when producing, this option is used. When processing the production order administratively, all stock on the input location is used as base for the consumption. Furthermore, all production orders on production lines with the same input location will be processed in 1 time.

Current production order
The current production order for this production line (read-only)

Can be lined up
Some locations can be lined up. If a location is added here, it means the stock in this location is used directly, and does not need to be picked. This is usually used for tanks and/or silo’s.
However an output location of another production line can also be set as ‘lined up’. Now the produced items on the ‘previous’ (linked) production order can directly be used instead of picking the items.
Stock on possible lined up location is not taken in account to create pick list (proposals).

Produce ingredients
This option is used if a linked production order needs to automatically produce stock.
The prerequisites for this to work correctly, is that the lined up location is used as an output location on another production line. At the time of production on the shopfloor, a started production order needs to be found on the production line with as output location the lined up location.

Lined up locations
The current lined up locations

5.2.3.2. Cycle count

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.4. Packing line settings

On a packing line, items that have been picked on a movable location (picking cart) can be packed onto a logistic carrier to be shipped as a logistic unit with an SSCC.
For a packing line the following settings can be made:

5.2.4.1. General

General Tab

Active
Set whether or not the packing line is active.

Block stock from being used for the picking process
If this setting is enabled, the stock on this location cannot be used to put on a proposal. Also when a pick list gets the allocation on location level, these locations are not taken in account.
The locations with this flag to true are added to the view PMX_DISALLOWED_LOCATIONS_FOR_PICKING

5.2.4.2. Cycle count

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.5. Dock settings

At the dock level the following settings can be made:

5.2.5.1. General

General Tab

Active
Set whether or not the dock is active.

Loading & unloading
Whether the dock can be used for loading, unloading or both.

Pick location
Set whether a dock can also be a pick location (e.g. whether or not newly received goods that are still on the receiving dock can already be considered for picking)

Block stock from being used for the picking process
If this setting is enabled, the stock on this location cannot be used to put on a proposal. Also when a pick list gets the allocation on location level, these locations are not taken in account.
The locations with this flag to true are added to the view PMX_DISALLOWED_LOCATIONS_FOR_PICKING

Sequence
The order in which the products at this location will be used to compose a picking order. The pick locations with the lowest sequence number will be used first to complete the pick order.
This option is visible only if the checkbox of Pick location is checked in.

5.2.5.2. Cycle count

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.6. Bin settings

At the bin level (storage location) the general and cycle count settings can be defined:

5.2.6.1 General

General tab

Active
Set whether or not the bin is active.

Location type
The user can define a location type (UDT) and link it with a bin location. This information has no technical use, it is for information purposes only.

The location types to be displayed in the drop-down menu can be set in the Location types (PMX_LOTY) user defined table.

Pick location
Set whether or not the bin is a pick location. If this is not the case the items that are stored at this location cannot be used for composing a shipment (order picking). A bin that is not used for picking (=bulk location) can be used to store safety stock that is used to replenish various pick locations.

Priority picking
If the bin location is a pick location, an additional ’Priority picking’ checkbox is displayed. When this checkbox is checked, the bin location has higher priority during stock allocation for pick lists than other bin locations.

Can be destination for picking
Set whether the bin can be a destination for picking. This means that on the pick list it will be possible to select this location as ‘dock’.

Sequence
The order in which the products at this location will be used to compose a picking order. The pick locations with the lowest sequence number will be used first to complete the pick order.

Block stock from being used for the picking process
If this setting is enabled, the stock on this location cannot be used to put on a proposal. Also when a pick list gets the allocation on location level, these locations are not taken in account.
Replenishment orders will not take stock from locations with this flag enabled.
The locations with this flag set to true are added to the view PMX_DISALLOWED_LOCATIONS_FOR_PICKING.

Can be lined up
Set whether or not the bin can be lined up.

Direct consumption of goods (Production manager):
If the option ‘Can be lined up’ is set to true, this option is visible. By default the lined up locations are not directly consumed when using the production manager (ProductionReceipt flow). The stock is locked for the production order, and it is consumed when stopping the production order using the production manager. If this option is set to true, the goods that are lined up on this location, will be automatically consumed on the receipt from production.

Block move when location is not empty.
If this setting is enabled, a move to this location when it is not empty is not allowed.

Block on different item or batch

  • None: Nothing will happen.
  • Warn: Display a warning message when a different item or a different lot number will be added to that location. This warning is only when using the RF terminals.
  • Block: Block the move when a different item or a different lot number will be added to that location.

Max logistic units
The maximum number of allowed logistic units (SSCC’s).
If stock is not on an SSCC, the system will regard all this stock as 1 logistic unit.
This will not block a move, but is used when proposing locations on the devices.

Quality status
This option will force a certain quality status on the location.
When adding/moving stock to the location, the system will check whether the quality status of the stock matches with the quality status of the location. If the quality status does not match, the following can happen:

  • When booking a move through the handheld device or the Produmex inventory report, the system will automatically set the quality status of the stock to the quality status of the location and then it will perform the move.
  • When booking a move with other processes, the system will not change the quality status of the stock and the move will be blocked.

When performing a direct cycle count on a location with a quality status, newly created stock will get this quality status.

How to set up location where only ‘released’ stock can be stored, but avoid the quality status change when non-released stock is moved on the location

On the Quality status tab disable the ‘Can be put on a pick location’ setting for every quality status that is not allowed on the given location. Then enable the pick location setting for the given bin location. Set the reception/quality control area as a non-pick location.
This way only the allowed quality statuses can be stored on pick locations.

Verification code
The verification code is a unique code which can be used for verifying bin locations in the different flows. It has the same function as a bin location code, but it is more complex, and its use is optional.

By default, you can verify the correct bin location on your scanner by scanning the bin location code or entering it manually, in which case an incorrect code may be entered. With a verification code, you can make sure that the correct bin location is verified since verification codes are not shown on the scanner, forcing the user to scan the barcode instead of manually entering the code.

Providing a verification code is optional and you can either use the verification code or the bin location code for verifying the correct bin location in the different flows:

  • If a verification code is added to a bin location, you need to verify the bin location by scanning its verification code or scanning its bin location code.
  • If no verification code is provided to the bin location, you need to verify the bin location by providing its bin location code.

Please note that a verification code needs to be unique. It cannot be used by another bin, and it cannot be an existing location code. In case you want to add a verification code to more than one bin location, make sure that each bin location has its own, unique verification code. In case you add a verification code which is already used by another bin location, the system will display an error message.

Fixed
Indicates that the storage location is used for specific products. In this case a minimum, maximum quantity is defined for the item on that location.
When a location is fixed, the system will block local moves for other products into that location.

Can be replenished
Enables this option if the bin location can be taken in account for replenishment orders.
A minimum, maximum and replenish quantity needs to be set.
This can only be set when the location is a pick location.

5.2.6.2 Cycle count

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.6.3 Put away

This is used in the functionality 'Location suggestions'

Put away tab

Item location type
This can be used to link a location to an item.
An item can also have an item storage location type.
When locations need to be suggested, and an item has a location item type selected, only locations with the same item location type are allowed. The list of item storage location types is stored in the UDT PMX_ISLT.

Put away zones
This stores for a certain storage location:

  • What the zones are where the items can be placed
  • Or to what put away zone a location belongs to
Put away zone
The put away zone

Sort the pick sequence descending?
Locations belong to a put away zone. How are locations within this zone sorted? Pick sequence descending or ascending?

Location belongs to put away zone?
Does this location belong to a put away zone?
If it is not checked, it means that when goods need to be put away for the current location, the system should look for locations that belong to this zone.
If it is checked, the location belongs to this put away zone.

Sequence number
This is the sequence number for the put away zones. It defines the order in which locations in a put away zone needs to be retrieved.

For more information about the usage see: Location suggestions

Cycle Count Settings

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.7. Moveable location settings

A moveable location is an intermediate storage location: this can be a cart, a movable rack, etc. A moveable location allows the operator to pick one or more orders and pack them onto a logistic carrier at another location (packing station).

5.2.7.1. General

General Tab

In the organization structure it is possible to set the code and name of a moveable location and define whether or not it is active.

Stock on movable locations is not taken in account to create pick list (proposals).

5.2.7.2. Cycle count

A moveable location can also be used in the cycle counting and has the same settings as a bin location.

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.8. Silo/Tank settings

At the level of silo or tank the following settings can be defined:

5.2.8.1. General

General Tab

Active
Set whether or not it is active.

Can be lined up
Set whether or not it can be lined up for production.

Direct consumption of goods (Production manager):
If the option ‘Can be lined up’ is set to true, this option is visible. By default the lined up locations are not directly consumed when using the production manager (ProductionReceipt flow). The stock is locked for the production order, and it is consumed when stopping the production order using the production manager. If this option is set to true, the goods that are lined up on this location, will be automatically consumed on the receipt from production.

Sequence
The order in which the products at this location will be used to compose a picking order. The pick locations with the lowest sequence number will be used first to complete the pick order.

Max quantity
The maximum quantity. His is for informational purposes.
This will not block a move when quantity will be exceeded.

Pick location
Set whether or not it can be used as a pick location

Block stock from being used for the picking process
If this setting is enabled, the stock on this location cannot be used to put on a proposal. Also when a pick list gets the allocation on location level, these locations are not taken in account.
The locations with this flag to true are added to the view PMX_DISALLOWED_LOCATIONS_FOR_PICKING

Block move when location is not empty.
If set, a move to this location when is not empty is not allowed.

Block on different item or batch

  • None: Nothing will happen
  • Warn: Display a warning message when a different item or a different lot number will be added to that location. This warning is only when using the RF terminals.
  • Block: Block the move when a different item or a different lot number will be added to that location.

Fixed
Set whether the silo/tank is reserved for a specific product and if so which are the minimum and maximum quantities.

5.2.8.2. Consumption algorithm

Consumption Algorithm

The consumption algorithm by which the contents of the silo/tank is consumed: differs for fluids or solids (second tab)

  • FEFO: First to expire, first out
  • Silo: Bottom layer (FIFO)
    • based upon the batch ID
    • based upon the move timestamp to the silo
  • Tank: Multi-layer (Consume a part from each batch)
5.2.8.3. Cycle count

Cycle Count

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.9. Thin client settings

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

5.2.9.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.

‘Showroom ThinClient – ParameterSet’

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’

5.2.9.2. Warehouse Tab

Warehouses 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.

5.2.9.3. Users Tab

Users 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.

5.2.10. Printer settings

For printers the following settings can be made:

Windows printer name
The printer name by which the printer is referred to in Windows

Page size
The default page size for the printer

Active
Set whether or not the printer is active.

Default
Set whether it is the default printer

5.2.10.1. Printer search path

These printers are used in flows on the devices.
The system will get the printer with the same page size as the report that needs to be printed.

First the system looks for printers below the device (In the organizational structure). Next the system will look if it can find a printer in higher levels, starting from the device.

If the system still does not find a printer, the system will check for printers starting from a location.
Which location is taken will depend on the flow where the report will be printed.
Example: For a reception, the location will be the receiving dock.

The same search pattern as for the device is used. So first look for a printer below the location, next on higher levels.

When the system finds several printers on the same level, and there is 1 printer defined as default, it will take that printer. Otherwise the system will take the first printer it finds on that level.

Remark: When the system searches for printers on higher levels, it will not go back to a lower level to search for a printer.

5.2.11. Weighing room settings

At the level of a weighing room, the following settings can be defined:

5.2.11.1. General

Active
Set whether the weighing room is active or not.

Input location
The location where the ingredients that needed to be weighed are picked. During the weighing process, stock will be moved to the weighing room from the input location.

Output location
The location where the weighed goods will be moved.

A typical setup is when the input location of the weighing room is the pick to location or the input location of the linked production line and the output location of the weighing room is the input location of the linked production line.

Weigh strategy
The weigh strategy defines whether the stock to weigh can be selected based on the weigh order or the item code.

5.2.11.2. Cycle count

Cycle Count Tab

Allow location to be counted during cycle count
Is the location allowed to be counted?

Allow location to be counted during other operations
Is the location allowed to be counted during other operations? This means that when this location is used on certain flows, the system will check if a count is needed. If so, the system will ask the user to perform a count.

Locations needs to be counted now
When this option is enabled, the location will be counted, regardless of the other settings (Number of days, number of operations, …)

Count after X days
When a location has not been counted for the number of days defined here, the location needs to be counted. If the number is 0, this setting is not taken in account, and the setting on company level is taken.

Count after X operations
If the number of operations since the last count exceeds the defined number of operations, the location needs to be counted. If the number is 0, this setting is not taken in account and the setting on company level is taken.

Locked by (read-only field)
This field shows the key of the user that is locking the location, because he needs to count the location or is currently in process to count the location.
When a location is locked, it cannot be used in other processes.
The location is released by clicking the ‘unlock’ button.
Stock on locked locations is not taken in account to create pick list (proposals).

5.2.12. Scale settings

Define the scale under a weighing room,dock or a packing station. One scale can only belong to a single weighing room/dock/packing station.

At the scale level the following settings can be defined:

Active
Set whether the weighing room is active or not.

Scale definitions
Define the scale on the Scale definitions field.

If the scale is connected without the ScaleComm service, define it with the one of the following formulas:

  • Direct connection: com:/ /Port?Baudrate,Databits,Parity,Stopbits
    Example:
    com://COM3?9600,8,N,1
  • Local network: tcp:/ /IP address
    Example:
    tcp://192.168.1.5:4001

If the scale is connected by using the ScaleComm service, tick the Use as a service checkbox and define the scale with the following formula:

  • http:/ /URL of the server where the service runs/scale code (OSE)/communication parameters
    Example:
    http://192.168.1.2:9991/SCL01/com://COM3?9600,8,N,1

Uom
Select the unit of measurement of the scale from the Uom dropdown list.

Minimum weight
Enter the minimum weigh of the scale in the Minimum weigh field.

Maximum weight
Enter the maximum weigh of the scale in the Maximum weigh field.

Accuracy
Enter the accuracy of the scale to the Accuracy field.
Example: If the number of decimals is 2 – Accuracy: 0.01

Scale commands
Define the scale commands. Select the command type. The following command types are supported:

  • Set tare
  • Set zero
  • Get weight
  • Weight return

The ‘Zero return’ and the ‘Tare return’ commands are not supported yet but are reserved for future use.

Add the description to the Description field and the command to the Command format field.

Command format
Please refer to the user manual of the scale to see the command.

The syntax of the Weight return result string should be a regular expression.

Example:
Weight return string from the scale manual:

<LF><p>w1w2w3w4w5w6<dp>w7w8u1u2<CR><LF>H1H2H3<CR><ETX> 

Weight return string defined for the scale on the Organizational Structure:

\x0a *(?'weight'.+)(?'uom'..)\x0d\x0a.+\x0d\x03
5.2.12.1. How to define multiple scales through one port

Produmex WMS Organizational Structure
First create a ‘scale’ type element in the Organizational Structure of Produmex WMS for the port.
Add a unique code and name. Example:

PORT, Port for scale

Define the port on the Scale definitions field with one of the following formulas:

  • Direct connection: com:/ /Port?Baudrate,Databits,Parity,Stopbits
    Example:
     com://COM3?9600,8,N,1 
  • Local network: tcp:/ /IP address
    Example:
     tcp://192.168.1.5:4001 

Do not check the ‘Use as service’ checkbox.
The ScaleComm service will establish the connection to the port based on the configuration file of the ScaleComm service.

The scales connected through the port will be identified based on the sent command.

Select the command type and add the scale codes and the scale command to the Command format field using the following formula: scale code;command;scale code;command

Example:
Get weight command:

scale01;S6R$;scale02;S7R$

Where:

  • ‘scale01’ = scale code of the first scale
  • ‘S6R$‘= get weight command of the first scale
  • ‘scale02’ = scale code of the second scale
  • ‘S7R$’ = get weight command of the second scale

Weight Return command:

(?'weight'.+)\x0d\x0a;(?'weight'.+)\x0d\x0a

The order and the number of the scale commands must be the same as in the 'Get weight command'.

ScaleComm service
Open the configuration file of the ScaleComm Service.

Add the code of the port defined in the Organizational Structure as the value for ScalesCodes. Example:

 <add key="ScalesCodes" value="PORT" /> 

Make sure that the ‘Skip Polling’ option is set to ‘False’ and adjust the ‘Polling Interval’ if needed.

Scale weigh result
Open the Scale weigh result user table via the following path: Tools> Default forms. Add the scale codes defined on the Command format field as the ‘Code’.

When the ScaleComm Service runs, it will add the weight to the ‘Weigh’ field of the matching scale.

6. Designing Pervasive Dashboards using PMX predefined views

6.1.Design a Pervasive Dashboard

First add the PMX query to the list of the user defined queries. Create a custom query: Tools > Queries > Query Generator.

Add the view name to the ‘From’ clause in the ‘Query generator’ window. Produmex provides predefined views (e.g. PMX_KPI_PACKING, PMX_KPI_PICKING), but it is possible to add custom made views as well. To expand a predefined view, create a custom view which refers to the PMX view in question.

Execute, then save the query.

Then create a new dashboard. Click on the ‘Pervasive Analytics’ button in the toolbar.

Click on the ‘New Dashboard’ button.

Click on the ‘Select Base Data Source’ button to select the data source of the report. Predefined queries and user-defined queries will be listed after clicking. Select the previously created query and click on the ‘Ok’ button.

Adjust the settings and parameters of the dashboard then save.

To pin the dashboard to the welcome screen, click on the ‘Settings’ button and select the ‘Settings’ option from the dropdown menu. In the ‘Select Dashboard’ window, select the dashboard and set the ‘Display’ option to true.

6.2. Predefined Produmex views

KPI picking

The view provides a list of all item quantities picked per user and per pick list. It contains the following columns:

Internal number
The internal number of the user.

User code
The code of the user.

PickListNumber
The pick list number.

WaveKey
The wave key of the pick list.

CreateDate
The date when the picking was performed.

CreateTime
The time (hour, minute) when the picking was performed.

Item code
The item code of the picked item. Different batches are displayed in separate lines.

ItemDescription
The description of the picked item.

Quantity
The picked quantity from the batch in the uom applied in the sales order that was the base of the pick list.

Quantity per uom
The conversion rate between the base uom of the item and the uom applied in the sales order.

Inventory quantity
The picked quantity in the base uom.

Quantity uom2
The quantity for the second uom.

KPI packing

The view provides a list of all item quantities packed per user and per pick list. It contains the following columns:

Internal number
The internal number of the user.

User code
The code of the user.

PickListNumber
The pick list number.

WaveKey
The wave key of the pick list.

CreateDate
The date when the picking was performed.

CreateTime
The time (hour, minute) when the picking was performed.

Item code
The item code of the picked item. Different batches are displayed in separate lines.

ItemDescription
The description of the picked item.

Quantity
The picked quantity from the batch in the uom applied in the sales order that was the base of the pick list.

Quantity per uom
The conversion rate between the base uom of the item and the uom applied in the sales order.

Inventory quantity
The picked quantity in the base uom.

Quantity uom2
The quantity for the second uom.

7. How to customize Produmex WMS views

It is possible to customize some of the Produmex WMS queries through the use of the views.

7.1. List of customizable queries

Picklist proposal manager screen
Controller: 5.1.3.60. Picklist proposal manager screen controller
Standard view name

  • Production: PMX_PICKLIST_PROPOSAL_MANAGER_PRODUCTION
  • Sales: PMX_PICKLIST_PROPOSAL_MANAGER_SALES
  • Transfer: PMX_PICKLIST_PROPOSAL_MANAGER_TRANSFER

Stock allocation screen
Controller: 5.1.3.59. Stock allocation controller
Standard view name

  • Customer info: PMX_STOCK_ALLOCATION_SCREEN_CUSTOMER
  • Sales order info: PMX_STOCK_ALLOCATION_SCREEN_SALES_DOCUMENT

Route planning
Controller: 5.1.3.52. Route controller
Standard view name

  • Route details: PMX_ROUTE_PLANNING_DETAILS
    Because the order of the rows is defined in the ‘Route planning’ window, there is no ‘Order by’ field on the controller.
  • Open picklists: PMX_ROUTE_PLANNING_OPEN_PICK_LIST_PROPOSALS

Open documents report
Controller: 5.1.3.66. Open documents screen controller
Standard view name

  • Route: PMX_OPEN_DOCUMENT_REPORT_ROUTE
  • Pick list: PMX_OPEN_DOCUMENT_REPORT_PICKLIST
  • Proposal: PMX_OPEN_DOCUMENT_REPORT_PICKLIST_PROPOSAL
  • Move order: PMX_OPEN_DOCUMENT_REPORT_MOVE_ORDER
  • PMX Sales Shipping: PMX_OPEN_DOCUMENT_REPORT_PMX_SALES_SHIPPING
  • Container: PMX_OPEN_DOCUMENT_REPORT_CONTAINER
  • Weight orders: PMX_OPEN_DOCUMENT_REPORT_WEIGH_ORDER

Open sales order form
Controller: 5.1.3.42. Open Sales Orders Controller
Standard view name

  • PMX_OPEN_SALES_ORDERS_WITH_STOCK_STATUS

7.2. Customization process

Note: It is recommended to use the Form Setting tool for disabling a column or for changing the order of columns because making these changes in the view might cause issues with the query.

Example: stock allocation screen- customer

Open the controller of the view.

7.2.1. View name

The ‘View name’ field is filled with the standard view by default.
To customize the grid, make a copy of the standard view and adjust it. Do not adjust the standard view, because it will be overwritten during a version update.
Note: When adding columns always paste the new columns after the default columns. The order of the columns can be changed later on with the Form Setting tool.

In the example we added a new column with the source table.

Copy the new view name and paste it to the ‘View name’ field, then save it. Always restart the add-on after a parameter change.

7.2.2. Order by

To customize the sorting of the grid, change the clause in the ‘Order by’ field.
The order by clause will be included at the end of the query using the view. It can contain any column referenced by the view.

Note: When using SAP HANA, column names are case sensitive. Don’t forget the quotation marks when they are needed.

After adding the clause save it. Always restart the add-on after a parameter change.

7.2.3. Form setting tool

Open the ‘Form Setting’ window and go to the ‘Table Format’ tab.
To change the order of the grid, click on and hold a ‘Column’ field then drag and place it to the desired position. After saving it, the grid will be displayed with the newly set order.

To disable a column, disable the ‘Visible’ box next to the ‘Column’ field. After saving it, the disabled column will not be visible in the grid.

Please note: The customizations made by the Form Settings tool will affect only the user. To hide a column from every user, use the localization file. Please see: 7.3.3. Hide column

7.3. Localization

When adding a custom view without a translation file, the system will take the column name from the view.

To change the column name or to support more than one language, create a new custom translation file from the standard ‘ImportLocalizationKeys.xml’ translation file. The standard translation file can be found under the ‘Localization’ folder in the install zip.

Open the file with a text editor and find the Localization Key of the view. The Localization Key can be seen on the controller of the view.

Localization Key

Copy the node within <PmxLocalizationKey> and paste it to a new file. Make sure that you added the root tags.

<?xml version="1.0" encoding="UTF-8"?>
<TestRoot>
</TestRoot>

7.3.1. Add the translation of a custom column

The node within <PmxLocalizationProperty> contains the translation of one column. Copy the node of any column and paste it right after the <LocalizationProperties> tag or after any </PmxLocalizationProperty> tag.

Change the column number in Columns[number of the column].Title/Header Text after <LocalizationProperty>. The new column number must be one more than the existing highest column number.

The node within <PmxLocalizationValue> contains the localization value of a language.

The <LanguageCode> defines the language. You can find the languages and language codes on the OLNG table. Add the column title as the <LocalizationValue> to the node containing the corresponding <LanguageCode>. It is not mandatory to keep the localization values of every language. You can delete the <PmxLocalizationValue> nodes containing the code of languages not required.Save the file in xml format.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<TestRoot>
<PmxLocalizationKey>
    <Canceled>False</Canceled>
    <LocalizationKey>Logex.AddOn.RoutePlanningControl.GrdPicklistsWithoutRoute</LocalizationKey>
    <ApplicationTypeCode>SBOGUIAP</ApplicationTypeCode>
    <LocalizationProperties>
   

   <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[1].HeaderText</LocalizationProperty>
        <ExtensionCode>CONVSTR</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Type</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>Type</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>
   

 </LocalizationProperties>
  </PmxLocalizationKey>
</TestRoot>

7.3.2. Edit the title of a standard column

It is also possible to change the title of a standard column. Find the column based on the column number then simply rewrite the text after the <LocalizationValue> tag in the node with the corresponding <LanguageCode>.

7.3.3. Hide column

To hide a column from every user, add a new <PmxLocalizationProperty> node in the same way as described above. Change the <ExtensionCode> to ‘CONVBOOL’.

As the <LocalizationProperty> add Columns[number of the column].Visible. Add ‘False’ as the <LocalizationValue> to the node with the respective <LanguageCode>.

When using multiple languages, create a <PmxLocalizationValue> node for every used language.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<TestRoot>
<PmxLocalizationKey>
    <Canceled>False</Canceled>
    <LocalizationKey>Logex.AddOn.RoutePlanningControl.GrdPicklistsWithoutRoute</LocalizationKey>
    <ApplicationTypeCode>SBOGUIAP</ApplicationTypeCode>
    <LocalizationProperties>
   

    <PmxLocalizationProperty>
        <Canceled>False</Canceled>
        <LocalizationProperty>Columns[13].Visible</LocalizationProperty>
        <ExtensionCode>CONVBOOL</ExtensionCode>
        <LocalizationValues>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>3</LanguageCode>
          </PmxLocalizationValue>
          <PmxLocalizationValue>
            <Canceled>False</Canceled>
            <LocalizationValue>False</LocalizationValue>
            <LanguageCode>16</LanguageCode>
          </PmxLocalizationValue>
        </LocalizationValues>
      </PmxLocalizationProperty>


</LocalizationProperties>
  </PmxLocalizationKey>
</TestRoot>

7.3.4. Import the translation file

Use the Produmex Import Tool to import the translation file.

Select the database with the connection string then add the file path to the field next the ‘Import Localization’ button or click on the ‘Browse’ button and browse the file. Click on the ‘Import Localization’ button to import the file. Restart the add-on.

Import tool

The translation file will be overwritten during a Produmex database upgrade therefore you have to repeat the import after every Produmex database upgrade.

How to setup a scale

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.

9. Best practices

9.1. Custom reports

When creating custom reports, based on a default report, it is best to rename the reports, to avoid it to be overwritten after an upgrade.

When the default stored procedure provided by Produmex needs to be extended, it is also best to rename the stored procedure. Otherwise the changes will be overwritten after upgrading, or running the update database tool.

9.2. Cached data

Some master data is cached by Produmex. This is done to avoid to query this information each time this is needed, thus improving the performance.

So when making changes to item master data, organizational structure, … the add-on and device applications should be restarted.

10. Application configurations

10.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

Add-On Loader

Fat Client

ScaleCommService

Notification Listener

10.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, for examlpe: C:\Program Files(x86)\SAP\SAP Business One\AddOns\PMX\Produmex AddOnLoader 7
The file name is Produmex.Foundation.Sbo.AddOnLoader.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.

10.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 (x86)\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.

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)

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 (x86)\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

10.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 (x86)\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

10.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.

10.6.1. Logging into an UDT

10.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
10.6.1.2. Modify config file
10.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.

10.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>
10.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.

10.6.2. Logging into a separate database

10.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.

10.6.2.2. Modify config file
10.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>
10.6.2.2.2. Trigger Ado Net Appender

Please see: 10.6.1.2.1. Trigger Ado Net Appender

10.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.

11. Import tool

The import tool can be used to import elements through files to the Produmex system or to copy them directly from one database to another.

1. Import via files

Before starting the import, create the Produmex managed warehouse.

First create the SAP warehouse. Then create the company and the Produmex warehouse under the company in the Organizational Structure and link the SAP warehouse to it.

Zones and bin locations can only be imported into existing warehouses managed by Produmex.

1.1. Preparation

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

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

1.1.1. Zone

  • 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 flow ‘Zone picking’?

Fill in relevant data in the worksheet Zone 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

1.1.2. Bin

  • 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)
  • 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.

Fill in relevant data in the worksheet Bin 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
E01A001;E01A001;Zone1;Y;N;N;100;Y;N;N;Y;0;;
A05A05;A05A05;Zone2;Y;N;N;120;Y;N;N;Y;0;;

1.1.3. BinItem

  • 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 relevant data in the worksheet Bin Item 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

1.1.4. Customer Shelf life

  • 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 relevant data in the worksheet Customer Shelf life and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;CardCode;ShelfLifeInDays
A006;K00001;94

1.1.5. Item zonetypes

  • 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 relevant data in the worksheet Zone Types and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;ZoneTypeCode
A006;C

1.1.6. Packaging types

  • 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 relevant data in the worksheet Packaging Types 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

1.1.7. Item Batch Attributes

  • 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 relevant data in the worksheet Item Batch Attributes 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

1.1.8. Box Type For WAS

  • Code: The code.
  • Name: The 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 relevant data in the worksheet Box Type For WAS 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

1.1.9. Box For WAS

  • 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 relevant data in the worksheet Box For WAS 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

1.1.10. Route Header

  • 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 relevant data in the worksheet Route Header 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

1.1.11. Route Line

  • 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 relevant data in the worksheet Route Line 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.1.12. Location PutAwayZones

  • 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 relevant data in the worksheet Location Put Away Zones 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

1.1.13. Item allergen

  • 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 relevant data in the worksheet ImportItemAllergens and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;AllergenCode;CanContainAllergen
A006;GLUTEN;Y
A006;EGGS;N

1.1.14. Item – Card Code/Quality status

  • 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 relevant data in the worksheet ImportItemSupplierQualityStatus.csv and save the worksheet as a CSV file. The CSV file should look like this:

ItemCode;CardCode;QualityStatusCode
A006;V00002;BLOCKED

1.1.15. Item-Warehouse-Location or Zone

  • 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 relevant data in the worksheet ImportItemWarehouseLocationOrZone 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

1.1.16. Organizational Structure settings

Export the configurations of the source database. Click on the ‘Export’ button on the General tab of the Organizational Structure.

The configurations will be exported to an .xml file.

Select the destination folder for the export. The default folder is C:\Program Files (x86)\SAP\SAP Business One\AddOns\PMX\Produmex AddOnLoader 7

„The export is finished” message indicates that the export is finished.

The following configurations will be exported:

  1. General settings (Except the Language, the Logo and the DB Credentials.)
  2. 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)
  3. Production tab settings: Quality status production

This export file can be used by our support team to match the settings in their environment.

1.2. Import tool

The import tool can be found in the installation folder of the Produmex tools:

Launch the import tool by executing Produmex.Sbo.Logex.Tools.ImportTool.exe. To define the destination database, select a connection string from the ‘Connection’ dropdown list. Every connection string defined in the configuration file of the import tool (Produmex.Sbo.Logex.Tools.ImportTool.exe.config) can be selected.

The selected connection string will connect the database to the tool. After the connection string has been selected, the system displays the connected database.

Restart the add-on after the import is finished.

1.2.1. General import

In the General import section, select the import type in the ’Import type’ dropdown list. The following import types can be selected:

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

Browse the file then click on the Import button. The application will show you that the import is finished at the bottom of the screen.

1.2.2. Import OSE objects (.csv)

Browse the CSV file and select the type in the ’Type’ dropdown list. The following types can be selected:

  • Bin
  • BinItem
  • Zone
  • Bin Item WAS

Click on the ’Import OSE objects (.csv)’ button. The application will show you that the import is finished at the bottom of the screen.

1.2.3. Import Route Templates

Browse the Route Header .csv file in the ‘Route Template Header’ field and browse the Route Line .csv file in the 'Route Template Line’ field. Click on the ‘Import Route Templates (.csv)’ button. The application will show you that the import is finished at the bottom of the screen.

1.2.4. Import Put away zones

Browse to the CSV file next to the button ‘Import Put away zones’. Select the type from the ’Type’ dropdown list. Click on the button ’Import Put away zones’. The application will show you that the import is finished at the bottom of the screen.

2. Copy data

2.1. Select the source and destination database

Launch the import tool by executing Produmex.Sbo.Logex.Tools.ImportTool.exe. To define the source database, select a connection string from the ‘Source database’ dropdown list. To define the destination database, select a connection string from the ‘Destination database’ dropdown list.

The database version of the destination database must be the same as the database version of the source database.

The selected connection strings will connect the databases to the tool. After the connection string have been selected, the system displays the connected databases.

2.2. Copy OSE

Press the ‘Copy OSE’ button to copy PMX created structure elements from the Organizational Structure of the source database and import them to the destination database.

Please note: If there are fixed bin locations or bin locations that can be replenished in the source database, the fixed items/items to be replenished must be exist in the destination database.

2.3. Copy Stock

Click on the ‘Get data’ button to get the list of quality statuses from the source database and the price lists from the destination database.

Then select the quality status from the ‘Quality status’ dropdown list. Every quality status defined in the source database are listed.
Next select the price list from the ‘Pricelist’ dropdown list. Every price list existing in the destination database will be listed.

The selected quality status and price list will be applied to the stocks imported in the destination database. Press the ‘Copy Stock’ button to import the stock with the previously defined parameters from the source database to the destination database.

Please note: Before starting the import, make sure that the following exists in the destination database:

  • Every item that are on stock in the source database is defined in the destination database
  • The storage locations where the stock is stored is defined in the destination database too
implementation/wms/confguide_complete.txt · Last modified: 2019/07/29 13:48 by vise