Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #1～まずはSDKサンプルをそのままビルドして使う

Automation Anywhere A2019では、「パッケージ」という共通開発部品を作成、配布することでBot作成を効率化することができます。
先日オンラインで開催された[Automation Anywhere社主催Developer Meetup Vol.2](https://rpasouken.com/event-2/webinar/2488/)でも解説されていた内容を参考にしながら概要をまとめてみました。パッケージはJavaのテクノロジーを使ってビルドされていますので、開発にはJavaのビルド環境を整えます。

環境として使うのは以下のものです。

* Automation Anywhere Enterprise A2019.12 (ビルド4111) 商用版
* JDK 11
* IntelliJ IDEA Community Edition (Java等の統合開発環境、Eclipseでもよい)+Gradle plug-in v.5.x.x
* Gradle (オープンソースビルド自動化システム)

※ スクリーンショットはDeveloper Meetup Vol.2のウェビナー画面から拝借したものもあります。

**「Automation Anywhere A2019 の共通開発部品であるパッケージを作成する」シリーズの記事**

* **#1～まずはSDKサンプルをそのままビルドして使う** (この記事)
* [#2～SDKサンプルを変更してオリジナルパッケージを構築！](https://qiita.com/RPAbot/items/978a12167d26edeb319b)
* #3～作成したBotやパッケージをBot Storeにアップロードしよう (今後の予定)


# アクションをBot構築画面に追加するためのパッケージ開発
以下の画面のように、自分で開発したアクションをアクションパネルに追加できます。アクションのアイコンや、アクションの入出力の引数も設定が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/21e03979-f14e-6679-b390-2423a2c426c4.png)
出典:AA社主催Developer Meetup Vol.2

パッケージの開発は以下の流れで実施します。

* **SDKの入手**: 最新のデモパッケージとドキュメントをAutomation Anywhere社の製品ドキュメントページ (docs.automationanywhere.com) から入手。(SDK Demo Package: April 2020, Release (2019.12.1) [A2019-package-sdk.2.0.1.zip](https://aa2019packagesdkfordocumentation.s3-us-west-2.amazonaws.com/aa2019packagesdkfordocumentation/A2019-package-sdk-2.0.1.zip), ドキュメント: [Automation Anywhere Enterprise Package Development Kit](https://docs.automationanywhere.com/bundle/enterprise-v2019/page/enterprise-cloud/topics/developer/cloud-create-package-overview.html) および [A2019-package-annotations-javadoc.zip](https://aa2019packagesdk.s3.amazonaws.com/A2019-package-annotations-javadoc.zip)。製品ドキュメントは日本語版もあるが、情報が古いことがあるので英語版を参照することをお勧めします。)
* **Java IDEで開発、.jarファイルの作成**: Gradleでプロジェクトの設定を行い、.jarファイルをビルドします。
* **ビルドしたパッケージをControl Roomに登録**: ビルドされた.jarファイルをControl Roomの管理画面でアップロードします。

# Java統合環境 IntelliJ IDEA Community Editionのインストール
次はJava IDEをセットアップします。[製品ドキュメント](https://docs.automationanywhere.com/bundle/enterprise-v2019/page/enterprise-cloud/topics/developer/cloud-package-project-setup.html)ではEclipseかIntelliJ Community Editionが指定されているので、ここではIntelliJを使うことにします。 

以下のJetBrainsのページにアクセスして「コミュニティ」版の.exeをダウンロードしてインストールしてください。.exeのボタンを押すと、メールアドレスの入力を求められますが、入力しなくてもダウンロードが自動的に始まるので、入れなくても結構です。
https://www.jetbrains.com/ja-jp/idea/download/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/77c90704-3c75-931e-8a1b-934b9165f98b.png)

550MBくらいの以下のような.exeがダウンロードできればOKです。(idealC-XXXX.X.X.exe、X部分の数字はバージョンが上がるごとに違う数字になっている可能性があります。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/7caf7a9d-ba89-3219-8589-b757947eb346.png)

また、IDEは基本英語ですが、日本語のベータ版もテスト中のようなので、興味がある人はダウンロードして入れてみてください。これは1.5MBくらいの.jarファイルで、IDEをインストールした後にセットアップすることでシームレスにIDEに統合してインストールできます。

参考記事: 『[IDEの起動と日本語化プラグインの入手、インストール](https://qiita.com/RPAbot/items/282d859344d1e96a953f#ide%E3%81%AE%E8%B5%B7%E5%8B%95%E3%81%A8%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E5%85%A5%E6%89%8B%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)』

### インストールのステップ
idealC-XXXX.X.X.exe を実行して、「アプリがデバイスに変更を加えることを許可する」に「はい」と答え進めていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/22b98978-492f-c327-d618-b4053bc150d5.png)

最初の画面で「Next」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/f2537193-7380-1d1a-beea-e4bee5573b84.png)

「Next」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/067e8832-0c40-f392-5c6f-7e5ec25b4350.png)

必要に応じてファイルの関連付けにチェックを入れます。「Next」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/08393ce6-f66d-f5cd-1dae-d0f07e9f9be8.png)

「Install」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/847061ac-c5ef-8e00-e265-3bb63444c143.png)

