# Business Logic — FUW07101SF01DBean.typeModelData() [183 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW07101SF.FUW07101SF01DBean` |
| Layer | Utility / DBean (Web-layer data type resolver — part of the view model binding infrastructure) |
| Module | `FUW07101SF` (Package: `eo.web.webview.FUW07101SF`) |

## 1. Role

### FUW07101SF01DBean.typeModelData()

This method serves as a **data type resolution router** within the `FUW07101SF` module's view model infrastructure. It maps Japanese-labeled field names (`key`) and their associated sub-keys (`subkey`) to Java `Class<?>` type descriptors, enabling the web framework to perform dynamic data binding and type-safe rendering of form fields.

Specifically, it handles **17 distinct business field categories** spanning device provisioning metadata (e.g., indoor equipment model code, equipment provision type code, sales type code), pricing information (e.g., fee course code, equipment-type target fee course application dates), audit trail data (e.g., registration date-time, update date-time, delete date-time), and record lifecycle flags (e.g., invalid flag). For each field category, it supports **two sub-key types**: `value` (the actual data value's type) and `state` (the field's status/state descriptor's type). Both sub-key paths consistently return `String.class`, reflecting that all these fields are rendered and transmitted as string data in the web UI layer.

The method implements a **dispatch/routing pattern** — a cascade of `equals()` comparisons against known field labels, each branching into two sub-key checks. This is the DBean-side override of the `X33VDataTypeStringBeanInterface.typeModelData(String, String)` contract (inherited from `X33VDataTypeStringBean`), which the framework invokes during view-model initialization to determine how to serialize, validate, and bind each field's data.

As a **shared utility** within the `FUW07101SF` screen module, this method is instantiated on-demand by the parent DBean (`FUW07101SFBean`) when processing nested data type beans for list items like "Equipment Provision Fee Plan Distinct Equipment Model List" (`kktk_pplan_betu_kiki_mdl_list`). It does not perform any database queries, service invocations, or business-side mutations — its sole purpose is type reflection for the presentation layer.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["typeModelData key, subkey"])
    START --> NULL_CHECK["Check: key == null OR subkey == null"]

    NULL_CHECK -->|True| RETURN_NULL_1(["Return null"])
    NULL_CHECK -->|False| FIND_SLASH["Find '/' separator position in key"]

    FIND_SLASH --> ITEM_1["key = 宅内機器型式コード
(item ID: taknkiki_model_cd)"]
    ITEM_1 --> SUB_1A["subkey = 'value' (case-insensitive)"]
    ITEM_1 --> SUB_1B["subkey = 'state' (case-insensitive)"]
    SUB_1A --> RET_STR_1["Return String.class"]
    SUB_1B --> RET_STR_1

    ITEM_1 --> ITEM_2["key = 機器提供種別コード
(item ID: kktk_sbt_cd)"]
    ITEM_2 --> SUB_2A["subkey = 'value'"]
    ITEM_2 --> SUB_2B["subkey = 'state'"]
    SUB_2A --> RET_STR_2["Return String.class"]
    SUB_2B --> RET_STR_2

    ITEM_2 --> ITEM_3["key = 機器提供種別コード名称
(item ID: kktk_sbt_cd_nm)"]
    ITEM_3 --> SUB_3A["subkey = 'value'"]
    ITEM_3 --> SUB_3B["subkey = 'state'"]
    SUB_3A --> RET_STR_3["Return String.class"]
    SUB_3B --> RET_STR_3

    ITEM_3 --> ITEM_4["key = 販売種別コード
(item ID: hambai_sbt_cd)"]
    ITEM_4 --> SUB_4A["subkey = 'value'"]
    ITEM_4 --> SUB_4B["subkey = 'state'"]
    SUB_4A --> RET_STR_4["Return String.class"]
    SUB_4B --> RET_STR_4

    ITEM_4 --> ITEM_5["key = 販売種別コード名称
(item ID: hambai_sbt_cd_nm)"]
    ITEM_5 --> SUB_5A["subkey = 'value'"]
    ITEM_5 --> SUB_5B["subkey = 'state'"]
    SUB_5A --> RET_STR_5["Return String.class"]
    SUB_5B --> RET_STR_5

    ITEM_5 --> ITEM_6["key = 料金コースコード
(item ID: pcrs_cd)"]
    ITEM_6 --> SUB_6A["subkey = 'value'"]
    ITEM_6 --> SUB_6B["subkey = 'state'"]
    SUB_6A --> RET_STR_6["Return String.class"]
    SUB_6B --> RET_STR_6

    ITEM_6 --> ITEM_7["key = 料金コースコード名称
(item ID: pcrs_cd_nm)"]
    ITEM_7 --> SUB_7A["subkey = 'value'"]
    ITEM_7 --> SUB_7B["subkey = 'state'"]
    SUB_7A --> RET_STR_7["Return String.class"]
    SUB_7B --> RET_STR_7

    ITEM_7 --> ITEM_8["key = 機器型式対象料金コース適用開始年月日
(item ID: kkmdl_tg_pcrs_tstaymd)"]
    ITEM_8 --> SUB_8A["subkey = 'value'"]
    ITEM_8 --> SUB_8B["subkey = 'state'"]
    SUB_8A --> RET_STR_8["Return String.class"]
    SUB_8B --> RET_STR_8

    ITEM_8 --> ITEM_9["key = 機器型式対象料金コース適用終了年月日
(item ID: kkmdl_tg_pcrs_tendymd)"]
    ITEM_9 --> SUB_9A["subkey = 'value'"]
    ITEM_9 --> SUB_9B["subkey = 'state'"]
    SUB_9A --> RET_STR_9["Return String.class"]
    SUB_9B --> RET_STR_9

    ITEM_9 --> ITEM_10["key = 登録年月日時刻
(item ID: add_dtm)"]
    ITEM_10 --> SUB_10A["subkey = 'value'"]
    ITEM_10 --> SUB_10B["subkey = 'state'"]
    SUB_10A --> RET_STR_10["Return String.class"]
    SUB_10B --> RET_STR_10

    ITEM_10 --> ITEM_11["key = 登録オペレータアカウント
(item ID: add_opeacnt)"]
    ITEM_11 --> SUB_11A["subkey = 'value'"]
    ITEM_11 --> SUB_11B["subkey = 'state'"]
    SUB_11A --> RET_STR_11["Return String.class"]
    SUB_11B --> RET_STR_11

    ITEM_11 --> ITEM_12["key = 更新年月日時刻
(item ID: upd_dtm)"]
    ITEM_12 --> SUB_12A["subkey = 'value'"]
    ITEM_12 --> SUB_12B["subkey = 'state'"]
    SUB_12A --> RET_STR_12["Return String.class"]
    SUB_12B --> RET_STR_12

    ITEM_12 --> ITEM_13["key = 更新オペレータアカウント
(item ID: upd_opeacnt)"]
    ITEM_13 --> SUB_13A["subkey = 'value'"]
    ITEM_13 --> SUB_13B["subkey = 'state'"]
    SUB_13A --> RET_STR_13["Return String.class"]
    SUB_13B --> RET_STR_13

    ITEM_13 --> ITEM_14["key = 削除年月日時刻
(item ID: del_dtm)"]
    ITEM_14 --> SUB_14A["subkey = 'value'"]
    ITEM_14 --> SUB_14B["subkey = 'state'"]
    SUB_14A --> RET_STR_14["Return String.class"]
    SUB_14B --> RET_STR_14

    ITEM_14 --> ITEM_15["key = 削除オペレータアカウント
(item ID: del_opeacnt)"]
    ITEM_15 --> SUB_15A["subkey = 'value'"]
    ITEM_15 --> SUB_15B["subkey = 'state'"]
    SUB_15A --> RET_STR_15["Return String.class"]
    SUB_15B --> RET_STR_15

    ITEM_15 --> ITEM_16["key = 無効フラグ
(item ID: mk_flg)"]
    ITEM_16 --> SUB_16A["subkey = 'value'"]
    ITEM_16 --> SUB_16B["subkey = 'state'"]
    SUB_16A --> RET_STR_16["Return String.class"]
    SUB_16B --> RET_STR_16

    ITEM_16 --> ITEM_17["key = 無効フラグ名称
(item ID: mk_flg_nm)"]
    ITEM_17 --> SUB_17A["subkey = 'value'"]
    ITEM_17 --> SUB_17B["subkey = 'state'"]
    SUB_17A --> RET_STR_17["Return String.class"]
    SUB_17B --> RET_STR_17

    ITEM_17 --> RETURN_NULL_2(["Return null (no match)"])

    RET_STR_1 --> MATCH
    RET_STR_2 --> MATCH
    RET_STR_3 --> MATCH
    RET_STR_4 --> MATCH
    RET_STR_5 --> MATCH
    RET_STR_6 --> MATCH
    RET_STR_7 --> MATCH
    RET_STR_8 --> MATCH
    RET_STR_9 --> MATCH
    RET_STR_10 --> MATCH
    RET_STR_11 --> MATCH
    RET_STR_12 --> MATCH
    RET_STR_13 --> MATCH
    RET_STR_14 --> MATCH
    RET_STR_15 --> MATCH
    RET_STR_16 --> MATCH
    RET_STR_17 --> MATCH

    MATCH --> END(["End"])

    style START fill:#e1f5fe
    style END fill:#e1f5fe
    style RETURN_NULL_1 fill:#ffebee
    style RETURN_NULL_2 fill:#ffebee
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The Japanese-labeled **field name** used as the primary lookup key. Each value corresponds to a specific data field category tracked in the equipment provision management screen (e.g., indoor equipment model code, sales type code, fee course code, registration timestamp). The value must match one of the 17 recognized Japanese labels exactly (using `equals()`). The method also computes `indexOf("/")` on the key but the actual branch conditions use direct Japanese string comparisons — the slash index is computed but unused in any current branch. |
| 2 | `subkey` | `String` | The **sub-key** that specifies which aspect of the field's type to resolve. Two recognized values: `"value"` (returns the data type of the field's actual content) and `"state"` (returns the data type of the field's status descriptor). Both comparisons are case-insensitive (`equalsIgnoreCase`). Any other sub-key results in a `null` return. |

**External/Instance State:**
- None. The method is purely functional — it reads no instance fields, no static state, and no external configuration.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations, no service calls, no CBS invocations, and no data access**. It is a pure in-memory type resolver. The only operations performed are `String.equals()` comparisons and `String.equalsIgnoreCase()` comparisons against local parameter values.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| *(none)* | — | — | — | No data access — pure type routing with `String.equals()` and `String.equalsIgnoreCase()` comparisons only. |

## 5. Dependency Trace

This method is not invoked by any named screen entry point. It is consumed internally by the module's parent DBean as a type resolution override for list item data binding.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | DBean: `FUW07101SFBean` | `FUW07101SFBean.typeModelData(gamenId, key, subkey)` -> `return typeModelData(key, subkey)` -> `FUW07101SF01DBean.typeModelData(key, subkey)` | No terminal calls — pure type resolution. |
| 2 | DBean: `FUW07101SFBean` (kktk_pplan_betu_kiki_mdl_list) | `FUW07101SFBean.typeModelData(...)` instantiates `new FUW07101SF01DBean()` and delegates type resolution to this method for the "Equipment Provision Fee Plan Distinct Equipment Model List" field group. | No terminal calls. |

**Notes on callers:**
- The method is **not directly invoked** by any Screen class (`KKSV*`) or CBS layer. It is a framework-level DBean override that the view model infrastructure calls during list-item type resolution.
- The caller search across the entire codebase found **zero** files that call this specific method's FQN (`FUW07101SF01DBean.typeModelData`) directly. It is only reachable through the parent `FUW07101SFBean` delegation or through dynamic instantiation of `FUW07101SF01DBean` as a `X33VDataTypeBeanInterface` for specific list fields.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null guard) `(key == null || subkey == null)` (L972)

> Null-guard: returns `null` immediately if either parameter is `null`. This prevents `NullPointerException` on subsequent string operations.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // key and/or subkey is null — return null [-> null guard] |

**Block 2** — SET (separator position computation) `(unused)` (L976)

> Computes the index of the first '/' character in `key`. This value is stored but never used in any conditional branch within the method body.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/");` // Compute position of '/' separator (unused) |

**Block 3** — ELSE-IF `(key.equals("宅内機器型式コード"))` [-> Field: 宅内機器型式コード = "taknkiki_model_cd"] (L979)

> Field: Indoor Equipment Model Code. The `key` matches the Japanese label for the indoor equipment model code field. This is the first of 17 equipment/pricing/audit fields.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` // subkey = "value" (case-insensitive) |
| 2 | RETURN | `return String.class;` // Data value type is String |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` // subkey = "state" — return type of state descriptor [-> subkey = "state", status info] |
| 4 | RETURN | `return String.class;` // State type is String |

**Block 4** — ELSE-IF `(key.equals("機器提供種別コード"))` [-> Field: 機器提供種別コード = "kktk_sbt_cd"] (L989)

> Field: Equipment Provision Type Code. Classifies the type/provision method of equipment.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` // subkey is "state", returns type of status info |

**Block 5** — ELSE-IF `(key.equals("機器提供種別コード名称"))` [-> Field: 機器提供種別コード名称 = "kktk_sbt_cd_nm"] (L999)

> Field: Equipment Provision Type Code Name. The human-readable name of the equipment provision type.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 6** — ELSE-IF `(key.equals("販売種別コード"))` [-> Field: 販売種別コード = "hambai_sbt_cd"] (L1009)

> Field: Sales Type Code. Classifies the type/category of sales offering.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 7** — ELSE-IF `(key.equals("販売種別コード名称"))` [-> Field: 販売種別コード名称 = "hambai_sbt_cd_nm"] (L1019)

> Field: Sales Type Code Name. The human-readable name of the sales type.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 8** — ELSE-IF `(key.equals("料金コースコード"))` [-> Field: 料金コースコード = "pcrs_cd"] (L1029)

> Field: Fee Course Code. Identifies the pricing/fee course associated with a service plan.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 9** — ELSE-IF `(key.equals("料金コースコード名称"))` [-> Field: 料金コースコード名称 = "pcrs_cd_nm"] (L1039)

> Field: Fee Course Code Name. The human-readable name of the fee course.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 10** — ELSE-IF `(key.equals("機器型式対象料金コース適用開始年月日"))` [-> Field: 機器型式対象料金コース適用開始年月日 = "kkmdl_tg_pcrs_tstaymd"] (L1049)

> Field: Equipment-Type Target Fee Course Application Start Date-Time. The date from which a fee course applies to equipment of a given type.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 11** — ELSE-IF `(key.equals("機器型式対象料金コース適用終了年月日"))` [-> Field: 機器型式対象料金コース適用終了年月日 = "kkmdl_tg_pcrs_tendymd"] (L1059)

> Field: Equipment-Type Target Fee Course Application End Date-Time. The date until which a fee course applies to equipment of a given type.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 12** — ELSE-IF `(key.equals("登録年月日時刻"))` [-> Field: 登録年月日時刻 = "add_dtm"] (L1069)

> Field: Registration Date-Time. Timestamp of when the record was originally created/registered.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 13** — ELSE-IF `(key.equals("登録オペレータアカウント"))` [-> Field: 登録オペレータアカウント = "add_opeacnt"] (L1079)

> Field: Registration Operator Account. The operator account ID that created/registered the record.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 14** — ELSE-IF `(key.equals("更新年月日時刻"))` [-> Field: 更新年月日時刻 = "upd_dtm"] (L1089)

> Field: Update Date-Time. Timestamp of the last modification to the record.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 15** — ELSE-IF `(key.equals("更新オペレータアカウント"))` [-> Field: 更新オペレータアカウント = "upd_opeacnt"] (L1099)

> Field: Update Operator Account. The operator account ID that last modified the record.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 16** — ELSE-IF `(key.equals("削除年月日時刻"))` [-> Field: 削除年月日時刻 = "del_dtm"] (L1109)

> Field: Delete Date-Time. Timestamp of when the record was soft-deleted/removed.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 17** — ELSE-IF `(key.equals("削除オペレータアカウント"))` [-> Field: 削除オペレータアカウント = "del_opeacnt"] (L1119)

> Field: Delete Operator Account. The operator account ID that performed the delete operation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 18** — ELSE-IF `(key.equals("無効フラグ"))` [-> Field: 無効フラグ = "mk_flg"] (L1129)

> Field: Invalid Flag. Boolean-style flag indicating whether the record is deactivated/invalidated.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 19** — ELSE-IF `(key.equals("無効フラグ名称"))` [-> Field: 無効フラグ名称 = "mk_flg_nm"] (L1139)

> Field: Invalid Flag Name. The human-readable label for the invalid flag status.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | RETURN | `return String.class;` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | RETURN | `return String.class;` |

**Block 20** — RETURN (default/fallthrough) (L1142)

> No matching field was found for the given `key`. Returns `null` to signal an unrecognized field. This is the standard fallback for unknown type model lookups.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // Property not found — return null |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| 宅内機器型式コード | Field | Indoor Equipment Model Code — identifier for the type of indoor customer-premises equipment (e.g., ONT, router model) |
| 機器提供種別コード | Field | Equipment Provision Type Code — classifies how equipment is provided to the customer (purchase, lease, bundled, etc.) |
| 機器提供種別コード名称 | Field | Equipment Provision Type Code Name — human-readable label for the equipment provision type |
| 販売種別コード | Field | Sales Type Code — classifies the type/category of a sales offering or product plan |
| 販売種別コード名称 | Field | Sales Type Code Name — human-readable label for the sales type |
| 料金コースコード | Field | Fee Course Code — identifies a specific pricing plan/fee course in the service catalog |
| 料金コースコード名称 | Field | Fee Course Code Name — human-readable label for a fee course |
| 機器型式対象料金コース適用開始年月日 | Field | Equipment-Type Target Fee Course Application Start Date-Time — the date a fee course begins applying to a specific equipment type |
| 機器型式対象料金コース適用終了年月日 | Field | Equipment-Type Target Fee Course Application End Date-Time — the date a fee course stops applying to a specific equipment type |
| 登録年月日時刻 | Field | Registration Date-Time — timestamp when the record was first created |
| 登録オペレータアカウント | Field | Registration Operator Account — operator ID who created the record |
| 更新年月日時刻 | Field | Update Date-Time — timestamp of the last record modification |
| 更新オペレータアカウント | Field | Update Operator Account — operator ID who last modified the record |
| 削除年月日時刻 | Field | Delete Date-Time — timestamp when the record was soft-deleted |
| 削除オペレータアカウント | Field | Delete Operator Account — operator ID who performed the delete |
| 無効フラグ | Field | Invalid Flag — indicator that a record is deactivated or no longer valid |
| 無効フラグ名称 | Field | Invalid Flag Name — human-readable description of the invalid flag status |
| `key` | Parameter | Japanese field name label used as the primary lookup key for type resolution |
| `subkey` | Parameter | Sub-key specifying which type aspect to resolve: `"value"` for data type, `"state"` for status descriptor type |
| DBean | Acronym | Data Bean — a view-model bean class in the web framework that holds data for screen rendering |
| X33VDataTypeBeanInterface | Interface | Framework interface defining the contract for data type model resolution in view beans |
| X33VDataTypeStringBean | Class | Base class implementing the `X33VDataTypeBeanInterface` for string-typed data fields |
| `taknkiki_model_cd` | Field | Item ID for 宅内機器型式コード (Indoor Equipment Model Code) |
| `kktk_sbt_cd` | Field | Item ID for 機器提供種別コード (Equipment Provision Type Code) |
| `kktk_sbt_cd_nm` | Field | Item ID for 機器提供種別コード名称 (Equipment Provision Type Code Name) |
| `hambai_sbt_cd` | Field | Item ID for 販売種別コード (Sales Type Code) |
| `hambai_sbt_cd_nm` | Field | Item ID for 販売種別コード名称 (Sales Type Code Name) |
| `pcrs_cd` | Field | Item ID for 料金コースコード (Fee Course Code) |
| `pcrs_cd_nm` | Field | Item ID for 料金コースコード名称 (Fee Course Code Name) |
| `kkmdl_tg_pcrs_tstaymd` | Field | Item ID for 機器型式対象料金コース適用開始年月日 (Fee Course Application Start Date) |
| `kkmdl_tg_pcrs_tendymd` | Field | Item ID for 機器型式対象料金コース適用終了年月日 (Fee Course Application End Date) |
| `add_dtm` | Field | Item ID for 登録年月日時刻 (Registration Date-Time) |
| `add_opeacnt` | Field | Item ID for 登録オペレータアカウント (Registration Operator Account) |
| `upd_dtm` | Field | Item ID for 更新年月日時刻 (Update Date-Time) |
| `upd_opeacnt` | Field | Item ID for 更新オペレータアカウント (Update Operator Account) |
| `del_dtm` | Field | Item ID for 削除年月日時刻 (Delete Date-Time) |
| `del_opeacnt` | Field | Item ID for 削除オペレータアカウント (Delete Operator Account) |
| `mk_flg` | Field | Item ID for 無効フラグ (Invalid Flag) |
| `mk_flg_nm` | Field | Item ID for 無効フラグ名称 (Invalid Flag Name) |
| `FUW07101SF` | Module | Equipment Provision Management Module — a web screen module for managing equipment provisioning data |
| `FUW07101SF01DBean` | Class | DBean for equipment provision fee plan distinct equipment model list — manages type resolution for this list's fields |
| `FUW07101SFBean` | Class | Parent DBean for the FUW07101SF module — delegates type resolution to child DBeans like this one |
| `kktk_pplan_betu_kiki_mdl_list` | Field | Item ID for the Equipment Provision Fee Plan Distinct Equipment Model List — the specific list field that instantiates this DBean |
