# Business Logic — KKW04202SFLogic.getKKSV0098() [546 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW04202SF.KKW04202SFLogic` |
| Layer | CC (Common Component) — Screen Logic |
| Module | `KKW04202SF` (Package: `eo.web.webview.KKW04202SF`) |

## 1. Role

### KKW04202SFLogic.getKKSV0098()

The `getKKSV0098` method serves as the **downward mapping engine** for the **Address Change Registration** (住所変更登録) business process within the kopt (EO Hikari) telecom service system. Its primary role is to take the output data produced by earlier mapping/processing components (KKSV009811CC through KKSV009823CC) and push that data into the screen DataBean (`bean[0]`) so that the UI can display the mapped results to the operator.

The method handles **five major service-type categories** via conditional block dispatch:

- **KKSV009811CC** — Common Address Change Registration CC: maps core submission data (application number, update timestamp, and detail line items) shared across all service types.
- **KKSV009812CC** — Temporary Storage Address Change Data Registration CC: maps temporary-storage intermediate data including used equipment lists, operation continuation data split by service type (Net / Tel / TV), STB-TV course data, VA selection data, telephone number data, and delivery data (request book and guide mail).
- **KKSV009821CC** — eo Hikari Net Address Change CC: maps service contract data specific to the broadband Internet service.
- **KKSV009822CC** — eo Hikari Tel Address Change CC: maps service contract data specific to the telephone service (currently a placeholder — no actual mapping code present).
- **KKSV009823CC** — eo Hikari TV Address Change CC: maps service contract data specific to the television service.

The method implements a **routing/dispatch design pattern** — it checks each CC output map from `outputMap` for non-null presence and dispatches to a dedicated block. Within each block, it iterates over sub-lists (e.g., detail records, operation continuation lines) and calls `bean[0].sendMessageString()` to populate the screen bean. For operation continuation data, it uses a **service-type discriminator** (`op_tppv_adchm_svc_tab_sbt_cd`) to match Net (1), Tel (2), and TV (3) records to the correct bean sub-array.

This is a **shared utility method** called by the `executeFirstDisp()` logic within the same class. It is the critical downward mapping bridge between the service layer's business processing and the screen presentation layer for the Address Change Confirmation screen (KKSV0098).

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["getKKSV0098"])

    LOG_S["Log start"]
    GET_11["Get KKSV009811CC from outputMap"]
    CHECK_11{"KKSV009811CC != null?"}
    M11_A["Map mskm_no -> MSKM_NO_AF"]
    M11_D["Map mskm_upd_dtm_af -> MSKM_NO_AF_UPD_DTM"]
    G11L["Get mskm_dtl_list"]
    C11L{"mskm_dtl_list != null?"}
    L11["Loop mskm_dtl_list: add mskm_dtl_no and mskm_dtl_upd_dtm_af to bean"]

    GET_12["Get KKSV009812CC from outputMap"]
    C12{"KKSV009812CC != null?"}
    M12_K["Map temp reg no and upd_dtm"]
    M12_R["Map rykk_tppv_list to TEKKYO_AD_USE_KIKI_LIST"]
    M12_N["Map Net op_tppv_list (svc_tab_sbt_cd=1) to EOH_NET_OP_HKTGI_LIST"]
    M12_T["Map Tel op_tppv_list (svc_tab_sbt_cd=2) to EOH_TEL_OP_HKTGI_LIST"]
    M12_V["Map TV op_tppv_list (svc_tab_sbt_cd=3) to EOH_TV_OP_HKTGI_LIST"]
    M12_S["Map stb_tppv_list to EOH_TV_STB_TV_COURSE_LIST"]
    M12_VA["Map va_tppv_map to use_kiki"]
    M12_TL["Map tln_tppv_list to EOH_TEL_TLN_LIST"]
    M12_SKS["Map request delivery shs_tppv_list (shs_sbt_cd=1)"]
    M12_G["Map guide delivery shs_tppv_list (shs_sbt_cd=1)"]
    M12_A["Map adchg_map: new_adchg_adchg_no, adchg_upd_dtm, adchg_adchg_stat"]
    M12_AD["Map adchg_dtl_list_svc_kei_ucwk"]
    M12_KK["Process kktk_svc_kei / op_svc_kei / sei_kei (empty)"]
    M12_KK2["Map kei_kais_ucwk_list"]

    GET_21["Get KKSV009821CC from outputMap"]
    C21{"KKSV009821CC != null?"}
    M21_S["Map svc_kei fields: upd_dtm, new_svc_kei_no, new_seiky_kei_no"]
    M21_U["Loop svc_kei_ucwk_list: add upd_dtm fields"]
    M21_O["Loop op_svc_kei_list: add op_svc_kei_upd_dtm_aft"]
    M21_K["Loop kktk_svc_list: find KIKI_SVC_CD=01, add kktk_svc_kei_upd_dtm_aft"]
    M21_SK["Loop seiky_shs_chg_tgt: if SHS_AD_NET=1, add seiky_kei_no"]

    GET_22["Get KKSV009822CC from outputMap"]
    C22{"KKSV009822CC != null?"}
    M22_S["Map Tel svc_kei fields"]

    GET_23["Get KKSV009823CC from outputMap"]
    C23{"KKSV009823CC != null?"}
    M23_S["Map TV svc_kei fields"]
    M23_U["Loop svc_kei_ucwk_list: add upd_dtm"]
    M23_O["Loop op_svc_kei_list: add op_svc_kei_upd_dtm_aft"]
    M23_K["Loop kktk_svc_list: find KIKI_SVC_CD=01"]
    M23_SK["Loop seiky_shs_chg_tgt: if SHS_AD_TV=1, add seiky_kei_no"]

    FSET1["Set MSKM_JIM_COMMISION_UM = 0, name = none"]
    FSET2["Set MSKM_STDARD_KOJIHI_UM = 0, DIV = 02, DIV_NM = free"]
    LOG_E["Log end"]
    END(["return"])

    START --> LOG_S --> GET_11 --> CHECK_11
    CHECK_11 -->|true| M11_A --> M11_D --> G11L --> C11L
    C11L -->|true| L11 --> GET_12
    C11L -->|false| GET_12
    CHECK_11 -->|false| GET_12

    GET_12 --> C12
    C12 -->|true| M12_K --> M12_R --> M12_N --> M12_T --> M12_V --> M12_S --> M12_VA --> M12_TL --> M12_SKS --> M12_G --> M12_A --> M12_AD --> M12_KK --> M12_KK2 --> GET_21
    C12 -->|false| GET_21

    GET_21 --> C21
    C21 -->|true| M21_S --> M21_U --> M21_O --> M21_K --> M21_SK --> GET_22
    C21 -->|false| GET_22

    GET_22 --> C22
    C22 -->|true| M22_S --> GET_23
    C22 -->|false| GET_23

    GET_23 --> C23
    C23 -->|true| M23_S --> M23_U --> M23_O --> M23_K --> M23_SK --> FSET1
    C23 -->|false| FSET1

    FSET1 --> FSET2 --> LOG_E --> END
