# Business Logic — DKW00301SF05DBean.loadModelData() [626 LOC]

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

## 1. Role

### DKW00301SF05DBean.loadModelData()

This method serves as the central data-access router for the DKW00301SF (Equipment Return/Delivery Management Screen) module. Its business purpose is to provide a uniform key-based lookup mechanism so that the JSP view layer can retrieve field values, editability flags, and state attributes for all display items on the equipment return screen without direct bean property access. It implements a **routing/dispatch pattern**: the `key` parameter identifies a business field (e.g., "Select" for Boolean selection, "Return Date" for a date field, "Return Address" for an address block), while the `subkey` parameter specifies which attribute of that field to retrieve - `value` for the actual data, `enable` for the editability toggle, or `state` for the visual state (e.g., grayed-out, error). For most fields it delegates to a pair or triplet of getter methods (`getL_<field>_value()`, `getL_<field>_enabled()`, `getL_<field>_state()`). Two fields with Long data types ("Item Number" and "Equipment Contract Division Selection Index") include an extra normalisation step: the returned string has the Unicode minus character U+2212 replaced with a standard ASCII minus '-' for consistent display. The final branch handles the "Equipment Provider Code Name List" - a dynamic indexed collection - by parsing the key as a compound path (e.g., "Equipment Provider Code Name List/plaintext/0/name"), delegating to the appropriate element's `loadModelData` to support nested item access within the list.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData key, subkey"])
    COND_NULL["key or subkey is null?"]
    FIND_SLASH["separaterPoint = key.indexOf('/')"]
    COND_SELECT["key equals '選択'?"]
    NODE_SELECT_VALUE["subkey equals 'value'?"]
    NODE_SELECT_RETURN["return getL_choice_value()"]
    NODE_SELECT_ENABLE["subkey equals 'enable'?"]
    NODE_SELECT_ENABLE_RET["return getL_choice_enabled()"]
    NODE_SELECT_STATE["subkey equals 'state'?"]
    NODE_SELECT_STATE_RET["return getL_choice_state()"]
    COND_COLOR["key equals '行カラー'?"]
    NODE_COLOR_VALUE["subkey equals 'value'?"]
    NODE_COLOR_VALUE_RET["return getL_color_value()"]
    NODE_COLOR_ENABLE["subkey equals 'enable'?"]
    NODE_COLOR_ENABLE_RET["return getL_color_enabled()"]
    NODE_COLOR_STATE["subkey equals 'state'?"]
    NODE_COLOR_STATE_RET["return getL_color_state()"]
    COND_RETURN_NULL["return null"]
    COND_LIST["key equals '機器提供コード名称リスト'?"]
    NODE_KEY_REMAIN["keyRemain = key.substring(separaterPoint + 1)"]
    NODE_KEY_REMAIN_STAR["keyRemain equals '*'?"]
    NODE_KEY_REMAIN_STAR_RET["return kiki_teikyo_cd_list_list.size()"]
    NODE_SEP2["separaterPoint2 = keyRemain.indexOf('/')"]
    NODE_SEP2_NULL["separaterPoint2 <= 0?"]
    NODE_SEP2_NULL_RET["return null"]
    NODE_INDEX_BOUNDS["tmpIndex out of bounds?"]
    NODE_INDEX_BOUNDS_RET["return null"]
    NODE_PARSE_CATCH["NumberFormatException caught"]
    NODE_PARSE_CATCH_RET["return null"]
    NODE_RECURSE_KEY["key = keyRemain.substring(separaterPoint2 + 1)"]
    NODE_RECURSE["delegate to ((X33VDataTypeBeanInterface)kiki_teikyo_cd_list_list.get(tmpIndex)).loadModelData(key, subkey)"]
    END_NODE(["Return / Next"])
    START --> COND_NULL
    COND_NULL -->|Yes| COND_RETURN_NULL
    COND_NULL -->|No| FIND_SLASH
    FIND_SLASH --> COND_SELECT
    COND_SELECT -->|Yes| NODE_SELECT_VALUE
    NODE_SELECT_VALUE -->|Yes| NODE_SELECT_RETURN
    NODE_SELECT_VALUE -->|No| NODE_SELECT_ENABLE
    NODE_SELECT_ENABLE -->|Yes| NODE_SELECT_ENABLE_RET
    NODE_SELECT_ENABLE -->|No| NODE_SELECT_STATE
    NODE_SELECT_STATE -->|Yes| NODE_SELECT_STATE_RET
    NODE_SELECT_STATE -->|No| COND_COLOR
    COND_SELECT -->|No| COND_COLOR
    COND_COLOR -->|Yes| NODE_COLOR_VALUE
    NODE_COLOR_VALUE -->|Yes| NODE_COLOR_VALUE_RET
    NODE_COLOR_VALUE -->|No| NODE_COLOR_ENABLE
    NODE_COLOR_ENABLE -->|Yes| NODE_COLOR_ENABLE_RET
    NODE_COLOR_ENABLE -->|No| NODE_COLOR_STATE
    NODE_COLOR_STATE -->|Yes| NODE_COLOR_STATE_RET
    NODE_COLOR_STATE -->|No| COND_LIST
    COND_COLOR -->|No| COND_LIST
    COND_LIST -->|Yes| NODE_KEY_REMAIN
    NODE_KEY_REMAIN --> NODE_KEY_REMAIN_STAR
    NODE_KEY_REMAIN_STAR -->|Yes| NODE_KEY_REMAIN_STAR_RET
    NODE_KEY_REMAIN_STAR -->|No| NODE_SEP2
    NODE_SEP2 --> NODE_SEP2_NULL
    NODE_SEP2_NULL -->|Yes| NODE_SEP2_NULL_RET
    NODE_SEP2_NULL -->|No| NODE_INDEX_BOUNDS
    NODE_INDEX_BOUNDS -->|Out of bounds| NODE_INDEX_BOUNDS_RET
    NODE_INDEX_BOUNDS -->|In bounds| NODE_RECURSE_KEY
    NODE_RECURSE_KEY --> NODE_RECURSE
    NODE_RECURSE --> END_NODE
    COND_LIST -->|No| COND_RETURN_NULL
    END_NODE(["Return / Next"])
