# Business Logic — KKW00816SFBean.loadModelData() [516 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00816SF.KKW00816SFBean` |
| Layer | Service Component / Web Bean (Controller-adjacent) |
| Module | `KKW00816SF` (Package: `eo.web.webview.KKW00816SF`) |

## 1. Role

### KKW00816SFBean.loadModelData()

This method serves as the central data-access routing dispatch for the KKW00816SF screen's data model. It resolves a composite key string and an optional subkey into the appropriate field value or state from the service contract data domain (telecom order management). The method implements a routing/dispatch pattern: it inspects the key to determine whether it refers to a shared-info view, a data-type-list (customer contract relay list or option service contract list), or one of over thirty individual string-type fields covering the service contract lifecycle -- from order content codes and pricing plans through session management, status tracking, and audit timestamps.

For **data-type-list** fields (customer contract relay list, option service contract list), the method acts as a recursive delegator: it parses the key into a list-index and nested property path, casts the list element to `X33VDataTypeBeanInterface`, and recursively calls `loadModelData` on the child bean to drill down into nested structures. For wildcard index access (`"*"`), it returns the list size.

For **simple string fields**, the method routes the request to the appropriate getter, branching on the subkey: `"value"` returns the field's actual data value, `"state"` returns the field's validation/editability state, and `"enable"` (where applicable) returns whether the field is enabled. Some fields also perform light transformations, such as the session count field which normalizes a dash character to a standard ASCII hyphen.

Its role in the larger system is that of a **unified data bridge** between the presentation layer (JSP screens) and the bean data model, enabling screens to request any field by a human-readable key string without knowing the internal field names or getter method structure. It is called by multiple internal methods of the same bean and also invoked by itself during recursive list-element resolution.

The Javadoc states: "項目名とサブキーからデータを取得します" (Retrieves data from item name and subkey). The method handles three key specification patterns documented in code comments:
1. Simple item name (String, Long, Boolean types, no repeat index) -- for fetching a single field value.
2. Item name / Index -- for data-type-bean types outside the repeat designation item, fetching a specific indexed element's value.
3. Item name / Index / data-type-bean item name -- for data-type-bean types, drilling into a nested property.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> CheckKeyNull["key is null"]
    CheckKeyNull -->|Yes| RET_NULL1["Return null"]
    CheckKeyNull -->|No| CheckSubkeyNull["subkey is null"]

    CheckSubkeyNull -->|Yes| SetSubkeyEmpty["subkey set to empty string"]
    CheckSubkeyNull -->|No| CheckShared["key starts with //"]

    SetSubkeyEmpty --> CheckShared

    CheckShared -->|Yes| CALL_SHARED["super.loadCommonInfoData key"]
    CALL_SHARED --> RET_SHARED["Return shared info data"]

    CheckShared -->|No| FindSlash["key contains /"]
    FindSlash -->|Yes| ExtractElement["Extract first element before /"]
    FindSlash -->|No| AssignKeyElement["keyElement equals full key"]

    ExtractElement --> RouteDispatch["Route by keyElement"]
    AssignKeyElement --> RouteDispatch

    RouteDispatch --> BranchCust["顧客契約引継リスト"]
    BranchCust --> CustProcess["Handle customer contract relay list via X33VDataTypeBeanInterface"]

    RouteDispatch --> BranchOpList["オプションサービス契約リスト"]
    BranchOpList --> OpListProcess["Handle option service contract list via X33VDataTypeBeanInterface"]

    RouteDispatch --> BranchString["String type fields"]
    BranchString --> StringProcess["Return value or state via getter"]

    RouteDispatch --> BranchDefault["No match"]
    BranchDefault --> RET_DEFAULT["Return null"]

    CustProcess --> RET_OUT["Return result"]
    OpListProcess --> RET_OUT
    StringProcess --> RET_OUT
    RET_NULL1 --> END_NODE(["End"])
    RET_SHARED --> END_NODE
    RET_DEFAULT --> END_NODE
    RET_OUT --> END_NODE

    END_NODE
