# Business Logic — DKW00301SF05DBean.storeModelData() [619 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.DKW00301SF.DKW00301SF05DBean` |
| Layer | Controller / Web Bean (Package: `eo.web.webview.DKW00301SF`) |
| Module | `DKW00301SF` (Package: `eo.web.webview.DKW00301SF`) |

## 1. Role

### DKW00301SF05DBean.storeModelData()

`storeModelData` is the central **model data binding (injection) method** for the `DKW00301SF05DBean` data bean, which represents the view model for a telecom **equipment return/update screen** (返用品画面 — return equipment screen). It receives key-value pairs from the Struts form submission and routes them into the appropriate strongly-typed setter methods on the bean. The method follows a **route-and-dispatch** pattern: the `key` parameter identifies which business field is being bound (e.g., "選択" for selection, "行カラー" for row color, "返品番号" for return number), and the `subkey` parameter determines which property of that field to set — `value` for the data, `enable` for the editable-state flag, or `state` for display/processing metadata.

The method handles **four data types**: Boolean (selection flags), String (textual fields), Long (numeric fields with automatic Long-to-String coercion), and virtual list items (iterable sub-rows). For Long fields such as `l_no` and `l_kiki_kei_div_select_index`, when `isSetAsString` is true or the incoming value is a Long, the method casts and converts the numeric value to a String before assignment, matching the Struts form's String-typed input requirements.

A special **virtual list routing** mechanism handles the `機器提供コード名リスト` (Equipment Provision Code Name List) key. When this key is detected, the method parses the remaining path (e.g., `0/プラン名`) to extract a list index, validates the index against the `kiki_teikyo_cd_list_list`, and recursively delegates to the individual list item's own `storeModelData` method. This enables binding to nested/iterable screen model data structures without requiring the caller to know about internal list structure.

