初めての質問です。よろしくお願いいたします。
プロセス管理のステータスを自動で更新する際の処理について教えていただきたく思い、投稿させていただきました。
背景・実現したいこと
プロセス管理を使用しているアプリで、レコードの更新時に自動でステータスを進めるようにした際に、特定のステータスの時だけエラーが起きる現象を解決したいです。
担当者1 確認中→担当者2 確認中→担当者3 確認中→承認
という順にステータスを設けて、画像のチェックボックスが入力されていたら、レコードの保存時にステータスを進める処理をアプリに組み込んだのですが、担当者3 確認中から承認にステータスを進めるタイミングだけエラーが発生してステータスが進みません。
ブラウザのディベロッパーツールで確認すると「ステータスの更新に失敗しました。指定したアクションでは、作業者を指定できません。」というエラーが発生していました。
それ以外のステータスではエラーが発生しません。正常に動作する部分をコピーしてエラーが発生した箇所を置き換えてみたのですが、それでもエラーが発生しました。また、ステータスの指定もプロセス管理の画面からコピーして入力したので、誤字などではないと思われます。
利用したソースコード
コード作成には「レコード保存時に自動でステータス更新!」のページを参考にしました。
//レコードの保存時にプロセスを更新する
kintone.events.on('app.record.edit.submit.success',function(event){
let selectBody ="";
let stop = 0;
// レコード情報を取得
rec = event.record;
var record = event['record'];
//ステータスを元に次の更新ステータスを選択
if (record['ステータス']['value'] == "担当者1 確認中"){
if(rec.チェックボックス_1.value == "承認") {
text = "担当者1承認";
var body1 = {
'app': kintone.app.getId(),
'id': kintone.app.record.getId(),
'action': '担当者1 承認',
'assignee': (検証中アカウント名),
};
kintone.api(kintone.api.url('/k/v1/record/status.json', true), 'PUT', body1),function(resp){
return event;
};
}
}else if (record['ステータス']['value']== "担当者2 確認中"){
if(rec.チェックボックス_2.value == "承認"){
text = "担当者2承認";
var body2 = {
'app': kintone.app.getId(),
'id': kintone.app.record.getId(),
'action': '担当者2 承認',
'assignee': (検証中アカウント名),
};
kintone.api(kintone.api.url('/k/v1/record/status.json', true), 'PUT', body2), function(resp){
return event;
};
}
} else if (record['ステータス']['value'] == "担当者3 確認中"){
if(rec.チェックボックス_3.value == "承認"){
text = "担当者3承認";
var body3 = {
'app': kintone.app.getId(),
'id': kintone.app.record.getId(),
'action': '承認する',
'assignee': (検証中アカウント名),
};
kintone.api(kintone.api.url('/k/v1/record/status.json', true), 'PUT', body3), function(resp){
return event;
};
}
}
});
javascriptやkintoneに触れてから日が浅いですが、ご教授いただければ幸いです。