# Business Logic - KKW00127SF02DBean.storeModelData() [147 LOC]

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

## 1. Role

### KKW00127SF02DBean.storeModelData()

This method is a **data-binding router** for the telecom service contract update domain. It accepts a `key` (item name), a `subkey` (data type: `value` or `state`), and an `in_value` (the data payload), then routes the data to the correct setter method based on the business item being addressed. The `key` parameter uses Japanese-display names as dispatch tokens - for example, `サービス契約ステータス` (Service Contract Status) maps to the `svc_kei_stat` field, while `申込み明细番号` (Application Detail Number) maps to `mskm_dtl_no`.

The method implements a **conditional dispatch pattern**: it evaluates the `key` value against 12 predefined business items, and for each item, a secondary dispatch on `subkey` routes to either a `*_value` setter (for data assignment) or a `*_state` setter (for status/meta data). Of these, nine items are **scalar fields** (simple single-value setters), while two - `サービス契約ステータスリスト` (Service Contract Status List) and `紹介コードリスト` (Referral Code List) - are **collection dispatchers**. When the key identifies a list, the method extracts a numeric index from the key string (e.g., `svc_kei_stat_lis/0`), validates it, and recursively delegates to the child `X33VDataTypeStringBean.storeModelData()` instance at that list position. This enables hierarchical data binding where a flat key path traverses into nested bean collections.

**Design pattern**: The method serves as a **shared model utility** called by many screen handlers across the KKW00127SF module (Service Contract Update screens KKSV0036, KKSV0037, KKSV1039, KKSV0053, KKSV0056, KKSV0063) to populate the DTO from form submissions or server responses. It eliminates repetitive if/else chains in callers by centralizing the key-to-field mapping logic.

