11. 付録¶
11.1. ワークフローサンプルの説明¶
本節では、ワークフローデザイナーの操作 で説明した操作方法によるワークフローのサンプルを参考例として提示しています。
11.1.1. ワークフローの基本作成手順¶
ツールダイアログからツールを追加し、入出力データを自動追加あるいは手動で追加した後にデータリンクの作成を行う事で、ワークフローが作成できます。

図 11.1 サンプル01_入出力のあるツールが一つのシンプルなもの¶
11.1.2. ワークフロー参考例¶
ツール間でデータリンクの生成(データの受け渡し)をすることが可能です。

図 11.2 サンプル02_入出力のあるツールが複数つながったもの¶
1つの要素からの出力を、複数の要素の入力にすることも可能です。

図 11.3 サンプル03_1つのデータから複数のツールに入力させるもの¶
公開中のワークフローを、別のワークフローのツールとして用いることも可能です。

図 11.4 サンプル04_01をネストしたもの¶
ワークフロー内で独立したワークフローが複数存在していても構いません。

図 11.5 サンプル05_WF内で独立したフローを持つもの¶
データリンクが存在しないツール間にランアフターを追加することで、実行順序を設定することができます

図 11.6 サンプル06_03にランアフターを追加したもの¶
11.2. ワークフロー定義ファイル(.miwf)¶
本節では、ワークフローシステムでダウンロードできる、ワークフロー定義ファイル(.miwf)の書式について説明します。
11.2.1. 帳票定義¶
ファイル形式および文字コード
項目
説明
物理ファイル名
(任意).miwf
ファイル形式
JSON
文字コード
UTF-8(BOMなし)
項目定義
ワークフロー定義ファイル内の要素および属性について以下にまとめます。
表 11.1 ドキュメントルート¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
バージョン
version
○
1
文字列(トークン)
本ファイル書式のバージョン。本開発では、"1.0"とします。mainWorkflow
○
1
メタ情報を含む、ワークフロー全体の情報です。nestedWorkflow
0~1
メインのワークフロー内でネストされたワークフローを定義します。ワークフロー情報の配列で構成されます。
表 11.2 ワークフロー情報(Workflow)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
metadata
○
1
ワークフローのメタ情報です。diagramModel
○
1
ワークフローの内容 兼 GoJSに読み込ませるダイアグラムオブジェクトです。
表 11.3 メタ情報(Metadata)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
ID
identifier
○
1
文字列(トークン)
ワークフローまたは予測モジュールのIDです。nodeDataArray内でcategoryが"workflow" の場合、ネストワークフローのmetaData.dentifierが設定され、ワークフローIDは"W"+前ゼロ詰15桁の整数で出力されます。nodeDataArray内でcategoryが"module" の場合、予測モジュールIDは"P"+前ゼロ詰15桁の整数で出力されます。名前
title
○
1
文字列(トークン)
ワークフローまたは予測モジュールの名前です。名前に、",,"(全角半角カンマ)を含む文字列は設定できません。説明
description
0~1
文字列(トークン)
ワークフローまたは予測モジュールの説明です。作成者
creator
○
1
文字列(トークン)
ワークフローまたは予測モジュールの作成者の名前です。更新日
date
○
1
日付
ワークフローまたは予測モジュールの更新日です。yyyy-MM-ddの形式で出力されます。
備考
remark
0~1
文字列(トークン)
ワークフローまたは予測モジュールについての、作成者による備考です。
予測モデルID
predictionModel
0~1
文字列(トークン)
ワークフローまたは予測モジュールに設定されている、特性空間インベントリシステムの予測モデルIDです。"M"+前ゼロ詰15桁の整数で出力されます。リビジョン
revision
○
1
文字列(トークン)
ワークフローの場合はリビジョン番号を、予測モジュールの場合はバージョン番号を出力します。リビジョン番号については整数値で出力されますが、バージョン番号の詳細については、モジュールバージョン を参照。
表 11.4 ダイアグラムオブジェクト(diagramModel)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
クラス
class
○
1
文字列(トークン)
ワークフロー定義ファイル中では、常に "go.GraphLinksModel"で固定です。nodeDataArray
○
1
ノード情報の配列です。書式上は、配列は空でも構いません。linkDataArray
○
1
接続情報の配列です。書式上は、配列は空でも構いません。
表 11.5 ノード情報(nodeData)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
キー値
key
○
1
整数
ツール・入出力データに設定されるIDです。ワークフロー全体で一意になります。負の値も出力されます。
名前
name
○
1
文字列(トークン)
ワークフローシステムで表示される名前です。ただし、",,"(全角半角カンマ)は設定できません。Workflow内で、カテゴリを問わず、名前は一意になります。カテゴリ
category
○
1
文字列(トークン)
ノードの種類を示します。"inputdata", "inputlist", "outputdata", "workflow", "module" の何れかが設定されます。
色
color
0~1
文字列(トークン)
ワークフローダイアグラムで表示される色です。指定しない場合は、categoryの値によって決定されます。
metadata
0~1
ツールに割り当てた予測モジュールまたはワークフローのメタ情報です。categoryが"workflow", "module" の場合のみ設定されます。inputPorts
0~1
ツールの入力ポート情報の配列です。categoryが"workflow", "module" の場合のみ設定されます。
outputPorts
0~1
ツールの出力ポート情報の配列です。categoryが"workflow", "module" の場合のみ設定されます。
型
paramtype
0~1
文字列(トークン)
入出力データのデータ型です。本バージョンでは"file"のみとします。categoryが"inputdata", "inputlist", "outputdata" の場合のみ設定されます。深度
depth
0~1
非負整数
入出力データ入出力データのデータの深度です。0または1のみ指定可能です。1を指定した場合、type指定は無視されます。inputlist以外、値は0となります。categoryが"inputdata", "inputlist", "outputdata" の場合のみ設定されます。未指定時の値は0です。デフォルト値
paramdefault
0~1
文字列(トークン)
ワークフローの実行時に、パラメータが入力されていない場合のデフォルト値です。categoryが"inputdata" もしはcategoryが"inputlist"かつlisttypeが"filelist", "valuelist"の場合のみ設定されます。paramtypeが"file"の場合は、デフォルト値は無しとなります。ノード説明
description
0~1
文字列(トークン)
ワークフローシステムで表示される、入出力データの説明です。categoryが"inputdata", "inputlist", "outputdata" の場合のみ設定されます。記述子
descriptor
0~1
文字列(トークン)
入出力データに設定される、特性空間インベントリシステムの記述子ID("D"+前ゼロ詰15桁の整数)です。categoryが"inputdata", "inputlist", "outputdata" の場合のみ設定されます。単位
unit
0~1
文字列(トークン)
ワークフローシステムで表示される、ポートに設定されている単位です。categoryが"inputdata", "outputdata" の場合のみ設定されます。リスト処理方法
listhandling
0~1
文字列(トークン)
リスト型の入力データの処理方法です。"cross", "dot" の何れかが設定されます。categoryが"inputlist" の場合のみ設定されます。未指定時の値は1です。
リスト処理優先順位
listpriority
0~1
非負整数
入力リストの計算処理の優先順位です。categoryが"inputlist" の場合のみ設定されます。
リスト型
listtype
0~1
文字列(トークン)
入力リストの型です。"linear", "log", "random", "filelist", "valuelist" の何れか。categoryが"inputlist" の場合のみ有効。
最小値
listlower
0~1
実数
ワークフロー実行時に、動的に生成されるリストの最小値です。listtypeが"linear", "log", "random" の場合のみ設定されます。リスト最大値
listupper
0~1
実数
ワークフロー実行時に、動的に生成されるリストの最大値です。listtypeが"linear", "log", "random" の場合のみ設定されます。増分(回数)値
listoption
0~1
実数
ワークフロー実行時に、動的に生成されるリストの増分、もしくは回数値です。listtypeが"linear", "log", "random" の場合のみ設定されます。必須フラグ
required
0~1
真偽値
ワークフローの入力データの必須フラグです。"true", "false"の何れかが設定されます。未指定の場合は"false"が設定されます。categoryが"inputdata" の場合のみ設定されます。
表 11.6 ポート情報(Port)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
ポート名
paramname
○
1
文字列(トークン)
ワークフローシステムで表示されるポートの名前です。半角・全角を問わず、","(カンマ)を含む文字列は設定できません。以下の規則に従い設定します。・設定されるツール内において、入出力通してポート名はそれぞれ一意であること・OutputPorts内のPortの場合は「stdout」という名前は設定不可・含むことができない文字:カンマ(全角半角とも)、ピリオド(半角)型
paramtype
○
1
文字列(トークン)
"file", "numeric", "string", "boolean" の何れかを設定します。ただし現在"file"のみ設定可能です。
深度
paramdepth
0~1
非負整数
0または1のみ指定可能です。1を指定した場合、type指定は無視されます。本バージョンでは入力値に関わらず、値は0となります。
デフォルト値
paramdefault
0~1
文字列(トークン)
ワークフローの実行時に、パラメータが入力されていない場合のデフォルト値です。
ポート説明
description
0~1
文字列(トークン)
ワークフローシステムで表示されるポートの説明です。記述子
descriptor
○
1
文字列(トークン)
ポートに設定される、特性空間インベントリシステムの記述子IDです。"D"+前ゼロ詰15桁の整数で設定します。単位
unit
0~1
文字列(トークン)
ワークフローシステムで表示されるポートの単位です。必須フラグ
required
0~1
真偽値
入力ポートの必須フラグです。"true"または "false"の何れかが設定されます。未設定の場合は"false"が設定されます。outputPorts内にある場合は無視されます。
表 11.7 ノード間の接続情報(linkdata)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
接続情報ID
id
○
1
整数
接続情報に設定される一意のIDです。ワークフロー全体で一意になります。負の値も設定されます。カテゴリ
category
○
1
文字列(トークン)
接続情報のカテゴリです。"linkdata", "runafter" の何れかが設定されます。接続元キー値
from
○
1
整数
接続元のデータもしくはツールのキー値です。接続先キー値
to
○
1
整数
接続先のデータもしくはツールのキー値です。links
0~1
ポート同士の接続の組み合わせの配列です。categoryが"linkdata"の場合のみ設定されます。
表 11.8 ポート同士の接続の組み合わせ情報(link)¶ データ項目名
要素名/属性名
必須
出現回数
データ型
説明
接続元ポート名
fromport
○
1
文字列(トークン)
接続元のポート名です。ワークフロー定義ファイル内のポート名と一致します。接続先ポート名
toport
○
1
文字列(トークン)
接続先のポート名です。ワークフロー定義ファイル内のポート名と一致します。
11.2.2. 項目設定における注意事項¶
miwf内で指定するIDについて
ワークフロー定義ファイル内で設定されるID(予測モジュールID, ワークフローIDなど)はDBに存在する値でなければなりません。
モジュールバージョン
予測モジュールのバージョンは、セマンティックバージョニング 2.0.0 (http://semver.org)に準拠し、以下のルールに沿って設定します。
書式 :{メジャー}.{マイナー}.{パッチ}
表 11.9 モジュールバージョン¶ No.
ステータス
ルール
主な用途
備考
1
メジャー
予測モジュールの使用方法としてのAPI(Application Program Interface)に後方互換性がない変更に対しては、メジャーバージョンを上げなければいけません。ワークフローシステムにおいて、ツール接続のバリデーションに使用します。
0以上の最大4桁の整数。
2
マイナー
後方互換性があり、機能が変更・追加された場合は、マイナーバージョンを上げなければいけません。
ワークフローシステムにおいて、ユーザーが自身のワークフローに適しているかを判断するのに使用します。
0以上の最大4桁の整数。
3
パッチ
後方互換性があるバグ修正を行った場合は、パッチバージョンを上げなければいけません。
GP-DBにおいて、解析者が計算結果の信頼性を判断するのに使用します。
0以上の最大4桁の整数。
11.2.4. サンプルデータ¶
下記の図のサンプルワークフローのワークフロー定義ファイルを示します。

図 11.8 サンプルワークフローレイアウト¶
workflow.miwf(ファイル名は任意です)
{
"version": "1.0",
"mainWorkflow": {
"metadata": {
"identifier": "W123450000000100",
"title": "サンプルワークフロー1",
"description": "利用者マニュアル記載用のサンプルワークフローです。",
"creator": "材料太郎",
"date": "2019-2-28",
"revision": "1"
},
"diagramModel": {
"class": "go.GraphLinksModel",
"nodeDataArray": [
{
"key": 10,
"name": "TOOL1_01",
"category": "workflow",
"color": "yellow",
"metadata": {
"identifier": "W123450000012333",
"title": "WorkflowSample",
"description": "ワークフローについての説明を記述",
"creator": "材料太郎",
"date": "2017-01-05",
"predictionModel": "M123450000000456",
"revision": "1"
},
"inputPorts": [
{
"paramname": "input1",
"paramtype": "file",
"paramdepth": 0,
"paramdefault": "10",
"description": "入力ポート1の説明",
"descriptor": "D123450000001111",
"unit": "degree",
"required": true
},
{
"paramname": "input2",
"paramtype": "file",
"paramdepth": 0,
"paramdefault": "ABCD",
"description": "入力ポート2の説明",
"descriptor": "D123450000002222",
"unit": "degree"
}
],
"outputPorts": [
{
"paramname": "outfile1",
"paramtype": "file",
"description": "出力ポート1の説明",
"descriptor": "D123450000000123"
},
{
"paramname": "stderr",
"paramtype": "file",
"paramdepth": 0,
"description": "標準エラー",
"descriptor": "D123450000000001"
},
{
"paramname": "stdout",
"paramtype": "file",
"paramdepth": 0,
"description": "標準出力",
"descriptor": "D123450000000000"
}
]
},
{
"key": 11,
"name": "TOOL2_01",
"category": "module",
"color": "orange",
"metadata": {
"identifier": "P0000006789",
"title": "Abaqus",
"description": "ツール2の説明を明記",
"creator": "材料次郎",
"date": "2017-01-05",
"version": "1.0.1",
"predictionModel": "M123450000000123",
"revision": "1"
},
"inputports": [
{
"paramname": "inputfile1",
"paramtype": "file",
"paramdepth": 0,
"description": "入力ポートの説明",
"descriptor": "D123450000000123",
"unit": "degree"
}
],
"outputports": [
{
"paramname": "outputfile1",
"paramtype": "file",
"description": "出力ポート1の説明",
"descriptor": "D123450000000456"
},
{
"paramname": "outputfile2",
"paramtype": "file",
"description": "出力ポート2の説明",
"descriptor": "D123450000000789"
},
{
"paramname": "stderr",
"paramtype": "file",
"paramdepth": 0,
"description": "標準エラー",
"descriptor": "D123450000000001"
},
{
"paramname": "stdout",
"paramtype": "file",
"paramdepth": 0,
"description": "標準出力",
"descriptor": "D123450000000000"
}
]
},
{
"key": 12,
"name": "TOOL3_01",
"category": "module",
"color": "orange",
"metadata": {
"identifier": "P0000001234",
"title": "JMatPro",
"description": "ツール3の説明を明記",
"creator": "材料太郎",
"date": "2017-01-05",
"version": "1.0.1",
"predictionModel": "M123450000000456",
"revision": "1"
},
"inputports": [
{
"paramname": "inputfile1",
"paramtype": "file",
"paramdepth": 0,
"description": "入力ポートの説明",
"descriptor": "D123450000000456",
"unit": "degree"
},
{
"paramname": "inputfile2",
"paramtype": "file",
"paramdepth": 0,
"description": "入力ポート2の説明",
"descriptor": "D123450000000789",
"unit": "degree",
"required": true
},
{
"paramname": "input3",
"paramtype": "file",
"paramdepth": 0,
"description": "入力ポート3の説明",
"descriptor": "D123450000003333",
"unit": "degree",
"required": true
}
],
"outputports": [
{
"paramname": "finaldata",
"paramtype": "file",
"description": "出力ポート1の説明",
"descriptor": "D123450000009999"
},
{
"paramname": "stderr",
"paramtype": "file",
"paramdepth": 0,
"description": "標準エラー",
"descriptor": "D123450000000001"
},
{
"paramname": "stdout",
"paramtype": "file",
"paramdepth": 0,
"description": "標準出力",
"descriptor": "D123450000000000"
}
]
},
{
"key": 1,
"name": "input1_01",
"category": "inputdata",
"color": "blue",
"paramtype": "file",
"paramdepth": 0,
"paramdefault": "10",
"description": "入力データの説明",
"descriptor": "D123450000001111",
"unit": "degree",
"required": true
},
{
"key": 2,
"name": "input2_01",
"category": "inputdata",
"color": "blue",
"paramtype": "file",
"paramdepth": 0,
"paramdefault": "ABCD",
"description": "入力データ2の説明",
"descriptor": "D123450000002222",
"unit": "degree"
},
{
"key": 3,
"name": "input3_01",
"category": "inputlist",
"color": "darkblue",
"paramtype": "file",
"paramdepth": 1,
"description": "入力データ3の説明",
"descriptor": "D123450000003333",
"listhandling": "cross",
"listpriority": 1,
"listtype": "random",
"listlower": 1,
"listupper": 100,
"listoption": 50,
"required": true
},
{
"key": 4,
"name": "output1_01",
"category": "outputdata",
"color": "green",
"paramtype": "file",
"paramdepth": 0,
"description": "出力データの説明",
"descriptor": "D123450000009999",
"unit": "degree"
}
],
"linkDataArray": [
{
"id": 1,
"category": "linkdata",
"from": 1,
"to": 10,
"links": [
{
"fromport": "input1_01",
"toport": "input1"
}
]
},
{
"id": 2,
"category": "linkdata",
"from": 2,
"to": 10,
"links": [
{
"fromport": "input2_01",
"toport": "input2"
}
]
},
{
"id": 3,
"category": "runafter",
"from": 10,
"to": 11
},
{
"id": 4,
"category": "linkdata",
"from": 3,
"to": 12,
"links": [
{
"fromport": "input3_01",
"toport": "input3"
}
]
},
{
"id": 5,
"category": "linkdata",
"from": 11,
"to": 12,
"links": [
{
"fromport": "outputfile1",
"toport": "inputfile1"
},
{
"fromport": "outputfile2",
"toport": "inputfile2"
}
]
},
{
"id": 6,
"category": "linkdata",
"from": 12,
"to": 4,
"links": [
{
"fromport": "finaldata",
"toport": "output_01"
}
]
}
]
},
"nestedWorkflows": [
{
"metadata": {
"identifier": "W123450000012333",
"title": "WorkflowSample",
"description": "ワークフローについての説明を記述",
"creator": "材料太郎",
"date": "2017-01-05",
"predictionModel": "M123450000000456",
"revision": "1"
},
"diagramModel": {
"class": "go.GraphLinksModel",
"nodeDataArray": [
"省略"
],
"linkDataArray": [
"省略"
]
}
}
]
}
}