# Business Logic — KKW00127SF02DBean.typeModelData() [157 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00127SF.KKW00127SF02DBean` |
| Layer | View/Screen Data Bean (Futurity X33 web framework) |
| Module | `KKW00127SF` (Package: `eo.web.webview.KKW00127SF`) |

## 1. Role

### KKW00127SF02DBean.typeModelData()

This method serves as a **runtime type introspection router** for the `KKW00127SF02DBean` screen data bean, implementing a key-value based dispatch pattern. Given a business item name (`key`) and a sub-key (`subkey`), it returns the appropriate `Class<?>` type that describes the data model for that field. This enables the Futurity X33 view framework to perform dynamic type checking, data binding, and validation on the server side without hardcoding type information in templates.

The method handles two distinct categories of fields: **scalar (primitive) fields** such as service contract status, application detail number, payment method continuation flag, and auto-inquiry processing status code — all of which resolve to `String.class` when the `subkey` is `"value"` or `"state"`. It also handles **list (repeating) fields** — specifically the service contract status list (`svc_kei_stat_lis_list`) and introduction code list (`intr_cd_list_list`) — which resolve to `Integer.class` when the subkey is `"*"` (requesting the list element count), or delegate to the child bean's own `typeModelData()` method when a specific index and subkey are provided.