The method is a **pure binder** — it performs no business logic, database access, or service component calls. It is a shared utility called by many screen entry points to restore submitted form data into the bean's internal properties.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData key, subkey, in_value, isSetAsString"])
    CHECK_NULL{key or subkey == null?}
    EARLY_RETURN["Return early — no processing"]
    FIND_SLASH["Find / in key for virtual list parsing"]
    BRANCH_KEY{key routing — 30+ field keys}

    BRANCH_CHOICE["Branch: 選択 (Selection)"]
    BRANCH_CHOICE --> SUB_CHOICE{subkey equals?}
    SUB_CHOICE --> choice_value["setL_choice_value Boolean"]
    SUB_CHOICE --> choice_enable["setL_choice_enabled Boolean"]
    SUB_CHOICE --> choice_state["setL_choice_state String"]

    BRANCH_STRING["Branch: String fields"]
    BRANCH_STRING --> SUB_STRING{subkey equals?}
    SUB_STRING --> s_value["setL_xxx_value String"]
    SUB_STRING --> s_enable["setL_xxx_enabled Boolean"]
    SUB_STRING --> s_state["setL_xxx_state String"]

    BRANCH_LONG["Branch: Long fields (l_no, l_kiki_kei_div_select_index)"]
    BRANCH_LONG --> LONG_CHECK{in_value null?}
    LONG_CHECK --> is_null["setL_xxx_value null"]
    LONG_CHECK --> is_string{isSetAsString and instanceof String?}
    is_string --> cast_string["setL_xxx_value (String) in_value"]
    is_string --> cast_long["cast Long to String"]
    LONG_CHECK --> else_branch["cast Long to String"]

    BRANCH_VIRTUAL["Branch: 機器提供コード名リスト (Equipment Provision Code Name List)"]
    BRANCH_VIRTUAL --> PARSE_REMAIN["keyRemain = key.substring after first /"]
    PARSE_REMAIN --> FIND_IDX{Find next / in keyRemain}
    FIND_IDX --> TRY_PARSE{Try parse index as Integer}
    TRY_PARSE --> INDEX_OK{index >= 0 and list size?}
    INDEX_OK --> VALID["Parse field key from keyRemain
Delegate to list item.storeModelData"]
    INDEX_OK --> INVALID["No processing — index out of range"]
    TRY_PARSE --> NO_IDX["No processing — not numeric"]

    END_NODE(["Method complete"])

    START --> CHECK_NULL
    CHECK_NULL -- yes --> EARLY_RETURN --> END_NODE
    CHECK_NULL -- no --> FIND_SLASH --> BRANCH_KEY

    BRANCH_KEY -- "選択" --> BRANCH_CHOICE
    BRANCH_KEY -- "28+ String fields" --> BRANCH_STRING
    BRANCH_KEY -- "Long fields" --> BRANCH_LONG
    BRANCH_KEY -- "機器提供コード名リスト" --> BRANCH_VIRTUAL
    BRANCH_KEY -- "no match" --> END_NODE

    choice_value --> END_NODE
    choice_enable --> END_NODE
    choice_state --> END_NODE
    s_value --> END_NODE
    s_enable --> END_NODE
    s_state --> END_NODE
    is_null --> END_NODE
    cast_string --> END_NODE
    cast_long --> END_NODE
    else_branch --> END_NODE
    VALID --> END_NODE
    INVALID --> END_NODE
    NO_IDX --> END_NODE
```

**Processing Summary:**

The method executes as a **long if-else chain** (lines 2306–2924) with the following structure:

1. **Null guard (L2312–2315):** If `key` or `subkey` is null, return immediately.
2. **Slash detection (L2317):** Stores the position of the first `/` in `key` for potential virtual list parsing.
3. **Key routing (L2320–2919):** A chain of `if`/`else if` branches on `key.equals()` against 30+ Japanese-labeled field names. Each branch:
   - Checks `subkey.equalsIgnoreCase()` against `"value"`, `"enable"`, and `"state"`.
   - Dispatches to the appropriate typed setter on the bean.
4. **Virtual list delegation (L2904–2918):** When `key` equals `"機器提供コード名リスト"`:
   - Slices `key` after the first `/` to get `keyRemain`.
   - Parses the next segment as a numeric index.
   - If valid, slices the field name after the index and delegates to the list item's `storeModelData` via the `X33VDataTypeBeanInterface`.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The **business field name** (項目名) identifying which property of the view model to bind. Values are Japanese-labeled field identifiers such as "選択" (Selection), "行カラー" (Row Color), "返品番号" (Return Number), "機器提供コード名リスト" (Equipment Provision Code Name List), etc. Each key maps to a distinct domain entity on the equipment return screen. For virtual list keys, the format is `key/index/field` (e.g., "機器提供コード名リスト/0/プラン名") to identify which list item and field to set. |
| 2 | `subkey` | `String` | The **sub-property** within the field to set. One of three values: `"value"` (the actual data value), `"enable"` (whether the field is editable), or `"state"` (display/state metadata). The check is case-insensitive (`equalsIgnoreCase`). |
| 3 | `in_value` | `Object` | The **data value** to assign. Type varies by field: `Boolean` for selection flags, `String` for text fields, `Long` for numeric fields. For Long fields, the method handles automatic conversion to `String` before assignment. May be `null` for fields like `l_no`. |
| 4 | `isSetAsString` | `boolean` | Flag indicating whether to set a **Long-type field's Value property using a String value**. When `true` and `in_value` is a `String`, the String is assigned directly without casting. Otherwise, if `in_value` is a `Long`, it is converted via `toString()`. |

**Instance fields read by this method:**

| Field | Type | Usage |
|-------|------|-------|
| `kiki_teikyo_cd_list_list` | `ArrayList` | Virtual list of equipment provision code name items. Used in the "機器提供コード名リスト" branch to delegate to nested `storeModelData` calls. Each element is cast to `X33VDataTypeBeanInterface` and its `storeModelData` is invoked. |

## 4. CRUD Operations / Called Services

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

This method performs **no database or service component calls**. All method invocations are **internal bean setters** on `DKW00301SF05DBean` itself or utility substring operations on the input `key` parameter. There are **zero CRUD operations** (no C/R/U/D) — this method is purely a data binding layer.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` on `in_value` or `key` parameter — Java String utility |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` on string parameters — Java String utility |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` on string parameters — Java String utility |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` on string parameters — Java String utility |
| - | `DKW00301SF05DBean` setters (all) | DKW00301SF05DBean | - | Internal bean property setters: `setL_choice_value`, `setL_choice_enabled`, `setL_choice_state`, `setL_color_value`, `setL_color_enabled`, `setL_color_state`, `setL_no_value`, `setL_no_enabled`, `setL_no_state`, `setL_hmpin_kiki_no_value`, `setL_hmpin_kiki_no_state`, `setL_ukeire_sk_nm_value`, `setL_ukeire_sk_nm_enabled`, `setL_ukeire_sk_nm_state`, `setL_ukeire_sk_value`, `setL_ukeire_sk_state`, `setL_ukeire_sk_nm_disp_value`, `setL_ukeire_sk_nm_disp_enabled`, `setL_ukeire_sk_nm_disp_state`, `setL_svkei_no_value`, `setL_svkei_no_enabled`, `setL_svkei_no_state`, `setL_anken_no_value`, `setL_anken_no_enabled`, `setL_anken_no_state`, `setL_ksh_nm_value`, `setL_ksh_nm_enabled`, `setL_ksh_nm_state`, `setL_ksh_nm_disp_value`, `setL_ksh_nm_disp_enabled`, `setL_ksh_nm_disp_state`, `setL_hmpin_ymd_value`, `setL_hmpin_ymd_enabled`, `setL_hmpin_ymd_state`, `setL_mdl_no_value`, `setL_mdl_no_enabled`, `setL_mdl_no_state`, `setL_seizo_no_value`, `setL_seizo_no_enabled`, `setL_seizo_no_state`, `setL_kiki_kei_div_value`, `setL_kiki_kei_div_enabled`, `setL_kiki_kei_div_state`, `setL_kiki_kei_div_nm_value`, `setL_kiki_kei_div_nm_enabled`, `setL_kiki_kei_div_nm_state`, `setL_kiki_kei_div_select_index_value`, `setL_kiki_kei_div_select_index_enabled`, `setL_kiki_kei_div_select_index_state`, `setL_gds_stat_value`, `setL_gds_stat_enabled`, `setL_gds_stat_state`, `setL_gds_stat_nm_value`, `setL_gds_stat_nm_enabled`, `setL_gds_stat_nm_state`, `setL_gds_stat_nm_disp_value`, `setL_gds_stat_nm_disp_enabled`, `setL_gds_stat_nm_disp_state`, `setL_dsl_ymd_value`, `setL_dsl_ymd_enabled`, `setL_dsl_ymd_state`, `setL_hmpin_sbt_value`, `setL_hmpin_sbt_enabled`, `setL_hmpin_sbt_state`, `setL_hmpin_sbt_nm_value`, `setL_hmpin_sbt_nm_enabled`, `setL_hmpin_sbt_nm_state`, `setL_rent_dsl_value`, `setL_rent_dsl_enabled`, `setL_rent_dsl_state`, `setL_rent_dsl_nm_value`, `setL_rent_dsl_nm_enabled`, `setL_rent_dsl_nm_state`, `setL_shonin_value`, `setL_shonin_enabled`, `setL_shonin_state`, `setL_shukka_lot_no_value`, `setL_shukka_lot_no_state`, `setL_hmpin_rsn_nm_value`, `setL_hmpin_rsn_nm_state`, `setL_hmpin_rsn_value`, `setL_hmpin_rsn_state`, `setL_hmpin_dtl_value`, `setL_hmpin_dtl_state`, `setL_hmpin_no_value`, `setL_hmpin_no_state`, `setL_hmpinsha_pcd_value`, `setL_hmpinsha_pcd_state`, `setL_hmpinsha_state_nm_value`, `setL_hmpinsha_state_nm_state`, `setL_hmpinsha_city_nm_value`, `setL_hmpinsha_city_nm_state`, `setL_hmpinsha_oaztsu_nm_value`, `setL_hmpinsha_oaztsu_nm_state`, `setL_hmpinsha_azcho_nm_value`, `setL_hmpinsha_azcho_nm_state`, `setL_hmpinsha_bnchigo_value`, `setL_hmpinsha_bnchigo_state`, `setL_hmpinsha_adrttm_value`, `setL_hmpinsha_adrttm_state`, `setL_hmpinsha_adrrm_value`, `setL_hmpinsha_adrrm_state`, `setL_hmpinsha_telno_value`, `setL_hmpinsha_telno_state`, `setL_hmpinsha_nm_value`, `setL_hmpinsha_nm_state`, `setL_hmpinsha_upd_dtm_value`, `setL_hmpinsha_upd_dtm_state`, `setL_rec_seq_value`, `setL_rec_seq_state`, `setL_kktk_svc_cd_value`, `setL_kktk_svc_cd_state`, `setKktk_svc_gene_add_dtm_value`, `setKktk_svc_gene_add_dtm_state`, `setHmpin_kbn_value`, `setHmpin_kbn_state`, `setL_SVKEI_NO_INPUT_value`, `setL_SVKEI_NO_INPUT_enabled`, `setL_SVKEI_NO_INPUT_state`, `setL_kiki_chg_no_value`, `setL_kiki_chg_no_enabled`, `setL_kiki_chg_no_state`, `setL_hmpin_kiki_svc_kei_no_value`, `setL_hmpin_kiki_svc_kei_no_state` |

## 5. Dependency Trace

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `storeModelData` [-], `substring` [-], `setL_hmpin_kiki_svc_kei_no_state` [-], `setL_hmpin_kiki_svc_kei_no_value` [-], `setL_kiki_chg_no_state` [-], `setL_kiki_chg_no_enabled` [-], `setL_kiki_chg_no_value` [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `DKW00301SF05DBean.storeModelData()` (internal) | `DKW00301SF05DBean.storeModelData` -> `storeModelData` (self) | N/A — internal delegate call |
| 2 | `DKW00301SF05DBean.storeModelData()` (internal) | `DKW00301SF05DBean.storeModelData` -> `substring` (parameter) | N/A — Java String operation |

**Note:** No screen (KKSV*), batch, or CBS entry points were found within 8 hops. This method is a low-level bean binding utility called by other methods within the same class. The direct callers listed above are all internal references within `DKW00301SF05DBean` itself. The method ultimately delegates to:
- `X33VDataTypeBeanInterface.storeModelData` (for virtual list items) — recursive bind to nested bean
- `DKW00301SF05DBean.setL_xxx_*` (48+ setter methods) — internal property assignment
- `String.substring()` — Java string utility (parameter operations only)

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `(key == null || subkey == null)` (L2312)

> Null guard: If either the field name (`key`) or the sub-property (`subkey`) is null, abort processing immediately. This prevents NullPointerExceptions in downstream branches.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return;` // Abort — key or subkey is null |

---

**Block 2** — [SET] `(initialization)` (L2317)

> Store the position of the first "/" in `key` for potential virtual list parsing later. This is a preparatory step for the "機器提供コード名リスト" branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/")` // Position of first "/" in key, used for virtual list parsing |

---

**Block 3** — [IF] `(key.equals("選択"))` (L2320)

> **Branch: 選択 (Selection)** — Handles the Boolean selection flag field (item ID: `l_choice`). This field tracks whether a selection option is active.

**Block 3.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L2321)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_choice_value((Boolean) in_value)` // Cast in_value to Boolean and set selection value |

**Block 3.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` (L2324)