```

**Constant Resolution Reference:**

| Constant Used | Business Meaning |
|---------------|-----------------|
| `KKSV009811CC` | Common Address Change Registration CC output map |
| `KKSV009812CC` | Temporary Storage Address Change Data Registration CC output map |
| `KKSV009821CC` | eo Hikari Net Address Change CC output map |
| `KKSV009822CC` | eo Hikari Tel Address Change CC output map |
| `KKSV009823CC` | eo Hikari TV Address Change CC output map |
| `MSKM_NO_AF` | Submission - Post-Change Submission Number |
| `MSKM_NO_AF_UPD_DTM` | Submission - Post-Change Submission Number Update Timestamp |
| `TEKKYO_AD_USE_KIKI_LIST` | Withdrawn Address - Equipment in Use List |
| `EOH_NET_OP_HKTGI_LIST` | eo Hikari Net Operation Continuation List |
| `EOH_TEL_OP_HKTGI_LIST` | eo Hikari Tel Operation Continuation List |
| `EOH_TV_OP_HKTGI_LIST` | eo Hikari TV Operation Continuation List |
| `EOH_TV_STB_TV_COURSE_LIST` | eo Hikari TV STB / TV Course List |
| `EOH_TEL_TLN_LIST` | eo Hikari Tel Telephone Number List |
| `ITENS_SAME_AD_CHG_SKS_SHS_LIST` | Same-Address Change Request Book Delivery List |
| `ITENS_SAME_AD_CHG_GUIDE_SHS_LIST` | Same-Address Change Guide Book Delivery List |
| `op_tppv_adchm_svc_tab_sbt_cd = "1"` | eo Hikari Net (operation continuation) |
| `op_tppv_adchm_svc_tab_sbt_cd = "2"` | eo Hikari Tel (operation continuation) |
| `op_tppv_adchm_svc_tab_sbt_cd = "3"` | eo Hikari TV (operation continuation) |
| `shs_tppv_adchm_shs_sbt_cd = "1"` | Request Book / Guide Book delivery |
| `SHS_AD_NET = "1"` | Request book delivery target: Net |
| `SHS_AD_TV = "1"` | Request book delivery target: TV |
| `USE_KIKI_SVC_CD_05 = "01"` | Equipment service type code: Net |
| `KIKI_SHS_ADCHG_DTL_NO_AF` | Service Address Change Detail Number |
| `CMN_USE_PLC_SVKEI_KISN_UW_NO_AF` | Common - Usage Location - Post-Change Service Contract Line Number |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `bean` | `X31SDataBeanAccess[]` | Array of screen DataBean access objects. `bean[0]` is the target bean into which all mapped address change data is pushed for display on the KKSV0098 screen. It acts as the output container bridging logic processing to the UI layer. |
| 2 | `outputMap` | `HashMap<String, Object>` | Container map that holds output data from all CC components (KKSV009811CC, KKSV009812CC, KKSV009821CC, KKSV009822CC, KKSV009823CC). Each key corresponds to a CC component's output. The method iterates over these keys to retrieve pre-processed address change data for downward mapping. |

**No instance fields or external state are read by this method.** It is a pure data-mapping method that reads exclusively from its parameters.

## 4. CRUD Operations / Called Services

This method performs **no direct CRUD operations** against databases or service components. It is a pure downward mapping (presentation layer) method that populates screen DataBeans. All data reads and business processing have already been completed by upstream CC/SC components before this method is invoked.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `OneStopDataBeanAccessArray.getCount` | — | — | Iterates over DataBean arrays (e.g., `bean_rykk_tppv_map_list.getCount()`) |
| R | `OneStopDataBeanAccessArray.getDataBean` | — | — | Retrieves individual DataBean entries from arrays by index |
| R | `OneStopDataBeanAccess.getDataBeanArray` | — | — | Gets sub-DataBean arrays from the parent bean (e.g., `bean[0].getDataBeanArray(...)`) |
| R | `KKW04202SFLogic.getMapString` | — | — | Extracts String values from HashMaps by key for downward mapping |
| R | `OneStopDataBeanAccess.sendMessageString` (GET_VALUE) | — | — | Reads DataBean field values (e.g., `sendMessageString(..., X31CWebConst.DATABEAN_GET_VALUE)`) |
| — | `OneStopDataBeanAccess.sendMessageString` (SET_VALUE) | — | — | Writes String values into DataBean fields (screen output mapping) |
| — | `OneStopDataBeanAccess.sendMessageString` (ADD_VALUE) | — | — | Appends String values to DataBean list-type fields |

## 5. Dependency Trace

The method is **private**, so its callers are internal to `KKW04202SFLogic`. The primary caller is `executeFirstDisp()`.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0098 (via executeFirstDisp) | `KKW04202SFLogic.executeFirstDisp()` -> `KKW04202SFLogic.getKKSV0098` | Pure mapping — no terminal CRUD. Upstream: KKSV009701SC through KKSV009715SC |

The caller chain traces back to **Screen KKSV0098** (Address Change Registration Initial Display) and **KKW04202SF** (Address Change Registration Action). The `executeFirstDisp()` method in the same class:
1. Sets up parameters and calls the KKSV0097 OPDB Mapper to invoke multiple SCs (KKSV009701SC through KKSV009715SC)
2. Maps the service results back via `getKKSV0097*SC` / `getKKSV0097*CC`
3. Invokes `getKKSV0098(bean, outputMap)` to do the final downward mapping to the screen bean

## 6. Per-Branch Detail Blocks

### Block 1 — [IF] KKSV009811CC Common Address Change Registration CC (L14794)

> Retrieves the common address change registration CC output map and maps submission-level fields. If the map exists, maps the submission number, update timestamp, and any submission detail records.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv_9811_map = outputMap.get("KKSV009811CC")` // Extract common CC output |
| 2 | SET | `bean[0].sendMessageString(MSKM_NO_AF, SET_VALUE, getMapString(kksv_9811_map, "mskm_no"))` // Submission - Post-Change Submission Number |
| 3 | SET | `bean[0].sendMessageString(MSKM_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9811_map, "mskm_upd_dtm_af"))` // Submission - Post-Change Submission Number Update Timestamp |
| 4 | SET | `mskm_dtl_list = kksv_9811_map.get("mskm_dtl_list")` // Submission Detail Info List |

