# Business Logic — KKW02701SF02DBean.loadModelData() [146 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA16701SF.KKW02701SF02DBean` |
| Layer | Web View Data Bean (Presentation Layer — Data Binding Utility) |
| Module | `KKA16701SF` (Package: `eo.web.webview.KKA16701SF`) |

## 1. Role

### KKW02701SF02DBean.loadModelData()

This method serves as a **property-based data access router** for the KKA16701SF screen's data bean. Its business purpose is to provide a unified, key-driven interface for reading typed field values, display states, and enable flags across a range of service-order-related fields displayed on a telecom service contract detail screen. It implements a **routing/dispatch pattern**: incoming string-based item names (`key`) are matched against known Japanese-labeled field identifiers, and then a subkey (`value`, `state`, `enable`) determines which accessor method to delegate to. The method supports 11 distinct data properties, each representing a business field on a service order screen (e.g., service contract detail number, registration timestamp, course name, mansion details, pricing codes). For the "status" and "course application date" fields, it additionally exposes an `enable` flag that indicates whether the field is currently editable on the UI. The method does NOT perform any CRUD operations or business logic — it purely routes to getter methods on the same bean. Its role in the larger system is to support the X31C web framework's data binding mechanism, allowing the view layer to request field data by human-readable labels rather than internal variable names. If an unrecognized key is provided, the method returns `null`, making it safe for use in dynamic lookup scenarios.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData(key, subkey)"])

    START --> COND_NULL["key or subkey is null?"]
    COND_NULL -->|Yes| RET_NULL_1["Return null"]
    COND_NULL -->|No| FIND_SEP["Find '/' in key
(key.indexOf('/'))"]

    FIND_SEP --> COND_SVC["key = 'サービス契約内訳番号'
(Service Contract Detail Number)"]
    COND_SVC -->|Yes| SUB_SVC["subkey type check"]
    COND_SVC -->|No| COND_GENE["key = '世代登録年月日時分秒'
(Registration Timestamp)"]

    SUB_SVC --> SVC_VALUE["subkey = 'value'"]
    SVC_VALUE --> RET_SVC_VALUE["Return
getSvc_kei_ucwk_no_value()"]
    SUB_SVC --> SVC_STATE["subkey = 'state'"]
    SVC_STATE --> RET_SVC_STATE["Return
getSvc_kei_ucwk_no_state()"]

    COND_GENE -->|Yes| SUB_GENE["subkey type check"]
    COND_GENE -->|No| COND_IDO["key = '異動予約番号'
(Move Reservation Number)"]

    SUB_GENE --> GENE_VALUE["subkey = 'value'"]
    GENE_VALUE --> RET_GENE_VALUE["Return
getGene_add_dtm_value()"]
    SUB_GENE --> GENE_STATE["subkey = 'state'"]
    GENE_STATE --> RET_GENE_STATE["Return
getGene_add_dtm_state()"]

    COND_IDO -->|Yes| SUB_IDO["subkey type check"]
    COND_IDO -->|No| COND_MSKM["key = '申込明細番号'
(Application Detail Number)"]

    SUB_IDO --> IDO_VALUE["subkey = 'value'"]
    IDO_VALUE --> RET_IDO_VALUE["Return
getIdo_rsv_no_value()"]
    SUB_IDO --> IDO_STATE["subkey = 'state'"]
    IDO_STATE --> RET_IDO_STATE["Return
getIdo_rsv_no_state()"]

    COND_MSKM -->|Yes| SUB_MSKM["subkey type check"]
    COND_MSKM -->|No| COND_STAT["key = '状態'
(Status)"]

    SUB_MSKM --> MSMK_VALUE["subkey = 'value'"]
    MSMK_VALUE --> RET_MSKM_VALUE["Return
getMskm_dtl_no_value()"]
    SUB_MSKM --> MSMK_STATE["subkey = 'state'"]
    MSMK_STATE --> RET_MSKM_STATE["Return
getMskm_dtl_no_state()"]

    COND_STAT -->|Yes| SUB_STAT["subkey type check"]
    COND_STAT -->|No| COND_COURSE_YMD["key = 'コース適用年月日'
(Course Application Date)"]

    SUB_STAT --> STAT_VALUE["subkey = 'value'"]
    STAT_VALUE --> RET_STAT_VALUE["Return
getStat_value()"]
    SUB_STAT --> STAT_ENABLE["subkey = 'enable'"]
    STAT_ENABLE --> RET_STAT_ENABLED["Return
getStat_enabled()"]
    SUB_STAT --> STAT_STATE["subkey = 'state'"]
    STAT_STATE --> RET_STAT_STATE["Return
getStat_state()"]

    COND_COURSE_YMD -->|Yes| SUB_CYMD["subkey type check"]
    COND_COURSE_YMD -->|No| COND_COURSE_NM["key = 'コース名'
(Course Name)"]

    SUB_CYMD --> CYMD_VALUE["subkey = 'value'"]
    CYMD_VALUE --> RET_CYMD_VALUE["Return
getCourse_aply_ymd_value()"]
    SUB_CYMD --> CYMD_ENABLE["subkey = 'enable'"]
    CYMD_ENABLE --> RET_CYMD_ENABLED["Return
getCourse_aply_ymd_enabled()"]
    SUB_CYMD --> CYMD_STATE["subkey = 'state'"]
    CYMD_STATE --> RET_CYMD_STATE["Return
getCourse_aply_ymd_state()"]

    COND_COURSE_NM -->|Yes| SUB_CNM["subkey type check"]
    COND_COURSE_NM -->|No| COND_MANSION_ID["key = 'マンションID'
(Mansion ID)"]

    SUB_CNM --> CNM_VALUE["subkey = 'value'"]
    CNM_VALUE --> RET_CNM_VALUE["Return
getCourse_nm_value()"]
    SUB_CNM --> CNM_ENABLE["subkey = 'enable'"]
    CNM_ENABLE --> RET_CNM_ENABLED["Return
getCourse_nm_enabled()"]
    SUB_CNM --> CNM_STATE["subkey = 'state'"]
    CNM_STATE --> RET_CNM_STATE["Return
getCourse_nm_state()"]

    COND_MANSION_ID -->|Yes| SUB_MID["subkey type check"]
    COND_MANSION_ID -->|No| COND_MANSION_NM["key = 'マンション名'
(Mansion Name)"]

    SUB_MID --> MID_VALUE["subkey = 'value'"]
    MID_VALUE --> RET_MID_VALUE["Return
getMansion_id_value()"]
    SUB_MID --> MID_ENABLE["subkey = 'enable'"]
    MID_ENABLE --> RET_MID_ENABLED["Return
getMansion_id_enabled()"]
    SUB_MID --> MID_STATE["subkey = 'state'"]
    MID_STATE --> RET_MID_STATE["Return
getMansion_id_state()"]

    COND_MANSION_NM -->|Yes| SUB_MNM["subkey type check"]
    COND_MANSION_NM -->|No| COND_NEW_PCRS["key = '新料金コースコード'
(New Pricing Course Code)"]

    SUB_MNM --> MNM_VALUE["subkey = 'value'"]
    MNM_VALUE --> RET_MNM_VALUE["Return
getMansion_nm_value()"]
    SUB_MNM --> MNM_ENABLE["subkey = 'enable'"]
    MNM_ENABLE --> RET_MNM_ENABLED["Return
getMansion_nm_enabled()"]
    SUB_MNM --> MNM_STATE["subkey = 'state'"]
    MNM_STATE --> RET_MNM_STATE["Return
getMansion_nm_state()"]

    COND_NEW_PCRS -->|Yes| SUB_NP["subkey type check"]
    COND_NEW_PCRS -->|No| COND_OLD_PCRS["key = '旧料金コースコード'
(Old Pricing Course Code)"]

    SUB_NP --> NP_VALUE["subkey = 'value'"]
    NP_VALUE --> RET_NP_VALUE["Return
getNew_pcrs_cd_value()"]
    SUB_NP --> NP_ENABLE["subkey = 'enable'"]
    NP_ENABLE --> RET_NP_ENABLED["Return
getNew_pcrs_cd_enabled()"]
    SUB_NP --> NP_STATE["subkey = 'state'"]
    NP_STATE --> RET_NP_STATE["Return
getNew_pcrs_cd_state()"]

    COND_OLD_PCRS -->|Yes| SUB_OP["subkey type check"]
    COND_OLD_PCRS -->|No| RET_NULL_2["Return null
(No matching property)"]

    SUB_OP --> OP_VALUE["subkey = 'value'"]
    OP_VALUE --> RET_OP_VALUE["Return
getOld_pcrs_cd_value()"]
    SUB_OP --> OP_ENABLE["subkey = 'enable'"]
    OP_ENABLE --> RET_OP_ENABLED["Return
getOld_pcrs_cd_enabled()"]
    SUB_OP --> OP_STATE["subkey = 'state'"]
    OP_STATE --> RET_OP_STATE["Return
getOld_pcrs_cd_state()"]
```

**Processing Summary:**
The method follows a linear if/else-if cascade pattern. For each of the 11 key branches:
- **"value" subkey**: Returns the field's current data value (String or numeric type).
- **"state" subkey**: Returns the field's display/state flag (typically indicating read-only or display mode).
- **"enable" subkey** (only for `stat`, `course_aply_ymd`, `course_nm`, `mansion_id`, `mansion_nm`, `new_pcrs_cd`, `old_pcrs_cd`): Returns the field's enabled/editable flag.

If `key` or `subkey` is null, returns `null` immediately. If no key matches, falls through to the final `return null`.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The human-readable Japanese label of the screen field whose data is being requested. Each value maps to one business property on the service order detail screen. Possible values: `サービス契約内訳番号` (Service Contract Detail Number), `世代登録年月日時分秒` (Registration Timestamp), `異動予約番号` (Move Reservation Number), `申込明細番号` (Application Detail Number), `状態` (Status), `コース適用年月日` (Course Application Date), `コース名` (Course Name), `マンションID` (Mansion ID), `マンション名` (Mansion Name), `新料金コースコード` (New Pricing Course Code), `旧料金コースコード` (Old Pricing Course Code). Case-sensitive match. |
| 2 | `subkey` | `String` | The data accessor type within the matched key. Valid values (case-insensitive): `value` (returns the field's current data value), `state` (returns the field's display state flag), `enable` (returns whether the field is editable — only valid for certain keys). |
| 3 | `key.indexOf("/")` result | `int` | Internal variable `separaterPoint` — computes the position of "/" in `key`. **Note: This value is computed but never used in any subsequent logic.** |

**No instance fields or external state** are read by this method. It delegates entirely to its own getter methods.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW02701SF02DBean.getCourse_aply_ymd_enabled` | KKW02701SF02DBean | - | Returns course application date enable flag |
| R | `KKW02701SF02DBean.getCourse_aply_ymd_state` | KKW02701SF02DBean | - | Returns course application date state flag |
| R | `KKW02701SF02DBean.getCourse_aply_ymd_value` | KKW02701SF02DBean | - | Returns course application date value |
| R | `KKW02701SF02DBean.getCourse_nm_enabled` | KKW02701SF02DBean | - | Returns course name enable flag |
| R | `KKW02701SF02DBean.getCourse_nm_state` | KKW02701SF02DBean | - | Returns course name state flag |
| R | `KKW02701SF02DBean.getCourse_nm_value` | KKW02701SF02DBean | - | Returns course name value |
| R | `KKW02701SF02DBean.getGene_add_dtm_state` | KKW02701SF02DBean | - | Returns registration timestamp state flag |
| R | `KKW02701SF02DBean.getGene_add_dtm_value` | KKW02701SF02DBean | - | Returns registration timestamp value |
| R | `KKW02701SF02DBean.getIdo_rsv_no_state` | KKW02701SF02DBean | - | Returns move reservation number state flag |
| R | `KKW02701SF02DBean.getIdo_rsv_no_value` | KKW02701SF02DBean | - | Returns move reservation number value |
| R | `KKW02701SF02DBean.getMansion_id_enabled` | KKW02701SF02DBean | - | Returns mansion ID enable flag |
| R | `KKW02701SF02DBean.getMansion_id_state` | KKW02701SF02DBean | - | Returns mansion ID state flag |
| R | `KKW02701SF02DBean.getMansion_id_value` | KKW02701SF02DBean | - | Returns mansion ID value |
| R | `KKW02701SF02DBean.getMansion_nm_enabled` | KKW02701SF02DBean | - | Returns mansion name enable flag |
| R | `KKW02701SF02DBean.getMansion_nm_state` | KKW02701SF02DBean | - | Returns mansion name state flag |
| R | `KKW02701SF02DBean.getMansion_nm_value` | KKW02701SF02DBean | - | Returns mansion name value |
| R | `KKW02701SF02DBean.getMskm_dtl_no_state` | KKW02701SF02DBean | - | Returns application detail number state flag |
| R | `KKW02701SF02DBean.getMskm_dtl_no_value` | KKW02701SF02DBean | - | Returns application detail number value |
| R | `KKW02701SF02DBean.getNew_pcrs_cd_enabled` | KKW02701SF02DBean | - | Returns new pricing course code enable flag |
| R | `KKW02701SF02DBean.getNew_pcrs_cd_state` | KKW02701SF02DBean | - | Returns new pricing course code state flag |
| R | `KKW02701SF02DBean.getNew_pcrs_cd_value` | KKW02701SF02DBean | - | Returns new pricing course code value |
| R | `KKW02701SF02DBean.getOld_pcrs_cd_enabled` | KKW02701SF02DBean | - | Returns old pricing course code enable flag |
| R | `KKW02701SF02DBean.getOld_pcrs_cd_state` | KKW02701SF02DBean | - | Returns old pricing course code state flag |
| R | `KKW02701SF02DBean.getOld_pcrs_cd_value` | KKW02701SF02DBean | - | Returns old pricing course code value |
| R | `KKW02701SF02DBean.getStat_enabled` | KKW02701SF02DBean | - | Returns status enable flag |
| R | `KKW02701SF02DBean.getStat_state` | KKW02701SF02DBean | - | Returns status state flag |
| R | `KKW02701SF02DBean.getStat_value` | KKW02701SF02DBean | - | Returns status value |
| R | `KKW02701SF02DBean.getSvc_kei_ucwk_no_state` | KKW02701SF02DBean | - | Returns service contract detail number state flag |
| R | `KKW02701SF02DBean.getSvc_kei_ucwk_no_value` | KKW02701SF02DBean | - | Returns service contract detail number value |

**Analysis:** This method performs **exclusively Read (R) operations**. It contains no database access, no SC/CBS calls, no entity operations, and no create/update/delete logic. All 29 called methods are getter accessors defined on the same `KKW02701SF02DBean` class, returning field values and UI state flags.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0004 (example) | `KKSV0004` screen controller -> view binding -> `KKW02701SF02DBean.loadModelData(key, subkey)` | getter methods [R] in-memory bean fields |

**Notes on callers:** The pre-compiled evidence from the search shows that `loadModelData` is a widely-used pattern across many webview beans (e.g., `FUW00912SF01DBean`, `FUW00926SFBean`, `FUW00964SFBean`). These beans follow a similar routing pattern, calling `loadModelData` with Japanese-labeled keys to retrieve field data from their respective DBean. The method is part of the X31C web framework's data binding convention, where the view layer requests data by human-readable labels. The specific callers of `KKW02701SF02DBean.loadModelData` would be in the `KKA16701SF` screen's controller/view layer, which is not present in the scanned result set.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null check) `(key == null || subkey == null)` (L439)

> If either parameter is null, returns null immediately. This is a safety guard against null pointer exceptions during view binding.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Computes separator position but is never used [Unused variable] |
| 2 | RETURN | `return null` // Early exit on null input |

**Block 2** — IF-ELSE-IF CHAIN `(key equals "サービス契約内訳番号")` (L443)
> Data type: String. Item ID: svc_kei_ucwk_no. Business: Service contract detail number — identifies the breakdown of a service contract line item.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("サービス契約内訳番号")` // Service Contract Detail Number match |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getSvc_kei_ucwk_no_value()` // Returns the service contract detail number |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 5 | CALL | `getSvc_kei_ucwk_no_state()` // Returns the state flag for this field |

**Block 3** — ELSE-IF `(key equals "世代登録年月日時分秒")` (L456)
> Data type: String. Item ID: gene_add_dtm. Business: Registration timestamp — when this service order was registered in the system (year/month/day/hour/minute/second).

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("世代登録年月日時分秒")` // Registration timestamp |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getGene_add_dtm_value()` // Returns the registration timestamp |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 5 | CALL | `getGene_add_dtm_state()` // Returns the state flag |

**Block 4** — ELSE-IF `(key equals "異動予約番号")` (L469)
> Data type: String. Item ID: ido_rsv_no. Business: Move reservation number — tracking ID for service line migration/reservation moves.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("異動予約番号")` // Move reservation number |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getIdo_rsv_no_value()` // Returns the move reservation number |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 5 | CALL | `getIdo_rsv_no_state()` // Returns the state flag |

**Block 5** — ELSE-IF `(key equals "申込明細番号")` (L482)
> Data type: String. Item ID: mskm_dtl_no. Business: Application detail number — the unique line item number within a service order application.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("申込明細番号")` // Application detail number |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getMskm_dtl_no_value()` // Returns the application detail number |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 5 | CALL | `getMskm_dtl_no_state()` // Returns the state flag |

**Block 6** — ELSE-IF `(key equals "状態")` (L495)
> Data type: String. Item ID: stat. Business: Status — the current processing status of the service order. This field uniquely supports three subkeys: value, enable, and state.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("状態")` // Status field |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getStat_value()` // Returns the status value |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、stat_enableのgetterの値を返す |
| 5 | CALL | `getStat_enabled()` // Returns the enable/editable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getStat_state()` // Returns the state flag |

**Block 7** — ELSE-IF `(key equals "コース適用年月日")` (L508)
> Data type: String. Item ID: course_aply_ymd. Business: Course application date — the date when a pricing/service course was applied to this order. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("コース適用年月日")` // Course application date |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getCourse_aply_ymd_value()` // Returns the course application date |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、course_aply_ymd_enableのgetterの値を返す |
| 5 | CALL | `getCourse_aply_ymd_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getCourse_aply_ymd_state()` // Returns the state flag |

**Block 8** — ELSE-IF `(key equals "コース名")` (L521)
> Data type: String. Item ID: course_nm. Business: Course name — the name of the service/pricing course selected for this order. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("コース名")` // Course name |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getCourse_nm_value()` // Returns the course name |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、course_nm_enableのgetterの値を返す |
| 5 | CALL | `getCourse_nm_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getCourse_nm_state()` // Returns the state flag |

**Block 9** — ELSE-IF `(key equals "マンションID")` (L534)
> Data type: String. Item ID: mansion_id. Business: Mansion ID — the unique identifier for a multi-unit dwelling building where the service is installed. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("マンションID")` // Mansion ID |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getMansion_id_value()` // Returns the mansion ID |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、mansion_id_enableのgetterの値を返す |
| 5 | CALL | `getMansion_id_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getMansion_id_state()` // Returns the state flag |

**Block 10** — ELSE-IF `(key equals "マンション名")` (L547)
> Data type: String. Item ID: mansion_nm. Business: Mansion name — the name of the multi-unit dwelling building. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("マンション名")` // Mansion name |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getMansion_nm_value()` // Returns the mansion name |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、mansion_nm_enableのgetterの値を返す |
| 5 | CALL | `getMansion_nm_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getMansion_nm_state()` // Returns the state flag |

**Block 11** — ELSE-IF `(key equals "新料金コースコード")` (L561, ANK-4592-00-00 ADD)
> Data type: String. Item ID: new_pcrs_cd. Business: New pricing course code — the code identifier for the new pricing plan/course. Added in ANK-4592-00-00 change request. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("新料金コースコード")` // New pricing course code [ANK-4592-00-00 ADD] |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getNew_pcrs_cd_value()` // Returns the new pricing course code |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、new_pcrs_cd_enableのgetterの値を返す |
| 5 | CALL | `getNew_pcrs_cd_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getNew_pcrs_cd_state()` // Returns the state flag |

**Block 12** — ELSE-IF `(key equals "旧料金コースコード")` (L574)
> Data type: String. Item ID: old_pcrs_cd. Business: Old pricing course code — the code identifier for the previous/current pricing plan before a course change. Supports value, enable, and state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `key.equals("旧料金コースコード")` // Old pricing course code |
| 2 | IF | `subkey.equalsIgnoreCase("value")` // Subkey "value" |
| 3 | CALL | `getOld_pcrs_cd_value()` // Returns the old pricing course code |
| 4 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、old_pcrs_cd_enableのgetterの値を返す |
| 5 | CALL | `getOld_pcrs_cd_enabled()` // Returns the enable flag |
| 6 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す |
| 7 | CALL | `getOld_pcrs_cd_state()` // Returns the state flag |

**Block 13** — ELSE (no match) (L581)
> No property matches the provided key. Returns null as a safe default, allowing dynamic view binding to gracefully handle unrecognized keys.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` // 条件に一致するプロパティが存在しない場合、nullを返す |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_ucwk_no` | Field | Service detail work number — internal tracking ID for a service contract line item, used to uniquely identify the breakdown of services within a single contract. |
| `gene_add_dtm` | Field | Registration date/time — the timestamp when this service order record was created/registered in the system (year/month/day/hour/minute/second granularity). |
| `ido_rsv_no` | Field | Move reservation number — tracking identifier for service migration or line transfer reservations. |
| `mskm_dtl_no` | Field | Application detail number — the unique line item identifier within a service order application, used to reference specific items in a multi-item order. |
| `stat` | Field | Status — the current processing status of the service order (e.g., pending, in-progress, completed, cancelled). |
| `course_aply_ymd` | Field | Course application date — the date when a specific pricing/service course was applied to this service order. |
| `course_nm` | Field | Course name — the human-readable name of the pricing/service course selected for this order (e.g., "Giga Hikari Plan"). |
| `mansion_id` | Field | Mansion ID — the unique identifier for a multi-unit dwelling (mansion/apartment building) where the telecommunication service is to be installed. |
| `mansion_nm` | Field | Mansion name — the name of the multi-unit dwelling building. |
| `new_pcrs_cd` | Field | New pricing course code — the code identifying the new pricing plan/course after a change request. Added in ANK-4592-00-00. |
| `old_pcrs_cd` | Field | Old pricing course code — the code identifying the previous/current pricing plan before a course change. |
| サービス契約内訳番号 | Field (Japanese) | Service Contract Detail Number — the human-readable label for `svc_kei_ucwk_no`, used in the view layer for display. |
| 世代登録年月日時分秒 | Field (Japanese) | Registration Date/Time — the human-readable label for `gene_add_dtm`. |
| 異動予約番号 | Field (Japanese) | Move Reservation Number — the human-readable label for `ido_rsv_no`. |
| 申込明細番号 | Field (Japanese) | Application Detail Number — the human-readable label for `mskm_dtl_no`. |
| 状態 | Field (Japanese) | Status — the human-readable label for `stat`. |
| コース適用年月日 | Field (Japanese) | Course Application Date — the human-readable label for `course_aply_ymd`. |
| コース名 | Field (Japanese) | Course Name — the human-readable label for `course_nm`. |
| マンションID | Field (Japanese) | Mansion ID — the human-readable label for `mansion_id`. |
| マンション名 | Field (Japanese) | Mansion Name — the human-readable label for `mansion_nm`. |
| 新料金コースコード | Field (Japanese) | New Pricing Course Code — the human-readable label for `new_pcrs_cd`. |
| 旧料金コースコード | Field (Japanese) | Old Pricing Course Code — the human-readable label for `old_pcrs_cd`. |
| value | Subkey | Returns the field's current data value. |
| state | Subkey | Returns the field's display state flag (e.g., read-only vs. input mode). |
| enable | Subkey | Returns the field's enabled/editable flag (true = user can modify, false = display-only). |
| X31C | Framework | NTT Communications' proprietary web application framework used for building telecom service order screens. |
| DBean | Pattern | Data Bean — a presentation-layer bean that holds screen data and provides getter/setter accessors for the X31C framework. |
| KKA16701SF | Screen Code | Service order detail screen code — the specific screen that uses this bean. |
| ANK-4592-00-00 | Change Request | A change request identifier marking the addition of new pricing course code fields (`new_pcrs_cd` / `old_pcrs_cd`) to the bean. |
| SC | Service Component | Service Component — a service-layer class that handles business logic (not used in this method). |
| CBS | Common Business Service | Common Business Service — a reusable business service component (not used in this method). |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service, a core product category in NTT Communications' telecom offerings. |
