色々やっている内に一括承認が出来ました!
ただ、別の問題が起きていまして、私の作っている交通費精算のプロセスとしては
申請者総務部代表者という2段階の承認を行う予定です。
今回、私は「総務部」の所に一括承認のボタンを設けており、そこで一括承認をクリックすると、代表へと承認権限が移っていくというつもりでした。
でしたが、今のソースコードでは総務部が一括承認をすると、代表者へ承認が行かずに、総務部で全ての承認が完了してしまうのです。
これを一括承認したら代表者へ承認が行くような追加のソースコードなどご教示いただけますと幸いです。
下記が今使っているプロセス管理とソースコードです
画像に個人情報が含まれていたため運営により削除しました
* ワンクリックで一括承認するプログラム
* Copyright (c) 2016 Cybozu
*
* Licensed under the MIT License
*/
(() => {
'use strict';
kintone.events.on('app.record.index.show', (event) => {
const appId = kintone.app.getId();
if (event.viewId !== 5528405) {
return event;
}
const el = kintone.app.getHeaderSpaceElement();
if (el.querySelector('.header-contents')) {
return event;
}
const headerDiv = document.createElement('div');
headerDiv.className = 'header-contents';
// make a button for approval.
const balusButton = document.createElement('button');
balusButton.className = 'approval-button';
balusButton.textContent = '一括承認!';
balusButton.addEventListener('click', () => {
if (event.records.length > 0) {
window.swal({
title: '本当に全て承認して良いですか?',
text: '表示されているレコードを全て承認します',
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: '承認!',
cancelButtonText: 'やっぱりやめる',
closeOnConfirm: false
},
() => {
const records = event.records.map(record => ({
id: record.$id.value,
action: '確認依頼する'
}));
const requestObj = {
app: appId,
records: records
};
kintone.api(kintone.api.url('/k/v1/records/status', true), 'PUT', requestObj, () => {
window.swal({
title: '承認に成功しました!',
text: 'お疲れ様でした。',
// eslint-disable-next-line max-nested-callbacks
type: 'success'}, () => {
location.reload();
});
});
});
} else {
window.swal({
title: '申請中のレコードがありません',
type: 'warning'
});
}
});
headerDiv.appendChild(balusButton);
headerDiv.appendChild(document.createElement('br'));
el.appendChild(headerDiv);
return event;
});
})();