**Branch summary**:
- **Scalar items** (9 total): `サービス契約ステータス`, `申込み明细番号`, `料金グループコード`, `サービス開始希望日`, `支払方法引継フラグ`, `紹介コード`, `サービスコード`, `更新年月日時分秒（サービス契約）`, `自動照会処理状態コード` - each branches on `subkey` to route to either `*_value` or `*_state` setter.
- **List items** (2 total): `サービス契約ステータスリスト` and `紹介コードリスト` - extract list index from key, validate bounds, and recursively delegate to child bean.
- **Null guard** (1 total): Early return if `key` or `subkey` is null, preventing null pointer exceptions in downstream processing.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData key, subkey, in_value, isSetAsString"])

    START --> COND_NULL{"key or subkey is null"}
    COND_NULL -->|true| EARLY_RETURN(["Return early"])
    COND_NULL -->|false| FIND_SLASH["Extract slash index from key"]

    FIND_SLASH --> COND_SVC{"key equals \\\"\\u30b5\\u30fc\\u30d3\\u30b9\\u5951\\u7d04\\u30b9\\u30c6\\u30fc\\u30bf\\u30b9\\\""}
    COND_SVC -->|true| SVC_STAT["Handle svc_kei_stat value or state"]
    COND_SVC -->|false| COND_MSKM{"key equals \\\"\\u7533\\u307f\\u8fbc\\u660e\\u7d30\\u756a\\u53f7\\\""}
    COND_MSKM -->|true| MSKM["Handle mskm_dtl_no value or state"]
    COND_MSKM -->|false| COND_SVC_LIST{"key equals \\\"\\u30b5\\u30fc\\u30d3\\u30b9\\u5951\\u7d04\\u30b9\\u30c6\\u30fc\\u30bf\\u30b9\\u30ea\\u30b9\\u30c8\\\""}
    COND_SVC_LIST -->|true| SVC_STAT_LIST["Extract and validate list index"]
    COND_SVC_LIST -->|false| COND_PRCGRP{"key equals \\\"\\u6599\\u91d1\\u30b0\\u30eb\\u30fc\\u30d7\\u30b3\\u30fc\\u30c9\\\""}
    COND_PRCGRP -->|true| PRCGRP["Handle prc_grp_cd value or state"]
    COND_PRCGRP -->|false| COND_SVC_START{"key equals \\\"\\u30b5\\u30fc\\u30d3\\u30b9\\u958b\\u59cb\\u5e0c\\u671b\\u65e5\\\""}
    COND_SVC_START -->|true| SVC_START["Handle svc_sta_kibo_ymd value or state"]
    COND_SVC_START -->|false| COND_PAYWAY{"key equals \\\"\\u652f\\u6255\\u65b9\\u6cd5\\u5f15\\u7d99\\u30d5\\u30e9\\u30b0\\\""}
    COND_PAYWAY -->|true| PAYWAY["Handle payway_keizoku_flg value or state"]
    COND_PAYWAY -->|false| COND_INTR_LIST{"key equals \\\"\\u7d39\\u4ecb\\u30b3\\u30fc\\u30c9\\u30ea\\u30b9\\u30c8\\\""}
    COND_INTR_LIST -->|true| INTR_LIST["Extract and validate list index"]
    COND_INTR_LIST -->|false| COND_INTR_CD{"key equals \\\"\\u7d39\\u4ecb\\u30b3\\u30fc\\u30c9\\\""}
    COND_INTR_CD -->|true| INTR_CD["Handle intr_cd value or state"]
    COND_INTR_CD -->|false| COND_SVC_CD{"key equals \\\"\\u30b5\\u30fc\\u30d3\\u30b9\\u30b3\\u30fc\\u30c9\\\""}
    COND_SVC_CD -->|true| SVC_CD["Handle svc_cd value or state"]
    COND_SVC_CD -->|false| COND_UPD_DTM{"key equals \\\"\\u66f4\\u65b0\\u5e74\\u6708\\u65e5\\u6642\\u5206\\u79d2\\\""}
    COND_UPD_DTM -->|true| UPD_DTM["Handle upd_dtm value or state"]
    COND_UPD_DTM -->|false| COND_AUTO_CHK{"key equals \\\"\\u81ea\\u52d5\\u7167\\u67fb\\u51e6\\u7406\\u72b6\\u614b\\u30b3\\u30fc\\u30c9\\\""}
    COND_AUTO_CHK -->|true| AUTO_CHK["Handle auto_shosa_tran_stat_cd value or state"]
    COND_AUTO_CHK -->|false| END_NODE(["Return"])

    SVC_STAT --> END_NODE
    MSKM --> END_NODE
    SVC_STAT_LIST --> SVC_STAT_DISPATCH["Dispatch to child bean"]
    SVC_STAT_DISPATCH --> COND_PRCGRP
    PRCGRP --> END_NODE
    SVC_START --> END_NODE
    PAYWAY --> END_NODE
    INTR_LIST --> INTR_LIST_DISPATCH["Dispatch to child bean"]
    INTR_LIST_DISPATCH --> COND_INTR_CD
    INTR_CD --> END_NODE
    SVC_CD --> END_NODE
    UPD_DTM --> END_NODE
    AUTO_CHK --> END_NODE
