Asprova Ver.17.9

Ver.17.9 Release Date: January 20, 2025

In Ver.17.9, the following functions have been added:

  1. 1. Assign by squeezing in operations – Squeeze in operations that slightly exceed the working time
  2. 2. Internal function: GetAssignableResource – Retrieves candidate resources for operation assignment
  3. 3.Internal function: GetNearestWorkingStartTime – Retrieve the start time of the nearest working time
  4. 4.Internal function: GetNearestWorkingEndTime – Retrieve the end time of the nearest working time
  5. 5.Internal function: GetWorkingDays – Retrieve the number of working days recently
  6. 6.Internal function: AdvanceAlongResourceWorkingDay – Retrieve the date advanced by the number of working days of the resource from the specified date
  7. 7. Internal function: CalcInventoryReachDate – Retrieves the date and time when the specified inventory quantity is reached
  8. 8. Internal function: CountIF – Return the number of objects that meet a condition
  9. 9. Internal function: ObjectList/ObjectListIF – Returns a list of object types that meet the specified conditions
  10. 10. Internal function: Unique/UniqueIF – Returns a list of unique values from an array of specified object types
  11. 11. Internal Function: Sort – Sorts a list of object types
  12. 12. Improved Expression Editor Dialog – Makes the expression preview more convenient
  13. 13. Solver command – It can simultaneously handle setup for multiple processes and minimize delays in delivery.

 

* Users who are using Ver. 17.8 or earlier must have a maintenance contract in order to use “Version Restricted Features”.

 

 1. Function to push and assign work (version-limited function)

 

If there is not even one second of available time, it is not possible to assign work. It will search for other dates and times to assign work, but this tends to result in a schedule with many gaps.

In the example in the figure above, the filling process for product B is supposed to be assigned on 6/3, but due to a one-minute shortage in manufacturing time, it has been assigned for the week after. With the new addition of specifying “MAX time for assigning work by shortening manufacturing tasks,” it is now possible to shorten manufacturing tasks and push them into the gaps. In the image below, the maximum reduction in time was set to 5 minutes, and the tasks were allocated to the gaps.

Operations with reduced production time are indicated by a green icon in the upper right corner of the bar of the production task. This example is a forward assignment, so it reduces the end time. For backward assignment, the start time is reduced.

You can check the shortened work time on the “Assignment” tab of the work properties. The “Maximize time allocated by shortening manufacturing tasks” property has been added under Resources, so please set it up and use it.

 

