はじめに
この記事は SAP Advent Calendar 2020 の12月18日分の記事として執筆しています。
コロナ禍で多くのイベントがオンライン開催となっていますが、SAP のテクニカルカンファレンスである「SAP TechEd」もそのひとつです。参加無料で多くの最新情報に触れる絶好の機会ですので、ご興味ある方は、以下にアクセスしてみてください。
- SAP TechEd 2020 Online(2020年12月8日〜10日)
- SAP TechEd Japan 2020 Online(2020年12月15日〜16日)
例年、セッションタイプはレクチャー(40分の講義形式)ではなく、ワークショップ(120分のハンズオン形式)を優先的に選択しています。最近では、自身の SAP Cloud Platform のトライアルアカウントを利用するハンズオンも増えてきたものの、やはりトライアルでは利用できないサービスに触れることができるワークショップは魅力的です。
今年は、「SAP Ruum」というサービスを利用したノーコードなワークフロー開発に触れる機会を得ました。ワークショップ当日から7日間のみ有効なアカウントを利用していますので、大急ぎで執筆しています。マテリアルは以下の GitHub リポジトリから入手可能です。
SAP Ruum とは?
SAP Ruum とは、SAP 社が提供するノーコードなプロセス自動化ツールです。公式ページでは以下のように紹介されています。ワークショップで作成したワークフローは、SAP Ruum が持つ多面的な特徴のひとつに過ぎないようです。
Ruum empowers your non-technical users to build, integrate, and run departmental processes, without compromising IT security.
少しだけ歴史を振り返る
2019年5月に以下の SAP News がありました。
SAP、社内コラボレーションツールのスタートアップRuumに1,000万ユーロを出資
こちらのニュースの後半に以下のように記載されています。SAP はベンチャーキャピタル、アクセラレータとしてスタートアップを支援していますが、Ruum もその活動の一環で投資先となった有望スタートアップのひとつだったようです。
Ruumは、SAP.iOビジネスユニットがリードする社内インキュベーションプログラムであるSAP.iO Venture Studioの投資先スタートアップです。
また、ワークショップ資料でも歴史が紹介されています。最初は、プロジェクトマネジメントとコラボレーションのために開発されたそうです。現在もこれらの性格が失われたわけではありませんが、マーケティングのために「ノーコード」や「オートメーション」というキーワードを強調しているように思います。
SAP Ruum が担う領域
SAP Ruum の公式ページには、大きな文字で Automate the long tail of your processes without code とあります。直訳すると「コードなしであなたのプロセスのロングテールを自動化する」となりますが、この 業務プロセスのロングテール というのが SAP Ruum のターゲットです。
標準化された業務領域には高度にインテリジェント化された標準ワークフローを適用し、中間的な領域には SAP Cloud Platform Workflow などのプラットフォームを活用した拡張開発を適用し、さらにその先のロングテールには SAP Ruum を適用する。こうしたオファリングのカバレッジの広さも SAP らしいと言えるのではないでしょうか。
ワークフローのシナリオ
ワークショップで作成したワークフローは下図の通りです。4つのフォームを持つ典型的なワークフローです。
SAP Ruum にログインする
ログイン画面
早速、SAP Ruum にログインしてみます。ワークショップ用に割り当てられたユーザでログインしました。
ホーム画面
ログインするとホーム画面が表示されますので、プロファイルを確認してみましょう。ワークショップ用に割り当てられたユーザは、Enterprise Plan
契約でした。Enterprise Plan
では、OData API アクセスやシングルサインオンがサポートされるようです。プランの詳細はこちらから確認可能です。
Ruum テンプレートを作成する
テンプレートの作成開始
メニューペインを開き、Templates
メニューを選択します。テンプレート画面が表示されたら、右上の + New
ボタンを選択します。
Create Template
ポップアップが表示されたら、必要な情報を入力し、Next
ボタンを選択します。
テンプレートのデザイン(レイアウト編)
まっさらなテンプレートが作成されました。初期状態では、以下のようにひとつだけのセクションを持っています(Give this section a name
というタイトルが表示されている背景が白いキャンバス部分)。
このキャンバスにワークフローのシナリオに沿ったセクションを描き、フローを定義しています。キャンバスをクリックすると、Type of Insert
というプロンプトが表示されて、入力待ち状態となります。Type
の部分にテキストを入力すると、それがそのまま反映されます。以下では、"Please full in ..." を入力しました。
Insert
はボタンになっており、クリックすると以下の選択肢からオブジェクトを配置することができます。ワークショップの中では、Task
、Custom Field
、Role Field
等を利用しました。
Custom Field
を選択すると、事前定義されたカスタムフィールドから項目を選択可能です。複数選択 OK なので、表示順を気にしながらカスタムフィールドを複数選択し、Add Fields
ボタンを選択します。
するといい感じにレイアウトしてくれます。この要領でセクションを仕上げていきます。各フィールドには、Mandatory
(必須)、Read Only
(読み取り専用)といった属性を定義できますので、申請者や承認者などロールに応じた適切な属性をセットしていきます。
テンプレートのデザイン(フロー編)
ワークショップで作成したワークフローでは、申請者から Financial Controller
にタスクを渡す必要があります。さきほどの Insert
の Role Field
を選択してから、Financial Controller
を指定し、Add to Canvas
ボタンを選択します。
続けて Financial Controller
が申請内容を確認するためのフォームを指定します。セクションの右下にある Add Transition
ボタンを選択します。
ボタンのテキスト(ラベル)、遷移先のセクション名、ステップタイプ(Data Collection Step
、System Connector
、Approval
)を設定し、さいごに Create
ボタンを選択します。
遷移先のフォームすなわち Financial Controller
が申請内容を確認するためのフォームがまっさらなセクションとして作成されました。
ステップタイプ
ステップタイプは以下の3種類があります。Data Collection Step は、申請情報そのものや中間レビューで追記されるスタータスやメモなど、要するに最終的な承認(Approval)に至るまでに必要なデータ収集ステップです。
- Data Collection Step
- System Connector
- Approval
Approval
の場合、デフォルトで Approval 1
という承認者と、Send Back
、Reject
、Approve
の3つの遷移先が事前定義されています。承認者は必要に応じて追加できます。
System Connector
の場合、作成時に指定したコネクタに項目マッピングした上で OData API が呼び出されます。こちらもデフォルトで On Success
と On Error
という遷移先が事前定義されていますので、呼び出し結果の成否によって適切な後処理をセットします。
完成形はこちら
複数のセクションから構成される Ruum が完成しました(講師の方が事前に用意してくださっていたお手本のテンプレートをキャプチャしているので、Ruum テンプレートのタイトルが変わっています)。
Ruum を実行する
ワークフローの起票
Ruum Template 画面右上の Create Ruum
を選択します。Ruum Template をワークフロークラスとすると、Ruum はワークフローインスタンスという関係です。クラスからインスタンスを生成(起票)するようなイメージです。
各項目に適切な値を入力し、Submit
ボタンを選択します。なお、APPLICANT
にも FINANCIAL CONTROLLER
にも自分自身のユーザを指定しています。自己完結シナリオの悲しいところです。
ワークフローのレビュー
自作自演ですが、Financial Controller のつもりで必要事項を入力し、Submit for Financial Approval
ボタンを選択します。また、FINANCIAL APPROVAL
にも自分自身のユーザを指定しています。
ワークフローの承認
いよいよ承認ステップです。申請内容を確認の上、Approve
ボタンを選択します。
承認されると Purchase Order を起票するための OData API が呼び出されます。画面をリフレッシュし、実行結果を確認してみましょう。Succcess
で返されているので、無事にプロセスが完了したようです。
ワークフローの状態確認
Ruums(Ruum インスタンス一覧)
ワークショップのエクササイズでは、Applicant、Financial Controller、Financial Approval など複数のロールを自作自演してしまったので、どのように新規タスクを検知・確認するのか分かりませんでした。実際には各ロールに応じてタスクが遷移するので、各ユーザからどのように見えるのか確認してみましょう。ホーム画面の Ruums タブから Ruum インスタンスの一覧を確認できます。
Task List(タスクリスト一覧)
一番上にリストアップされている SAP TechEd - Investment Request - Session 2 - 7
を選択し、Task List
タブを選択すると、この Ruum のタスク(= Insert
で Task
を指定したもの)を確認できます。
特定の Ruum を指定していない状態だと、すべての Ruum のタスクが表示されます。未処理のものに限定するなど、適切にフィルタリングしないとタスクが特定するのが難しそうです。
Approvals(承認履歴一覧)
Approvals
タブでは、承認履歴を一覧表示で確認できます。
その他の Ruum テンプレート
ワークショップでは、ノーコードなワークフロー開発がテーマでしたが、少しだけ歴史を振り返るで触れた通り、「最初は、プロジェクトマネジメントとコラボレーションのために開発された」そうです。その名残りをその他の Ruum テンプレートを通じて垣間見ることができます。
テンプレート一覧
ワークショップ用のテンプレートカテゴリ以外にも、以下のテンプレートカテゴリが事前定義されています。
- Operations
- SAP Fucused Build
- Management
- Sales & Customers
- Project Management
- Marketing & Content
- HR Process Package
- Nonprofit NPOs
テンプレートの例
以下は、Project Managemment カテゴリの Project Planning テンプレートです。プロジェクトのゴール定義、役割と責任範囲、マイルストンから定義されています。小規模プロジェクトのコラボレーションワークスペースといった感じです。
さいごに
ワークショップを終えて
ワークショップで利用したユーザの権限では、カスタムフィールドの追加や、システムコネクタの変更などはできませんでした。ある程度の規模感を超えると、カスタムフィールド定義やロール定義に対して統制をかけることが困難になると思うので、どのような管理ダッシュボードを備えているのか確認できなかったのは残念です。機会があれば、それらの管理者視点での検証もしてみたいと思います。
ワークショップでは比較的シンプルなワークフローを題材としましたが、どうしてもアサイン先の自動提案や、ビジネスルールに応じた複雑な分岐、他アプリとの通知連携などが気になってしまいます。ただ、こちらもある程度の複雑度を超えたら、SAP Ruum での実現を諦めるというのが答えではないかと思います(=他のオファリングで実現すればよい)。ついつい難しく構えてしまいますが、SAP Ruum のようなサービスは、とりあえず触れてみて、フィードバックし、改善されていくというループを回すことが大切なのではないでしょうか。
SAP Ruum への想い
社内コラボレーションツールとして誕生した SAP Ruum は、ビジネスユーザからの生のフィードバックを反映して、プロセス自動化ツールへの進化していったのではないかと想像します。それほどビジネスの現場には自動化したいプロセスがあるということです。
SAP のコアビジネスである Intelligent Suite がカバーする領域は、一般的に大規模導入であり、導入期間はどうしても長期化しがちです。また、同時にロングテール領域まではカバーできません(カバーすべきでもありません)。いままさにこのロングテール領域を RPA に代表されるクイックなソリューションが席巻しています。しかしながら、特に RPA は新たなシャドー IT を生み出す危険性と常に隣り合わせです。
こうした中、グローバル・エンタープライズ・ソフトウェアの雄である SAP が、ワークフローという比較的標準化しやすい領域に的を絞って、スタートアップ発のソリューションの進化を支えていることを、大変好ましく感じます。スタートアップならではの「やわらかさ」と、エンタープライズならではの「かたさ」がちょうどよくブレンドされた SAP Ruum の今後を暖かく見守りたいと思います。
SAP Ruum に触ってみよう
さいごになりましたが、公式サイトからサインアップすると、Starter エディションを無償利用できます。残念ながらワークフローは作成できませんが、事前定義テンプレートを利用した社内コラボレーションや、キャンバスにテンプレートをデザインする UX などは体験できますので、実際に触れてみてください!