ステータス更新エラー

 いつもお世話になっております。

ステータス更新APIを使った際に、

「ステータスの変更に失敗しました。ほかのユーザーがステータス、またはステータスの設定を変更した可能性があります。」

というエラーが起きています。

kintone.events.on(‘app.record.detail.show’, function (event) {

//省略//

.then(function (args) { 

// ステータスを完了にする
var statusBody = {
app: kintone.app.getId(),
id: kintone.app.record.getId(),
action: “完了”
};

kintone.api(‘/k/v1/record/status’, ‘PUT’, statusBody).then(function (resp) {
console.log(resp);
});

 })

})

 

プロセス管理での設定上、「完了」が最終ステータスのため、画面上のボタン操作でステータスを「完了」にする場合には「作業者を選ぶ」が表示されず「完了」にできます。

そのため、リクエストパラメーターのassigneeは必須ではないと思い(※リンクより)入れていません。

エラーとなったため念のため、assigneeを指定して書き換えてみたのですが、同じエラーが発生しました。

ご助言をよろしくお願いします。

 

【※参照リンク】

https://cybozudev.zendesk.com/hc/ja/articles/204791550-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%AE%E6%9B%B4%E6%96%B0

↑assigneeは「現在のステータスの設定で「次のユーザーから作業者を選択」になっているかつ選択可能なユーザーが存在する場合のみ指定必須」との記載有り

柳さん

cstap武井です。

 

本件、恐らくつまずく要素は2つです。

 

  1. actionの指定が間違っている
  2. そのレコードの現在のステータスがそのプロセスに対応していない

1.は、例えばデフォルトプロセスの「完了」であれば「完了する」とプログラムしなければなりません。

あくまでここは「プロセス名」ではなく「アクション名」を指定する必要があるのです。

 

2.は例えばプロセス名が「未処理」→「処理中」→「完了」というデフォルト状態の場合、

「未処理」の状態から一気に「完了」にすることはできないようです。

すなわちご提示のコードは「処理中」のレコードでのみ有効となりそうです。

武井さん

アドバイスありがとうございます。

ご指摘の通り、action名を修正したら成功しました!

ありがとうございました。