Release Notes: Version 11.37

Changes for version 11.37 released March 9, 2020


Use of material with lots of minimum age:

Material Requirement's MinAge property allows you to specify how old lot controlled materials must be to be able to satisfy a material requirement. For example, if cheese must have aged at least 3 weeks, you would specify this in the MinAge of the material requirement. The age of a material is determined by the difference between the simulation clock and the lot's production time. 

To use this feature:

  • Create an item with its LotUsability set to ShelfLife

  • Create Inventory for the item by either:
      • Creating a job that manufactures the Item.
      • Or import the item and set its lot production date to the date/time the material was manufactured.

In a material requirement for the item, specify the minimum age of the material.

MRP: Add option indicating whether a partial supply is allowed or not:

Added a boolean property called "AllowPartialSupply" to Inventory records. Given a demand, if AllowPartialSupply is false, MRP will consider any supplies (Product, PO) that can satisfy the demand fully. If none exists, a PO or Product is created to satisfy the demand in full. A supply can satisfy multiple demands so long as they're fully satisfied by the supply.

Safety Stock Warnings on Gantt:

A new label showing three possible colors:

  • GREEN if the job produces a part for which the on-hand will be above 0, or above safety stock if it is > 0, at the end of the job.

  • YELLOW if the job produces a part for which the on-hand will be above 0, but BELOW the safety stock, at the end of the job.

  • RED if the job produces a part for which the on-hand will be BELOW 0.  All late jobs today would be RED in this label

Turkish Localization:

Turkish translations added. Additional translations update.

NbrActivitiesScheduled Resource Property:

Added a new Resource property that displays the number of activities currently scheduled on the resource. This is available on the Activities grid and in Gantt labels.

Material Status Gantt Segment:

A new Gantt block segment displays information about material availability and the commitment status of material sources. A different color is displayed for each of the following four material statuses:
  • Material Available: All materials are satisfied from On-Hand inventory or are Issued or are Buy Direct and Available.
  • Material Sources Firmed: All materials are satisfied from On-Hand inventory or Jobs/POs that are Firm or Released.
  • Material Sources Planned: All materials are satisfied from On-Hand inventory or Jobs/POs, at least one of which is Planned or Estimate.
  • Material Sources Unknown: Materials are not available and there is no source of supply other than Lead Time.

The existing status segment will no longer display information relating to material status.

Prepend setup to the start of a block if a move causes it to gain setup:

Attempt to prevent a block from ending later by prepending any new setup added to it when the block to its left is moved. For example if jobs A, B, and C are scheduled on resource 1 where C has no setup time. Block B is moved to a different resource and a sequence-dependent setup is added to block C. As the system currently works, the setup time will extend the block causing it to complete later. This new enhancement will attempt to add the setup time before the start of block C so its end time isn't affected.

Note the following behaviors of this feature:
  • It only works when performing moves.
  • There must be enough free capacity before the start of the block.
  • All constraints on the block remain in effect and might not allow the setup time to be added to the start of the block. For instance, predecessor, material, predecessor job, and other constraints will still constrain when the setup is able to start.

New API for calling CTP:

CTP can now be called form a soap API

Optimize by projected on-hand inventory:

New optimize rule that takes into account the remaining days on hand of a product.

Add New Inventory Fields: FirstSafetyStockShortageDate, DaysOfSafetyStock:

The following two columns added to Inventory Pan

  1. FirstSafetyStockShortageDate: Displays the date of the first safety stock shortage if there is one.
  2. DaysOfSafetyStock: Days from clock to FirstSafetyStockShortageDate.

ActivityGrid: Show Max Delay column:

Operation MaxDelay field is now shown as a column in the Activities Grid.

Gantt Labels: Make Campaign labels customizable:

A new feature allows an additional quantity to be displayed on campaign labels on the Gantt. To enable it, create a User Defined Field on the Item record that is the product in a campaign. Name this UDF as "AlternateUOM_LABEL" where LABEL is a unit of measure that will be displayed following the quantity. The UDF datatype should be Double. The value of UDF will be multiplied by total campaign quantity to arrive at the new quantity to be displayed.

