SAP SuccessFactors での MDF およびビジネスルールの定義

ビジネスルールの作成およびトリガ

Objective

After completing this lesson, you will be able to ビジネスルールの設定を使用して、ビジネスルールを作成します。

ビジネスルール概要

ビジネスルールの設定ページが表示されます。

ルールエンジンを使用して、さまざまなモジュールおよび機能のビジネスルールロジックを設定することができます。

ビジネスルールは、法的規制 ('米国に勤務する従業員には FLSA ステータスが必要')、会社ポリシー ('ロンドンのオフィスに異動するすべての従業員は高い生活費に対する補償を受け取る')、またはその他の要件に対応することができます。顧客ごとに要件は異なるため、ルールは高度にカスタマイズでき、お客様が設定に関して行った以前の決定に基づいて決まります。

ルールエンジンは、GO 内で発生する必要がある顧客、国、またはシナリオ固有のビジネスロジックを動的に設定および管理するための使いやすいツールを提供します。

  • ビジネスルールを作成するのに、ユーザーが技術的な面に精通している必要はありません。

  • ユーザーは、直感的な UI を使用して、ルールアクションをトリガするためにチェックする必要があるルール条件を設定することができます。

  • これらのルールは、絶えず変化する顧客のビジネスシナリオのニーズを満たすために簡単に更新することができます。

ビジネスルールはルールエンジンで定義されます。これらのルールはランタイムに実行されます。技術的には、ルールエンジンはメタデータフレームワーク (MDF) に基づいていますが、独自の管理ツールとして "ビジネスルールの設定" が使用されます。

ルールを使用すると、ユーザーが入力した詳細に検証を追加したり、一部のフィールドデータを自動入力したりすることができます (たとえば、位置情報に基づいてタイムゾーン情報を自動入力することができます)。

ルールイベント

ビジネスルールは、さまざまなイベントに添付できます。イベントの例として、以下のものがあります。

  • 初期化ルール: 初期化ルールは、他のすべてのルールの前にトリガされます。そのようなルールは、さまざまなフィールドのデフォルト値を自動入力する場合に役立ちます。新規レコードの作成 (初期化) 時にのみ実行されます。

  • 検証ルール: オブジェクトの変更を送信した後の変更を保存する前に検証ルールがトリガされます。これらのルールを使用して、ユーザーが入力したフィールド値を検証することができます。これらは、ルールの保存前に実行されます。"データのインポートとエクスポート" UI を使用して MDF データをインポートすると、検証操作によって、MDF オブジェクトに関連付けられた検証ルールがトリガされ、データで見つかったエラーが返されます。管理者は、検証を通じてデータの問題を捕捉し、インポート前に修正することができます。実際、検証ルールは、検証操作時とインポート操作時の両方で実行されます。

  • ルールの保存: ユーザーが変更を保存すると、ルールの保存がトリガされます。これらのルールを使用すると、保存前にフィールド値を入力または変更することができます。これらのフィールド値は、ユーザー入力値に基づいています。たとえば、国の値の選択に基づいて地域フィールドを自動入力できます。

  • 保存後のルール: オブジェクトの変更が保存されると、保存後のルールがトリガされます。これらのルールは、ユーザーにアラートメッセージを送信する場合に使用されます。フィールド値の設定には使用されません。

  • ルールの変更 (onChange): フィールドレベルで使用されます。オブジェクトをルールの変更に関連付けることはできません。特定のフィールドの値が変更されると、ルールの変更がトリガされます。これらのルールを使用して、変更後に別のフィールドに入力することができます。たとえば、ポジションフィールドの変更に基づいて、フィールドに特定の値を入力することができます。

  • ルールの削除: オブジェクトレコードが削除されると、ルールの削除がトリガされます。

  • オンロードルール: オンロードルールは、UI がロードされると実行される UI 固有のルールです。たとえば、特定のオブジェクトで使用可能なさまざまなフィールドに基づいて給与合計を計算できます。

  • UI ルール: これらのルールは、設定可能 UI ツールで構築された UI にのみ適用されます。これらは、特定のフィールドを特定の条件に基づいて必須、表示、または非表示に設定できる UI 固有のルールです。このようなルールは、ユーザーがインポートを実行するときには適用されません。

    注記

    ルールの検証とルールの保存から生成された警告メッセージは、ワークフロールールを実行して生成されるワークフロー確認メッセージの前に表示されます。