```

**CRITICAL - Constant Resolution:**
This method does not use external constant classes. All branch conditions use **literal Japanese strings** as dispatch tokens, corresponding to UI display names. The Japanese literals resolve to the following business items:

| Japanese Literal | Business Meaning | Internal Field ID |
|---|---|---|
| `サービス契約ステータス` | Service Contract Status | `svc_kei_stat` |
| `申込み明细番号` | Application Detail Number | `mskm_dtl_no` |
| `サービス契約ステータスリスト` | Service Contract Status List | `svc_kei_stat_lis_list` |
| `料金グループコード` | Pricing Group Code | `prc_grp_cd` |
| `サービス開始希望日` | Service Start Request Date | `svc_sta_kibo_ymd` |
| `支払方法引継フラグ` | Payment Method Continuation Flag | `payway_keizoku_flg` |
| `紹介コードリスト` | Referral Code List | `intr_cd_list_list` |
| `紹介コード` | Referral Code | `intr_cd` |
| `サービスコード` | Service Code | `svc_cd` |
| `更新年月日時分秒（サービス契約）` | Update Timestamp (Service Contract) | `upd_dtm` |
| `自動照会処理状態コード` | Auto-Inquiry Processing Status Code | `auto_shosa_tran_stat_cd` |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The **item name** (display name in Japanese) identifying which field to populate. Acts as the primary dispatch token for routing logic. For list-type items, the key contains a slash-separated index suffix (e.g., `svc_kei_stat_lis/0` or `intr_cd_list/3`) to identify the specific list entry. |
| 2 | `subkey` | `String` | The **data type selector** within each item. Takes values `"value"` (to set the actual business data) or `"state"` (to set status/meta metadata). Case-insensitive comparison (`equalsIgnoreCase`). |
| 3 | `in_value` | `Object` | The **data payload** to assign. Type is `Object` - for scalar items it is cast to `String` (all fields are string-typed). For list items, it is passed through to the child `X33VDataTypeStringBean.storeModelData()` call. |
| 4 | `isSetAsString` | `boolean` | When `true`, indicates that a `Long`-typed field's `Value` property should be set with a `String`-typed value. This flag is passed through to child bean calls in list processing. |

**Instance fields read by this method:**

| Field | Type | Usage |
|-------|------|-------|
| `svc_kei_stat_lis_list` | `ArrayList` | Referenced to get list element count and retrieve child `X33VDataTypeStringBean` at validated index |
| `intr_cd_list_list` | `ArrayList` | Referenced to get list element count and retrieve child `X33VDataTypeStringBean` at validated index |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` in `JKKAdEditCC` utility - trims the key string after the slash separator |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` in `JKKAdEdit` utility - trims the key string after the slash separator |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` in `JKKTelnoInfoAddMapperCC` utility - trims the key string after the slash separator |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` in `JDKejbStringEdit` utility - trims the key string after the slash separator |
| - | `KKW00127SF02DBean.setAuto_shosa_tran_stat_cd_state` | KKW00127SF02DBean | - | Sets the `auto_shosa_tran_stat_cd` status metadata field (Auto-Inquiry Processing Status Code state) |
| - | `KKW00127SF02DBean.setAuto_shosa_tran_stat_cd_value` | KKW00127SF02DBean | - | Sets the `auto_shosa_tran_stat_cd` data value field (Auto-Inquiry Processing Status Code value) |
| - | `KKW00127SF02DBean.setIntr_cd_state` | KKW00127SF02DBean | - | Sets the `intr_cd` status metadata field (Referral Code state) |
| - | `KKW00127SF02DBean.setIntr_cd_value` | KKW00127SF02DBean | - | Sets the `intr_cd` data value field (Referral Code value) |
| - | `KKW00127SF02DBean.setMskm_dtl_no_state` | KKW00127SF02DBean | - | Sets the `mskm_dtl_no` status metadata field (Application Detail Number state) |
| - | `KKW00127SF02DBean.setMskm_dtl_no_value` | KKW00127SF02DBean | - | Sets the `mskm_dtl_no` data value field (Application Detail Number value) |
| - | `KKW00127SF02DBean.setPayway_keizoku_flg_state` | KKW00127SF02DBean | - | Sets the `payway_keizoku_flg` status metadata field (Payment Method Continuation Flag state) |
| - | `KKW00127SF02DBean.setPayway_keizoku_flg_value` | KKW00127SF02DBean | - | Sets the `payway_keizoku_flg` data value field (Payment Method Continuation Flag value) |
| - | `KKW00127SF02DBean.setPrc_grp_cd_state` | KKW00127SF02DBean | - | Sets the `prc_grp_cd` status metadata field (Pricing Group Code state) |
| - | `KKW00127SF02DBean.setPrc_grp_cd_value` | KKW00127SF02DBean | - | Sets the `prc_grp_cd` data value field (Pricing Group Code value) |
| - | `KKW00127SF02DBean.setSvc_cd_state` | KKW00127SF02DBean | - | Sets the `svc_cd` status metadata field (Service Code state) |
| - | `KKW00127SF02DBean.setSvc_cd_value` | KKW00127SF02DBean | - | Sets the `svc_cd` data value field (Service Code value) |
| - | `KKW00127SF02DBean.setSvc_kei_stat_state` | KKW00127SF02DBean | - | Sets the `svc_kei_stat` status metadata field (Service Contract Status state) |
| - | `KKW00127SF02DBean.setSvc_kei_stat_value` | KKW00127SF02DBean | - | Sets the `svc_kei_stat` data value field (Service Contract Status value) |
| - | `KKW00127SF02DBean.setSvc_sta_kibo_ymd_state` | KKW00127SF02DBean | - | Sets the `svc_sta_kibo_ymd` status metadata field (Service Start Request Date state) |
| - | `KKW00127SF02DBean.setSvc_sta_kibo_ymd_value` | KKW00127SF02DBean | - | Sets the `svc_sta_kibo_ymd` data value field (Service Start Request Date value) |
| - | `KKW00127SF02DBean.setUpd_dtm_state` | KKW00127SF02DBean | - | Sets the `upd_dtm` status metadata field (Update Timestamp state) |
| - | `KKW00127SF02DBean.setUpd_dtm_value` | KKW00127SF02DBean | - | Sets the `upd_dtm` data value field (Update Timestamp value) |
| - | `KKW00127SF02DBean.storeModelData` | KKW00127SF02DBean | - | Recursive call into child `X33VDataTypeStringBean` for list-type item dispatch |
| - | `String.substring` | - | - | Calls `substring()` on the `key` parameter to extract the index portion after the first slash |

This method performs **no direct CRUD operations** against the database or entities. It is a pure data-binding/router layer that mutates in-memory bean fields via setter calls. All 12 setter methods correspond to **U (Update)** operations on the bean's internal state - they set data values and metadata states.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `setAuto_shosa_tran_stat_cd_state`, `setAuto_shosa_tran_stat_cd_value`, `setUpd_dtm_state`, `setUpd_dtm_value`, `setSvc_cd_state`, `setSvc_cd_value`, `setIntr_cd_state`, `setIntr_cd_value`, `storeModelData` (recursive), `substring`, `setPayway_keizoku_flg_state`, `setPayway_keizoku_flg_value`, `setSvc_sta_kibo_ymd_state`, `setSvc_sta_kibo_ymd_value`, `setPrc_grp_cd_state`, `setPrc_grp_cd_value`, `setSvc_kei_stat_state`, `setSvc_kei_stat_value`, `setMskm_dtl_no_state`, `setMskm_dtl_no_value`

Trace who calls this method and what this method ultimately calls.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0036 (Application Info Initial Display) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |
| 2 | Screen:KKSV0037 (Application Info Update) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |
| 3 | Screen:KKSV1039 (Application Info Update Confirmation) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |
| 4 | Screen:KKSV0053 (Application Info Update Wait-time Pass Registration) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |
| 5 | Screen:KKSV0056 (Application Info Update Agent Store Name Retrieval) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |
| 6 | Screen:KKSV0063 (Application Info Update Agent Store Name Retrieval) | `Controller -> KKW00127SF02DBean.storeModelData` | `setter [U] in-memory bean fields` |

**Notes**: The `KKW00127SFConst` constant file maps these service IDs (SVC_ID) and operation IDs (OP_ID) used in the screen flow. The `storeModelData` method is called by screen controllers to populate the data bean from request parameters (form submissions) or from data returned by downstream CBS/SC calls. The method ultimately mutates only in-memory bean fields - no database writes originate from this method.

## 6. Per-Branch Detail Blocks

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

> Null guard - exits early if either dispatch token is null, preventing NullPointerException in downstream processing. (key, subkey that are null, processing is aborted)

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Extract index of first slash separator |
| 2 | RETURN | `return` // Early return - null key or subkey |

---

**Block 2** — [IF] `(key.equals("サービス契約ステータス"))` [key="サービス契約ステータス"] (Service Contract Status) (L568)

> Routes scalar data to `svc_kei_stat` field setters based on subkey. (Data type is String item "Service Contract Status" (item ID: svc_kei_stat))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setSvc_kei_stat_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setSvc_kei_stat_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 3** — [ELSE-IF] `(key.equals("申込み明细番号"))` [key="申込み明细番号"] (Application Detail Number) (L576)

> Routes scalar data to `mskm_dtl_no` field setters based on subkey. (Data type is String item "Application Detail Number" (item ID: mskm_dtl_no))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setMskm_dtl_no_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setMskm_dtl_no_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 4** — [ELSE-IF] `(key.equals("サービス契約ステータスリスト"))` [key="サービス契約ステータスリスト"] (Service Contract Status List) (L584)

> List-type item - extracts list index from key, validates, and dispatches to child bean. (List item "Service Contract Status List" (String type, item ID: svc_kei_stat_lis))

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` // Extract portion after first "/" ("svc_kei_stat_lis/0" -> "0") // 次の要素を取得 |
| 2 | SET | `tmpIndexInt = null` // Initialize index variable |
| 3 | TRY | `tmpIndexInt = Integer.valueOf(key)` // Attempt numeric conversion // リスト中のインデックスを見る |
| 4 | CATCH | `NumberFormatException e` |
| 5 | SET | `tmpIndexInt = null` // Index value is not numeric - return null here // インデックス値が数値文字列でない場合は、ここでnullを返す |
| 6 | IF | `tmpIndexInt != null` // Index value is numeric // インデックス値が数値文字列の場合 |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < svc_kei_stat_lis_list.size()` // Index within list bounds // インデックス値がリスト個数-1以下の場合 |
| 9 | CALL | `((X33VDataTypeStringBean)svc_kei_stat_lis_list.get(tmpIndex)).storeModelData(subkey, in_value)` // Recursive dispatch to child bean // キー部分は、項目定義型に応じてX33VDataTypeStringBean, X33VDataTypeLongBean, X33VDataTypeBooleanBeanのうち1つを指定 |
| 10 | RETURN | implicit fall-through to next else-if branch |