インストールが進行しますのでそのまま待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/966322b7-65b9-9e67-734b-2c7391b4bb9f.png)

「Finish」ボタンをクリックします。これでインストールは完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/52c463e7-f0df-c6af-0d41-f7b6ea99b060.png)


# SDK ファイルをJava IDEで開く
あらかじめSDKファイル [A2019-package-sdk.2.0.1.zip](https://aa2019packagesdkfordocumentation.s3-us-west-2.amazonaws.com/aa2019packagesdkfordocumentation/A2019-package-sdk-2.0.1.zip)をダウンロードして、パソコンの任意の場所に展開しておきます。最近のバージョンでは、UIの多言語対応機能などが追加されているようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/9a4327a5-f91f-7434-959e-825e88c993bf.png)

Windowsのスタートメニューを開くと「最近追加されたもの」にIntelliJがあるはずですので、クリックしてIntelliJ IDEを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/def29d23-7928-1bbc-e7e4-153a436df942.png)

以下のダイアログボックスが表示される場合は、そのまま「OK」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/4504761c-fe43-21df-d4d0-ce7cb3b1b428.png)

初回はカスタマイズするかを聞かれるので「Skip...」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/845bf678-b172-4943-9616-205f680e3750.png)

「Open or Import」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/b8730a8b-f363-05a0-f594-c345c873410b.png)

zipファイルの中身を展開したフォルダーを選択します。「OK」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/64f508b4-c230-91ef-d6bd-faa21c823826.png)

するとこんな画面が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/de9349b5-a9bf-9f87-7239-dd7f459de5e7.png)


### JDKのダウンロード
さて、画面下部のビルドログのパネルで、「Invalid Gradle SDK configuration found」というエラーが表示されています。これは、まだ適切なJDKをインストールしていないために表示されます。「Open Gradle Settings」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/5cf6b4cb-d0d0-2c40-d605-6ba9411f027b.png)

すると「File」-「Settings...」を指定したときと同じ画面が開きます。Gradle JVMが「<No SDK>」となっているので、ドロップダウンの「Download JDK...」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/e0579302-07fc-2392-d7b4-b216e941bae3.png)

JDKはバージョン11が必要とのことなので、Automation Anywhereでも使っているAzul Zulu Communityの11を指定しておきます。「Download」ボタンを指定すると、所定の場所にダウンロードが開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/b67cd0ba-8317-d0d5-1efa-321aec56148f.png)

ちなみに、IntelliJの場合は、ビルドはIDEの「Build」コマンドから行うのではなく、Terminalからコマンドラインで`gradelew.bat`を呼ぶことで行われます。(EclipseはIDEからコンパイルできるようです。) IntelliJの場合は、Gradleを使ったビルドに完全には対応していないためのようです。

そのため、JDKをインストールしたら、環境変数`JAVA_HOME`にJDKのルートフォルダを指定しておく必要があります。
今回の例だと

