単一行フィールドの値有無の判定について

お世話になります。

単一行フィールドの値が空の場合のみ、
自動採番を行うようにしたくif文での判定処理を記載しています。
ただ、残念ながら常に値ありと判定されてしまうようです。
もし解決柵をご存知の方いましたら、ご教示いただけますと幸いです。

よろしくお願いいたします。

/*
* 自動採番のサンプルプログラム
* Copyright (c) 2015 Cybozu
*
* Licensed under the MIT License
*/

(function() {

“use strict”;
// レコード追加、編集画面の表示前処理
var eventsShow = [‘app.record.create.show’, ‘app.record.edit.show’, ‘app.record.index.edit.show’];
kintone.events.on(eventsShow, function(event) {
var record = event.record;

//if ((‘app.record.create.show’).indexOf(event.type) >= 0) {
// record[‘申し込みNo’][‘value’] = “”;
//}
record[‘申し込みNo’][‘disabled’] = true;

return event;

});

if ([‘record’][‘申し込みNo’][‘value’] === ‘’ || [‘record’][‘申し込みNo’][‘value’] === undefined) {
// }else{
// レコード追加画面の保存前処理
// var record1 = kintone.app.record.get();
// if (record1[“record”][“申し込みNo”][“value”]){
// }else{

kintone.events.on(‘app.record.create.submit’, function(event) {
var recNo = 1;
var record = event.record;
var m = moment();

// URLを設定する
var appUrl = kintone.api.url(‘/k/v1/records’, true) +
‘?app=’ + kintone.app.getId() + ‘&query=’ + encodeURI(‘limit 1&fields[0]=$id’);

var xmlHttp = new XMLHttpRequest();
// 同期リクエストを行う
xmlHttp.open(“GET”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xmlHttp.send(null);

if (xmlHttp.status === 200) {
if (window.JSON) {
var obj = JSON.parse(xmlHttp.responseText);
if (obj.records.length > 0) {
try {
recNo = parseInt(obj.records[0][‘$id’].value, 10) + 1;
} catch(e) {
event.error = ‘申し込みNoが取得できません。’;
}
}
//自動採番を園IDに設定する

var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var autoEstNo = (‘M_’ + year + month + day + ‘_’ + (‘0000’ + recNo).slice(-4));
//var autoEstNo = (recNo);
alert(“申し込みNo " + autoEstNo + " を登録します”);
record[‘申し込みNo’][‘value’] = autoEstNo;
} else {
event.error = xmlHttp.statusText;
}
} else {
record[‘申し込みNo’].error = ‘申し込みNoが取得できません。’;
}
return event;
});
}
})();

當山 さん

下記2つについて再考してみてください。

 

■if条件文の位置について

kintone.events.on(‘app.record.create.submit’, function(event) { ~~~ })

↑の処理の中で採番を行っているので、この処理の中にif条件文を追加する必要があります。

 

■if条件文の中身について

if ([‘record’][‘申し込みNo’][‘value’] === ‘’ || [‘record’][‘申し込みNo’][‘value’] === undefined) { ~~~ } 

↑のように条件文を書いていますが、オブジェクトを扱う場合は

record[‘申込みNo’][‘value’]

のように、最初は[’ ']で囲う必要はありません。