Example: We have a campaign for Item 1 with a total quantity of 270,000. We've imported a UDF on Item one with the name "AlternateUOM_cases" with the data type double and value '0.0333333'. Campaign label will display (the second line is the additional quantity displayed):
Item 1 270,000 units 9,000 cases

Setup Code Tables Wildcard Matching:

Setup Code Tables addition to lookup using wildcard string with the ability to indicate preference in precedence.

Manually Issue material:

New functionality on the Materials grid allows manually issuing material, optionally withdrawing from on-hand.

ProductRules Material Post-Processing:

Addition of Material Post-Processing as an option for product rules.

Shelf life penetration and WIP inventory duration:

Shelf life penetration and WIP inventory duration material properties added. This is available in the published data and on the Materials grid.

ProductsReport Add-in available:

A new Products Report data publish customization that contains 3 custom tables:
  • CustomTable_SupplyingProducts - collates all the related jobs of that stem from a demand job (ie. the Job Links in reverse)
  • CustomTable_SupplyingProducts - collates all the related jobs stemming from a Demand—Sales Order, Transfer Order, Forecast, Job. 
  • CustomTable_SupplyingProducts - collates all the related purchases stemming from a Demand—Sales Order, Transfer Order, Forecast, Job. 

Limit AutoJoin based on material availability and transfer qty:

Added new AutoJoin considerations for material availability and transfer quantity in the CanAutoJoin calculation.

CanAutoJoin Customization:

A new Customization point has been added to handle custom logic for how and when jobs are joined automatically. AutoJoin can now be run as an option when committing the schedule.

MRP Successor MOs for Templates:

Successor MOs linked in templates will now be added to the jobs created by MRP.


InstanceManager Interface & Extra Services "Logon as" update:

The service logon account can now be specified in the Instance Manager for Interface and Extra Services. 

Move takes a very long time:

If a move results in more than 1 resource requirement of an activity being scheduled on the same multitasking resource and the total required attention exceeds 100%, the move will get stuck.

Resolution: such moves are now rejected.

InstanceManager SystemId:

Moved SystemId display value to instance settings to ServerManagers details.

Usage: Helper used only during post-processing schedules block when 0 post-processing:

Resource requirements that don't require any time are scheduling for a small amount of time. For example if an operation has a helper resource requirement that's only necessary during post-processing, a small block will be scheduled for the requirement even if no post-processing time is required. Not only does this create unnecessary blocks, but it will also delay scheduling the operation if something is already using the helper resource.

Resolution: Helper resource requirements that don't require any time will no longer be scheduled. This will eliminate unnecessary blocks and may allow operations to schedule earlier since the helper resource is no longer required.

Tanks: No adjustments if not all material is withdrawn:

Tanks that do not get fully emptied will now show inventory usages to help diagnose remaining material.

Default Monitor Resolution Scaling:

Fixed issues where using windows resolution scaling on the default monitor would result in cut-off text and other display artifacts.

ProductRules UDFs:

Addition of UDF values to the Product Rules grid.

Importing Cells:

Added the ability to import Cell objects.

Move Messages:

Messages received after a move will no longer be shown twice. 

Improve the naming of BaseObjects:

Resolved an issue that was causing new objects to include long numbers in their names, after their type.

Can't finish a job from activities view unless full 'Required Qty' Entered:

Functionality now matches Activities Grid in job dialog, where an activity can be marked as finished no matter the quantity of the goods that is reported.

Remove MrpProcessing.SetJobNeedDatesOnly:

Removed SetJobNeedDatesOnly from the list of options for MrpProcessing field on Inventory.

ActivityStatus: shop floor enhancements:

Manually updating activity production statuses, now automatically sets reported values to the current time.

Speed up the performance of multitasking resources:

Optimizing and adjusting schedules that use multitasking resources is much slower than schedules that don't use multitasking resources.

