プルダウンの内容によって保存不可にしたい。

お世話になります。
現在稼働中のアプリでサブテーブル内にプルダウンがあり、プルダウン内から値をセットしていない場合、保存を不可とするスクリプトを作成しました。
本スクリプトを同じアプリをコピーしたものであるアプリA、アプリBに投入したところ、
アプリBでのみプルダウンの値をセットしていなくても、稀に保存が実行できてしまう事象が発生しております。
こちら、下記スクリプトにて上記のような例外事象が発生してしまうタイミングがあるか、ご確認いただいてもよろしいでしょうか。

ステータス:プルダウンフィールド
契約済、未契約:プルダウンメニュー

'use strict';

kintone.events.on('app.record.edit.submit', function(event) {

	const record = event.record;

		for (let i = 0; i < record.商品情報.value.length; i++) {
			if(record.商品情報.value[i].value.ステータス.value =='契約済'){
			}
			else if(record.商品情報.value[i].value.ステータス.value =='未契約'){
			}
			else{
				event.error = "ステータスを入力してください。";
				break;
			}
		}

return event;
});

原因なんでしょうね!(゜-゜)

もし、ドロップダウンに、契約済と未契約しか値が設定されていないのでしたら、
ドロップダウンを「必須」にしてみてはいかがでしょうか:eyes:!?!?

jurippeさん

ご返信ありがとうございます。
必須にしたいのはやまやまなのですが、レコード作成タイミングでは兼ね合い上、
ステータスの入力をしてほしくないこともあり、
必須項目に設定できない状態です。

ちょっと試してみようかなと思ってアプリを作ろうとしたんですが、

「ステータス」というフィールドコード作れなくないですか??
※「ステータス」にはプロセス管理のステータスが割り当てられているので・・・:eyes:
もしかして、フィールド名が商品情報とかステータスになっていて、フィールドコードは別の値になっていたり・・・ないでしょうか:eyes:

フィールドコードを、以下の文字列にすることはできません。

  • ステータス
  • 作業者
  • カテゴリー
  • ROOT
  • not
「いいね!」 1

jurippeさん

返信ありがとうございます。
社内で使用しているものになるため、
フィールドコードの値は仮のものとなっております。
そのため実際に使用しているフィールドコードは
別名になっていることをご理解ください。

私は仕事でもないのに、調査のために環境を作ろうとして
「フィールドコードは違うの使っています」と後から言われて「ご理解ください」はちょっとかなしいです:cry:

さて、まれに保存できるというときの状況がわからないとなんとも言えないところだと思いますが、
考えられるとしたら、

  • 他にもコードが入ってて先にreturn event;してる説
  • 他のプラグインが邪魔をしている説
  • 実は値が入っていて見間違えただけ説

とかでしょうか。

それでもない場合は、デバッグをしつこくやるのが良いと思います。
if文の何も入ってない{}のなかにdebugger;とかを仕込んで、
「まれ」なタイミングが出るまで開発者ツール開きっぱなしで何度も実行して、
止まるタイミングで何が起こってるのか調べるとかでしょうか・・・:thinking:

jurippeさん

ご返信ありがとうございます。
事象について検討がつかないなので、回答いただきました通り
デバッグにてイレギュラーの発生するタイミングを検証してみようかと思います。

僕もこのようなどうみても間違ってないのに偶におこる、みたいなことは体験したことありますが…
実はモバイルでアクセスしてる人がいるからでした、というオチがありまして…
今回それにあたらないかもしれませんが、経験としてありましたので共有まで :hugs:

「いいね!」 2

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。