```
set JAVA_HOME=C:\Users\(User名)\.jdks\azul-11.0.7
```
と設定しておきます。

# パッケージのビルド (コマンドライン)
IDEの中のTerminalから、環境変数`JAVA_HOME`の設定を行った後、ビルドコマンド `gradlew.bat clean build shadowJar`を実行します。すると、ビルドが始まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cabe7c73-0d19-fc4f-02e9-7c522f21754f.png)

途中、警告や注意が出る可能性がありますが、以下のようにしてビルドが完了します。

```
D:\AASDK\A2019-package-sdk-2.0.1>gradlew.bat clean build shadowJar
Downloading https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
...................................................................................

Welcome to Gradle 5.4.1!

Here are the highlights of this release:
 - Run builds with JDK12
 - New API for Incremental Tasks
 - Updates to native projects, including Swift 5 support

For more details see https://docs.gradle.org/5.4.1/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :compileJava
...

> Task :commandCodeGen
mergeJsonFiles: updatePackage: group com.automationanywhere , artifactName A2019DemoPackage , packageVersion 2.0.1-20200607-015603

BUILD SUCCESSFUL in 51s
6 actionable tasks: 5 executed, 1 up-to-date
D:\AASDK\A2019-package-sdk-2.0.1>
```

ビルドが完了したら、`(プロジェクトフォルダ)\build\libs`にコンパイルされたファイル (.jarファイル)が出力されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/92f2a11b-125e-5f9c-ed80-b932806d1e0e.png)

# パッケージのControl Roomへのアップロード
Control Roomにパッケージを追加する権限を持っているユーザーであれば、「Bot」-「パッケージ」で、「Packageを追加...」メニューを使うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/47956cf7-9478-8b2f-e21f-5b648575aed9.png)

先ほどビルドした.jarファイルを「アップロードするパッケージ」に指定してください。そして、「パッケージをアップロード」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a8fc6ec8-4dcf-879b-6a77-b073f4c1cb03.png)

このパッケージの中には28個のアクションが含まれていることがわかります。内容のプレビューが可能です。このまま有効化するには、「承認、有効、デフォルトとして設定」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef2018c-f6e9-2d55-ebad-50859e831503.png)

これでBot構築画面からパッケージとして使えるようになります。

# Bot構築画面からパッケージを使ってみる
Bot構築画面では、アクションパレットの中に「A2019DemoPackage」が追加され、その下に28個のアクションが追加されています。アクションをフローに取り込んでみると、それぞれアクションの詳細にも引数などが指定されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/71460751-e0f7-82c9-95c0-812e4b4bc6c4.png)


# おわりに
いかがでしたでしょう！？ここまででひとまずビルド環境の構築をして、SDKサンプルのファイルをそのままビルドしてControl Roomにアップロード、利用するところまで手順を確認できたと思います。

続編では、いよいよSDKサンプルの中身の解説と、編集してオリジナルのパッケージを作成する方法を見ていきたいと思います！

* [Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #2～SDKサンプルを変更してオリジナルパッケージを構築！](https://qiita.com/RPAbot/items/978a12167d26edeb319b)

# この記事のシリーズ

* **Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #1～まずはSDKサンプルをそのままビルドして使う** (この記事)
* [Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #2～SDKサンプルを変更してオリジナルパッケージを構築！](https://qiita.com/RPAbot/items/978a12167d26edeb319b)
* Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #3～作成したBotやパッケージをBot Storeにアップロードしよう (今後の予定)

# 参考資料

* [Developer Meetup Vol.2 資料:A2019 共通部品開発方法-パッケージとDLLとMetaBotの開発](https://automationanywhere.app.box.com/s/cowdu6uf607x1z1k2qqdb556gl7dsih7)
* [Automation Anywhere Enterprise Package Development Kit](https://docs.automationanywhere.com/bundle/enterprise-v2019/page/enterprise-cloud/topics/developer/cloud-create-package-overview.html) - 製品ドキュメント