Changes have been made so that optimizes and adjustments to schedules with multitasking resources are about twice as fast as they use to be. The time has approximately been cut in half.

Capacity Plan won't open, crashes scenario:

Made changes to avoid unnecessary processing and improve the performance of the Capacity Plan.

Operation UDF Hyperlink:

Hyperlink and navigation improvement for URL UDFs.

JIT Start date not calculating correctly for one activity:

The JIT start date is calculated by finding enough capacity on a sample resource that is eligible to fulfill the primary resource requirement.

If the sample resource doesn't have enough capacity between the operation's need date and the clock, the JIT start date will be calculated incorrectly.

Resolution: In the event that the sample resource lacks the capacity to fulfill the primary resource's capacity requirement, the JIT will be set to the start of the resource's first online capacity interval minus the capacity the resource lacked.

For example, if an:

  • Operation's need date is 6/10/2019 6:00
  • The operation requires 10 hours
  • The clock time is 6/1/19 6:00
  • The sample resource has 1 capacity interval from 8:00 to 4:00 PM on 6/5/2019. Only 8 hours of total capacity is available.

In this case, it's not possible to fulfill 2 of the 10 hours of required capacity, so the JIT is set to 6/5/19 8:00 -2:00. 6/5/19 6:00.

Production Plan Report enhancements:

Production Plan report can now display quantities produced in an alternate unit of measure. To enable it, import or add a user defined field to the item record with the name "AlternateUOM_LABEL" where LABEL can be any string, with the data type of Double. If all products being displayed in the report have this user defined field, then a drop-down will be displayed that will allow you to pick between Default and "LABEL" units of measure. The option of Default will display information as before and LABEL will multiply the default quantities with the value imported into the UDF mentioned.

JIT Start Date being calculated based on wrong resource capacity:

An activity used to be considered late if it started after its JIT start date or if it finished after its need date. Now, an activity is late if it finishes after its need date regardless of its JIT start date. Also, the Slack property is now determined based on the difference between need date and end date instead of the difference between the start date and JIT start date.

Materials grid shows shortage when a job is in production:

If ProductionStatus of an Activity is set to Running or later (PostProcessing, Finished) then the material is assumed to have already been consumed and reflected as such in the inventory. In this case, no material constraints are applied. The Changed Materials grid will show 0 UnavailableQty when an activity has the status of Running or later.

MRP batching and Constraint Type improvements:

  • MRP now takes into account lead time when processing lower-level material availability.
  • MRP BatchWindow can now be set to zero. This is so we can still use Batch size (min and max order qty, multiple of batch size) without actually batching multiple demands.

Operation Late Calculation Update:

Added verification in Lateness for Tanks calculating the Lateness based on the ScheduleEndOfPostProcessing of the latest activity

MO no longer unscheduled when successor MO link is removed:


Unavailable Qty not accurate with multiple warehouse sources:

Unavailable quantity calculation has been improved to handle certain cases involving multiple warehouse sources.

Language Localization Update:

Added new localization dictionary values for various languages.

Material Linkage on the Gantt:

Last Produced First Used: Scheduled material sources will now prefer older material sources rather than newer sources.

Unexpected scheduled Receipt date for MRP Generated Purchase Order:

Purchase Order dates will now be more accurate when generated from MRP.

Successor Processing not working as expected:

Successor processing functionality improved.

Editing Can Span Plants for Multiple Jobs:

Improved the Set Job Values Dialog to allow editing the CanSpanPlants option for multiple jobs.

Import taking an extended time to complete:

Improved data import speed when importing successor MOs.

Eligibility Setup Code Info:

Updated to Setup Code info in the Eligibility Dialog to include both the code and its value in the display.

Update to Setup Code info in Eligibility Dialog to include both the code and its value in the display:

Jobs and MOs will not show 100% completion unless all operations are finished.

PlanetTogether not deleting split jobs on re-import:

PlanetTogether now automatically deletes split jobs if they were replaced and have a maintenance method value = ERP,  but they no longer exist in the data source.