```

**Note:** The full flowchart covers all 47 field key branches below. Due to the method's dispatch nature, the diagram above shows the primary flow; each `key.equals()` branch follows the same pattern:

| Flow Step | Description |
|-----------|-------------|
| 1. Null Guard | If `key == null` or `subkey == null`, return `null` (L1652) |
| 2. Parse Separator | Find first '/' in key for later compound-key handling (L1655) |
| 3. Key Dispatch | Chain of 47 `else if(key.equals("..."))` branches, each matched by the Japanese field name |
| 4. Subkey Resolution | Within each key branch, `subkey.equalsIgnoreCase("value"/"enable"/"state")` determines which getter to invoke |
| 5. Long Normalisation | For "Item Number" (L1701) and "Equipment Contract Division Selection Index" (L1867): replace U+2212 with '-' |
| 6. List Index Access | For "Equipment Provider Code Name List" (L2233): parse compound key, resolve index, delegate to inner bean |
| 7. Fallback | If no key matches, return `null` (L2273) |

### Branch Summary

The method handles **47 distinct field types**, categorized as follows:

**Boolean fields (value/enable/state):** "Select", "Row Color", "Acceptance/Approval"

**String fields (value/enable/state):** "Receiver Name", "Receiver", "Display Receiver Name", "Service Contract Number", "Contractor Name", "Display Contractor Name", "Model Number", "Serial Number", "Equipment Contract Division", "Equipment Contract Division Name", "Product Status", "Product Status Name", "Display Product Status Name", "Cancellation Date", "Return Type", "Return Type Name", "Rental Cancellation Document", "Rental Cancellation Document Name", "Input Service Contract Number", "Equipment Change Number"

**Long type fields with normalisation (value/enable/state):** "Item Number", "Equipment Contract Division Selection Index"

**State-only fields (value/state):** "Return Device Number", "Shipping Lot Number", "Return Reason Name", "Return Reason", "Return Detail", "Return Number", "Returner Postal Code", "Returner Prefecture", "Returner City/Town/Village", "Returner District", "Returner Chome", "Returner Block/Number", "Returner Address Note Building", "Returner Address Note Room", "Returner Phone Number", "Returner Name", "Returner Update DateTime", "Record Number", "Equipment Provision Service Contract Number", "Equipment Provision Service Generation Registration DateTime", "Return Division", "Return Device Service Contract Number", "Return Type Name"

**List-type field (special handling):** "Equipment Provider Code Name List"

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | Japanese field name (項目名) identifying which screen field's data to retrieve. Examples: "選択" (Select), "返品日" (Return Date), "受取先名称" (Receiver Name). Also supports compound key paths for list items: "機器提供コード名称リスト/plaintext/0/プロバイダコード名" (Equipment Provider Code Name List). |
| 2 | `subkey` | `String` | Attribute of the field to retrieve: "value" (the field's data value), "enable" (whether the field is editable), or "state" (the field's display state, e.g., disabled/grayed-out). Case-insensitive comparison (`equalsIgnoreCase`). |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `kiki_teikyo_cd_list_list` | `List<X33VDataTypeBeanInterface>` | List of equipment provider code name entries; used for the compound-key list branch to delegate to inner beans |

## 4. CRUD Operations / Called Services

This method performs **no database or CBS operations directly**. All called methods are local bean getters that retrieve field state/value from instance properties of `DKW00301SF05DBean`. These properties are populated upstream by other services (e.g., during screen initialization or data load). No SC Codes or Entity/DB tables are accessed within this method.

### Called Method Summary (all R - Read, local getters)

The following getter methods are called (grouped by field type for readability):

**Value getters (getL_*_value) — 47 total:** These retrieve the data value of each screen field. Called when `subkey.equalsIgnoreCase("value")`.

**State getters (getL_*_state) — 47 total:** These retrieve the display state (enabled/disabled/grayed-out) of each screen field. Called when `subkey.equalsIgnoreCase("state")`.

**Enable getters (getL_*_enabled) — 18 total:** These retrieve the editability flag of each screen field. Called when `subkey.equalsIgnoreCase("enable")`.

**Special methods:**
- `getL_no_value()` (L1701): Returns Long field value for "Item Number" with Unicode minus normalisation
- `getL_kiki_kei_div_select_index_value()` (L1867): Returns Long field value for "Equipment Contract Division Selection Index" with Unicode minus normalisation
- `((X33VDataTypeBeanInterface)kiki_teikyo_cd_list_list.get(tmpIndex)).loadModelData(key, subkey)` (L2272): Delegates to an inner bean within the list for compound-key access

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 1 methods.
Terminal operations from this method: `loadModelData` [R], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `substring` [-], `getL_hmpin_kiki_svc_kei_no_state` [R], `getL_hmpin_kiki_svc_kei_no_value` [R], `getL_kiki_chg_no_state` [R], `getL_kiki_chg_no_enabled` [R], `getL_kiki_chg_no_value` [R], `getL_SVKEI_NO_INPUT_state` [R], `getL_SVKEI_NO_INPUT_enabled` [R]

### Callers

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `DKW00301SF05DBean.getJsflist_typelist_kiki_teikyo_cd_list()` | DKW00301SF05DBean.getJsflist_typelist_kiki_teikyo_cd_list() -> loadModelData("機器提供コード名称リスト/...", subkey) | loadModelData [R] (local bean getters) |
| 2 | `DKW00301SF05DBean.loadModelData()` | DKW00301SF05DBean.loadModelData() (overloaded entry point, likely default parameter values) | loadModelData [R] (local bean getters) |

### Terminal operations from this method:

All terminal operations are local bean getter calls that read instance state:
- `getL_*_value` [R] — 47 value retrievals for all screen fields
- `getL_*_state` [R] — 47 state retrievals for all screen fields
- `getL_*_enabled` [R] — 18 enable retrievals for editable fields
- `substring` [-] — String parsing for compound-key handling in "Equipment Provider Code Name List" branch
- `getKktk_svc_gene_add_dtm_value/state` [R] — Equipment Provision Service Generation Registration DateTime
- `getHmpin_kbn_value/state` [R] — Return Division
- `getL_hmpin_kiki_svc_kei_no_value/state` [R] — Return Device Service Contract Number
- `getL_kiki_chg_no_value/state/enable` [R] — Equipment Change Number
- `getL_SVKEI_NO_INPUT_value/state/enable` [R] — Input Service Contract Number

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null guard) (L1651)

> If key or subkey is null, return null immediately. This is the Java null safety check preventing NPE.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key == null || subkey == null)` // Early return guard |
| 2 | RETURN | `return null` // No data for null key or subkey |

