ゼロからの Aras Innovator 第5回 〜 ライフサイクルとワークフロー、似て非なる両者の関係 〜

Arasフレームワークの主な構成要素をご紹介しているシリーズの4回目です。
今回は「ライフサイクル」と「ワークフロー」についてご紹介します。

ゼロからの Aras Innovator 掲載予定


「ライフサイクル」と「ワークフロー」

Aras Innovatorでライフサイクルの設定を行う画面は・・・

ライフサイクルマップ設定画面

 

一方、ワークフローを設定する画面は・・・

ワークフローマップ設定画面

 

・・・すごーく似ていますね。

でも それぞれ明確な役割を持っていますので、混同が無いように対比して説明します。

ライフサイクルとワークフロー

 

両者の違いで最も重要なのは、その位置付けです。
ライフサイクルの設定を行う「ライフサイクルマップ」は、いわゆる「状態遷移図」です。これは作業の流れを表すものではなく、あくまでそのアイテムが取り得る状態(ステート)と、可能な状態間の遷移を規定するものです。

一方、ワークフローの設定を行う「ワークフローマップ」は、その名の通り作業の流れを表したものになります。

この違いから、ライフサイクルマップの丸の一つ一つ(ステート)は形容詞的な名前付けとなりますし、ワークフローマップの丸の一つ一つ(アクティビティ)は動詞的な名前付けとなります。

また、ワークフローマップは本番運用に入ってからも頻繁に見直されるのに対し、ライフサイクルマップの方は滅多に変更はされません。

ワークフローは作業の流れなので、同時に複数の作業を実行するといった並行分岐がサポートされているのに対し、あるアイテムが一時点で取り得るライフサイクルステートは常に一つのみです。


矢印の進め方

ワークフローは作業の流れそのものですので、それぞれのアクティビティ(丸)にアサインされている担当者に作業を促すようなインターフェイスが用意されています。各担当者の画面に用意されている「My InBasket」にアクティビティ実行依頼が回ってきますので、その作業を実施し、完了したら「承認」や「却下」などの指示を行って次のアクティビティに進めます。

ワークフローの進め方

 

一方でライフサイクルの進め方は、手動でステートを変更するかプログラム的にステートを変更するか、といったところになります。これも、ライフサイクルマップが状態遷移図であるということをご理解頂ければ、違和感の無いところかと思います。
なお、ライフサイクステートの変更に関しては、それぞれの状態遷移(矢印)を実行可能なアイデンティティを定義したり、状態遷移時のバリデーションルールを設定したりなどが簡単に行えますので、手動で変更するといっても無秩序状態となるようなことはありません。

手動でのライフサイクルの進め方


両者の連携

以上のように、ライフサイクルとワークフローは見た目は似ているけれどもまったくの別物ですので、適材適所で利用して頂ければよいです。ライフサイクルだけ、ワークフローだけ、で全然問題ありません。

一方で、両者を連携させることで色々な設定をすっきりさせることも可能です。
以下で典型的な2パターンの連携の仕方について、ご紹介します。

▼ ライフサイクルからの小さなワークフロー起動パターン

対象アイテムのステートがある段階に達したら、「関連部門通知」などの小さなワークフローを起動するようなパターンです。
それぞれの生存期間の大きさは、 ライフサイクル > ワークフロー という関係になります。

小さなワークフロー

▼ ワークフローによるライフサイクル制御パターン

一つの大きなワークフローにより、対象アイテムのライフサイクルを最初から最後まで制御するようなパターンです。
それぞれの生存期間の大きさは、 ライフサイクル = ワークフロー という関係になります。

プレパッケージソリューションに含まれるECRやECNなどの変更管理アイテムは、このパターンを使用しています。また、バリデーションや変更対象パーツのリビジョンアップなどのビジネスロジックは、全てライフサイクルマップから起動するようになっています。これは、ライフサイクルマップは滅多に変更されないという性質を利用した方法で、こうすることで、ビジネスロジックの変更を伴わずにワークフローを柔軟に変更することが可能となっています。

大きなワークフロー

ライフサイクルやワークフローについて、ご紹介したい内容はまだまだたくさんあるのですが (脚注*1) 、Arasフレームワークをさらっとご紹介するのが今回の目的ですので、この辺に留めたいと思います。両者の違いについて、しっかりご理解頂けましたでしょうか?

ライフサイクルやワークフローは、Aras Innovator上の すべてのアイテムタイプに設定可能 です。ですので、既存の「パーツ」や「ドキュメント」といったアイテムタイプだけでなく、独自に作成した「作業指示」「受注」「取引先」「キャンペーン」など、どのようなものにも簡単かつセキュアに適用することができます。スクラッチのシステム開発で、独自に状態遷移ロジックやワークフローロジックを作り込んだ経験をお持ちの方も多いのではないでしょうか? たとえPLM機能を使わないとしても、Arasフレームワークを使うメリットはこの辺りにもあります。是非お試しを。

※ 次回は、Aras Innovator内でのファイルの取り扱いについて見ていくとともに、Office Connectorについてもご紹介したいと思います。
それでは、また次回。


(脚注*1) 紹介したい内容:
特にワークフローについては、並行分岐や条件分岐、合流やサブフロー、多数決に全会一致、強権発動や動的なアサイン変更などなど、ご紹介したい内容がたくさんあります。弊社で毎月開催しているWorkflowトレーニングで、詳しくご紹介していますので、ご興味がありましたらご受講ください。


(アラスジャパン 宮内一也)