あなたは知っているか?kintone(キントーン)REST APIの謎挙動

知ってる人もいると思いますが知らない人の方が多いと思うので、kintoneのプロセス管理設定用のAPIの挙動の注意点について共有したいと思います。

ことのはじまり

僕のツイッターのフォロワーの人ならこのツイートに見覚えがあるかもしれません。

社内のあるプロジェクトで開発用スペースにあるアプリを本番用スペースにgusuku Deploitを使って配布すると謎な現象が起きたということで、社内に報告が上がってきました。

kintoneのヘルプやCybozu Developer Networkを確認してもこの挙動に関する記載はありませんでした。

ただ、起こっている現象から類推するに「これは結構つらいけどkintoneの仕様なんじゃないか?」というのが社内での推測でした。

正式見解

ということで、この挙動についてサイボウズさんに確認を取った結果、正式に仕様であるという回答を得ましたので、みなさんに共有しておきます。

プロセス管理についての挙動

まず理解しておいていただきたいのがこれです。これを知らなかったという方も多いかもしれません。

kintoneのプロセス管理では、作業者を「次の全員」にしている場合、「アクションが実行できる条件」1つに対して複数のアクションを設定すると、1つ目のアクションは「作業者全員の実行が必要なアクション」となり、2つ目以降のアクションは「作業者のうち1人の実行が必要なアクション」となります。

つまり、こういう設定が可能です。

from.png

この例では、完了状態が2種類あり、どちらに行くとしても全員の実行が必要で、NGにするときだけは1人の実行でいいということになります。

さて、これをgusuku Deploitを使って、つまりアプリのプロセス管理の設定の変更APIを使って、別のアプリに適用します。

その後、プロセス管理の設定画面を開くとこうなります。

to.png

アクションが実行できる条件をまとめられてしまっているのがわかると思います。

ですので、上記プロセス管理の設定をgusuku Deploitで配布することはkintoneの仕様によりできません

なんでそうなるの?(私見)

ここからは僕の私見です。

これは、このAPIのパラメーターがこの画面の見た目とは違い「アクション」ごとに「条件」を設定する形になっていることに起因していると考えています。

ドキュメントのこの部分です。

api.png

アクションごとにfilterCondを設定して渡すため、それを受けたkintoneはプロセス管理の画面に表示するには「filterCondが同じものは同じ塊」とみなすしかありません。

つまり、現在のパラメーター構造では元のプロセス管理の画面を再現する方法がありません。

なので、このような仕様になっていると思われます。

サイボウズさんへのお願い

このAPIはいまさら変更できないと思いますので、正しく反映できる別バージョンのAPIができたらいいなぁと思います。

まとめ

画面でできることとAPIでできることはkintoneに限らず差異が生まれがちです。みんさんも「画面でこうなるんだからAPIでもこうだろう」という思い込みをせずに慎重に挙動を確認しましょう!

投稿者プロフィール

アバター画像
金春 利幸
"gusukuシリーズプロダクトマネージャー
ノーコード(No-Code)の有効性に着目し、kintoneとgusukuシリーズの普及のため全国を飛び回っています。"