```

**CRITICAL -- Constant Resolution:**

This method does not branch on external constants (e.g., `SomeConstClass.FIELD_NAME.equals(variable)`). All conditional routing is based on **literal Japanese strings** that represent the business-facing field names. The key string literals used for routing are:

| keyElement Literal | Business Meaning |
|-------------------|-----------------|
| `顧客契約引継リスト` | Customer contract relay list (data-type-list) |
| `オプションサービス契約リスト` | Option service contract list (data-type-list) |
| `申込種別コード` | Application type code |
| `オプションサービスコード` | Option service code |
| `親契約識別コード` | Parent contract identification code |
| `業務パラメータID（セッション上限数）` | Business parameter ID (session upper limit) |
| `業務パラメータ設定値（セッション上限数）` | Business parameter setting value (session upper limit) |
| `業務パラメータID（予約上限日数）` | Business parameter ID (reservation upper limit days) |
| `業務パラメータ設定値（予約上限日数）` | Business parameter setting value (reservation upper limit days) |
| `事務手数料自動適用要不要` | Office fee automatic application applicability |
| `料金コースコード` | Pricing course code |
| `料金プランコード` | Pricing plan code |
| `料金プラン固定単価番号` | Pricing plan fixed unit price number |
| `初期マルチセッション認証IDパスワード` | Initial multi-session authentication ID password |
| `マルチセッション認証ID` | Multi-session authentication ID |
| `セッション数` | Session count |
| `利用開始日（年）` | Service start date (year) |
| `利用開始日（月）` | Service start date (month) |
| `利用開始日（日）` | Service start date (day) |
| `利用開始日` | Service start date |
| `サービス課金開始年月日` | Service billing start year/month/day |
| `運用年月日` | Operation date |
| `運用年月日时分秒` | Operation datetime |
| `実施オプションサービス契約ステータス` | Implemented option service contract status |
| `サービス契約ステータス` | Service contract status |
| `お客様ステータス` | Customer status |
| `請求契約番号` | Billing contract number |
| `進展ステータス` | Progress status |
| `進展特記事項1` | Progress special item 1 |
| `オーダ種別コード` | Order type code |
| `サービスオーダコード` | Service order code |
| `要求種別コード` | Request type code |
| `オーダ発行条件コード` | Order issuance condition code |
| `オーダ内容コード` | Order content code |
| `オプションSOT登録実施` | Option SOT registration implementation |
| `世代管理年月日时分秒（サービス契約）` | Generation management datetime (service contract) |
| `サービス契約内訳番号` | Service contract breakdown number |
| `世代管理年月日时分秒（サービス契約内訳）` | Generation management datetime (service contract breakdown) |
| `最終更新年月日时分秒` | Last update datetime |
| `異動年月日时分秒` | Movement datetime |
| `サービス契約内訳ステータス` | Service contract breakdown status |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | A composite key that identifies which data model field to retrieve. It can be a simple item name (e.g., "オーダ内容コード" for order content code), an item name with index (e.g., "顧客契約引継リスト/0/fieldName" for accessing index 0 of the customer contract relay list), or a shared-info key starting with "//". The key drives all routing decisions in this method. |
| 2 | `subkey` | `String` | A secondary qualifier that refines the request for non-list fields. Common values are `"value"` (retrieve the actual field value), `"state"` (retrieve the field's validation/edit state), and `"enable"` (retrieve the field's enabled/disabled status). For data-type-list fields, it is passed through to child beans and typically takes `"value"` or `"state"`. |

**Instance fields read by this method:**

| Field | Type | Usage |
|-------|------|-------|
| `cust_kei_hktgi_list_list` | `List<X33VDataTypeBeanInterface>` | Customer contract relay list -- used in the first data-type-list branch to return size or resolve nested property access |
| `op_svc_kei_list_list` | `List<X33VDataTypeBeanInterface>` | Option service contract list -- used in the second data-type-list branch for the same purpose |

The method also calls over 30 pairs of getter methods (`getXxx_value()`, `getXxx_state()`, and a few `getXxx_enabled()`) on the bean itself, which internally access instance fields of various types (String, Long, Integer, etc.).

## 4. CRUD Operations / Called Services

This method is primarily a **data access routing dispatcher** -- it does not perform database operations directly. Instead, it delegates to getter methods that may internally read from entities or service components. The pre-computed evidence from the code analysis graph confirms all called methods are read operations (R) on bean properties.

### Pre-computed evidence from code analysis graph:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` utility in `JKKAdEditCC` |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` utility in `JKKAdEdit` |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` utility in `JKKTelnoInfoAddMapperCC` |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` utility in `JDKejbStringEdit` |
| R | `KKW00816SFBean.getCust_stat_state` | KKW00816SFBean | - | Calls `getCust_stat_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getCust_stat_value` | KKW00816SFBean | - | Calls `getCust_stat_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getIdo_dtm_state` | KKW00816SFBean | - | Calls `getIdo_dtm_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getIdo_dtm_value` | KKW00816SFBean | - | Calls `getIdo_dtm_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getJssi_op_svc_kei_stat_state` | KKW00816SFBean | - | Calls `getJssi_op_svc_kei_stat_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getJssi_op_svc_kei_stat_value` | KKW00816SFBean | - | Calls `getJssi_op_svc_kei_stat_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getKk0081_gene_add_dtm_state` | KKW00816SFBean | - | Calls `getKk0081_gene_add_dtm_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getKk0081_gene_add_dtm_value` | KKW00816SFBean | - | Calls `getKk0081_gene_add_dtm_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getKk0161_gene_add_dtm_state` | KKW00816SFBean | - | Calls `getKk0161_gene_add_dtm_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getKk0161_gene_add_dtm_value` | KKW00816SFBean | - | Calls `getKk0161_gene_add_dtm_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getLast_upd_dtm_state` | KKW00816SFBean | - | Calls `getLast_upd_dtm_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getLast_upd_dtm_value` | KKW00816SFBean | - | Calls `getLast_upd_dtm_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getMltise_ninsho_id_state` | KKW00816SFBean | - | Calls `getMltise_ninsho_id_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getMltise_ninsho_id_value` | KKW00816SFBean | - | Calls `getMltise_ninsho_id_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getMskm_sbt_cd_state` | KKW00816SFBean | - | Calls `getMskm_sbt_cd_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getMskm_sbt_cd_value` | KKW00816SFBean | - | Calls `getMskm_sbt_cd_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOdr_hakko_joken_cd_state` | KKW00816SFBean | - | Calls `getOdr_hakko_joken_cd_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOdr_hakko_joken_cd_value` | KKW00816SFBean | - | Calls `getOdr_hakko_joken_cd_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOdr_naiyo_cd_state` | KKW00816SFBean | - | Calls `getOdr_naiyo_cd_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOdr_naiyo_cd_value` | KKW00816SFBean | - | Calls `getOdr_naiyo_cd_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOp_sod_add_jssi_state` | KKW00816SFBean | - | Calls `getOp_sod_add_jssi_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOp_sod_add_jssi_value` | KKW00816SFBean | - | Calls `getOp_sod_add_jssi_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOp_svc_cd_state` | KKW00816SFBean | - | Calls `getOp_svc_cd_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOp_svc_cd_value` | KKW00816SFBean | - | Calls `getOp_svc_cd_value` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOrder_sbt_cd_state` | KKW00816SFBean | - | Calls `getOrder_sbt_cd_state` in `KKW00816SFBean` |
| R | `KKW00816SFBean.getOrder_sbt_cd_value` | KKW00816SFBean | - | Calls `getOrder_sbt_cd_value` in `KKW00816SFBean` |

