FILE2 (Regex) attribute
- Updated: 2022/05/19
FILE2 (Regex) attribute
A regular expressions (RegEx) are patterns
of string defined to search for a file in a specified path. Use the
FILE2
attribute when using regular expressions (regex) to create
string patterns.
For instance: If you want to search a folder path for a file (For example
Hello.txt
)which contains a certain string. . You will use
File2
attribute type to enter the following regex pattern:
Hell
or ell
which will find the file that
matches the search criteria. This topic is based on the File2TypeDemo sample
available within the Package SDK in the following location
<PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic\types\File2TypeDemo.java.
Using the FILE2
- Make sure you have imported the following packages to ensure all the
functionalities works as described in the
sample.
import com.automationanywhere.commandsdk.annotations.*; import com.automationanywhere.commandsdk.model.AttributeType; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
- Add the
@BotCommand
annotation to make a class as an Action in the Control Room. For more information on annotations, see Annotations.@BotCommand
- Add the
@CommandPkg
annotation to define all the UI related components - labels, description, icon, return type, and name.@CommandPkg(label = "[[File2TypeDemo.label]]", description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
- Create a method (For example: regexFile) within your class and define the
fields as described below.
- Annotate the method with
@Execute
to execute the method during compilation. - In the below sample,
@Idx
,@Pkg
, and@NotEmpty
are defined as a parameters of the method. If they are used as a member of the class, then you should useset
andget
methods to define them.-
@Idx
- Defines the index of an action. (@Idx(index = "1", type = AttributeType.FILE2)
) -
@Pkg
- Defines all the parameters and member variables shown in the interface (@Pkg(label = "[[File2TypeDemo.localFile.label]]")
). Must be accompanied by the@Idx
, if not this annotation is ignored. -
@NotEmpty
- Defines that this parameter cannot be empty (@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)
-
- Annotate the method with
- Build and upload the custom package to the Control Room. For more information on uploading the package, see Using the package SDK.
- Create a bot.
- Drag the action into canvas and you will be able to input the regex to find a
file. You will see an input box similar to this image.
Print the Regex - Folder name and the File location
Use the Logger interface obtained from Log4j
package to provide information of the objects being manipulated. In the below sample
you will be able to log the folder name and the local file location by
using the debug
method.
@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");
}
}