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

目次

はじめに

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で動作を確認しています。