> When subkey is "enable", set the editable-state flag for the selection field.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_choice_enabled((Boolean) in_value)` // Set selection enabled state |

**Block 3.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` (L2327)

> When subkey is "state", set the display/status metadata for the selection field.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_choice_state((String) in_value)` // Cast in_value to String and set selection state |

---

**Block 4** — [ELSE-IF] `(key.equals("行カラー"))` (L2333)

> **Branch: 行カラー (Row Color)** — Handles the String row color field (item ID: `l_color`). This field stores the display color for a row in the UI.

**Block 4.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L2334)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_color_value((String) in_value)` // Set row color string |

**Block 4.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` (L2337)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_color_enabled((Boolean) in_value)` // Set row color enabled state |

**Block 4.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` (L2340)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_color_state((String) in_value)` // Set row color state |

---

**Block 5** — [ELSE-IF] `(key.equals("項目"))` (L2346)

> **Branch: 項目 (Item Number — l_no)** — Handles the Long-type item number field. The value must be converted to String before assignment. Special handling for null and type coercion via `isSetAsString`.

**Block 5.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L2347)

**Block 5.1.1** — [IF] `(in_value == null)` (L2348)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_no_value(null)` // Set item number value to null |

**Block 5.1.2** — [ELSE-IF] `(isSetAsString == true && in_value instanceof String)` (L2350)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_no_value((String) in_value)` // Cast in_value directly as String |

