Leia e revise a documentação do Automation Anywhere

Automation Anywhere Automation 360

Fechar conteúdo

Contents (Conteúdo)

Abrir conteúdo

Criar um iterador usando o SDK de pacote do

  • Atualizado: 2021/01/07
    • Automation 360 v.x
    • Criar
    • Espaço de trabalho RPA

Criar um iterador usando o SDK de pacote do

No Automation 360, você pode criar um iterador com o pacote do SDK. Um iterador é usado para passar por vários objetos de tipo semelhante e é usado com o Loop pacote. Ela consiste em dois métodos, next e hasNext, que retornam o objeto real e um valor booliano.

Anotações obrigatórias

Quando o iterador é usado, o próximo método retorna o próximo valor disponível. Se não houver mais valores disponíveis, uma exceção será exibida. O método hasNext verifica outros valores e retorna falso se não houver mais valores disponíveis. Em Automation 360, quando o loop é executado, hasNext() é chamado primeiro, e next() é chamado somente se hasNext() retornou um valor verdadeiro.

Para criar um iterador, as seguintes anotações são necessárias.

Anotação Utilização
Comando de bot Use a anotação BotCommand com um iterador como o commandType. Isso garante que o objeto Java antigo simples (POJO) seja elegível para criar um Automation 360 iterador.
Pacote de comando Ao criar um pacote, forneça um nome, rótulo e descrição para a anotação.
Identificação Anotar todos os parâmetros e variáveis de membro necessários e ajudar na verificação de validação, ou eles podem ser exibidos na interface para a entrada. Forneça o Idx e o tipo.
Pacote Anotar todos os parâmetros e variáveis de membro que serão exibidos na interface. Esta anotação será ignorada se não for acompanhada pelo Idx.
TemPróximo O método que precisa ser chamado para teste se a iteração tiver mais elementos (retorna verdadeiro se next() retorna um elemento em vez de lançar uma exceção). Ele deve retornar um valor booliano.

Se o método aceitar parâmetros, eles deverão ser anotados com o Idx. O método hasNext verifica-o e retorna falso se não houver mais valores disponíveis. Em Automation 360, quando Loop é executado, hasNext() é chamado primeiro. next() é chamado somente se hasNext() retorna um valor verdadeiro.

Próximo O método retorna o próximo valor disponível na iteração. O tipo de retorno é um valor. Se não houver mais nenhum valor disponível, uma exceção será exibida.
Exemplo de caso de uso

O caso de uso de exemplo passa pelo número de vezes, por exemplo, para a construção Java (int i=0; <n; i++I). Ele aceita o valor de n do Bot Creator quando o bot é criado.

  1. Criar a classe POJO com a lógica de negócios.

    Verifique se a POJO tem um método e retorna um valor booliano. Isso atuará como o método de comparação.

    public class IteratorTypeDemo {
    
    	private Double times = 10 d;
    	private Double counter = 0 d;
    
    	public boolean hasNext() {
    		return counter < times;
    	}
    
    	public Value < Double > next() throws Exception {
    		if (counter >= times)
    			throw new Exception("Counter '" + counter + "' is exceed the times limit '" + times + "'");
    
    		counter++;
    		NumberValue result = new NumberValue();
    		result.set(counter);
    		return result;
    	}
    
    	public void setTimes(Double times) {
    		this.times = times;
    	}
    
    }
    
  2. Faça anotações na classe POJO para habilitá-la para o Automation 360 iterador e criar um pacote.
    @BotCommand(commandType = CommandType.Iterator)
    @CommandPkg(return_label = "Return the value in variable", node_label = ": {{times}} times",
    	label = "Iterator demo", description = "Iterate number of times", name = "iteratorTypeDemo", return_type = DataType.NUMBER)
    public class IteratorTypeDemo {
    
    	private Double times = 10 d;
    	private Double counter = 0 d;
    
    	public boolean hasNext() {
    		return counter < times;
    	}
  3. Faça anotações no método hasNext() e next() apropriadamente.
    @HasNext
    public boolean hasNext() {
    	return counter < times;
    }
    
    @Next
    public Value < Double > next() throws Exception {
    	if (counter >= times)
    		throw new Exception("Counter '" + counter + "' is exceed the times limit '" + times + "'");
    
    	counter++;
    	NumberValue result = new NumberValue();
    	result.set(counter);
    	return result;
    }

    Os métodos são nomeados de maneira fácil de usar e estão em paralelo com a interface do iterador Java. Não há restrição do lado do SDK ao nomear métodos.

    Em um iterador, não use métodos de parâmetro, mas use injeção de setter.

  4. Faça anotações nas variáveis com Idx e Pkg.

    Adicione @NotEmpty para garantir que o valor não seja nulo e adicione @GreaterThanEqualTo para garantir que o valor seja sempre maior que 0.

    @Idx(index = "1", type = AttributeType.NUMBER)
    @Pkg(label = "times", default_value = "10", default_value_type = DataType.NUMBER)
    @GreaterThanEqualTo("0")
    @NotEmpty
    @Inject
    private Double times = 10 d;

    O número do tipo de atributo retorna um Duplo.

Send Feedback (Enviar Feedback)