FLEXSCHE製品のご紹介

FLEXSCHEバージョン18

FLEXSCHEバージョン18.0を2018年10月15日にリリースしました。およそ221項目にもおよぶ機能拡張が施されています。そのうちの主だったものをご紹介します。(バージョン17.0とバージョン18.0の差分)

FLEXSCHE全体から様々な条件で一括検索できるようになりました。

さまざまな検索条件

検索先一覧

一括検索ダイアログを使って、FLEXSCHE全体に対して以下のような条件で検索することができます。

  • 部分文字列の一致
  • 正規表現
  • オブジェクトに対する条件式
  • 列挙されたオブジェクト

検索ダイアログ

検索結果は検索パネルに一覧表示されます。

一括検索ダイアログ内で検索範囲を選択して限定することもできます。あるいは、一括検索ダイアログを起動する箇所(プロジェクトパネルや時系列チャートメニューなど)によって検索範囲を暗黙に限定することもできます。 逆に、特定のオブジェクト(プロジェクトパネル内のオブジェクトなど)から起動することで、それが表示されている箇所をすばやく見つけることもできます。

検索履歴が保持されるので、同等条件での再検索もすばやく実行できます。

検索結果からジャンプ

検索パネルの項目をダブルクリックすると、それぞれの検索先のウィンドウ上での位置が強調表示されて、対象を容易に見つけることができます。

アドインからも利用可能

一括検索のフレームワークはサードパーティーのアドインからも利用できます。自作のアドインやビュー、パネルの表示内容を検索対象に加え、検索パネルで当該項目がダブルクリックされたときのアクションを実装することができます。

代替ジョブ機能

階層的な工程定義により、より柔軟なマスターデータ運用と工程フローのバリエーションへの対応が可能になりました。

※上級オプション「代替ジョブ」(2ユニット)が必要です。

1つの作業の代わりに一連の作業を展開し割り付ける「代替ジョブ」機能を利用できるようになりました。 工程定義を階層毎に分担する運用が簡単になります。また、工程数の異なる複数の代替生産方法から自動的に1つを選択させることもできます。

右の図では、工程P2に、代替ジョブを展開するための工程グラフ(PA→PB→PC)が指定されています。自動スケジューリングによって、作業P2の下に「代替ジョブ」として一連の作業(P2:PA→P2:PB→P2:PC)が展開され、P2の代わりに割り付けられます。

例えば、基幹システムとスケジューリングとで管理する工程の細かさが異なる場合に、基幹システム側の工程定義を変更せずにFLEXSCHE側だけで詳細な工程定義を追加できます。基幹システム側の工程定義に変更があった場合にも、FLEXSCHE側ではその箇所だけに詳細な工程定義を追加すればよく、必要最小限の修正だけで済みます。

また、個別受注生産で詳細工程が確定しないうちに製造に着手しなければならない場合にも、代替ジョブを使えば、基本的な工程定義と詳細な工程定義とに分離しておき、詳細な工程が確定したところから順に置き換えていく、という運用をスムーズに実現できます。

多段階に展開

代替ジョブを展開するための工程グラフの中に、さらに代替ジョブ展開の指定のある工程が含まれている場合、代替ジョブは多階層に展開されます。

例えば、大日程→中日程→小日程というように工程が階層的に管理されている場合に、上階層での工程定義および計画内容を下階層で継承しつつ独自に詳細化していく、ということを多段階にスムーズに行うことができます。

また、プロジェクト管理でのWBS(Work Breakdown Structure)とも親和性が高くなっています。

複数の生産方法からの自動選択

代替ジョブのための工程グラフ候補を複数指定すると、それらは排他的な選択肢となります。この場合、自動スケジューリングによって、それらの候補の中から1つが自動的に選択されて割り付けられます。その際の選択基準は、計算式できめ細かく指定しておくことができます。

右の図では、工程P2に対して、PA→PB→PCという3工程からなる選択肢と、PA・PB→PC→PDという4工程からなる選択肢があります。自動スケジューリングによって、それらの選択肢のうちで最も望ましいとされたものが自動的に採用されます。

これにより、たとえば内作と外注など、工程数の異なる複数の生産手段がある場合にも、望ましい方を自動的に採用する計画を立案できます。

ユーザーインターフェース

[各チャート行] チャートの書式文字列編集画面を直接開く

資源ガント左部やガントチャートのタスクなど、文字列を編集したい箇所のポップアップメニューから直接的に書式編集画面を呼び出せるようになりました。

