Leia e revise a documentação do Automation Anywhere

Automation Anywhere Automation 360

Fechar conteúdo

Contents (Conteúdo)

Abrir conteúdo

Criar e construir um pacote personalizado usando IntelliJ

  • Atualizado: 9/16/2020
    • Automation 360 v.x
    • Criar
    • Espaço de trabalho RPA

Criar e construir um pacote personalizado usando IntelliJ

Use o IntelliJ para compilar um arquivo JAR que você pode carregar como um pacote para o Control Room no Automation 360.

Pré-requisitos

Uma compreensão básica do JDK e Java IntelliJ é necessária para criar um pacote de ações. Você precisa dos seguintes softwares e arquivos:

Procedimento

  1. Descompacte o conteúdo do pacote do SDK no diretório IdeaProjects e renomeie a pasta de A2019.10-package-sdk-1.0.0 para MetricToImperial.
    Por padrão, o pacote está localizado em: C:\Users\<User>\IdeaProjects.
  2. No IntelliJ IDEA, vá para Arquivo > Abrir e abra o projeto em C:\Users\<User>\IdeaProjects\MetricToImperial.
  3. Dentro da raiz do projeto, abra o arquivo settings.gradle. Definir o nome.projeto.raiz = 'MétricaparaImperial'
  4. Atualize o arquivo package.template localizado em src > main > resources > package.template.
  5. Altere o nome do pacote de A2019DemoPackage para MetricToImperial.
  6. Atualize o nome do pacote em locais json: vá para src > main > resources > locales > en_US.json.
    1. Abra o arquivo en_US.json e atualize o campo de rótulo obrigatório. Atualize a descrição opcional.
      Versão original en_US.json en_US.json atualizado
      {
        "label" : "A2019DemoPackage",
        "description" : "Provides actions for A2019DemoPackage operations."
        }
      {
        "label" : "Metric To Imperial",
        "description" : "Converts lengths and distances from Metric format to Imperial format"
      }
    2. Exclua todas as outras linhas restantes no arquivo en_US.json.
  7. Crie uma nova classe Java, clique com o botão direito do mouse no pacote metrictoimperial.commands e selecione Nova > classe Java. Digite o nome para a nova classe CMtoINCH:
    1. Abra a classe CMtoINCH. Copie e cole o seguinte código acima da instrução de definição de classe:
      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 da classe CMtoINCH, copie e cole o seguinte 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);
    O código importa automaticamente namespaces com base nas anotações e nos tipos de dados.

    Para importar manualmente namespaces, selecione uma linha realçada e pressione essas teclas simultaneamente alt e a tecla enter.

  8. Vá para src > main > resources > locales > en_US.json e adicione os seguintes campos após os valores de rótulo e descrição:
    "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. Vá para src > main > java > com.automationanyhwere.botcommand e exclua o pacote samples.commands. Além disso, exclua o pacote de amostras.
  10. Atualize a anotaçãoCommandPkg.
    1. Faça o download de ruler_icon.svg do github e clique com o botão direito do mouse na imagem e salve a imagem como ruler_icon.svg.
    2. Faça o download de iconwhite.svg do github, clique com o botão direito do mouse na imagem e salve o ícone de imagem iconwhite.svg.
    3. Copie ambos os arquivos na pasta de ícones de recursos principais > do > > src.
  11. Abra o build.gradle na raiz do projeto. Após a seção de dependências, mas antes da última tag de fechamento, copie e cole o seguinte 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. No explorador de projetos, clique com o botão direito do mouse em src e selecione New > Directory.
    1. No campo Nome insira test\\java, ou selecione a sugestão de test\\java nos Conjuntos de fontes Gradle.
    2. Clique com o botão direito do mouse no diretório java e selecione Novo > pacote.
    3. Digite o nome do pacote recém-criado: com.automationanywhere.botcommand.metrictoimperial.commands.
    4. Clique com o botão direito do mouse no novo pacote e selecione Nova > classe Java. Digite o nome para a nova classe CMtoINCHTest.
  13. Dentro da classe CMtoINCHTest, copie e cole o seguinte 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. Salve o projeto Arquivo > Salvar tudo.
  15. Crie o pacote.
    Você pode usar a interface do usuário IntelliJ ou a linha de comando. Se você estiver usando a linha de comando:
    1. Abra uma janela de terminal e navegue até o diretório MetricToImperial e digite: cd %USERPROFILE%"\\IdeaProjects\\MetricToImperial"
    2. Para compilar o projeto, insira o seguinte comando: gradlew.bat clean build shadowJar
    Uma mensagem COMPILAR COM SUCESSO é exibida.

    Às vezes, uma compilação pode falhar porque os arquivos existentes não puderam ser excluídos automaticamente e uma mensagem do sistema aparece indicando que a execução falhou para a tarefa: clean. Se isso ocorrer, feche as janelas do explorer e execute a compilação novamente.

Próximas etapas

Adicionar pacote personalizado ao seu Control Room
Send Feedback (Enviar Feedback)