Introduction to FLEXSCHE Products

FLEXSCHE Version 15

Released FLEXSCHE Version 15.0 on June 12, 2015. Numerous new features and improvements have been added. Here are some of the main differences from Version 14.0.

Signboard Row

The signboard row is a newly added timeline chart row. The currently implemented signboard rows include,Resource Signboard RowItem Signboard RowOrder Signboard RowProcess Signboard RowThere are four types. They can be used as components for freely configuring charts, such as organizing and displaying timeline charts hierarchically or displaying arbitrary information.

The content that can be displayed on the signboard includes the following four types.

  • String Display

    Specify the format of the string displayed in the main body of the chart row. The string remains displayed in the same position even when scrolling the chart horizontally.

  • Expression

    Freely define the values to be displayed in each cell using expressions.
    * Note that this specification calculates in real-time during rendering, so if the calculation load is high, please use the following data cube.

  • Data Cube [Requires FLEXSCHE Analyzer]

    Displays the values of data cubes generated in advance by FLEXSCHE Analyzer.

  • MPS Data [Requires FLEXSCHE d-MPS]* Only for Item Signboard Row

    Displays values of any field (such as shipping demand quantity, requirement quantity) from FLEXSCHE d-MPS data.

In the following screen, the "String Display" item signboard for each product () aggregates the lower hierarchy and displays the total number and quantity of orders included. Below, there is a "Expression" item signboard that displays the number of orders due on each day () and an order Gantt chart for orders to produce that product are lined up.

The background color can also be determined by expressions for each cell, allowing you to create a highly visible screen.

Incidentally, the expression specified for this "Expression" item signboard is

