Table of Contents

Put Away Strategy and Move Restrictions

Overview

Location attribute types and values:
You can define location attribute types and valid values for zones and bin locations in the Organizational Structure. The defined location attribute types and valid values can be used in the new Produmex Transaction Notification stored procedures for put-away suggestions and move restrictions.

The defined location attribute types and their values are automatically inherited from the main zone to sub-zones and bin locations and from sub-zones to bin locations. When a sub-zone or bin location inherits location attribute values, the system allows for selecting a different location attribute value later on.

Put away strategy:
With Produmex WMS it is possible to define which destination locations the Mobile Client should display when putting away stock in the warehouse. A hook flow can be used for customization purposes in a way that is optimal for your warehouse. Based on the customization, the system allows for scanning or selecting only the defined destination locations in the Put Away Flow.

Move restrictions:
With the help of Produmex Transaction Notification stored procedures, you can also define restrictions. When you move stock, you can make sure that the stock is not moved to the wrong destination location within the warehouse. Move restrictions can be defined for locations that are created in the Organizational Structure as bin locations. Through the validation location chain, all types of moves (including SBO and PMX) are validated.

1. Location attribute types and values

Location attribute types

Location attribute types can be defined for zones and bin locations on the Produmex Location Attribute Types (PMX_OSAT) default form with the following convertor types:

The defined location attribute types can be selected in the Organizational Structure > zone or bin location element > Attributes tab > Attribute Code drop-down menu.

Attribute Code drop-down menu

Location attribute values

In the Attribute Value field you can add values to the location attribute types based on the convertor defined for the location attribute type.

Attribute values

Inherited location attribute types and values

The defined location attribute types and their values are automatically inherited from the main zone to sub-zones and bin locations and from sub-zones to bin locations.

If the Is Inherited Value column shows True, the location attribute type and the value are inherited from the zone.

Inherited location attributes

PMX_SP_GetOseAttributeValues stored procedure

You can reach the defined location attribute types and values with the help of the PMX_SP_GetOseAttributeValues stored procedure. It returns the table PMX_OSAV filtered by an OSE Code (Bin Code, Zone Code etc.) set in the stored procedure parameter oseCode.

ParameterType
oseCodenvarchar(50)

The description of table PMX_OSAV can be found here

2. Put away strategy

The name of the hook flow is PutAwayDestinationLocationHookScript and it can be customized on the Workflows tab of the Organizational Structure.

Based on the customization, the system allows for scanning or selecting only the defined destination locations on the Scan a Destination Location and Select a Destination Location screens of the Put Away Flow.

If there is only one location defined and the location is not available for some reason, you are not able to move the stock to any other location not defined in the hook flow.

If you try to move the stock to the wrong location, the Mobile Client displays an error message.

During the flow the system displays the default location on the Scan a Destination Location screen. The default location is the first location returned from the stored procedure.

Defualt location

The hook flow is called if the following settings are disabled:

The input parameter of the hook flow: object[] FlowParameters

The content of the array:

ParameterTypeDescription
currentFlowParameters[0]integerluid
currentFlowParameters[1]stringsscc
currentFlowParameters[2]Collection<string>list of item codes
currentFlowParameters[3]doublequantity to move
currentFlowParameters[4]Collection<string>list of zone types for items
currentFlowParameters[5]stringsource location
currentFlowParameters[6]stringwarehouse
currentFlowParameters[7]enum LocationFilterlocation filter, possible values:
All = 0,
Empty = 1,
NotFull = 2,
NotFullAndIgnoreNonLuidStock = 3

Output parameter of the hook flow: DataSet Location

The required column names are listed below and extra columns are also allowed.

Required column nameDescription
Codelocation code
Descriptionlocation description
WarehouseCodewarehouse code
WarehouseNamewarehouse name

The hook flow contains the call of a sample stored procedure (SP_EXAMPLE_PUTAWAY_DESTINATION) that must be renamed. The sample stored procedure has a HANA and an MS SQL version. The necessary parts must be uncommented. You also have the opportunity to use less parameters and you can remove the unnecessary ones.