**Block 1.1** — [IF] `mskm_dtl_list != null` (L14805)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `for (int i = 0; i < mskm_dtl_list.size(); i++)` // Iterate over submission detail records |
| 2 | SET | `bean[0].sendMessageString(MSKM_DTL_NO_AF, ADD_VALUE, getMapString(mskm_dtl_list.get(i), "mskm_dtl_no"))` // Submission Detail Number (Post-Change) |
| 3 | SET | `bean[0].sendMessageString(MSKM_DTL_NO_AF_UPD_DTM, ADD_VALUE, getMapString(mskm_dtl_list.get(i), "mskm_dtl_upd_dtm_af"))` // Submission Detail Number Update Timestamp (Post-Change) |

### Block 2 — [IF] KKSV009812CC Temporary Storage Address Change Data Registration CC (L14813)

> The largest block. Retrieves the temporary storage CC output map and maps extensive temporary-storage data. This block handles: temporary registration numbers, equipment-in-use lists, operation continuation data for three service types (Net/Tel/TV) with discriminator-based matching, STB-TV course data, VA selection data, telephone number data, delivery data (request book / guide mail), address change detail information, and service contract line data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv_9812_map = outputMap.get("KKSV009812CC")` // Extract temporary storage CC output |
| 2 | SET | `bean[0].sendMessageString(CTRL_AD_CHG_MSKM_KARI_ADD_NO_AF, SET_VALUE, getMapString(kksv_9811_map, "ctrl_ad_chg_mskm_kari_add_no_af"))` // Control - Post-Change Address Change Submission - Temp Registration Number |
| 3 | SET | `bean[0].sendMessageString(CTRL_AD_CHG_MSKM_KARI_ADD_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9811_map, "ctrl_ad_chg_mskm_kari_add_no_af_upd_dtm"))` // Control - Post-Change Address Change Submission - Temp Registration Number Update Timestamp |
| 4 | SET | `bean_rykk_tppv_map_list = bean[0].getDataBeanArray(TEKKYO_AD_USE_KIKI_LIST)` // Get withdrawn equipment list bean array |
| 5 | SET | `rykk_tppv_list = kksv_9812_map.get("rykk_tppv_list")` // Get temporary storage equipment list |

**Block 2.1** — [IF] `rykk_tppv_list != null` [FOR] Equipment mapping (L14823)

> For each temporary storage equipment entry, matches it to the corresponding entry in the bean's equipment list and sends update timestamp.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_rykk_tppv_map = bean_rykk_tppv_map_list.getDataBean(i)` |
| 2 | SET | `bean_rykk_tppv_map.sendMessageString(USE_KIKI_KKTK_SVKEI_NO_AF_UPD_DTM_05, SET_VALUE, i, getMapString(rykk_tppv_list.get(i), "rykk_tppv_upd_dtm"))` |

**Block 2.2** — [IF] `op_tppv_list != null` Operation Continuation Mapping (L14831)

> Maps operation continuation data split by service type. Each sub-block uses a `while` loop with a counter (`ntCount`/`tlCount`/`tvCount`) to skip non-matching records until `op_tppv_adchm_svc_tab_sbt_cd` matches the expected value.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_nt_op_tppv_map_list = bean[0].getDataBeanArray(EOH_NET_OP_HKTGI_LIST)` // eo Hikari Net Operation Continuation List |
| 2 | SET | `bean_tl_op_tppv_map_list_list = bean[0].getDataBeanArray(EOH_TEL_OP_HKTGI_LIST)` // eo Hikari Tel Operation Continuation List |
| 3 | SET | `bean_tv_op_tppv_map_list_list = bean[0].getDataBeanArray(EOH_TV_OP_HKTGI_LIST)` // eo Hikari TV Operation Continuation List |

**Block 2.2.1** — [FOR] eo Hikari Net (`svc_tab_sbt_cd = "1"`) (L14832-14845)

> Maps Net operation continuation records. Uses `ntCount` to find the next record where `op_tppv_adchm_svc_tab_sbt_cd = "1"` (eo Hikari Net).

| # | Type | Code |
|---|------|------|
| 1 | SET | `ntCount = 0` |
| 2 | SET | `bean_nt_op_tppv_map = bean_nt_op_tppv_map_list.getDataBean(i)` |
| 3 | SET | `while (!"1".equals(getMapString(op_tppv_list.get(ntCount), "op_tppv_adchm_svc_tab_sbt_cd"))) { ntCount++; }` |
| 4 | SET | `bean_nt_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_06, SET_VALUE, ntCount, getMapString(op_tppv_list.get(ntCount), "new_op_tppv_adchm_op_tppv_no"))` |
| 5 | SET | `bean_nt_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_UPD_DTM_06, SET_VALUE, ntCount, getMapString(op_tppv_list.get(ntCount), "op_tppv_upd_dtm"))` |

**Block 2.2.2** — [FOR] eo Hikari Tel (`svc_tab_sbt_cd = "2"`) (L14847-14864)

> Maps Tel operation continuation records. Nested loop structure: outer loop iterates over Tel operation continuation parent beans, inner loop iterates over child beans within each parent. Uses `tlCount` to find records where `op_tppv_adchm_svc_tab_sbt_cd = "2"` (eo Hikari Tel).

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_tl_op_tppv_map_list_map = bean_tl_op_tppv_map_list_list.getDataBean(i)` |
| 2 | SET | `bean_tl_op_tppv_map_list = bean_tl_op_tppv_map_list_map.getDataBeanArray(TEL_OP_HKTGI_LIST_09)` |
| 3 | SET | `while (!"2".equals(getMapString(op_tppv_list.get(tlCount), "op_tppv_adchm_svc_tab_sbt_cd"))) { tlCount++; }` |
| 4 | SET | `bean_tl_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_06, SET_VALUE, tlCount, ...)` |
| 5 | SET | `bean_tl_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_UPD_DTM_06, SET_VALUE, tlCount, ...)` |

