FLEXSCHEバージョン15
FLEXSCHEバージョン15.0を2015年6月12日にリリースしました。多数の新機能の追加と改善が施されています。そのうちの主だったものをご紹介します。(バージョン14.0との差分)
サインボード行
サインボード行は新たに追加された時系列チャート行です。現在実装されているサインボード行には、資源サインボード行、品目サインボード行、オーダーサインボード行、工程サインボード行の4種類があります。時系列チャートを階層的に束ねて整理して見せる手段としたり、任意の情報を表示したりなど、チャートを自在に構成する際の部品として利用できます。
サインボードに表示できる内容には次の4種類があります。
-
文字列表示
チャート行本体部に表示される文字列の書式を指定します。チャートを横スクロールしても文字列は同じ位置に表示され続けます。
-
計算式
各セルに表示する値を計算式で自由に定義します。
※ なおこの指定では描画時にリアルタイムで計算するため、計算量が大きく描画負荷が高くなってしまう場合は次のデータキューブをご利用ください -
データキューブ [FLEXSCHE Analyzerが必要]
FLEXSCHE Analyzerで事前に生成したデータキューブの値を表示します。
-
MPSデータ [FLEXSCHE d-MPSが必要]※品目サインボード行のみ
FLEXSCHE d-MPSのデータの任意のフィールド(出荷需要量、要求量など)の値を表示します。
次の画面では、製品ごとの「文字列表示」品目サインボード(①)が、下位階層を束ねるとともに、そこに含まれるオーダー数とオーダー数量の合計を表示しています。下位には、それぞれの日を納期とするオーダーの数を表示する「計算式」品目サインボード(②)と、その製品を作るオーダーのオーダーガントチャートが並んでいます。
背景色もセル毎に計算式で決めることができるので、視認性の高い画面を作り上げることができます。
なお、ちなみにこの「計算式」品目サインボードに指定している計算式は
Order.Records.Select([.Item=$$_object and .LatestEndTime.IsInRange( Time.RangeCO( $_time, $_time+#P1D# ) )] ).Count
です。
各種処理のパラメタ化
スケジューリングやデータの入出力など、FLEXSCHEの中にはさまざまな「処理の実行」が存在します。多くの場合は事前に定義した処理内容をただ実行するだけで済みますが、ある種の処理においては対象や条件をその都度指定したい場合があります。
- 特定の製品だけに関係する複合チャートを作りたい。
- ある顧客向けに特定の期間に出荷できるオーダーをCSVファイルに出力したい。
- コードに特定の文字列を含むオーダーだけを、指定したルールでリスケジュールしたい。
バージョン15では、実行時に処理の対象や条件を「パラメタ」として与えることができるようになりました。このようにパラメタ化できる処理には以下のものがあります。
- スケジューリング(スケジューリングルールとスケジューリングメソッド)
- 時系列チャートの自動行構成(新規生成および既存チャートの更新)
- Excel帳票出力 [FLEXSCHE EDIFが必要]
- 外部データソースへの入出力(EDIF) [FLEXSCHE EDIFが必要]
- 評価データ/評価グラフ/評価チャートの生成 [FLEXSCHE Analyzerが必要]
この仕組みを利用するためには、まず各処理の定義ごとにパラメタを定義します。パラメタに既定値(値または計算式)を設定しておくことで、実行時の入力を省略できるようにすることもできます。
各処理の中からは定義したパラメタは変数として見えるので、計算式中でこの変数を参照します。
処理を実行すると、必要に応じてパラメタ値の入力が促されます。パラメタの型がオブジェクトであれば、存在するオブジェクトの一覧から選んで入力することもできます。また即値のみならず、計算式を与えることもできます。
パラメタ化実行によって、ユーザーはよりきめ細かくより柔軟にFLEXSCHEを活用できるようになるでしょう。
アクション
FLEXSCHEの画面上にあるさまざまなオブジェクト上のポップアップメニューから、そのオブジェクトをパラメタ値としてパラメタ化処理を実行できます。
パラメタ化処理を事前に定義しておいた上で、当該メニュー項目を出す箇所とパラメタの渡し方などを細かく指定することができます。
パラメタ化実行の呼び出し
スケジューリングルール内のコマンド実行メソッドから、事前に用意したパラメタを与えてパラメタ化処理を実行できます。つまり、さまざまな処理を引数があるサブルーチンのように利用することができます。
パラメタ入力フォームのカスタマイズ(詳細は後述)
パラメタ入力ダイアログは汎用的なものであり、そのためユーザーにとってはかえって使いづらい場合もあります。スクリプト雛形生成ツールを使うことで、プログラミング無しでもある程度の専用入力フォームを自動生成することができます。さらにコードに手を加えることで、より簡単で確実に運用できる環境を提供することができるでしょう。
ユーザーインターフェース機能強化
チャート休日設定に[資源の稼働日に従う]
「休日」でも稼動できる設備があるのと同じように、FLEXSCHEでは、チャートの「休日」とカレンダー上の「非稼動時間」は連動せず、別々に管理されています。
しかしそうすると、逆に資源が稼動していない日をチャート上も「休日」としたいときは、従来はその設定をチャートとカレンダーの両方にする必要がありました。
このような冗長性を避けるために、特定の資源の稼働日に従ってチャートの休日を設定することができるようになりました。
チャートの列の開始曜日・開始日を指定
従来は、週間表示の場合は日曜始まり、月間表示の場合は1日始まりに固定されていましたが、チャートを週間表示(あるいは月間表示)としているときに、週(月)の開始曜日(開始日)を指定できるようになりました。
作業グラフまとめオーダーガントの接続線
複数のオーダーに同一の作業グラフコードを指定することで、それらを1つのオーダーガントチャート行に表示することができますが、そのようにして表示したオーダー全てに対して接続線が表示されるようになりました。
自動行構成機能の強化 - 再帰指定と「ジョブガントチャート」テンプレート
自動行構成で、再帰的に行を構成することができるようになりました。
これによって、例えば、品目グループに対して在庫量チャート行を表示し、さらにそのグループに属する品目の在庫量チャート行を下階層として表示し、さらにそのグループに属する品目の在庫量チャート行を下階層として表示し、さらに・・・ということを簡単に実現できるようになりました。
また、この再帰処理の仕組みを使えば、自動行構成でジョブガントチャートを作成することができます。そのためのテンプレートが追加されています。
自動行構成機能の強化 - プロパティ値設定
自動行構成の処理中に、チャートあるいはチャート行のプロパティに値をセットすることができるようになりました。
これを利用すれば、例えばチャートのプロパティを参照して特定の作業だけをハイライトするような設定をしておくことで、ハイライトする対象をその都度自動で切り替えて行を構成することができます。
FLEXSCHE Analyzerの機能強化
評価データ生成の高速化
内部の処理やメモリ構成を改善し、データキューブやデータセットの生成処理を大幅に高速化しました。サンプルデータ([GPサンプル] 10万作業)で評価チャート用データキューブの生成にバージョン14.0で約8秒かかっていた生成処理時間が、バージョン15.0では約2.5秒に短縮しました。(CPU:Core i7 3820、RAM:16GB)
積み上げグラフ
Analyzerグラフの種類に積み上げ棒グラフ、積み上げ折れ線(面)グラフを追加しました。構成の内訳を、直感的に表現できます。
例:製造品目ごとの資源別稼働時間
例:週ごとの品目別稼働時間
評価チャート機能の強化
-
各集計項目にフィルタ
全体的な共通フィルタとして、例えば特定年月に計画されているものだけに絞り込んだり、特定資源上に計画された作業のみ集計することができます。また項目ごとに、さらに個別フィルタも可能です。
-
集計項目を細分化可能に
例えば「平均作業時間」という項目を2つに分けてそれぞれフィルタを設定すると、「製品Aに関する平均作業時間」、「製品Bに関する平均作業時間」のように分けることができ、評価チャートの出力項目が増えます。
グラフ定義軸にフィルタ
定義軸の構成要素(レイヤ値)に対するフィルタと、その軸上に「出力値がないものを除外」できるようになりました。
グラフ生成時にフィルタが可能になったことでグラフに合わせて都度データキューブを再生成する必要がなくなりました。1つのデータキューブからバリエーションに富んだグラフを作り出すことができます。
データキューブビューワーの強化
すべての値を一度に表示
すべてのフィールドの値を一度に表示することができるようになりました。ツールバーの値の項目で「--- すべて ---」を選択すると各要素ごとにすべてのフィールドの行が追加されます。
縦・横軸以外のディメンション情報をツールバーに表示
ツールバーに縦軸・横軸以外のディメンションの値を表示するようにしました。値を切り替えることでさまざまな切り口から集計値を見ることができます。
文字色と背景色の指定
文字列と背景色を自由に設定できるようにしました。フィールドごとに特定の値以上のセルをハイライトしたりすることができます。以下の例では納期遵守率が50%以下のセルの背景色を赤色にして、遵守率が100%になっているセルの文字色を青色にしています。
値が未指定の行/列を非表示
値が未指定の行/列を非表示にすることができるようになりました。休日など集計値がない行や列を非表示にして必要な情報だけを見ることができます。
FLEXSCHE Editorの機能強化
スタイル設定のインポート
スタイル設定をインポートすることができるようになりました。他のプロジェクトで使用していたスタイルを選んで取り込むことができ、いちいち設定をやり直す必要がなくなります。
フィールドのフォーマットの追加
セルの表示文字列のフォーマットを設定できるようなりました。たとえば真偽値を○/×で表示したり、実数値の小数点以下の桁数などを設定することができます。
テーブルの簡易フィルタ
特定のフィールドの値で表示するレコードをフィルタリングします。これまではフィルタを行うためには設定画面からフィルタの設定を追加する必要がありましたが、セルの右クリックから簡単にフィルタを実行できるようになりました。
新規レコードをまとめて追加
新規の行を指定した行数まとめて追加します。追加した行に対してコピー&ペーストやオートフィルを使って素早く、簡単にレコードを追加できるようになりました。
スケジューリング機能の強化
オーダー引き当て強化
上級オプション「オーダー自動引当て」を強化しました。副産物や分割作業間の自動引当てができるようになりました。また、作業連結テーブルで引当て関係を指定することもできます。
補充オーダーのコードを計算式で
将来の在庫不足を自動的に検出して補充オーダーを生成する「補充オーダー生成メソッド」で、補充オーダーのコードを計算式で柔軟に指定できるようになりました。
計算式関連の強化
takt計算式にカンマ(,)演算子を追加
カンマ(,)演算子を追加しました。これまで一つのセンテンスで書いていたためわかりにくくなっていたローカル変数の宣言と利用を分けて記述できるようになるなど、よりわかりやすく計算式を記述できるようになりました。
例)
($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
プログラミング関連の強化(開発者向け)
スクリプト雛型生成ツールの強化、様々なFLEXSCHE機能の呼び出し、takt計算式の実行を簡単に行える仕組みなど、以下の機能を追加しました。いずれもスケジューリングロジックやアドイン開発における工数削減に寄与します。
FLEXSCHEスクリプティングフォームの拡張
各種処理のパラメタ化で紹介したように、FLEXSCHEの中でのさまざまな処理の実行時にパラメタを与えることができるようになりました。
しかし、パラメタを入力するための組込みのダイアログは汎用的なもので、単純な入力をしたいだけのユーザーにとっては使いにくい場合もあります。
シンプルな入力はシンプルなダイアログで行うことができるように、FLEXSCHEスクリプティングフォーム(FSF)を使ってパラメタ入力ダイアログを自由に差し替えられるようになりました。そのための雛型はスクリプト雛型生成ツールを使って簡単に生成できます。
[標準のダイアログ]
例えば、雛型を使用するだけで、[標準のダイアログ]が[独自のダイアログ]のような画面で差し替えられます。
これによって、より直感的な入力が可能になるでしょう。
さらに、FSFによるパラメタ入力をより簡単にするために、以下のような機能が拡張されています。
[独自のダイアログ]
- FSFにレコード/レコードリストを編集するコントロールを追加できるようにしました。レコードをパラメタとして渡したい場合、いちいちコードを入力しなくてもリストから選ぶだけで入力ができるようになります。
- FSFのエディットコントロールに型を与えられるようにしました。入力したデータ型が定義されたパラメタの型と異なっていても、間違いに気付くことができます。
様々な処理を実行する汎用的な仕組みExecutableEntity
ルールの実行、EDIFなどのいくつかの処理を簡単に呼び出す仕組みを追加しました。FLEXSCHEの機能をサブルーチンとして容易にコード内に組み込むことができます。
set entity = gpManager.CreateExecutableEntity( fsProject, _ "scheduling-rule", “Target GUID" ) entity.ParameterValue("resource")="機械1" entity.Execute
アドインなどでEDIFやスケジューリングルールを実行するというようなケースは、従来より少ないステップで実現することができます。
また、外部メソッド呼び出しメソッド内にサブメソッドを登録できるようになりました。これを外部メソッド内からExecutableEntityとして呼び出せます。例えば、構造化記述メソッドを使わずにスクリプトでスケジューリングを作りこむということも可能です。
新しいtakt計算式の実行方法
プログラムコード上から簡単にtakt計算式を解釈、実行するための仕組みを追加しました。
takt式を活用するとFLEXSCHEのデータを簡単に扱えます。例えばループなどの制御を実装すること無くデータを抽出することができます。
コンテクストや変数に依存しないtakt計算式についてはたった1ステップ、それ以外のケースでも以下のような少ステップで実行できます。
- 式オブジェクトの準備(コンテクストの型、戻り値の型を指定)
- 変数定義と変数内容設定
- takt計算式文字列の設定
- コンテクストオブジェクトを指定して計算実行
' シンプルなパターン set orders = sdSpace.Calculate( "Order.Records.Select([.Qty<100])" ) ' コンテクストオブジェクトを指定するパターン set order = sdSpace.OrderSet.OrderRecByCode("N0008") set ex = _ sdSpace.CreateTypedExpression(SDVTypeOrderRec,SDVTypeOperationRec) ex.Parse ".Operations.MaxAt([.ProcLevel])" '上流作業を取得 set topOp = ex.CalculateFor( order ) ' 変数を指定するパターン 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
サポート・サービス
FLEXSCHE GPの使い方をマスターして頂くための有償トレーニングコースの内容と制度を一新しました。
目的とレベルに応じて、18のセッション(およびいくつかの特別セッション)から自由に選んでいただけます。付与されているコマ数(購入したもの、あるいはパック製品に含まれているもの)を使って、時間をかけて少しずつ受講したり、同じセッションを繰り返し受講したり、複数人で受講したりすることができます。
また、FLEXSCHE製品の保守契約を締結していただいている間は毎年所定のコマ数が追加付与されますので(繰り越しは不可)、担当者の理解を深めるための再学習や、新任者への引継ぎなどにご利用ください。
トレーニングのコマ割り
トレーニングの各コマの間には下記のような依存関係があるため、あるコマを講義内容は受講者が依存先のコマを受講済みであること、あるいは内容をすでに理解されていることを前提としてますので、受講申し込みの際にはご注意ください。
カリキュラムの依存関係