**Block 5.1.3** — [ELSE] (L2353)

> Cast Long to String: `in_value` is a Long, convert via `toString()` before assignment.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_no_value(((Long) in_value).toString())` // Cast Long to String, then set |

**Block 5.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` (L2356)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_no_enabled((Boolean) in_value)` // Set item number enabled state |

**Block 5.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` (L2359)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_no_state((String) in_value)` // Set item number state |

---

**Block 6** — [ELSE-IF] `(key.equals("返品機器番号"))` (L2365)

> **Branch: 返品機器番号 (Return Device Number — l_hmpin_kiki_no)** — String field for the return device number.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_kiki_no_value((String) in_value) | value subkey |
| 2 | ELSE-IF → setL_hmpin_kiki_no_state((String) in_value) | state subkey |

No "enable" subkey branch exists for this field.

---

**Block 7** — [ELSE-IF] `(key.equals("受取先名称"))` (L2374)

> **Branch: 受取先名称 (Recipient Name — l_ukeire_sk_nm)** — String field for the name of the entity receiving the returned equipment.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_ukeire_sk_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_ukeire_sk_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_ukeire_sk_nm_state((String) in_value) | state |

---

**Block 8** — [ELSE-IF] `(key.equals("受取先"))` (L2384)

> **Branch: 受取先 (Recipient — l_ukeire_sk)** — String field for the recipient entity. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_ukeire_sk_value((String) in_value) | value |
| 2 | ELSE-IF → setL_ukeire_sk_state((String) in_value) | state |

---

**Block 9** — [ELSE-IF] `(key.equals("表示用受取先名称"))` (L2393)

> **Branch: 表示用受取先名称 (Display Recipient Name — l_ukeire_sk_nm_disp)** — String field for the display-formatted recipient name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_ukeire_sk_nm_disp_value((String) in_value) | value |
| 2 | ELSE-IF → setL_ukeire_sk_nm_disp_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_ukeire_sk_nm_disp_state((String) in_value) | state |

---

**Block 10** — [ELSE-IF] `(key.equals("サービス契約番号"))` (L2403)

> **Branch: サービス契約番号 (Service Contract Number — l_svkei_no)** — String field for the service contract identifier.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_svkei_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_svkei_no_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_svkei_no_state((String) in_value) | state |

---

**Block 11** — [ELSE-IF] `(key.equals("案件番号"))` (L2413)

> **Branch: 案件番号 (Case Number — l_anken_no)** — String field for the case/case tracking number.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_anken_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_anken_no_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_anken_no_state((String) in_value) | state |

---

**Block 12** — [ELSE-IF] `(key.equals("契約者名"))` (L2423)

> **Branch: 契約者名 (Contractor Name — l_ksh_nm)** — String field for the name of the service contractor.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_ksh_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_ksh_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_ksh_nm_state((String) in_value) | state |

---

**Block 13** — [ELSE-IF] `(key.equals("表示用契約者名"))` (L2433)

> **Branch: 表示用契約者名 (Display Contractor Name — l_ksh_nm_disp)** — String field for the display-formatted contractor name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_ksh_nm_disp_value((String) in_value) | value |
| 2 | ELSE-IF → setL_ksh_nm_disp_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_ksh_nm_disp_state((String) in_value) | state |

---

**Block 14** — [ELSE-IF] `(key.equals("返品日"))` (L2443)

> **Branch: 返品日 (Return Date — l_hmpin_ymd)** — String field for the return date.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_ymd_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_ymd_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_hmpin_ymd_state((String) in_value) | state |

---

**Block 15** — [ELSE-IF] `(key.equals("型番"))` (L2453)

> **Branch: 型番 (Model Number — l_mdl_no)** — String field for the equipment model number.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_mdl_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_mdl_no_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_mdl_no_state((String) in_value) | state |

---

**Block 16** — [ELSE-IF] `(key.equals("製造番号"))` (L2463)

> **Branch: 製造番号 (Serial Number — l_seizo_no)** — String field for the equipment serial number.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_seizo_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_seizo_no_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_seizo_no_state((String) in_value) | state |

---

**Block 17** — [ELSE-IF] `(key.equals("機器契約区分"))` (L2473)

> **Branch: 機器契約区分 (Equipment Contract Classification — l_kiki_kei_div)** — String field for the classification of equipment contract type.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_kiki_kei_div_value((String) in_value) | value |
| 2 | ELSE-IF → setL_kiki_kei_div_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_kiki_kei_div_state((String) in_value) | state |

---

**Block 18** — [ELSE-IF] `(key.equals("機器契約区分名称"))` (L2483)

> **Branch: 機器契約区分名称 (Equipment Contract Classification Name — l_kiki_kei_div_nm)** — String field for the human-readable name of the equipment contract classification.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_kiki_kei_div_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_kiki_kei_div_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_kiki_kei_div_nm_state((String) in_value) | state |

---

**Block 19** — [ELSE-IF] `(key.equals("機器契約区分選択インデックス"))` (L2493)

> **Branch: 機器契約区分選択インデックス (Equipment Contract Classification Selection Index — l_kiki_kei_div_select_index)** — Long-type field with automatic Long-to-String coercion, similar to `l_no`.

**Block 19.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L2494)

**Block 19.1.1** — [IF] `(in_value == null)` (L2495)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_kiki_kei_div_select_index_value(null)` |

