1.演算子の説明
「計算式の例」で使用している値は以下の通りです。
• [a] = 1 [b] = 2 [c] = 3 [str] = "string" [checkbox] = ["1", "2", "3"]
演算子 |
説明 |
計算式の例 |
計算結果の例 |
+ |
数値の足し算を行います |
[a] + [b] |
3 |
+ |
文字列または数値を結合します |
[a] + [b] + [string] |
3string |
"" |
文字列定数を定義する |
文字列 |
文字列 |
() |
優先順位記号 |
[a] + ([b] + [string]) |
12string |
- |
数値の引き算を行います |
[b] - [a] |
1 |
* |
数値の掛け算を行います |
[b] * [c] |
6 |
/ |
数値の割り算を行います |
[c] / [b] |
1.5 |
^ |
数値のべき算を行います |
[b]^[c] |
8 |
== |
値が等しければ真 |
[a] == [b] |
FALSE |
!= |
値が等しければ偽 |
[a] != [b] |
TRUE |
> |
左の値が右の値より大きければ真 |
[a] + [b] > [c] |
FALSE |
>= |
左の値が右の値以上であれば真 |
[a] + [b] >= [c] |
TRUE |
< |
左の値が右の値より小さければ真 |
[a] + [b] < [c] |
FALSE |
<= |
左の値が右の値以下であれば真 |
[a] + [b] <= [c] |
TRUE |
OR |
左の値または右の値が真の場合は真 |
[a] > [b] OR [b] < [c] |
TRUE |
AND |
左の値と右の値が真の場合は真 |
[a] > [b] AND [b] < [c] |
FALSE |
IN |
左の値が右の値に含まれている場合は真 |
1 IN [checkbox] array("1") IN [checkbox]. ”1” IN “123” |
TRUE |
CONTAINS |
右の値が左の値に含まれている場合は真 |
[checkbox] CONTAINS “1” [checkbox]CONTAINS array(”1”) ”123”CONTAINS “1” |
TRUE |
CRLF |
改行の場合、 |
“会社名”+CRLF+[textArea] |
会社名 One人事株式会社 |
1.1 演算子の優先順位
-
演算子の優先順位を、優先度の高い順に記載します。
▫︎ 「()」 (カッコは一番優先) ▫︎ 「^ 」(べき算)
「* , /」(掛け算と割り算)
「+ , - 」(足し算と引き算)
「==, !=, <>, <, >, <=, >=, IN 」(比較演算子)
「OR, AND 」
2.関数の説明
「計算式の例」で使用されている値は以下の通りです。
- [a] = 1 [b] = 2 [c] = 3 [str] = "string" [checkbox] = ["1", "2", "3"]
- [date1] = "2021-5-21" [date2] = "2021-5-20"
- [tableCol1] = [1,2,3]
関数
|
パラメータ
|
説明
|
計算式の例
|
計算結果の例
|
min
|
1~2147483647
|
最小値を取得します
|
min([a],[b],[c])
|
1
|
max
|
1~2147483647
|
最大値を取得します
|
max([a],[b],[c])
|
3
|
sum
|
1~2147483647
|
合計を取得する
|
sum([a],[b],[c])
|
6
|
avg
|
1~2147483647
|
平均を取得する
|
avg([a],[b],[c])
|
2
|
random
|
0
|
乱数を取得する
|
random()
|
15.5
|
round
|
2
|
丸められた値を取得します
|
round(5.256, 2)
|
5.26
|
length
|
1
|
長さを取得します
|
length([checkbox]) + length("123")
|
6
|
if
|
3
|
パラメータ1が真の場合、パラメータ2を取得します。 |
if("4" IN [checkbox], [a], [b])
|
2
|
array
|
1~2147483647
|
配列を取得する
|
array("1", "2") IN [checkbox]
|
TRUE
|
sumTable
|
1
|
テーブル内にあるフィールドの値の和を計算できます
|
sumTable([tableCol1])
|
6
|
avgTable
|
1
|
テーブル内にあるフィールドの値の平均を計算できます
|
avgTable([tableCol1])
|
2
|
now
|
0
|
現在の時刻を取得する
|
now()
|
2021/8/11
|
getMemberInfo
|
2
|
Memberの属性を取得する特殊関数の説明をご覧ください
|
getMemberInfo(self(),
|
テスト推進室
|
getObjectiveInfo
|
2
|
Objectiveの属性を取得する特殊関数の説明をご覧ください
|
getObjectiveInfo([目標部品],
|
title -> 目標title kpiProgress -> 子目標のウェイト
|
getDateDiff
|
2〜4
|
時間の差を計算
|
getDateDiff("2000-01-01", "2021-10-06")
|
21
|
dateDiff
|
1〜3
|
今からの時差
|
dateDiff("2000-01-01", "yearAndHalf")
|
21.5
|
addDate
|
1~3
|
時差を取得してからの時間 特別な使用法については、 |
addDate([開始時間]], 5)
|
2021/10/15
|
lookup
|
2~3
|
データシートからデータを取得する
|
lookup(”基本情報”,”年齢”)
|
35
|
lookupAssessment
|
2~3
|
人事評価シートからデータを取得する
|
lookupAssessment(”MBO評価”,”一次評価”)
|
80
|
self |
0 |
特殊関数の説明をご覧ください |
||
role |
0~1 |
特殊関数の説明をご覧ください |
||
member |
1 |
特殊関数の説明をご覧ください |
||
org |
0~1 |
特殊関数の説明をご覧ください |
||
orgLeader |
1 |
特殊関数の説明をご覧ください |
||
superior |
0~1 |
特殊関数の説明をご覧ください |
2.2 特殊関数の説明
※パラメータは関数名の隣の( )内の内容です。
- self()
-
現在の利用者の「社員情報(自分自身の情報)」を取得します。
-
パラメータなし
-
被評価者のデフォルト値の設定に使用できます。
-
使用例:
利用者が「太郎」の場合
- フォームに記入する人は" + self() + "です" = フォームに記入する人は太郎です
⇒self() が使用者名の「太郎」になります。
-
例図
-
- loginMember()
- パラメータなし
- 現在ログインしているユーザーのメンバーを取得する
- アカウントがメンバーにバインドされていない場合は、空を取得する
- MemberSelectのデフォルト値の計算に使用できます
- その他の使用例:
"フォームに記入する人は" + loginMember() + "です"
に対する演算結果はフォームに記入する人は太郎です
loginMember() == "太郎"
に対する演算結果はtrue
- role(⇒
-
役割情報を取得します。
- パラメータがない場合、自分自身の役割情報が取得されます。
- パラメータがある場合、対応する人の役割情報が取得されます。
-
パラメータ:なし、または1つ
-
使用例:
- role() == "admin" = false
⇒自身が管理者ユーザの場合はtrueになります。
- role() == role(self()) = true
⇒パラメータなしの「role()」とパラメータに自分自身を取得する
「self()」を入れた「role(self())」結果は同じものとなります。
※関数のパラメータに他の関数を入れることも可能です。
- role("adminMemberId") == "admin" = true
⇒"adminMemberId"は管理者のメンバーのIDを指します。
”admin”は「管理者」の権限を指します。
- role([”MemberSelectName”]) == "マネージャー" = true
⇒”MemberSelectName”は任意の社員名となります。
この例では該当社員がマネージャーなので、比較結果が「true」となります。
- "役割は" + role([”MemberSelectName”]) = 役割はマネージャー
⇒role(任意の社員名)ではその社員の役割情報が表示されます。
-
例図:
-
- member()
-
対応する社員の社員情報を取得します。
-
パラメータ:1つ、個人番号、名前、電子メールアドレスのうち1つ
-
社員選択のデフォルト値の設定に使用できます。
-
使用例:
- "フォームに記入する人は" + member("taro@example.com") + "です"
= フォームに記入する人は太郎です
⇒上記はメールアドレスで指定する例です。関数の部分が「名前」となります。
- member("UNIT001") == "太郎" = true
⇒個人番号「UNIT001」に該当する名前が「太郎」でないなら「false」になります。
- MemberSelect.defaultFormula = member("太郎")
⇒MemberSelectに対応する初期値は太郎です 。
※「defaultFormula」は初期値を設定する式です。
-
例図:
-
- org()
- 対応する組織情報を取得します。
- パラメータ:1つ、組織の名前、またはコード
- 使用例:
- "現在の組織は" + org("__UNIT_TEST1") = 現在の組織はテスト推進室
- org("__UNIT_TEST1") == "テスト推進室" = true
- 例図:
- orgLeader()
-
対応する組織の所属長の社員情報を取得します。
-
パラメータ:1つ、組織の名前、またはコード
-
MemberSelectのデフォルト値の計算に使用できます。
-
使用例:
- org("__UNIT_TEST1") + "の担当者は" + orgLeader("__UNIT_TEST1")
= テスト推進室の担当者はスマート マネージャー
- orgLeader("__UNIT_TEST1") == "スマート マネージャー" = true
- MemberSelect.defaultFormula = orgLeader("テスト推進室")、MemberSelectに対応する初期値はスマート マネージャーです
-
例図:
-
- superior()
-
対応する社員の上長を取得します。
-
パラメータ:なし、または1つ
-
MemberSelectのデフォルト値の計算に使用できます
-
使用例:
- "私の上司は" + superior() = 私の上司はスマート マネージャー
- superior(member("UNIT001")) == superior() = true
- superior(orgLeader("__UNIT_TEST1")) == superior() = false
- superior([MemberSelectName]) == superior() = false
- MemberSelect.defaultFormula = superior([MemberSelectName])、MemberSelectに対応する初期値は[MemberSelectName]対応するの上長です。
-
例図:
-
- getMemberInfo()
- パラメータ:2つ
- 最初のパラメータ:メンバー関数またはMemberSelect
- 2番目のパラメーター: 属性名
- name: 氏名
- primaryOrgName: 所属
- kana: フリガナ
- employeeCode: 社員番号
- mail: メール
- メンバーの属性を取得する
- 使用例:
- getMemberInfo(self(), "employeeCode") = UT001
- getMemberInfo([対象者], "primaryOrgName") = テスト推進室
- 例図
- パラメータ:2つ
- getObjectiveInfo()
- パラメータ:2つ
- 最初のパラメータ:目標部品名
- 2番目のパラメーター: 目標属性名
- title:目標名
- weight:ウェイト
- kpiProgress:子目標のウェイトによって、計算された進捗
- 目標の属性を取得する
- 使用例:
- getObjectiveInfo([目標部品], "title")
- getObjectiveInfo([目標部品], "kpiProgress")
- 図例:
- パラメータ:2つ
- getDateDiff()
- パラメータ:2〜4
- 最初のパラメータ:計算される時点(日付コンポーネントまたは日付文字列)
- 2番目のパラメーター: 計算が必要な終了時点(日付コンポーネントまたは日付文字列)
- 3番目のパラメーター: 計算タイプ(文字列)
- year: 年差(デフォルト値)
- 例: getDateDiff("2000-01-01", "2021-10-06") = 21
- yearDecimal: 年差(double)
- 例: getDateDiff("2000-01-01", "2021-10-06", "yearDecimal", 2) = 21.76
- yearAndHalf:年差(半分以上が0.5を構成します)
- 例: getDateDiff("2000-01-01", "2021-10-06", "yearAndHalf") = 21.5
- 例: getDateDiff("2000-08-01", "2021-10-06", "yearAndHalf") = 21
- yearAndMonth:年と月の値(最終結果は文字列です)
- 例: getDateDiff("2000-01-01", "2021-10-06", "yearAndMonth") = 21年10ヶ月
- yearAndAll:年月日値(最終結果は文字列です)
- 例: getDateDiff("2000-01-01", "2021-10-06", "yearAndAll") = 21年10ヶ月5日
- month:月差
- 例: getDateDiff("2000-01-01", "2021-10-06", "month") = 261
- monthAndDay:月差と日差(最終結果は文字列です)
- 例: getDateDiff("2000-01-01", "2021-10-06", "monthAndDay") = 261ヶ月5日
- day:日差
- 例: getDateDiff("2000-01-01", "2021-10-06", "day") = 3137
- year: 年差(デフォルト値)
- 4番目のパラメーター: mode
-
round
: 四捨五入 (default)- 例:
getDateDiff("2021-10", "2021-12", "month")
= 3 - 例:
getDateDiff("2021-10", "2021-12-05", "month")
= 2 - 例:
getDateDiff("2021-10", "2021-12-26", "month")
= 3
- 例:
-
roundUp:
- 例:
getDateDiff("2021-10", "2021-12-05", "month", "roundUp")
= 3
- 例:
-
roundDown:
- 例:
getDateDiff("2021-10", "2021-12-26", "month", "roundDown")
= 2
- 例:
-
- 例図:
- パラメータ:2〜4
- dateDiff()
-
パラメータ:1〜3
- 最初のパラメータ:計算される時点(日付コンポーネントまたは日付文字列)
- 2番目のパラメーター: 計算タイプ(文字列)
- year: 年差(デフォルト値)
- yearDecimal: 年差(double)
- 例:
dateDiff("2000-01-01", "yearDecimal", 2)
=21.76
- 例:
- yearAndHalf:年差(半分以上が0.5を構成します)
- 例:
dateDiff("2000-01-01", "yearAndHalf")
=21.5
- 例:
dateDiff("2000-08-01", "yearAndHalf")
=21
- 例:
- yearAndMonth:年と月の値(最終結果は文字列です)
- 例:
dateDiff("2000-01-01", "yearAndMonth")
=21年10ヶ月
- 例:
- yearAndAll:年月日値(最終結果は文字列です)
- 例:
dateDiff("2000-01-01", "yearAndAll")
=21年10ヶ月5日
- 例:
- month:月差
- 例:
dateDiff("2000-01-01", "month")
=261
- 例:
- monthAndDay:月差と日差(最終結果は文字列です)
- 例:
dateDiff("2000-01-01", "monthAndDay")
=261ヶ月5日
- 例:
- day:日差
- 例:
dateDiff("2000-01-01", "day")
=3137
- 例:
- 3番目のパラメーター: 小数点以下数桁を保持する(number)
- 3番目のパラメーター: mode
round
: 四捨五入 (default) 例:dateDiff("2021-10", "month")
= 3、今は2021-12-16
roundUp
: 例:dateDiff("2021-10", "month", "roundUp")
= 3、今は2021-12-16
roundDown
: 例:dateDiff("2021-10", "month", "roundDown")
= 2、今は2021-12-16
-
例図:
-
- addDate()
- パラメータ:1〜3
-
最初のパラメータ:計算される時点(日付コンポーネントまたは日付文字列)
-
2番目のパラメーター: 時差(正の数と負の数の両方で問題ありません)
例:
addDate("2000", 10)
=2000-01-11
- 例:
addDate("2000-01-20", -10)
=2000-01-10
- 例:
-
3番目のパラメーター: 計算タイプ(文字列)、デフォルト値はdayです
- year: 年差(デフォルト値)
- 例:
addDate("2000-01-01", 2, "year")
=2002-01-01
- 例:
- month:月差
- 例:
addDate("2000-01-01", 2, "month")
=2000-03-01
- 例:
- day:日差(デフォルト)
- 例:
addDate("2000-01-01", 5, "day")
=2000-01-06
- 例:
addDate("2000-01-01", 5)
=2000-01-06
- 例:
- year: 年差(デフォルト値)
-
- パラメータ:1〜3
- lookup()
- パラメータ:2~3
-
最初のパラメータ:データシートの名前
-
2番目のパラメーター:データシートの部品名
例:人事評価の「MBO評価」の「年齢」項目は被評価者のデータシート「基本情報」の「年齢」を取得します。 (被評価者の「基本情報」の「年齢」のデータは25です)
lookup(”基本情報”,”年齢”) = 25
-
3番目のパラメーター:取得したい対象者の部品名
例:人事評価の「MBO評価」:参加者は「本人」「一次評価者」「二次評価者」
データシート「基本情報」に「年齢」項目があります
MBO評価の「年齢」項目は参加者「一次評価者」の年齢を取得します。(一次評価者の「基本情報」の「年齢」のデータは35です)
lookup(”基本情報”,”年齢”,[一次評価者]) = 35
-
- パラメータ:2~3
- lookupAssessment()
- パラメータ:2〜3
- 最初のパラメータ:人事評価の名前(文字列)
- 2番目のパラメーター: 部品の名前(文字列)
- 例:
lookupAssessment("OKR評価", "評価1")
=80
- 例:
lookupAssessment("MBO評価", "三次評価(合計)")
=70
- 例:
- 3番目のパラメーター: メンバー選択部品またはメンバー関数
- デフォルトでは、現在の人の情報を取得します。3番目のパラメータが存在する場合は、3番目のパラメータに対応する人の情報を取得します。
- 例:
lookupAssessment("OKR評価", "評価1", [一次評価者])
=60
- 例:
lookupAssessment("MBO評価", "三次評価(合計)", member("UNIT001"))
=75
- パラメータ:2〜3
3. 式設定
3.1 すべてのコンポーネント
3.1.1 表示条件(今後実装予定)
-
displayConditionがtrueに設定されている場合に有効になります
-
displayFormulaは表示式です
▫︎一般的な計算式と条件式の両方をサポートしています ▫︎式の結果はブール型である必要があります ▫︎計算エラーの場合はfalse
3.1.2必要条件(今後実装予定)
-
requiredConditionがtrueに設定されている場合に有効になります
-
requiredFormulaは必要条件式です
▫︎一般的な計算式と条件式の両方をサポートしています ▫︎式の結果はブール型である必要があります ▫︎計算エラーの場合はfalse
3.1.3 初期値の計算
-
フォームが初期化された場合にのみ有効
-
defaultConditionがtrueに設定されている場合に有効になります
-
defaultFormulaは初期値の計算式です
▫︎ 一般的な計算式と条件式の両方をサポートしています ▫︎ 計算エラーの場合、元の設定のデフォルト値が使用されます ✤ 計算式計算エラー ✤ 計算結果が正しくチェックされない
3.2 選択肢条件(今後実装予定)
-
セレクターコンポーネントにのみ有効(CheckBox、RadioButton、SingleSelect)
-
optionConditionがtrueに設定されている場合に有効になります
-
optionFormulaは選択肢条件式です
▫︎一般的な計算式と条件式の両方をサポートしています ▫︎式の結果は配列でなければなりません ▫︎計算エラーの場合、空の配列を返す
3.3 自動計算
- 自動計算部品のみ有効(Calculation)
- isJudgeがtrueの場合、それは条件式であり、falseは一般的な計算式です。
- formulaは自動計算式です
- scaleは、最終的な計算結果の小数点以下の桁数を保持します(結果が数値の場合にのみ有効)
- formatは、結果をフォーマットすることです(結果が数値の場合にのみ有効)
3.4 判定式の利用
- 「,」の左側は判定式です:
- 判定式は「true」の場合、「,」の右側の内容を表示します、
- 判定式は「false」の場合、次の行の判断に進む。
例:部品「下期評価点」は110点以上の場合、結果は「S」、100点以上110点未満は「A」、80点以上100点未満は「B」、80点未満は「C」の判定式は:
[下期評価点] >= 110,"S" [下期評価点] >= 100,"A" [下期評価点] >= 80,"B" [下期評価点] < 80,"C"
lookupMaster関数とは:
汎用マスタに登録したデータを人事評価/データシートに自動反映する特殊関数
- lookupMaster()
- パラメータ:1〜2147483647
- 最初のパラメータ:マスターの名前(文字列)
- 2番目のパラメーター: 部品の名前(文字列)
- 3番目のパラメーター:
filterMaster()
の結果
- 例:
lookupMaster("場所", "住所", filterMaster("場所", "郵便番号", 2010014, "丁目", 2))
=東京都狛江市東和泉2丁目7−9
- 結果: フィルタ結果の最初のデータの対応する部品の値
- 例:filterMasterとlookupMaster2つの関数を組み合わせにして併用します。
- パラメータ:1〜2147483647
- ①マニュアルのはじめから作成:汎用マスタのイベント名です。
- ②予算上限額:汎用マスタのイベントに部品の名前です。(戻り値:結果の集合)
- ③マニュアルのはじめから作成:汎用マスタのイベント名です。(①と同じ汎用マスタのイベント名を指定)
- ④役職:汎用マスタのイベントに部品名です。
- ⑤[役職]:役職の値です。(検索条件として値)
- ⑥出張区分:汎用マスタのイベントに部品名です。
- ⑦[出張区分]:出張区分の値です。(検索条件として値)
- ⑧顧客招待区分:汎用マスタのイベントに部品名です。
- ⑨[顧客招待区分]:顧客招待区分の値です。(検索条件として値)
- filterMaster()
- パラメータ:1〜2147483647
- 最初のパラメータ:マスターの名前(文字列)
- 後続のパラメーターはペアで表示する必要があります。ペアのパラメーターの一番目のパラメーターは条件部品の名称及び比較演算子(比較演算子が省略の場合は「=」を付けてる同じ意味)、ペアのパラメーターの二番目のパラメーターは条件として値です。
- 例:
filterMaster("場所", "郵便番号", 2010014, "丁目", 2)
或lookupMaster("場所", "郵便番号 =", 2010014, "丁目 =", 2)
- 例:
filterMaster("おもてなし金額", "費用 <=", 20000, "タイプ !=", "大手")
- 戻り値:結果の集合 注:
filterMaster
関数は単独で使用できなく、lookupMaster
関数と組み合わせて使用する必要があります。
- パラメータ:1〜2147483647