新規投稿
フォローする

フィールドに過去日を入れて申請できないようにする

 

こんにちは。

プロセス管理を有効にしたアプリで、

フィールド「予定日」に過去日を入れて申請できないようにしたいと思います。

 

下記のようにして「ステータス」を取得して使えないかと思ったのですが、

『var stetasu = record['ステータス']['value'];』の箇所でエラーになってしまいます。

(Uncaught TypeError: Cannot read property 'value' of undefined 保存しないと参照できない?)

 

根本がわかっていないような気がするのですが、

どなたかアドバイスくださいませんでしょうか。

---

(function() {
"use strict";

kintone.events.on([
"app.record.create.submit",
"app.record.edit.submit"
], function(event) {

var record = event.record;

//予定日が本日日付より前ならエラー
var today = new Date();
var yoteibi = new Date(record['予定日']['value']);
var stetasu = record['ステータス']['value'];
console.log(stetasu);
if((stetasu!="承認") && (yoteibi-today<0)){
record['予定日']['error'] = '予定日は明日以降にしてください';
}
//var today2 = today.getFullYear() + "-" + ("00" + (today.getMonth()+1)).slice(-2) + "-"+ ("00" + (today.getDate())).slice(-2);

//種類:定時以外を選んだら、開始時刻・終了時刻・理由を埋めないといけない
if(record['種類']['value']!='定時'){

if (!record['開始時刻']['value']) {
record['開始時刻']['error'] = '開始時刻を入力してください';
}
if (!record['終了時刻']['value']) {
record['終了時刻']['error'] = '終了時刻を入力してください';
}
if (!record['定時以外である理由']['value']) {
record['定時以外である理由']['error'] = '定時以外である理由を入力してください';
}

}
return event;
});
})();

---

 

0

2件のコメント

Avatar
あさが

こんにちは。

以下にトラブル時の調査方法がまとまっているので、この辺りを見られてはいかがでしょうか?

kintoneカスタマイズの基本的なデバッグの流れを身につけよう

Uncaught TypeErrorの例も載っているので参考になるかと思います。

0
Avatar
Kanegon

ありがとうございます。

おかげさまで、ChromeのConsoleでレコード内容を参照する方法がわかり、

プロセスを開始する前のレコードでは、「ステータス」自体がないことが原因であることがわかりました。

やりたい内容は、値チェックをsubmit時ではなく、

app.record.detail.process.proceed時点に変えたことで解決しました。

---

(function() {
"use strict";

kintone.events.on([
"app.record.detail.process.proceed"
], function(event) {

var record = event.record;
var nStatus = event.nextStatus.value;
//申請時点で予定日が昨日以前ならエラー止め
if (nStatus === "申請中"){
var today = new Date();
var yoteibi = new Date(record['予定日']['value']);
var nissu =(yoteibi-today)/86400000;
if((nissu<-1)){
event.error = '予定日はと本日以降にしてください';
}
}

return event;
});

})();

 

1
サインインしてコメントを残してください。