新規投稿
フォローする

ステータス更新時に複数の条件設定を行い、フィールドを初期化したい。

皆様宜しくお願いいたします。

現在作成中のアプリは、レコードをループさせるようプロセス管理をしています。

プロセス⑤からプロセス①に戻った際に、入力されたフィールドの初期化をしているのですが、【初期化】というチェックボックスにチェックが入力された状態でプロセス⑤から①に移動した時のみ【完了月】のチェックボックスを初期化したいのですが、どのようにスクリプトを書いていいのか迷走しております。

下記、作成中のスクリプトになります。

(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;
});
})();

アドバイスいただけるとありがたいです。

何卒宜しくお願いいたします!

0

4件のコメント

Avatar
yana

今現在の修正スクリプトです。

(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;
});
})();

0
Avatar
Shotaro Matsuda

yanaさん、こんにちは。プロジェクト・アスノートの松田です。

ぱっと気づいた点としては、変数checkには、すでにチェックボックスフィールドのvalue

が定義されています。if文の条件で、check.value.lengthとなっていますね。

 

ブラウザのデベロッパーツールで、各変数が自分の想定どおりの値になっているか等、

一時停止させながらチェックしていくといいと思います。

 

あと、フィールドの初期化の方法についても、フィールドタイプがわからないため、こちらでは確認できませんが、全て = []とされていますが、これでいいか要確認です。

Shotaro Matsudaにより編集されました
0
Avatar
yana

松田様

こめんとありがとうございます。

デベロッパーツールで値の確認をしてみましたが、問題なく取得しているようにみえます。

そもそも構文の書き方が悪いのでしょうか。

チェックボックスでのフィールド初期化については[]で確認がとれています。

0
Avatar
yana

松田様

度々失礼いたします。

下記構文に書き換えて、問題なく動作いたしました。

アドバイスいただき、ありがとうございました。

(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;
});
})();

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