背景・実現したいこと
一括承認でステータスを変更した際にフィールドに承認情報(承認者・時間)を表示したい
●現状できていること
①レコードの詳細からステータスを決裁完了に変更→②ステータス変更者(決裁者)・ステータスの変更時間(決裁時間)をフィールドに反映→③プリントクリエイターと紐づけて決裁印を押印
●やりたいこと
①レコードの詳細画面又は、一覧画面の一括承認からステータスを決裁完了に変更→②③は同様
詳細画面から変更すれば、フィールドに反映されるのですが、javascriptで作った一括承認ボタンからステータスを更新すると、フィールドに反映されないため、ご教示いただきたいです。
利用したソースコード
①レコードの詳細からステータスを決裁完了に変更した時に、ステータス変更者(決裁者)・ステータスの変更時間(決裁時間)をフィールドに反映
(function () {
‘use strict’;
var date = luxon.DateTime.local();
// レコード登録/編集画面の表示時
var eventsCreateShow = [‘app.record.create.show’, ‘app.record.edit.show’, ‘app.record.index.edit.show’];
kintone.events.on(eventsCreateShow, function(event){
var record = event.record;
// 編集不可フィールドの設定
record[‘決裁完了’][‘disabled’] = true;
record[‘決裁者’][‘disabled’] = true;
return event;
});
// プロセス管理アクション実行時
kintone.events.on(‘app.record.detail.process.proceed’, function(event){
var record = event.record;
var nStatus = event.nextStatus.value;
// ステータスが「完了」の場合、作業完了日と担当者を設定する
if (nStatus === ‘決裁完了’){
var user = kintone.getLoginUser();
record[‘決裁完了’][‘value’] = date.toISO();
record[‘決裁者’][‘value’][0] = {code : user.code};
}
return event;
});
})();
②一括承認ボタンの作成
**(function() {
"use strict";
kintone.events.on("app.record.index.show", function(event) {
var appId = kintone.app.getId();
if (event.viewId !== ●●●●●●●) {
return;
}
if ($('.header-contents').length !== 0) {
return;
}
var el = kintone.app.getHeaderSpaceElement();
var headerDiv = $("\<div\>\</div\>", {
class: "header-contents"
});
//make a button for approval.
var balusButton = $("\<button\>\</button\>", {
class: "approval-button"
}).
html("一括承認!").
click(function() {
if (event.records.length \> 0) {
window.swal({
title: "本当に全て承認して大丈夫ですか?",
text: "表示されているレコードを全て承認します",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "決裁済",
cancelButtonText: "やっぱりやめる",
closeOnConfirm: false },
function() {
var records = [];
for (var h = 0; h \< event.records.length; h++) {
var obj = {};
obj["id"] = event.records[h].$id.value;
obj["action"] = "決裁済";
records.push(obj);
}
var requestObj = {
"app": appId,
"records": records
};
kintone.api(kintone.api.url("/k/v1/records/status", true), "PUT", requestObj, function() {
window.swal({title: "承認に成功しました!",
text: "お疲れ様でした。",
type: "success"}, function() {
location.reload();
});
});
});
} else {
window.swal({
title: "申請中のレコードがありません",
type: "warning"});
}
});
headerDiv.append(balusButton);
headerDiv.append($("\<br /\>"));
headerDiv.appendTo(el);
});
})();**