Order.Records.Select([.Item=$$_object and .LatestEndTime.IsInRange( Time.RangeCO( $_time, $_time+#P1D# ) )] ).Count

.

Parameterization of Various Processes

Within FLEXSCHE, there are various "process executions" such as scheduling and data input/output. In many cases, it is sufficient to simply execute predefined process content, but for certain processes, you may want to specify the target or conditions each time.

  • Want to create a composite chart related only to specific products.
  • Want to output orders that can be shipped during a specific period for a particular customer to a CSV file.
  • Want to reschedule only orders containing a specific string in the code according to specified rules.

In Version 15, it became possible to provide the target and conditions of the process as "parameters" at runtime. The following processes can be parameterized in this way.

  • Scheduling (Scheduling Rules and Scheduling Methods)
  • Automatic Row Configuration of Timeline Charts (New Generation and Update of Existing Charts)
  • Excel Report Output [Requires FLEXSCHE EDIF]
  • Input/Output to External Data Sources (EDIF) [Requires FLEXSCHE EDIF]
  • Generation of Evaluation Data/Evaluation Graphs/Evaluation Charts [Requires FLEXSCHE Analyzer]

To utilize this mechanism, first define parameters for each process definition. By setting default values (values or expressions) for parameters, you can omit input at runtime.

From within each process, the defined parameters are visible as variables, so refer to these variables in expressions.

When executing a process, parameter value input is prompted as needed. If the parameter type is an object, you can select and input from a list of existing objects. In addition to immediate values, you can also provide expressions.

With parameterized execution, users will be able to utilize FLEXSCHE more finely and flexibly.

Action

You can execute parameterized processing from the popup menu on various objects on the FLEXSCHE screen, using that object as a parameter value.

By predefining parameterized processing, you can specify in detail where to display the menu item and how to pass parameters.

Calling Parameterized Execution

You can execute parameterized processing by providing predefined parameters from the command execution method within scheduling rules. In other words, you can use various processes like subroutines with arguments.

Customization of Parameter Input Form (Details aredescribed later

The parameter input dialog is generic, which may make it difficult for users to use. By using the script template generation tool, you can automatically generate a dedicated input form to some extent without programming. By further modifying the code, you can provide an environment that is easier and more reliable to operate.

Enhancement of User Interface Features

Set [Follow Resource Operating Days] in Chart Holiday Settings

In FLEXSCHE, just like equipment that can operate on "holidays," the "holidays" of the chart and the "non-operating time" on the calendar are managed separately and do not interlock.

However, if you want to set a day when resources are not operating as a "holiday" on the chart, you previously had to set it in both the chart and the calendar.

To avoid such redundancy, it is now possible to set chart holidays according to the operating days of specific resources.

Specify the Start Day of the Week/Start Date for Chart Columns

Previously, weekly displays started on Sunday, and monthly displays started on the 1st. Now, when the chart is set to weekly (or monthly) display, you can specify the start day of the week (start date) for the week (month).

Connection Lines in Operation Graph Summary Order Gantt

By specifying the same operation graph code for multiple orders, they can be displayed in a single order Gantt chart row, and connection lines are now displayed for all such orders.

Enhancement of Automatic Row Configuration Function - Recursive Specification and "Job Gantt Chart" Template

It is now possible to configure rows recursively in automatic row configuration.

This allows, for example, the display of inventory level chart rows for an item group, and further display of inventory level chart rows for items belonging to that group as a lower hierarchy, and so on, making it easy to achieve such configurations.

Additionally, using this recursive processing mechanism, you can create job Gantt charts with automatic row configuration. A template for this purpose has been added.

Enhancement of Automatic Row Configuration - Property Value Setting

It is now possible to set values to the properties of charts or chart rows during the automatic row configuration process.

By utilizing this, for example, you can configure settings to highlight only specific operations by referring to the chart's properties, allowing the target of the highlight to be automatically switched each time and the rows to be configured accordingly.

Enhancements to FLEXSCHE Analyzer

Acceleration of Evaluation Data Generation

We have improved internal processing and memory configuration, significantly speeding up the generation process of data cubes and datasets. The generation processing time for evaluation chart data cubes, which took about 8 seconds in version 14.0, has been reduced to about 2.5 seconds in version 15.0 using sample data ([GP Sample] 100,000 operations). (CPU: Core i7 3820, RAM: 16GB)

Stacked Graph

We have added stacked bar graphs and stacked line (area) graphs to the types of Analyzer graphs. This allows for an intuitive representation of the breakdown of the composition.

Example: Operating time by resource for each manufactured item

Example: Operating time by item per week

Enhancement of Evaluation Chart Functionality

  • Filter for Each Aggregation Item

    As an overall common filter, you can narrow down to only those planned for a specific year and month, or aggregate only operations planned on a specific resource. Additionally, individual filters can be applied for each item.

  • Ability to Subdivide Aggregation Items

    For example, by splitting the item "Average Operation Time" into two and setting filters for each, you can separate it into "Average Operation Time for Product A" and "Average Operation Time for Product B," increasing the output items of the evaluation chart.

Filter on Graph Definition Axis

It is now possible to apply filters to the components (layer values) of the definition axis and exclude those without output values on that axis.

With the ability to apply filters during graph generation, there is no longer a need to regenerate data cubes to match the graph each time. You can create a variety of graphs from a single data cube.

Enhancement of Data Cube Viewer

Display All Values at Once

It is now possible to display all field values at once. By selecting "--- All ---" in the value item of the toolbar, rows for all fields are added for each element.

Display Dimension Information Other Than Vertical and Horizontal Axes on Toolbar

We have made it possible to display the values of dimensions other than the vertical and horizontal axes on the toolbar. By switching values, you can view aggregated values from various perspectives.

Specification of Text and Background Colors

It is now possible to freely set text and background colors. You can highlight cells with specific values above a certain threshold for each field. In the following example, the background color of cells with an on-time delivery rate of 50% or less is set to red, and the text color of cells with a 100% on-time delivery rate is set to blue.

Hide Rows/Columns with Unspecified Values

It is now possible to hide rows/columns with unspecified values. You can hide rows or columns without aggregated values, such as holidays, to view only the necessary information.

Enhancements to FLEXSCHE Editor

Import of Style Settings

It is now possible to import style settings. You can select and incorporate styles used in other projects, eliminating the need to redo settings each time.

Addition of Field Format

It is now possible to set the format of the display string for cells. For example, you can display boolean values as ○/× or set the number of decimal places for real numbers.

Simple Filter for Tables

You can filter records to display based on the value of a specific field. Previously, it was necessary to add filter settings from the settings screen to perform filtering, but now you can easily execute filters by right-clicking on a cell.

Batch Addition of New Records

Add a specified number of new rows at once. You can quickly and easily add records using copy & paste or autofill on the added rows.

Enhancements to Scheduling Functionality

Enhancement of Order Pegging

We have enhanced the advanced option "Order Pegging Automation." It is now possible to automatically peg by-products and between split operations. You can also specify pegging relationships in the operation connection table.

Calculate Replenishment Order Code with Formula

In the "Replenishment Order Generation Method," which automatically detects future inventory shortages and generates replenishment orders, it is now possible to flexibly specify the replenishment order code using a formula.

Enhancements Related to Formulas

Addition of Comma (,) Operator to Takt Formulas

We have added the comma (,) operator. This allows for clearer separation of the declaration and use of local variables, which were previously written in a single sentence, making it easier to write formulas.

Example)
($x := .LinkQty(LinkKey.Input)) > 50 and ($y := .LinkQty(LinkKey.Output)) < 10 ? $x + $y : $x - $y ⇒ $x := .LinkQty(LinkKey.Input), $y := .LinkQty(LinkKey.Output), $x > 50 and $y < 10 ? $x + $y : $x - $y

Enhancements Related to Programming (For Developers)

We have added the following features, such as enhancements to the script template generation tool, mechanisms to easily call various FLEXSCHE functions, and execute takt formulas. All of these contribute to reducing man-hours in scheduling logic and add-in development.

Expansion of FLEXSCHE Scripting Form

Parameterization of Various ProcessesAs introduced, it is now possible to provide parameters during the execution of various processes within FLEXSCHE.

However, the built-in dialog for parameter input is generic, and may be difficult to use for users who only want to make simple inputs.

Simple Input with a Simple DialogTo enable this, it is now possible to freely replace the parameter input dialog using the FLEXSCHE Scripting Form (FSF). A template for this can be easily generated using the script template generation tool.

[Standard Dialog]

For example, by simply using the template, the [Standard Dialog] can be replaced with a screen like [Custom Dialog].

This will allow for more intuitive input.

Furthermore, to make parameter input with FSF even easier, the following features have been expanded.

[Custom Dialog]

  • It is now possible to add controls to edit records/record lists in FSF. If you want to pass a record as a parameter, you can input it by simply selecting from the list without having to enter the code each time.
  • It is now possible to assign types to the edit controls in FSF. Even if the data type entered differs from the defined parameter type, you can notice the mistake.

Generic Mechanism ExecutableEntity for Executing Various Processes

We have added a mechanism to easily call several processes, such as rule execution and EDIF. FLEXSCHE functions can be easily incorporated into the code as subroutines.

set entity = gpManager.CreateExecutableEntity(fsProject, _
"scheduling-rule", "Target GUID")
entity.ParameterValue("resource") = "Machine 1"
entity.Execute

Cases such as executing EDIF or scheduling rules with add-ins can now be achieved with fewer steps than before.

Additionally, it is now possible to register sub-methods within the Call external-method method. These can be invoked as ExecutableEntity from within the external method. For example, it is possible to create scheduling scripts without using the Structurally control method.

New Method for Executing Takt Expressions

A mechanism has been added to easily interpret and execute takt expressions from program code.

By utilizing takt expressions, you can easily handle FLEXSCHE data. For example, you can extract data without implementing controls such as loops.

Takt expressions that do not depend on context or variables can be executed in just one step, and even in other cases, they can be executed in a few steps as shown below.

  1. Preparation of Expression Object (Specify context type and return type)
  2. Variable Definition and Setting Variable Content
  3. Setting the Takt Expression String
  4. Execute Calculation by Specifying Context Object
' シンプルなパターン
set orders = sdSpace.Calculate( "Order.Records.Select([.Qty<100])" )
' コンテクストオブジェクトto指定するパターン
set order = sdSpace.OrderSet.OrderRecByCode("N0008")
set ex = _
sdSpace.CreateTypedExpression(SDVTypeOrderRec,SDVTypeOperationRec)
ex.Parse ".Operations.MaxAt([.ProcLevel])" '上流作業to取得
set topOp = ex.CalculateFor( order )

' 変数to指定するパターン
qty = 100
set ex2 = sdSpace.CreateTypedExpression(SDVTypeNone,SDVTypeOrderList)
ex2.DeclareVariable "qty", SDVTypeDouble
ex2.Parse "Order.Records.Select([.Qty<$qty])"
ex2.VariableValue("qty") = qty
set orders = ex2.Calculate

Support Service

We have revamped the content and system of the paid training course to help you master the use of FLEXSCHE GP.

Depending on your purpose and level, you can freely choose from 18 sessions (and several special sessions). You can use the number of credits granted (purchased or included in a package product) to take the course gradually over time, repeat the same session, or take it with multiple people.

Additionally, while you have a maintenance contract for FLEXSCHE products, a specified number of credits are added each year (carryover is not possible), so please use them for retraining to deepen the understanding of the person in charge or for handover to new personnel.

Training Credit Allocation

Due to the dependencies between each credit in the training, it is assumed that the participant has already taken the prerequisite credits or already understands the content, so please be careful when applying for the course.

Curriculum Dependencies

Introduction to FLEXSCHE Products