No direct SC Codes (like `EKK0361A010SC`) or DB table names are referenced within this method. All data access is mediated through bean property getters. The utility `substring` calls (from `JKKAdEditCC`, `JKKAdEdit`, `JKKTelnoInfoAddMapperCC`, `JDKejbStringEdit`) are internal string manipulation utilities used for key parsing, not database operations.

## 5. Dependency Trace

### Pre-computed evidence from code analysis graph:

No screen/batch entry points found within 8 hops. Direct callers found: 3 methods.
Terminal operations from this method: `getSvc_kei_ucwk_stat_state` [R], `getSvc_kei_ucwk_stat_value` [R], `getIdo_dtm_state` [R], `getIdo_dtm_value` [R], `getLast_upd_dtm_state` [R], `getLast_upd_dtm_value` [R], `getKk0161_gene_add_dtm_state` [R], `getKk0161_gene_add_dtm_value` [R], `getSvc_kei_ucwk_no_state` [R], `getSvc_kei_ucwk_no_value` [R], `getKk0081_gene_add_dtm_state` [R], `getKk0081_gene_add_dtm_value` [R], `getOp_sod_add_jssi_state` [R], `getOp_sod_add_jssi_value` [R], `getOdr_naiyo_cd_state` [R], `getOdr_naiyo_cd_value` [R], `getOdr_hakko_joken_cd_state` [R], `getOdr_hakko_joken_cd_value` [R], `getYokyu_sbt_cd_state` [R], `getYokyu_sbt_cd_value` [R]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Method: `KKW00816SFBean.getJsflist_typelist_cust_kei_hktgi_list()` | `KKW00816SFBean.getJsflist_typelist_cust_kei_hktgi_list()` -> `KKW00816SFBean.loadModelData(String, String)` | `cust_kei_hktgi_list_list [R] X33VDataTypeBeanInterface` |
| 2 | Method: `KKW00816SFBean.getJsflist_typelist_op_svc_kei_list()` | `KKW00816SFBean.getJsflist_typelist_op_svc_kei_list()` -> `KKW00816SFBean.loadModelData(String, String)` | `op_svc_kei_list_list [R] X33VDataTypeBeanInterface` |
| 3 | Method: `KKW00816SFBean.loadModelData()` (no-arg overload) | `KKW00816SFBean.loadModelData()` -> `KKW00816SFBean.loadModelData(String, String)` | `all 30+ getter pairs [R] bean properties` |