特に上書き表示設定、場合分け、あるいは複数カラムを使っていて、目的の表示文字列編集ダイアログへ到達するのに手間がかかる場合には多大な効果があります。

[チャート全体] 複数カラムのラベルをダブルクリックで設定を表示

複数カラムの列名部分をダブルクリックすると、チャート全体のカラム設定画面を開けるようになりました。

[チャート全体] 行構成ルールの設定タグの指定を計算式で

各行に埋め込む設定タグの指定を計算式で表すことができるようになりました。コスチュームなどと組み合わせて柔軟性なチャート表現が可能となります。

[チャート全体] チャート行の保有変数を計算式から参照可能に

TimeChartRow.VariableValue関数により、保有変数を参照できるようになりました。上位行で集計された値などを保持させておき、それを下位行で参照するというような利用方法が考えられます。下位行で都度集計するよりも処理コストパフォーマンスが改善できます。

[資源ガントチャート] 分離されたタスク文字列背景色

タスク文字列をバーから分離しているとき、その背景色を設定できるようになりました。

[資源ガントチャート] 分離されたタスク文字列でタスクを選択

文字列部分をクリックしてもタスククリック同様、その作業を選択するようになりました。

[資源ガントチャート] 日時コメントの表示

タスク文字列をバーから分離しているとき、日時をキーとした任意コメントを表示できるようになりました。

[在庫量チャート] 在庫量チャートのレンジを数値仕様で

レンジ(縦軸の値の範囲)を品目数値仕様で指定できるようになりました。

[サインボード] データキューブの表示機能強化

データキューブの内容を表示する際、条件に応じた文字色を指定できるようになりました。データキューブの値をそのまま出力するだけでなく、計算式を経由し任意に変換できるようになりました。また、計算式による表示においても、文字色を指定できるようになりました。

[差立てチャート] 行ヘッダの表示強化

日の区切りで表示しているとき、同一日の行ヘッダをマージしました。また、曜日を表示するようにしました。

[計算式] 条件内容部分のコピー&ペースト対応

作業主導ディスパッチングの資源選択などの条件内容部分のコピー&ペーストに対応しました。

[計算式] 計算式入力欄が複数行に

従来は複数行の計算式を入力するためにはそのためのダイアログを別途開かなくてはなりませんでしたが、計算式入力欄に直接複数行を入力できるようになりました。また、可変サイズになったので計算式欄をさらに大きく使うこともできます。

[計算式] タブの挿入に対応

可読性のためのインデント操作ができるようになりました。複数行選択してまとめてTabやSpaceのインデントを挿入したり、Shift+Tabでインデントを減らすことができます。

[スキルエディタ] スキル名の連続入力

スキルエディタでスキル名を入力する際にタブキーで列を移動し、スキル名をキーボードから入力することで手早く連続して行えるようになりました。

[データウィンドウ] 値の貼付け

Excelからのコピー&ペーストでデータの型を考慮した貼付けができるようになりました。書式設定などで例えば日時などのフォーマットが異なっている場合でも、自動的に型を考慮して貼付けられます。

[作業データウィンドウ] 選択状態をマスタの編集画面から変更

チャート上の作業の選択状態を作業データの編集画面から変更できるようにしました。マスタ画面のフィルタやソート機能を駆使して抽出した作業の選択状態を変えてチャート上で操作することができます。

[その他] 全画面表示

全画面モードを追加し、ビューのみを画面いっぱいに表示できるようになりました。

[その他] プロパティページを可変サイズに

従来サイズ固定だった一部のダイアログが可変サイズ画面になりました。リストやエディットボックスなどのサイズが画面サイズと連動するので、サイズを大きくすれば多くの情報を表示できます。

[その他] スケジューリングパネル拡張

スケジューリングパネル上からルール名/メソッド概要説明の編集、ルール/メソッドのコピー&ペーストが行えるようになりました。また構造化記述内のメソッドも表示されるので、途中のダイアログを省いてメソッド編集ダイアログを直接開けるようになりました。

データ&モデリング

特殊なスキルキーを追加

適用したいスキルが複雑な場合でも、簡単に指定することができるようになりました

作業者ごとに能力が異なり、同じ品目を製造する場合でも時間が変わったり、そもそも人によっては作業ができなかったりするモデルを実現するために、FLEXSCHEでは作業者ごとに「スキル」を指定することができます。従来は、同じ品目でも仕様が変わるなど、場合によって適用したいスキルが変わるときには複雑な計算式を記述する必要がありましたが、新バージョンでは、計算式なしで、簡単にこのようなモデルを表現することができるようになりました。