**Block 19.1.2** — [ELSE-IF] `(isSetAsString == true && in_value instanceof String)` (L2497)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_kiki_kei_div_select_index_value((String) in_value)` |

**Block 19.1.3** — [ELSE] (L2500)

> Cast Long to String before assignment.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_kiki_kei_div_select_index_value(((Long) in_value).toString())` |

**Block 19.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` (L2503)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_kiki_kei_div_select_index_enabled((Boolean) in_value)` |

**Block 19.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` (L2506)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setL_kiki_kei_div_select_index_state((String) in_value)` |

---

**Block 20** — [ELSE-IF] `(key.equals("商品状態"))` (L2512)

> **Branch: 商品状態 (Product Status — l_gds_stat)** — String field for the product/service status.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_gds_stat_value((String) in_value) | value |
| 2 | ELSE-IF → setL_gds_stat_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_gds_stat_state((String) in_value) | state |

---

**Block 21** — [ELSE-IF] `(key.equals("商品状態名称"))` (L2522)

> **Branch: 商品状態名称 (Product Status Name — l_gds_stat_nm)** — String field for the human-readable product status name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_gds_stat_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_gds_stat_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_gds_stat_nm_state((String) in_value) | state |

---

**Block 22** — [ELSE-IF] `(key.equals("表示用商品状態名称"))` (L2532)

> **Branch: 表示用商品状態名称 (Display Product Status Name — l_gds_stat_nm_disp)** — String field for the display-formatted product status name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_gds_stat_nm_disp_value((String) in_value) | value |
| 2 | ELSE-IF → setL_gds_stat_nm_disp_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_gds_stat_nm_disp_state((String) in_value) | state |

---

**Block 23** — [ELSE-IF] `(key.equals("解約日"))` (L2542)

> **Branch: 解約日 (Cancellation Date — l_dsl_ymd)** — String field for the service cancellation date.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_dsl_ymd_value((String) in_value) | value |
| 2 | ELSE-IF → setL_dsl_ymd_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_dsl_ymd_state((String) in_value) | state |

---

**Block 24** — [ELSE-IF] `(key.equals("返品種類"))` (L2552)

> **Branch: 返品種類 (Return Type — l_hmpin_sbt)** — String field for the type/category of return.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_sbt_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_sbt_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_hmpin_sbt_state((String) in_value) | state |

---

**Block 25** — [ELSE-IF] `(key.equals("返品種類名称"))` (L2562)

> **Branch: 返品種類名称 (Return Type Name — l_hmpin_sbt_nm)** — String field for the human-readable return type name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_sbt_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_sbt_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_hmpin_sbt_nm_state((String) in_value) | state |

---

**Block 26** — [ELSE-IF] `(key.equals("レンタル解約書"))` (L2572)

> **Branch: レンタル解約書 (Rental Cancellation Document — l_rent_dsl)** — String field for the rental cancellation document identifier.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_rent_dsl_value((String) in_value) | value |
| 2 | ELSE-IF → setL_rent_dsl_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_rent_dsl_state((String) in_value) | state |

---

**Block 27** — [ELSE-IF] `(key.equals("レンタル解約書名称"))` (L2582)

> **Branch: レンタル解約書名称 (Rental Cancellation Document Name — l_rent_dsl_nm)** — String field for the human-readable rental cancellation document name.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_rent_dsl_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_rent_dsl_nm_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_rent_dsl_nm_state((String) in_value) | state |

---

**Block 28** — [ELSE-IF] `(key.equals("承認"))` (L2592)

> **Branch: 承認 (Approval — l_shonin)** — String field for the approval status/approval flag.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_shonin_value((String) in_value) | value |
| 2 | ELSE-IF → setL_shonin_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_shonin_state((String) in_value) | state |

---

**Block 29** — [ELSE-IF] `(key.equals("出荷ロット番号"))` (L2602)

> **Branch: 出荷ロット番号 (Shipping Lot Number — l_shukka_lot_no)** — String field for the shipping lot/batch number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_shukka_lot_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_shukka_lot_no_state((String) in_value) | state |

---

**Block 30** — [ELSE-IF] `(key.equals("返品理由名称"))` (L2611)

> **Branch: 返品理由名称 (Return Reason Name — l_hmpin_rsn_nm)** — String field for the return reason name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_rsn_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_rsn_nm_state((String) in_value) | state |

---

**Block 31** — [ELSE-IF] `(key.equals("返品理由"))` (L2620)

