【解決済み】イベントハンドラー登録のタイミングについて

初心者の中の初心者です。

イベントハンドラーの登録を適切に行えと警告が出るのですが

何がいけないのかまったく分かりません。

原因と修正方法をご教授願います。

 

 

コードの載せ方さえもわからないのでベタで貼り付けさせてもらいます。

以下、コード。

(function() {
“use strict”;

kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’], function(e) {
// テーブル一行目の値を取得
var table = e.record.進捗管理テーブル.value;
// 「入力者」の値を取得
var user = table[0].value[‘入力者’].value;

// 「進捗管理テーブル」の行数が1行、且つ「入力者」に値が入っていないとき
if(table.length === 1 && user.length === 0) {

//ログインユーザ情報を取得する
var userInfo = kintone.getLoginUser();

e.record.進捗管理テーブル.value[0].value[‘入力者’].value = [{
“code”: userInfo.code,
“name”: userInfo.name
}];
}

return e;
});

kintone.events.on([‘app.record.create.change.進捗管理テーブル’,‘app.record.edit.change.進捗管理テーブル’], function(e) {

//ログインユーザ情報を取得する
var user = kintone.getLoginUser();

// 「change.進捗管理テーブル」イベント時に、変更があった行番号を取得する関数(拾い物)
function getRowIndex(event, table_field) {
var row = event.changes.row;
var tbl = event.record[table_field].value;
for (var i=0; i<tbl.length; i++) {
if (row == tbl[i]) { //same reference
return i;
}
}
return -1;
}

// 変更があった行番号を取得
var rowNomber = getRowIndex(e, ‘進捗管理テーブル’);

// 以下、エラー回避処理
// 変更があった処理番号がある場合は、以下の処理
if(rowNomber > -1) {
e.record.進捗管理テーブル.value[rowNomber].value[‘入力者’].value = [{
“code”: user.code,
“name”: user.name
}];

return e;

} else {
// 変更があった処理番号がない場合は、以下の処理
e.record.進捗管理テーブル.value[0].value[‘入力者’].value = [{
“code”: user.code,
“name”: user.name
}];

return e;

}
});
})();

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

こちらで簡単なアプリを作って動かしてみましたが、特にエラーは出ませんでした。

 

カスタマイズの内容を見て思ったのですが、

テーブルの行が追加されたときに、新規追加された行のユーザー選択フィールドに

ログインユーザーを設定する。

ということをやろうとしているのであれば、ユーザー選択フィールドの初期値にログインユーザーを指定

するという方法もあります(kintone標準機能)。

 

Shotaro Matsudaさん

ご回答ありがとうございます。

エラーは出ませんでしたか…

他のJavaScriptとの兼ね合いで警告が出ているのでしょうか。

 

>ユーザー選択フィールドの初期値にログインユーザーを指定するという方法

一先ず、ご教授頂いた方法を用いようと思います。

ありがとうございました!