同じような内容の申請は一発で済ませる!複数アプリのプロセス管理を一度に進めよう

目次

はじめに

kintone のプロセス管理を利用していると、次のような場面に遭遇することはありませんか?

「複数の申請先に同じような内容を申請したい!」
「でも、申請先ごとにアプリが分かれているから、何度も同じような内容をレコード登録しないといけない…」

  • 例:以下のように申請を別々のアプリで管理している場合
    • プロジェクトリーダーへの申請
    • 経理への申請
    • 法務への申請

このような場合、それぞれのアプリで同じような内容のレコードを作成してプロセスを進めないといけないので面倒ですよね。
そんな手間を省くために、本記事では 1 つのアプリでプロセスを進めたら別アプリのレコードも自動で作成&プロセスを進めてくれるカスタマイズを紹介したいと思います!

申請フローのイメージ

アプリ A とアプリ B の 2 つアプリを使い、シンプルなカスタマイズ例を紹介します。
今回のカスタマイズでは次のようなフローを想定しています。
カスタマイズで行うのは、フローの 2 番目です。

  1. 申請者がアプリ A にレコードを作成し、プロセスを進める。
  2. アプリ A で入力した内容で、自動的にアプリ B にもレコードを作成し、プロセスが進む。
  3. アプリ A、アプリ B のそれぞれの申請先の承認者が、レコードの内容を承認

下準備

アプリの準備

カスタマイズで利用するアプリを準備しましょう!
今回はシンプルなフォームを使ってカスタマイズを実装してみます。

アプリ A
フィールド名 フィールドコード フィールドタイプ
申請タイトル 申請タイトルA 文字列(1行)
申請内容 申請内容A 文字列(複数行)
アプリ B
フィールド名 フィールドコード フィールドタイプ
申請タイトル 申請タイトルB 文字列(1行)
申請内容 申請内容B 文字列(複数行)

プロセス管理の設定

アプリ A、アプリ B でそれぞれ以下のとおりにプロセス管理の設定をしてみましょう。

アプリ A

「プロセス管理を有効にする」のチェックを入れます。
ステータス「処理中」の作業者は「次のユーザーのうち 1 人」を選択し、任意の組織を設定します。

アプリ B

「プロセス管理を有効にする」のチェックを入れます。
ステータス「処理中」の作業者は「次のユーザーのうち 1 人」を選択し、任意の組織を設定します。

JavaScript カスタマイズ

ここまでの準備ができたら JavaScript カスタマイズを加えていきます。
下の JavaScript をアプリ A に適用します。
14 行目はアプリ B のアプリ ID に修正してください。

  • アプリ ID が 10 の場合
    • 修正前:const appId = 'xxx';
    • 修正後:const appId = '10';
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * あるアプリでプロセスを進めると自動で別アプリのレコードを作成し、ステータスを進めるサンプルプログラム
 * Copyright (c) 2021 Cybozu
 *
 * Licensed under the MIT License
 * https://opensource.org/license/mit/
*/

(() => {
  'use strict';

  kintone.events.on('app.record.detail.process.proceed', event => {
    const action = event.action.value;
    const appId = 'xxx'; // アプリBのアプリIDに書き換えてください
    const params = {
      app: appId,
      record: {
        申請タイトルB: {
          value: event.record['申請タイトルA'].value
        },
        申請内容B: {
          value: event.record['申請内容A'].value
        }
      }
    };

    if (action !== '処理開始') {
      return event;
    }

    return kintone.api(kintone.api.url('/k/v1/record.json', true), 'POST', params).then(resp => {
      const recordId = resp.id;
      const paramStatus = {
        action: action,
        app: appId,
        id: recordId
      };
      return kintone.api(kintone.api.url('/k/v1/record/status.json', true), 'PUT', paramStatus);
    }).then(() => {
      alert('アプリBのレコードを作成し、プロセスを進めました。');
      return event;
    }).catch(err => {
      console.log(err);
      return event;
    });
  });
})();

動作確認

カスタマイズの設定まで完了したら、最後に動作確認をしましょう。
アプリ A でレコードを作成し「処理開始」をクリックします。

申請先の組織メンバーが表示されたら「実行」をクリックして、プロセスを進めましょう。
アプリ B のレコード作成とプロセスの進行が成功すると、「アプリ B のレコードを作成し、プロセスを進めました」とメッセージが表示されます。

次にアプリ B を開き、作成されたレコードを確認します。
プロセス管理のステータスが「処理中」になっていて、申請タイトルと申請内容にアプリ A で記入した内容が書かれていれば OK です!

注意事項

本カスタマイズは PC のみで動作します。

おわりに

いかがでしたでしょうか?
今回紹介したカスタマイズは、2 つのアプリのプロセスを同時に進める内容でした。
このカスタマイズを応用すれば、3 つ以上のアプリでも同時にプロセスを進めることもできますので、ぜひお試しください!

information

この Tips は、2021 年 5 月版 kintone で動作を確認しています。