四則演算や変数の型変換を簡単に行う
Automation Anywhere A2019において、変数を使った四則演算や、変数型の型変換 (Type Casting) を簡単に行う方法についてみていきましょう。このテクニックを知っていると、ボット構築時に使うアクション数を減らすことができます。
目次
まずはアクションを使った処理
まず四則演算ですが、これは足し算、引き算、掛け算、割り算および括弧による優先順位の指定の組み合わせの事です。このうち標準のアクションでできるのは、数字⇒インクリメント (足し算)、数字⇒デクリメント (引き算) のみです。しかも、一回のアクションの実行でできるのはひとつの演算のみです。
型の変換ですが、「文字列」「数字」「日時」「Boolean」といった変数型の名前の付いたパッケージには、「(変数型)に変換」というアクションがあり、これで他の変数型に変換します。ただ、これもいちいちアクションを実行する必要があるので、複数の変数を型変換する場合は、その数だけアクションを実行する必要があります。
「アクションの詳細」でのフィールド
では、四則演算や型変換をどう簡単に行うかですが、カギは「アクションの詳細」ウィンドウ (アクションのアイコン選択時に右側に表示されるウィンドウ) にある「入力フィールド」にあります。フィールドは、入力されるデータの型が決められており、型によっては選択式になっていて値は自由に入れられません。自由に入力が可能なフィールドの型は「文字列型」と「数字型」であり、冒頭に変数型を表すアイコンがあるので区別がつきます。
四則演算のやり方
四則演算は「数字型」のフィールドで可能です。任意の個数の数字型変数と「+」「-」「*」「/」「(」「)」の記号を使って、数式を定義することが可能です。
例:
たとえば、数字⇒代入アクションの「ソースの文字列変数/値を選択」フィールドで上記の数式を使うと、数字型変数に演算の結果を格納できます。
詳細は『四則計算の結果を変数に代入する』を参照してください。
型変換のやり方
型キャストとは、数字型/文字列型フィールドなどで使うことができ、$変数名の後に「. (ピリオド)」を打つことで、変数に対する型変換をはじめとするいくつかのアクションが利用できるものです。数字型であれば足し算、引き算、文字列型であれば大文字/小文字変換や空白のトリミング、反転、文字列の長さ、などが利用できます。候補が表示されるので、何ができるかを覚えておく必要はありません。
変数型で対応しているのは文字列型、数字型、Boolean型、任意型、リスト型、ディクショナリ型、テーブル型です。
また、型キャストはネストすることができます。以下のように、$n$の内容に1足して文字列型にする、なんてこともできるんです。
型変換のリファレンス
型変換は変数型によって使えるものが決まっています。
文字列 (String) 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
LegacySupport:getDecrementedNumber | 数字 | 文字列を数字に変換して1を引きます。 |
LegacySupport:getInrementedNumber | 数字 | 文字列を数字に変換して1を足します。 |
String:length | 数字 | 文字列の長さを返します。 |
String:lowercase | 文字列 | 文字列を小文字に変換します。 |
LegacySupport:parseLegacyKeys | 文字列 | 10.x、11.xの旧来のキーストロークを最新の書式に変換します。 |
LegacySupport:parseVariableOperation | 文字列 | 10.x、11.xのVariable Operationコマンドと同様の式解析をします。新しく作成するBotでは使わないでください。 |
String:reverse | 文字列 | 文字列を反転させます。 |
String:toBoolean | Boolean | Booleanに変換します。 |
String:toNumber | 数字 | 文字列を数字に変換します。 |
String:trim | 文字列 | 文字列の空白をカットします。 |
String:uppercase | 文字列 | 文字列を大文字に変換します。 |
数字 (Number) 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
Number:decrement | 数字 | 数字から1を引きます。 |
Number:increment | 数字 | 数字に1を足します。 |
Number:toString | 文字列 | 数字を文字列に変換します。 |
日時 (Datetime) 型で使える型変換
ありません。
Boolean 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
Boolean:invert | Boolean | 変数値を反転します。 |
Boolean:toNumber | 数字 | Booleanを数値に変換します。 |
Boolean:toString | 文字列 | Booleanを文字列へ変換します。 |
任意 (Any) 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
DataTable:columnCount | 数字 | テーブル内の列の数を返します。 |
Number:decrement | 数字 | 数字から1を引きます。 |
LegacySupport:getDecrementedNumber | 数字 | 文字列を数字に変換して1を引きます。 |
LegacySupport:getInrementedNumber | 数字 | 文字列を数字に変換して1を足します。 |
Number:increment | 数字 | 数字に1を足します。 |
Boolean:invert | Boolean | 変数値を反転します。 |
String:length | 数字 | 文字列の長さを返します。 |
String:lowercase | 文字列 | 文字列を小文字に変換します。 |
LegacySupport:parseLegacyKeys | 文字列 | 10.x、11.xの旧来のキーストロークを最新の書式に変換します。 |
LegacySupport:parseVariableOperation | 文字列 | 10.x、11.xのVariable Operationコマンドを探します。新しく作成するBotでは使わないでください。 |
String:reverse | 文字列 | 文字列を反転させます。 |
DataTable:rowCount | 数字 | テーブル内の行の数を返します。 |
Dictionary:size | 数字 | 辞書内のエントリー数を返します。 |
List:size | 数字 | リストの項目数を返します。 |
String:toBoolean | Boolean | Booleanに変換します。 |
Boolean:toNumber | 数字 | Booleanを数値に変換します。 |
String:toNumber | 数字 | 文字列を数字に変換します。 |
Boolean:toString | 文字列 | Booleanを文字列へ変換します。 |
Number:toString | 文字列 | 数字を文字列に変換します。 |
String:trim | 文字列 | 文字列の空白をカットします。 |
String:uppercase | 文字列 | 文字列を大文字に変換します。 |
リスト (List) 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
List:size | 数字 | リストの項目数を返します。 |
ディクショナリ (Dictionary) 型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
Dictionary:size | 数字 | 辞書内のエントリー数を返します。 |
テーブル (DataTable)型で使える型変換
型変換 | 型変換後の型 | 説明 |
---|---|---|
DataTable:columnCount | 数字 | テーブル内の列の数を返します。 |
DataTable:rowCount | 数字 | テーブル内の行の数を返します。 |
ファイル (File)型で使える型変換
ありません。
ウィンドウ (Window)型で使える型変換
ありません。
これらを使いこなせると、ボット構築時に使うアクション数を減らすことができますのでやってみてください。