Lire et examiner la documentation Automation Anywhere

Automation 360

Fermer les contenus

Contenus

Ouvrir les contenus

Créer un itérateur à l'aide de Package SDK

  • Mis à jour le : 2022/05/19
    • Automation 360 v.x
    • Créer
    • Espace de travail RPA

Créer un itérateur à l'aide de Package SDK

Dans Automation 360vous pouvez créer un itérateur avec le paquet SDK. Un itérateur est utilisé pour parcourir en boucle plusieurs objets de même type et est utilisé avec le paquetage Loop paquet. Il se compose de deux méthodes, next et hasNextqui renvoient l'objet actuel et une valeur booléenne.

Annotations obligatoires

Lorsque l'itérateur est utilisé, le next renvoie la prochaine valeur disponible. Si aucune autre valeur n'est disponible, une exception est affichée. Le site hasNext vérifie la présence d'autres valeurs et renvoie false si aucune autre valeur n'est disponible. Dans Automation 360lorsque la boucle est exécutée, hasNext() est appelée en premier, et next() n'est appelée que si hasNext() a retourné un vrai vrai.

Pour créer un itérateur, les annotations suivantes sont nécessaires.

Annotation Utilisation
BotCommand Utilisez le BotCommand avec un itérateur comme commandType. Cela garantit que le plain old Java object (POJO) est éligible pour la création d'un Automation 360 itérateur.
CommandPkg Lors de la création d'un paquet, fournissez un nom, une étiquette et une description à l'annotation.
Idx Annotez tous les paramètres et les variables membres qui sont requis et aident au contrôle de validation, ou bien ils peuvent être affichés dans l'interface pour la saisie. Fournir le Idx et le type.
Pkg Annotez tous les paramètres et les variables membres qui seront affichés dans l'interface. Cette annotation sera ignorée si elle n'est pas accompagnée de la balise Idx.
HasNext La méthode qui doit être appelée pour tester si l'itération a plus d'éléments (retourne vrai si next() renvoie un élément plutôt que de lever une exception). Il doit retourner une valeur booléenne.

Si la méthode accepte des paramètres, ils doivent être annotés avec la balise Idx. Le site hasNext le vérifie et renvoie false si aucune autre valeur n'est disponible. SurAutomation 360lorsque Loop est exécuté, hasNext() est appelée en premier. next() n'est appelé que si hasNext() renvoie un vrai vrai.

Next La méthode renvoie la prochaine valeur disponible dans l'itération. Le type de retour est une valeur. Si aucune autre valeur n'est disponible, une exception est affichée.
Exemple de cas d'utilisation

L'exemple de cas d'utilisation boucle un certain nombre de fois, par exemple, for (int i=0 ; I<n ; i++) Construction Java. Il accepte la valeur de n de la Bot Creator lorsque le bot est créée.

  1. Créez la classe POJO avec la logique d'entreprise.

    Assurez-vous que le POJO possède une méthode et renvoie une valeur booléenne. Cela servira de méthode de comparaison.

    @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 {
        @Idx(index = "1", type = AttributeType.NUMBER)
        @Pkg(label = "times", default_value = "10", default_value_type = DataType.NUMBER)
        @GreaterThanEqualTo("0")
        @NumberInteger
        @NotEmpty
        @Inject
    	private Double times = 10d;
    
    	private Double counter = 0d;
    
        @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;
        }
    
        public void setTimes(Double times) {
            this.times = times;
        }
    }
  2. Annotez la classe POJO pour l'activer pour l'itérateur Automation 360 itérateur et pour créer un package.
    @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. Annotez la fonction hasNext() et next() de manière appropriée.
    @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;
    }

    Les méthodes sont nommées de manière conviviale et sont parallèles à l'interface des itérateurs de Java. Il n'y a aucune restriction du côté du SDK pour nommer les méthodes.

    Dans un itérateur, n'utilisez pas les méthodes de paramétrage, mais l'injection de setter. injection de setter.

  4. Annotez les variables avec Idx et Pkg.

    Ajouter @NotEmpty pour s'assurer que la valeur n'est pas nulle, et ajoutez @GreaterThanEqualTo pour s'assurer que la valeur est toujours supérieure à 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;

    Le type d'attribut numéro renvoie un double.

Envoyer le commentaire