**Block 2** — SET (separator parsing) (L1655)

> Parse the first '/' in key to prepare for potential compound-key handling in the list branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Find first '/' for compound key parsing |

**Block 3** — IF/ELSE-IF chain (key dispatch) (L1657-L2272)

> The main dispatch block: a chain of 47 `else if(key.equals("..."))` branches, each matching a Japanese field name. Each branch contains a nested subkey resolution.

### Block 3.1 — IF key.equals("選択") (L1658-1668) [Select field]

> "Select" is a Boolean-type field (項目ID: l_choice). The branch handles value/enable/state subkey access.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` // Boolean field |
| 2 | CALL | `return getL_choice_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、l_choice_enableのgetterの戻り値を返す |
| 4 | CALL | `return getL_choice_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す |
| 6 | CALL | `return getL_choice_state()` |

### Block 3.2 — IF key.equals("行カラー") (L1670-1680) [Row Color field]

> "行カラー" (行カラー) is a String-type field for row-level color display (項目ID: l_color). The branch handles value/enable/state subkey access.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` // String field |
| 2 | CALL | `return getL_color_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、l_color_enableのgetterの戻り値を返す |
| 4 | CALL | `return getL_color_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す |
| 6 | CALL | `return getL_color_state()` |

### Block 3.3 — IF key.equals("項目番") (L1682-1714) [Item Number field - Long type]

