Atributo FILE2 (Expresión común)

Las expresiones comunes (RegEx) son patrones de cadena definidos para buscar un archivo en una ruta especificada. Use el FILE2 cuando utilice expresiones comunes (regex) para crear patrones de cadenas.

Por ejemplo: Si desea buscar un archivo en una ruta de carpeta (por ejemplo Hello.txt) que contenga una determinada cadena. . Usará File2 para ingresar el siguiente patrón de expresiones comunes: Hell o ell encontrarán el archivo que coincida con los criterios de búsqueda. Este tema se basa en la muestra File2TypeDemo disponible dentro del Paquete SDK en la siguiente ubicación <PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic\types\File2TypeDemo.java.

Uso de FILE2

  1. Asegúrese de que importó los siguientes paquetes para garantizar que todas las funcionalidades funcionan como se describe en el ejemplo.
    import com.automationanywhere.commandsdk.annotations.*;
    import com.automationanywhere.commandsdk.model.AttributeType;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
  2. Agregue la anotación @BotCommand para hacer una clase como una Acción en Control Room. Para obtener más información sobre anotaciones, consulte Anotaciones.
    @BotCommand
  3. Agregue la anotación @CommandPkg para definir todos los componentes relacionados con la interfaz de usuario: etiquetas, descripción, ícono, tipo de retorno y nombre.
    @CommandPkg(label = "[[File2TypeDemo.label]]", description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
  4. Cree un método (Por ejemplo: regexFile) dentro de su clase y defina los campos como se describe a continuación.
    1. Anote el método con @Execute para ejecutar el método durante la compilación.
    2. En la siguiente muestra, @Idx, @Pkg y @NotEmpty se definen como parámetros del método. Si se utilizan como miembro de la clase, entonces se debe usar set y get para definirlos.
      1. @Idx: Define el índice de una acción. (@Idx(index = "1", type = AttributeType.FILE2))
      2. @Pkg: Define todos los parámetros y variables miembro que aparecen en la interfaz (@Pkg(label = "[[File2TypeDemo.localFile.label]]") ). Debe ir acompañado de la etiqueta @Idx, si no es así, se ignora esta anotación.
      3. @NotEmpty: Define que este parámetro no puede estar vacío (@NotEmpty @LocalFile FileValue fileValue)).
        @BotCommand
        @CommandPkg(label = "[[File2TypeDemo.label]]",
            description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
        public class File2TypeDemo {
            private static Logger logger = LogManager.getLogger(File2TypeDemo.class);
        
            @Execute
            public void regexFile(
                @Idx(index = "1", type = AttributeType.FILE2) 
                @Pkg(label = "[[File2TypeDemo.localFile.label]]") 
                @NotEmpty @LocalFile FileValue fileValue)
  5. Cree y cargue el paquete personalizado en Control Room. Para obtener más información sobre cómo cargar el paquete, consulte Uso del paquete SDK.
  6. Cree un bot.
  7. Arrastre la acción al lienzo y podrá ingresar la expresión común para encontrar un archivo. Verá un cuadro de entrada similar a esta imagen.

    La imagen muestra el SDK Demo variable

Imprimir la expresión común: nombre de la carpeta y la ubicación del archivo

Use la interfaz Registrador obtenida del paquete Log4j para proporcionar información de los objetos que se están manipulando. En la siguiente muestra, podrá registrar el nombre de la carpeta y la ubicación del archivo local mediante el método debug.

@BotCommand
@CommandPkg(label = "[[File2TypeDemo.label]]",
  description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
public class File2TypeDemo {
  private static Logger logger = LogManager.getLogger(File2TypeDemo.class);

  @Execute
  public void regexFile(
    @Idx(index = "1", type = AttributeType.FILE2) @Pkg(label = "[[File2TypeDemo.localFile.label]]") @NotEmpty @LocalFile FileValue fileValue) {
    if (fileValue.isRegex()) {

      RegexFile regexFile = fileValue.getRegex();
      logger.debug("folder name {}", regexFile.getFolder());
      logger.debug("local file location {}", regexFile.getFileNamePattern().toString());
    } else {
      logger.debug("Regex option is not selected");
    }
  }