ルールエンジンを使用したビジネスルールの設定のユースケース

  1. ワークフロー: マネージャーまたは社員が社員データを変更したときに適切なワークフローを自動的に決定するルールを定義できます。これを実現するには、ワークフロー基礎オブジェクトを作成し、それをルールエンジン UI でルールに割り当てます。たとえば、昇給が 10% を超える場合に代替ワークフローをトリガできます。
  2. 伝播: 伝播ルールを定義すると、あるフィールドから別のフィールドにデータが自動的にコピーされるようにできます。これにより、1 つのデータレコードのみ保持しながら、システムの複数の場所に同じデータを存在させることができます。たとえば、職務コードをポジション MDF オブジェクトに伝播できます。
  3. 計算: ルールエンジンでサポートされるさまざまな機能を使用して、計算を自動的に実行するルールを定義できます。たとえば、現在の日付と社員の生年月日の差異を計算することで、社員の現在の年齢を取得ができます。
  4. 検証: 検証ルールを使用すると、保存前にユーザーの入力をチェックできます。フィールドを必須に設定するか、エラーメッセージをトリガすることができます。たとえば、次のとおりです。

    (IF...) 国が米国の場合、(THEN...) FLSA ステータスが必要です。

  5. 資格: ボーナスプランまたは報酬計画フォームに含める必要がある社員を定義できます。これを実現するには、変動給モジュールまたは報酬モジュールを Employee Central と統合する必要があります。たとえば、以下のようなルールになります。

    IF... 社員タイプが契約、臨時、または組合と等しくない

    AND 社員が正社員である

    AND レートタイプが '時間給' および '月給' である

    AND 入社日が 2010 年 10 月 1 日より後である

    AND 再雇用日が 2010 年 10 月 1 日より後である

    AND 社員ステータスが有効または STD である

    THEN... この社員は (特定の報酬フォームに対する) 資格がある

  6. 値のデフォルト設定: 特定のフィールドのデフォルト値を定義できます。たとえば、管理者が会社 COMP_USA の新規従業員を追加した場合、その社員は自動的にストック取得資格ありとなり、当初ストック付与数は 200 に設定されます。

ビジネスルールの設定前

ルールエンジンを使用してビジネスルールを設定する前に、いくつかの設定が必要です。

プロビジョニングでのビジネスルールの有効化

  1. Provisioning に移動します。

  2. 会社を選択します。

  3. 会社設定の編集で、会社設定を選択します

  4. 汎用オブジェクトの有効化を選択します

    これは、メタデータフレームワーク (MDF) を使用するための基礎となります。
  5. 上にスクロールし、Save Feature を選択します。

役割ベースの権限の割り当て

対応する権限が割り当てられている場合のみ、ルールを作成できます。

ビジネスルールの表示権限と編集権限を区別することができます。

オブジェクト定義の設定で、オブジェクト定義およびルールを検索します。アクションを実行修正を選択します。セキュリティセクションで、セキュアをはい (デフォルト設定はいいえ) に設定し、権限カテゴリをビジネスルールオブジェクト権限に設定します (権限カテゴリが選択なしに設定されている場合、ルールはその他の権限権限カテゴリに配置されます)。

尊重対象の条件の作成をはいに設定する必要があります。ターゲット基準を定義することで、アプリケーションエリアに従ってルール権限を分離できるようになりました。たとえば、勤怠管理管理者、採用管理者などです。関連情報セクションの Restricting Data Access of a Role with Target Population or Criteria を参照してください。

権限役割の管理で、管理者権限メタデータフレームワークビジネスルールの設定を有効化する必要があります。

