Improved control for discrete constraints

It is now possible to explicitly decide the values that must be passed to the Planning Engine (in Supply Planning to the Optimization Engine) for discrete constraints. For example, batch size (production increment) is used in Planning Engine and in Supply Planning by Replenishment Engine and Optimization Engine. For Replenishment Engine, the batch size value cannot be Null and value defaults to 1. However, batch size is a discrete constraint in Planning Engine and in SP Optimization Engine, where passing a non-null value for many production processes may cause performance degradation when discrete constraints are enabled.

Improved control is now available for the following discrete constraints in SCO model:

  • Batch size, used by processes
  • Minimum batch size, used by processes and process groups
  • Minimum purchase used by supplier allocations
  • Number of vehicles used together with vehicle capacities to calculate max shipments, which is in turn used by routes and routes out.

In Planning Engine and Supply Planning, the following four application variables are now available to control the usage of the above-mentioned discrete variables in SCO.

In Planning Engine:

  • scv_apsco_use_discrete_batch_size
  • scv_apsco_use_discrete_min_batch_size
  • scv_apsco_use_discrete_min_purchase
  • scv_apsco_use_discrete_num_vehicles

In Supply Planning:

  • scv_spls_use_discrete_batch_size
  • scv_spls_use_discrete_min_batch_size
  • scv_spls_use_discrete_min_purchase
  • scv_spls_use_discrete_num_vehicles

The default value for the new application variables is 0 (off), where the imported (discrete) values are passed to the engine. When the application variables are set to 1, user-defined discrete values are passed to the engine.

To support separated discrete properties, these SCV entities have been extended to include new discrete properties:

  • PROCESS_GROUP with min_batch_size_discrete and xs_min_batch_size_discrete
  • ROUTING with min_batch_size_discrete,batch_size_discrete and xs_min_batch_size_discrete,xs_batch_size_discrete
  • ITEM_SOURCING with min_purchase_discrete and xs_min_purchase_discrete
  • TRANSPORTATION_ROUTE with max_shipments_discrete and xs_max_shipments_discrete
  • TRANSPORTATION_DOCK with max_shipments_discrete and xs_max_shipments_discrete
  • TRANSPORTATION_ROUTE with number_of_vehicles_discrete and xs_number_of_vehicles_discrete
  • TRANSPORTATION_DOCK with number_of_vehicles_discrete and xs_number_of_vehicles_discrete
  • PROCESS_GROUP_BUCKETS, with min_batch_size_discrete
  • TRANSPORTATION_ROUTE_BUCKETS, with number_of_vehicles_discrete

Previously, imported values from the ERP have been automatically passed to the engine, resulting in the usage of these discrete constraints in almost all cases. Now, the new application variables control the usage of the constraints. For backward compatibility, default behavior is the same; imported values are automatically passed to the engine. However, the user now has the option to decide, for each discrete constraint, if the imported value or the user-defined value must be used. No value is passed to the engine if no user-defined value exists.

In Planning Engine interface services reading from SCV, the application variables are used to determine which value must be loaded into SCO. After the interface service execution, the engine already has the final value for the discrete constraints.

In Supply Planning, interface services reading from SCV loads two values: original value imported from the ERP and the calculated value based on the corresponding application variable. In Supply Planning, the loaded values are saved in dual measures, respectively, one for imported and the other for the ‘discrete’ measure. In the end, the ‘discrete’ measures are passed to the engine. Users can alter the discrete values in Supply Planning as required.

These views are updated:

  • SP_V_PROCESS_GROUPS: Added min_batch_size_discrete
  • SP_V_PROCESSES: Added batch_size_discrete and min_batch_size_discrete. Updated batch_size (using res_* columns)
  • SP_V_SUPPLIER_ALLOCATIONS: Added min_purchase_discrete. Updated min_purchase_qty (using res_* column)
  • SP_V_ROUTES: Added number_of_vehicles, number_of_vehicles_discrete and max_shipments_discrete (using number_of_vehicles_discrete in the calculation)
  • SP_V_ROUTES_OUT: Added number_of_vehicles, number_of_vehicles_discrete and max_shipments_discrete (using number_of_vehicles_discrete in the calculation)
  • SP_V_ROUTE_CALENDAR: Added max_shipments_discrete (using number_of_vehicles_discrete in the calculation)
  • SP_V_ROUTE_OUT_CALENDAR: Added max_shipments_discrete (using number_of_vehicles_discrete in the calculation)
  • SP_V_PROCESS_GROUP_CALENDAR: Added min_batch_size_discrete

