Attribut FILE2 (Regex)

Reguläre Ausdrücke (regular expressions, RegEx) sind Muster von Zeichenfolgen, die für die Suche nach einer Datei in einem bestimmten Pfad definiert wurden. Verwenden Sie das FILE2-Attribut, wenn Sie reguläre Ausdrücke (Regex) nutzen, um Zeichenfolgenmuster zu erstellen.

Beispiel: Wenn Sie einen Ordnerpfad nach einer Datei durchsuchen möchten (z. B. Hello.txt), die eine bestimmte Zeichenfolge enthält. . Sie verwenden den Attributtyp File2, um das folgende Regex-Muster einzugeben: Hell oder ell, um die Datei zu finden, die den Suchkriterien entspricht. Dieses Thema basiert auf dem Beispiel File2TypeDemo, das im Paket-SDK unter <PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic\types\File2TypeDemo.java verfügbar ist.

Verwendung von FILE2

  1. Vergewissern Sie sich, dass Sie die folgenden Pakete importiert haben, damit alle Funktionen wie im Beispiel beschrieben funktionieren.
    import com.automationanywhere.commandsdk.annotations.*;
    import com.automationanywhere.commandsdk.model.AttributeType;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
  2. Fügen Sie die Anmerkung @BotCommand hinzu, um eine Klasse als Aktion im Control Room zu erstellen. Weitere Informationen zu Anmerkungen finden Sie unter Anmerkungen.
    @BotCommand
  3. Fügen Sie die Anmerkung @CommandPkg hinzu, um alle UI-bezogenen Komponenten zu definieren: labels, description, icon, return type und name.
    @CommandPkg(label = "[[File2TypeDemo.label]]", description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
  4. Erstellen Sie eine Methode (z. B. regexFile) innerhalb Ihrer Klasse und definieren Sie die Felder wie unten beschrieben.
    1. Versehen Sie die Methode mit der Anmerkung @Execute, um die Methode während der Kompilierung auszuführen.
    2. In dem folgenden Beispiel werden @Idx, @Pkg und @NotEmpty als Parameter der Methode definiert. Wenn sie als Mitglied der Klasse verwendet werden, sollten Sie set- und get-Methoden verwenden, um sie zu definieren.
      1. @Idx – Definiert den Index einer Aktion. (@Idx(index = "1", type = AttributeType.FILE2))
      2. @Pkg – Definiert alle Parameter und Mitgliedsvariablen, die in der Schnittstelle angezeigt werden (@Pkg(label = "[[File2TypeDemo.localFile.label]]") ). Muss von @Idx begleitet werden, andernfalls wird diese Anmerkung ignoriert.
      3. @NotEmpty – Legt fest, dass dieser Parameter nicht leer sein darf (@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. Erstellen Sie das benutzerdefinierte Paket und laden Sie es in den Control Room hoch. Weitere Informationen zum Hochladen des Pakets finden Sie unter Verwendung des Paket-SDK.
  6. Erstellen Sie einen Bot.
  7. Ziehen Sie die Aktion auf die Leinwand. Anschließend können Sie die Regex eingeben, um nach einer Datei zu suchen. Es wird ein Eingabefeld ähnlich wie hier abgebildet geöffnet.

    Das Bild zeigt die Variable „SDK Demo“.

Drucken Sie die Regex – Ordnername und Dateispeicherort

Verwenden Sie die Logger-Schnittstelle aus dem Log4j-Paket, um Informationen zu den bearbeiteten Objekten bereitzustellen. Im folgenden Beispiel können Sie den Ordnernamen und den lokalen Dateispeicherort mit der Methode debug protokollieren.

@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");
    }
  }