UiPath研修・トレーニング 講師コラム UiPath StudioXについて(2/2)

こんにちは。UiPath研修トレーナーの関根です。前回に続けて、UiPath StudioXの話を続けてみたいと思います。

前回コラムのおさらいと今回のテーマ

前回はUiPath StudioXのアウトラインと、それがいかにビジネスユーザーに親しみやすいものになっているかというお話しをしました。
そしてその親しみやすさの仕掛けの一部は、難解四天王「変数」「引数」「データ型」「メソッド」を「無くした」ことであり、その方法は「隠蔽」「代替」「破棄」の3つのパターンに分類できるとしました。
今回はこの点について掘り下げてみてみます。(そのため、今回は若干技術的なところに踏み込んだ内容となりますのでご了承ください。)

「変数」はExcelのセルに「代替」

順番に行くことにして、まずは「変数」から。
こちらは「代替」に該当します。そもそも、コンピューターに何かをさせる手順(UiPathの場合はこれをワークフローと呼びます)を作成するにあたって、変数的なものを用いないことは不可能です。
ですが、やはりプログラミングの経験がない方には分かりにくい。
そこでUiPath StudioXがとったのは「変数の代わりにExcelのセルを使えばいいよね」という考え方です。
値を取得し、それをとりあえずセルに書き込み、その後必要になったらそのセルから値を取得する、という手順です。
プログラマーからすると変数そのものじゃないかという気もしますが、「予め作成(プログラミング言語的に言えば宣言)をする必要がない」、「目に見える」という点で分かりやすくなっています。
目に見えることというのは実は大きなポイントで、「取った値をここに書いて、後でそこから読み出して」といった具合で「ここ」「そこ」といった感じで直感的に指定ができるため理解しやすく、また、デバッグもしやすいと言えます。

「引数」の概念は「破棄」

次に「引数」です。こちらは「破棄」です。割と思い切ったことをしたなぁという気もするのですが、UiPath StudioXの場合、プロジェクトの中にワークフローファイルを一つしか持てません
このため「他のワークフローファイルを呼び出す」ことがなくなり、結果として「引数」という概念自体がUiPath StudioXの世界からはきれいに消えてしまうということになります。
これによるデメリットは言うまでもなく、複雑・大規模な処理の定義がしにくくなるということです。
単一のワークフローファイルの中に膨大な処理を定義することもできはしますが(想像したくはありません)、保守性は確実に落ちます。
もっとも、そのくらいのことができるようになったらUiPath Studioの世界にステップアップしてね、というのがUiPath社の気持ちなのかもしれません。

「データ型」は意識をしなくていいように「隠蔽」

次は「データ型」ですが、こちらは「隠蔽」です。隠蔽というと「隠蔽体質」といったようなネガティブなイメージを持たれる方もいるかもしれませんが、今回はそうしたものではなく、純粋に「隠す」という意味になります。
UiPath StudioXは、UiPath Studioと同じ.NET Frameworkをベースにしています。ですので、データ型という概念がある世界の上に成り立っているわけです。
そのため、さすがに「破棄」とはいかないのですが、とはいえビジネスユーザーにとって「データ型」の考え方は少なからずハードルが高い。
そこでUiPath StudioXでは主に二つの方法をもってデータ型を意識しなくてよいようにしています

Excelを利用

一つは再びのExcelです。
Excelの場合、セルに入っている値の形式、またはセルに設定された書式によってデータの型(のようなもの)を持っています。これを利用するというものです。

そもそもテータ型に矛盾するものは指定させない

あともう一つは、「指定可能なものしか指定させない」という方式です。
UiPath Studioのように「指定はできるがエラーになる」ということを避け、そもそもデータ型に矛盾するものは指定させないわけです。
これらによりデータ型を意識せずとも、データ型に矛盾しない処理を組み上げることができるようになっています。

と言いつつ、UiPath StudioXの中には「データテーブル」といった単語がちらほら出てきてしまったりするので、隠しはしたものの隠しきれていないところがあります。
ちょっとお茶目な気もしますが、私が今評価しているのはプレビュー版なので、もしかすると正式版では完全に隠蔽されるのかもしれません。

「メソッド」はエクセル関数で「代替」

最後に「メソッド」ですが、こちらは「変数」と同じく「代替」です。
しつこくなりますが、UiPath StudioやUiPath StudioXは.NET Frameworkをベースにしています。

UiPath Studioはそのベースをそのまま活用し、メソッドも.NET Frameworkのものがそのまま使えます。
そのため、Visual BasicやC#といった.NET Frameworkベースのプログラミング言語に慣れているプログラマーにとっては、「いつものあのメソッド」がそのまま使えるのでとても便利です。

一方、ビジネスユーザーにとっては「?」でしかありません。
そもそも、.NET Frameworkってなんなんだといった感じのはず。

そこでUiPath StudioXは、.NET Frameworkのメソッドではなく、Excelのワークシート上でExcelの関数を使ってデータの処理を行う方法を採りました。
ですので、例えば「今日の翌月の月の数字を、前ゼロつき2桁の文字列として取得」といった加工も、
.NET Framework式の

Now.AddMonths(1).Month.ToString(“00”)

という書き方ではなく、
Excel関数を使用し、

TEXT(MONTH(EDATE(TODAY(), 1)), “00”)

という書き方で定義します。
Excelを使わないビジネスユーザーはまずいないと思います。
既存のExcelの知識がそのまま使えるというのは、非常に大きなメリットであると言えるでしょう。