エクスプレッション

このセクションでは、ロボットのエクスプレッションおよびその編集方法や評価方法について説明します。

ロボット ステップのプロパティの多くは、プレーン値 (数値など) またはエクスプレッションとして指定できます。エクスプレッションは評価され、この評価の結果は、プレーン値がプロパティの値として直接利用されるプロパティに対して用いられます。たとえば、クリック ステップのカウント プロパティには 2 などの数値を指定できますが、clickCount などのエクスプレッションとして指定することもできます。clickCount はステップの範囲内で定義された変数であり、ロボットの他の場所で値が与えられます。

ロボットのエクスプレッションは、Java、C#、JavaScript などの最も一般的なプログラミング言語の式と非常によく似ています。これらは、定数、変数、演算 (加算、減算、乗算、比較演算、論理演算など)、および関数で構成されています。エクスプレッションの例を以下に示します:

  • (1 + 2)*3

  • x > 0 || x <= 6

  • max(x, 10)

  • "hello".substring(3)

エクスプレッションにはタイプが追加され、これらのタイプは変数と同じものとなります。つまり、演算と関数は特定のタイプのオペランドにしか適用されないことを意味します。オペランドの型によっては、評価されるときに特定の型の値を返します。たとえば、整数タイプの 2 つのオペランドを加えると、1 + 2 のように整数タイプの結果が得られ、3 と評価されます。オペランドのタイプが数値の場合は結果が数値タイプとなり、たとえば 1.0+2.0 は、3.0 と評価されます。エクスプレッションが評価され、エクスプレッションのタイプ エラーがロボットでエラーとして報告される前に、エクスプレッションのタイプの静的チェックが行われます。

エクスプレッションの評価によってワークフローの状態が変わることはありません。つまり、ユーザーはエクスプレッションの中の変数に値を割り当てることはできません。変数に値を割り当てることができるのはステップだけです。たとえば、変数割り当て ステップによって変数に値が割り当てられ、この値はエクスプレッションの評価から得られたものとなります。

次のセクションでは、エクスプレッションのさまざまなコンポーネントと式エディターについて説明します。

定数

定数は以下の簡単なタイプの値になります。

タイプ

例

整数

42

-17

数値

3.14159

-.33

ブール値

TRUE

FALSE

テキスト

"Hello"

"First"