**Terminal operations reached from this method (all R -- read):**

| Operation | Type | Description |
|-----------|------|-------------|
| `getSvc_kei_ucwk_stat_state` | R | Service contract breakdown status state |
| `getSvc_kei_ucwk_stat_value` | R | Service contract breakdown status value |
| `getIdo_dtm_state` | R | Movement datetime state |
| `getIdo_dtm_value` | R | Movement datetime value |
| `getLast_upd_dtm_state` | R | Last update datetime state |
| `getLast_upd_dtm_value` | R | Last update datetime value |
| `getKk0161_gene_add_dtm_state` | R | Generation management datetime (service contract breakdown) state |
| `getKk0161_gene_add_dtm_value` | R | Generation management datetime (service contract breakdown) value |
| `getSvc_kei_ucwk_no_state` | R | Service contract breakdown number state |
| `getSvc_kei_ucwk_no_value` | R | Service contract breakdown number value |
| `getKk0081_gene_add_dtm_state` | R | Generation management datetime (service contract) state |
| `getKk0081_gene_add_dtm_value` | R | Generation management datetime (service contract) value |
| `getOp_sod_add_jssi_state` | R | Option SOT registration implementation state |
| `getOp_sod_add_jssi_value` | R | Option SOT registration implementation value |
| `getOdr_naiyo_cd_state` | R | Order content code state |
| `getOdr_naiyo_cd_value` | R | Order content code value |
| `getOdr_hakko_joken_cd_state` | R | Order issuance condition code state |
| `getOdr_hakko_joken_cd_value` | R | Order issuance condition code value |
| `getYokyu_sbt_cd_state` | R | Request type code state |
| `getYokyu_sbt_cd_value` | R | Request type code value |
| `getCust_kei_hktgi_list_list` (via getChild) | R | Customer contract relay list -- nested via X33VDataTypeBeanInterface |
| `getOp_svc_kei_list_list` (via getChild) | R | Option service contract list -- nested via X33VDataTypeBeanInterface |

No screen/batch entry points (KKSV*) were found within 8 hops of this method. The method is primarily an internal data-access utility called by other bean methods within the same class.

## 6. Per-Branch Detail Blocks

### Block 1 -- IF (null key check) (L1230)
Checks if the key is null. Returns null immediately.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `if(key == null)` |
| 2 | RETURN | `return null;` // "keyがnullの場合、null返す" (If key is null, return null) |

### Block 2 -- ELSE IF (null subkey) (L1235)
If key is not null but subkey is null, initializes subkey to an empty string.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(subkey == null)` |
| 2 | SET | `subkey = new String("");` // "subkeyがnullの場合、空文字列に" (If subkey is null, set to empty string) |

### Block 3 -- Shared Info Check (L1243)
Checks if the key starts with "//" which indicates a shared-info view request.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyElement;` // Declare keyElement variable |
| 2 | SET | `int separaterPoint = key.indexOf("//");` // "keyが情報ビューに関する指定か否かチェック" (Check whether key is a shared-info view specification) |
| 3 | CHECK | `if(separaterPoint == 0)` |
| 4 | CALL | `super.loadCommonInfoData(key);` // Delegate to parent class for shared info processing |

### Block 4 -- Root Element Extraction (L1250)
Parses the key to extract the first element before the "/" separator.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/");` // "区切り符号（ここでは/）を検索" (Search for separator) |
| 2 | CHECK | `if(separaterPoint > 0)` |
| 3 | SET | `keyElement = key.substring(0, separaterPoint);` // Extract element before "/" |
| 4 | ELSE | `else { keyElement = key; }` // No separator found, use full key |