This is a shared utility within the bean's data model, not a screen entry point. It is called by the X33 view framework during page rendering, form validation, and AJAX partial updates to determine whether a given field is a String, Integer, or a nested list item.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["typeModelData key, subkey"])
    CHECK_NULL["key or subkey is null?"]
    RETURN_NULL(["Return null"])

    CHECK_1["key equals
サービス契約ステータス?"]
    SUBCHECK_1A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_1B["subkey equals state?
iCase-insensitive"]

    CHECK_2["key equals
申込明細番号?"]
    SUBCHECK_2A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_2B["subkey equals state?
iCase-insensitive"]

    CHECK_3["key equals
サービス契約ステータスリスト?"]
    FIND_SLASH["Find / separator position"]
    EXTRACT_IDX["Extract index from key"]
    CHECK_STAR["Extracted key equals *?"]
    PARSE_INT["Parse extracted key as Integer"]
    CHECK_LIST_LEN["Index valid
0 <= index < svc_kei_stat_lis_list.size()?"]
    DELEGATE_LIST["Delegate to
X33VDataTypeStringBean.typeModelData(subkey)"]

    CHECK_4["key equals
料金グループコード?"]
    SUBCHECK_4A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_4B["subkey equals state?
iCase-insensitive"]

    CHECK_5["key equals
サービス開始希望日?"]
    SUBCHECK_5A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_5B["subkey equals state?
iCase-insensitive"]

    CHECK_6["key equals
支払い方法引継フラグ?"]
    SUBCHECK_6A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_6B["subkey equals state?
iCase-insensitive"]

    CHECK_7["key equals
紹介コードリスト?"]
    FIND_SLASH_2["Find / separator position"]
    EXTRACT_IDX_2["Extract index from key"]
    CHECK_STAR_2["Extracted key equals *?"]
    PARSE_INT_2["Parse extracted key as Integer"]
    CHECK_INTR_LIST["Index valid
0 <= index < intr_cd_list_list.size()?"]
    DELEGATE_INTR["Delegate to
X33VDataTypeStringBean.typeModelData(subkey)"]

    CHECK_8["key equals
紹介コード?"]
    SUBCHECK_8A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_8B["subkey equals state?
iCase-insensitive"]

    CHECK_9["key equals
サービスコード?"]
    SUBCHECK_9A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_9B["subkey equals state?
iCase-insensitive"]

    CHECK_10["key equals
更新年月日時
（サービス契約）?"]
    SUBCHECK_10A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_10B["subkey equals state?
iCase-insensitive"]

    CHECK_11["key equals
自動照会処理状態コード?"]
    SUBCHECK_11A["subkey equals value?
iCase-insensitive"]
    SUBCHECK_11B["subkey equals state?
iCase-insensitive"]

    DEFAULT_RETURN(["Return null"])

    START --> CHECK_NULL
    CHECK_NULL -- Yes --> RETURN_NULL
    CHECK_NULL -- No --> CHECK_1

    CHECK_1 -- Yes --> SUBCHECK_1A
    CHECK_1 -- No --> CHECK_2

    SUBCHECK_1A -- Yes --> SUBRET_1A["Return String.class"]
    SUBCHECK_1A -- No --> SUBCHECK_1B
    SUBCHECK_1B -- Yes --> SUBRET_1B["Return String.class"]

    SUBCHECK_1B -- No --> CHECK_2

    SUBRET_1A --> END_NODE
    SUBRET_1B --> END_NODE

    CHECK_2 -- Yes --> SUBCHECK_2A
    CHECK_2 -- No --> CHECK_3

    SUBCHECK_2A -- Yes --> SUBRET_2A["Return String.class"]
    SUBCHECK_2A -- No --> SUBCHECK_2B
    SUBCHECK_2B -- Yes --> SUBRET_2B["Return String.class"]

    SUBCHECK_2B -- No --> CHECK_3

    SUBRET_2A --> END_NODE
    SUBRET_2B --> END_NODE

    CHECK_3 -- Yes --> FIND_SLASH
    CHECK_3 -- No --> CHECK_4

    FIND_SLASH --> EXTRACT_IDX
    EXTRACT_IDX --> CHECK_STAR
    CHECK_STAR -- Yes --> STAR_RET["Return Integer.class"]
    CHECK_STAR -- No --> PARSE_INT
    PARSE_INT -- Invalid --> PARSE_INT_FAIL["Return null"]
    PARSE_INT -- Valid --> CHECK_LIST_LEN
    CHECK_LIST_LEN -- Invalid --> LIST_LEN_FAIL["Return null"]
    CHECK_LIST_LEN -- Valid --> DELEGATE_LIST
    DELEGATE_LIST --> END_NODE

    CHECK_4 -- Yes --> SUBCHECK_4A
    CHECK_4 -- No --> CHECK_5

    SUBCHECK_4A -- Yes --> SUBRET_4A["Return String.class"]
    SUBCHECK_4A -- No --> SUBCHECK_4B
    SUBCHECK_4B -- Yes --> SUBRET_4B["Return String.class"]

    SUBCHECK_4B -- No --> CHECK_5

    SUBRET_4A --> END_NODE
    SUBRET_4B --> END_NODE

    CHECK_5 -- Yes --> SUBCHECK_5A
    CHECK_5 -- No --> CHECK_6

    SUBCHECK_5A -- Yes --> SUBRET_5A["Return String.class"]
    SUBCHECK_5A -- No --> SUBCHECK_5B
    SUBCHECK_5B -- Yes --> SUBRET_5B["Return String.class"]

    SUBCHECK_5B -- No --> CHECK_6

    SUBRET_5A --> END_NODE
    SUBRET_5B --> END_NODE

    CHECK_6 -- Yes --> SUBCHECK_6A
    CHECK_6 -- No --> CHECK_7

    SUBCHECK_6A -- Yes --> SUBRET_6A["Return String.class"]
    SUBCHECK_6A -- No --> SUBCHECK_6B
    SUBCHECK_6B -- Yes --> SUBRET_6B["Return String.class"]

    SUBCHECK_6B -- No --> CHECK_7

    SUBRET_6A --> END_NODE
    SUBRET_6B --> END_NODE

    CHECK_7 -- Yes --> FIND_SLASH_2
    CHECK_7 -- No --> CHECK_8

    FIND_SLASH_2 --> EXTRACT_IDX_2
    EXTRACT_IDX_2 --> CHECK_STAR_2
    CHECK_STAR_2 -- Yes --> STAR_RET_2["Return Integer.class"]
    CHECK_STAR_2 -- No --> PARSE_INT_2
    PARSE_INT_2 -- Invalid --> PARSE_INT_FAIL_2["Return null"]
    PARSE_INT_2 -- Valid --> CHECK_INTR_LIST
    CHECK_INTR_LIST -- Invalid --> INTR_LIST_FAIL["Return null"]
    CHECK_INTR_LIST -- Valid --> DELEGATE_INTR
    DELEGATE_INTR --> END_NODE

    CHECK_8 -- Yes --> SUBCHECK_8A
    CHECK_8 -- No --> CHECK_9

    SUBCHECK_8A -- Yes --> SUBRET_8A["Return String.class"]
    SUBCHECK_8A -- No --> SUBCHECK_8B
    SUBCHECK_8B -- Yes --> SUBRET_8B["Return String.class"]

    SUBCHECK_8B -- No --> CHECK_9

    SUBRET_8A --> END_NODE
    SUBRET_8B --> END_NODE

    CHECK_9 -- Yes --> SUBCHECK_9A
    CHECK_9 -- No --> CHECK_10

    SUBCHECK_9A -- Yes --> SUBRET_9A["Return String.class"]
    SUBCHECK_9A -- No --> SUBCHECK_9B
    SUBCHECK_9B -- Yes --> SUBRET_9B["Return String.class"]

    SUBCHECK_9B -- No --> CHECK_10

    SUBRET_9A --> END_NODE
    SUBRET_9B --> END_NODE

    CHECK_10 -- Yes --> SUBCHECK_10A
    CHECK_10 -- No --> CHECK_11

    SUBCHECK_10A -- Yes --> SUBRET_10A["Return String.class"]
    SUBCHECK_10A -- No --> SUBCHECK_10B
    SUBCHECK_10B -- Yes --> SUBRET_10B["Return String.class"]

    SUBCHECK_10B -- No --> CHECK_11

    SUBRET_10A --> END_NODE
    SUBRET_10B --> END_NODE

    CHECK_11 -- Yes --> SUBCHECK_11A
    CHECK_11 -- No --> DEFAULT_RETURN

    SUBCHECK_11A -- Yes --> SUBRET_11A["Return String.class"]
    SUBCHECK_11A -- No --> SUBCHECK_11B
    SUBCHECK_11B -- Yes --> SUBRET_11B["Return String.class"]

    SUBCHECK_11B -- No --> DEFAULT_RETURN

    SUBRET_11A --> END_NODE
    SUBRET_11B --> END_NODE

    STAR_RET --> END_NODE
    STAR_RET_2 --> END_NODE
    PARSE_INT_FAIL --> END_NODE
    LIST_LEN_FAIL --> END_NODE
    PARSE_INT_FAIL_2 --> END_NODE
    INTR_LIST_FAIL --> END_NODE
    RETURN_NULL --> END_NODE
    DEFAULT_RETURN --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The Japanese-language business item name. This identifies which field of the bean the caller is asking about — e.g., "サービス契約ステータス" (Service Contract Status), "申込明細番号" (Application Detail Number), "料金グループコード" (Price Group Code), "紹介コードリスト" (Introduction Code List). For list-type fields, the key follows the pattern `"LIST_KEY/index"` where the index is appended after a slash. |
| 2 | `subkey` | `String` | A sub-attribute selector within a field. For scalar fields it accepts `"value"` (to get the data type of the field's value) or `"state"` (to get the data type of the field's UI state). For list fields it is forwarded to the child `X33VDataTypeStringBean.typeModelData()` method. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `svc_kei_stat_lis_list` | `X33VDataTypeList` | The repeating list of service contract status items. Used when the key is "サービス契約ステータスリスト" (Service Contract Status List). |
| `intr_cd_list_list` | `X33VDataTypeList` | The repeating list of introduction/referred-by codes. Used when the key is "紹介コードリスト" (Introduction Code List). |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `X33VDataTypeStringBean.typeModelData` | X33VDataTypeBean | - | Delegates to child bean's type model method for list elements (scalar or list item introspection) |
| - | `String.indexOf` | Java Lang | - | Finds the `/` separator position in the key string for list index extraction |
| - | `String.substring` | Java Lang | - | Extracts the index portion after the `/` separator |
| - | `Integer.valueOf` | Java Lang | - | Parses the extracted index string to an integer |
| - | `X33VDataTypeList.size` | X33VDataTypeList | - | Gets the count of elements in the list for bounds checking |
| - | `X33VDataTypeList.get` | X33VDataTypeList | - | Retrieves a specific list element by index |

This method performs **no direct database or SC/CBS operations**. It is a pure type-resolution utility that operates entirely in-memory on bean fields.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Internal Bean Framework | `X33VView framework calls typeModelData` | `X33VDataTypeStringBean.typeModelData [R] in-memory list element` |

**Note:** The pre-computed caller analysis shows that `typeModelData` is called internally within `KKW00127SF02DBean`. This method implements the `X33VDataTypeBeanInterface` contract, meaning the Futurity X33 view framework calls it automatically during page rendering and validation to resolve data types at runtime. No external screens or batches invoke it directly.

## 6. Per-Branch Detail Blocks

### Block 1 — IF (null guard) `(key == null || subkey == null)` (L730)

Null-check guard: returns null immediately if either argument is null.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // L732: Find first slash for list key parsing |

### Block 2 — IF-ELSE-IF chain (key dispatch) (L735–L867)

Top-level dispatch on the `key` value. Each branch handles one business item type.

### Block 2.1 — IF `key.equals("サービス契約ステータス")` (Service Contract Status) (L735)

Handles scalar field "サービス契約ステータス" (item ID: `svc_kei_stat`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L736: subkey is "value" (case-insensitive) |
| 2 | RETURN | `return String.class` // L737: The value type is String |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L739: subkey is "state" (case-insensitive). Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L740: The state type is String |

### Block 2.2 — ELSE-IF `key.equals("申込明細番号")` (Application Detail Number) (L745)

Handles scalar field "申込明細番号" (item ID: `mskm_dtl_no`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L746 |
| 2 | RETURN | `return String.class` // L747 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L749. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L750 |

### Block 2.3 — ELSE-IF `key.equals("サービス契約ステータスリスト")` (Service Contract Status List) (L755)

Handles list-type field "サービス契約ステータスリスト" (item ID: `svc_kei_stat_lis`). This is the most complex branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` // L757: Extracts the portion after "/". Comment: "サービス契約ステータスリスト/0"から最初の"/"より後を取得。 |
| 2 | IF | `key.equals("*")` // L760: Index is "*", meaning caller wants list element count |
| 3 | RETURN | `return Integer.class` // L761: Returns Integer for list size queries |
| 4 | SET | `tmpIndexInt = null` // L763: Temporary integer variable |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` // L766: Attempts to parse key as integer |
| 6 | CATCH | `NumberFormatException e` // L769: Index is not a numeric string |
| 7 | RETURN | `return null` // L770: Returns null for non-numeric index |
| 8 | IF | `tmpIndexInt == null` // L772: Guard against null (should not reach here but defensive) |
| 9 | RETURN | `return null` // L773 |
| 10 | SET | `tmpIndex = tmpIndexInt.intValue()` // L775: Unboxes to primitive int |
| 11 | IF | `tmpIndex < 0 || tmpIndex >= svc_kei_stat_lis_list.size()` // L777: Bounds check. Comment: インデックス値がリスト個数-1を超えると、ここでnullを返す。 |
| 12 | RETURN | `return null` // L778: Out-of-bounds index |
| 13 | RETURN | `((X33VDataTypeStringBean)svc_kei_stat_lis_list.get(tmpIndex)).typeModelData(subkey)` // L780: Delegates to the child bean's typeModelData |

### Block 2.4 — ELSE-IF `key.equals("料金グループコード")` (Price Group Code) (L785)

Handles scalar field "料金グループコード" (item ID: `prc_grp_cd`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L786 |
| 2 | RETURN | `return String.class` // L787 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L789. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L790 |

### Block 2.5 — ELSE-IF `key.equals("サービス開始希望日")` (Desired Service Start Date) (L795)

Handles scalar field "サービス開始希望日" (item ID: `svc_sta_kibo_ymd`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L796 |
| 2 | RETURN | `return String.class` // L797 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L799. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L800 |

### Block 2.6 — ELSE-IF `key.equals("支払い方法引継フラグ")` (Payment Method Continuation Flag) (L805)

Handles scalar field "支払い方法引継フラグ" (item ID: `payway_keizoku_flg`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L806 |
| 2 | RETURN | `return String.class` // L807 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L809. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L810 |

### Block 2.7 — ELSE-IF `key.equals("紹介コードリスト")` (Introduction Code List) (L815)

Handles list-type field "紹介コードリスト" (item ID: `intr_cd_list`). Structurally identical to Block 2.3 (Service Contract Status List).

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` // L817: Extracts the portion after "/" |
| 2 | IF | `key.equals("*")` // L820: "*" means caller wants list size |
| 3 | RETURN | `return Integer.class` // L821: Returns Integer for list size |
| 4 | SET | `tmpIndexInt = null` // L823 |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` // L826: Parse key as integer |
| 6 | CATCH | `NumberFormatException e` // L829 |
| 7 | RETURN | `return null` // L830: Non-numeric index |
| 8 | IF | `tmpIndexInt == null` // L832 |
| 9 | RETURN | `return null` // L833 |
| 10 | SET | `tmpIndex = tmpIndexInt.intValue()` // L835 |
| 11 | IF | `tmpIndex < 0 || tmpIndex >= intr_cd_list_list.size()` // L837: Bounds check. Comment: インデックス値がリスト個数-1を超えると、ここでnullを返す。 |
| 12 | RETURN | `return null` // L838 |
| 13 | RETURN | `((X33VDataTypeStringBean)intr_cd_list_list.get(tmpIndex)).typeModelData(subkey)` // L840: Delegates to child bean |

### Block 2.8 — ELSE-IF `key.equals("紹介コード")` (Introduction Code) (L845)

Handles scalar field "紹介コード" (item ID: `intr_cd`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L846 |
| 2 | RETURN | `return String.class` // L847 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L849. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L850 |

### Block 2.9 — ELSE-IF `key.equals("サービスコード")` (Service Code) (L855)

Handles scalar field "サービスコード" (item ID: `svc_cd`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L856 |
| 2 | RETURN | `return String.class` // L857 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L859. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L860 |

### Block 2.10 — ELSE-IF `key.equals("更新年月日時（サービス契約）")` (Update DateTime — Service Contract) (L865)

Handles scalar field "更新年月日時（サービス契約）" (item ID: `upd_dtm`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L866 |
| 2 | RETURN | `return String.class` // L867 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L869. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L870 |

### Block 2.11 — ELSE-IF `key.equals("自動照会処理状態コード")` (Auto Inquiry Processing Status Code) (L875)

Handles scalar field "自動照会処理状態コード" (item ID: `auto_shosa_tran_stat_cd`).

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` // L876 |
| 2 | RETURN | `return String.class` // L877 |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // L879. Comment: subkeyが"state"の場合、ステータスを返す。 |
| 4 | RETURN | `return String.class` // L880 |

### Block 3 — RETURN (default) (L883)

Fallback when no matching key is found. Comment: 条件に合致するプロパティが存在しない場合は、nullを返す。

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` // L883: No matching property found |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_stat` | Field | Service detail status — the current status of a service contract line item (e.g., active, cancelled, pending) |
| `svc_kei_stat_lis` | Field | Service detail status list — a repeating/ordinal list of service contract status items |
| `mskm_dtl_no` | Field | Application detail number — internal tracking ID for a service application line item |
| `prc_grp_cd` | Field | Price group code — classifies the pricing tier or billing category for the service |
| `svc_sta_kibo_ymd` | Field | Desired service start date (year/month/day) — the customer's requested activation date |
| `payway_keizoku_flg` | Field | Payment method continuation flag — indicates whether to carry over the existing payment method for contract renewal/change |
| `intr_cd` | Field | Introduction code — code identifying how the customer was referred/referred by |
| `intr_cd_list` | Field | Introduction code list — a repeating/ordinal list of introduction code items |
| `svc_cd` | Field | Service code — the unique identifier for a telecom service offering |
| `upd_dtm` | Field | Update date/time (service contract) — timestamp of the last modification to the service contract record |
| `auto_shosa_tran_stat_cd` | Field | Auto inquiry processing status code — tracks the state of automated reference/inquiry processing workflows |
| `key` | Parameter | The Japanese-language business item name used as a lookup key for type introspection |
| `subkey` | Parameter | A sub-attribute selector: `"value"` for the data value type, `"state"` for the UI state type, `"*"` for list count, or an index (e.g., `"0"`, `"1"`) for list elements |
| X33VDataTypeBeanInterface | Interface | Futurity X33 framework interface requiring `typeModelData()` implementation for runtime type introspection |
| X33VDataTypeList | Class | A framework list wrapper that holds a typed collection of `X33VDataTypeBeanInterface` elements |
| X33VDataTypeStringBean | Class | A framework bean representing a single String-typed data field, implementing `X33VDataTypeBeanInterface` |
| サービス契約ステータス | Japanese term | Service Contract Status — the lifecycle state of a telecom service contract (active, suspended, cancelled, etc.) |
| 申込明細番号 | Japanese term | Application Detail Number — unique sequence number identifying a line item within a service application |
| 料金グループコード | Japanese term | Price Group Code — categorizes the billing/charging tier for a service |
| サービス開始希望日 | Japanese term | Desired Service Start Date — the customer-requested date to begin the service |
| 支払い方法引継フラグ | Japanese term | Payment Method Continuation Flag — boolean flag indicating if the existing payment method should be retained during contract change |
| 紹介コード | Japanese term | Introduction Code — referral source code identifying how a customer learned about the service |
| サービスコード | Japanese term | Service Code — the product code identifying a specific telecom service offering |
| 更新年月日時（サービス契約） | Japanese term | Update DateTime (Service Contract) — audit timestamp for the last update to the service contract |
| 自動照会処理状態コード | Japanese term | Auto Inquiry Processing Status Code — tracks the processing state of automated reference checks (e.g., credit verification, address validation) |
