Attribut FILE2 (Regex)

Les expressions régulières (RegEx) sont des modèles de chaînes de caractères définis pour rechercher un fichier dans un chemin spécifié. Utilisez l'attribut FILE2 lorsque vous utilisez des expressions régulières (regex) pour créer des modèles de chaîne.

Par exemple : Si vous voulez rechercher un fichier dans le chemin d'un dossier (par exemple Hello.txt) qui contient une certaine chaîne de caractère. . Vous utiliserez l'attribut File2 pour saisir le modèle regex suivant : Hell ou ell qui trouvera le fichier qui correspond aux critères de recherche. Cette rubrique est basée sur l'exemple File2TypeDemo disponible dans le Package SDK à l'emplacement suivant <PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic\types\File2TypeDemo.java.

Utilisation de FILE2

  1. Assurez-vous que vous avez importé les packages suivants pour garantir que toutes les fonctionnalités fonctionnent comme décrit dans l'exemple.
    import com.automationanywhere.commandsdk.annotations.*;
    import com.automationanywhere.commandsdk.model.AttributeType;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
  2. Ajoutez l'annotation @BotCommand pour créer une classe en tant qu'action dans la Control Room. Pour plus d'informations sur les annotations, voir Annotations.
    @BotCommand
  3. Ajoutez l'annotation @CommandPkg afin de définir tous les composants liés à l'interface utilisateur, comme les étiquettes, description, icône, type de retour et nom.
    @CommandPkg(label = "[[File2TypeDemo.label]]", description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
  4. Créez une méthode (par exemple : regexFile) dans votre classe et définissez les champs comme décrit ci-dessous.
    1. Annotez la méthode avec @Execute pour exécuter la méthode lors de la compilation.
    2. Dans l'exemple ci-dessous, @Idx, @Pkg et @NotEmpty sont définis comme des paramètres de la méthode. S'ils sont utilisés en tant que membre de la classe, alors vous devez utiliser les méthodes set et get pour les définir.
      1. @Idx - Définit l'index d'une action. (@Idx(index = "1", type = AttributeType.FILE2))
      2. @Pkg - Définit tous les paramètres et variables membres présentés dans l'interface (@Pkg(label = "[[File2TypeDemo.localFile.label]]") ). Doit être accompagné de @Idx, sinon cette annotation est ignorée.
      3. @NotEmpty - Définit que ce paramètre ne peut pas être vide (@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. Construisez et chargez le package personnalisé dans la Control Room. Pour plus d'informations sur le chargement de package, voir Utilisation du package SDK.
  6. Créez un robot.
  7. Faites glisser l'action dans le canevas et vous pourrez saisir l'expression regex pour trouver un fichier. Une zone de saisie semblable à cette image s'affiche.

    L'image montre la démonstration de variable SDK

Impression de la Regex - Nom du dossier et l'emplacement du fichier

Utilisez l'interface Enregistreur obtenue à partir du package Log4j pour fournir des informations sur les objets manipulés. Dans l'exemple ci-dessous, vous serez en mesure d'enregistrer le nom du dossier et l'emplacement du fichier local en utilisant la méthode 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");
    }
  }