TOP>製品/サービス>カテゴリから探す>ディシジョンオートメーション>Progress Corticon>【Corticon Tech コラム】

Progress Corticon

【Corticon Tech コラム】

No.12 Corticonで有給休暇日数を求めてみよう【後編】 (2017年2月17日)

No.12 Corticonで有給休暇日数を求めてみよう【後編】

前回のコラムはいかがでしたか?Corticonでは、要件が同じでもデシジョンテーブルの書き方はいろいろ工夫ができることをお分かりいただけましたか?
今回は、前回に続き同じお題で違うデシジョンテーブルの書き方を見ていきます。

お題:従業員に付与する有給休暇日数を求めるルールを作成します。

有給休暇日数は、年齢と勤続年数によって異なり、その規定はつぎのとおりです。
全ての従業員に、最低22日間の有給休暇があります。さらにつぎの条件で特別休暇を加算します。

1)18歳未満または60歳以上の従業員、または勤続30年以上の従業員は、5日間の休暇を加算します。
2)勤続30年以上の従業員、および、60歳以上の従業員には、他の休暇に加えて、さらに3日間の休暇を加算します。
3)勤続年数が15年以上30年未満の従業員の場合、2日間の休暇を追加します。この2日間は、45歳以上の従業員にもまた付与されます。この2日間の加算は、1)の条件と組み合わせることはできません。

有給休暇算出ルール = 方法2 =

もう1つ目の方法

休暇の決定は2段階で実施することができます。
ここでは、追加の休暇日数(5日、3日、2日)ごとに、休暇プランA、B、Cとします。
条件(ルール)
1.従業員がどの休暇プランに対する資格を持っているのか(適格性)を判定する
2.除外ルールに基づいて実際に取得可能な休暇日数を決定する

1つ目の条件(ルール):適格性を判定

上の適格性を判定するルールを1つ1つに分けると、7つのルールに分かれます(一部要件をどのように解釈するかにもよりますが)。
1.Plan A : 18歳未満の従業員に資格がある
2.Plan A : 60歳以上の従業員に資格がある
3.Plan A : 勤続30年以上の従業員に資格がある
4.Plan B : 勤続30年以上の従業員に資格がある
5.Plan B : 60歳以上の従業員に資格がある
6.Plan C : 勤続15年以上30年未満の従業員に資格がある
7.Plan C : 45歳以上の従業員に資格がある

この適格性を判定するルールは、つぎのようになります。

画像1

ルール列2と5、および、ルール列3と4は条件が同じため、まとめて、簡潔に表現することができます。

画像2

2つ目の条件(ルール):取得可能日数の決定

休暇日数を判定するルールでは、各プラン間での組み合わせ可・不可を考慮して加算すると、つぎのようにモデル化することができます。

画像3

このように、まず適格性(プランA、B、C)を判定し、次に、その結果に基づいた決定(加算される休暇日数)をするといったように、段階を分けてルールを作る方法もあります。

これは福利厚生等の適格性を判断するシステムでよく使われる手法です。
例えば、従業員が働く国によって適格性の条件が変わるような場合、それぞれの国ごとに異なるルールシートを作成することになります。さらに、従業員がフルタイムなのかパートタイムなのかにより変わることもあり、勤務形態ごとにルールシートを作成することもあります。また、実際の場面では、前年度から繰り越した休暇日数が影響することもあり、適格性判定のルールシートと、休暇日数の計算とを分ける方が、分かりやすく扱いやすくなります。

つぎの図のルールフロー例では、緑色の中で従業員の国の地域ごとのルールシートにブランチし、青色の中で雇用形態別のルールシートにブランチしています。Corticonでは、このようにデシジョンテーブル同士の関係性を可視化することができます。

画像4

要件変更に対する柔軟さ

この方法2の場合にも、要件が変更になれば当然ルールにも変更が入ります。ルールの書き方が違ったとしても確実に間違いなく変更を行えます。
たとえばつぎのような条件の変更があるとします。従来のプランA,B,Cに加えあらたにプランD,Eが設定します。

1.18歳未満の基本休暇日数は15日で、60歳以上の基本休暇日数は25日です。
2.勤続年数が30年未満の18~45歳までの従業員には、4日間の追加休暇を付与します。(新休暇プランD)
3.勤続年数が15年未満で45歳を超えている従業員には、1日間の追加休暇を付与します。(新休暇プランE)
4.全ての追加の休暇を組み合わせて使用することが可能です

変更対応後の休暇プランの適格性を判定するルールシート:

画像5

ここで、曖昧性チェックを行うと、Corticonはルールに曖昧性があることを検出します。
たとえば、勤続年数15年未満で60歳以上の場合は、休暇プランA,B,C,Eの取得資格があります。

画像6

さらに、勤続30年未満でちょうど45歳の人の場合、休暇プランCとDの両方を満たします。5列目のルールは、本来は「 > 45」かもしれません。

画像7

基本となる休暇日数を求めるルールを、別のルールシートに独立させました。

画像8

そして、最後に、加算する休暇の割り当て(制限なし)はつぎのようになります。

画像9

これらを反映したルールフロー(デシジョン)はつぎのようになります。

画像10

基本休暇日数が、雇用形態により変わる場合には、つぎのようなルールになります。

画像11

このように、デシジョンの段階ごとにルールシートを分けてモデル化(ルール化)すると、1つ1つが分かりやすく、のちの拡張性も高まります。

ここまで1つのお題について、前回に続きデシジョンのモデル化を見ていただきました。
どのようなルールの書き方が良いかは、今回の題材のようにどこにルールの変更ポイントがあるか、どういう単位で条件を分類できるかが重要です。前回と今回のコラムがCorticonを使用したデシジョンのモデル化の手がかりになれば幸いです。

前回に続き、ご紹介したお題とそれに対するサンプルルールは、Progress社のMichael Parish 氏がDecision Management Community (https://dmcommunity.org/challenge/challenge-jan-2016/)に寄稿した内容をベースにしています。このコミュニティではデシジョンマネージメントに関する最新の動向を知ることができます。是非そちらもご覧ください。


著者紹介

毛井さん

株式会社アシスト 情報基盤事業部 技術4部

株式会社アシスト入社以来、5インチFDを使うソフトウェアやメイン
フレームの簡易開発言語の時代から現在のProgress Corticonまで、
製品の日本語化や技術サポート、研修などを行う。

「Corticon Tech コラム」記事一覧


お求めの情報は見つかりましたでしょうか。

資料請求/お問い合わせはこちら(専門の担当者が確認し、ご対応します。)

お客様の状況に合わせて詳しい情報をお届けできます。お気軽にご相談ください。

ページの先頭へ戻る