変更後は、ビジネスルールの表示権限と編集権限を区別することができます (ビジネスルールオブジェクト権限の検索)。ユーザーがルールを表示または編集できるようにするには、ルールオブジェクトの権限役割に以下の権限を割り当てます。

  • ルールの表示現在の表示および履歴の表示

  • 編集ルール現在の表示、履歴の表示、作成、挿入、修正、および削除。フィールドレベルの上書きは考慮されません。

ビジネスルールの作成

ビジネスルール管理ページが表示されます。

ビジネスルールは、管理センターのビジネスルール管理ツールを使用して作成および管理します。このツールを使用して、新規ルールの作成、システム内にある既存ルールの表示/編集または削除を行うことができます。

注記

ビジネスルール管理ユーザーインターフェイス (UI) が拡張され、ルールの左側のチェックボックスを使用して、単一のルールだけでなく複数のルールをまとめて削除できるようになりました。1 つまたは複数のルールを削除対象として選択できます。ユーザーが削除対象のルールを選択した場合、そのルールがまだシステムに割り当てられているかどうかがチェックされます。割当済のルールは削除できず、削除できないことを示すエラーメッセージが表示されるため、削除するには割当解除する必要があります。未割当のルールは削除できます。

ルールシナリオ

ビジネスルールの設定ページが表示されます。

ルールシナリオは、特定のシナリオのルールコンテキストおよびパラメータに基づいて、ルールを正しく作成するのに役立つルールオブジェクトです。ルールシナリオを選択すると、画面が変わり、選択したシナリオの基本エレメントが表示されます。

システムで利用可能なシナリオは、管理センターのビジネスルールの設定で新しいルールを作成する際に表示され、アプリケーション別に分類されます。ここには、システムで有効化したアプリケーションのシナリオのみ表示されます。

ルールシナリオを選択するときは、If/Then ロジックに進む前にルールの詳細を入力する必要があります。

  • ルール名: 検索ツールに表示されるルールのラベルです。

  • ルール ID: ルール ID はルールの一意の ID です。ルール名はルール ID に自動的にコピーされますが、ルール ID にはスペースを使用しないことをお奨めします。

  • 開始日: ルールの有効開始日です。ルールは、この日付の後にのみトリガできます。デフォルト値は 01/01/1900 です。

  • ルールタイプ: 基本シナリオでは、ルールタイプを使用してビジネスルールを整理できます。RuleType ピックリストに追加されたすべての値がここに表示されます。ルールタイプはオプションです。

  • 説明: これは、ルールのビジネス用途に関する追加のコンテキストを提供するために使用できるオプションフィールドです。

  • ベースオブジェクト: ルールのベースになるオブジェクトを選択します。ベースオブジェクトは、ルールの作成時に選択できるフィールドと関連オブジェクトを定義します。

ベースオブジェクト

ベースオブジェクトはルールの開始点です。MDF オブジェクトのルールのベースオブジェクトの一覧は、アルファベット順です。これらは、EC オブジェクト (基礎オブジェクト、雇用オブジェクト、またはユーザーオブジェクト) と MDF オブジェクト (GO) のいずれかである、システムで利用可能なデータオブジェクトに対応しています。ベースオブジェクトはルールの対象を定義します。ベースオブジェクトのフィールド、属性、および関連データオブジェクトを入力として使用することができます。

たとえば、社員ステータスの変更時にトリガされるルールを作成する場合、ベースオブジェクトとして職務情報を選択します。社員ステータスフィールドが職務情報 EC オブジェクトの一部であるためです。

アプリケーション固有のシナリオでは、シナリオによってベースオブジェクトが定義されるか、ルールの作成時に選択できるベースオブジェクトが制限されます。

注記

どのフィールドがどの EC オブジェクト (HRIS エレメントに対応) に含まれているかを確認するには、Employee Central 導入ハンドブックのデータオブジェクトテーブルを参照してください。どのフィールドがどの MDF オブジェクトに含まれているかを確認するには、MDF UI でオブジェクトを検索します。

If Then ロジック