**Block 2.2.3** — [FOR] eo Hikari TV (`svc_tab_sbt_cd = "3"`) (L14866-14883)

> Maps TV operation continuation records. Same nested loop pattern as Tel. Uses `tvCount` to find records where `op_tppv_adchm_svc_tab_sbt_cd = "3"` (eo Hikari TV).

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_tv_op_tppv_map_list_map = bean_tv_op_tppv_map_list_list.getDataBean(i)` |
| 2 | SET | `bean_tv_op_tppv_map_list = bean_tv_op_tppv_map_list_map.getDataBeanArray(TV_OP_HKTGI_LIST_11)` |
| 3 | SET | `while (!"3".equals(getMapString(op_tppv_list.get(tvCount), "op_tppv_adchm_svc_tab_sbt_cd"))) { tvCount++; }` |
| 4 | SET | `bean_tv_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_06, SET_VALUE, tvCount, ...)` |
| 5 | SET | `bean_tv_op_tppv_map.sendMessageString(OP_HKTGI_ADCHM_OP_TPPV_NO_AF_UPD_DTM_06, SET_VALUE, tvCount, ...)` |

**Block 2.3** — [IF] `stb_tppv_list != null && stb_tppv_list.size() > 0` STB-TV Course Mapping (L14887)

> Maps STB-TV course temporary storage data to the bean. This block was modified for IT Failure Response (No110) to add a `size() > 0` check.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_stb_tppv_map_list = bean[0].getDataBeanArray(EOH_TV_STB_TV_COURSE_LIST)` |
| 2 | SET | `bean_stb_tppv_map = bean_stb_tppv_map_list.getDataBean(i)` |
| 3 | SET | `bean_stb_tppv_map.sendMessageString(STB_TV_ADCHM_STB_TPPV_NO_AF_10, SET_VALUE, i, getMapString(stb_tppv_list.get(i), "new_stb_tppv_adchm_stb_tppv_no"))` |
| 4 | SET | `bean_stb_tppv_map.sendMessageString(STB_TV_ADCHM_STB_TPPV_NO_AF_UPD_DTM_10, SET_VALUE, i, getMapString(stb_tppv_list.get(i), "stb_tppv_upd_dtm"))` |

**Block 2.4** — [IF] `va_tppv_map != null` VA Selection Mapping (L14902)

> Maps VA (Value Add) selection temporary storage data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `va_tppv_map = kksv_9812_map.get("va_tppv_map")` |
| 2 | SET | `bean_va_tppv_map = bean[0].getDataBeanArray(TEKKYO_AD_USE_KIKI_LIST).getDataBean(0)` |
| 3 | SET | `bean[0].sendMessageString(VA_CHOICE_KKTK_SVKEI_NO_AF_UPD_DTM_08, SET_VALUE, getMapString(kksv_9811_map, "ctrl_ad_chg_mskm_kari_add_no_af"))` |

**Block 2.5** — [IF] `tln_tppv_list != null` Telephone Number Mapping (L14915)

> Maps telephone number temporary storage data to the EO Hikari Tel telephone number list bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_tln_tppv_map_list = bean[0].getDataBeanArray(EOH_TEL_TLN_LIST)` |
| 2 | SET | `bean_tln_tppv_map.sendMessageString(TLN_ADCHG_TLN_TPPV_NO_AF_07, SET_VALUE, i, getMapString(tln_tppv_list.get(i), "new_tln_tppv_adchm_tln_tppv_no"))` |
| 3 | SET | `bean_tln_tppv_map.sendMessageString(TLN_ADCHG_TLN_TPPV_NO_AF_UPD_DTM_07, SET_VALUE, i, getMapString(tln_tppv_list.get(i), "tln_tppv_upd_dtm"))` |

**Block 2.6** — [IF] `shs_tppv_list != null` Delivery Data Mapping (L14926)

> Maps delivery data (request book / guide mail). Uses a `while` loop to find records where `shs_tppv_adchm_shs_sbt_cd = "1"` for both request book and guide book sub-blocks.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_sks_shs_tppv_map_list = bean[0].getDataBeanArray(ITENS_SAME_AD_CHG_SKS_SHS_LIST)` // Request Book |
| 2 | SET | `bean_guide_shs_tppv_map_list = bean[0].getDataBeanArray(ITENS_SAME_AD_CHG_GUIDE_SHS_LIST)` // Guide Book |
| 3 | SET | `while (!"1".equals(getMapString(shs_tppv_list.get(sksCount), "shs_tppv_adchm_shs_sbt_cd"))) { sksCount++; }` |
| 4 | SET | `bean_sks_shs_tppv_map.sendMessageString(SHS_AD_ADCHM_SHS_TPPV_NO_AF_04, SET_VALUE, sksCount, getMapString(shs_tppv_list.get(sksCount), "new_shs_tppv_adchm_shs_tppv_no"))` |
| 5 | SET | `bean_sks_shs_tppv_map.sendMessageString(SHS_AD_ADCHM_SHS_TPPV_NO_AF_UPD_DTM_04, SET_VALUE, sksCount, getMapString(shs_tppv_list.get(sksCount), "shs_tppv_upd_dtm"))` |

