User Tools

Site Tools


implementation:wms:functional_guide:put_away_strategy

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:

  • String (collection of characters)
  • Int (integer)
  • Double (number with decimal)
  • Date
  • List

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.

  • In case of location attribute types with convertor String, Int, Double and Date, you can manually add values in the Attributes Value field.
  • In case of location attribute types with List convertor type, the Attribute Value drop-down menu lists the valid values for the selected location attribute type. The list of the drop-down menu can be defined on the Valid Values for Produmex Location Attributes (PMX_OAVV) default form.

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.

  • The inherited location attribute type cannot be deleted manually on the level of sub-zones and bin location. If the location attribute type of the main zone is deleted, the system also deletes the location attribute type of the sub-zone and the bin location (see exception below).
  • The inherited location attribute value can be changed in the Attribute Value field. In this case the inherited location attribute type is not deleted automatically when the location attribute type of the main zone is deleted.
  • If a sub-zone or a bin location has got its own location attribute type and value and later on the same location attribute type is added to the main zone with a different value, the system does not overwrite the location attribute value on the level of the sub-zone and bin location.

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:

  • Use suggested locations? setting on the Location controller
  • Use Location Suggestions? on the warehouse level of the Organization Structure

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:

  • The result output parameter determines whether the bin location is valid or not.
  • 'Y' means true, otherwise false and the errorMessage can contain the validation error.
  • It calls the PMX_SP_LocationValidation_Custom and logs the execution time of that call to the table PMX_LOGT.
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:

  • The result output parameter determines whether the bin location is valid or not.
  • 'Y' means true, otherwise false and the errorMessage can contain a custom validation error, which is shown in SAP Business One or on the Mobile Client.
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 -
implementation/wms/functional_guide/put_away_strategy.txt · Last modified: 2021/12/20 08:48 by vise