ビジネスルールページが表示されます。

IF 文は、THEN 文で定義されたシステムアクションが実行される前に満たす必要がある条件を示すルールの一部です。

THEN 文は、ルールの IF 文に含まれる条件に対するシステムの反応を定義します。たとえば、エラーメッセージが表示される、フィールドが特定の値に設定される、新規データが作成されるなどです。ELSE 文は、IF 条件が true でない場合のシステムの反応を定義します。その場合、THEN 文はスキップされ、ELSE 文で定義された内容が実行されます。

左の式のドロップダウンリスト

2 つの変数一覧の詳細が強調表示されます。

ロジック "A は B に等しい" に従い (A が左の式、B が右の式)、比較演算子 "次に一致" によって接続されたルール文を定義します。左の式と右の式は、設定アクションの IF セクションおよび THEN セクションで使用できます。通常、右の式のドロップダウンリストには、左の式と同じ値が含まれていますが、左の式と同じフィールドタイプのエンティティに限定されます。加えて、ドロップダウンリストには、右の式に固有のオプションがいくつかあります。

左の式のドロップダウンリストでは、以下を選択できます。

  • ベースオブジェクトに関連するデータ

  • 関数

  • 追加の MDF オブジェクト

  • 変数

  • 現在のユーザー

  • 有効日

右の式のドロップダウンリスト

右の式のドロップダウンメニューの詳細が表示されます。

右の式のドロップダウンメニューでは、以下を選択できます。

  • フィールドタイプ

  • ベースオブジェクトに割り当てられたフィールド、または左の式と同じフィールドタイプを持つその他の追加済オブジェクト

  • 選択した左の式のフィールドタイプで利用できる関数

  • 変数

  • 現在のユーザー

  • 有効日

  • Null

比較演算子

比較演算子は、ビジネスルールの左と右の式の値間の関係を定義するために使用されます。

以下の比較演算子がサポートされています。

比較演算子サポートされているフィールドタイプ
次に一致すべてのフィールドタイプ
次に一致しないすべてのフィールドタイプ
より大きい:>数値、小数
次の値より小さい: <数値、小数
以上:>=数値、小数
次の値以下:<=数値、小数
次より前日付
次と同じまたは前日付
次より後日付
次と同じまたは後日付

コレクションフィルタ

コレクションフィルタは、値の一覧から一意の値を取得するために使用されます。これは、データオブジェクト間に親子関係がある場合に関連性があります。

以下のビジネスの例では、職務関係は親オブジェクトである職務情報の子です。つまり、単一の雇用に対して複数の職務関係を持つことができます。コレクションフィルターを使用して、ルールで使用する職務関係 (人事マネージャーなど) を定義します。

ルールエンジンでは、コレクションフィルターにより、一意の値を選択するように求められます (次の条件で….を選択…)。

コレクションフィルターの詳細が表示されます。

ビジネスルールの割当

ビジネスルールとその割当が有効化されたビジネスルールの一覧、または有効化されていないビジネスルールの一覧が表示されます。

ルールは、対応するオブジェクトに割り当てられている場合にのみトリガされます。

ルールを作成するアプリケーション固有のシナリオの設定方法に応じて、ルールをオブジェクト、ビジネスプロセス、イベント、アクション、画面、またはその他のエンティティに割り当てる必要があります。そのため、アプリケーション固有の文書をチェックして、ルールを割り当てる必要がある場所を把握してください。オブジェクトタイプに応じて、ルールをオブジェクトに割り当てる方法が異なります。

ルール割当アイコンを選択すると、ポップアップウィンドウが開き、割当の詳細と、ルールを割り当てるためのアプリケーション固有の UI へのリンクが表示されます。

割り当てられたビジネスルールには、割り当て済みステータスを示すアイコンが含まれています。

  • 緑色のチェックマークが付いたアイコン: ルールはシステム内のどこかで割り当てられます。
  • 灰色表示されているアイコン: ルールがシステム内のどこにも割り当てられていません。
  • 空のアイコン (白): ルール割当情報を提供できません (基本ルールシナリオなど)。