---

**Block 5** — [ELSE-IF] `(key.equals("料金グループコード"))` [key="料金グループコード"] (Pricing Group Code) (L611)

> Routes scalar data to `prc_grp_cd` field setters based on subkey. (Data type is String item "Pricing Group Code" (item ID: prc_grp_cd))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setPrc_grp_cd_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setPrc_grp_cd_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 6** — [ELSE-IF] `(key.equals("サービス開始希望日"))` [key="サービス開始希望日"] (Service Start Request Date) (L619)

> Routes scalar data to `svc_sta_kibo_ymd` field setters based on subkey. (Data type is String item "Service Start Request Date" (item ID: svc_sta_kibo_ymd))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setSvc_sta_kibo_ymd_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setSvc_sta_kibo_ymd_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 7** — [ELSE-IF] `(key.equals("支払方法引継フラグ"))` [key="支払方法引継フラグ"] (Payment Method Continuation Flag) (L627)

> Routes scalar data to `payway_keizoku_flg` field setters based on subkey. (Data type is String item "Payment Method Continuation Flag" (item ID: payway_keizoku_flg))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setPayway_keizoku_flg_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setPayway_keizoku_flg_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 8** — [ELSE-IF] `(key.equals("紹介コードリスト"))` [key="紹介コードリスト"] (Referral Code List) (L635)

