Skip to content

UiPathでカレンダー入力

Posted in RPA, and UiPath

Last updated on 2020年11月3日

にゃー、にゃー(ねぇ、ねぇ)

なに⁉

日付の入力をしてもらいたいニャ
でも【入力ダイアログ】だと正しい形式で入力してくれないニャ

なるほどね
その場合【入力ダイアログ】ではなくて【カスタム入力】アクティビティを利用する必要があるよ


みなさん、こんにちは。

最近は、コロナウイルスで外出が制限され少し窮屈ですよね。

私は、たまりにたまった本の消化と今までやってみたかったガンプラの塗装に取り組んでいます。

後者はまた画像載せますね。


ところで今回は、ふっくら猫さんユーザのCX向上を見込んでか少し変わったことを考えているようです。

カレンダー入力...UiPathでは、ユーザに入力をしてもらう【入力ダイアログ】やファイル選択する【ファイル選択】同じようにフォルダ選択を選択する【フォルダ選択】と実行ユーザにその時のインプットをもらうアクティビティはありますが、カレンダーはありませんね。

【入力ダイアログ】を利用してできないこともありませんが。ユーザの入力方法が異なってしまったり、そもそも操作性が...のようにあまりよい解決策とは言えません。

では、どうするのか?

答えは、【カスタム入力】アクティビティ+独自のHTMLを利用する方法となります。


カスタム入力アクティビティとは

カスタム入力アクティビティとはなんでしょうか。

おそらくほとんどの方がこのアクティビティを利用したことなく、その必要もなかったかと思います。

このアクティビティは、ユーザの入力を前提とするワークフローを開発する際、よりユーザに適切にデータを入力してもらう際に利用するアクティビティとなります。

使い方は、専用のHTMLを作成し、そこで入力を行ってもらったデータを受け取り後続処理を行うようなイメージとなります。


[bcard url="https://docs.uipath.com/activities/lang-ja/docs/custom-input"]

カレンダー入力を行うHTMLを作成してみる

具体的な開発方法は、UiPath社のサイトに記載されていますが、やはりHTMLと(少し)Javascriptの知識が必要となります。

もし、かっこいいフォームを作りたいとなれば、CSSも必要となるでしょう。

HTML5のインプットタイプ(date)を利用してもできるのですが、IEがHTML5に対応していないケースを考慮し Jquery のDatePicker を利用し開発しました。

下記コード記載します。


<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html lang="ja">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <!-- jQuery -->
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <!-- jQueryUI -->
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
  <!-- jQueryUI DatePicker-->
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script>
  <!-- カレンダースタイル -->
  <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css">
  <script>
    $(function () {
      $.datepicker.setDefaults($.datepicker.regional["ja"]);
      $("#calender_input").datepicker();
    });
    $(document).ready(function () {
      $('button').click(function () {
        var date = document.getElementById("calender_input").value;
        window.external.setResult(date);
        return true;
      });
    });
  </script>
  <style type="text/css">
    /* CSSはここに記入 */
  </style>
  <title>カレンダー入力</title>
</head>
<body>
  <h1 align="center">カレンダー入力</h1>
  <form name="mainForm" id="content">
    <div align="center">
      <p>年月日: <input type="text" id="calender_input" /></p>
      <button type="button" id="button">決定</button>
    </div>
  </form>
</body>
</html>

今回、CSSはしようしておらず、DataPicker のスタイルもほとんどデフォルトとなっています。

かっこいいフォームを作成したい方は、CSSを追加カスタマイズしてみてください。


実行してみる

では、実行してみましょう。


今回は非常に簡素な【カスタム入力】→【メッセージボックス】というワークフローを作成しました。

ちなみに、【カスタム入力】アクティビティのプロパティは次のようになっています。

【URL】にて、利用するHTMLの場所を指定し、【結果】にてHTML上の入力結果を受け取ります。

では、ポチッと実行してみましょう。

簡単なHTMLが表示されましたね。

入力欄をクリックしてみます。

カレンダーが表示されました。


無事ふっくら猫さんが考えていたユーザが考えていた入力方法が実現できています。

最後に、4月5日をクリックし決定としましょう。

メッセージボックスに日付が表示されました。

ミッションコンプリートです。


おお、カレンダーで入力できてるニャ
ええと、開発は【カスタム入力】とHTML、、、とニャ


固定ではなくユーザに入力を求めるワークフローはよいワークフロー

これは個人的な考えであるため多くの方は、異なった考えを持っているかもしれません。


このファイル・ここのフォルダというように固定したワークフローは、完全なる自動化を実装しており一見良いように感じますが、それは開発者であり全貌がわかっているからであり実際の現場にいる実行者はそうとは感じないケースが多いと感じます。


RPAの導入は、スモールスタートと言われるように、トップダウンでの実行のうえでかつ現場に馴染むように導入も進めなければならない想像よりもハードルが高いものとなります。


初期の導入においては、完全な自動化を求めるのではなく、ふっくら猫さんのようにCXの向上をはかった対話的な自動化の実装のほうが効果があると感じます。


そんなわけで、今回はふっくら猫さんのすこし無茶ぶりに答えた感じとなりました。

「こんな入力を開発したい」もしくは「こんな入力を開発した」等あれば是非コメントにてお願いします。


今回も最後までお読みいただきありがとうございました。

では!


参考


UiPathアカデミー

実践あるのみという方、すでにある程度利用経験がある方はRPAベンダーであるUiPath社が提供している無料Eラーニングである UiPathアカデミー をオススメします。

2020年度にリニューアルされ更に体系的に整理されています。

UiPathは個人で利用する分には無料なので利用してみてください。

※書籍もあるようですがツールのアップデートが早いためおすすめしません

Be First to Comment

コメントを残す