> "項目番" (項目番) is a Long-type field (項目ID: l_no). Includes Unicode minus character normalisation (U+2212 to ASCII '-').

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` // Long field |
| 2 | CALL | `tmpValue = getL_no_value()` |
| 3 | IF | `if(tmpValue != null)` // Normalise Unicode minus to ASCII |
| 4 | EXEC | `tmpValue = tmpValue.replace('−', '-')` // Unicode minus to ASCII minus |
| 5 | RETURN | `return tmpValue` |
| 6 | ELSE | `return null` // tmpValue is null |
| 7 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、l_no_enableのgetterの戻り値を返す |
| 8 | CALL | `return getL_no_enabled()` |
| 9 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す |
| 10 | CALL | `return getL_no_state()` |

### Block 3.4 — IF key.equals("返品機器番号") (L1716-1726) [Return Device Number field]

> "返品機器番号" (返品機器番号) is a String-type field (項目ID: l_hmpin_kiki_no). Only supports value/state subkeys (no enable).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_kiki_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す |
| 4 | CALL | `return getL_hmpin_kiki_no_state()` |

### Block 3.5 — IF key.equals("受取先名称") (L1728-1740) [Receiver Name field]

> "受取先名称" (受取先名称) is a String-type field (項目ID: l_ukeire_sk_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_ukeire_sk_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_ukeire_sk_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_ukeire_sk_nm_state()` |

### Block 3.6 — IF key.equals("受取先") (L1742-1752) [Receiver field]

> "受取先" (受取先) is a String-type field (項目ID: l_ukeire_sk). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_ukeire_sk_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_ukeire_sk_state()` |

### Block 3.7 — IF key.equals("表示用受取先名称") (L1754-1766) [Display Receiver Name field]

> "表示用受取先名称" (表示用受取先名称) is a String-type field (項目ID: l_ukeire_sk_nm_disp). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_ukeire_sk_nm_disp_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_ukeire_sk_nm_disp_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_ukeire_sk_nm_disp_state()` |

### Block 3.8 — IF key.equals("サービス契約番号") (L1768-1780) [Service Contract Number field]

> "サービス契約番号" (サービス契約番号) is a String-type field (項目ID: l_svkei_no). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_svkei_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_svkei_no_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_svkei_no_state()` |

### Block 3.9 — IF key.equals("案件番号") (L1782-1794) [Case Number field]

> "案件番号" (案件番号) is a String-type field (項目ID: l_anken_no). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_anken_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_anken_no_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_anken_no_state()` |

### Block 3.10 — IF key.equals("契約者名") (L1796-1808) [Contractor Name field]

