皆様宜しくお願いいたします。
現在作成中のアプリは、レコードをループさせるようプロセス管理をしています。
プロセス⑤からプロセス①に戻った際に、入力されたフィールドの初期化をしているのですが、【初期化】というチェックボックスにチェックが入力された状態でプロセス⑤から①に移動した時のみ【完了月】のチェックボックスを初期化したいのですが、どのようにスクリプトを書いていいのか迷走しております。
下記、作成中のスクリプトになります。
(function() {
“use strict”;
kintone.events.on(‘app.record.detail.process.proceed’, function(event) {
//変更後のステータス
var next_Status = event.nextStatus.value;
//変更後のステータスが「工程開始」の場合
if (next_Status === “工程開始”) {
event.record[“カラー印刷部数”].value = [];
event.record[“白黒印刷部数”].value = [];
}
return event;
});
})();
アドバイスいただけるとありがたいです。
何卒宜しくお願いいたします!
今現在の修正スクリプトです。
(function() {
“use strict”;
var events = [
“app.record.detail.show”,
“app.record.index.edit.change.初期化”,
“app.record.create.change.初期化”,
“app.record.edit.change.初期化”
];
kintone.events.on(‘app.record.detail.process.proceed’, function(event) {
//変更後のステータス
var nextStatus = event.nextStatus.value;
var check = record[“初期化”][“value”];
//変更後のステータスが「未処理」の場合
if (nextStatus === “A” && check.value.length === 0) {
//フィールドコード「数値」の値を書き変える
event.record[“A入力”].value = [];
event.record[“past”].value = [];
event.record[“チェックボックス”].value = [];
}else{
event.record[“A入力”].value = [];
event.record[“past”].value = [];
event.record[“チェックボックス”].value = [];
event.record[“処理完了月”].value = [];
}
return event;
});
})();
yanaさん、こんにちは。プロジェクト・アスノートの松田です。
ぱっと気づいた点としては、変数checkには、すでにチェックボックスフィールドのvalue
が定義されています。if文の条件で、check.value.lengthとなっていますね。
ブラウザのデベロッパーツールで、各変数が自分の想定どおりの値になっているか等、
一時停止させながらチェックしていくといいと思います。
あと、フィールドの初期化の方法についても、フィールドタイプがわからないため、こちらでは確認できませんが、全て = []とされていますが、これでいいか要確認です。
松田様
こめんとありがとうございます。
デベロッパーツールで値の確認をしてみましたが、問題なく取得しているようにみえます。
そもそも構文の書き方が悪いのでしょうか。
チェックボックスでのフィールド初期化については[]で確認がとれています。
松田様
度々失礼いたします。
下記構文に書き換えて、問題なく動作いたしました。
アドバイスいただき、ありがとうございました。
(function() {
“use strict”;
var test_value = [‘app.record.detail.process.proceed’];
kintone.events.on(test_value,function(event) {
//変更後のステータス
var nextStatus = event.nextStatus.value;
var record = event[‘record’];
//変更後のステータスが「未処理」の場合
if (nextStatus === “A” && record[‘処理完了月’].value.indexOf(“12月”) !== -1) {
//フィールドコード「数値」の値を書き変える
event.record[“A入力”].value = [];
//event.record[“past”].value = [];
event.record[“チェックボックス”].value = [];
}else if(nextStatus === “A” && record[‘処理完了月’].value.indexOf(“12月”) !== 0) {
event.record[“A入力”].value = [];
//event.record[“past”].value = [];
event.record[“チェックボックス”].value = [];
event.record[“処理完了月”].value = [];
}
return event;
});
})();