Automation Anywhere ドキュメントを読んで確認する

Automation Anywhere Automation 360

コンテンツを閉じる

コンテンツ

コンテンツを開く

IntelliJ を使用してカスタム パッケージを作成および構築する

  • 更新済み: 9/16/2020
    • Automation 360 v.x
    • 構築
    • RPA Workspace

IntelliJ を使用してカスタム パッケージを作成および構築する

IntelliJ を使用して、Automation 360Control Room にパッケージとしてアップロードできる JAR ファイルをコンパイルします。

前提条件

アクション パッケージを構築するには、JDK と Java IntelliJ の基本的な理解が必要です。以下のソフトウェアとファイルが必要です。

手順

  1. SDK パッケージの内容を IdeaProjects ディレクトリに解凍し、フォルダーの名前を A2019.10-package-sdk-1.0.0 から MetricToImperial に変更します。
    デフォルトでは、パッケージは次の場所にあります。C:\Users\<User>\IdeaProjects
  2. IntelliJ IDEA で、[ファイル] > [開く] の順に移動し、C:\Users\<User>\IdeaProjects\MetricToImperial でプロジェクトを開きます。
  3. プロジェクト ルート内の settings.gradle ファイルを開きます。rootProject.name = 'MetricToImperial' を設定します。
  4. src > main > resources > package.template にある package.template ファイルを更新します。
  5. パッケージ名を A2019DemoPackage から MetricToImperialに変更します。
  6. [locales json] でパッケージ名を更新します。src > main > resources > locales > en_US.json に移動します。
    1. en_US.json ファイルを開き、[必須ラベル] フィールドを更新します。オプションの説明を更新します。
      元の en_US.json 更新された en_US.json
      {
        "label" : "A2019DemoPackage",
        "description" : "Provides actions for A2019DemoPackage operations."
        }
      {
        "label" : "Metric To Imperial",
        "description" : "Converts lengths and distances from Metric format to Imperial format"
      }
    2. en_US.json ファイルの残りの行をすべて削除します。
  7. 新しい [Java クラス] を作成し、metrictoimperial.commands パッケージを右クリックして、[新規] > [Java クラス] を順に選択します。新しいクラスの [CMtoINCH] の名前を入力します。
    1. [CMtoINCH] クラスを開きます。次のコードをコピーしてクラス定義ステートメントの上に貼り付けます。
      import static com.automationanywhere.commandsdk.model.DataType.NUMBER;
      //BotCommand makes a class eligible for being considered as an action.
      @BotCommand
      //CommandPks adds required information to be dispalable on GUI.
      @CommandPkg(
              //Unique name inside a package and label to display.
              name = "CM to Inch", label = "[[CMtoINCH.label]]",
              node_label = "[[CMtoINCH.node_label]]",  description = "[[CMtoINCH.description]]", icon = "ruler_icon.svg",
              //Return type information. return_type ensures only the right kind of variable is provided on the UI.
              return_label = "[[CMtoINCH.return_label]]", return_type = NUMBER, return_required = true)
    2. [CMtoINCH] クラス内で、次のコードをコピーして貼り付けます。
    //Identify the entry point for the action. Returns a Value<String> because the return type is String.
    @Execute
    public NumberValue action(
            //Idx 1 would be displayed first, with a text box for entering the value.
            @Idx(index = "1", type = AttributeType.NUMBER)
            //UI labels.
            @Pkg(label = "[[CMtoINCH.CMInput.label]]")
            //Ensure that a validation error is thrown when the value is null.
            @NotEmpty
                    Double CMInput) {
        //Internal validation, to disallow empty inputs. No null check needed as we have NotEmpty on CMInput.
        if ("".equals(CMInput.toString().trim()))
            throw new BotCommandException("Input of CM is required");
        Number result;
        try {
            //Conversion logic
            result = CMInput * 0.393701;
        } catch (Exception e) {
            //Throw custom error message
            throw new BotCommandException("Unable to convert " + CMInput.toString() + "cm to inches");
        }
        //Return NumberValue.
        return new NumberValue(result);
    コードは、注釈とデータ型に基づいて名前空間を自動的にインポートします。

    手動で名前空間をインポートするには、ハイライトされた行を選択し、Alt と Enter キーを同時に押します。

  8. src > main > resources > locales > en_US.json に移動し、ラベルと説明の値の後に次のフィールドを追加します。
    "CMtoINCH.label" : "cm to inches",
    "CMtoINCH.node_label": "cm to inches",
    "CMtoINCH.description" : "Convert centimeters to inches",
    "CMtoINCH.return_label" : "Assign the Output in Inches to a Number Variable",
    "CMtoINCH.CMInput.label" : "Centimeters to Convert to Inches"
  9. src > main > java > com.automationanyhwere.botcommand に移動し、samples.commands パッケージを削除します。また、samples パッケージを削除します。
  10. CommandPkg 注釈を更新します。
    1. ruler_icon.svggithub からダウンロードし、画像を右クリックして、その画像を ruler_icon.svg として保存します。
    2. iconwhite.svggithub からダウンロードし、画像を右クリックして、iconwhite.svg の画像を保存します。
    3. 両方のファイルを [src > main > resources > icons] フォルダーにコピーします。
  11. プロジェクト ルート内の build.gradle を開きます。依存関係セクションの後、最後の終了タグの前に、次のコードをコピーして貼り付けます。
    test {
       testLogging {
          exceptionFormat = 'full'
       }
       useTestNG() {}
    
       afterSuite { desc, result ->
          if (!desc.parent)
             println("${result.resultType} " +
                   "(${result.testCount} tests, " +
                   "${result.successfulTestCount} successes, " +
                   "${result.failedTestCount} failures, " +
                   "${result.skippedTestCount} skipped)")
       }
       maxHeapSize "3g"
    }
  12. プロジェクト エクスプローラーで、[src] を右クリックし、[新規] > [ディレクトリ] の順に選択します。
    1. [名前] フィールドに「test\java」を入力するか、Gradle ソース セットから [test\java] の提案を選択します。
    2. java ディレクトリを右クリックし、[新規] > [パッケージ] を選択します。
    3. 新しく作成したパッケージの名前を入力します。com.automationanywhere.botcommand.metrictoimperial.commands
    4. 新しいパッケージを右クリックし、[新規] > [Java クラス] を選択します。新しいクラスの [CMtoINCHTest] の名前を入力します。
  13. [CMtoINCHTest クラス] 内で、次のコードをコピーして貼り付けます。
    @Test
    public void testCMtoINCH(){
        Double validInput = 10.00;
        Double expectedOutput = 0.393701 * validInput;
        CMtoINCH testCM = new CMtoINCH();
        Value<Double> result = testCM.action(validInput);
        Assert.assertEquals(result.get(), expectedOutput);
    }
  14. プロジェクトの [ファイル] > [すべて保存] を選択して保存します。
  15. パッケージを構築します。
    IntelliJ UI またはコマンドラインを使用できます。コマンド ラインを使用している場合
    1. ターミナルウィンドウを開き、MetricToImperial ディレクトリに移動し、「cd "%USERPROFILE%\IdeaProjects\MetricToImperial"」と入力します。
    2. プロジェクトを構築するには、「gradlew.bat clean build shadowJar」のコマンドを入力します。
    構築に成功しました」というメッセージが表示されます。

    既存のファイルを自動的に削除できなかったために構築が失敗し、クリーンのタスクの実行に失敗したことを示すシステム メッセージが表示されることがあります。この場合は、エクスプローラ ウィンドウを閉じて、構築を再度実行します。

次のステップ

カスタム パッケージを Control Room に追加
フィードバックを送る