### Block 5 -- DATA-TYPE-LIST: 顧客契約引継リスト (Customer Contract Relay List) (L1259)
Routes to the customer contract relay list branch. This is the first data-type-list field.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `if(keyElement.equals("顧客契約引継リスト"))` |
| 2 | SET | `String keyRemain = key.substring(separaterPoint + 1);` // Extract remainder after first "/" |
| 3 | CHECK | `if(keyRemain.equals("*"))` // Wildcard for list size |
| 4 | CALL | `Integer.valueOf(cust_kei_hktgi_list_list.size())` // Return list element count |
| 5 | SET | `separaterPoint = keyRemain.indexOf("/");` // Find next separator |
| 6 | CHECK | `if(separaterPoint <= 0)` // No separator found or invalid |
| 7 | RETURN | `return null;` // "区切り符号が見つからない、または不正の場合" (Separator not found or invalid) |
| 8 | SET | `keyElement = keyRemain.substring(0, separaterPoint);` // Extract index element |
| 9 | TRY-CATCH | Index parsing block: |
| 10 | SET | `Integer tmpIndexInt = null;` |
| 11 | SET | `tmpIndexInt = Integer.valueOf(keyElement);` // Parse index |
| 12 | CATCH | `catch(NumberFormatException e)` // "値が数値文字列でない場合" (If value is not a numeric string) |
| 13 | RETURN | `return null;` |
| 14 | CHECK | `if(tmpIndexInt == null)` |
| 15 | RETURN | `return null;` |
| 16 | SET | `int tmpIndex = tmpIndexInt.intValue();` |
| 17 | CHECK | `if(tmpIndex < 0 || tmpIndex >= cust_kei_hktgi_list_list.size())` // Out of bounds |
| 18 | RETURN | `return null;` // "インデックス値がリスト個数-1を超える場合" (Index exceeds list count-1) |
| 19 | SET | `keyElement = keyRemain.substring(separaterPoint + 1);` // Extract nested item name |
| 20 | CALL | `((X33VDataTypeBeanInterface)cust_kei_hktgi_list_list.get(tmpIndex)).loadModelData(keyElement, subkey);` // Recursive delegation |

> Business description: This block handles requests for fields within the customer contract relay list. It parses the key into a list index and a nested property path, validates the index, and then recursively calls `loadModelData` on the child bean to retrieve the requested nested property. If the wildcard `"*"` is specified instead of an index, it returns the list size.

#### Block 5.1 -- Nested: X33VDataTypeBeanInterface.loadModelData() (CUST)
For data-type-list elements, each list item is cast to `X33VDataTypeBeanInterface` and the request is recursively delegated.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(X33VDataTypeBeanInterface)cust_kei_hktgi_list_list.get(tmpIndex)` |
| 2 | CALL | `.loadModelData(keyElement, subkey)` |

### Block 6 -- DATA-TYPE-LIST: オプションサービス契約リスト (Option Service Contract List) (L1303)
Routes to the option service contract list branch. Identical structure to Block 5 but operates on `op_svc_kei_list_list`.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オプションサービス契約リスト"))` |
| 2 | SET | `String keyRemain = key.substring(separaterPoint + 1);` |
| 3 | CHECK | `if(keyRemain.equals("*"))` |
| 4 | CALL | `Integer.valueOf(op_svc_kei_list_list.size())` |
| 5 | SET | `separaterPoint = keyRemain.indexOf("/");` |
| 6 | CHECK | `if(separaterPoint <= 0)` |
| 7 | RETURN | `return null;` |
| 8 | SET | `keyElement = keyRemain.substring(0, separaterPoint);` |
| 9 | TRY-CATCH | Index parsing (same as Block 5) |
| 10 | SET | `Integer tmpIndexInt = null;` |
| 11 | SET | `tmpIndexInt = Integer.valueOf(keyElement);` |
| 12 | CATCH | `catch(NumberFormatException e)` |
| 13 | RETURN | `return null;` |
| 14 | CHECK | `if(tmpIndexInt == null)` |
| 15 | RETURN | `return null;` |
| 16 | SET | `int tmpIndex = tmpIndexInt.intValue();` |
| 17 | CHECK | `if(tmpIndex < 0 || tmpIndex >= op_svc_kei_list_list.size())` |
| 18 | RETURN | `return null;` |
| 19 | SET | `keyElement = keyRemain.substring(separaterPoint + 1);` |
| 20 | CALL | `((X33VDataTypeBeanInterface)op_svc_kei_list_list.get(tmpIndex)).loadModelData(keyElement, subkey);` |

### Block 7 -- String Field: 申込種別コード (Application Type Code) (L1348)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("申込種別コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getMskm_sbt_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getMskm_sbt_cd_state();` |

### Block 8 -- String Field: オプションサービスコード (Option Service Code) (L1357)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オプションサービスコード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOp_svc_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOp_svc_cd_state();` |

### Block 9 -- String Field: 親契約識別コード (Parent Contract ID Code) (L1366)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("親契約識別コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOya_kei_skbt_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOya_kei_skbt_cd_state();` |

### Block 10 -- String Field: 業務パラメータID（セッション上限数） (Business Parameter ID - Session Upper Limit) (L1375)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("業務パラメータID（セッション上限数）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getWork_param_id_session_uppl_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getWork_param_id_session_uppl_state();` |

### Block 11 -- String Field: 業務パラメータ設定値（セッション上限数） (Business Parameter Setting Value - Session Upper Limit) (L1384)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("業務パラメータ設定値（セッション上限数）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getWork_param_sette_value_rsv_uppl_prd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getWork_param_sette_value_rsv_uppl_prd_state();` |