The code also contains example stored procedures that are commented.

MS SQL stored procedure example:

CREATE PROCEDURE [dbo].[SP_EXAMPLE_PUTAWAY_DESTINATION] @luid INT
,@sscc NVARCHAR(20)
,@listOfItemCode NVARCHAR(MAX)
,@quantityToMove NUMERIC(19, 6)
,@listOfZoneTypesForItems NVARCHAR(MAX)
,@sourceLocation NVARCHAR(50)
,@warehouse NVARCHAR(50)
,@selectLocationFilter NVARCHAR(100)
AS
BEGIN
SELECT "PMX_OSSL"."Code" AS "Code"
,"PMX_OSSL"."Name" AS "Description"
,"PMX_OSEL"."PmxWhsCode" AS "WarehouseCode"
,"PMX_OSWH"."Name" AS "WarehouseName"
FROM "PMX_OSSL"
INNER JOIN "PMX_OSEL" ON "PMX_OSEL"."Code" = "PMX_OSSL"."Code"
INNER JOIN "PMX_OSWH" ON "PMX_OSEL"."PmxWhsCode" = "PMX_OSWH"."Code"
INNER JOIN "OWHS" ON "OWHS"."WhsCode" = "PMX_OSWH"."SboWhsCode"
AND "OWHS"."U_PMX_IMBP" = 'Y'
WHERE "PMX_OSSL"."IsActive" = 'Y'
END

HANA stored procedure example:

CREATE PROCEDURE "SP_EXAMPLE_PUTAWAY_DESTINATION" (
p_luid INT
,p_sscc NVARCHAR(20)
,p_listOfItemCode NVARCHAR(255)
,p_quantityToMove NUMERIC(19, 6)
,p_listOfZoneTypesForItems NVARCHAR(255)
,p_sourceLocation NVARCHAR(50)
,p_warehouse NVARCHAR(50)
,p_selectLocationFilter NVARCHAR(100)
) LANGUAGE SQLSCRIPT
AS
BEGIN
SELECT "PMX_OSSL"."Code" AS "Code"
,"PMX_OSSL"."Name" AS "Description"
,"PMX_OSEL"."PmxWhsCode" AS "WarehouseCode"
,"PMX_OSWH"."Name" AS "WarehouseName"
FROM "PMX_OSSL"
INNER JOIN "PMX_OSEL" ON "PMX_OSEL"."Code" = "PMX_OSSL"."Code"
INNER JOIN "PMX_OSWH" ON "PMX_OSEL"."PmxWhsCode" = "PMX_OSWH"."Code"
INNER JOIN "OWHS" ON "OWHS"."WhsCode" = "PMX_OSWH"."SboWhsCode"
AND "OWHS"."U_PMX_IMBP" = 'Y'
WHERE "PMX_OSSL"."IsActive" = 'Y';
END

3. Move restrictions

Location Validation Chain


(1) PMX_SP_LocationValidation stored procedure

Make sure that the stored procedure is not customized. It is overwritten each time Produmex WMS is upgraded.

Description:

ParameterType
luidint
itemCodenvarchar(50)
quantitynumeric(19,6)
locationnvarchar(50)
isSourceStorageLocationchar(1)
isDestinationStorageLocationchar(1)
resultchar(1)output
errorMessagenvarchar(255) output

(2) PMX_SP_LocationValidation_Custom stored procedure

The stored procedure can be customized.

Description:

ParameterType
luidint
itemCodenvarchar(50)
quantitynumeric(19,6)
locationnvarchar(50)
isSourceStorageLocationchar(1)
isDestinationStorageLocationchar(1)
resultchar(1) output
errorMessagenvarchar(255) output

4. Logging time

The system tracks the start date and the end date of calling the hook flow and the stored procedure and does the logging in milliseconds in the PMX_LOGT table. You can use the table to determine if the custom stored procedure causes any performance issues.

This function is defined by the PMX_OSCO.EnableTimeLoggingToTable hidden setting. By default, the setting is enabled.

The PMX_LOGT table contains the following fields:

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
StartDate Date/Time Date -