UiPath Studio 2018.3 Early access - Beta release をさわってみた2 (カスタムアクティビティ)

[前回](https://qiita.com/masatomix/items/5e56c31d1ef3b400da6f) からのつづきです。
今回はカスタムアクティビティを試してみます。

## カスタムアクティビティを作成する
### アクティビティのプロジェクトの作成

プロジェクトの作成で、「ライブラリ」を選択して開始します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/4f3f1055-a0db-d921-9c2a-55972c5c0982.png)

名前はこんな感じで。「名前」はnupkgの名前になります。他には、後から出てくるパッケージ管理の画面で、名前や説明として使用されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/5ae506f3-8eb7-966a-4a8d-01ca4fa7de79.png)

### アクティビティの作成
ではアクティビティのロジックを作成します。内容は下記のように、message1,message2,resultなどいくつかのプロパティをもち、アクティビティの実行結果を result プロパティに指定された変数にセットする、といった単純なものです。
 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/475eceb0-d394-f8ee-42a3-6afbceb7d97f.png)


カスタムアクティビティの具体的な中身はこんな感じになります。アクティビティの「引数」には「Direction(方向)」があり、message1/message2は「入力」、resultだけ「出力」にしてあります。出力にした result 変数には、文字列を適当に処理した結果をABAssignで代入していますが、これによってアクティビティ内での処理結果を、アクティビティ呼びだし元に返却することが出来るわけですね。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/7221e2e7-bf89-9f2e-0b45-516ef1a652d2.png)

以前のカスタムアクティビティの作成の時には、Visual Stduioなどを用いてC#でコーディングしていたのだと思いますが、他人のアクティビティを呼び出すなどもこのようにやることができるようになりました。


### パブリッシュ
ロボをふつうにPublishするように、パブリッシュを押下します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/5a7fa47a-5342-ab6f-3636-d1dfc1153244.png)

パブリッシュ先やバージョン、UiPath Studioのアクティビティペインにツリー表示するときのカテゴリ名などを指定します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/ed826e45-be16-fa75-3079-05db8f282064.png)

このあたり、これまでのカスタムアクティビティを作るときには NuGet Package Explorer などを使用してたわけですが、簡単になりました。。

最後に「パブリッシュ」を押下すればOKです。該当のディレクトリにnupkgが出力されたはずです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/378b1666-17ec-69f0-cad8-58f1d2a0cbb5.png)

以上で、カスタムアクティビティの作成は完了です。


## カスタムアクティビティ使用する
つづいて、カスタムアクティビティを使用する側です。ふつうにプロジェクトを作成します。

### パッケージソースを追加する
UiPath Studio に「パッケージソース」を追加します。パッケージソースというのは、カスタムアクティビティがアップロードされたサイトのことで、今回はローカルのディレクトリ「C:¥temp」をパッケージソースに追加して、そこから自作アクティビティを追加していきます。

下記の通り「パッケージを管理」を押下。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/8c6c48bb-4355-8cb1-ed2b-83b9bdb98721.png)


おなじみのパッケージ管理ダイアログで、左上の設定をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/d02ba3d8-66d7-1562-35ea-dff99f67cf75.png)

下記のようなユーザが定義したパッケージソースが表示されるので、、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/24c6b226-e274-cc0b-124c-b60b883bd458.png)

「+」プラスアイコンをクリックして、名前や、先ほどのURL(ローカルのパスです) を入力し「更新」を押下します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/88e3a0c7-a502-fb91-7729-d7ce0b8c4c33.png)

自前のパッケージソースが追加されました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/782103f9-d720-38df-e5d8-aa51cabd91b7.png)


### 自前のパッケージソースから、カスタムアクティビティを追加
作成したパッケージソースを選択すると、インストール可能なカスタムアクティビティが表示されるので、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/7fb72e5e-1d44-f5f9-d246-7b4c23190d0a.png)

公式のアクティビティを入れるのと同じ要領で、インストールをクリックして
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/76bec861-b957-c957-3ec5-46b9032c7a9b.png)

OKでインストールを行います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/ee276578-8e40-41bd-839a-72661f35be00.png)

そうすると、下記のように、カスタムアクティビティが追加されました! 

しかし、、アクティビティ名が「NewActivity」とシャビーなモノになってしまいました。これは始めに作成したXamlファイルが「NewActivity.xaml」だったからですね。今度はちゃんと正しい名前にしようorz。。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/76f840a2-c672-e1ed-546b-c869bf1b2001.png)


### 実行します
なんにせよ、あたらしいアクティビティが追加できたので、Mainのアクティビティにセットしてみます。message1とmessage2に適当な文字をセットして、アクティビティの実行結果をresultという変数にセットします。実行結果を確認するため resultをwrite lineしておきます。

ワークフローを実行してみると、、、カスタムアクティビティが動きました！。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/80c2e6cb-1154-8889-6f2e-4cc35a2227eb.png)

下記の通り、コンソールにも表示されましたね！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/73777/79a38e3a-399b-7210-20cb-068588291a74.png)


## 所感
いままでカスタムアクティビティを作成するにはVisual Studioを使ってC#でコーディングして、それらを NuGet Package Explorer で出力して、、などとかなりめんどくさかったようなのですが、UiPath Studio内で完結するようになり、かなり簡単になったようですね。

UiPath Developer Communityのワークショップで質問した感じだと、いままでの作成方法をすべて置き換えるシロモノではないようでしたが、カスタムアクティビティの作成はかなりしきいが下がったのではないでしょうか。

UiPath Studioの2018.2系など古いのでも動くのかな？とか、もすこし調査をしてみたいと思います。


おつかれさまでした。

## 関連リンク
- [【UiPath】カスタムアクティビティの作成（事前準備と実践初級）](https://qiita.com/UmegayaRollcake/items/c9ff9a01b101ba9193fc)
- [UiPath Studio 2018.3 Early access - Beta release をさわってみた1](https://qiita.com/masatomix/items/5e56c31d1ef3b400da6f) 
- [2018.3 Early access - Beta release - Releases / 18.3 Beta - UiPath Community Forum](https://forum.uipath.com/t/2018-3-early-access-beta-release/62314)