> **Branch: 返品理由 (Return Reason — l_hmpin_rsn)** — String field for the return reason code/description. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_rsn_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_rsn_state((String) in_value) | state |

---

**Block 32** — [ELSE-IF] `(key.equals("返品詳細"))` (L2629)

> **Branch: 返品詳細 (Return Details — l_hmpin_dtl)** — String field for detailed return information. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_dtl_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_dtl_state((String) in_value) | state |

---

**Block 33** — [ELSE-IF] `(key.equals("返品番号"))` (L2638)

> **Branch: 返品番号 (Return Number — l_hmpin_no)** — String field for the return tracking number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_no_state((String) in_value) | state |

---

**Block 34** — [ELSE-IF] `(key.equals("返品者郵便番号"))` (L2647)

> **Branch: 返品者郵便番号 (Returner Postal Code — l_hmpinsha_pcd)** — String field for the returner's postal code. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_pcd_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_pcd_state((String) in_value) | state |

---

**Block 35** — [ELSE-IF] `(key.equals("返品者都道府県名"))` (L2656)

> **Branch: 返品者都道府県名 (Returner Prefecture Name — l_hmpinsha_state_nm)** — String field for the prefecture name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_state_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_state_nm_state((String) in_value) | state |

---

**Block 36** — [ELSE-IF] `(key.equals("返品者市区町村名"))` (L2665)

> **Branch: 返品者市区町村名 (Returner City/Town/Village Name — l_hmpinsha_city_nm)** — String field for the municipal area name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_city_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_city_nm_state((String) in_value) | state |

---

**Block 37** — [ELSE-IF] `(key.equals("返品者大字通称名"))` (L2674)

> **Branch: 返品者大字通称名 (Returner District Major Name — l_hmpinsha_oaztsu_nm)** — String field for the district/area name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_oaztsu_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_oaztsu_nm_state((String) in_value) | state |

---

**Block 38** — [ELSE-IF] `(key.equals("返品者字丁目名"))` (L2683)

> **Branch: 返品者字丁目名 (Returner Block/Chome Name — l_hmpinsha_azcho_nm)** — String field for the block/chome name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_azcho_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_azcho_nm_state((String) in_value) | state |

---

**Block 39** — [ELSE-IF] `(key.equals("返品者番地号"))` (L2692)

> **Branch: 返品者番地号 (Returner Lot Number — l_hmpinsha_bnchigo)** — String field for the lot/subscriber number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_bnchigo_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_bnchigo_state((String) in_value) | state |

---

**Block 40** — [ELSE-IF] `(key.equals("返品者住所補記・建物名"))` (L2701)

> **Branch: 返品者住所補記・建物名 (Returner Address Supplement — Building Name — l_hmpinsha_adrttm)** — String field for building name in address. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_adrttm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_adrttm_state((String) in_value) | state |

---

**Block 41** — [ELSE-IF] `(key.equals("返品者住所補記・部屋番号"))` (L2710)

> **Branch: 返品者住所補記・部屋番号 (Returner Address Supplement — Room Number — l_hmpinsha_adrrm)** — String field for room number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_adrrm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_adrrm_state((String) in_value) | state |

---

**Block 42** — [ELSE-IF] `(key.equals("返品者電話番号"))` (L2719)

> **Branch: 返品者電話番号 (Returner Phone Number — l_hmpinsha_telno)** — String field for the returner's phone number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_telno_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_telno_state((String) in_value) | state |

---

**Block 43** — [ELSE-IF] `(key.equals("返品者名"))` (L2728)

> **Branch: 返品者名 (Returner Name — l_hmpinsha_nm)** — String field for the returner's name. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_nm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_nm_state((String) in_value) | state |

---

**Block 44** — [ELSE-IF] `(key.equals("返品者更新年月日時刻"))` (L2737)

> **Branch: 返品者更新年月日時刻 (Returner Update Timestamp — l_hmpinsha_upd_dtm)** — String field for the last update timestamp of the returner record. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpinsha_upd_dtm_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpinsha_upd_dtm_state((String) in_value) | state |

---

**Block 45** — [ELSE-IF] `(key.equals("レコード通番"))` (L2746)

> **Branch: レコード通番 (Record Sequence Number — l_rec_seq)** — String field for the internal record sequence number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_rec_seq_value((String) in_value) | value |
| 2 | ELSE-IF → setL_rec_seq_state((String) in_value) | state |

---

**Block 46** — [ELSE-IF] `(key.equals("機器提供サービス契約番号"))` (L2755)

> **Branch: 機器提供サービス契約番号 (Equipment Provision Service Contract Number — l_kktk_svc_cd)** — String field for the equipment provision service contract number. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_kktk_svc_cd_value((String) in_value) | value |
| 2 | ELSE-IF → setL_kktk_svc_cd_state((String) in_value) | state |

---

**Block 47** — [ELSE-IF] `(key.equals("機器提供サービス世代登録年月日時刻"))` (L2764)

> **Branch: 機器提供サービス世代登録年月日時刻 (Equipment Provision Service Generation Registration Timestamp — kktk_svc_gene_add_dtm)** — String field for the generation registration timestamp. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setKktk_svc_gene_add_dtm_value((String) in_value) | value |
| 2 | ELSE-IF → setKktk_svc_gene_add_dtm_state((String) in_value) | state |

---

**Block 48** — [ELSE-IF] `(key.equals("返品区分"))` (L2773)