アプリケーション固有のシナリオルールがシステムで割り当てられていて、ユーザーが削除しようとした場合、エラーメッセージが表示されます。ルールを削除するには、事前に割当を削除する必要があります。

MDF オブジェクトへのルールの割当

ビジネス設定の管理ツールでのルールの割当と同様、ビジネスルールを MDF オブジェクトに直接割り当てることもできます。これは、オブジェクト定義の設定ツールで行います。

ルールは、オブジェクトレベルで割り当てることができます。

MDF オブジェクトにルールを割り当てるオプションが表示されます。

ルールは、トリガフィールドの詳細セクション内で設定することにより、フィールドレベルでトリガすることもできます。フィールドレベルで使用できるのは onChange ルールイベントのみであることに注意してください。  

たとえば、MDF オブジェクト内で社員の現在地 (事業所) と事業部を自動入力する場合、"trigger" フィールド (この場合は社員フィールド) にルールを追加します。事業所および事業部のフィールドは、社員フィールドが入力または編集されるとすぐに入力されます。

オブジェクト定義の設定ツールの詳細が表示されます。

ビジネスルール実行ログ

ビジネスルール実行ログを使用すると、ルールの実行詳細をトレースできるため、エラーを簡単に分析できます。

この管理ツールを使用して、ログに記録するルールを指定できます。指定したルールのいずれかが実行されるたびにログが作成されます。その後、ログを CSV 形式でダウンロードできます。

注記

ログを使用するには、ビジネスルール実行ログにアクセス権限が必要です。この権限は、メタデータフレームワークグループに属しています。

別個の 2 つの権限があります。ルールトレースを作成する権限と、ルールトレースを作成して結果ログを表示する権限です。ログにはユーザーに関する機密データが含まれている可能性があるため、必要なユーザーにのみ表示権限を割り当てることをお奨めします。

権限を取得したら、使用するルールトレースを定義する必要があります。

  1. アクション検索を使用して、ビジネスルール実行ログにナビゲートします。

  2. 新規作成 → ルールトレースを選択します。

  3. 表示された画面で、以下の内容を入力します。

    • ルールトレースの名前とコード。
    • 開始日付と終了日付。

      注記

      ルールトレースは、最長 2 日間に設定できます。これは、特定の時点で、最新のトレースのみがシステムで有効になるようにするためです。
    • ルールをトレースするユーザー。

      注記

      ここでの "ユーザー" とは、ルールによってデータが評価または変更されるユーザーではなく、ルールを実行しているユーザーを指します。
    • ログに含める 1 つまたは複数のルール。

指定したユーザーのすべてのルールをトレースする場合、このフィールドを空白のままにします。

ルールトレース定義を保存すると、指定した開始日付にトレースが開始されます。必要な権限を持っている場合、ビジネスルール実行ログに戻り、ダウンロードを選択してログの内容を確認できます。アクションを実行オプションを使用して、既存のルールトレースを編集することもできます。

注記

  • ルールトレースのログファイルは、個別ファイルごとに最大 5 MB です。ログファイルのサイズがしきい値の 5MB に達すると、最初にログファイルを削除する必要があるため、ログは追加されません。しきい値に達すると、ビジネスルール実行ログ UI にメッセージが表示されます。

  • ログファイルは、不要になったらいつでも削除できます。ただし、ルールトレース定義は残ります。

注記

ルール割当を含むルールの一覧を CSV ファイルとしてエクスポートして、ルールの使用先に関する概要を取得することができます。

メッセージ定義およびビジネスルールを登録し、ビジネスルールを添付する

ビジネス例

登録する車両オブジェクトが、製造日付が過去であり、将来ではないなどの特定のルールに従っていることを確認する必要があります。

タスク 1: メッセージ定義の作成

