Attribut FILE2 (Regex)
- Zuletzt aktualisiert2022/05/19
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
- 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;
- 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
- 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")
- Erstellen Sie eine Methode (z. B. regexFile) innerhalb Ihrer Klasse und definieren Sie die Felder wie unten beschrieben.
- Versehen Sie die Methode mit der Anmerkung
@Execute
, um die Methode während der Kompilierung auszuführen. - In dem folgenden Beispiel werden
@Idx
,@Pkg
und@NotEmpty
als Parameter der Methode definiert. Wenn sie als Mitglied der Klasse verwendet werden, sollten Sieset
- undget
-Methoden verwenden, um sie zu definieren.-
@Idx
– Definiert den Index einer Aktion. (@Idx(index = "1", type = AttributeType.FILE2)
) -
@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. -
@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)
-
- Versehen Sie die Methode mit der Anmerkung
- 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.
- Erstellen Sie einen Bot.
- 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.
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");
}
}