> **Branch: 返品区分 (Return Classification — hmpin_kbn)** — String field for the return type classification code. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setHmpin_kbn_value((String) in_value) | value |
| 2 | ELSE-IF → setHmpin_kbn_state((String) in_value) | state |

---

**Block 49** — [ELSE-IF] `(key.equals("入力サービス契約番号"))` (L2782)

> **Branch: 入力サービス契約番号 (Input Service Contract Number — L_SVKEI_NO_INPUT)** — String field for the service contract number input field.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_SVKEI_NO_INPUT_value((String) in_value) | value |
| 2 | ELSE-IF → setL_SVKEI_NO_INPUT_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_SVKEI_NO_INPUT_state((String) in_value) | state |

---

**Block 50** — [ELSE-IF] `(key.equals("機器変更番号"))` (L2792)

> **Branch: 機器変更番号 (Equipment Change Number — l_kiki_chg_no)** — String field for the equipment change/tracking number.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_kiki_chg_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_kiki_chg_no_enabled((Boolean) in_value) | enable |
| 3 | ELSE-IF → setL_kiki_chg_no_state((String) in_value) | state |

---

**Block 51** — [ELSE-IF] `(key.equals("返品機器サービス契約番号"))` (L2802)

> **Branch: 返品機器サービス契約番号 (Return Equipment Service Contract Number — l_hmpin_kiki_svc_kei_no)** — String field for the service contract number of the returned equipment. No "enable" subkey.

| # | Type | Code |
|---|------|------|
| 1 | IF → setL_hmpin_kiki_svc_kei_no_value((String) in_value) | value |
| 2 | ELSE-IF → setL_hmpin_kiki_svc_kei_no_state((String) in_value) | state |

---

**Block 52** — [ELSE-IF] `(key.equals("機器提供コード名リスト"))` (L2811)

> **Branch: 機器提供コード名リスト (Equipment Provision Code Name List)** — Virtual list delegation branch. Parses a structured key path to delegate to individual list items.

**Block 52.1** — [SET] `(keyRemain extraction)` (L2813)

> Extract the portion of `key` after the first `/` from `keyRemain`. For example, from `"機器提供コード名リスト/0/プラン名"` → `keyRemain = "0/プラン名"`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` // Get substring after first "/" |

**Block 52.2** — [SET] `(next slash search)` (L2814)

> Find the position of the next `/` within `keyRemain` to separate the list index from the field name.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = keyRemain.indexOf("/")` // Find next separator in keyRemain |

**Block 52.3** — [IF] `(separaterPoint > 0)` (L2815)

> Check that a valid second slash was found (i.e., the key path has both an index and a field name).

**Block 52.3.1** — [SET] `(index extraction)` (L2817)

> Extract the index substring (between the two slashes).

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = keyRemain.substring(0, separaterPoint)` // Extract index as string |

**Block 52.3.2** — [SET] `(try parse index as Integer)` (L2819–L2825)

> Attempt to parse the extracted index as an `Integer`. On `NumberFormatException`, `tmpIndexInt` remains `null`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `Integer tmpIndexInt = null` // Initialize to null |
| 2 | EXEC | `tmpIndexInt = Integer.valueOf(key)` // Try to parse index |
| 3 | CATCH | `catch(NumberFormatException e) { tmpIndexInt = null; }` // Not numeric — abort |

**Block 52.3.3** — [IF] `(tmpIndexInt != null)` (L2826)

> Check that the index was successfully parsed as a numeric value.

**Block 52.3.3.1** — [SET] `(int cast)` (L2827)

| # | Type | Code |
|---|------|------|
| 1 | SET | `int tmpIndex = tmpIndexInt.intValue()` // Cast Integer to int |

**Block 52.3.3.2** — [IF] `(tmpIndex >= 0 && tmpIndex < kiki_teikyo_cd_list_list.size())` (L2828)

> Validate that the index is within the bounds of the virtual list.

**Block 52.3.3.2.1** — [SET] `(field key extraction)` (L2831)

> Extract the field name portion (after the index).

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = keyRemain.substring(separaterPoint + 1)` // Extract field name from keyRemain |

**Block 52.3.3.2.2** — [CALL] `(recursive delegation)` (L2832)