**Block 2.7** — [IF] `adchg_map != null` Address Change Info Map (L14939)

> Maps address change information map including new address change number, update timestamp, and status. Contains `2-week update support` markers.

| # | Type | Code |
|---|------|------|
| 1 | SET | `adchg_map = kksv_9812_map.get("adchg_map")` |
| 2 | SET | `bean[0].sendMessageString(CTRL_AD_CHG_MSKM_HON_ADD_NO_AF, SET_VALUE, getMapString(adchg_map, "new_adchg_adchg_no"))` // Control - Post-Change Address Change Number |
| 3 | SET | `bean[0].sendMessageString(CTRL_AD_CHG_MSKM_HON_ADD_NO_AF_UPD_DTM, SET_VALUE, getMapString(adchg_map, "adchg_upd_dtm"))` |
| 4 | SET | `bean[0].sendMessageString(CTRL_ADCHM_STAT_CD, SET_VALUE, getMapString(adchg_map, "adchg_adchg_stat"))` // Address Change Status Code |

**Block 2.8** — [IF] `adchg_dtl_map_svc_kei != null` / `adchg_dtl_list_svc_kei_ucwk != null` (L14950)

> Maps address change detail information (service contract). Only maps `KIKI_SHS_ADCHG_DTL_NO_AF` for both the map and list variants.

| # | Type | Code |
|---|------|------|
| 1 | SET | `adchg_dtl_map_svc_kei = kksv_9812_map.get("adchg_dtl_map_svc_kei")` |
| 2 | SET | `bean[0].sendMessageString(KIKI_SHS_ADCHG_DTL_NO_AF, SET_VALUE, getMapString(adchg_map, "new_adchg_dtl_adchg_dtl_no"))` |
| 3 | SET | `adchg_dtl_list_svc_kei_ucwk = kksv_9812_map.get("adchg_dtl_list_svc_kei_ucwk")` // For loop over detail list |

**Block 2.9** — [IF] Empty Blocks (L14958-14968)

> Three `if` blocks that check for lists/maps but have **empty bodies** — no mapping code executed:
> - `adchg_dtl_list_kktk_svc_kei` — Equipment Provision Service Contract Info List
> - `adchg_dtl_list_op_svc_kei` — Option Service Contract Info List
> - `adchg_dtl_map_sei_kei` — Billing Contract Map

**Block 2.10** — [IF] `kei_kais_ucwk_list != null && size > 0` (L14971)

> Maps service contract line data for common usage location post-change.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kei_kais_ucwk_map = kei_kais_ucwk_list.get(0)` |
| 2 | SET | `bean[0].sendMessageString(CMN_USE_PLC_SVKEI_KISN_UW_NO_AF, SET_VALUE, (String)kei_kais_ucwk_map.get("new_kei_kais_ucwk_no"))` |

### Block 3 — [IF] KKSV009821CC eo Hikari Net Address Change CC (L14985)

> Maps service contract data specific to the eo Hikari Net service. Maps service contract number, update timestamps, billing contract number, service contract line detail data, operation continuation data, equipment provision data, and request book delivery data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv_9821_map = outputMap.get("KKSV009821CC")` |
| 2 | SET | `bean[0].sendMessageString(EOH_NET_SVKEI_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9821_map, "svc_kei_upd_dtm_aft"))` |
| 3 | SET | `bean[0].sendMessageString(EOH_NET_SVKEI_NO_NT_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9821_map, "svc_kei_dtl_upd_dtm_aft"))` |
| 4 | SET | `bean[0].sendMessageString(EOH_NET_SVKEI_NO_AF, SET_VALUE, getMapString(kksv_9821_map, "new_svc_kei_no"))` |
| 5 | SET | `bean[0].sendMessageString(EOH_NT_SEIKY_KEI_NO, SET_VALUE, getMapString(kksv_9821_map, "new_seiky_kei_no"))` // Service addition support |

**Block 3.1** — [IF] `svc_kei_ucwk_list != null` Service Contract Line Details (L14997)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svc_kei_ucwk_list = kksv_9821_map.get("svc_kei_ucwk_list")` |
| 2 | SET | `bean[0].sendMessageString(EOH_NET_SVKEI_UW_NO_AF_UPD_DTM, ADD_VALUE, getMapString(svc_kei_ucwk_list.get(i), "svc_kei_ucwk_upd_dtm_aft"))` |
| 3 | SET | `bean[0].sendMessageString(EOH_NET_SVKEI_UW_NO_NT_AF_UPD_DTM, ADD_VALUE, getMapString(svc_kei_ucwk_list.get(i), "svc_kei_ucwk_dtl_upd_dtm_aft"))` |

**Block 3.2** — [IF] `op_svc_kei_list != null` [FOR] Option Service Continuation (L15008)

> Maps option service continuation data to Net operation continuation bean array. Contains **Running Support No.82** fix: changed `svc_kei_ucwk_list.get(i)` to `op_svc_kei_list.get(i)`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_op_svc_kei_list = bean[0].getDataBeanArray(EOH_NET_OP_HKTGI_LIST)` |
| 2 | SET | `bean_op_svc_kei_map = bean_op_svc_kei_list.getDataBean(i)` |
| 3 | SET | `bean_op_svc_kei_map.sendMessageString(OP_HKTGI_OP_SVKEI_NO_AF_UPD_DTM_06, ADD_VALUE, getMapString(op_svc_kei_list.get(i), "op_svc_kei_upd_dtm_aft"))` |

**Block 3.3** — [IF] `kktk_svc_list != null` [FOR] Equipment Provision Service (L15028)