> List-type item - extracts list index from key, validates, and dispatches to child bean. (List item "Referral Code List" (String type, item ID: intr_cd_list))

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` // Extract portion after first "/" ("intr_cd_list/0" -> "0") // 次の要素を取得 |
| 2 | SET | `tmpIndexInt = null` // Initialize index variable |
| 3 | TRY | `tmpIndexInt = Integer.valueOf(key)` // Attempt numeric conversion // リスト中のインデックスを見る |
| 4 | CATCH | `NumberFormatException e` |
| 5 | SET | `tmpIndexInt = null` // Index value is not numeric - return null here // インデックス値が数値文字列でない場合は、ここでnullを返す |
| 6 | IF | `tmpIndexInt != null` // Index value is numeric // インデックス値が数値文字列の場合 |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < intr_cd_list_list.size()` // Index within list bounds // インデックス値がリスト個数-1以下の場合 |
| 9 | CALL | `((X33VDataTypeStringBean)intr_cd_list_list.get(tmpIndex)).storeModelData(subkey, in_value)` // Recursive dispatch to child bean // キー部分は、項目定義型に応じてX33VDataTypeStringBean, X33VDataTypeLongBean, X33VDataTypeBooleanBeanのうち1つを指定 |
| 10 | RETURN | implicit fall-through to next else-if branch |

---

**Block 9** — [ELSE-IF] `(key.equals("紹介コード"))` [key="紹介コード"] (Referral Code) (L662)

> Routes scalar data to `intr_cd` field setters based on subkey. (Data type is String item "Referral Code" (item ID: intr_cd))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setIntr_cd_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setIntr_cd_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 10** — [ELSE-IF] `(key.equals("サービスコード"))` [key="サービスコード"] (Service Code) (L670)