These new measures are added:

  • SPLS_PURCHASE_MIN_D: Minimum Purchase Qty (Discrete Constraint)
  • SPLS_PURCHASE_MIN_SUM_D: Sum of Minimum Purchase Qty (Discrete Constraint)
  • SPLS_PURCHASE_MIN_COUNT_D: Count of Minimum Purchase Qty (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_MAX_D: Transport Route Max (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_MAX_COUNT_D: Count of Transport Route Max (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_MAX_SUM_D: Sum of Maximum Transport Route Qty (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_D: Transport Route Out Max (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_DEFAULT: Transport Route Out Max Default
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_COUNT_D: Count of Transport Route Out Max (Discrete Constraint)
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_SUM_D: Sum of Maximum Transport Route Out Qty (Discrete Constraint)
  • SPLS_ROUTE_VEHICLE_COUNT_D: Route Number of Vehicles (Discrete Constraint)
  • SPLS_ROUTE_OUT_VEHICLE_CAPACITY: Route Out Vehicle Capacity
  • SPLS_ROUTE_OUT_VEHICLE_COUNT: Route Out Number of Vehicles
  • SPLS_ROUTE_OUT_VEHICLE_COUNT_D: Route Out Number of Vehicles (Discrete Constraint)
  • SPLS_ROUTE_OUT_VEHICLE_COUNT_BUCKET: Route Out Number of Vehicles Bucket
  • SPLS_ROUTE_VEHICLE_COUNT_BUCKET_D: Number of Vehicles Bucket (Discrete Constraint)
  • SPLS_ROUTE_OUT_VEHICLE_COUNT_BUCKET_D: Route Out Number of Vehicles Bucket (Discrete Constraint)

These measures are deprecated:

  • SPLS_TRANSPORT_ROUTE_MAX_BUCKET
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_BUCKET

These new calculation rules are added:

  • SPLS_PURCHASE_MIN_SUM_D: 121170
  • SPLS_PURCHASE_MIN_SUM_D: 121180
  • SPLS_PURCHASE_MIN_D: 121190
  • SPLS_PURCHASE_MIN_COUNT_D: 121200
  • SPLS_PURCHASE_MIN_D: 121210
  • SPLS_TRANSPORT_ROUTE_MAX_SUM_D: 121220
  • SPLS_TRANSPORT_ROUTE_MAX_D: 121230
  • SPLS_TRANSPORT_ROUTE_MAX_COUNT_D: 121240
  • SPLS_TRANSPORT_ROUTE_MAX_D: 121250
  • SPLS_ROUTE_VEHICLE_COUNT_D: 121260
  • SPLS_ROUTE_VEHICLE_COUNT_D: 121270
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_SUM_D: 121280
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_D: 121290
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_COUNT_D: 121300
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_D: 121310
  • SPLS_ROUTE_OUT_VEHICLE_COUNT_D: 121320
  • SPLS_ROUTE_OUT_VEHICLE_COUNT_D: 121330
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_DEFAULT: 121340
  • SPLS_ROUTE_OUT_VEHICLE_COUNT: 121350
  • SPLS_ROUTE_OUT_VEHICLE_COUNT: 121360
  • SPLS_ROUTE_VEHICLE_CAPACITY: 121370
  • SPLS_ROUTE_VEHICLE_CAPACITY: 121380
  • SPLS_ROUTE_OUT_VEHICLE_CAPACITY: 121390
  • SPLS_ROUTE_OUT_VEHICLE_CAPACITY: 121400

Added or modified these calculation rules to use the discrete vehicle counts. These two measures are passed to SCO as maximum shipments:

  • SPLS_TRANSPORT_ROUTE_MAX_DEFAULT: 120964
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_DEFAULT: 121340

Deprecated these calculation rules:

  • SPLS_TRANSPORT_ROUTE_MAX_SUM, 120412
  • SPLS_TRANSPORT_ROUTE_MAX_BUCKET, 120963
  • SPLS_TRANSPORT_ROUTE_MAX_BUCKET, 120965

Updated these calculation rules to remove pconst from target extension:

  • SPLS_TRANSPORT_ROUTE_MAX_SUM, 120411
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_SUM, 120411

Updated these worksheets to include the new discrete measures in parameters rv_measure_passed, rv_measure_editable and rv_measure_calc:

  • SPLS_Supplier Allocations
  • SPLS_Transportation Routes
  • SPLS_Transportation Routes Out
  • SPLS_Transportation Routes Time Phased
  • SPLS_Transportation Routes Out Time Phased
  • SPLS_Process Groups by Bucket

Added these new business metrics:

  • SPLS_TRANSPORT_ROUTE_OUT_MAX
  • SPLS_TRANSPORT_ROUTE_OUT_MAX_DEFAULT

Renamed or replaced this business metric:

  • Renamed SPLS_TRANSPORT_ROUTE_MAX_BUCKET to SPLS_TRANSPORT_ROUTE_MAX

Added these new interface services to import time-phased routes out information from SCV and to export back to SCV:

  • SPLS - SCV -Import Routes Out Calendar
  • SPLS - SCV -Export Values SM_TRANSPORTATION_DOCK_BUCKETS

Added this new macro to export time-phased routes out information:

  • S+ Publish TP Transport Route Out Measures to SCV

Updated this macro to import time-phased routes out information:

  • S+ Import Supply Plan

Updated the following interface services to use the new discrete columns when corresponding application variable = 1, otherwise use the existing column. The existing (imported) column and discrete columns are selected in the interface service queries. In interface service mappings, columns are mapped to the corresponding measures.

  • SPLS - SCV -Import Process Groups
  • SPLS - SCV Import Processes
  • SPLS - SCV Import Supplier Measures
  • SPLS - SCV Import Routes Out Tuple
    • In addition: Removed route_out_capacity column from IS query
  • SPLS - SCV -Import Routes
    • In addition: Removed capacity column from IS query
  • SPLS - SCV -Import Process Groups
  • SPLS - SCV -Import Routes Calendar
  • SPLS - SCV -Import Routes Out Calendar
  • SPLS - AP -Export Routes Out
    • Updated to map Routes Out.max shipments to SPLS_TRANSPORT_ROUTE_OUT_MAX_DEFAULT
  • SPLS - AP -Export Process Group Calendar
    • Updated to pass discrete measure SPLS_PROCESS_GRP_MIN_BATCH_BUCKET_D
  • SPLS - AP -Export Route Calendar
    • Updated to pass discrete measure SPLS_TRANSPORT_ROUTE_MAX_D
  • SPLS - AP -Export Route Out Calendar
    • Updated to pass discrete measure SPLS_TRANSPORT_ROUTE_OUT_MAX_D
  • SPLS - AP -Export Supplier Allocations
    • Updated to pass discrete measure SPLS_PURCHASE_MIN_SUM_D
  • SPLS - SCV -Import Process Groups Calendar
    • Updated query and mappings to populate the discrete measure SPLS_PROCESS_GRP_MIN_BATCH_BUCKET_D
  • SPLS - SCV -Import Routes Calendar
    • Updated query and mappings to populate the discrete measure SPLS_ROUTE_VEHICLE_COUNT_BUCKET_D
  • SPLS - SCV -Export Values SM_PROCESS_GROUP_BUCKETS
    • Updated to populate the discrete measure SPLS_PROCESS_GRP_MIN_BATCH_BUCKET_D
  • SPLS - SCV -Export Values SM_TRANSPORTATION_ROUTE_BUCKETS
    • Updated to populate the discrete measure SPLS_ROUTE_VEHICLE_COUNT_BUCKET_D

This feature is available in Supply Planning after appending the supply planning template (spls.zip) and is available in Planning Engine after appending the planning engine template (apsco.zip) for this version. To enable the feature is enabled by setting the new application parameters for discrete variables are set to 1.

Note: You are not required any new role or privilege access to use this feature.