Kintoneのモバイル版で、一覧から選択して一括承認ができるようにJavaScriptを作成しましたが、選択後に承認ボタンを押してもエラーが出てしまいます。
レコードを選択後、承認ボタンを押してもエラーで承認されません。
エラーメッセージは CB_VA01
エラーコードと「入力内容が正しくありません」というものが表示されます。 KintoneのAPIが間違っているのでしょうか?ご教示いただけると幸いです。
(() => {
'use strict';
kintone.events.on('mobile.app.record.index.show', async (event) => {
const appId = kintone.app.getId();
if (event.viewId !== ◎◎◎◎) {
return;
}
// jQueryとSweetAlert2のロードチェック
if (typeof $ === 'undefined' || typeof Swal === 'undefined') {
console.error('jQueryまたはSweetAlert2が読み込まれていません。');
return;
}
if ($('.mobile-header-contents').length !== 0) {
return;
}
const el = kintone.mobile.app.getHeaderSpaceElement();
const headerDiv = $('<div></div>', {
class: 'mobile-header-contents'
});
// 承認ボタンを作成
const approvalButton = $('<button></button>', {
class: 'mobile-approval-button',
text: '一括承認'
});
approvalButton.click(async () => {
const selectedRecords = [];
$('input[name="recordCheckBox"]:checked').each(function () {
const recordId = $(this).val();
selectedRecords.push({
id: recordId,
action: '承認' // アクション名は適切なものに変更
});
});
if (selectedRecords.length > 0) {
try {
const result = await Swal.fire({
title: '選択されたレコードを承認しますか?',
text: '選択されたレコードを承認します',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: '承認',
cancelButtonText: 'キャンセル',
});
if (result.isConfirmed) {
const requestObj = {
app: appId,
records: selectedRecords
};
await kintone.api(kintone.api.url('/k/v1/records/status', true), 'PUT', requestObj);
await Swal.fire({
title: '承認が完了しました。',
text: 'ありがとうございました',
icon: 'success'
});
location.reload();
}
} catch (error) {
console.error(error);
await Swal.fire({
title: 'エラーが発生しました',
text: error.message,
icon: 'error'
});
}
} else {
await Swal.fire({
title: 'レコードが選択されていません',
icon: 'warning'
});
}
});
// ボタンをヘッダーに追加
headerDiv.append(approvalButton);
// 各レコードにチェックボックスを追加
event.records.forEach((record) => {
const recordId = record.$id.value;
const checkbox = $('<input>', {
type: 'checkbox',
name: 'recordCheckBox',
value: recordId
});
const checkboxLabel = $('<label></label>')
.append(checkbox)
.append(' レコードNo: ' + recordId)
.append($('<br />'));
headerDiv.append(checkboxLabel);
});
$(el).append(headerDiv);
});
})();