> Maps equipment provision service contract data. Uses a `do-while` loop to iterate through `bean_kktk_svc_list` looking for `USE_KIKI_SVC_CD_05 = "01"` (Net equipment).

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_kktk_svc_list = bean[0].getDataBeanArray(TEKKYO_AD_USE_KIKI_LIST)` |
| 2 | SET | `do { ntCount++; bean_kktk_svc_map = bean_kktk_svc_list.getDataBean(ntCount); } while (!"01".equals(bean_kktk_svc_map.sendMessageString(USE_KIKI_SVC_CD_05, DATABEAN_GET_VALUE)));` |
| 3 | SET | `bean_kktk_svc_map.sendMessageString(USE_KIKI_KKTK_SVKEI_NO_AF_UPD_DTM_05, ADD_VALUE, getMapString(kktk_svc_list.get(i), "kktk_svc_kei_upd_dtm_aft"))` |

**Block 3.4** — [IF] `seiky_shs_chg_tgt_list != null` [FOR] Request Book Delivery Address Change Target (L15045)

> For each delivery target, checks if `SHS_AD_NET = "1"` (Net target). If so, maps billing contract number and update timestamp.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_seiky_shs_chg_tgt_list = bean[0].getDataBeanArray(ITENS_SAME_AD_CHG_SKS_SHS_LIST)` |
| 2 | SET | `if ("1".equals(bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_NET_04, DATABEAN_GET_VALUE)))` |
| 3 | SET | `bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_SEIK_KEI_NO_AF_04, SET_VALUE, getMapString(..., "seiky_shs_chg_seiky_kei_no"))` |
| 4 | SET | `bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_SEIK_KEI_NO_AF_UPD_DTM_04, SET_VALUE, getMapString(..., "seiky_shs_chg_upd_dtm_aft"))` |

### Block 4 — [IF] KKSV009822CC eo Hikari Tel Address Change CC (L15060)

> Maps service contract data specific to the eo Hikari Tel service. Currently **maps only the top-level fields** (service contract number, update timestamps, billing contract number) — a large comment block lists additional fields that are yet to be mapped. This block is **incomplete** — a TODO marker exists for downward mapping.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv_9822_map = outputMap.get("KKSV009822CC")` |
| 2 | SET | `bean[0].sendMessageString(EOH_TEL_SVKEI_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9822_map, "svc_kei_upd_dtm_aft"))` |
| 3 | SET | `bean[0].sendMessageString(EOH_TEL_SVKEI_NO_TL_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9822_map, "svc_kei_dtl_upd_dtm_aft"))` |
| 4 | SET | `bean[0].sendMessageString(EOH_TEL_SVKEI_NO_AF, SET_VALUE, getMapString(kksv_9822_map, "new_svc_kei_no"))` |
| 5 | SET | `bean[0].sendMessageString(EOH_TL_SEIKY_KEI_NO, SET_VALUE, getMapString(kksv_9822_map, "new_seiky_kei_no"))` // Service addition support |

### Block 5 — [IF] KKSV009823CC eo Hikari TV Address Change CC (L15092)

> Maps service contract data specific to the eo Hikari TV service. Similar structure to Block 3 (Net). This block was added for TV mapping support (marked with `テレビのマッピングを追加` / "Add TV mapping" comments).

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv_9823_map = outputMap.get("KKSV009823CC")` |
| 2 | SET | `bean[0].sendMessageString(EOH_TV_SVKEI_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9823_map, "svc_kei_upd_dtm_aft"))` |
| 3 | SET | `bean[0].sendMessageString(EOH_TV_SVKEI_NO_AF_UPD_DTM, SET_VALUE, getMapString(kksv_9823_map, "svc_kei_dtl_upd_dtm_aft"))` |
| 4 | SET | `bean[0].sendMessageString(EOH_TV_SVKEI_NO_AF, SET_VALUE, getMapString(kksv_9823_map, "new_svc_kei_no"))` |
| 5 | SET | `bean[0].sendMessageString(EOH_TV_SEIKY_KEI_NO, SET_VALUE, getMapString(kksv_9823_map, "new_seiky_kei_no"))` // Service addition support |

**Block 5.1** — [IF] `svc_kei_ucwk_list != null` [FOR] TV Service Contract Line Details (L15107)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svc_kei_ucwk_list = kksv_9823_map.get("svc_kei_ucwk_list")` |
| 2 | SET | `bean[0].sendMessageString(EOH_TV_SVKEI_UW_NO_AF_UPD_DTM, ADD_VALUE, getMapString(svc_kei_ucwk_list.get(i), "svc_kei_ucwk_upd_dtm_aft"))` |
| 3 | SET | `bean[0].sendMessageString(EOH_TV_SVKEI_UW_NO_AF_UPD_DTM, ADD_VALUE, getMapString(svc_kei_ucwk_list.get(i), "svc_kei_ucwk_dtl_upd_dtm_aft"))` |

**Block 5.2** — [IF] `op_svc_kei_list != null` [FOR] TV Option Service Continuation (L15121)

> Maps TV option service continuation data to TV operation continuation bean array.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_op_svc_kei_list = bean[0].getDataBeanArray(EOH_TV_OP_HKTGI_LIST)` |
| 2 | SET | `bean_op_svc_kei_map.sendMessageString(OP_HKTGI_OP_SVKEI_NO_AF_UPD_DTM_06, ADD_VALUE, getMapString(op_svc_kei_list.get(i), "op_svc_kei_upd_dtm_aft"))` |

**Block 5.3** — [IF] `kktk_svc_list != null` [FOR] TV Equipment Provision Service (L15135)

> Same `do-while` pattern as Block 3.3: iterates through equipment list looking for `USE_KIKI_SVC_CD_05 = "01"`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_kktk_svc_list = bean[0].getDataBeanArray(TEKKYO_AD_USE_KIKI_LIST)` |
| 2 | SET | `do { ntCount++; bean_kktk_svc_map = bean_kktk_svc_list.getDataBean(ntCount); } while (!"01".equals(bean_kktk_svc_map.sendMessageString(USE_KIKI_SVC_CD_05, DATABEAN_GET_VALUE)));` |
| 3 | SET | `bean_kktk_svc_map.sendMessageString(USE_KIKI_KKTK_SVKEI_NO_AF_UPD_DTM_05, ADD_VALUE, getMapString(kktk_svc_list.get(i), "kktk_svc_kei_upd_dtm_aft"))` |

**Block 5.4** — [IF] `seiky_shs_chg_tgt_list != null` [FOR] TV Request Book Delivery Target (L15155)

> For each delivery target, checks if `SHS_AD_TV = "1"` (TV target). If so, maps billing contract number and update timestamp.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean_seiky_shs_chg_tgt_list = bean[0].getDataBeanArray(ITENS_SAME_AD_CHG_SKS_SHS_LIST)` |
| 2 | SET | `if ("1".equals(bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_TV_04, DATABEAN_GET_VALUE)))` |
| 3 | SET | `bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_SEIK_KEI_NO_AF_04, SET_VALUE, getMapString(..., "seiky_shs_chg_seiky_kei_no"))` |
| 4 | SET | `bean_seiky_shs_chg_tgt_map.sendMessageString(SHS_AD_SEIK_KEI_NO_AF_UPD_DTM_04, SET_VALUE, getMapString(..., "seiky_shs_chg_upd_dtm_aft"))` |

