クレーム連絡先(ClaimContact)の役割制約

役割制約

ClaimCenter における役割制約とは、不正アサインを防止する論理式です。これによって、ビジネスとして妥当でない方法でユーザーがクレーム連絡先に役割をアサインすることを防止します。

役割制約には次の 2 種類があります。

  • エンティティ役割の制限 - 役割を使用できるオブジェクトのタイプと、その役割を使用してそのオブジェクトに関連付けができるクレーム連絡先の数(正確に 1 つ、1 つ以上、最大で 1 つ、無制限)を特定します。
    • 例えば、車両インシデントに関連付けられるクレーム連絡先が「運転者」の役割を保持できること、所定の車両インシデントには最大 1 人の運転者が存在可能なことを、この制約で規定できます。
    • このタイプの制約は「which type of object(オブジェクトのタイプ)」制約および「how many(数量)」制約と考えることができます。
  • 連絡先の役割の種類に対する制約 - 特定の役割が許可されるサブタイプを特定します。
    • 例えば、サブタイプが医師の連絡先に関連付けられたクレーム連絡先は「主治医」の役割を保持できるものの、サブタイプが弁護士の連絡先に関連付けられたクレーム連絡先はこの役割を保持できないことを、この制約で規定できます。
    • このタイプの制約は「which subtype(サブタイプ)」制約と考えることができます。

ClaimCenter では、クレーム連絡先の役割制約を entityroleconstraints-config.xml でコンフィギュレーションします。詳細については、『構成ガイド』を参照してください。

役割制約のエンドポイント

次のエンドポイントを使用して、役割制約に関する情報を取得できます。

操作 エンドポイント 説明
GET /role-constraints 特定の ClaimCenter インスタンスですべての連絡先の役割制約のリストを取得します。
GET /role-constraints/{contactRoleId} 特定の連絡先の役割に関する情報を取得します。contactRoleId は連絡先の役割のコードです(reporter など)。

これらはメタデータエンドポイントです。特定の ClaimCenter インスタンスのコンフィギュレーションに関する情報を返します(ビジネスリソースに関する情報は返しません)。

役割制約の例:医師

これは、ベースコンフィギュレーションで GET /role-constraints/doctor が実行されたときのペイロードの一部です。

{
    "data": {
            "schemaConstraints": [
                {
                    "constraints": [
                        {
                            "constraintType": "ZeroToMore"
                        }
                    ],
                    "schema": "Claim"
                },
                {
                    "constraints": [
                        {
                            "constraintType": "ZeroToMore"
                        }
                    ],
                    "schema": "Exposure"
                }
            ],
            "subtype": "Doctor"
        },

このペイロードから、doctor に関して次の内容を確認できます。

  • クレームに関連付けられたクレーム連絡先の役割として使用できます。
    • 1 つのクレームに対して任意の数の doctor を使用できます(0 を含む)。
  • エクスポージャーに関連付けられたクレーム連絡先の役割として使用できます。
    • 1 つのエクスポージャーに対して任意の数の doctor を使用できます(0 を含む)。
  • doctor の役割は、関係連絡先に Doctor のサブタイプ(または Doctor の子サブタイプ)が存在するクレーム連絡先に対してのみ使用できます。

役割制約の例:報告者

これは、ベースコンフィギュレーションで GET /role-constraints/reporter が実行されたときのペイロードの一部です。

{
    "data": {
        "attributes": {
            "schemaConstraints": [
                {
                    "constraints": [
                        {
                            "constraintType": "Exclusive"
                        },
                        {
                            "constraintType": "Required"
                        }
                    ],
                    "schema": "Claim"
                },
                {
                    "constraints": [
                        {
                            "constraintType": "ZeroToMore"
                        }
                    ],
                    "schema": "Exposure"
                }
            ]

このペイロードから、reporter に関して次の内容を確認できます。

  • クレームに関連付けられたクレーム連絡先の役割として使用できます。
    • この役割は「排他的(Exclusive)」です。(この役割に関して、クレームには最大 1 つのクレーム連絡先が存在できます。)
    • この役割は「必須(Required)」です。(この役割に関して、クレームには少なくとも 1 つのクレーム連絡先が必要です。)
    • これら 2 つの制約を合わせると、クレームには報告者が正確に 1 つ必要であることになります。
  • エクスポージャーに関連付けられたクレーム連絡先の役割として使用できます。
    • 1 つのエクスポージャーに対して任意の数の reporter を使用できます(0 を含む)。
  • サブタイプの制約はありません。したがって、reporter の役割は、関係連絡先のサブタイプの有無に関わりなく、任意のクレーム連絡先に対して使用できます。