ActivityGrid Operation.BatchCode:

Add visibility to the OperationBatchCode value in the Activities Grid.

MRP manufactured safety stock jobs should be needed no earlier than lead time:

Production Jobs for manufactured order items created by MRP will now not be needed earlier than their lead time. This will reduce the late jobs created by MRP. These MRP orders can still be optimized by priority or by other properties.

Removal Of TimeCustomizer and OperationScheduledCustomizer fields on Operation:

It is no longer required to import operation customizer fields to enable a Time Customization or an Operation Scheduled Customization.

Material is being pulled from a warehouse with '0' on hand instead of a warehouse with available on hand qty:

When using material requirements whose constraint type is set to "Non-Constraint", it is possible that the material will be sourced from the lead time of a warehouse that never has enough material to fulfill the requirement even though there is another warehouse that does have enough material to fulfill the requirement.

Resolution: If there is a warehouse that has enough material, the material requirement will be fulfilled from it.



MRP: Producing more than required when using MinOrderQty:

Fixed an issue where data could specify invalid MRP batching options. Now enforced MaxNbrOfBatches * BatchSize >= MinOrderQty.

Import Auto-Delete Jobs:

Fixed the auto-delete to include finished jobs.

New Warehouse Tank Flag:

New Warehouse Tank Flag default value has been changed to false.

Production Report displays the incorrect quantity:


Successor MO Gantt Lines:


Resource Connectors Import:

Fixed an error preventing resource connectors from being imported.

Nullable Handling for Grids:

Updated the grids handling of nullable values, using Nullable.Automatic setting

Gantt Refresh on Capability Update:

Fixed issue where the Gantt was not refreshing on Capability updates.

Item.LotUsability field is disabled for new items:

New items created with the Maintain Inventories dialog can be set to lot controlled on creation.

ScheduledFinishDate for Tank Resources:

Fixed calculation for ScheduledFinishDate for activity batch with tank resource using the batch.enddatetime if resource used is a tank resource.

Unschedule Jobs:

Fixed an issue that could cause an error when unscheduling a job with or without successor MOs defined and those with job links.

Import timing out and freezing computer:

Resolved an issue where the program could freeze after import.

Impact grids don't record manual moves:

Fixed an issue where impact data was not recalculated after certain moves.

Optimize stops at 10% and freezes:

Fixed an issue that could cause optimization to freeze.

JitStartDate calculation results in ArgumentOutOfRangeException:

Fixed an issue where if an Operation doesn't have any eligible resources, then calculating its JitStartDate would result in an error.

Optimize is Slow:

Fixed an issue with overlap that was slowing optimize performance.

Jobs pulling material from on-hand instead of allowed lots:


Gantt Grid Localization:

Fixed an issue that could cause an error when switching user language.

Error when removing allowed lot code from material requirements:


Error log takes a long time to resolve:

The same set of capacity intervals were being assigned to the same resource 9 different times. This was causing the same resource to be updated more than 100 thousand times!

Optimize/Compress Default Settings:

Optimize/Compress Default settings updated for the user.

Optimize/Compress Default settings updated for user:

Job.OrderNumber is updated during MRP when a Job is not deleted and its production is allocated to the new demand.

Manually setting the reported start date in job dialog sets the reported finished date equal to its reported start date:

Setting ReportedStartDate will no longer change the ReportedFinishDate unless ReportedFinishDate was already set (larger than 1/1/1800) and the new ReportedStartDate is after ReportedFinishDate. In this case, the ReportedFinishDate is updated to ensure it's not before the ReportedStartDate. Again, this only happens if ReportedFinishDate was previously set.

MRP doesn't create a job even if material from a lot is expiring:



Character "d" in "Planned" in MRP options was cutoff. 

Unavailable Qty in Materials view not reflecting actual demand:

UnavailableQty column in materials grid was not taking into consideration shortages

The end of shelf life is being incorrectly calculated for tank resources:

If jobs are being scheduled on tank resources, the end of shelf life may be calculated incorrectly. Resolution: resolved.

Can't right-click on jobs in Templates view:


Max delay is not working:

Operations that are supposed to be constrained by max delay are being scheduled with a larger delay between the operations than specified.

Resolution: Multiple examples of this problems were identified and the issues that caused them have been resolved, though it may still be possible that not every issue with max delay has been resolved. To help identify additional Max Delay violations, the scheduler will log Max Delay violations in the SchedulingWarnings log.

Max Delay violations will look like this in the log.

***   Exception.Message   ***
The delay between operations 1200A4 and 1300A4 in Job TA850008N01, Manufacturing Order TA850008N01 exceeds the max delay of 1.06:00:00 by 2.00:00:00.

Department Specific Frozen Zone not working as expected when using non-linear paths:


Track Actuals not working:

Track actuals were not working, when a qty, start date, and date are specified and the operation is marked as finished

Expedite not finishing: Simulation is stuck:

Fixed an issue that would cause expedite to not complete.

Capacity Interval conversion to instance does not replace underlying interval:

Fixed an issue that could cause splitting of a recurring capacity interval to cause overlapping intervals.

Gantt Activity Links Disappear after the year 2020:

Fixed an issue where Activity Links stopped displaying after the year 2020.

Shift Info Showing Correctly in Department Report:

The Department Report was fixed to show the correct Shift Start and Shift End values.

Show Other Users' Actions Setting:

Fixed an issue where other user's action message was showing when the Show Other User Actions setting was set to false.

Material source and inventory adjustment incorrect when using overlap production between jobs:

Material sources are now more accurate when used with overlap.

Dangler overflow exception on MRP final optimize:

Fixed an issue in MRP that would cause the application to crash.

UndoSets Access Error When Loading Scenario:

Fixed an issue where an error related to accessing Undo Sets occurred when loading large scenarios.

MRP Preservation Settings:

Update to RegenerateJobs action of MRP to include preservation settings in the calculation for "Preserve..." settings.

MultipleWarehouseSupplyAllowed Fix:

Calculation update for MultipleWarehouseSupplyAllowed.

Error Loading Alternate Path Selection Dialog:

Fixed an issue where an error occurred when trying to open the Alternate Path Selection Dialog.

Plant FindAvailableMaterial:

Updated the FindAvailableMaterial calculation for multiple warehouse material allocation.

Net-Change Publish Calculation:

Updated Net-Change Publish calculation to trigger at SimulationProgress.Status.Initializing instead of SimulationProgress.Status.Started

Object Reference Exception in Eligibility Dialog:

Fixed an issue where opening the Eligibility Dialog after deleting an alternate path caused NullReferenceException.

Jobs fail to schedule with finished MO:

Fixed an issue where a job would fail to schedule in certain cases when MOs were finished.

Production lots turn to on-hand when saving maintain inventory dialog:


MRP Preservation Settings:

Updated the RegenerateJobs' action of MRP to include preservation settings in the calculation for NetChangeMRP.

Object reference not set to an instance of an object.


Fixed an issue where the Gantt would get an error when clicking a block with successor MO links.

Capacity Plan showing single-tasking resources with more than 100% capacity usage:

Fixed an issue where the capacity plan would show incorrect resource utilization when operations with zero remaining quantity to process are scheduled and not finished.

Error in Jobs Dialog:

Fixed an issue in the Jobs Dialog that occurred when leaving a numeric field blank before saving and closing the dialog.

Production Status: Activity is Waiting when should be Ready:

Fixed some cases where an operation status should be Ready but was set to Waiting.

Error When Switching Scenario Tabs:

Fixed an issue where clicking on another Scenario Tab caused an error in the grid layouts dropdown.

Localization Issue When Adding UDFs Manually:

Fixed an issue where an error occurred that prevented a user from adding a UDF manually from a machine with the language not set to English.

EmptyBatch after import and Optimize:

Fixed an issue that could cause a corrupted scenario when importing bad data.