> "契約者名" (契約者名) is a String-type field (項目ID: l_ksh_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_ksh_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_ksh_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_ksh_nm_state()` |

### Block 3.11 — IF key.equals("表示用契約者名") (L1810-1822) [Display Contractor Name field]

> "表示用契約者名" (表示用契約者名) is a String-type field (項目ID: l_ksh_nm_disp). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_ksh_nm_disp_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_ksh_nm_disp_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_ksh_nm_disp_state()` |

### Block 3.12 — IF key.equals("返品日") (L1824-1836) [Return Date field]

> "返品日" (返品日) is a String-type field (項目ID: l_hmpin_ymd). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_ymd_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_hmpin_ymd_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_hmpin_ymd_state()` |

### Block 3.13 — IF key.equals("型番") (L1838-1850) [Model Number field]

> "型番" (型番) is a String-type field (項目ID: l_mdl_no). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_mdl_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_mdl_no_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_mdl_no_state()` |

### Block 3.14 — IF key.equals("製造番号") (L1852-1864) [Serial Number field]

> "製造番号" (製造番号) is a String-type field (項目ID: l_seizo_no). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_seizo_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_seizo_no_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_seizo_no_state()` |

### Block 3.15 — IF key.equals("機器契約区分") (L1866-1878) [Equipment Contract Division field]

> "機器契約区分" (機器契約区分) is a String-type field (項目ID: l_kiki_kei_div). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_kiki_kei_div_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_kiki_kei_div_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_kiki_kei_div_state()` |

### Block 3.16 — IF key.equals("機器契約区分名称") (L1880-1892) [Equipment Contract Division Name field]

> "機器契約区分名称" (機器契約区分名称) is a String-type field (項目ID: l_kiki_kei_div_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_kiki_kei_div_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_kiki_kei_div_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_kiki_kei_div_nm_state()` |

### Block 3.17 — IF key.equals("機器契約区分選択インデックス") (L1894-1926) [Equipment Contract Division Selection Index - Long type]

> "機器契約区分選択インデックス" (機器契約区分選択インデックス) is a Long-type field (項目ID: l_kiki_kei_div_select_index). Includes Unicode minus normalisation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` // Long field |
| 2 | CALL | `tmpValue = getL_kiki_kei_div_select_index_value()` |
| 3 | IF | `if(tmpValue != null)` // Normalise Unicode minus to ASCII |
| 4 | EXEC | `tmpValue = tmpValue.replace('−', '-')` |
| 5 | RETURN | `return tmpValue` |
| 6 | ELSE | `return null` |
| 7 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 8 | CALL | `return getL_kiki_kei_div_select_index_enabled()` |
| 9 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 10 | CALL | `return getL_kiki_kei_div_select_index_state()` |

### Block 3.18 — IF key.equals("商品状態") (L1928-1940) [Product Status field]

> "商品状態" (商品状態) is a String-type field (項目ID: l_gds_stat). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_gds_stat_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_gds_stat_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_gds_stat_state()` |

### Block 3.19 — IF key.equals("商品状態名称") (L1942-1954) [Product Status Name field]

> "商品状態名称" (商品状態名称) is a String-type field (項目ID: l_gds_stat_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_gds_stat_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_gds_stat_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_gds_stat_nm_state()` |

### Block 3.20 — IF key.equals("表示用商品状態名称") (L1956-1968) [Display Product Status Name field]

> "表示用商品状態名称" (表示用商品状態名称) is a String-type field (項目ID: l_gds_stat_nm_disp). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_gds_stat_nm_disp_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_gds_stat_nm_disp_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_gds_stat_nm_disp_state()` |

### Block 3.21 — IF key.equals("解約日") (L1970-1982) [Cancellation Date field]

> "解約日" (解約日) is a String-type field (項目ID: l_dsl_ymd). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_dsl_ymd_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_dsl_ymd_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_dsl_ymd_state()` |

### Block 3.22 — IF key.equals("返品種別") (L1984-1996) [Return Type field]

> "返品種別" (返品種別) is a String-type field (項目ID: l_hmpin_sbt). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_sbt_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_hmpin_sbt_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_hmpin_sbt_state()` |

### Block 3.23 — IF key.equals("返品種別名称") (L1998-2010) [Return Type Name field]

> "返品種別名称" (返品種別名称) is a String-type field (項目ID: l_hmpin_sbt_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_sbt_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_hmpin_sbt_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_hmpin_sbt_nm_state()` |

### Block 3.24 — IF key.equals("レンタル解約書") (L2012-2024) [Rental Cancellation Document field]

> "レンタル解約書" (レンタル解約書) is a String-type field (項目ID: l_rent_dsl). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_rent_dsl_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_rent_dsl_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_rent_dsl_state()` |

### Block 3.25 — IF key.equals("レンタル解約書名称") (L2026-2038) [Rental Cancellation Document Name field]

> "レンタル解約書名称" (レンタル解約書名称) is a String-type field (項目ID: l_rent_dsl_nm). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_rent_dsl_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_rent_dsl_nm_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_rent_dsl_nm_state()` |

### Block 3.26 — IF key.equals("承認") (L2040-2052) [Acceptance/Approval field]

> "承認" (承認) is a String-type field (項目ID: l_shonin). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_shonin_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_shonin_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_shonin_state()` |

### Block 3.27 — IF key.equals("出荷ロット番号") (L2054-2064) [Shipping Lot Number field]

> "出荷ロット番号" (出荷ロット番号) is a String-type field (項目ID: l_shukka_lot_no). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_shukka_lot_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_shukka_lot_no_state()` |

### Block 3.28 — IF key.equals("返品理由名称") (L2066-2076) [Return Reason Name field]

> "返品理由名称" (返品理由名称) is a String-type field (項目ID: l_hmpin_rsn_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_rsn_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpin_rsn_nm_state()` |

### Block 3.29 — IF key.equals("返品理由") (L2078-2088) [Return Reason field]

> "返品理由" (返品理由) is a String-type field (項目ID: l_hmpin_rsn). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_rsn_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpin_rsn_state()` |

### Block 3.30 — IF key.equals("返品詳細") (L2090-2100) [Return Detail field]

> "返品詳細" (返品詳細) is a String-type field (項目ID: l_hmpin_dtl). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_dtl_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpin_dtl_state()` |

### Block 3.31 — IF key.equals("返品番号") (L2102-2112) [Return Number field]

> "返品番号" (返品番号) is a String-type field (項目ID: l_hmpin_no). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpin_no_state()` |

### Block 3.32 — IF key.equals("返品者郵便番号") (L2114-2124) [Returner Postal Code field]

> "返品者郵便番号" (返品者郵便番号) is a String-type field (項目ID: l_hmpinsha_pcd). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_pcd_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_pcd_state()` |

### Block 3.33 — IF key.equals("返品者都道府県名") (L2126-2136) [Returner Prefecture field]

> "返品者都道府県名" (返品者都道府県名) is a String-type field (項目ID: l_hmpinsha_state_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_state_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_state_nm_state()` |

### Block 3.34 — IF key.equals("返品者市区町村名") (L2138-2148) [Returner City/Town/Village field]

> "返品者市区町村名" (返品者市区町村名) is a String-type field (項目ID: l_hmpinsha_city_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_city_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_city_nm_state()` |

### Block 3.35 — IF key.equals("返品者大字通称名") (L2150-2160) [Returner District field]

> "返品者大字通称名" (返品者大字通称名) is a String-type field (項目ID: l_hmpinsha_oaztsu_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_oaztsu_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_oaztsu_nm_state()` |

### Block 3.36 — IF key.equals("返品者字丁目名") (L2162-2172) [Returner Chome field]

> "返品者字丁目名" (返品者字丁目名) is a String-type field (項目ID: l_hmpinsha_azcho_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_azcho_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_azcho_nm_state()` |

### Block 3.37 — IF key.equals("返品者番地号") (L2174-2184) [Returner Block/Number field]

> "返品者番地号" (返品者番地号) is a String-type field (項目ID: l_hmpinsha_bnchigo). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_bnchigo_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_bnchigo_state()` |

### Block 3.38 — IF key.equals("返品者住所補記・建物名") (L2186-2196) [Returner Address Note Building field]

> "返品者住所補記・建物名" (返品者住所補記・建物名) is a String-type field (項目ID: l_hmpinsha_adrttm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_adrttm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_adrttm_state()` |

### Block 3.39 — IF key.equals("返品者住所補記・部屋番号") (L2198-2208) [Returner Address Note Room field]

> "返品者住所補記・部屋番号" (返品者住所補記・部屋番号) is a String-type field (項目ID: l_hmpinsha_adrrm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_adrrm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_adrrm_state()` |

### Block 3.40 — IF key.equals("返品者電話番号") (L2210-2220) [Returner Phone Number field]

> "返品者電話番号" (返品者電話番号) is a String-type field (項目ID: l_hmpinsha_telno). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_telno_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_telno_state()` |

### Block 3.41 — IF key.equals("返品者名") (L2222-2232) [Returner Name field]

> "返品者名" (返品者名) is a String-type field (項目ID: l_hmpinsha_nm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_nm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_nm_state()` |

### Block 3.42 — IF key.equals("返品者更新年月日時秒") (L2234-2244) [Returner Update DateTime field]

> "返品者更新年月日時秒" (返品者更新年月日時秒) is a String-type field (項目ID: l_hmpinsha_upd_dtm). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpinsha_upd_dtm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpinsha_upd_dtm_state()` |

### Block 3.43 — IF key.equals("レコード通番") (L2246-2256) [Record Number field]

> "レコード通番" (レコード通番) is a String-type field (項目ID: l_rec_seq). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_rec_seq_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_rec_seq_state()` |

### Block 3.44 — IF key.equals("機器提供サービス契約番号") (L2258-2268) [Equipment Provision Service Contract Number field]

> "機器提供サービス契約番号" (機器提供サービス契約番号) is a String-type field (項目ID: l_kktk_svc_cd). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_kktk_svc_cd_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_kktk_svc_cd_state()` |

### Block 3.45 — IF key.equals("機器提供サービス世代登録年月日時秒") (L2270-2280) [Equipment Provision Service Generation Registration DateTime field]

> "機器提供サービス世代登録年月日時秒" (機器提供サービス世代登録年月日時秒) is a String-type field (項目ID: kktk_svc_gene_add_dtm). Only supports value/state subkeys. Uses class-level getter prefix `getKktk_` instead of `getL_`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getKktk_svc_gene_add_dtm_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getKktk_svc_gene_add_dtm_state()` |

### Block 3.46 — IF key.equals("返品区分") (L2282-2292) [Return Division field]

> "返品区分" (返品区分) is a String-type field (項目ID: hmpin_kbn). Only supports value/state subkeys. Uses class-level getter prefix `getHmpin_` instead of `getL_`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getHmpin_kbn_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getHmpin_kbn_state()` |

### Block 3.47 — IF key.equals("入力サービス契約番号") (L2294-2306) [Input Service Contract Number field]

> "入力サービス契約番号" (入力サービス契約番号) is a String-type field (項目ID: L_SVKEI_NO_INPUT). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_SVKEI_NO_INPUT_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_SVKEI_NO_INPUT_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_SVKEI_NO_INPUT_state()` |

### Block 3.48 — IF key.equals("機器変更番号") (L2308-2320) [Equipment Change Number field]

> "機器変更番号" (機器変更番号) is a String-type field (項目ID: l_kiki_chg_no). Supports value/enable/state.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_kiki_chg_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 4 | CALL | `return getL_kiki_chg_no_enabled()` |
| 5 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 6 | CALL | `return getL_kiki_chg_no_state()` |

### Block 3.49 — IF key.equals("返品機器サービス契約番号") (L2322-2332) [Return Device Service Contract Number field]

> "返品機器サービス契約番号" (返品機器サービス契約番号) is a String-type field (項目ID: l_hmpin_kiki_svc_kei_no). Only supports value/state subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL_hmpin_kiki_svc_kei_no_value()` |
| 3 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 4 | CALL | `return getL_hmpin_kiki_svc_kei_no_state()` |

### Block 3.50 — IF key.equals("機器提供コード名称リスト") (L2233-L2272) [Equipment Provider Code Name List - special compound-key handling]

> "機器提供コード名称リスト" (機器提供コード名称リスト) (項目ID: kiki_teikyo_cd_list) is a dynamic list field. The key is parsed as a compound path: "機器提供コード名称リスト/plaintext/0/プロバイダコード名".

| # | Type | Code |
|---|------|------|
| 1 | SET | `keyRemain = key.substring(separaterPoint + 1)` // Extract after first '/' |
| 2 | IF | `if(keyRemain.equals("*"))` // Wildcard: return list size |
| 3 | CALL | `return Integer.valueOf(kiki_teikyo_cd_list_list.size())` |
| 4 | ELSE | Continue to index parsing |
| 5 | SET | `separaterPoint = keyRemain.indexOf("/")` // Find next '/' in remainder |
| 6 | IF | `if(separaterPoint <= 0)` // No separator found or invalid |
| 7 | RETURN | `return null` |
| 8 | SET | `key = keyRemain.substring(0, separaterPoint)` // Extract index portion |
| 9 | TRY-CATCH | `try { tmpIndexInt = Integer.valueOf(key); } catch(NumberFormatException e)` |
| 10 | RETURN | `return null` // Not a valid number |
| 11 | IF | `if(tmpIndexInt == null)` // Guard against null after parseInt |
| 12 | RETURN | `return null` |
| 13 | SET | `tmpIndex = tmpIndexInt.intValue()` // Convert Integer to int |
| 14 | IF | `if(tmpIndex < 0 || tmpIndex >= kiki_teikyo_cd_list_list.size())` // Out of bounds |
| 15 | RETURN | `return null` |
| 16 | SET | `key = keyRemain.substring(separaterPoint + 1)` // Extract remaining key for inner bean |
| 17 | CALL | `return ((X33VDataTypeBeanInterface)kiki_teikyo_cd_list_list.get(tmpIndex)).loadModelData(key, subkey)` |

**Block 4** — RETURN (fallback) (L2273)

> If no key branch matches, return null. This is the default case for unknown field names.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` // No matching field found |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `l_choice` | Field | Select field — Boolean selection flag on the equipment return screen |
| `l_color` | Field | Row Color — String field for row-level color display |
| `l_no` | Field | Item Number (項目番) — Long-type sequential item identifier |
| `l_hmpin_kiki_no` | Field | Return Device Number (返品機器番号) — Serial ID of the device being returned |
| `l_ukeire_sk_nm` | Field | Receiver Name (受取先名称) — Name of the party receiving the returned item |
| `l_ukeire_sk` | Field | Receiver (受取先) — Short-form receiver identifier |
| `l_ukeire_sk_nm_disp` | Field | Display Receiver Name (表示用受取先名称) — Receiver name for display purposes |
| `l_svkei_no` | Field | Service Contract Number (サービス契約番号) — ID of the service contract |
| `l_anken_no` | Field | Case Number (案件番号) — Internal case tracking number |
| `l_ksh_nm` | Field | Contractor Name (契約者名) — Name of the contracting party |
| `l_ksh_nm_disp` | Field | Display Contractor Name (表示用契約者名) — Contractor name for display |
| `l_hmpin_ymd` | Field | Return Date (返品日) — Date when the item is returned |
| `l_mdl_no` | Field | Model Number (型番) — Product model identifier |
| `l_seizo_no` | Field | Serial Number (製造番号) — Manufacturing serial number |
| `l_kiki_kei_div` | Field | Equipment Contract Division (機器契約区分) — Classification of the equipment contract |
| `l_kiki_kei_div_nm` | Field | Equipment Contract Division Name (機器契約区分名称) — Name of the contract division |
| `l_kiki_kei_div_select_index` | Field | Equipment Contract Division Selection Index (機器契約区分選択インデックス) — Long-type index for contract division selection |
| `l_gds_stat` | Field | Product Status (商品状態) — Current status of the product |
| `l_gds_stat_nm` | Field | Product Status Name (商品状態名称) — Descriptive name of product status |
| `l_gds_stat_nm_disp` | Field | Display Product Status Name (表示用商品状態名称) — Status name for display |
| `l_dsl_ymd` | Field | Cancellation Date (解約日) — Date of service cancellation |
| `l_hmpin_sbt` | Field | Return Type (返品種別) — Type/category of the return |
| `l_hmpin_sbt_nm` | Field | Return Type Name (返品種別名称) — Descriptive name of the return type |
| `l_rent_dsl` | Field | Rental Cancellation Document (レンタル解約書) — Document for rental cancellation |
| `l_rent_dsl_nm` | Field | Rental Cancellation Document Name (レンタル解約書名称) — Name of rental cancellation document |
| `l_shonin` | Field | Acceptance/Approval (承認) — Approval status flag |
| `l_shukka_lot_no` | Field | Shipping Lot Number (出荷ロット番号) — Lot number for shipping |
| `l_hmpin_rsn_nm` | Field | Return Reason Name (返品理由名称) — Reason description for the return |
| `l_hmpin_rsn` | Field | Return Reason (返品理由) — Reason code for the return |
| `l_hmpin_dtl` | Field | Return Detail (返品詳細) — Detailed description of the return |
| `l_hmpin_no` | Field | Return Number (返品番号) — Unique return tracking ID |
| `l_hmpinsha_pcd` | Field | Returner Postal Code (返品者郵便番号) — Postal code of the returner |
| `l_hmpinsha_state_nm` | Field | Returner Prefecture (返品者都道府県名) — Prefecture of the returner |
| `l_hmpinsha_city_nm` | Field | Returner City/Town/Village (返品者市区町村名) — City/town/village of the returner |
| `l_hmpinsha_oaztsu_nm` | Field | Returner District (返品者大字通称名) — District of the returner |
| `l_hmpinsha_azcho_nm` | Field | Returner Chome (返品者字丁目名) — Chome/sub-district of the returner |
| `l_hmpinsha_bnchigo` | Field | Returner Block/Number (返品者番地号) — Block/house number of the returner |
| `l_hmpinsha_adrttm` | Field | Returner Address Note Building (返品者住所補記・建物名) — Building name for returner address |
| `l_hmpinsha_adrrm` | Field | Returner Address Note Room (返品者住所補記・部屋番号) — Room number for returner address |
| `l_hmpinsha_telno` | Field | Returner Phone Number (返品者電話番号) — Phone number of the returner |
| `l_hmpinsha_nm` | Field | Returner Name (返品者名) — Name of the person returning the item |
| `l_hmpinsha_upd_dtm` | Field | Returner Update DateTime (返品者更新年月日時秒) — Timestamp of last update to returner info |
| `l_rec_seq` | Field | Record Number (レコード通番) — Sequential record identifier |
| `l_kktk_svc_cd` | Field | Equipment Provision Service Contract Number (機器提供サービス契約番号) — Service contract ID for equipment provision |
| `kktk_svc_gene_add_dtm` | Field | Equipment Provision Service Generation Registration DateTime (機器提供サービス世代登録年月日時秒) — Timestamp of service generation registration |
| `hmpin_kbn` | Field | Return Division (返品区分) — Classification of the return |
| `L_SVKEI_NO_INPUT` | Field | Input Service Contract Number (入力サービス契約番号) — Manually input service contract number |
| `l_kiki_chg_no` | Field | Equipment Change Number (機器変更番号) — ID for equipment change transactions |
| `l_hmpin_kiki_svc_kei_no` | Field | Return Device Service Contract Number (返品機器サービス契約番号) — Service contract number for the returned device |
| `kiki_teikyo_cd_list_list` | Field | Equipment Provider Code Name List (機器提供コード名称リスト) — List of provider code entries for compound-key access |
| X33VDataTypeBeanInterface | Interface | Interface for beans that support key-based data loading; used by inner list elements |
| SELECT | Field | Japanese: 選択 — Boolean selection field on the screen |
| COLOR | Field | Japanese: 行カラー — Row color display field |
| ITEM_NO | Field | Japanese: 項目番 — Item sequential number (Long type) |
| HMPIN | Field | Japanese: 返品 — Return (as in return/receipt-back processing) |
| KIKI | Field | Japanese: 機器 — Equipment/device |
| SVKEI | Field | Japanese: サービス — Service |
| ANKEN | Field | Japanese: 案件 — Case/project |
| KSH | Field | Japanese: 契約者 — Contractor |
| MDL | Field | Japanese: 型番 — Model number |
| SEIZO | Field | Japanese: 製造 — Manufacturing |
| KIKI_KEI | Field | Japanese: 機器契約 — Equipment contract |
| GDS | Field | Japanese: 商品 — Product |
| DSL | Field | Japanese: 解約 — Cancellation/termination |
| HMPIN_SBT | Field | Japanese: 返品種別 — Return type/category |
| SHONIN | Field | Japanese: 承認 — Approval/acceptance |
| SHUKKA | Field | Japanese: 出荷 — Shipping |
| UKEIRE | Field | Japanese: 受取先 — Receiver/delivery destination |
| REC | Field | Japanese: レコード — Record |
| KKTK | Field | Japanese: 機器提供 — Equipment provision |
| HMPINSHA | Field | Japanese: 返品者 — Returner/person returning item |
| SLASH | Symbol | '/' — Compound key path separator for list item access (e.g., "list/plaintext/0/name") |
| STAR | Symbol | '*' — Wildcard for returning list size in compound-key access |
| U+2212 | Symbol | MINUS SIGN — Unicode minus character used in Long type fields; normalised to ASCII '-' |
| DKW00301SF | Module | Equipment Return/Delivery Management — The screen module this bean belongs to |