コンボキー内の仕様キーを間接指定できるように

作業をする機械・工具・人の組み合わせを、より柔軟に限定できるようになりました

例えばある作業は機械Aでも機械Bでもできるけれども、機械Aを使用するならば工具Aを同時に使用し、機械Bを使用するならば工具Bを同時に使用する、というように、利用する資源の組み合わせが決まっていることがあります。このような組み合わせは「コンボキー」を使って簡単に指定することができますが、従来は、品目ごとに固定的な組み合わせしか与えられませんでした。新バージョンではより柔軟に、同じ品目でも場合に応じて異なる組み合わせを指定することができるようになりました。

適正時間制約係数キー

工程間のバッファ時間を状況に応じて変えることが簡単にできるようになりました

実行時のゆらぎに対応するために、あらかじめ工程間にバッファ時間を設けて計画することができますが、そのバッファを計算式なしでパラメタ化できるようになりました。これによって、作業開始前は多めにバッファ時間をとっていても、作業の進捗に応じて、ゆらぎが少なくなったと判断される場合にはバッファ時間を減らしていくようなことが簡単にできるようになります。

歩留まり係数キー

歩留まりの指定が柔軟にできるようになりました

従来は、歩留まりは品目ごと工程ごとに固定の値しか指定できませんでしたが、動的に設定できるようになりました。これによって、例えば同じ品目でも使用する資源によって歩留まりが異なるようなモデルを表現しやすくなります。

選択される側の複数セレクタにAND指定

工程バリエーションの表現がより簡単になりました。

[例1]従来の指定方法

セレクタについては以前の新機能紹介でも詳しくご説明しましたが、さらに改良して、選択される側に複数のセレクタをANDで指定できるようになりました。これによりセレクタの指定が簡単に済む場合があります。

[例1]では、前工程は工程A,Bのどちらかで、後工程は工程C,Dのどちらかで作業できるという、4通りのパターンがあります。さらに、後工程で工程Cか工程Dのどちらで作業するかに応じて、前工程に投入する原料が変わります。

[例2]ANDを利用する指定方法

従来は工程選択用の4つのセレクタ(ac,ad,bc,bd)と原料選択用の2つのセレクタ(C,D)を用意して、オーダーからこれらを適切に指定する必要がありました。

[例2]のように選択される側にANDで複数のセレクタを指定できるようになったことによって、どの工程を通るかを4つのセレクタ(A,B,C,D)から選んで指定できるようになります。

作業を実績から生成

作業実績から新たな作業を生成して、チャート上に割付けることができるようになりました。

通常、作業を生成して計画を立てるためには工程・資源・能力などのマスタが必要ですが、これらのマスタがなくても、いつ(何時から何時まで)どこで(どの機械・人で)作業したかという実績情報を与えることで、その通りに作業を生成してチャート上に割付けることができるようになりました。

例えば、マスタとしては管理されていない計画外の作業についても負荷などを考慮したり、計画を立てたりできるようになります。

品目グループを細分化

品目グループを細分化できるようになりました。

これにより、品目グループに所属する各品目の在庫量をロケーションごとに集計できるようになります。例えば、複数品目を合計した在庫量が、工場ごとに許される最大の量を超えているかどうかを在庫量チャートで確認したり、超えないような計画を立てることもできるようになります。

カスタムフィールドの既定値

カスタムフィールド(ユーザー定義型のフィールド)に既定値を設定できるようになりました。EDIFやアドインなどからレコードを追加するときに、既定値を採用する場合は設定を省略できます。

作業場計画オプション

モノの置き場所を制約としつつ自動スケジューリングと手修正による計画立案ができる「作業場計画オプション」を大幅に機能拡張しました。

並列処理による高速化

作業場計画機能を並列処理できるようになりました。マルチコアCPU環境でスケジューリング時間を短縮できます。

配置の評価基準指定

作業場の配置は、従来は自動的に決定されていましたが、各配置候補を評価するための計算式を指定できるようになりました。たとえば「なるべく通路側に優先的に配置したい」というような細かな意向を計画に反映できます。

配置が望ましくなければ次の時間帯や別の作業場に

作業主導ディスパッチングメソッドの資源選択や再探索基点で、作業場への配置予定を参照できるようになりました。これにより、予定されている配置が望ましくない場合には、次の時間帯に進めたり、他に作業場資源があればそちらを優先したりすることができます。