> Routes scalar data to `svc_cd` field setters based on subkey. (Data type is String item "Service Code" (item ID: svc_cd))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setSvc_cd_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setSvc_cd_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 11** — [ELSE-IF] `(key.equals("更新年月日時分秒（サービス契約）"))` [key="更新年月日時分秒（サービス契約）"] (Update Timestamp - Service Contract) (L678)

> Routes scalar data to `upd_dtm` field setters based on subkey. (Data type is String item "Update Timestamp (Service Contract)" (item ID: upd_dtm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setUpd_dtm_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setUpd_dtm_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through to next else-if branch |

---

**Block 12** — [ELSE-IF] `(key.equals("自動照会処理状態コード"))` [key="自動照会処理状態コード"] (Auto-Inquiry Processing Status Code) (L686)

> Routes scalar data to `auto_shosa_tran_stat_cd` field setters based on subkey. (Data type is String item "Auto-Inquiry Processing Status Code" (item ID: auto_shosa_tran_stat_cd))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | SET | `setAuto_shosa_tran_stat_cd_value((String)in_value)` // Cast and assign value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("state")` // When subkey is "state", return status |
| 4 | SET | `setAuto_shosa_tran_stat_cd_state((String)in_value)` // Cast and assign state |
| 5 | RETURN | implicit fall-through - reaches end of method |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_stat` | Field | Service Contract Status - the current operational status of a service contract (e.g., active, suspended, cancelled) |
| `svc_kei_stat_lis` | Field | Service Contract Status List - a list/series of service contract status entries, used for historical or multi-status records |
| `mskm_dtl_no` | Field | Application Detail Number - the detailed tracking number for a service application/order |
| `prc_grp_cd` | Field | Pricing Group Code - the code identifying the pricing tier or group for the service contract |
| `svc_sta_kibo_ymd` | Field | Service Start Request Date - the date the customer requests service activation (YM = year/month, D = day) |
| `payway_keizoku_flg` | Field | Payment Method Continuation Flag - indicates whether the existing payment method should be continued for the renewed contract |
| `intr_cd` | Field | Referral Code - the promotional/referral code associated with the service contract |
| `intr_cd_list` | Field | Referral Code List - a list of referral codes, used when multiple referral sources are tracked |
| `svc_cd` | Field | Service Code - the code identifying the type of telecom service (e.g., FTTH, DSL, Mobile) |
| `upd_dtm` | Field | Update Timestamp - the last modification date/time of the service contract record |
| `auto_shosa_tran_stat_cd` | Field | Auto-Inquiry Processing Status Code - the status of automated inquiry/verification processing for the contract |
| `key` | Parameter | Item name - Japanese-display token that identifies which business field to update |
| `subkey` | Parameter | Sub-key - selects between `"value"` (data) and `"state"` (metadata) within each item |
| `isSetAsString` | Parameter | String-flag - when true, forces a Long-typed field to accept a String value |
| X33VDataTypeStringBean | Class | A strongly-typed value holder bean for String data fields, used as element type in list collections |
| X33VDataTypeLongBean | Class | A strongly-typed value holder bean for Long data fields (referenced in comments as possible list element type) |
| X33VDataTypeBooleanBean | Class | A strongly-typed value holder bean for Boolean data fields (referenced in comments as possible list element type) |
| KKSV0036 | Screen | Application Information Initial Display - screen for initial load of service contract update form |
| KKSV0037 | Screen | Application Information Update - screen for updating service contract details |
| KKSV1039 | Screen | Application Information Update Confirmation - confirmation screen before committing contract updates |
| KKSV0053 | Screen | Application Information Update Wait-time Pass Registration - registration for wait-time pass service |
| KKSV0056 | Screen | Application Information Update Agent Store Name Retrieval - retrieval of agent store name during update |
| KKSV0063 | Screen | Application Information Update Agent Store Name Retrieval - another variant of agent store name retrieval |
| FTTH | Business term | Fiber To The Home - fiber-optic broadband internet service |
| SOD | Acronym | Service Order Data - the business entity representing a telecom service order |
| JOKEN | Acronym | Conditions - refers to order content conditions (Joken = 条件 in Japanese) |
| 申込み (Shikomi) | Field | Application - refers to the service application/order being processed |
| 代理店 (Dairiten) | Field | Agent Store - a retail/reseller store that processes service contracts on behalf of the provider |
