計算と決定
計算と決定は非常によく似ているため、ほぼ同じ方法で編集されます。どちらも式に基づいていますが、2つの大きな違いがあります。第一に、計算は結果が任意の値になりうる式ですが、決定は結果がTRUEまたはFALSEになる必要がある式です。第二に、計算の結果はデータアイテムに格納されますが、決定の結果は格納されません。プロセスフローの方向を決定するためにのみ使用されます。
式はさまざまな方法で作成できます。式エディターに直接入力することも、関数リストまたはデータアイテムリストからアイテムをドラッグアンドドロップして作成することもできます。関数リストには、Blue Prismで使用可能なすべての関数が表示されます。関数を式エディターにドラッグアンドドロップすると、デフォルトの関数テキストが画面に自動的に入力されます。同様に、データアイテムはデータアイテムリストからドラッグでき、データアイテムの名前は式エディターに自動的に入力されます。
関数は、画面の中央にある関数ビルダー領域で構成することもできます。関数は、関数リストから選択されると、その使用方法に関する説明およびそのパラメーターと一緒に関数ビルダーに表示されます。パラメーターに値を指定するには、表示されているフィールドに値を直接入力するか、データアイテムリストからデータアイテムをドラッグします。関数を作成したら、[貼り付け]ボタンを使用してその関数を式エディターに転送できます。
計算では、評価結果が格納されるデータアイテムを指定する必要があります。[結果を保存]フィールドに値を設定するには、データアイテム名を入力するか、右側のリストからデータアイテムをドラッグします。
式が完成したら、エラーがないかチェックする必要があります。これは[プロセスの検証]ボタンをクリックして行うことができます。Blue Prismは式をチェックし、エラーの可能性がある場所をハイライト表示します。
チェックが終わったら、[式をテスト]ボタンを選択して式を評価することもできます。式にデータアイテムが使用されている場合は、新しい式のテストウィザードが表示され、各データアイテムに一時的な値を指定し、式から結果を取得できます。式にデータアイテムが使用されていない場合、評価結果はポップアップメッセージに表示されます。式の一部だけをテストする場合は、式の一部をマウスでドラッグしてハイライトすることで選択できます。式のテストウィザードが表示されると、選択した式の一部のみが使用されます。
式
式は、データアイテム、演算子、関数、定数で構成されます。
データアイテム
データアイテムは名前で参照され、角括弧で囲む必要があります(例:[Account Number])。
演算子
演算子はそれぞれの記号で表されます(例:1 + 2)。
関数
関数はFunctionName(parameter1,parameter2)形式です(例:Mid("Hello", 1, 2))。
ほとんどの関数の構文は一目瞭然です。以下では、より複雑な関数について詳しく説明します。
2つの日付、時間、または日時の差を調べるための推奨される方法は、それらを引き算することです。
たとえば、MakeDate(26,5,1999) – MakeDate(29,5,1968)は時間間隔11319.00:00:00を返します。
時期によって変化する可能性がある不定の時間間隔の差を調べる必要がある場合、DateDiff関数ではいくつかの有用な間隔が使用できます。これらは下のDateAdd関数内の表にリストされています。date2 > date1の場合、返される数は正になります。
年間通算週を使用する場合、戻り値はdate1を含む週の最初の日からdate2を含む週の最初の日までの週数を表します。
間隔2の週日を使用する場合、戻り値は2つの日付の間の完全な暦週の数を表します(たとえば、date1が月曜日の場合、date2までの月曜日の数がカウントされます)。
たとえば、date1が2017年3月2日木曜日でdate2が次の火曜日の2017年3月7日の場合、年間通算週を使用しDateDiff(1, date1, date2)は1を返します。それぞれの暦週の最初の日が1週間離れているためです。
ただし、週日を使用したDateDiff(2, date1, date2)は0を返します。date1とdate2の間に木曜日がないためです。
パラメーター
3つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
目的の戻り値の単位を指定するコード。これらの値については、DateAdd関数で詳しく説明されています。 |
|
比較対象の2つの日付のうちの最初の日付。 |
date2 |
比較対象の2つの日付のうちの2番目の日付。 |
例
29/5/1968から26/5/1999までの週数を計算するには、DateDiff(1, MakeDate(29,5,1968), MakeDate(26,5,1999))を使用します。これは正しく1617を返します。
日付、時間、または日時に間隔を追加するための推奨される方法は、時間間隔を追加することです。
たとえば、MakeDate(26,5,1999) + MakeTimeSpan(3, 0, 0, 0)は29/05/1999になります。
時間の場合、MakeTime(12,30,0) + MakeTimeSpan(0, 1, 5, 3)は13:35:03になります。
時期によって変化する可能性がある不定の時間間隔を追加する必要がある場合、DateAdd関数ではいくつかの有用な間隔を提供します。各タイプの間隔は、以下に示す番号によって表されます。
Interval |
DateAdd |
DateDiff |
---|---|---|
0 | 年 | 年 |
1 | 週 | 年間通算週(暦週) |
2 | (該当なし) | 週日(週7日) |
3 | (該当なし) | 2番目 |
4 | 四半期 | 四半期 |
5 | 月 | 月 |
6 | (該当なし) | 分 |
7 | (該当なし) | 時間 |
8 | (該当なし) | 年間通算日 |
9 | (該当なし) | 日 |
表に示されているように、いくつかの間隔はDateAdd関数には適用できませんが、DateAdd関数とDateDiff関数に同じ番号セットを使用できるように選択されます
たとえば、日付に月数を追加するには、間隔番号5を使用します。26/5/1999に2か月を追加するには、DateAdd(5, 2, MakeDate(26,5,1999))を使用します。これは26/7/1999を正しく返します。
間隔は、間隔の量に負の値を使用して同様の方法で減算されます。つまり、DateAdd(5, -2, MakeDate(26,5,1999))は26/3/1999になります。
DateAdd関数は無効な日付を返しません。たとえば、DateAdd(5,1,MakeDate(31,1,2005))を使用して2005年1月31日に1か月を追加した場合、この関数は(存在しない31/02/2005ではなく)28/2/2005を返します。
この関数は、日付を目的の形式にフォーマットするため、または完全な日付からより小さな情報(曜日など)を抽出するために使用されます。
パラメーター
2つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
テキスト値としてフォーマットされる日付値。 |
|
目的の出力形式を指定するフォーマット文字列。これは、標準の日付形式を示す1つの文字として、またはカスタムの日付形式を示す文字列として入力できます。 |
例
- FormatDate("02-11-2016", "D")は「02 November 2016」を返します。
- FormatDate("02 Nov 2016","d")は「2/11/2016」を返します。
- FormatDate("02-11-2016", "M")は「2 November」を返します。
- FormatDate("02-11-2016", "dddd")は「Wednesday」を返します。
- FormatDate("02/11/2016", "yyyy-MM-dd")は「2016-11-02」を返します。
- FormatDate("02/11/2016", "MMM dd, yyyy")は「Nov 02, 2016」を返します。
フォーマット文字列
- 標準の日時フォーマット文字列の一覧については、https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspxを参照してください。
- カスタムの日時フォーマット文字列を作成する方法の詳細については、https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspxを参照してください。
この関数は、日時を目的の形式にフォーマットするため、または完全な日時からより小さな情報(曜日など)を抽出するために使用されます。
パラメーター
2つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
テキスト値としてフォーマットされる日付値。 |
|
目的の出力形式を指定するフォーマット文字列。これは、標準の日付形式を示す1つの文字として、またはカスタムの日付形式を示す文字列として入力できます。 |
例
- FormatDateTime("02-11-2016 09:23:43", "t")は「09:23」を返します。
- FormatDateTime("02 Nov 2016 09:23:43","F")は「02 November 2016 09:23:43」を返します。
- FormatDateTime("02-11-2016 21:23:43", "h:m tt")は「9:23 PM」を返します。
- FormatDateTime("02-11-2016 21:23:43", "dd/MM/yy HH:m:s")は「02/11/16 21:23:43」を返します。
フォーマット文字列
- 標準の日時フォーマット文字列の一覧については、https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspxを参照してください。
- カスタムの日時フォーマット文字列を作成する方法の詳細については、https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspxを参照してください。
MakeDate(は、数字から日付を作成するために使用されます。
パラメーター
3つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
使用する月の日。これは選択した月に関して有効でなければなりません。月が2(つまり2月)の場合、30は有効な値ではありません。 |
|
目的の月の1から始まるインデックス(たとえば、4は4月に対応します)。13以上の値は指定できません。 |
|
目的の年(2001など)。 |
2桁の年
許容されていた古いプロセスとの互換性を確保するため、MakeDate関数は2桁の年を受け入れ、2029ルールを使用してそれらを解釈します。ただし、この機能を使用しないことを強く推奨します。必ず世紀を含む完全な年を指定してください。別のシステムから年を2桁で取得する場合は、そのシステムで使用されている規則を確認し、データを読み取ったらすぐにそれを適用してください。
例
- MakeDate(21,6,2005)は2005年6月21日の日付を返します。
- MakeDate(21,6,1995)は1995年6月21日の日付を返します。
- MakeDate(5,12,29)は2029年12月5日の日付を返します
- MakeDate(5,12,30)は1930年12月5日の日付を返します
ヒント
現在のロケールに応じてあいまいな値を持つ「02/03/2007」(米国人はおそらくこの日付について英国人とは異なる解釈をします)などの文字列を使用する代わりに、MakeDate関数を使用して新しい日付を作成することを推奨します。
Mid()は、長い文字列(文字のシーケンス)を、その文字列に含まれる短い文字列(部分文字列)に縮小するために使用されます。たとえば、Mid()を使用すると、文字列「Customer Name: John Smith」を部分文字列「John Smith」に縮小できます。
パラメーター
3つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
部分文字列が抽出される大きい文字列。 |
startpoint | 目的の最初の文字の1から始まるインデックス。 |
maxcharacters | 必要な最大文字数。関数の戻り値はこの文字数になります。ただし、大きい文字列が最初に終了する場合、この値は理論上の最大値になります。 |
ヒント
ユーザー指定の最大長が指定された文字列の長さを超える場合、Blue Prismはこの長さを指定された文字列の長さに縮小します。そのため、あまりにも多くの文字を数えるのを避けるために最後の引数に大きい数を指定すると便利なことがよくあります (例:Mid("Customer Name:John Smith", 16, 100))。文字列「John」は、Mid("Customer Name:John Smith",16,4)を使用して取得できます。注意:引数は整数に丸められるため、Mid("abcdefg", 1.2, 1.8)は「ab」に評価されます。
例
Mid("Customer Name:John Smith", 16, 25) – 「John Smith」を返します。
Left()は、長い文字列の最初の数文字を返すために使用されます。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
部分文字列が抽出される大きい文字列。 |
maxcharacters | 必要な最大文字数。関数の戻り値はこの文字数になります。ただし、大きい文字列が最初に終了する場合、この値は理論上の最大値になります。 |
ヒント
maxcharactersの値が文字列内の文字数を超える(またはそれに等しい)場合、この関数は文字列を変更せずに返します。maxcharactersに指定する値は、必要に応じてゼロにする(空の文字列を返します)ことができますが、負の数にすることはできません。
例
Left("Blue Prism empowers business users to achieve more in less time", 10)は「Blue Prism」を返します。
Right()は、Left()とまったく同じように動作しますが、開始文字列ではなく(指定された長さの)終了文字列を返します。
Len()は、文字列内の文字数を返します。たとえば、Len("Blue Prism")は数値10を返します。
Instr()は、長いほうの文字列stringに短いほうの文字列substringが含まれるかどうかをテストします。含まれる場合、Instr()は最初に出現するsubstringが見つかるまでの左からの文字数を返します。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
部分文字列が抽出される大きい文字列。 |
|
長いほうの文字列に検出された短いほうの文字列です。 |
例
Instr("Calculations are much faster with Blue Prism than with an abacus", "are")は14を返します。単語「are」が14番目の文字に最初に出現するからです。
ヒント
stringにsubstringが見つからない場合、Instr()はゼロを返します。したがって、Instr()は、大きいほうの文字列に小さいほうの文字列が存在するかどうかをテストするための便利な方法です(例:Instr("Apples", "Bananas") > 0はFALSEを返します)。
この関数は、選択された日付に特定の日数を追加します。
パラメーター
2つのパラメーターは以下のとおりです。
パラメーター |
説明 |
---|---|
|
日数を追加する日付。 |
|
追加する日数。 |
例
AddDays("01/01/2006", 10)は日付「11/01/2006」を返します。
ヒント
DateAdd()と同様に、有効な日付だけが返されます。たとえば、うるう年では2月28日に1日を追加すると2月29日になりますが、それ以外の年では3月1日になります。
この関数は、選択された日付に特定の月数を追加します。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
日数を追加する日付。 |
|
追加する月数。 |
例
AddMonths("01/01/2006", 10)は日付「01/11/2006」を返します。
ヒント
DateAdd()と同様に、有効な日付だけが返されます。たとえば、AddMonths("31/01/2005",1)を使用して2005年1月31日に1か月を追加すると、「28/2/2005」が返されます(「31/02/2005」は存在しない日付であるため、返されません)。
この関数は、標準化されたUTC日付の時刻形式を日時データアイテムとして返します。
ヒント
今日の日付を知りたい場合は、代わりにToday()関数を使用します。詳細については、こちらのナレッジベースの記事を参照してください。
この関数は、数値をテキストフォーマットで表します。これは、通貨を扱うとき、つまり1のような数字が「1.00」として表現されることが多いときに便利です。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
四捨五入する数です。 |
|
必要な小数点以下最大桁数。 |
例
- DecPad(1.296,2)はテキスト「1.30」を返します。
- DecPad(1.1111,2)はテキスト「1.11」を返します。
ヒント
自然表現の小数点以下桁数が多すぎる場合は、適切な小数点以下桁数が削除され、数値が適切な精度に四捨五入されます。
この関数は、数値を指定された小数点以下桁数に切り捨てます。返される値のデータ型は数値です。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
四捨五入する数です。 |
|
必要な小数点以下最大桁数。 |
例
- RndDn(9.19996,3)は数値9.199を返します
- RndDn(9.1345,2)は数値9.13を返します
- RndDn(3.14159,10は3.14159を返します(数値は変更されません)。
ヒント
数値がすでに目的の精度レベル内にある場合、その数値は変更されず、特には再フォーマットされません(DecPad関数を使用する場合と同様)。Round関数とRndUp関数も参照してください。
この関数は、数値を指定された小数点以下桁数に切り上げます。RndDn()関数と同様に動作します。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
四捨五入する数です。 |
|
必要な小数点以下最大桁数。 |
例
- RndUp(9.19996,3)は数値9.200を返します。
- RndUp(9.1345,2)は数値9.14を返します。
- RndUp(3.14159,10)は3.14159を返します(数値は変更されません)。
ヒント
数値がすでに目的の精度レベル内にある場合、その数値は変更されず、特には再フォーマットされません(DecPad関数を使用する場合と同様)。Round関数とRndDn関数も参照してください。
この関数は、数値を指定された小数点以下桁数の最も近い数値に四捨五入します。
パラメーター
2つのパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
四捨五入する数です。 |
|
必要な小数点以下最大桁数。 |
例
- Round(9.1345,2)は数値9.13を返します
- Round(9.19996,3)は数値9.200を返します
- Round(3.14159,10)は3.14159を返します(数値は変更されません)。
ヒント
数値がすでに目的の精度レベル内にある場合、その数値は変更されず、特には再フォーマットされません(DecPad関数を使用する場合と同様)。RndUp関数とRndDn関数も参照してください。
この関数は、指定された数値の平方根を返します。数値の平方根は、それ自体を乗じたときに元の数になる一意の正数です。
例
- Sqrt(100)は数値10を返します。
- Sqrt(2)は1.4142135623731を返します。
数値の対数を指定された基数値に評価します。値がvで基数がbの場合、基数bに対するvの対数Log(v, b)は、「bx = vを満たす値xは何か」という問いに回答します。
例
- 103 = 1000であるため、Log(1000, 10) = 3です。
- 2-2 = 1/4であるため、Log(1/4, 2) = -2です。
この関数は、指定されたテキストの大文字表現を返します。指定されたテキスト内ですでに大文字である文字は変更されませんが、大文字ではない文字は変更されます。
例
- Upper("software")はテキスト「SOFTWARE」を返します。
- Upper("aBcDeFg"はテキスト「ABCDEFG」を返します。
ヒント
Lower()関数も参照してください。
この関数は、指定されたテキストの小文字表現を返します。指定されたテキスト内ですでに小文字である文字は変更されませんが、小文字ではない文字は変更されます。
例
- Lower("SOFTWARE")はテキスト「software」を返します。
- Lower("aBcDeFg")はテキスト「abcdefg」を返します。
ヒント
Upper()関数も参照してください。
定数
テキストとパスワードは、"This is my text"のように、テキストを引用符で囲むことで表されます。
数値は、5や1.2などの簡単な数値を入力することによって表されます。
フラグは、TrueまたはFalseで表されます。
日付は、dd/mm/yyyy形式のテキスト表現として表されます(例:「12/03/2004」)。
キャスティング
キャスティングは、あるデータ型のエンティティが、別のデータ型が想定されている式に配置されたときに発生します。
キャスティングの例として、テキスト関数に数値を指定する場合があります。
Len(100)
100は自動的に「100」テキストにキャストされます。100は3文字なので、Length関数は「3」を返します。