配置領域の矩形制限を解放

従来は、作業場や領域制約の限定領域の形状に多角形が指定されていても、配置計画時にはそれらが長方形とみなされていましたが、多角形の中に配置されるようになりました。

メッシュサイズ指定

配置位置のメッシュサイズを指定できるようになりました。例えば配置場所が等間隔の区画で区切られているような場合に区画に合わせて配置できます。

ワークに画像を重ねて表示

作業場パネルで、配置された各ワークに対して個別の画像を重ねて表示できるようになりました。ワークの輪郭だけでなく内側の状況もリアルに表示できます。

通常

ワークに画像を重ねて表示

作業場内の座標を表示

マウスカーソル位置の作業場における座標を、作業場パネルのステータスバーに表示できるようになりました。様々な箇所に対して作業場での座標を調べるのに便利です。

子領域の表示文字列・表示色

作業場に含まれる子領域に対して、作業場パネルで表示文字列や表示色を設定できるようになりました。

エクスポートで背景も出力

EDIFで作業場をEMFファイル(Enhanced Metafile)やSVGファイル(Scalable Vector Graphics)にエクスポートする際に、背景も出力するようになりました。適切な背景を設定しておくことによって作業指示等での視認性を向上させることができます。

作業場パネルへのドロップダウン

作業場パネルに作業パネルやプロジェクトから作業をドラッグアンドドロップして配置を変更できるようになりました。別の作業場に配置されている作業を移動して更に配置を指定するという操作がスムーズに実現できます。

作業場パネルで非稼働時間帯をスキップ

作業場パネルで表示時間帯を前後に切り替える際に、休日などの非稼働時間帯をスキップできるようになりました。

FLEXSCHE Communicator

プロジェクトサービスごとの上級オプション設定

Communicatorに登録されているプロジェクトサービスごとに、異なる上級オプションを設定できるようになりました。保有している上級オプション数の範囲内であれば、要件が異なる複数のプロジェクトを同じライセンスで使い分けることができます。

並列処理による高速化

サーバー上のスケジューリングで並列処理を有効にすることで、高速化できるようになりました。

スクリプトの外部メソッド/ファンクションを使えるように

Communicator上でスクリプトアドインを実行できるようになりました。本格的な開発環境を用意してDLLを作成することなく、手軽にさまざまな機能を実装できます。

FLEXSCHE EDIF

SAP HANAに対応

新たにSAP HANAとの連携が可能になりました。HANAはERPやMRPなどにも採用され始めた新しいRDBMSです。FLEXSCHEもHANAに対応したことで、HANAを採用した基幹システムとも直接的に連携が可能となりました。

JSON形式に対応

新たにJSON形式によるファイルI/Oにも対応しました。jsonファイルはスクリプトなどからアクセスする際に便利なので、EDIFによって得られたデータを1クッション処理を挟む場合などに有用です。

EDIFインポートで直前レコードを参照可能に

1件前にインポートしたレコードを参照できるようになりました。例えば、整列されたデータを順に詠み込んで特定の列の値を変化を検出したときに振る舞いを変えるといった制御が容易になるでしょう。

EDIFインポート時のロールバック指定を細かく

従来は全体の共通設定としてエラー時にロールバック「する/しない」といった指定のみでしたが、インポートグループごとに指定できるようになりました。

計算式

乱数の関数の拡張

Math.Random関数を拡張して乱数の発生方式を指定できるようにしました。求める速度や品質に応じて選択することができます。また、正規分布やポアソン分布の乱数を発生する関数も追加されています。

シミュレーションなどの用途での使用が考えられます。

計算式オブジェクト

変数にラムダ式のように関数型の値を代入できるようになりました。これまでのように計算式ライブラリを使用しなくても共通のルーチンを計算式内にまとめて定義することができ、可読性や保守性を向上することができます。

例)分割兄弟作業の最早着手日時を比較

$earliestStart := Operation()[
  .SplitBase.SplitOperations
    .Select([.IsAssigned])
    .Min([.ManufactureStartTime]) ],
.PrecedingOperation.$earliestStart() < .$earliestStart()

また再帰的な関数や相互参照の関数も計算式ライブラリを使わずに記述することができます。

例)フィボナッチ数

$fib := (Long n)[$n <= 1 ? $n : $fib($n - 2) + $fib($n - 1)]->Long,
$fib(10)

レコード生成関数

