Crear variables personalizadas mediante el paquete SDK

Cuando se utiliza Automation 360, puede crear variables personalizadas mediante el paquete SDK.

Uso de variables personalizadas

Use Automation 360 para crear una variable personalizada. Esta es una variable del sistema y se utiliza como otras variables de bot, excepto que es de solo lectura y el valor se calcula en lugar de ser asignado.

Anotaciones obligatorias

Para crear una variable, se requieren las siguientes anotaciones:

Anotación Uso
BotCommand Use la anotación BotCommand con la variable como commandType. Esto asegura que el objeto Java antiguo sin formato (POJO) sea adecuado para crear una variable Automation 360.
CommandPkg Estos valores se utilizan cuando se crea un paquete. Proporcione un nombre, una etiqueta y una descripción para la anotación.
Idx Anote todos los parámetros y variables miembro que se requieren y ayude a la comprobación de la validación. Otra posibilidad es que se muestren en la interfaz de la entrada. Proporcione el índice (Idx) y el tipo.
Pkg Anote todos los parámetros y variables de miembro que se mostrarán en la interfaz. Esta anotación será ignorada si no va acompañada de la etiqueta Idx.
VariableExecute El método que se debe llamar para devolver el valor de la variable. Este método no acepta parámetros de entrada. Sessions y GlobalSessionContext están disponibles a través de la inyección de setters.

Ejemplo de caso de uso

El siguiente caso de uso muestra cómo devolver la hora actual para la zona predeterminada del sistema.

  1. Crear la clase POJO con la lógica de negocio:
    public class Now {
    	
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}
    
    }
  2. Anote la clase POJO para habilitarla para la variable Automation 360 y para crear el paquete:
    @BotCommand(commandType = BotCommand.CommandType.Variable)
    @CommandPkg(description = "The current datetime at system default zone.", name = "Now", label = "", variable_return_type = DataType.DATETIME)
    public class Now {
    	
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}
    
    }
  3. Anote el método now para indicar que es el método de ejecución.
    @VariableExecute
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}

    Cada variable debe tener un método de prueba VariableExecute.