Lea y revise la documentación de Automation Anywhere

Automation Anywhere Automation 360

Cerrar contenidos

Contenidos

Abrir contenidos

Crear y construir un paquete personalizado con IntelliJ

  • Actualizado: 2020/09/16
    • Automation 360 v.x
    • Crear
    • Espacio de trabajo de RPA

Crear y construir un paquete personalizado con IntelliJ

Utilice Eclipse para compilar un archivo JAR que puede cargar como paquete a su Control Room en Automation 360.

Antes de empezar

Se requiere una comprensión básica de JDK y Java IntelliJ para crear un paquete de acción. Debe contar con el siguiente software:

Procedimiento

  1. Descomprima el contenido del paquete SDK en su directorio IdeaProjects y cambie el nombre de la carpeta de A2019.10-package-sdk-1.0.0 a MetricToImperial.
    De manera predeterminada, el paquete se encuentra en: C:\Users\<User>\IdeaProjects.
  2. En IntelliJ IDEA, vaya a Archivo > Abrir y abra el proyecto en C:\\Users\<User>\IdeaProjects\\MetricToImperial.
  3. Desde el interior del proyecto, abra el archivo settings.gradle. Establezca el rootProject.name = 'MetricToImperial'
  4. Actualice el archivo package.template ubicado en src > main > resources > package.template.
  5. Cambie el nombre del paquete de A2019DemoPackage a MetricToImperial.
  6. Actualice el nombre del paquete en locales json: vaya a src > main > resources > locales > en_US.json.
    1. Abra el archivo en_US.json y actualice el campo etiqueta requerida. Actualice la descripción opcional.
      en_US.json original en_US.json actualizado
      {
        "label" : "A2019DemoPackage",
        "description" : "Provides actions for A2019DemoPackage operations."
        }
      {
        "label" : "Metric To Imperial",
        "description" : "Converts lengths and distances from Metric format to Imperial format"
      }
    2. Elimine todas las demás líneas restantes del archivo en_US.json.
  7. Cree una nueva clase de Java, haga clic con el botón derecho del ratón en el paquete metrictoimperial.commands y seleccione Nueva > clase de Java. Introduzca el nombre para la nueva clase CMtoINCH:
    1. Abra la clase CMtoINCH. Copie y pegue el siguiente código sobre la declaración de definición de clase:
      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. Dentro de la clase CMtoINCH, copie y pegue el siguiente código:
    //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);
    El código importa automáticamente espacios de nombres en función de las anotaciones y los tipos de datos.

    Para importar manualmente espacios de nombres, seleccione una línea resaltada y presione estas teclas simultáneamente alt y la tecla Intro.

  8. Vaya a src > main > resources > locales > en_US.json y agregue los siguientes campos después de los valores de etiqueta y descripción:
    "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. Vaya a src > main > java > com.automationanyhwere.botcommand, y elimine el paquete sample.commands. Además, elimine el paquete de muestras.
  10. Actualice la anotación CommandPkg.
    1. Descargue ruler_icon.svg desde github y haga clic con el botón derecho del ratón en la imagen y guarde la imagen como ruler_icon.svg.
    2. Descargue iconwhite.svg desde github, haga clic con el botón derecho del ratón en la imagen y guarde la imagen iconwhite.svg.
    3. Copie ambos archivos en la carpeta src > main > resources > icons.
  11. Abra el archivo build.gradle en la raíz del proyecto. Después de la sección de dependencias, pero antes de la última etiqueta de cierre, copie y pegue el siguiente código:
    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. En el explorador de proyectos, haga clic con el botón secundario en src y seleccione Nuevo > Directorio.
    1. En el campo Nombre, ingrese test\java o seleccione la sugerencia test\\java de los Conjuntos de fuentes de gradación.
    2. Haga clic con el botón derecho en el directorio de java y seleccione Nuevo > paquete.
    3. Introduzca el nombre del paquete recién creado: com.automationanywhere.botcommand.metrictoimperial.commands.
    4. Haga clic con el botón derecho en el nuevo paquete y seleccione Nueva > clase de Java. Introduzca el nombre para la nueva clase CMtoINCHTest.
  13. Dentro de la clase CMtoINCHTest, copie y pegue el siguiente código:
    @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. Guarde el proyecto Archivo > Guardar todo.
  15. Diseñar el paquete.
    Puede utilizar la IU de IntelliJ o la línea de comandos. Si está usando la línea de comandos:
    1. Abra una ventana de terminal y navegue hasta el directorio MetricToImperial e ingrese: cd "%USERPROFILE%\IdeaProjects\MetricToImperial"
    2. Para construir el proyecto, ingrese el siguiente comando: gradlew.bat clean build shadowJar
    Aparece un mensaje COMPILACIÓN CORRECTA.

    A veces, una compilación puede fallar porque los archivos existentes no se pudieron eliminar automáticamente y aparece un mensaje del sistema que indica que la ejecución falló para la tarea: limpiar. Si esto ocurre, cierre las ventanas del explorador y vuelva a ejecutar la compilación.

Qué hacer a continuación

Agregue un paquete personalizado a su Control Room
Enviar comentarios