追加画面において、画面の表示時や、条件「レコードを保存する直前(削除時は除く)」「レコードを保存・削除する直前」など、追加画面でレコードを保存するまでに、フィールドの値を取得しようとした場合は取得する事ができず、
また条件「フィールド値が特定の値ならば」や「ステータスが特定の値ならば」などの追加条件でフィールドの値を用いようとすると次のようなエラーが出ます。
●条件「フィールド値が特定の値ならば」
指定されたフィールド [ ※※※ ] が見つかりません
●条件「ステータスが特定の値ならば」
Customine カスタマイズ内でエラーが発生しました。
レコード追加画面では使用できないカスタマイズが設定されています。
また、やること「ステータスを変更する(現在のレコード)」を追加画面でレコードが保存されるまでに使った時は、次のようなエラーが発生します。
●やること「ステータスを変更する(現在のレコード)」
レコードIDがないため処理できません。
これらの現象が起きる理由、およびエラーの回避方法について説明します。
理由
これらの現象はカスタマイズで、追加画面でかつレコード保存前に、レコードの保存以降から利用できるようになるフィールドを使っている事が原因です。
追加画面で以下のフィールドの値を取得しようとしても取得することができず、また条件(例えば「フィールド値が特定の値ならば」や「ステータスが特定の値ならば」)でフィールドの値を用いて条件分岐させようとするとエラーになります。
レコード番号
作成者
作成日時
更新者
更新日時
ステータス
作業者
また、やること「ステータスを変更する(現在のレコード)」も追加画面でのレコード保存前にはレコードIDも無く、ステータスも無い状態のため正しく動かず、「レコードIDがないため処理できません。」エラーが発生します。
回避方法
追加画面でのレコード保存後に処理を行うよう、条件「レコードを保存した直後(削除後は除く)」を起点としたカスタマイズとすることで、上記現象が発生しなくなります。
また、そもそも追加画面のレコード保存時にその処理が動く必要が無いのであれば、
条件で「追加画面・編集画面を表示した時」を使っているのを「編集画面を表示した時」に変更し、追加画面を表示した時が対象とならないようにする
追加条件「現在の画面が追加画面ならば」を反転させた「現在の画面が追加画面でないならば」を使い、動作しないようにする
といった方法もあります。
具体的な回避例
それでは、具体的なアプリとカスタマイズ例を元に回避例を見ていきましょう。
エラーが発生するアプリの例
次のようなアプリを設定しました。
ID:文字列(1行)フィールド
ステータス設定用:チェックボックスフィールド ※値は「処理中から始める」1つのみ
また、プロセス管理を有効にしておきます。
その上で、次のようなカスタマイズを設定し
追加画面で「処理中から始める」をチェックし、レコードを保存してみましょう。
すると、次のようなダイアログが表示され、
このような詳細画面表示となります。
エラーが発生しないように変更したアプリの例
元々あったアクションの条件の1つ目を「レコードを保存した直後(削除後は除く)」に変更します。
また、レコードを保存した後にレコードを修正する動きになるため、やること「画面をリロードする」を行うアクションを追加します。
このカスタマイズでレコードを追加し、「処理中から始める」をチェックし保存した場合、エラーダイアログは発生せず、次のような表示となります。
ステータスも「処理中」となっている事を確認できました。
上のようなエラーを発生させている設定箇所を見つけるには
エラーが発生しているが、発生箇所がどのアクションかわからない場合、画面上で設定を見てチェックする方法が簡単ではありますが、全てを画面上からチェックするのは難しいかもしれません。
そういった時は メイン画面の見かた にも記載がありますが、「メインメニュー」の「ドキュメントを書き出し」機能でカスタマイズの設定をExcelに出力でき、出力したExcelを検索することで効率よくカスタマイズのチェックをする事ができます。
その上で、
追加画面を表示した際に、条件「フィールド値が特定の値ならば」や「ステータスが特定の値ならば」で、次のフィールドを取り扱っていないか
レコード番号
作成者
作成日時
更新者
更新日時
ステータス
作業者
追加画面の保存前に、やること「ステータスを変更する(現在のレコード)」が動くようになっていないか
をチェックしていただくと、エラーが解決できるかもしれません。
ぜひ、お試しください。
また試してみてご不明な点などございましたら、お気軽にチャットでご質問ください。