### Block 12 -- String Field: 業務パラメータID（予約上限日数） (Business Parameter ID - Reservation Upper Limit Days) (L1393)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("業務パラメータID（予約上限日数）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getWork_param_id_rsv_uppl_prd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getWork_param_id_rsv_uppl_prd_state();` |

### Block 13 -- String Field: 業務パラメータ設定値（予約上限日数） (Business Parameter Setting Value - Reservation Upper Limit Days) (L1402)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("業務パラメータ設定値（予約上限日数）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getWork_param_sette_rsv_uppl_prd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getWork_param_sette_rsv_uppl_prd_state();` |

### Block 14 -- String Field: 事務手数料自動適用要不要 (Office Fee Auto-Application) (L1411)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("事務手数料自動適用要不要"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getRule0059_auto_aply_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getRule0059_auto_aply_state();` |

### Block 15 -- String Field: 料金コースコード (Pricing Course Code) (L1420)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("料金コースコード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getPcrs_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getPcrs_cd_state();` |

### Block 16 -- String Field: 料金プランコード (Pricing Plan Code) (L1429)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("料金プランコード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getPplan_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getPplan_cd_state();` |

### Block 17 -- String Field: 料金プラン固定単価番号 (Pricing Plan Fixed Unit Price Number) (L1438)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("料金プラン固定単価番号"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getPplan_kotei_tanka_no_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getPplan_kotei_tanka_no_state();` |

### Block 18 -- String Field: 初期マルチセッション認証IDパスワード (Initial Multi-Session Auth ID Password) (L1447)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("初期マルチセッション認証IDパスワード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getShk_mltise_ninsho_id_pwd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getShk_mltise_ninsho_id_pwd_state();` |

### Block 19 -- String Field: マルチセッション認証ID (Multi-Session Auth ID) (L1456)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("マルチセッション認証ID"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getMltise_ninsho_id_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getMltise_ninsho_id_state();` |

