パッケージ SDK を使用したカスタム変数の作成

Automation 360 を使用すると、SDK パッケージを使用してカスタム変数を作成することができます。

カスタム変数の使用

Automation 360 を使用してカスタム変数を作成することができます。これはシステム変数であり、読み取り専用で、値が代入される代わりに計算されることを除けば、他の Bot 変数として使用されます。

必要な注釈

変数を作成するには、次の注釈が必要です。

注釈 使用状況
BotCommand 変数commandType として BotCommand 注釈を使用します。これにより、POJO (plain old Java object) が Automation 360 変数の作成に適するようになります。
CommandPkg これらの値は、パッケージの作成時に使用されます。注釈に名前、ラベル、説明を指定します。
Idx 検証チェックに役立つよう、必要なすべてのパラメーターとメンバー変数に注釈を付けます。入力時のインターフェースに表示することもできます。インデックス (Idx) とタイプを指定します。
Pkg インターフェースに表示するすべてのパラメーターとメンバー変数に注釈を付けます。Idx が付いていない注釈は無視されます。
VariableExecute 変数値を返すために呼び出す必要があるメソッド。このメソッドは入力パラメーターを受け付けません。SessionsGlobalSessionContext は、セッター インジェクションを通じて利用できます。

ユース ケース例

次のユース ケースは、システムのデフォルト ゾーンの現在の時刻を返す方法を示しています。

  1. 次のビジネス ロジックを持つ POJO クラスを作成します。
    public class Now {
    	
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}
    
    }
  2. POJO クラスに注釈を付けることで Automation 360 変数に対して有効にし、パッケージを作成します。
    @BotCommand(commandType = BotCommand.CommandType.Variable)
    @CommandPkg(description = "The current datetime at system default zone.", name = "Now", label = "", variable_return_type = DataType.DATETIME)
    public class Now {
    	
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}
    
    }
  3. now メソッドに注釈を付けて、execute メソッドであることを示します。
    @VariableExecute
    	public DateTimeValue now() {
    		Instant instant = Instant.now();
    		ZonedDateTime now = instant.atZone(ZoneId.systemDefault());
    		return new DateTimeValue(now);
    	}

    変数ごとに、1 つのテスト VariableExecute メソッドが必要です。