### Block 6 — Final Default Values (L15172)

> After all CC blocks complete, the method sets default values for commission and standard construction fee fields. These are hardcoded defaults: commission = none (0), standard construction fee = free (0, div=02).

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean[0].sendMessageString(MSKM_JIM_COMMISION_UM, SET_VALUE, "0")` // Submission - Service Manual Fee: Present/Absent |
| 2 | SET | `bean[0].sendMessageString(MSKM_JIM_COMMISION_UM_NM, SET_VALUE, "無")` // Submission - Service Manual Fee: Name (none) |
| 3 | SET | `bean[0].sendMessageString(MSKM_JIM_COMMISION_AMNT, SET_VALUE, "")` // Submission - Service Manual Fee: Amount |
| 4 | SET | `bean[0].sendMessageString(MSKM_STDARD_KOJIHI_UM, SET_VALUE, "0")` // Submission - Standard Construction Fee: Present/Absent |
| 5 | SET | `bean[0].sendMessageString(MSKM_STDARD_KOJIHI_UM_NM, SET_VALUE, "無")` // Submission - Standard Construction Fee: Name (none) |
| 6 | SET | `bean[0].sendMessageString(MSKM_STDARD_KOJIHI_DIV, SET_VALUE, "02")` // Submission - Standard Construction Fee: Division |
| 7 | SET | `bean[0].sendMessageString(MSKM_STDARD_KOJIHI_DIV_NM, SET_VALUE, "無料")` // Submission - Standard Construction Fee: Division Name (free) |
| 8 | SET | `bean[0].sendMessageString(MSKM_STDARD_KOJIHI_AMNT, SET_VALUE, "")` // Submission - Standard Construction Fee: Amount |

### Block 7 — Completion (L15330)

> Logs the end of processing and returns. A `TODO` comment block lists remaining downward mappings that are yet to be implemented.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `JSYwebLog.println(JSYwebLog.DEBUG, getClass(), "★★getKKSV0098[end]", null, null, null)` |
| 2 | RETURN | `return` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mskm_no` | Field | Submission number — the unique identifier for a submission record in the address change process |
| `mskm_no_af` | Field | Submission - Post-Change Submission Number |
| `mskm_upd_dtm_af` | Field | Submission - Post-Change Submission Number Update Timestamp |
| `mskm_dtl_no` | Field | Submission Detail Number |
| `mskm_dtl_no_af` | Field | Submission Detail Number (Post-Change) |
| `mskm_dtl_upd_dtm_af` | Field | Submission Detail Number Update Timestamp (Post-Change) |
| `mskm_dtl_list` | Field | Submission Detail Info List — list of detail records within a submission |
| `ctrl_ad_chg_mskm_kari_add_no_af` | Field | Control - Post-Change Address Change Submission - Temp Registration Number |
| `ctrl_ad_chg_mskm_kari_add_no_af_upd_dtm` | Field | Control - Post-Change Address Change Submission - Temp Registration Number Update Timestamp |
| `ctrl_ad_chg_mskm_hon_add_no_af` | Field | Control - Post-Change Address Change Number (Official) |
| `ctrl_ad_chg_mskm_hon_add_no_af_upd_dtm` | Field | Control - Post-Change Address Change Number (Official) Update Timestamp |
| `ctrl_adchm_stat_cd` | Field | Address Change Status Code — indicates current processing status |
| `rykk_tppv_list` | Field | Withdrawn Address Temporary Storage List — equipment data temporarily stored after address withdrawal |
| `rykk_tppv_upd_dtm` | Field | Withdrawn Address Temporary Storage - Update Timestamp |
| `op_tppv_list` | Field | Operation Continuation Temporary Storage List — operation data temporarily stored during address change |
| `op_tppv_adchm_svc_tab_sbt_cd` | Field | Operation Continuation Address Change Service Table Service Type Code — discriminator: "1"=Net, "2"=Tel, "3"=TV |
| `new_op_tppv_adchm_op_tppv_no` | Field | New Operation Continuation Address Change - Operation Temporary Storage Number |
| `op_tppv_upd_dtm` | Field | Operation Continuation Temporary Storage - Update Timestamp |
| `stb_tppv_list` | Field | STB Temporary Storage List — Set-Top Box temporary storage data |
| `new_stb_tppv_adchm_stb_tppv_no` | Field | New STB Address Change - STB Temporary Storage Number |
| `stb_tppv_upd_dtm` | Field | STB Temporary Storage - Update Timestamp |
| `va_tppv_map` | Field | VA (Value Add) Selection Temporary Storage Map |
| `tln_tppv_list` | Field | Telephone Number Temporary Storage List |
| `new_tln_tppv_adchm_tln_tppv_no` | Field | New Telephone Number Address Change - Telephone Number Temporary Storage Number |
| `tln_tppv_upd_dtm` | Field | Telephone Number Temporary Storage - Update Timestamp |
| `shs_tppv_list` | Field | Delivery Temporary Storage List — documents to be delivered (request book, guide mail) |
| `shs_tppv_adchm_shs_sbt_cd` | Field | Delivery Address Change - Delivery Type Code — "1" = Request Book / Guide Book |
| `new_shs_tppv_adchm_shs_tppv_no` | Field | New Delivery Address Change - Delivery Temporary Storage Number |
| `shs_tppv_upd_dtm` | Field | Delivery Temporary Storage - Update Timestamp |
| `adchg_map` | Field | Address Change Info Map — address change record data |
| `new_adchg_adchg_no` | Field | New Address Change Number |
| `adchg_upd_dtm` | Field | Address Change - Update Timestamp |
| `adchg_adchg_stat` | Field | Address Change Status |
| `new_adchg_dtl_adchg_dtl_no` | Field | New Address Change Detail - Address Change Detail Number |
| `adchg_dtl_map_svc_kei` | Field | Address Change Detail Info Map (Service Contract) |
| `adchg_dtl_list_svc_kei_ucwk` | Field | Address Change Detail Info List (Service Contract - Line Item) |
| `adchg_dtl_list_kktk_svc_kei` | Field | Address Change Detail Info List (Equipment Provision Service Contract) — **empty block** |
| `adchg_dtl_list_op_svc_kei` | Field | Address Change Detail Info List (Option Service Contract) — **empty block** |
| `adchg_dtl_map_sei_kei` | Field | Address Change Detail Map (Billing Contract) — **empty block** |
| `kei_kais_ucwk_list` | Field | Service Contract Line Item Data List — service contract routing/line data |
| `new_kei_kais_ucwk_no` | Field | New Service Contract Line Item Number |
| `cmn_use_plc_svc_kei_kisn_uw_no_af` | Field | Common - Usage Location - Post-Change Service Contract Line Number |
| `svc_kei_no` | Field | Service Contract Number |
| `svc_kei_upd_dtm_aft` | Field | Service Contract - Update Timestamp (After) |
| `svc_kei_dtl_upd_dtm_aft` | Field | Service Contract Detail - Update Timestamp (After) |
| `new_svc_kei_no` | Field | New Service Contract Number |
| `new_seiky_kei_no` | Field | New Billing Contract Number — used during service addition |
| `svc_kei_ucwk_list` | Field | Service Contract Line Item List — details within a service contract |
| `svc_kei_ucwk_upd_dtm_aft` | Field | Service Contract Line Item - Update Timestamp (After) |
| `svc_kei_ucwk_dtl_upd_dtm_aft` | Field | Service Contract Line Item Detail - Update Timestamp (After) |
| `op_svc_kei_list` | Field | Option Service Contract Info List |
| `op_svc_kei_upd_dtm_aft` | Field | Option Service Contract - Update Timestamp (After) |
| `kktk_svc_list` | Field | Equipment Provision Service Info List |
| `kktk_svc_kei_upd_dtm_aft` | Field | Equipment Provision Service - Update Timestamp (After) |
| `seiky_shs_chg_tgt_list` | Field | Request Book Delivery Address Change Target List |
| `seiky_shs_chg_seiky_kei_no` | Field | Request Book Delivery Address Change - Billing Contract Number |
| `seiky_shs_chg_upd_dtm_aft` | Field | Request Book Delivery Address Change - Update Timestamp (After) |
| `use_kiki_svc_cd` | Field | Equipment Use Service Code — "01" = Net |
| `shs_ad_net` | Field | Request Book Delivery Target - Net indicator — "1" = Net target |
| `shs_ad_tv` | Field | Request Book Delivery Target - TV indicator — "1" = TV target |
| `mskm_jim_commision_um` | Field | Submission - Service Manual Fee: Present/Absent |
| `mskm_jim_commision_um_nm` | Field | Submission - Service Manual Fee: Name |
| `mskm_jim_commision_amnt` | Field | Submission - Service Manual Fee: Amount |
| `mskm_stdard_kojihi_um` | Field | Submission - Standard Construction Fee: Present/Absent |
| `mskm_stdard_kojihi_div` | Field | Submission - Standard Construction Fee: Division |
| `mskm_stdard_kojihi_div_nm` | Field | Submission - Standard Construction Fee: Division Name |
| `mskm_stdard_kojihi_amnt` | Field | Submission - Standard Construction Fee: Amount |
| KKSV0098 | Screen | Address Change Confirmation Screen — displays address change registration results |
| KKSV009811CC | Component | Common Address Change Registration CC — shared address change data |
| KKSV009812CC | Component | Temporary Storage Address Change Data Registration CC — intermediate temp-storage data |
| KKSV009821CC | Component | eo Hikari Net Address Change CC — Net-specific service data |
| KKSV009822CC | Component | eo Hikari Tel Address Change CC — Tel-specific service data (placeholder) |
| KKSV009823CC | Component | eo Hikari TV Address Change CC — TV-specific service data |
| eo Hikari Net | Service | EO Hikari Net — broadband Internet service by KDDI |
| eo Hikari Tel | Service | EO Hikari Tel — telephone service by KDDI |
| eo Hikari TV | Service | EO Hikari TV — television service by KDDI |
| Address Change (住所変更) | Business | Address Change Registration — process of updating a customer's registered address in the telecom system |
| Operation Continuation (option continuation) | Business | When a customer moves, their existing Net/Tel/TV service contracts may continue at the new address — this data tracks the continuation mapping |
| STB | Acronym | Set-Top Box — hardware device for TV service |
| VA | Acronym | Value Add — optional add-on services |
| CC | Acronym | Common Component — shared processing logic layer in the kopt architecture |
| SC | Acronym | Service Component — service component layer that calls CBS (business logic services) |
| CBS | Acronym | Common Business Service — core business logic service |
| Downward Mapping (下りマッピング) | Pattern | The process of mapping service-layer data (from SC/CBS) to screen DataBean fields for UI display |
| `X31SDataBeanAccess` | Class | Screen DataBean Access — framework class for interacting with screen-level data beans |
| `X31CWebConst.DATABEAN_SET_VALUE` | Constant | Enum/constant indicating a SET operation on a DataBean field |
| `X31CWebConst.DATABEAN_ADD_VALUE` | Constant | Enum/constant indicating an ADD operation (append) to a DataBean list field |
| `X31CWebConst.DATABEAN_GET_VALUE` | Constant | Enum/constant indicating a GET operation to read a DataBean field value |
| `sendMessageString` | Method | Framework method to set or get String values on a DataBean |
