FILE2 (正規表現) 属性

正規表現 (RegEx) とは、指定したパス内のファイルを検索するために定義された文字列のパターンです。正規表現 (regex) を使用して文字列のパターンを作成する際に、FILE2 属性を使用します。

例: 特定の文字列を含むファイル (たとえば Hello.txt) のフォルダー パスを検索する場合。。File2 属性タイプを使用して、次の正規表現パターンを入力します。Hell または ell で、検索条件に一致するファイルを探します。このトピックは、次の場所にある Package SDK 内で利用可能な File2TypeDemo サンプルに基づいています。<PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic\types\File2TypeDemo.java.

FILE2 の使用

  1. 以下のパッケージをインポートしたことを確認し、サンプルで説明されているようにすべての機能が動作することを確認してください。
    import com.automationanywhere.commandsdk.annotations.*;
    import com.automationanywhere.commandsdk.model.AttributeType;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
  2. @BotCommand 注釈を追加して、クラスを Control Room のアクションとして作成します。注釈の詳細については、「注釈」をご覧ください。
    @BotCommand
  3. @CommandPkg 注釈を追加して、UI 関連のすべてのコンポーネント (ラベル説明アイコンリターン タイプ名前) を定義します。
    @CommandPkg(label = "[[File2TypeDemo.label]]", description = "[[File2TypeDemo.description]]", icon = "sample.svg", name = "file2TypeDemo")
  4. クラス内にメソッド (例: regexFile) を作成し、以下に説明するようにフィールドを定義します。
    1. コンパイル中にメソッドを実行するには、@Execute でメソッドに注釈を付けます。
    2. 以下の例では、@Idx@Pkg、および @NotEmpty がメソッドのパラメーターとして定義されています。それらがクラスのメンバーとして使用される場合は、setget メソッドを使用してそれらを定義する必要があります。
      1. @Idx - アクションのインデックスを定義します。(@Idx(index = "1", type = AttributeType.FILE2))
      2. @Pkg - インターフェースに表示されるすべてのパラメーターとメンバー変数を定義します (@Pkg(label = "[[File2TypeDemo.localFile.label]]") )。@Idx を付ける必要があります。そうでない場合、この注釈は無視されます。
      3. @NotEmpty - このパラメーターを空にできないことを定義します (@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. カスタム パッケージをビルドし、Control Room にアップロードします。パッケージのアップロードの詳細については、「パッケージ SDK の使用」をご覧ください。
  6. Bot を作成します。
  7. アクションをキャンバスにドラッグすると、ファイルを検索するための正規表現を入力できるようになります。この画像のような入力ボックスが表示されます。

    画像は、Variable SDK デモを示しています

正規表現を印刷する - フォルダー名とファイルの場所

Log4j パッケージから取得したロガーインターフェースを使用して、操作されているオブジェクトの情報を提供します。以下のサンプルでは、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");
    }
  }