For detailed specifications, please refer to the help (Assign and shorten manufacturing tasksPlease see [here](http://www.example.com).

 

 Internal function: GetAssignableResource

 

Function to get a list of resources that can be assigned from the taskGetAssignableResourceWe have added it. For example:MEas a task,If MEis assigned to assignable resourcesResource1,Resource2it can be used as follows.

   GetAssignableResource(ME) -> Resource1, Resource2

 

For detailed specifications, see the help (GetAssignableResource functionPlease refer to the following:

 

 Internal function: GetNearestWorkingStartTime

 

It searches for the start date and time of the operating hours in the specified direction from the specified date and time of the specified resource, and obtains the first date and time it finds.

 

Example: Find the start time of the working hours in the future direction
   (2) GetNearestWorkingStartTime( ME.Operation.OperationMainRes, #2024/6/3 3:00:00#, TRUE )
⇒ #2024/6/2 23:00:00#

For detailed specifications, please refer to the help (GetNearestWorkingStartTime function)

 

 Internal function: GetNearestWorkingEndTime

 

Searches for the end date and time of the operating hours in the specified direction from the specified date and time of the specified resource, and obtains the first date and time found.

 

Example: Find the end time of the working hours in the past direction
   GetNearestWorkingEndTime( ME.Operation.OperationMainRes, #2024/6/3 3:00:00#, FALSE )
⇒ #2024/6/2 23:00:00#

 

For detailed specifications, please refer to the help (GetNearestWorkingEndTime function)

 

 Internal function: GetWorkingDays

 

Obtains the number of hours or days of operation of a specified resource in a specified time period.

 

Returns the number of days with at least 8 hours of operation time from the end date and time of your own work to one week ahead
   GetWorkingDays (ME.EndTime, ME.EndTime+1w, ME.OperationMainRes, 8h, 1)

 

For detailed specifications, please refer to the help (GetWorkingDays functionPlease see [here](https://www.example.com).

 

 Internal function: AdvanceAlongResourceWorkingDay

 

Advances the operating day by the specified number of days from the base date and time of the specified resource to obtain the start date and time of the last operating day.

 

(1) Returns the first date and time of the operating hours three days ahead from the end date and time of the previous process work, according to the operating date of the main resource of the previous process work.
   AdvanceAlongResourceWorkingDay(ME.PrevOperation.OperationMainRes, ME.PrevOperation.EndTime, 3, 0, 1)

 

For detailed specifications, please refer to the help (AdvanceAlongResourceWorkingDay FunctionPlease see [here](http://www.example.com).

 

 Internal function: CalcInventoryReachDate

This function returns the date and time when the inventory of a specified item reaches a certain quantity after a specified date and time.
By specifying the reorder point and safety stock levels as inventory quantity guidelines, you can obtain the optimal time to place an order.

Although it can be calculated using work input instructions and item time series, it requires the use of property editing commands and virtual property expressions. In other words, the setup is time-consuming and the calculation costs a lot.

For a given item, returns the date and time when the inventory quantity first exceeds 60 units after 2025/6/1.
   CalcInventoryReachDate(ME.Item, 60, ‘>=’, #2025/06/01#)

For detailed specifications, please refer to the help (CalcInventoryReachDate function).

 

 Internal function: CountIF

 

This function counts the number of properties in an array value of object type that meet the specified conditions.

Until now, when counting the number of objects that meet certain conditions, it was necessary to write an expression like the following:

   SumIF(ME.Child, TARGET.Work_Status==’B’,1)

In other words, it was necessary to use the SumIF function to calculate the total, and write a process to sum “1” only for the number of objects that meet the conditions. This was a very difficult specification to understand, so we added the CountIF function, which can be implemented more straightforwardly.

Example: When ME is in the splitting operation route, it retrieves the number of completed splitting sub-operations.

   CountIF(ME.Child, TARGET.Work_Status==’B’) -> 3

 

Please see the help (CountIF function) for detailed specifications.

 

 [in:ASOObjectList]ObjectList:

 

It retrieves the values of object-type properties for each element in the array and returns an array that combines them.

Example: When ME is in an operation, it returns an array of resources assigned to multiple manufacturing tasks of the operation.

   ObjectList(ME.ProductionTask.UseInstructions, Target.Resource)

 

This type of processing has been in demand for some time, but until now, it could only be realized by preparing an array-type property of resources in advance as a user property, and then adding the assigned resources to the property for each specification instruction using the property editing command, which was a cumbersome process.

In addition, the ObjectListIF function allows you to filter the elements to be retrieved based on conditions.

Please see the help (ObjectList Function/ObjectListIF Function)Please refer to the following.

 

 Internal function: Unique

 

Removes duplicate elements from the array of objects in the argument.

Example: Removes duplicate elements from the array of resources obtained in Chapter 9.

   Sort(ObjectList(ME.ProductionTask.UseInstructions,Target.Resource),Target.Code,TRUE)

 

For detailed specifications, please refer to the help (Unique Function).

 

 Internal function: Sort

 

Sorts the array of objects in the argument by specifying a key.

Sort the array of resources obtained in Chapter 9.

   Sort(ObjectList(ME.ProductionTask.UseInstructions,Target.Resource),Target.Code,TRUE)

 

For detailed specifications, see the Help (Sort function).

 

 ◆ Improved expression dialog

 

We have made several improvements to the expression editing dialog.

   ・When the result of an expression is an array value, we have made it possible to display the contents of the array.

   ・When the result of an expression is an object type, we have made it possible to display the class name of the object.

   ・When the expression is long, we have significantly reduced the lag when opening the expression editing dialog.

   ・When the expression is long, we have improved the speed of highlighting the expression in the expression editing dialog.

 1. General-purpose Solver commands

 

The conventional “General S8 command” can simultaneously achieve optimization of the process plan and minimization of delays in delivery, but it did not support simultaneous optimization of multiple processes. As a result, it was not possible to apply it to multiple processes, or it required special consideration when applying it.

 

We have now released a new version of the S8 Command, Ver.2, which supports optimization for multiple processes. It is also available in a trial or demo version. The Solver option is required for the official version.

For more information, see the following Knowledge Center article. S8 Command Ver.2 (Setup and delivery time optimization / with secondary resources / multiple processes)