フィールド値変更イベントで、他のアプリのフィールドの値を書き換えたい

syu-hei さん

このスクリプトはレポートタイプ番号を設定したときに、
レポートタイプマスタからサンプル文章を持ってくるような感じでしょうか。
自分のところで作ってみて試してみました。

1.detail(詳細画面)では以下のコードでサンプル文章の取得ができました。

(function() {
"use strict";
/*詳細画面*/
var events = [
'app.record.edit.change.reptypeno',
'app.record.create.change.reptypeno'
];
kintone.events.on(events, function(event) {
var record = event.record;
var rep_no = record['reptypeno'].value;
var params = {app: 4,
query: 'reptypeno = "' + rep_no + '"'};

// REST API発行
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params).then(function(resp) {
var set_text = "";
// フィールドを取得
var record = kintone.app.record.get();

// データ更新
if(resp.records.length === 0){
set_text = "該当サンプルなし";
}else{
var resp_record = resp.records[0]; //reptypenoに重複が無く1件のみ取得が前提
set_text = resp_record['サンプル文章'].value;
}
record.record['本文'].value = set_text;
kintone.app.record.set(record);

}, function(resp) {
event.error = 'レコードの取得に失敗しました';
kintone.app.record.set(record);
});
});
})();

2.index(一覧画面)ではうまく行きませんでした。

これはindex.changeイベントの特性のようで、
・changeイベントはPromise(async/awaitも同様)はつかえない
→これはreturnの代わりにkintone.app.record.set()なら回避可能
・index.changeイベントはreturnで設定する
の二つによって不可能な構造のようです。

詳細画面で取得するような導線(手順書)にするのは如何でしょう。