2019-06-12に更新

ビジネスプロセスマネジメント(BPM)第2部〔実践編〕

今回は、Bitrix24を使ってビジネスプロセスの実践をしてみましょう。

まず、ビジネスプロセスには2つの種類があります。

①連続的なビジネスプロセス

 事前に定義した開始点から終了点まで、ドキュメント上で連続したアクションを展開します。

②ステータス主導のビジネスプロセス

 開始点や終了点はありません。プロセスのステータスはワークフローによって変化し、どのステージでもプロセスを完了することができます。

それでは、それぞれのタイプについて具体的に見ていきましょう。


①連続的なビジネスプロセス

プロセスに、事前に定義された過程がある場合に使用します。典型的な例は、テキストドキュメントの作成と認証です。連続的なビジネスプロセスでは、開始点と終了点の間で数多くのアクションが行われます。

Screenshot_1.png


②ステータス主導のビジネスプロセス

プロセスに明確なタイムフレームがなく、同じステータスを繰り返す場合に使用します。このプロセスのスキームはステータスによって構成され、コンディションはアクションやステータスによって変化します。アクションは有限で、アクションの性質がデザインを定義します。

Screenshot_7.png

それでは<連続的なビジネスプロセスのテンプレート>を、Bitrix24を実際に使って見てみましょう。


パラメータの設定と保存をすると、ヴィジュアルモデラーが開きます。
Screenshot_2.png

テンプレートを作成するには、アクションを矢印のエリアへドラッグ&ドロップし、アクションのパラメータを設定します。
Screenshot_3.png

Screenshot_4.png

アクションのパラメータを設定するには、ボタンをクリックします。
Screenshot_6.png
フィールドを埋めていきます。画面の「・・・」ボタンをクリックすると、値の挿入フォームが開きます。


それでは、Bitrix24 Self-Hosted版を使って実際に「休暇の申請」ビジネスプロセスを作ってみましょう。

①新しいビジネスプロセスのテンプレートを作成します。
Screenshot_8.png

②「休暇の開始日」「休暇の最終日」「休暇の理由」の3つのパラメータを作成します。
Screenshot_9.png

③「エラー」「部長」の2つの変数を作成します。
Screenshot_10.png

④PHPアクションをドラック&ドロップします。このアクションは、休暇申請者の上司を探します。
Screenshot_11.png

以下のコードは、部長を探して変数「部長」に保存します。部長が見つからない場合、エラーが発生し、変数「エラー」に保存されます。

use \Bitrix\Main\{ Loader, UserTable };

$root = $this->GetRootActivity();
try{
    if(Loader::includeModule('intranet')){
        throw new \Exception('Intranet module not included');
    }

    $documentId = $root->GetDocumentId();
    $documentService = $root->workflow->GetService("DocumentService");
    $document = $documentService->GetDocument($documentId);

    $creatorId = (int)$document['CREATED_BY'];
    if($creatorId == 0){
        throw new \Exception('従業員IDが間違っています');
    }

    $creator = UserTable::getList([
        'select' => ['ID', 'UF_DEPARTMENT'],
        'filter' => ['=ID' => $creatorId]
    ])->fetchObject();
    if(!$creator){
        throw new \Exception('休暇を申請した従業員がみつかりません');
    }

    $departmentHeadList = \CIntranetUtils::GetDepartmentManager($creator->getUfDepartment(), $creator->getId(), true);
    $directDepartmentHeadId = (int)\array_shift($departmentHeadList);
    if($directDepartmentHeadId){ 
        throw new \Exception('部長がみつかりません');
    }

    $root->setVariable('DEPARTMENT_HEAD', 'user_' . $directDepartmentHeadId);
}
catch(\Exception $e){
    $root->setVariable('ERROR', $e->getMessage());
}

⑤部長がみつかったかどうかをチェックする条件アクションを追加します。
Screenshot_12.png
部長がみつからない場合、エラーはユーザーへ通知されます。

⑥部長が申請を承認/却下するアクションをドラッグ&ドロップします。更に、申請の承認/却下を従業員へ通知するアクションを追加します。
Screenshot_13.png

<結果>
Screenshot_14.png
Screenshot_15.png
Screenshot_16.png

このように、Bitrix24ビジネスプロセスの様々なツールとアクションを使い、様々なワークフローをデザインすることができます。

Free. Unlimited. Online
Bitrix24はコミュニケーション、タスクやプロジェクトでのコラボレーション、クライアント管理など誰もが参加できる機能を備えた便利なツールです。 Bitrix24アカウントへの無料登録はこちらからどうぞ。


bitrix24

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント