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

目次

はじめに

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