ステップ

  1. アクション検索を使用して、データの管理に移動します。

  2. 新規: メッセージ定義を選択します。

    1. 新規作成を選択して、ドロップダウンリストを開きます。

    2. メッセージの定義エントリを選択します。

  3. 以下のデータを入力します。

    テキスト:購入/リース日は、現在の日付以前である必要があります。  

    externalCode:compCarError

    externalName:社用車エラーメッセージ

    1. メッセージ定義レコードに記載されている値を入力します。

  4. 作業内容を以下の図に照らして確認します。

    社用車に関するエラーメッセージが表示されます。

タスク 2: ビジネスルールの作成および添付

ステップ

  1. アクション検索を使用して、ビジネスルールの設定ツールに移動します。

  2. "+" アイコンを選択して、新規ルールを作成します。

    1. ルールの新規作成を選択します。

  3. メタデータフレームワークMDF ベースのオブジェクトのルールを選択します。

    1. メタデータフレームワークカテゴリを展開します。

    2. MDF ベースのオブジェクトのルールを選択します。

  4. 以下の情報を入力し、続行を選択します。

    フィールド金額
    ルール名社用車エラー
    ルール IDcompanyCarError
    基本オブジェクト社用車
    目的検証
    1. ルール名ボックスに社用車エラーと入力します。

    2. ルール ID ボックスに companyCarError と入力します。

    3. ベースオブジェクトとして社用車を選択します

    4. 続行を選択します。

  5. 以下の図を参考にして、IF 文と Then 文を入力します。

    変数内の If-Then 文の例が表示されます。
    1. IF 文で左の式を選択します。

    2. 購入/リース日を選択します。

    3. 等しいを選択します

    4. 次より後を選択します。

    5. 日付 (右の式) を選択します。

    6. Today() を選択すると、表示するためにリスト内を下方向にスクロールする必要がある場合があります。

    7. THEN で、式の編集ボタン (ペンのアイコン) を選択します。

    8. 出力タイプの選択を選択します。

    9. メッセージの表示を選択します。

    10. メッセージボタンを選択して、ドロップダウンリストを開きます。

    11. 前の演習問題で作成したメッセージのエントリを選択します。

    12. 重要度の選択ボタンを選択します。

    13. エラーを選択します。

  6. ルールを保存します。

タスク 3: ビジネスルールの添付

ステップ

  1. アクション検索を使用して、オブジェクト定義の設定ツールに移動します。

  2. オブジェクト定義 → 社用車を検索します。

    1. 検索を選択して、ドロップダウンリストを開きます。

    2. エントリオブジェクト定義を選択します。

    3. 2 番目の検索ボックスで社用車を選択します。

  3. アクションを実行 → 修正の順に選択します。

    1. 検証ルールまでスクロールします。

    2. ルール保存ボタンを選択して、ドロップダウンリストを開きます。

    3. 前の演習問題で作成したルールを選択します。

    4. 保存を選択します。

    5. OK を選択します。

タスク 4: テストステップ

ステップ

  1. アクション検索を使用してデータ管理にナビゲートし、これをテストします。

    1. [社用車の新規作成] を選択します。

    2. 社員名HR コーディネータを入力します。

    3. 有効開始日付に本日の日付を入力します。

    4. ModelGolf と入力します。

    5. 購買日付には、将来の日付を入力します。

    6. 保存をクリックします。以前に登録したエラーメッセージが表示されます。

    7. 購買日付を本日の日付に変更します。

    8. [保存] をクリックします。今回は新しい社用車が作成されます。

レッスンのまとめ

  • ビジネスルールは、ルールエンジンを使用して設定され、モジュール、機能、およびプロセスのロジックがカスタマイズされます。
  • ルールはタイプ (初期化、チェック、保存など) によって異なり、特定のイベントまたはアクションによってトリガされます。
  • ユースケースの例には、ワークフローの自動化、チェック、計算、デフォルト値、伝播、有資格決定などがあります。
  • ビジネスルールは、役割ベースの権限を必要とし、正しく実行するにはオブジェクトまたはシナリオに割り当てる必要があります。
  • ビジネスルール実行ログにより、管理者はルール実行を追跡し、エラーを効率的にトラブルシューティングすることができます。