### Block 20 -- String Field: セッション数 (Session Count) -- SPECIAL: enable + dash normalization (L1465)
This field has a unique handling: it supports `"enable"` subkey (in addition to `"value"` and `"state"`), and performs character normalization on the returned value.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("セッション数"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `String tmpValue = getSession_cnt_value();` |
| 4 | CHECK | `if(tmpValue != null)` |
| 5 | EXEC | `tmpValue = tmpValue.replace('−', '-');` // Normalize Unicode minus sign to ASCII hyphen |
| 6 | RETURN | `return tmpValue;` |
| 7 | RETURN | `return null;` // if tmpValue is null |
| 8 | CHECK | `else if(subkey.equalsIgnoreCase("enable"))` |
| 9 | CALL | `return getSession_cnt_enabled();` // "subkeyがenableの場合、項目ID_enableのgetterの戻り値を返す" |
| 10 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 11 | CALL | `return getSession_cnt_state();` |

### Block 21 -- String Field: 利用開始日（年） (Service Start Date - Year) (L1479)
Supports `"value"`, `"enable"`, and `"state"` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("利用開始日（年）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUse_staymd_year_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("enable"))` |
| 5 | CALL | `return getUse_staymd_year_enabled();` |
| 6 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 7 | CALL | `return getUse_staymd_year_state();` |

### Block 22 -- String Field: 利用開始日（月） (Service Start Date - Month) (L1489)
Supports `"value"`, `"enable"`, and `"state"` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("利用開始日（月）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUse_staymd_mon_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("enable"))` |
| 5 | CALL | `return getUse_staymd_mon_enabled();` |
| 6 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 7 | CALL | `return getUse_staymd_mon_state();` |

### Block 23 -- String Field: 利用開始日（日） (Service Start Date - Day) (L1499)
Supports `"value"`, `"enable"`, and `"state"` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("利用開始日（日）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUse_staymd_day_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("enable"))` |
| 5 | CALL | `return getUse_staymd_day_enabled();` |
| 6 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 7 | CALL | `return getUse_staymd_day_state();` |

### Block 24 -- String Field: 利用開始日 (Service Start Date - Full) (L1509)
Supports `"value"` and `"state"` only (no `"enable"`).

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("利用開始日"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUse_staymd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getUse_staymd_state();` |

### Block 25 -- String Field: サービス課金開始年月日 (Service Billing Start Date) (L1518)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("サービス課金開始年月日"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSvc_chrg_staymd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSvc_chrg_staymd_state();` |

### Block 26 -- String Field: 運用年月日 (Operation Date) (L1527)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("運用年月日"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUnyo_ymd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getUnyo_ymd_state();` |

### Block 27 -- String Field: 運用年月日时分秒 (Operation DateTime) (L1536)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("運用年月日时分秒"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getUnyo_dtm_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getUnyo_dtm_state();` |

### Block 28 -- String Field: 実施オプションサービス契約ステータス (Implemented Option Service Contract Status) (L1545)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("実施オプションサービス契約ステータス"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getJssi_op_svc_kei_stat_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getJssi_op_svc_kei_stat_state();` |

### Block 29 -- String Field: サービス契約ステータス (Service Contract Status) (L1554)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("サービス契約ステータス"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSvc_kei_stat_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSvc_kei_stat_state();` |

### Block 30 -- String Field: お客様ステータス (Customer Status) (L1563)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("お客様ステータス"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getCust_stat_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getCust_stat_state();` |

### Block 31 -- String Field: 請求契約番号 (Billing Contract Number) (L1572)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("請求契約番号"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSeiky_kei_no_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSeiky_kei_no_state();` |

### Block 32 -- String Field: 進展ステータス (Progress Status) (L1581)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("進展ステータス"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getPrg_stat_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getPrg_stat_state();` |

### Block 33 -- String Field: 進展特記事項1 (Progress Special Item 1) (L1590)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("進展特記事項1"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getPrg_tkjk_1_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getPrg_tkjk_1_state();` |

### Block 34 -- String Field: オーダ種別コード (Order Type Code) (L1599)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オーダ種別コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOrder_sbt_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOrder_sbt_cd_state();` |

### Block 35 -- String Field: サービスオーダコード (Service Order Code) (L1608)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("サービスオーダコード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSvc_order_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSvc_order_cd_state();` |

### Block 36 -- String Field: 要求種別コード (Request Type Code) (L1617)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("要求種別コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getYokyu_sbt_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getYokyu_sbt_cd_state();` |

### Block 37 -- String Field: オーダ発行条件コード (Order Issuance Condition Code) (L1626)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オーダ発行条件コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOdr_hakko_joken_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOdr_hakko_joken_cd_state();` |

### Block 38 -- String Field: オーダ内容コード (Order Content Code) (L1635)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オーダ内容コード"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOdr_naiyo_cd_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOdr_naiyo_cd_state();` |

### Block 39 -- String Field: オプションSOT登録実施 (Option SOT Registration Implementation) (L1644)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("オプションSOT登録実施"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getOp_sod_add_jssi_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getOp_sod_add_jssi_state();` |

### Block 40 -- String Field: 世代管理年月日时分秒（サービス契約） (Generation Management DateTime - Service Contract) (L1653)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("世代管理年月日时分秒（サービス契約）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getKk0081_gene_add_dtm_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getKk0081_gene_add_dtm_state();` |

### Block 41 -- String Field: サービス契約内訳番号 (Service Contract Breakdown Number) (L1662)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("サービス契約内訳番号"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSvc_kei_ucwk_no_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSvc_kei_ucwk_no_state();` |

### Block 42 -- String Field: 世代管理年月日时分秒（サービス契約内訳） (Generation Management DateTime - Service Contract Breakdown) (L1671)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("世代管理年月日时分秒（サービス契約内訳）"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getKk0161_gene_add_dtm_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getKk0161_gene_add_dtm_state();` |

### Block 43 -- String Field: 最終更新年月日时分秒 (Last Update DateTime) (L1680)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("最終更新年月日时分秒"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getLast_upd_dtm_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getLast_upd_dtm_state();` |

### Block 44 -- String Field: 異動年月日时分秒 (Movement DateTime) (L1689)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("異動年月日时分秒"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getIdo_dtm_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getIdo_dtm_state();` |

### Block 45 -- String Field: サービス契約内訳ステータス (Service Contract Breakdown Status) (L1698)

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `else if(keyElement.equals("サービス契約内訳ステータス"))` |
| 2 | CHECK | `if(subkey.equalsIgnoreCase("value"))` |
| 3 | CALL | `return getSvc_kei_ucwk_stat_value();` |
| 4 | CHECK | `else if(subkey.equalsIgnoreCase("state"))` |
| 5 | CALL | `return getSvc_kei_ucwk_stat_state();` |

### Block 46 -- DEFAULT (No match) (L1707)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // No matching keyElement found, return null |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `cust_kei_hktgi_list_list` | Field | Customer contract relay list -- list of customer contract handover/relay items, each item is a data-type bean |
| `op_svc_kei_list_list` | Field | Option service contract list -- list of option service contract line items, each item is a data-type bean |
| `mskm_sbt_cd` | Field | Application type code -- classifies the type of application/order |
| `op_svc_cd` | Field | Option service code -- identifies a specific option service product |
| `oya_kei_skbt_cd` | Field | Parent contract identification code -- identifies the parent contract for nested/child contracts |
| `work_param_id_session_uppl` | Field | Business parameter ID (session upper limit) -- parameter controlling maximum concurrent sessions |
| `work_param_sette_value_rsv_uppl_prd` | Field | Business parameter setting value (session upper limit) -- the configured value for session upper limit |
| `work_param_id_rsv_uppl_prd` | Field | Business parameter ID (reservation upper limit days) -- parameter controlling maximum reservation period in days |
| `work_param_sette_rsv_uppl_prd` | Field | Business parameter setting value (reservation upper limit days) -- the configured reservation period limit |
| `rule0059_auto_aply` | Field | Office fee automatic application applicability -- whether office fees are automatically applied to orders |
| `pcrs_cd` | Field | Pricing course code -- identifies a pricing course/product |
| `pplan_cd` | Field | Pricing plan code -- identifies a pricing plan |
| `pplan_kotei_tanka_no` | Field | Pricing plan fixed unit price number -- the fixed unit price identifier for a pricing plan |
| `shk_mltise_ninsho_id_pwd` | Field | Initial multi-session authentication ID password -- password for initial multi-session authentication |
| `mltise_ninsho_id` | Field | Multi-session authentication ID -- identifier for multi-session authentication |
| `session_cnt` | Field | Session count -- number of active sessions, with dash normalization on special minus character |
| `use_staymd_year` | Field | Service start date (year) -- the year component of the service activation date |
| `use_staymd_mon` | Field | Service start date (month) -- the month component of the service activation date |
| `use_staymd_day` | Field | Service start date (day) -- the day component of the service activation date |
| `use_staymd` | Field | Service start date -- the full service activation date (year/month/day combined) |
| `svc_chrg_staymd` | Field | Service billing start date -- the date when service billing begins |
| `unyo_ymd` | Field | Operation date -- the business operation date |
| `unyo_dtm` | Field | Operation datetime -- the full timestamp of the business operation |
| `jssi_op_svc_kei_stat` | Field | Implemented option service contract status -- status of the option service contract implementation |
| `svc_kei_stat` | Field | Service contract status -- overall status of the service contract |
| `cust_stat` | Field | Customer status -- the current status of the customer |
| `seiky_kei_no` | Field | Billing contract number -- the contract number used for billing purposes |
| `prg_stat` | Field | Progress status -- the current progress state of processing |
| `prg_tkjk_1` | Field | Progress special item 1 -- additional progress notes/remarks field 1 |
| `order_sbt_cd` | Field | Order type code -- classifies the type of order |
| `svc_order_cd` | Field | Service order code -- identifies a specific service order |
| `yokyu_sbt_cd` | Field | Request type code -- classifies the type of request |
| `odr_hakko_joken_cd` | Field | Order issuance condition code -- conditions that trigger order issuance |
| `odr_naiyo_cd` | Field | Order content code -- classifies the content/type of an order (e.g., FTTH registration, mail change) |
| `op_sod_add_jssi` | Field | Option SOT registration implementation -- whether option SOT (Service Order Type) registration has been executed |
| `kk0081_gene_add_dtm` | Field | Generation management datetime (service contract) -- version/generation tracking timestamp for the service contract |
| `svc_kei_ucwk_no` | Field | Service contract breakdown number -- internal tracking ID for service contract line items |
| `kk0161_gene_add_dtm` | Field | Generation management datetime (service contract breakdown) -- version/generation tracking timestamp for a service contract breakdown |
| `last_upd_dtm` | Field | Last update datetime -- the timestamp of the most recent update to the record |
| `ido_dtm` | Field | Movement datetime -- the timestamp when a status change or movement occurred |
| `svc_kei_ucwk_stat` | Field | Service contract breakdown status -- the status of a specific service contract breakdown line |
| X33VDataTypeBeanInterface | Interface | A data-type bean interface that supports recursive `loadModelData` calls for nested data-type-list access |
| `loadCommonInfoData` | Method | Parent class method for shared-info view processing -- delegates to `super.loadCommonInfoData(key)` when key starts with "//" |
| "//" | Constant | Prefix that indicates a shared-info view specification in the key |
| `"*"` | Constant | Wildcard used in list keys to request the list size instead of a specific element |
| `"value"` | Constant | Subkey value requesting the actual field data value |
| `"state"` | Constant | Subkey value requesting the field's validation/editability state |
| `"enable"` | Constant | Subkey value requesting the field's enabled/disabled status |
| FTTH | Business term | Fiber To The Home -- fiber-optic broadband internet service |
| SOT | Acronym | Service Order Type -- a telecom order fulfillment entity type |
| SOD | Acronym | Service Order Data -- telecom order fulfillment data structure |
| JSP | Acronym | JavaServer Pages -- the presentation technology for the web screens |
