関数や演算子を使ってフィールドの値を変更する

レコード追加画面や編集画面を開いたり、フィールドを編集したりしたタイミングで、フィールドの値を変更することが出来ます。作成はアプリ設定画面の「アクション」タブから行います。

アクションを設定する

  1. ボタントリガーもしくは値変更トリガーを選択し、追加ボタンを押下します。

  2. アクション名を入力し、「関数 / 計算式」欄から実行結果をセットするフィールドの選択とセットする値(固定文字列、関数、計算式)の入力を行います。

    固定文字列を入力する場合は、ダブルクォーテーションで囲って下さい。

    次のフィールドには値をセット出来ません。

    • addressフィールドの緯度経度に指定したnumberフィールド
    • file, canvas, id, autonumber, creator, createdtime, modifier, modifiedtime, box, spacer, table

    利用可能な関数については、ページ下部の「利用可能な関数一覧」をご確認下さい。

    アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

    複数の処理が設定された場合、それらの処理は設定順の上位から実行されます。

    さらに、テーブル内フィールドを実行の対象とした場合は、対象テーブルの先頭行から順に処理を行い、次の処理へと進みます。

  3. 設定が完了したら、「OK」ボタンを押下し、アプリ設定画面の「アプリを更新」ボタンを押下します。

    関連ページ:

    アクションの作成

アクションを実行するレコードの条件を設定する

アクションはレコードの状態により、その実行可否を判断させることが出来ます。アクションを実行するレコードの条件を設定するには、漏斗ボタンを押下します。

アクションの実行が可能なユーザーを設定する

アクションはユーザー毎に、その実行可否を判断させることが出来ます。アクションの実行が可能なユーザーを設定するには、ユーザーボタンを押下します。

アクションを実行する

値変更トリガーアクションの場合は、レコード追加画面や編集画面を開いたり、フィールドを編集したりしたタイミングで、アクションが実行されます。

ボタントリガーアクションの場合は、レコード追加画面や編集画面、読み取り専用一覧形式ビューに配置されたボタンを押下することで、アクションが実行されます。

ボタントリガーと値変更トリガーの双方で「関数 / 計算式」が指定出来るようになっていますが、ボタントリガーと値変更トリガーの両方に同じフィールドに対する処理がある場合は、値変更トリガーの結果で上書きされます。

利用可能な関数一覧

計算式で利用できる演算子と関数を説明します。

演算子:
演算子 説明
+ 数値の足し算を行います。
- 数値の引き算を行います。
* 数値の掛け算を行います。
/ 数値の割り算を行います。
** 数値のべき算を行います。
= 文字列または数値の値が等しければ真、等しくなければ偽を返します。
!= 「=」の比較結果を反転させたものになります。
< 左の値が右の値より小さければ真、右の値以上であれば偽を返します。
<= 左の値が右の値以下であれば真、右の値より大きければ偽を返します。
> 左の値が右の値より大きければ真、右の値以下であれば偽を返します。
>= 左の値が右の値以上であれば真、右の値より小さければ偽を返します。
関数:
関数 説明
FORMAT

数字を千の位毎にグループ化してフォーマットします。

入力書式:

FORMAT(numberフィールドのフィールドIDまたは計算結果, 小数点以下の桁数)

小数点以下の桁数を省略すると整数部分のみをフォーマットします。

FORMAT

指定された日付書式に従って変換した文字列を返します。

計算式を指定した場合は、その計算により生成された日付を変換した文字列を返します。

入力書式:

FORMAT(フィールドIDまたは計算結果, 書式, 計算式)

書式と計算式は、ダブルクォーテーションで囲って下さい。

書式:

書式 説明
d 日。2桁の数字。
m 月。2桁の数字。
Y 年。4桁以下の数字。
y 年。2桁の数字。
H 時。24時間単位。
h 時。12時間単位。
i 分。2桁の数字。
s 秒。2桁の数字。

計算式:

説明
n day n日加算します。nにマイナス数値を指定した場合は、減算します。
n month n月加算します。nにマイナス数値を指定した場合は、減算します。
n year n年加算します。nにマイナス数値を指定した場合は、減算します。
n hour n時加算します。nにマイナス数値を指定した場合は、減算します。
n minute n分加算します。nにマイナス数値を指定した場合は、減算します。
n second n秒加算します。nにマイナス数値を指定した場合は、減算します。
first-of-year 年初を返します。
first-of-month 月初を返します。

計算式はカンマで区切ることで、複雑な計算をすることが出来ます。

フィールドIDが「field_1_」のdateフィールドに入力された日付の月末を算出する場合は以下のようにします。

FORMAT(field_1_, "Y-m-d", "first-of-month, 1 month, -1 day")

DIFF

指定された期間の経過日数を、指定された日付書式に従って変換した文字列を返します。

入力書式:

DIFF(開始日, 終了日, 書式)

「開始日」と「終了日」はフィールドIDまたは計算結果になります。

書式は、ダブルクォーテーションで囲って下さい。

書式:

書式 説明
D 経過月以降の残日数
FD 経過期間の総日数
M 経過年以降の残月数
FM 経過期間の総月数
Y 経過年数
TODAY

今日の日付を「Y-m-d」形式の文字列で返します。

入力書式:

TODAY()

WEEK

曜日を返します。

入力書式:

WEEK(フィールドIDまたは計算結果)

日曜日
月曜日
火曜日
水曜日
木曜日
金曜日
土曜日
CEIL

数値を切り上げます。

入力書式:

CEIL(フィールドIDまたは計算結果)

FLOOR

数値を切り捨てます。

入力書式:

FLOOR(フィールドIDまたは計算結果)

ROUND

数値を四捨五入します。

入力書式:

ROUND(フィールドIDまたは計算結果)

SUM

テーブル化したnumberフィールドの合計値を返します。

入力書式:

SUM(フィールドID)

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

SUMIF

指定された検索クエリによって絞り込まれたテーブル行のnumberフィールドの合計値を返します。

入力書式:

SUMIF(フィールドID, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_5_」のdropdownフィールドの値が"OK"であるテーブル行のフィールドIDが「field_8_」のnumberフィールドの合計値を返したい場合は以下のようにします。

SUMIF(field_8_, "field_5_ in ('OK')")

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

AVG

テーブル化したnumberフィールドの平均値を返します。

入力書式:

AVG(フィールドID)

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

AVGIF

指定された検索クエリによって絞り込まれたテーブル行のnumberフィールドの平均値を返します。

入力書式:

AVGIF(フィールドID, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_5_」のdropdownフィールドの値が"OK"であるテーブル行のフィールドIDが「field_8_」のnumberフィールドの平均値を返したい場合は以下のようにします。

AVGIF(field_8_, "field_5_ in ('OK')")

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

MAX

テーブル化したフィールドの最大値を返します。

入力書式:

MAX(フィールドID)

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

MAXIF

指定された検索クエリによって絞り込まれたテーブル行のフィールドの最大値を返します。

入力書式:

MAXIF(フィールドID, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_5_」のdropdownフィールドの値が"OK"であるテーブル行のフィールドIDが「field_8_」のnumberフィールドの最大値を返したい場合は以下のようにします。

MAXIF(field_8_, "field_5_ in ('OK')")

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

MIN

テーブル化したフィールドの最小値を返します。

入力書式:

MIN(フィールドID)

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

MINIF

指定された検索クエリによって絞り込まれたテーブル行のフィールドの最小値を返します。

入力書式:

MINIF(フィールドID, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_5_」のdropdownフィールドの値が"OK"であるテーブル行のフィールドIDが「field_8_」のnumberフィールドの最小値を返したい場合は以下のようにします。

MINIF(field_8_, "field_5_ in ('OK')")

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

COUNT

テーブルの行数を返します。

入力書式:

COUNT(テーブルフィールドのフィールドID)

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

COUNTIF

指定された検索クエリによって絞り込まれたテーブル行の行数を返します。

入力書式:

COUNTIF(テーブルフィールドのフィールドID, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_3_」のテーブルに属する、フィールドIDが「field_5_」のdropdownフィールドの値が"OK"である行数を返したい場合は以下のようにします。

COUNTIF(field_3_, "field_5_ in ('OK')")

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

LOOP

指定したテーブルの各行に対して、値の生成(固定文字列、関数、計算式)を繰り返し、その結果を新しい複数行の文字列として返します。

入力書式:

LOOP(テーブルフィールドのフィールドID, /*計算式*/)

フィールドIDが「field_3_」のテーブルの各行に対して、フィールドIDが「field_6_」の文字列と「field_7_」の数値を使って文字列を生成する場合は以下のようにします。

LOOP(field_3_, /*"Item: "+field_6_+"\\nQuantity: "+STR(field_7_)+"\\n"*/)

»
Item: Orange
Quantity: 10

Item: Apple
Quantity: 15

Item: Kiwi
Quantity: 5

計算式は「/*」「*/」で囲うようにして下さい。

計算式の中で改行する場合は、改行位置に「\\n」を挿入して下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが適用範囲となります。

LOOPIF

指定された検索クエリによって絞り込まれたテーブルの各行に対して、値の生成(固定文字列、関数、計算式)を繰り返し、その結果を新しい複数行の文字列として返します。

入力書式:

LOOPIF(テーブルフィールドのフィールドID, /*計算式*/, 検索クエリ)

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_3_」のテーブルに属する、フィールドIDが「field_5_」のdropdownフィールドの値が"OK"である行に対して、フィールドIDが「field_6_」の文字列と「field_7_」の数値を使って文字列を生成する場合は以下のようにします。

LOOPIF(field_3_, /*"Item: "+field_6_+"\\nQuantity: "+STR(field_7_)+"\\n"*/, "field_5_ in ('OK')")

»
Item: Orange
Quantity: 10

Item: Apple
Quantity: 15

計算式は「/*」「*/」で囲うようにして下さい。

計算式の中で改行する場合は、改行位置に「\\n」を挿入して下さい。

検索クエリは、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合であっても、検索の対象はテーブル内の全ての行となります。

CONCAT

文字列または数値を結合します。

入力書式:

CONCAT(値1, 値2, 値3, ...)

「値(n)」はフィールドIDまたは計算結果または固定文字列になります。

LEN

文字列の長さを返します。

入力書式:

LEN(フィールドIDまたは計算結果または固定文字列)

checkboxフィールド、userフィールド、departmentフィールド、groupフィールドを対象とした場合は、その個数を返します。

LEFT

文字列の先頭から指定された数の文字を返します。

入力書式:

LEFT(フィールドIDまたは計算結果または固定文字列, 文字数)

RIGHT

文字列の末尾から指定された文字数の文字を返します。

入力書式:

RIGHT(フィールドIDまたは計算結果または固定文字列, 文字数)

MID

文字列の指定された位置から指定された文字数の文字を返します。

入力書式:

MID(フィールドIDまたは計算結果または固定文字列, 開始位置, 文字数)

LINE

複数行の文字列から指定された行の文字列を返します。

入力書式:

LINE(フィールドIDまたは計算結果または固定文字列, 行位置)

LPAD

文字列の先頭から埋め込み文字を加え、桁揃えした文字列を返します。

入力書式:

LPAD(フィールドIDまたは計算結果または固定文字列, 文字数, 埋め込み文字)

RPAD

文字列の末尾から埋め込み文字を加え、桁揃えした文字列を返します。

入力書式:

RPAD(フィールドIDまたは計算結果または固定文字列, 文字数, 埋め込み文字)

REPLACE

文字列に含まれる指定された文字を、別の文字に置き換えます。

入力書式:

REPLACE(フィールドIDまたは計算結果または固定文字列, 検索文字列, 置換文字列)

検索文字列や置換文字列に固定文字列を入力する場合は、ダブルクォーテーションで囲って下さい。

LOOKUP_DEPT

指定されたユーザーが所属する組織を返します。

入力書式:

LOOKUP_DEPT(フィールドIDまたは計算結果)

第1引数に指定可能なフィールドはuserフィールド、creatorフィールド、modifierフィールドのみとなります。

LOOKUP_DEPT_USER

指定された組織に所属するユーザーを返します。

検索クエリを指定することで、条件に合致するユーザーのみを返すことも出来ます。

入力書式:

LOOKUP_DEPT_USER(フィールドIDまたは計算結果, 検索クエリ)

検索クエリで使用するユーザーアプリのフィールドIDについては各フィールドの項目名と一緒です。

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_1_」のdepartmentフィールドに入力された組織に所属するユーザーの中で、authorityフィールドが「Manager」のユーザーのみを返したい場合は以下のようにします。

LOOKUP_DEPT_USER(field_1_, "authority in ('Manager')")

第1引数に指定可能なフィールドはdepartmentフィールドのみです。

検索クエリを入力する場合は、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

LOOKUP_GROUP

指定されたユーザーが所属するグループを返します。

入力書式:

LOOKUP_GROUP(フィールドIDまたは計算結果)

第1引数に指定可能なフィールドはuserフィールド、creatorフィールド、modifierフィールドのみとなります。

LOOKUP_GROUP_USER

指定されたグループに所属するユーザーを返します。

検索クエリを指定することで、条件に合致するユーザーのみを返すことも出来ます。

入力書式:

LOOKUP_GROUP_USER(フィールドIDまたは計算結果, 検索クエリ)

検索クエリで使用するユーザーアプリのフィールドIDについては各フィールドの項目名と一緒です。

検索クエリの記述方法については、以下を参照して下さい。

関連ページ:

クエリ文字列を使用してレコードを取得する

フィールドIDが「field_1_」のgroupフィールドに入力されたグループに所属するユーザーの中で、authorityフィールドが「Manager」のユーザーのみを返したい場合は以下のようにします。

LOOKUP_GROUP_USER(field_1_, "authority in ('Manager')")

第1引数に指定可能なフィールドはgroupフィールドのみです。

検索クエリを入力する場合は、ダブルクォーテーションで囲い、さらにダブルクォーテーションで囲った中で文字列を指定する場合は、シングルクオーテーションで囲って下さい。

ASC

文字列内の全角カタカナ英数字を半角カタカナ英数字に変換します。

入力書式:

ASC(フィールドIDまたは計算結果)

NUM

文字列を数値に変換します。

入力書式:

NUM(フィールドIDまたは計算結果または固定文字列)

空値の場合は「0」を返します。

STR

数値を文字列に変換します。

入力書式:

STR(フィールドIDまたは計算結果または数値)

IF

条件を指定し、その条件の真偽によって異なった値を返します。

入力書式:

IF(条件式, 真の場合, 偽の場合)

AND

指定した条件が全て真となる時は真を返し、そうでなければ偽を返します。

入力書式:

AND(条件式1, 条件式2, ...)

OR

指定した条件のいずれかが真となる時は真を返し、そうでなければ偽を返します。

入力書式:

OR(条件式1, 条件式2, ...)

CONTAIN

指定した部分文字列が検索対象の文字列に含まれている時は真を返し、そうでなければ偽を返します。

入力書式:

CONTAIN(検索対象のフィールドIDまたは計算結果または固定文字列, 検索文字列)

checkboxフィールドを検索対象とした場合は、検索文字列は部分文字列ではなく、完全一致する文字列である必要があります。

userフィールド、departmentフィールド、groupフィールドを検索対象とした場合は、検索文字列はそれぞれのIDである必要があります。

検索文字列に固定文字列を入力する場合は、ダブルクォーテーションで囲って下さい。

関数の引数に固定文字列を入力する場合は、ダブルクォーテーションで囲って下さい。