【AppSheet】エラー対処法:(1)Key column in Schema ‘_Schema’ cannot use an app formula. The app formula will be removed.(2)_Schema’ cannot use an EditableIf constraint if it has an App Formula. The EditableIf constraint will be ignored.(3)cannot be readonly if its Formula field has an expression. The readonly flag has been disabled.

app sheet アップシート appsheet-prograshi(プロぐらし)-kv AppSheet
記事内に広告が含まれていることがあります。

AppSheetを使っていると次のようなエラーに出くわすことがあります。

エラー1

Key column ‘カラム名’ in Schema ‘テーブル名_Schema’ cannot use an app formula. The app formula will be removed.

エラー2

Column Name ‘カラム名’ in Schema ‘テーブル名_Schema’ cannot use an EditableIf constraint if it has an App Formula. The EditableIf constraint will be ignored.

エラー3

Column ‘カラム名’ in Table ‘テーブル名_Schema’ cannot be readonly if its Formula field has an expression. The readonly flag has been disabled.

それぞれ関連性が高いエラーです。

ここではこの3つのエラーそれぞれの発生原因と対処法についてまとめています。


エラー1の原因と対処法:cannot use an app formula. The app formula will be removed.

エラー1の原因

まず1つ目のエラーは下記になります。

エラー1

Key column ‘カラム名’ in Schema ‘テーブル名_Schema’ cannot use an app formula. The app formula will be removed.


これは、KEYに設定したカラムにApp Formula(FORMILA)を設定することはできません。数式を削除しますという内容です。

おそらくこのエラーで一番困るのはせっかくFORMULAに記述した数式が跡形もなく消え去ることです。長い数式をようやく書いてTESTもクリアしていざ保存したら数式が消えた、、、ということが発生します。悲しいですね。。


エラー1の対処法

対処法1:別のカラムをKEYにする

対処法は簡単です。FORMULAにどうしても数式を記述して自動計算させたい場合は、そのカラムのKEY?のチェックを外します。


対処法2:数式をINITAL VALUEに記述する

どうしてもこのカラムをKEYとして使いたいという場合は、数式を「INITAL VALUE」に記述します。

こうすることで、KEYに設定したカラムでも数式を適用することができます。


KEYに設定したカラムでINITAL VALUEに数式を設定した場合、基本的にはEDITABLEのチェックは外したいはずです。その時は下記記事を参考にしてください。

(参考)【AppSheet】EDITABLE?のチェックが外せないときの対処法|SAVEすると勝手にチェックが入る



エラー2の原因と対処法:cannot use an EditableIf constraint if it has an App Formula. The EditableIf constraint will be ignored.

エラー2の原因

もう一つのエラーは以下のようなものです。

エラー2

Column Name ‘カラム名’ in Schema ‘テーブル名_Schema’ cannot use an EditableIf constraint if it has an App Formula. The EditableIf constraint will be ignored.


これは、App Formula(FORMULA)が設定してある場合、EditableIf制約を使用できません。 EditableIf制約は無視されます。という内容です。

EditableIfとは、EDITABLE?に条件式を設定した状態のことです。(単にチェックを付けたり外した利した状態とは異なります)

例えば、以下のように「Editable?」に数式をセットすると、Editable_ifを設定した状態となります。



エラー2の対処法

エラー2のApp Formula(FORMULA)が設定してある場合、EditableIf制約を使用できません。 EditableIf制約は無視されます。というエラーが発生したときは、

Editable?に設定してある数式を削除します。これでエラーは無くなります

ただし、これだと自分の思った通りにEditable?を制御することはできません。

そんなときは、「FORMULA」の数式を「INITAL VALUE」に記述します。こうすることで、EDITABLE?に数式を適用することができるようになります。


エラー3の原因と対処法:cannot be readonly if its Formula field has an expression. The readonly flag has been disabled.

エラー3の原因

もう一つのエラーは以下のようなものです。

エラー3

Column ‘カラム名’ in Table ‘テーブル名_Schema’ cannot be readonly if its Formula field has an expression. The readonly flag has been disabled.


内容は、FORMULAフィールドに数式が含まれている場合、読み取り専用にできません。読み取り専用フラグを無効にします。というものです。


バーチャルカラムでない通常のカラムのFORMULA(App formula)に数式を記述して、EDITABLE?のチェックを外した場合に発生します。


エラー3の対処法

このエラーが発生したときは、Editable?のチェックが付いたままの状態にします。

ただし、これだと自分の思った通りにEditable?を制御することはできません。

そんなときは、「FORMULA」の数式を「INITAL VALUE」に記述します。こうすることで、EDITABLE?の数式で「false」を適用し編集不可にすることができるようになります。



FORMULA(App formula)とEDITABLE?の関係

通常、FORMULA(App formula)の数式を記述すると、強制的にEDITABLE?の値が制御されます。

ここで、ポイントとしては、通常のカラムの場合はEDITABLE?は必須(常に編集可能)であり、バーチャルカラムの場合は必ずチェックが外れる(常に編集不可)になるということです。

参考

FORMULA(App formula)とバーチャルカラムの関係についてもう少し詳しく知りたい方は下記をご参考ください。

【AppSheet】FORMULAとINITIAL VALUEの違いは何か?いつどう使えばいいかを実例で解説|バーチャルカラム(Virtual Column)とは何か?


タイトルとURLをコピーしました