テキスト値が終了してしまうため、テキスト値に二重引用符 (") を含めることはできません。代わりに、テキスト値に二重引用符が必要な場合には \" を使用します。バックスラッシュ記号 (\) は通常、エクスプレッションで直接記述できないテキスト値の特殊文字に用います。特殊文字:

文字

説明

\n

改行

組み込みブラウザで改行を使用するには、以下を使用します。

\r\n

\r

キャリッジ リターン

\f

フォーム フィード

\"

二重引用符

\t

タブ

\b

バックスペース

\\

バックスラッシュ文字自体

\uXXXX

コード化された 16 進数の Unicode 文字。たとえば 「\u002A」 は、「*」の別の表記です。

変数

エクスプレッションの変数は、エクスプレッションのロケーションでスコープ内のワークフローに定義された任意の変数または入力パラメータとなります。入力パラメータのスコープはワークフロー全体となるため、そのパラメータは常にスコープ内となります。ワークフローの最上位レベルで定義されている場合、または グループ ステップ 内にある場合、変数はスコープ内となります。

演算

演算は、演算子と複数のオペランドから構成されるエクスプレッションです。1+2 というエクスプレッションでは、+ が演算子で、1 と 2 がオペランドです。したがって、演算子は、エクスプレッションが評価されるときにオペランドの値に対して実行される演算を定義します。このセクションでは、エクスプレッションで発生する演算子について説明します。ほとんどの場合、これらの演算子が実行する演算は複雑ではありません。プログラミング言語のエクスプレッションに詳しい場合は、この説明を省略して、以下のサマリーテーブルを参照してください。

算術演算
エクスプレッションは、加算 (+)、減算 (-)、乗算 (*)、除算 ( / )、およびモジュロ (%) に対応しています。各演算は、整数タイプと数値タイプの任意の組み合わせを持つことができる 2 つのオペランドを取ります。オペランドに 1 つ以上の数値タイプが含まれている場合、結果タイプも数値になります。それ以外の場合は整数タイプになります。

加算演算 (+) を用いるとき、オペランドの 1 つがテキストで、もう 1 つのオペランドが整数、数値、ブール タイプまたはテキスト タイプの場合、結果タイプはテキストになります。たとえば、"a" + 1 は、テキスト "a1" と評価されます。テキスト タイプではないオペランドの値がテキストに変換され、2 つのオペランドの値が結果のテキストに連結されます。減算演算 - は、x が整数タイプまたは数値タイプで -x のように、数値の否定として用いることもできます。演算子 % はモジュロ演算子、または剰余演算子と呼ばれます。この演算子は 2 つのオペランドを除算した後の余りを返します。たとえば、5 % 2 は 1 を返します。より正確には、次のように数学的に定義されます:

x % y = x - trunc(x / y) * y
where
trunc(x) = sgn(x) * floor(|x|)

算術演算を評価すると、例外がスローされることがあります。これは、数値が大きすぎる場合のオーバーフローなど、結果が数値の制限を超えている場合に、加算、減算、乗算、および除算の演算で発生する可能性があります。この場合、OverflowIssue 例外がスローされます。第 2 オペランドの値がゼロの場合、除算と剰余演算子は DivisionByZeroIssue 例外をスローします。例:

  • 17 % 2 は 1 と評価されます。

  • -17.3 % 2.0 は -1.3 と評価されます。

等価演算子
ワークフロー エクスプレッションでは 2 つの等価演算子があります。
  • == 値が別の値と等しいかどうかを判定します。

  • != 1 つのオペランドの値が別のオペランドの値と等しくないかどうかを判定します。

これらの演算子は、あらゆるタイプのオペランドで動作しますが、オペランドのタイプは同じである必要があります。たとえば、数値を整数と比較することはできません。
関係演算子
関係演算子は、一方のオペランドが他方のオペランドより小さいか大きいかを判定します。オペランドは Integer、Number、Date、Time、DateTime タイプの数値である必要があります。エクスプレッション内のオペランドのタイプは同一である必要があります。関係演算子には 4 種類あります:

演算子

説明

<

未満

<=

以下

>

より大きい

>=

以上

論理演算子
2 つの二項演算 (2 つのオペランドを取る) 論理演算子があります:AND (&&)、OR (||)。また、1 つの単項演算 (1 つのオペランドを取るもの) があります:NOT (!)。これらの演算子はブール タイプのオペランドに対して定義され、リターン タイプもブール タイプになります。&& 演算子は、両方のオペランドの値が TRUE であれば TRUE を返し、それ以外の場合には FALSE を返します。|| 演算子は、オペランドの値のうち 1 つまたは両方が TRUE であれば TRUE を返し、両方が FALSE の場合には FALSE を返します。! 演算子は、オペランドの値が FALSE の場合は TRUE を返し、オペランドが TRUE の場合は FALSE を返します。

&& および || 演算子の評価は、他の多くの演算子の評価とは若干異なります。通常はオペランドの評価が実行される前にすべてのオペランドが評価されますが、&& および || 演算子については、第 1 オペランドが最初に評価されます。演算子の結果を判断するのに十分であれば、2 番目の引数は評価されません。たとえば、x==1 || x==2 において、x が 1 の場合、エクスプレッションの 2 番目の部分 (x==2) は評価されません。

条件付き演算子
条件付き演算子は 3 つのオペランドを取り、次の形エクスプレッションを取ります。

<Op>?<Op>:<Op>

ここで、<Op> は、制限付きで任意のオペランドになります。たとえば、x の値が 1 であれば、x==1?0:1 は 0、それ以外の場合は 1 になります。第 1 オペランドのタイプはブール タイプである必要があり、他の 2 つのオペランドは任意のタイプにすることができますが、同じである必要があります。

条件付き演算子の評価も、他の多くの演算子の評価とは若干異なります。条件付き演算子の場合、最初に第 1 オペランドが評価され、その値に応じて、他の 2 つのオペランドのうちの 1 つだけが評価されます。第 1 オペランドが TRUE (または FALSE) の場合、第 2 (または第 3) のオペランドが評価され、結果がこの評価の結果になります。これは、評価されていないオペランドに評価エラーが発生しても、例外がスローされないことを意味します。たとえば、x == 0.0? で、1.0: 1/X では、x に 0.0 の値がある場合、1/x は評価されず、DivisionByZeroIssue 例外はスローされません。

演算子の概要
次の表は、エクスプレッション演算子の一覧です。

演算子

説明

例

+

加算またはテキスト連結

1+2

"hello " + name

-

減算または否定

1-2

5-2.9

-5

*

乗算

42*2

1.0*17

/

除算

1/2

1/2.0

%

剰余演算

x % 2

2.5 % 1.0

==,!=

等しい、等しくない

true == false

x != 0

<,<=

未満、以下

0 < 1

1.0 <= 0.0

>,>=

より大きい、以上

0 > 1

1.0 >= 0.0

&&,||

論理 AND、論理 OR

true || x

false && y

!

論理 NOT

!true

_?_:_

条件付き演算子

x>0? x: 0

丸括弧
丸括弧を用いてエクスプレッションの評価順序を決定することで、エクスプレッションから得られる結果を別のものにすることができます。たとえば、エクスプレッション 1+2*3 は 7 と評価されますが、次のように丸括弧を挿入すると:(1+2)*3 は、隣接する演算子の前で括弧の内容が評価されるため、結果は 9 に変わります。

関数

エクスプレッションには、関数呼び出しを含めることもできます。関数を呼び出すには 2 つの方法があります。1 つ目は直接関数呼び出しと呼ばれ、次のようになります。f(<Op>,…,<Op>)、たとえば max(1,2)。もう 1 つはメソッド関数呼び出しと呼ばれ、次のようになります。<Op>.f(<Op>,…,<Op>)、たとえば 1.max(2)。この 2 つの方法は次のような関係になっています。

<Op1>.f(<Op2>,...,<Opn>) は f(<Op1>,...,<Opn>) と同じです。

オペランドは特定のタイプを持つ必要があり、結果タイプはオペランドのタイプに応じて異なる点において、関数は演算子に似ています。たとえば、2 つの数値で最大値を決定する関数 max は、整数タイプまたは数値タイプのオペランドで呼び出すことができ、戻り値のタイプはオペランドのタイプと同じになります。

評価中、関数が想定外の不正なオペランド値を取得すると、IncorrectValueIssue 例外がスローされます。

Kofax RPA は以下の関数を提供します。

  • 数値

  • テキスト

  • DateTime

  • 日付

  • 時刻

  • 変換

数値関数

関数

結果タイプ

例

abs(Integer)

整数

abs(-5) は 5 を返します。

abs(Number)

数値

abs(-2) は 2 を返します。

ceil(Number)

整数

指定された数値以上の最小の整数を返します。

ceil(2.4) は 3 を返します。

computeMD5(binary: Binary)

テキスト

バイナリ入力の MD5 チェックサムを計算します。

floor(Number)

整数

指定された数値以下の最小の整数を返します。

floor(8.7) は 8 を返します。

round(Number)

整数

算術規則に基づいて、指定された数値よりも大きいまたは小さい最小の整数を返します。

round(1.4) は 1 を返します。

round(1.6) は 2 を返します。

trunc(Number)

整数

小数部を含まない数値を返します。

trunc(4.8732) は 4 を返します。

max(Integer, Integer)

整数

max(4, 9) は 9 を返します。

max(Number, Number)

数値

max(12, 99) は 99 を返します。

min(Integer, Integer)

整数

min(23, 47)は 23 を返します。

min(Number, Number)

数値

min(15.01, 32.5)は 15.01 を返します。

random()

数値

0.0 以上 1.0 未満の乱数を返します。

random()

random(Integer, Integer)

整数

第 1 オペランドの値以上、第 2 オペランドの値以下のランダムな整数を返します。

Random(5, 96)

テキスト関数

関数

結果タイプ

例

ampersandDecode(Text)

テキスト

ampersandDecode("&gt;") は > を返します。

ampersandEncode(Text)

テキスト

ampersandEncode(">") は &gt; を返します。

base64Decode(Text)

バイナリ

base64Decode("SGVsbG8=").text("UTF8") は Hello を返します。

binary(Text, Text)

バイナリ

テキスト値をバイナリに変換します。

"Hello".binary("UTF8")

boolean(Text)

ブール値

テキストは「true」または「false」のいずれかになります。

boolean("true") は、ブール型の「true」を返します。

capitalize(Text)

テキスト

各単語の最初の文字が大文字で、残りの文字が小文字であるテキストを返します。

capitalize("hello world") は Hello World を返します。

contains(Text, Text)

ブール値

テキストに指定したテキストが含まれていることを確認します。

contains("I have found it", "have") は true を返します。

endsWith(Text, Text)

ブール値

endsWith("Why portraits have fascinated us for millennia", "millennia") は true を返します。

indexOf(Text, Text)

整数

indexOf("Why portraits have fascinated us for millennia", "millennia") は 37 を返します。

integer(Text)

整数

integer("7")は、整数型の 7 を返します。

length(Text)

整数

記号の数を計算して、テキストの長さを返します。

length("Hello") は 5 を返します。

matches(text: Text, regex: Text)*

ブール値

テキストが正規表現に一致するかどうかをチェックします。

matches("My phone number is 123-45-678", "(.*)( \\d{3}-\\d{2}-\\d{3})") は true を返します。

number(Text)

数値

number(987) は 987.0 を返します。

password(Text)

パスワード

テキストをパスワードに変換します。これは、ロボットの開発中にアプリケーションにログインする際にパスワードが必要な場合に役立ちます。セキュリティ上の理由から、この関数を本番環境で使用しないでください。

password("123abc!@") は Password=074f4d84dfe28d... を返します。

removeNonPrintable(Text)

テキスト

印刷不可文字を含まないテキストを返します。

removeNonPrintable("Text with non-printable characters")

replaceAll(text: Text, regex: Text, replacement: Text)*

正規表現に一致するすべてのサブテキストを、指定された置換文字に置き換えます。

正規表現は、$ を使用した複数の一致検索および参照をサポートしています。

"345-84-7735".replaceAll(") は 345-84-7735 を返します。

円記号をエスケープする必要があることに注意してください。

startsWith(Text, Text)

ブール値

startsWith("To be or not to be", "To") は true を返します。

substring(Text, Integer)

テキスト

"workflow".substring(5) は low を返します。

substring(Text, Integer, Integer)

テキスト

substring("DesignStudio",1,8) は esignSt を返します。

toJSON(Text)

テキスト

toJSON("Hello") はテキストとして "Hello" を返します。

toLowerCase(Text)

テキスト

toLowerCase("START") は start を返します。

toUpperCase(Text)

テキスト

toUpperCase("sun") は SUN を返します。

trim(Text)

テキスト

テキストの最初と最後の余分なスペースを削除します。

trim(" Let's start ") は Let's start を返します。

unquote(text: Text)

テキスト

テキストから引用符を除去します。

"\"hello\"".unquote() は、二重括弧なしで hello を返します。
* この関数の実行には、使用されるテキストと正規表現に応じて長い時間がかかることがあります。たとえば、テキストに余分なゼロを大量に入力すると、matches 関数が極めて長時間実行されます。最後に A を 1 つ追加すると、matches("0000000000000000000000", "(0*)*A") のようにほぼ即座に true を返します。エクスプレッションを変更するたびに、以前の評価が取り消され (まだ実行中の場合)、新しい評価が開始されます。

DateTime 関数. DateTime 関数の結果には、日付、時刻、タイム ゾーン ID、およびオフセットが含まれます。表現は指定されたパラメータによって異なります。デフォルトでは、特定のタイム ゾーンが手動で指定されていない限り、コンピュータのローカル タイム ゾーンが使用されます。これは、式が評価されるときに決定されます。

関数

結果タイプ

dateTime()

DateTime

現在の日付 (年、月、日)、時刻 (時、分、秒)、オフセット、および zoneID を返します。

dateTime(date: Date, time: Time)

DateTime

指定の日付と時刻を返します。

例

dateTime(date(2022, 1, 10), time(12, 0, 5)) は、日付 (年 = 2022、月 = 1、日 = 10)、時刻 (時 = 12、分 = 0、秒 = 5、ナノ秒 = 0)、zoneID = "[DateTime のタイム ゾーン]" を返します。

dateTime(date: Date, time: Time, zone: Text)

DateTime

指定した日付、時刻、およびタイム ゾーン ID またはオフセットを返します。

例

dateTime(date(2010,11,08), time(12,44,00), zoneId(Dublin))

dateTime(text: Text, pattern: Text)

DateTime

コンピュータのデフォルトのロケールを使用して、Text 値を DateTime 値に変換します。

例

dateTime("2022-01-02 12:30", "yyyy-MM-dd HH:mm")

dateTime(text: Text, pattern: Text, locale: Text)

DateTime

パターンとロケールを使用して、テキストから DateTime 値を作成します。

例

dateTime("January 1, 2022 12:30", "MMMM d, yyyy HH:mm ", "en-US").

dateTime(text: Text, pattern: Text, defaultDate: Date)

DateTime

パターンと、テキストに日付が含まれていない場合に使用するデフォルトの日付を使用して、Text 値を DateTime 値に変換します。

例

dateTime("12:30", "HH:mm", date())

ここで、日付は現在の日付です。

dateTime(text: Text, pattern: Text, dafaultDate: Date, locale: Text)

DateTime

パターン、デフォルトの日付、およびロケールを使用して、テキストから DateTime 値を作成します。パターンによってテキストと日付が一致する場合はロケールが使用され、デフォルトの日付は使用されません。テキストに日付が含まれていない場合は、デフォルトの日付が使用されます。

例

dateTime(text, "[MMMM d, yyyy] HH:mm", date(), "en-US")。ここで、text は抽出する日付を含む変数であり、date() は現在の日付です。パターンは両方のテキストに一致します。January 1, 2022 12:30 および 12:30。最初のケースでは、January1, 2022 という日付で DateTime 値が返されます。2 番目のケースでは、現在の日付で返されます。どちらの場合も、時刻は 12:30 です。

offset(dateTime: DateTime)

テキスト

DateTime 値のオフセットを返します。

例

offset(dateTime()) は、使用しているコンピュータにおける現在の日付のオフセットを +01:00 のような形で返します。

zoneId(dateTime: DateTime)

テキスト

DateTime 値のタイム ゾーンを返します。

例

zoneId(dateTime()) は、現在の日付の zoneID の値を Europe/Paris のような形で返します。

withYears(dateTime: DateTime, years: Integer)

DateTime

年を変更した日付と時刻を新たに返します。

例

dateTime(date(2021, 7, 20), time(12, 13, 14)).withYears(2022) は、年が 2022 である DateTime 値を返します。

withMonth(dateTime: DateTime, months: Integer)

DateTime

月を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withDay(dateTime: DateTime, days: Integer)

DateTime

日を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withHour(dateTime: DateTime, hours: Integer)

DateTime

時間を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withMinute(dateTime: DateTime, minutes: Integer)

DateTime

分を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withSecond(dateTime: DateTime, seconds: Integer)

DateTime

秒を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withNano(dateTime: DateTime, nanos: Integer)

DateTime

ナノ秒を変更した日付と時刻を新たに返します。例については、「withYears」を参照してください。

withOffset(dateTime: DateTime, offset: Text)

DateTime

指定したオフセットの日付と時刻を新たに返します。オフセットを変更すると、オフセットとゾーン ID が互いに矛盾しないように、ゾーン ID が変更される場合があります。

例 (オフセットが +1 の場合)

withOffset(dateTime(), "+3") は、オフセットが +3 の時刻を返します。これは、時刻が現在の時刻よりも 2 時間進んでいることを意味します。また、ゾーン ID は UTC +03:00 (ヨーロッパ/モスクワ) に変更されます。

withZoneId(dateTime: DateTime, zoneID: Text)

DateTime

指定したタイム ゾーンの日付と時刻を新たに返します。ゾーン ID を変更すると、ゾーン ID とオフセットが互いに矛盾しないように、オフセットが変更される場合があります。

例

withZoneId(dateTime(), "Europe/Moscow") は、指定されたゾーン ID における現在の時刻を返します。

plusYears(dateTime: DateTime, amount: Integer)

DateTime

指定した年数を加えた日付と時刻を新たに返します。

例

dateTime(date(2021, 7, 20), time(12, 13, 14)).plusYears(1) は、ロボットが実行されるタイムゾーンにおける、日時 2022-07-22 12:13:14.0 の DateTime 値を返します。

plusMonths(dateTime: DateTime, amount: Integer)

DateTime

指定した月数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusWeeks(dateTime: DateTime, amount: Integer)

DateTime

指定した週数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusDays(dateTime: DateTime, amount: Integer)

DateTime

指定した日数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。

plusDays(70) を使用した次の例では、3 月は 31 日、4 月は 30 日あるという前提に基づき、まず 3 月 4 日に 27 日を追加し、さらに残りの 43 日を追加して 5 月 13 日としています。

例

dateTime(date(2022, 3, 4), time(12, 13, 14)).plusDays(70) は、日付 (年 = 2022、月 = 5、日 = 13)、時刻 (時 = 12、分 = 13、秒 = 14、ナノ秒 = 0)、zoneID = "[DateTime のタイム ゾーン]" を返します。

plusHours(dateTime: DateTime, amount: Integer)

DateTime

指定した時間数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusMinutes(dateTime: DateTime, amount: Integer)

DateTime

指定した分数を加えた日付と時刻を新たに返します。

例

dateTime(date(2022, 7, 20), time(12, 13, 14)).plusMinutes(7) は、日付 (年 = 2022、月 = 7、日 = 20)、時刻 (時間 = 12、分 = 20、秒 = 14、ナノ秒 = 0)、zoneID = "[DateTime のタイム ゾーン]" を返します

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。

plusSeconds(dateTime: DateTime, amount: Integer)

DateTime

指定した秒数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusNanos(dateTime: DateTime, amount: Integer)

DateTime

指定したナノ秒数を加えた日付と時刻を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

minusYears(dateTime: DateTime, amount: Integer)

DateTime

指定した年数を差し引いた日付と時刻を新たに返します。

例

dateTime(date(2022, 7, 20), time(12, 13, 14)).minusYears(10) は、ロボットが実行されるタイムゾーンにおける、日時 2012-07-22 12:13:14.0 の DateTime 値を返します。

minusMonths(dateTime: DateTime, amount: Integer)

DateTime

指定した月数を差し引いた日付と時刻を新たに返します。

例

dateTime(date(2022, 7, 20), time(12, 13, 14)).minusMonths(10) は、ロボットが実行されるタイムゾーンにおける、日時 2021-09-20 12:13:14 の DateTime 値を返します。

minusWeeks(dateTime: DateTime, amount: Integer)

DateTime

指定した週数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、「minusMonths」を参照してください。

minusDays(dateTime: DateTime, amount: Integer)

DateTime

指定した日数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。minusDays(20) を使用した次の例では、3 月は 31 日、2 月は 29 日あるという前提に基づき、まず 3 月 14 日から 14 日を差し引き、さらに残りの 6 日を差し引いて 2 月 23 日としています。

例

dateTime(date(2020, 3, 14),time(12, 13, 14)).minusDays(20) は、日付 (年 = 2020、月 = 2、日 = 23)、時刻 (時間 = 12、分 = 13、秒 = 14、ナノ秒 = 0)、zoneID = "[DateTime のタイム ゾーン]" を返します。

minusHours(dateTime: DateTime, amount: Integer)

DateTime

指定した時間数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

minusMinutes(dateTime: DateTime, amount: Integer)

DateTime

指定した分数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

minusSeconds(dateTime: DateTime, amount: Integer)

DateTime

指定した秒数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

minusNanos(dateTime: DateTime, amount: Integer)

DateTime

指定したナノ秒数を差し引いた日付と時刻を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

yearsUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの年数を計算します。

例

dateTime(date(2022, 1, 20), time(12, 13, 14)).yearsUntil(dateTime(date(3785, 11, 20), time(12, 13, 14))) は 1763 を返します。

monthsUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの月数を計算します。

例

dateTime(date(2022, 1, 20), time(12, 13, 14)).monthsUntil(dateTime(date(2022, 11, 20), time(12, 13, 14))) は 10 を返します。

daysUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの日数を計算します。例については、「monthsUntil」を参照してください。

hoursUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの時間数を計算します。例については、「monthsUntil」を参照してください。

minutesUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの分数を返します。例については、「monthsUntil」を参照してください。

secondsUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの秒数を返します。例については、「monthsUntil」を参照してください。

millisUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までのミリ秒数を返します。例については、「monthsUntil」を参照してください。

nanosUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までのナノ秒数を返します。例については、「monthsUntil」を参照してください。

dayOfYear(dateTime: DateTime)

整数

年の日にちを返します。

例

dateTime(date(2022, 3, 1), time(12, 13, 14)).dayOfYear() は日 = 60 を返します

weeksUntil(from: DateTime, to: DateTime)

整数

最初の DateTime 引数から 2 番目の DateTime 引数までの週数を返します。

例

dateTime(date(2022, 1, 20), time(12, 13, 14)).weeksUntil(dateTime(date(2025, 11, 20), time(12, 13, 14))) は 200 を返します。

text(dateTime: DateTime)

テキスト

DateTime 値をテキスト表現に変換します。

例

text(dateTime()) は、たとえば 2022-02-10T13:46:56.907958+01:00 [ヨーロッパ/パリ] のような形式で現在の日付と時刻を返します。

text(dateTime: DateTime, pattern: Text)

テキスト

DateTime 値を、指定したパターンとロケールに一致するテキスト表現に変換します。パターンは、次のようなさまざまな方法で指定できます。

  • "d/M/yyyy HH:mm"

  • "d-M-yyyy HH:mm:ss"

例 (DateTime が 2022-12-20T00:30:00+03:00 の場合)

text("d/M/yyyy HH:mm") は 20/12/2022 00:30 を返します。

text(dateTime: DateTime, pattern: Text, locale: Text)

テキスト

指定したパターンとロケールに一致する、DateTime の日付と時刻のテキスト表現を返します。

  • パターンは、次のようなさまざまな方法で指定できます。

    • "d/M/yyyy HH:mm"

    • "d-M-yyyy HH:mm:ss"

    • "EEEE MMM d yy HH:mm" (EEEE は完全な曜日を、MMM は 3 文字に省略した月の名前を返します。その他も同様です)

  • ロケールは、en-US、fr-FR、ja-JP、ru-RU のように指定します。

例 (現在の日付が 20.12.2021 00:30:00) である場合

text("EEEE MMM d yy HH:mm", "en-US") は Monday Dec 20 21 00:30 を返します。

text("EEE MMMM d yyyy HH:mm", "en-US") は Mon December 20 2021 00:30 を返します。

text("yyyy'年'MM'月'd'日' HH:mm:ss","ja-JP") は 2021年12月20日 00:30:00 を返します。

fromExcelDate(excelDate: Number)

DateTime

DateTime 値を数値として表現された Excel の日付に変換します。

例 (ExcelDate 値が 44969 の場合)

ExcelDate.fromExcelDate() は、year=2023、month=2、day=12 を返します。

toExcelDate(dateTime: DateTime)

Number

DateTime 値を数値として表現された Excel の日付に変換します。

例 (現在の日付が 08.02.2022 18:45:00 である場合)

dateTime().toExcelDate() は 44600.76050844907149439677596092224 を返します。

日付関数

関数

結果タイプ

date()

日付

現在の日付を返します。

date(year: Integer, month: Integer, day: Integer)

日付

指定した年、月、および日の日付を返します。

date(DateTime)

日付

以前に DateTime が指定されていた場合に、DateTime の日付値を返します。

date(text: Text, pattern: Text)

日付

パターンを使用して、Text 値を Date 値に変換します。

例

date("2022-01-02", "yyyy-MM-dd")

date(text: Text, pattern: Text, locale: Text)

日付

パターンとロケールを使用して、Text 値を Date 値に変換します。

例

date("January 1, 2022", "MMMM d, yyyy", "en-US")

year(date: Date)

整数

現在の日付の年を返します。

month(date: Date)

整数

現在の日付の月 (1 ~ 12) を返します。

day(date: Date)

整数

現在の日付の日 (1 ~ 31) を返します。

withYear(date: Date, years: Integer)

日付

年を変更した日付を新たに返します。

例

date(2022, 3, 4).withYear(2037) は、year = 2037、month = 3、day = 4 を返します。

withMonth(date: Date, months: Integer)

日付

月を変更した日付を新たに返します。 date(2022, 3, 4).withMonth(5) は、year = 2022、month = 8、day = 4 を返します。

withDay(date: Date, days: Integer)

日付

日を変更した日付を新たに返します。

例

date(2022, 3, 4).withDay(10) は、year = 2022、month = 3、day = 10 を返します。

plusYears(date: Date, amount: Integer)

日付

指定した年数を加えた日付を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusMonths(date: Date, amount: Integer)

日付

指定した月数を加えた日付を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusWeeks(date: Date, amount: Integer)

日付

指定した週数を加えた日付を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"plusDays" を参照してください。

plusDays(date: Date, amount: Integer)

日付

指定した日数を加えた日付を新たに返します。

どの「plus」関数でも、暦に基づく繰り越し計算が使用されます。plusDays(70) を使用した次の例では、3 月は 31 日、4 月は 30 日あるという前提に基づき、まず 3 月 4 日に 27 日を追加し、さらに残りの 43 日を追加して 5 月 13 日としています。

例

date(2022, 3, 4).plusDays(70) は、year = 2022、month = 5、day = 13 を返します。

minusYears(date: Date, amount: Integer)

日付

指定した年数を差し引いた日付を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。

date(2022, 3, 14).minusYears(20) は、year = 2002、month = 3、day = 14 を返します。

minusMonths(date: Date, amount: Integer)

日付

指定した月数を差し引いた日付を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

minusWeeks(date: Date, amount: Integer)

日付

指定した週数を差し引いた日付を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。例については、"minusDays" を参照してください。

minusDays(date: Date, amount: Integer)

日付

指定した日数を差し引いた日付を新たに返します。

どの「minus」関数でも、暦に基づく繰り越し計算が使用されます。minusDays(20) を使用した次の例では、3 月は 31 日、2 月は 29 日あるという前提に基づき、まず 3 月 14 日から 14 日を差し引き、さらに残りの 6 日を差し引いて 2 月 23 日としています。

例

date(2022, 3, 14).minusDays(20) は、年 = 2022、月 = 2、日 = 23 を返します。

yearsUntil(from: Date, to: Date)

整数

最初の Date 引数から 2 番目 の Date 引数までの年数を返します。

例 (現在の年が 2022 年である場合)

date().yearsUntil(date(2023, 11, 12)) は 1 を返します。

monthsUntil(from: Date, to: Date)

整数

最初の Date 引数から 2 番目 の Date 引数までの月数を返します。例については、「yearsUntil」を参照してください。

daysUntil(from: Date, to: Date)

整数

最初の Date 引数から 2 番目 の Date 引数までの日数を返します。例については、「yearsUntil」を参照してください。

weeksUntil(from: Date, to: Date)

整数

最初の Date 引数から 2 番目 の Date 引数までの週数を返します。例については、「yearsUntil」を参照してください。

isLeapYear(date: Date)

ブール値

年がうるう年の場合は「true」を返し、そうでない場合は「false」を返します。

例

date(2020, 3, 4).isLeapYear は、2020 年がうるう年であったため、true を返します。

text(date: Date)

テキスト

Date 値をテキスト表現に変換します。

例

text(date(2000, 12, 25)) は 2000-12-25 を返します。

text(date: Date, pattern: Text)

テキスト

Date 値を、指定したパターンに一致するテキスト表現に変換します。

例

text(date(2000, 12, 25), "M/YY/d") は 12/00/25 を返します。

text(date: Date, pattern: Text, locale: Text)

テキスト

Date 値を、指定したパターンとロケールに一致するテキスト表現に変換します。

例

text(date(2023, 12, 12), "MMMM d, yyyy", "de-DE") は Dezember 12, 2023. を返します。

時刻関数

関数

結果タイプ

time()

時刻

現在の時刻を返します。

time(hours: Integer, minutes: Integer, seconds: Integer)

時刻

指定した時、分、および秒の時刻を返します。

time(hours: Integer, minutes: Integer, seconds: Integer, nanos: Integer)

時刻

指定した時、分、秒、およびナノ秒の時刻を返します。

time(dateTime: DateTime)

時刻

以前に DateTime が指定されていた場合に、DateTime の時刻値を返します。

time(text: Text, pattern: Text, locale: Text)

時刻

指定したパターンとロケールを使用して、Text 値をTime 値に変換します。

例

time("January 1, 2022 12:30", "MMMM d, yyyy hh:mm a", "en-US")

hour(time: Time)

整数

現在の時刻の時間を返します。

minute(time: Time)

整数

現在の時刻の分を返します。

second(time: Time)

整数

現在の時刻の秒を返します。

nanosecond(time: Time)

整数

現在の時刻のナノ秒を返します。

withHour(time: Time, hours: Integer)

時刻

時間を変更した時刻を新たに返します。

例

time(14, 50, 45).withHour(2) は、時 = 2、分 = 50、秒 = 45、ナノ秒 = 0 を返します。

withMinute(time: Time, minutes: Integer)

時刻

分を変更した時刻を新たに返します。例については、「withHour」を参照してください。

withSecond(time: Time, seconds: Integer)

時刻

秒を変更した時刻を新たに返します。例については、「withHour」を参照してください。

withNano(time: Time, nanos: Integer)

時刻

ナノ秒を変更した時刻を新たに返します。例については、「withHour」を参照してください。

plusHours(time: Time, amount: Integer)

時刻

指定した時間数を加えた時刻を新たに返します。

例

time(14, 50, 45).plusHours(2) は、時 = 16、分 = 50、秒 = 45、ナノ秒 = 0 を返します。

plusMinutes(time: Time, amount: Integer)

時刻

指定した分数を加えた時刻を新たに返します。例については、「plusHours」を参照してください。

plusSeconds(time: Time, amount: Integer)

時刻

指定した秒数を加えた時刻を新たに返します。例については、「plusHours」を参照してください。

plusNanos(time: Time, amount: Integer)

時刻

指定したナノ秒数を加えた時刻を新たに返します。例については、「plusHours」を参照してください。

minusHours(time: Time, amount: Integer)

時刻

指定した時間数を差し引いた時刻を新たに返します。

例

time(14, 50, 45).minusHours(2) は、時 = 12、分 = 50、秒 = 45、ナノ秒 = 0 を返します。

minusMinutes(time: Time, amount: Integer)

時刻

指定した分数を差し引いた時刻を新たに返します。例については、「minusHours」を参照してください。

minusSeconds(time: Time, amount: Integer)

時刻

指定した秒数を差し引いた時刻を新たに返します。例については、「minusHours」を参照してください。

minusNanos(time: Time, amount: Integer)

時刻

指定したナノ秒数を差し引いた時刻を新たに返します。例については、「minusHours」を参照してください。

hoursUntil(from: Time, to: Time)

整数

最初の Time 引数から 2 番目の Time 引数までの時間数を返します。

例

time(9, 41, 35).hoursUntil(time(15, 34, 12)) は 5 を返します。

minutesUntil(from: Time, to: Time)

整数

最初の Time 引数から 2 番目の Time 引数までの分数を返します。例については、「hoursUntil」を参照してください。

secondsUntil(from: Time, to: Time)

整数

最初の Time 引数から 2 番目の Time 引数までの秒数を返します。例については、「hoursUntil」を参照してください。

millisUntil(from: Time, to: Time)

整数

最初の Time 引数から 2 番目の Time 引数までのミリ秒数を返します。例については、「hoursUntil」を参照してください。

nanosUntil(from: Time, to: Time)

整数

最初の Time 引数から 2 番目の Time 引数までのナノ秒数を返します。例については、「hoursUntil」を参照してください。

toSecondsOfDay(time: Time)

整数

時刻を秒に変換します。

例

time(1, 0, 0).toSecondsOfDay() は 3600 を返します。

toNanosOfDay(time: Time)

整数

時刻をナノ秒に変換します。

例

time(1, 0, 0).toNanosOfDay() は 3600000000000 を返します。

text(time: Time)

テキスト

Time 値をテキスト表現に変換します。

例

hour(time(10, 15, 00)) は、10:15:00 を返します。

text(time: Time, pattern: Text)

テキスト

Time 値を、指定したパターンに一致するテキスト表現に変換します。

例

text(time(10, 15, 00), "hh:m a") は 10:15 AM を返します。

text(time: Time, pattern: Text, locale: Text)

テキスト

Time 値を、指定したパターンとロケールに一致するテキスト表現に変換します。

例

text(time(10, 15, 00), "hh:m a", "de-DE") は 10:15 vorm を返します。

変換関数. 変換関数は、あるタイプから別のタイプへ値を変換します。オペランドの値が、結果タイプの値に変換可能な値を表さない場合、変換が失敗することがあります。

関数

結果タイプ

ampersandEncode(text: Text)

テキスト

テキストをアンバンサンド エンコードします。

例

ampersandEncode("&") は &amp; を返します。

ampersandDecode(text: Text)

テキスト

テキストをアンバンサンド デコードします。

例

ampersandDecode("&gt;") は > を返します。

base64Encode(binary: Binary)

テキスト

MIME (RFC 2045) 用の Base64 転送エンコードを使用する Base64 エンコード。

例

binary.base64Encode()。ここで、binary はバイナリ値を持つ変数です。

base64Decode(text: Text)

バイナリ

MIME (RFC 2045) 用の Base64 転送エンコードを使用する Base64 デコード。

例

base64Decode("SGVsbG8=").text("UTF8") は Hello を返します。

boolean(text: Boolean)

ブール値

テキストは「true」または「false」のいずれかに一致する必要があります。

例

boolean(false:Boolean) は false を返します。

integer(Number)

整数

数値は 1.0 などの整数値である必要があります。

integer(Text)

整数

テキストは、"42" などの整数のテキスト表現である必要があります。

number(Integer)

数値

Number(17) は 17.0 を返します。

number(Text)

数値

テキストは、"17.7" などの数字のテキスト表現である必要があります。

text(Integer)

テキスト

text(Number)

テキスト

text(Boolean)

テキスト

text(binary: Binary, charsetName: Text)

テキスト

テキストの二進表現をテキスト タイプの値に変換します。UTF8 などの文字セットを引数として指定します。

binary(text: Text, charsetName: Text)

バイナリ

テキスト値をバイナリ値に変換します。UTF8 などの文字セットを引数として指定します。

例

"Hello".binary("UTF8").text("UTF8") は Hello を返します。ここで、 "Hello".binary("UTF8") は UTF8 文字エンコードを使用してエンコードされたバイナリ値に評価されます。例のようにバイナリ値がテキストに変換される場合、バイナリ値は同じ文字エンコード (この場合は UTF8) を使用してエンコードする必要があります。

toJSON()

パスワード以外のあらゆるタイプの値を、JSON オブジェクトとしてフォーマットされたテキスト値に変換します。パスワード タイプ属性を含むレコード タイプは JSON に変換できません。

変換された値の例
  • 5 は "5" となります

  • 1.2 は "1.2" となります

  • true は "true" となります

  • "Hello" は "\"Hello\"" となります

  • バイナリ値は、バイナリ値の Base 64 エンコードになります

  • レコード値、R(a = 5, b = true, t = "Hello") は "{\"a\":5,\"b\":true,\"t\":\"Hello\"" となります

ワークフロー状態ビューには、引用符の前の逆スラッシュが表示されません。上に示したレコードの値の変換方法は、エクスプレッションに記述する方法です。

toJSON 関数は、[1,2,3] のような配列を生成することはありせん。ロボットで JSON 値を使用する場合は、文字列を連結することによりリストを作成できます。このようにすると、ロボットからベーシック エンジン ロボットに値を返すことができます。

詳細については、JSON の使用を参照してください。

次の表は、変換関数の一覧と説明です。これらは、text(2) などの直接関数呼び出しと 2.text() などのメソッド関数呼び出しという 2 とおりの記述が可能です。最初のバリアントでは関数は直接呼び出されますが、2 番目のバリアントではエクスプレッション モードでエクスプレッションを記述する場合に、自動テキスト入力を使用できます。詳細については、後述のエクスプレッション モードを参照してください。

例
関数

以下の結果に評価

ampersandEncode("<b/>") または "<b/>".ampersandEncode() &lt;b/&gt;
ampersandDecode("&lt;b/&gt;") または "&lt;b/&gt;". ampersandDecode() <b/>
base64Encode(bin) または bin.base64Encode()

bin は "Hello".binary("ASCII") の結果のバイナリ値を保持している変数です

SGVsbG8=
base64Decode("SGVsbG8=").text("UTF8") または "SGVsbG8=".base64Decode().text("UTF8") Hello
  • "true".boolean()
  • "false".boolean()
  • "False".boolean()
  • Boolean true

  • Boolean false

  • 「true」または「false」のいずれにも一致しないため、ConversionIssue 例外をスローします

  • integer(2.0) または 2.0.integer()

  • integer("2") または "2".integer

2
  • number(2) または 2.number()

  • number("2") または "2".number()

2.0
number(".1E10") または ".1E10".number() 1.0E9
"Hello".binary("UTF8").text("UFT8")

ここで "Hello".binary("UTF8") は UTF8 文字エンコードを使用してエンコードされたバイナリ値と評価します。例のようにバイナリ値がテキストに変換される場合、バイナリ値は同じ文字エンコード (この場合は UTF8) を使用してエンコードする必要があります。

Hello
"hello".toJSON() "hello"
17.7.toJSON() 17.7
true.toJSON() TRUE
Company.toJSON()

ここで"Company"はテキストタイプ、整数タイプ、ブールのフィールド タイプを含むレコード タイプの変数です。

次の値のテキスト値:

{"name":"Acme Corp.", "url":"www.acme-corp.com", "revenue":1000000000, "CEO":"Marvin Acme", "fictional":true}

数値の制限

次に示す数値の制限を考慮してください。
整数値
表現できる最大の整数は 1E34-1 です。これは 9 が 34 個並んだ数値です。この数字に対して 1 を加えると、OverflowIssue の例外が発生します。同様に、表現できる最小の整数値は -1E34+1 です。したがって整数値はすべて、-1E34+1 から 1E34-1 (どちらも含む) の範囲内である必要があります。
数値
数値の表現は、小数点以下を含め 34 桁の数を使用する IEEE 754R Decimal128 と、-2147483648~+2147483648 の範囲の指数の表現に一致します。エクスプレッションの評価で範囲外の数値になった場合、OverflowIssue 例外が発生します。

詳細については、数値の制限を参照してください。

次のように、指数で数値を入力することができます。

1.234E5、0.1E-2, 1000.0e42、など。

基本数の後には、任意の E または e および整数の指数が続きます。[データの状態] ビューまたはエクスプレッション エディターに数値が表示される際には、次のルールに従って正規化されます。

  • 他の 10 進数がない場合、小数点の後にゼロが 1 つ表示されます (1.0E12 など)。
  • 指数は、数値が 9 以上の場合にのみ表示されます。つまり、次のようになります。
    • 1.0E8 は 100000000 と表示されますが、1.0E9 は 1.0E9 と表示されます
    • 1.0E-8 は 000000001 と表示されますが、1.0E -9 は 1.0E-9 と表示されます。
  • 数字は最大 34 桁まで表示されます (数字は四捨五入されて最大 34 桁となります)。たとえば、9.999999999999999999999999999999999 という数字はそのまま表示されます。この数字に 9 をもう 1 つ追加すると、10.0 と表示されます。実際には、数値は四捨五入されているため、内部的にも 10.0 として表されます。したがって、数値を一方向に入力しながら別の方法で表示することができるため、10.0 や 0.1E2 など、数値の入力方法に柔軟性を持たせることができます。

また、変換関数 text(Number) も上記のルールに従って記述された数値を返します。

エクスプレッション エディター

エクスプレッション エディターは、ロボットで入力フィールドをクリックした場合、および指定したフィールドがエクスプレッションの入力をサポートしている場合に開く、インタラクティブなエディターです。エディターは 2 つのペインで構成されています。上部のペインはエクスプレッションの入力や編集を行う入力ペインで、下部のペインは結果ペインです。結果ペインには、エクスプレッションの評価結果、エラーメッセージ、またはその両方が表示されます。次のエラーが表示されることがあります:

  • Parse errors: エクスプレッションの構文が不正です。
  • Type errors: エクスプレッションにタイプ エラーがある、または結果が正しいタイプとなっていません。
  • 評価 errors: ゼロによる除算など、エクスプレッションの評価中にエラーが発生しました。

次の例は、x + 1.0 というエクスプレッションです。ここで x は整数タイプの変数であるとします。エクスプレッションには正しいタイプが付けられていますが、結果は整数タイプの変数に割り当てられるものであるため、エクスプレッションの結果タイプは想定外であるというエラー メッセージが表示されます。

デバイス オートメーションのエクスプレッション エディター

右クリックして [値のコピー] を選択すると、エディターの下部ペインからエクスプレッションの結果とエラー メッセージをコピーすることができます。値がレコード タイプの場合、結果はツリーとして表示され、各属性値は個別にコピーできます。パスワードとバイナリ値はコピーできません。

エクスプレッション エディターを閉じるには、エディターの外側をクリックするか、[Esc] を押します。

エディター モード
エディターには、上部ペインの左側にエクスプレッション モードと値モードを切り替えるモード ボタンがあります。上図のエディターは、エクスプレッション モードです。エディターが値モードになっているとき、モード ボタンは空白となります。エディターがエクスプレッション モードのとき、ボタンには等号 (=) が表示されます。キーボード ショートカット [Ctrl-E] を使って、2 つのモードを切り替えることができます。
値モード
値モードでは、入力された値は単にテキスト、ブール値、数値などの値として解釈され、評価は行われません。結果パネルに結果が表示されます。表示できる唯一のエラーは、結果タイプが不正な場合です。バリュー モードのデバイス オートメーション エクスプレッション エディター
エクスプレッション モード

エクスプレッション モードでは、入力ペインに入力したすべての内容がエクスプレッションとして解釈され、構文とタイプのエラーについてチェックを行うことができます。現在のフロー ポイントでエクスプレッションを編集していてエラーがない場合は、評価され、その結果が表示されます。エクスプレッションの状態が常にわかるように、入力の途中で評価が行われます。現在のフロー ポイントにないエクスプレッションを編集する場合は、変数が含まれていないか、値が現在の状態に依存していないか評価されます。

エクスプレッションの評価中に、たとえばゼロによる除算などのエラーが発生した場合、例外の名前と問題を説明するメッセージが結果ペインに表示されます。例外の名前を右クリックし、[値のコピー] を選択してその名前をコピーすることができます。

エクスプレッション エディターでのゼロによる除算エラー

エクスプレッション モードでのテキスト補完は、変数名、フィールド名、関数名の入力に役立ちます。補完ヘルプがあるものを入力すると、テキスト補完ウィンドウが自動的に表示されます。たとえば、変数名の入力を開始し、すでに入力したものから始まる変数がある場合、補完ウィンドウが表示されます。レコード タイプの変数の後でドット (.) を押すと、補完ウィンドウには、レコード タイプのフィールドに対応した補完オプションのリストが表示されます。次の例は、"p" と入力した後の補完ヘルプを示します。

エクスプレッション エディターの補完ヘルプ

シンプル タイプのサブエクスプレッションの後にドット (.) を押すと、最初の引数が同じシンプル タイプを持つ関数に対応する補完オプションのリストが、補完ウィンドウに表示されます。

エクスプレッション エディターの補完ヘルプ

補完リストのオプション間を移動するには、矢印キーまたはマウスを使用します。補完リストでオプションを選択するには、[Enter]、[Tab] を押すか、オプションをダブルクリックします。何も入力せずに補完ウィンドウを開くには、[Ctrl+Space] を押します。補完ウィンドウを閉じるには、ウィンドウの外側をクリックするか、[Esc] を押します。

入力ペインでエクスプレッションの一部が選択され、その選択が適切なサブエクスプレッション (それ自身で評価可能) に相当する場合、このサブエクスプレッションの値が下の図のように結果ペインに表示されます。

選択された部分のあるエクスプレッション

入力ペインで関数の名前を選択すると、この関数の説明が結果ペインに表示されます。