レコードを生成する関数を追加しました。任意の作業、オーダー、自由カレンダー、作業実績、作業連結レコードを生成することができます。例えば在庫に応じてそれを消費するオーダーを生成したり、一つのオーダーを生成して複数のオーダーをまとめたりすることができます。これらの関数はプロパティ生成メソッド内でのみ利用できます。

動的に変数の値を取得

計算式にリテラルでなく変数の値を取得するVariable関数を追加しました。取得する変数名を状況応じてに変えたい場合や帳票からEDIFのパラメタを動的に参照する場合に利用できます。

様々な関数を追加

計算式で使える関数をさらに増えて、できることが一層広がりました。

関数一覧

基本型
Stringクラス CountSubString
Contains
TearOff
Longクラス Div
MulDiv
オブジェクト型
Resourceクラス RestrictionSpecKeys
RestrictionSpecs
RestrictionSpecIncluded
Operationクラス ResourceRestrictionType
ResourceRestrictionResources
SplitIndex
SplitRatioDenominator
SplitRatioNumerator
SplitRatio
WorkingPeriodProtected
Taskクラス RecordKey
Orderクラス OperationSpecCode
OperationNumSpec
OperationGraphクラス WorkinPeriodProtected
Connectionクラス ResourceOccupationType
CTTクラス AppliedChangeover
AfterTestクラス CheckResourceConnectivity
BeforeTestクラス AreResourcesPassive
レコード生成関数 *プロパティ設定メソッドでのみ利用可能
ItemSetクラス Create
OrderSetクラス Create
FreeSetCalendarクラス Create
ResultSetクラス Create
ConnectionSetクラス Create
CustomSetクラス Create
Procクラス CreateOperation
Operationクラス CreateResult
作業場関連
Orderクラス Shape
Shapeクラス CalcArea
AfterTestクラス Workshop
Work
Works
CalcStandardEvaluationValue
ShapePlacedクラス Operation
ShapeInfo
CalcEnvelopeDistance
IsIncluding
Workshopクラス Areas
AreaFromCode
OuterArea
Operationクラス RestrictingAreas
ContactingAreas
AfterTestクラス RestrictingAreas
ContactingAreas
代替ジョブ関連
Operationクラス HasSubstitute
SubstituteOperationGraph
SubstituteOperations
IsSubstitute
OperationSubstitutingFor
OperationGraphクラス IsSubstitute
OperationSubstitutingFor
システム
Snapshotsクラス(新規追加)
Snapshotクラス Time
数学
Mathクラス RandomNormal
RandomPoisson

 

プログラミング関連(開発者向け)

FLEXSCHEはパッケージソフトとしての充実した機能を備えているだけではなく、プログラミングによる機能追加が簡単にできることも大きな特長です。

FLEXSCHE Scripting forms(FSF)のボタンコントロールの挙動の拡張

FLEXSCHE Scripting formsは、スクリプト言語(JavaScript/VBScript)だけでモーダルフォームおよぼモードレスフォーム(ビュー/パネル)を手軽に作成するための枠組みです。 バージョン18.0では以下の機能拡張が施されました。

デフォルトボタンを「いいえ」に設定

モーダルフォーム(Yes/NoまたはYes/No/Cancel)でEnterキーを押したときに、押されたとみなされるボタン(デフォルトボタン)を指定できるようになりました。

実装例を表示する

Sub SampleForm_Initialize( form )
  ...
  form.Property( "form", "default_button")="no"
  ...
End Sub

モーダルフォームでのEnterキーやEscapeキーを無効化できるようになりました。

実装例を表示する

Sub SampleForm_Initialize( form )
  ...
  form.Property( "form", "accept_enter")=false
  form.Property( "form", "accept_escape")=false
  ...
End Sub

リスト項目のダブルクリックは
「OK」押下と等価

モーダルフォームにおいて、任意のイベント処理内で特定のボタン(OK/Cancel/Yes/No)が押されたとみなしてフォームを閉じられるようになりました。

実装例を表示する

Function SampleForm_Event( form, ctrl, evnt, param )
  ...
  if ctrl = "list1" then
    if evnt = "double_clicked" then
      form.Done "ok"
    end if
  end if
  ...
End Function

その他

簡略表記の日付の読み取り

従来は"2018/11/23"のように、年が4桁の日付しか解釈できませんでしたが、"18/11/23"のように2桁でも受け付けるようになりました。

FLEXSCHE製品のご紹介

PAGETOP