阅读和查看 Automation Anywhere 文档

Automation Anywhere Automation 360

关闭内容

内容

打开内容

使用 IntelliJ 创建和构建自定义包

  • 已更新:9/16/2020
    • Automation 360 v.x
    • 版本
    • RPA 工作区

使用 IntelliJ 创建和构建自定义包

使用 IntelliJ 编译一个 JAR 文件,您可以在 Automation 360 中将其作为包上传至您的 Control Room

先决条件

要构建一个操作包,需要对 JDK 和 Java IntelliJ 有基本了解。您需要以下软件和文件:

过程

  1. 将 SDK 软件包的内容解压到 IdeaProjects 目录,并将文件夹从 A2019.10-package-sdk-1.0.0 重命名为 MetricToImperial
    默认情况下,该软件包位于:C:\Users\<User>\IdeaProjects
  2. 在 IntelliJ IDEA 中,请转到 File(文件) > Open(打开),并打开位于 C:\Users\<User>\IdeaProjects\MetricToImperial 的项目。
  3. 在项目根目录中打开 settings.gradle 文件。设置 rootProject.name = 'MetricToImperial'
  4. 更新位于 src > main > resources > package.template 中的 package.template文件。
  5. A2019DemoPackage 将包名称更改为 MetricToImperial
  6. 更新 区域 json 中的包名称:请转到 src > main > resources > locales > en_US.json
    1. 打开 en_US.json 文件并更新 required(必填)label 字段。更新可选 描述
      原始 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 包,然后选择 New(新建) > Java Class( 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包。此外,删除样本包。
  10. 更新 CommandPkg 注释。
    1. github 下载 ruler_icon.svg,右键单击图像并将图像保存为 ruler_icon.svg
    2. github 下载 iconwhite.svg,右键单击图像并保存图像 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 并选择 New(新建) > Directory(目录)
    1. Name(名称) 字段中,输入 test\java,或从 Gradle 源集中选择 test\java 建议。
    2. 右键单击 java 目录,然后选择 New(新建) > Package(软件包)
    3. 输入新创建的包的名称:com.automationanywhere.botcommand.metrictoimperial.commands
    4. 右键单击新的包并选择New(新建) > Java Class(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. 保存项目File(文件) > Save All(全部保存)
  15. 构建包。
    您可以使用 IntelliJ UI 或命令行。如果您正在使用命令行:
    1. 打开一个终端窗口,导航到 MetricToImperial 目录并输入:cd "%USERPROFILE%\IdeaProjects\MetricToImperial"
    2. 要构建项目,请输入以下命令:gradlew.bat clean build shadowJar
    将显示 BUILD SUCCESSFUL(构建成功) 的消息。

    有时,由于无法自动删除现有文件会导致构建失败,并显示一条系统消息,指出任务执行失败:clean(清除)。如果发生这种情况,请关闭资源管理器窗口并再次运行“构建”。

后续步骤

将自定义包添加到您的 Control Room
发送反馈