> **CRITICAL:** Cast the list item at `tmpIndex` to `X33VDataTypeBeanInterface` and call its `storeModelData` method, passing the extracted field `key`, the original `subkey`, `in_value`, and `isSetAsString`. This recursively processes the nested item's data.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `((X33VDataTypeBeanInterface) kiki_teikyo_cd_list_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| 返品 (hmpin) | Field prefix | Return — refers to equipment return/return process in the telecom domain |
| 返品番号 (l_hmpin_no) | Field | Return Number — internal tracking number for a return transaction |
| 返品機器番号 (l_hmpin_kiki_no) | Field | Return Device Number — identifier for the specific equipment being returned |
| 返品者 (l_hmpinsha) | Field prefix | Returner — the person/entity returning equipment |
| 返品者名 (l_hmpinsha_nm) | Field | Returner Name — name of the person returning equipment |
| 返品者郵便番号 (l_hmpinsha_pcd) | Field | Returner Postal Code |
| 返品者都道府県名 (l_hmpinsha_state_nm) | Field | Returner Prefecture Name — Japanese administrative region |
| 返品者市区町村名 (l_hmpinsha_city_nm) | Field | Returner City/Town/Village Name |
| 返品者大字通称名 (l_hmpinsha_oaztsu_nm) | Field | Returner District Major Name — large district name in Japanese addresses |
| 返品者字丁目名 (l_hmpinsha_azcho_nm) | Field | Returner Block/Chome Name — subdivision of district in Japanese addresses |
| 返品者番地号 (l_hmpinsha_bnchigo) | Field | Returner Lot Number — house/lot number |
| 返品者住所補記・建物名 (l_hmpinsha_adrttm) | Field | Returner Address Supplement — Building Name |
| 返品者住所補記・部屋番号 (l_hmpinsha_adrrm) | Field | Returner Address Supplement — Room Number |
| 返品者電話番号 (l_hmpinsha_telno) | Field | Returner Phone Number |
| 返品者更新年月日時刻 (l_hmpinsha_upd_dtm) | Field | Returner Update Timestamp — last modification date/time of the returner record |
| 返品種類 (l_hmpin_sbt) | Field | Return Type — classification/category of return |
| 返品種類名称 (l_hmpin_sbt_nm) | Field | Return Type Name — human-readable return type |
| 返品理由 (l_hmpin_rsn) | Field | Return Reason — code/description of why equipment is being returned |
| 返品理由名称 (l_hmpin_rsn_nm) | Field | Return Reason Name — human-readable return reason |
| 返品詳細 (l_hmpin_dtl) | Field | Return Details — additional notes/details about the return |
| 返品区分 (hmpin_kbn) | Field | Return Classification — code classifying the type of return |
| 返品日 (l_hmpin_ymd) | Field | Return Date — date of the return transaction |
| 返品機器サービス契約番号 (l_hmpin_kiki_svc_kei_no) | Field | Return Equipment Service Contract Number |
| 選択 (l_choice) | Field | Selection — Boolean flag for selection state |
| 行カラー (l_color) | Field | Row Color — UI display color for a table row |
| 項目 (l_no) | Field | Item Number — numeric item identifier (Long type, stored as String) |
| 受取先 (l_ukeire_sk) | Field | Recipient — entity receiving the returned equipment |
| 受取先名称 (l_ukeire_sk_nm) | Field | Recipient Name — name of receiving entity |
| 表示用受取先名称 (l_ukeire_sk_nm_disp) | Field | Display Recipient Name — display-formatted recipient name |
| サービス契約番号 (l_svkei_no) | Field | Service Contract Number |
| 案件番号 (l_anken_no) | Field | Case Number — case tracking identifier |
| 契約者名 (l_ksh_nm) | Field | Contractor Name — name of the service contractor |
| 表示用契約者名 (l_ksh_nm_disp) | Field | Display Contractor Name — display-formatted contractor name |
| 型番 (l_mdl_no) | Field | Model Number — equipment model identifier |
| 製造番号 (l_seizo_no) | Field | Serial Number — equipment serial number |
| 機器契約区分 (l_kiki_kei_div) | Field | Equipment Contract Classification — category of equipment contract |
| 機器契約区分名称 (l_kiki_kei_div_nm) | Field | Equipment Contract Classification Name |
| 機器契約区分選択インデックス (l_kiki_kei_div_select_index) | Field | Equipment Contract Classification Selection Index — numeric index with Long-to-String coercion |
| 商品状態 (l_gds_stat) | Field | Product Status — current state of the product/service |
| 商品状態名称 (l_gds_stat_nm) | Field | Product Status Name — human-readable product status |
| 表示用商品状態名称 (l_gds_stat_nm_disp) | Field | Display Product Status Name — display-formatted status |
| 解約日 (l_dsl_ymd) | Field | Cancellation Date — date of service cancellation |
| レンタル解約書 (l_rent_dsl) | Field | Rental Cancellation Document |
| レンタル解約書名称 (l_rent_dsl_nm) | Field | Rental Cancellation Document Name |
| 承認 (l_shonin) | Field | Approval — approval status/approval flag |
| 出荷ロット番号 (l_shukka_lot_no) | Field | Shipping Lot Number |
| レコード通番 (l_rec_seq) | Field | Record Sequence Number — internal record sequence |
| 機器提供サービス契約番号 (l_kktk_svc_cd) | Field | Equipment Provision Service Contract Number |
| 機器提供サービス世代登録年月日時刻 (kktk_svc_gene_add_dtm) | Field | Equipment Provision Service Generation Registration Timestamp |
| 入力サービス契約番号 (L_SVKEI_NO_INPUT) | Field | Input Service Contract Number — input field for service contract number |
| 機器変更番号 (l_kiki_chg_no) | Field | Equipment Change Number — tracking number for equipment changes |
| 機器提供コード名リスト (kiki_teikyo_cd_list) | Field | Equipment Provision Code Name List — virtual list of equipment provision codes |
| kiki_teikyo_cd_list_list | Instance field | ArrayList of equipment provision code name items (X33VDataTypeBeanInterface) |
| X33VDataTypeBeanInterface | Interface | Interface for virtual data type beans that support storeModelData delegation |
| isSetAsString | Parameter | Flag indicating whether to set a Long-type field's Value property using a String value |
| Struts | Framework | Apache Struts MVC framework — Java web application framework using DynaActionForm pattern |
| Data Bean / DBean | Pattern | Data transfer object used in Struts to hold view model data between form submission and rendering |