# Business Logic — JKKSeikySakiHeigoCC.editInMsg_EKU0061C010() [2659 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKSeikySakiHeigoCC` |
| Layer | Common Component / CC (Business Logic Controller — message transformation layer) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKSeikySakiHeigoCC.editInMsg_EKU0061C010()

This method is the **input message builder** for the "Construction Order — eo Light Net Mansion Various Changes" service (工事案件＜eo光ネットマンション＞諸変更). It constructs a `CAANMsg` template by populating approximately **193 message fields** from the `childMap` parameter into the CBS message schema (`EKU0061C010CBSMsg`). The method serves as the **data mapping and transformation layer** between the business process (BP) layer and the Service Component (SC) layer. It implements the **Builder pattern**: it creates a `CAANMsg` template, sets common metadata (template ID, function code, operator ID, operate date/time), extracts and normalizes work-area detail numbers, then iteratively maps each field from `childMap` into the template using a consistent null-check pattern (empty string is treated as null).

The method handles a broad set of service data categories: service contract identifiers (svc_kei_no, kojiak_no), service pricing details (svc_cd, prc_grp_cd, pcrs_cd, pplan_cd, wrib_type_cd), customer personal information (cust_nm, cust_kana, contact phone numbers), contractor address data (keisha_* fields across 8 address components), installation location data (setplace_* fields across 8 address components), move-in/move-out history (tentaku_bf_*, tentaku_saki_*), construction scheduling data (svc_staymd, koji_kibo_ymd, dsl_kibo_ymd, shunko_rsv_ymd, nyukyo_rsv_ymd, hikiwatashi_rsv_ymd), equipment/portable phone data (bmp_* and chgb_bmp_* fields across 5 portable device slots), household device data (taknkiki_* fields across 10 device slots with before-change counterparts), and miscellaneous service flags (family_kei_flg, pc_setup_flg, dmpsank_sbt_cd, etc.). It then **returns the populated paramMap** containing the assembled template list for forwarding to the SC layer.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editInMsg_EKU0061C010()"])
    
    step1["editInMsg param"]
    template["Create CAANMsg template"]
    
    step2["Set FUNC_CODE"]
    
    step3a["Set OPERATOR_ID"]
    step3b["Set OPERATE_DATE"]
    step3c["Set OPERATE_DATETIME"]
    
    step4["Get workMap from param"]
    
    step5{"workMap has
KKSV054601SCWORK?"}
    step5null["template.setNull MSKM_DTL_NO"]
    step5has{"workList non-empty?"}
    step5empty["template.setNull MSKM_DTL_NO"]
    step5valid{"meisai non-empty?"}
    step5set["template.set MSKM_DTL_NO"]
    
    step6["Get inMap from param"]
    step6a["Set FUNC_CODE from dataMap"]
    
    step7["Map childMap fields 1-6"]
    step8["Map childMap fields 7-13"]
    step9["Map childMap fields 14-24"]
    step10["Map childMap fields 25-31"]
    step11["Map childMap fields 32-48"]
    step12["Map childMap fields 49-68"]
    step13["Map childMap fields 69-93"]
    step14["Set Null fields 1-4"]
    step15["Map childMap fields 94-128"]
    step16["Map childMap fields 129-152"]
    step17["Set Null fields 153-193"]
    step18["Put template in list
return paramMap"]
    
    START --> step1
    step1 --> template
    template --> step2
    step2 --> step3a
    step3a --> step3b
    step3b --> step3c
    step3c --> step4
    step4 --> step5
    step5 -->|no| step5null
    step5 -->|yes| step5has
    step5has -->|no| step5empty
    step5has -->|yes| step5valid
    step5valid -->|no| step5null
    step5valid -->|yes| step5set
    step5null --> step6
    step5set --> step6
    step5empty --> step6
    step6 --> step6a
    step6a --> step7
    step7 --> step8
    step8 --> step9
    step9 --> step10
    step10 --> step11
    step11 --> step12
    step12 --> step13
    step13 --> step14
    step14 --> step15
    step15 --> step16
    step16 --> step17
    step17 --> step18
    step18 --> END(["Return paramMap"])
```

**Processing Flow Summary:**

1. **Common area setup** — Delegates to `editInMsg(param)` to build a base `paramMap` with common fields (control data, operator info).
2. **Template creation** — Creates a `CAANMsg` instance using `EKU0061C010CBSMsg` schema. Sets `TEMPLATE_ID_EKU0061C010 = "EKU0061C010"`, `FUNC_CODE = "1"`.
3. **Control data extraction** — Reads `OPERATOR_ID`, `OPERATE_DATE`, and `OPERATE_DATETIME` from the param control map.
4. **Work area detail number resolution** — Reads `KKSV054601SCWORK` from the work area mapping. If present, extracts `KKSV054601SCWORKLIST`, takes the first entry, and resolves `mskm_dtl_no`. Empty strings are mapped as null.
5. **Function code override** — Overrides `FUNC_CODE` from `dataMap.get(JCMConstants.FUNC_CODE_KEY)`.
6. **ChildMap field mapping** — Iteratively maps ~193 fields from `childMap` to the template using a consistent pattern: if `childMap.get(field)` is an empty string, call `template.setNull(CBSMsgField)`; otherwise call `template.set(CBSMsgField, value)`. Fields are organized into logical groups:
   - **Group 1 (L988–L1022):** Service contract identifiers — `svc_kei_no`, `svc_kei_kaisen_ucwk_no`, `kojiak_no`, `koji_uk_cd`, `koji_uk_dtail_cd`, `koji_uk_optnty_ido_dtm`
   - **Group 2 (L1024–L1084):** Service pricing and plan — `svc_cd`, `prc_grp_cd`, `pcrs_cd`, `pplan_cd`, `wrib_type_cd`, `plan_chg_fix_ymd`, `ad_chg_fix_dtm`
   - **Group 3 (L1086–L1213):** Ownership, IP, building, customer — `ownr_kei_no`, `ip_hradsi_cd`, `mans_rm_tushin_kiki_sbt_cd`, `mans_tushin_equip_cd`, `sysid`, `mskmsha_nm`, customer name/kana/phone, contractor address (8 components)
   - **Group 4 (L1215–L1317):** Invoice, place, installation location, coordinates — `seiky_kei_no`, `place_no`, `setplace_*` (8 address components), `koji_saki_ad_mi_fix_flg`, `kaisen_place_telno`, `kepco_busioffice_no`, `lgtd`, `lttd`, `zahyo_hosei_um`, `ad_form_cd`, building details, move history (before/after — 14 address components)
   - **Group 5 (L1319–L1489):** Construction schedule, preferences, contacts — `newconst_bukken_cd`, `mansion_bukken_cd`, `hukkat_anken_flg`, `same_equip_re_mskm_cd`, `opsvkei_hktgi_flg`, `koji_scope_cd`, `isetsu_cd`, service dates, preferred dates, contact preferences, remarks, equipment flags
   - **Group 6 (L1491–L1655):** Portable phone data (5 slots × ~5 fields each) — `bmp_um_1-5`, `eoh_tel_no_1-5`, `bmp_rsv_ymd_1-5`, `bmp_moto_tushin_jgs_cd_1-5`, `chgb_bmp_um_1-5`, `chgb_eoh_tel_no_1-5`, `chgb_bmp_rsv_ymd_1-5`, `chgb_bmp_moto_tushin_jgs_cd_1-5`
   - **Group 7 (L1657–L1683):** Household device fields 1-4 (set to null) — `TAKNKIKI_SBT_CD_1-4`, `KKTK_SVC_KEI_NO_1-4`, `TAKNKIKI_MODEL_CD_1-4`, `KKSEIZO_NO_1-4`, `MACAD_1-4`, `ROUTER_KIND_CD_1-4`, `TK_SBT_CD_1-4`, and before-change counterparts
   - **Group 8 (L1685–L1772):** Household device data 5-10 (from childMap) — `taknkiki_sbt_cd_5-10`, `kktk_svc_kei_no_5-10`, `taknkiki_model_cd_5-10`, `kkseizo_no_5-10`, `macad_5-10`, `router_kind_cd_5-10`, `tk_sbt_cd_5-10`, and before-change counterparts
   - **Group 9 (L1774–L1831):** Household device 11 data — `taknkiki_sbt_cd_11` through `chgb_tk_sbt_cd_11`
7. **Null field initialization** — Sets null for device movement codes (1-20), device change numbers (1-20), and original temporary case numbers (1-20).
8. **Template assembly** — Wraps the single template in a `CAANMsg[]` array and stores it under `JCMConstants.TEMPLATE_LIST_KEY` in the paramMap.
9. **Return** — Returns the populated `paramMap`.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object containing control data (operator ID, operate date, operate datetime), work area mapping (KKSV054601SCWORK with msKM detail number list), and the request data payload. Represents the overall request context for the eo Light Net Mansion various changes screen. |
| 2 | `dataMap` | `Map<String, Object>` | The request data map containing screen-level control data including `FUNC_CODE_KEY`. Used to override the function code value in the template. |
| 3 | `childMap` | `HashMap<String, Object>` | The child data map containing all service-specific fields to be mapped to the CBS message template. Contains ~193 fields organized into service contract info, service pricing, customer info, contractor address, installation location, move history, construction schedule, portable phone data, household device data, and various service flags. |

**Instance fields / external state read:** None. This method is self-contained and reads all data through its parameters.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `editInMsg(param)` | - | - | Calls `editInMsg` in `JKKSeikySakiHeigoCC` — Builds common paramMap with control data and operator information. Internal common-area message preparation. |

**Detailed Analysis:**

This method is a **pure message transformation** method — it does not directly interact with databases, entities, or external SCs. It solely prepares a `CAANMsg` template by mapping input data from `childMap` into the message schema.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `editInMsg(param)` | - | - | Calls the parent class/common `editInMsg` method to prepare the common paramMap with control data fields (operator ID, operate date, operate datetime). This is an internal message preparation step. |

**How to classify:**
- **U** (Update): The method modifies the paramMap by setting fields — it is a message builder/update operation.
- No Create, Read, or Delete database operations are performed directly within this method.

## 5. Dependency Trace

### Caller Information

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Class:JKKSeikySakiHeigoCC.execEKU0061C010 | `execEKU0061C010` -> `editInMsg_EKU0061C010` | `editInMsg [U] common paramMap` |
| 2 | Class:JKKSeikyKeiBunkatsuCC.editInMsg_EKU0061C010 | `editInMsg_EKU0061C010` (JKKSeikyKeiBunkatsuCC copy) -> `editInMsg_EKU0061C010` | `editInMsg [U] common paramMap` |

**Terminal operations from this method:**

| Method | CRUD Type | Description |
|--------|-----------|-------------|
| `editInMsg(param)` | U | Builds common paramMap |

The method `editInMsg_EKU0061C010` is called only from two internal locations:
1. **`JKKSeikySakiHeigoCC.execEKU0061C010()`** — The primary execution method that orchestrates the CBS call for eo Light Net Mansion various changes. After this method returns the populated paramMap, `execEKU0061C010` passes it to the SC invoker.
2. **`JKKSeikyKeiBunkatsuCC.editInMsg_EKU0061C010()`** — A duplicate copy in the service contract separation class, following the same pattern.

No screen entry points (KKSV*) were found within 8 hops of this method. This is an internal CC-level method, not a screen entry point itself.

## 6. Per-Branch Detail Blocks

**Block 1** — [CALL] `(common area setup)` (L8953)

> Sets up the common parameter map by delegating to the inherited editInMsg method.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `editInMsg(param)` // Build common paramMap [-> common control data preparation] |

---

**Block 2** — [SET] `(template creation)` (L8955)

> Creates the CAANMsg template using EKU0061C010CBSMsg schema.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = new CAANMsg(EKU0061C010CBSMsg.class.getName())` |

---

**Block 3** — [SET] `(template metadata setup)` (L8958–L8967)

> Sets common template metadata: template ID, function code, operator ID, operate date, operate datetime.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.set(EKU0061C010CBSMsg.TEMPLATEID, "EKU0061C010")` [-> TEMPLATE_ID_EKU0061C010] |
| 2 | SET | `template.set(EKU0061C010CBSMsg.FUNC_CODE, "1")` [initial value] |
| 3 | EXEC | `param.getControlMapData(SCControlMapKeys.OPERATOR_ID)` // Get operator ID |
| 4 | SET | `template.set(JCMConstants.OPERATOR_ID_KEY, operatorId)` |
| 5 | EXEC | `param.getControlMapData(SCControlMapKeys.OPE_DATE)` // Get operate date |
| 6 | SET | `template.set(JCMConstants.OPERATE_DATE_KEY, operateDate)` |
| 7 | EXEC | `param.getControlMapData(SCControlMapKeys.OPE_TIME)` // Get operate datetime |
| 8 | SET | `template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime)` |

---

**Block 4** — [IF] `(workMap KKSV054601SCWORK resolution)` (L8977–L8996)

> Extracts the work detail number (mskm_dtl_no) from the work area mapping. This is the only branching logic in the entire method.

**Block 4.1** — [IF] `map == null` (L8979)

> If work area mapping does not exist, set null for detail number.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(EKU0061C010CBSMsg.MSKM_DTL_NO)` |

---

**Block 4.2** — [IF] `map != null → workList check` (L8982–L8996)

> Work area mapping exists — check if the work list has entries.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `(HashMap)map.get("KKSV054601SCWORKLIST")` |
| 2 | IF | `workList != null && workList.size() != 0` |

**Block 4.2.1** — [IF] `workList has entries` (L8985–L8994)

> First entry's msKM detail number is extracted.

| # | Type | Code |
|---|------|------|
| 1 | SET | `workList.get(0)` // Get first work entry |
| 2 | SET | `meisai = (String)reMap.get("mskm_dtl_no")` // Work detail number |

**Block 4.2.1.1** — [IF] `meisai == null || "".equals(meisai)` (L8988)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(EKU0061C010CBSMsg.MSKM_DTL_NO)` |

**Block 4.2.1.2** — [ELSE] `meisai has value` (L8990–L8993)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.set(EKU0061C010CBSMsg.MSKM_DTL_NO, meisai)` |

---

**Block 4.3** — [ELSE] `workList is empty/null` (L8995)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(EKU0061C010CBSMsg.MSKM_DTL_NO)` |

---

**Block 5** — [EXEC/SET] `(inMap retrieval and FUNC_CODE override)` (L8999–L1002)

> Retrieves user data list and overrides function code from dataMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap = (HashMap)param.getData("KKSV0546CCList")` |
| 2 | SET | `template.set(EKU0061C010CBSMsg.FUNC_CODE, dataMap.get(JCMConstants.FUNC_CODE_KEY))` |

---

**Block 6** — [IF chain] `(childMap field mapping: service contract info)` (L1004–L1022)

> Maps service contract identifiers. Each field follows the pattern: `if ("".equals(childMap.get(field))) → template.setNull() else → template.set()`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE | `childMap.get("svc_kei_no")` → [-> SVC_KEI_NO] (L1004) |
| 2 | IF-ELSE | `childMap.get("svc_kei_kaisen_ucwk_no")` → [-> SVC_KEI_KAISEN_UCWK_NO] (L1012) |
| 3 | IF-ELSE | `childMap.get("kojiak_no")` → [-> KOJIAK_NO] (L1020) |
| 4 | IF-ELSE | `childMap.get("koji_uk_cd")` → [-> KOJI_UK_CD] (L1028) |
| 5 | IF-ELSE | `childMap.get("koji_uk_dtail_cd")` → [-> KOJI_UK_DTAIL_CD] (L1036) |
| 6 | IF-ELSE | `childMap.get("koji_uk_optnty_ido_dtm")` → [-> KOJI_UK_OPTNTY_IDO_DTM] (L1044) |

Each IF-ELSE block: empty string → `template.setNull(CBSMsgField)`, non-empty → `template.set(CBSMsgField, value)`.

---

**Block 7** — [IF chain] `(childMap field mapping: service pricing and plan)` (L1048–L1084)

> Maps service pricing, plan, and timing change fields.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE | `childMap.get("svc_cd")` → [-> SVC_CD] (L1048) |
| 2 | IF-ELSE | `childMap.get("prc_grp_cd")` → [-> PRC_GRP_CD] (L1056) |
| 3 | IF-ELSE | `childMap.get("pcrs_cd")` → [-> PCR_S_CD] (L1064) |
| 4 | IF-ELSE | `childMap.get("pplan_cd")` → [-> PPLAN_CD] (L1072) |
| 5 | IF-ELSE | `childMap.get("wrib_type_cd")` → [-> WRIB_TYPE_CD] (L1080) |
| 6 | IF-ELSE | `childMap.get("plan_chg_fix_ymd")` → [-> PLAN_CHG_FIX_YMD] (L1088) |
| 7 | IF-ELSE | `childMap.get("ad_chg_fix_dtm")` → [-> AD_CHG_FIX_DTM] (L1096) |

---

**Block 8** — [IF chain] `(childMap field mapping: ownership, IP, building, customer info)` (L1099–L1213)

> Maps ownership contract number, IP address code, building communication equipment codes, SYSID, customer personal information (name, kana, home phone, mobile phone, contact phone), and contractor address (8 components).

| # | Type | Code |
|---|------|------|
| 1-5 | IF-ELSE | `ownr_kei_no`, `ip_hradsi_cd`, `mans_rm_tushin_kiki_sbt_cd`, `mans_tushin_equip_cd`, `sysid` (L1099–L1184) |
| 6-10 | IF-ELSE | `mskmsha_nm`, `cust_nm`, `cust_kana`, `cust_home_tel_no`, `cust_ktai_tel_no` (L1186–L1242) |
| 11-18 | IF-ELSE | `cust_rrks_tel_no`, `rrks_offc_nm`, `keisha_ad_cd` through `keisha_adrrm` (L1244–L1360) |

---

**Block 9** — [IF chain] `(childMap field mapping: invoice, place, installation location)` (L1362–L1503)

> Maps invoice contract number, place number, installation location address (8 components), "construction-before-address-not-fixed" flag, circuit location phone number, KEPCO business office number, coordinates (longitude, latitude), coordinate correction flag, residence type code, move-in floor count, building floor count, direction codes (2), and move-in/move-out history addresses (before: 8 + after: 8 address components).

| # | Type | Code |
|---|------|------|
| 1-3 | IF-ELSE | `seiky_kei_no`, `place_no`, `setplace_ad_cd` (L1362–L1378) |
| 4-11 | IF-ELSE | `setplace_pcd`, `setplace_state_nm`, `setplace_city_nm`, `setplace_oaztsu_nm`, `setplace_azcho_nm`, `setplace_ad_bnchigo`, `setplace_adrttm`, `setplace_adrrm` (L1380–L1492) |
| 12 | IF-ELSE | `koji_saki_ad_mi_fix_flg` (L1494) |
| 13 | IF-ELSE | `kaisen_place_telno` (L1502) |
| 14 | IF-ELSE | `kepco_busioffice_no` (L1510) |
| 15-16 | IF-ELSE | `lgtd` (longitude), `lttd` (latitude) (L1518–L1534) |
| 17 | IF-ELSE | `zahyo_hosei_um` (coordinate correction validity) (L1538) |
| 18 | IF-ELSE | `ad_form_cd` (residence type code) (L1546) |
| 19-20 | IF-ELSE | `nyukyo_flr_cnt_cd` (move-in floor count), `kcku_flr_cnt_cd` (building floor count) (L1554–L1570) |
| 21-22 | IF-ELSE | `direction_cd_1`, `direction_cd_2` (direction codes) (L1578–L1594) |
| 23-36 | IF-ELSE | `tentaku_bf_ad_cd` through `tentaku_bf_adrrm` (8 before-move address components) (L1598–L1738) |
| 37-50 | IF-ELSE | `tentaku_saki_ad_cd` through `tentaku_saki_adrrm` (8 after-move address components) (L1742–L1882) |

---

**Block 10** — [IF chain] `(childMap field mapping: construction schedule, preferences, flags)` (L1884–L1974)

> Maps new construction code, mansion code, reactivation flag, same equipment re-application code, optional service contract succession flag, construction scope code, relocation code, service start date, construction preference date, contract cancellation preference date, completion reservation date, move-in reservation date, handover reservation date, power supply reservation date, phone contact preference date and time window, home survey preference application deadline, indoor construction preference application deadline, construction APP contact designation and phone, contact method and remarks, mansion equipment system linkage remarks, radio interference code, KEPCO customer information consent flag, customer SOS usage flag, family contract flag, PC setup flag, portable phone simultaneous construction preference.

| # | Type | Code |
|---|------|------|
| 1-3 | IF-ELSE | `newconst_bukken_cd`, `mansion_bukken_cd`, `hukkat_anken_flg` (L1884–L1930) |
| 4-7 | IF-ELSE | `same_equip_re_mskm_cd`, `opsvkei_hktgi_flg`, `koji_scope_cd`, `isetsu_cd` (L1934–L2034) |
| 8-17 | IF-ELSE | `svc_staymd`, `koji_kibo_ymd`, `dsl_kibo_ymd`, `shunko_rsv_ymd`, `nyukyo_rsv_ymd`, `hikiwatashi_rsv_ymd`, `epower_soden_rsv_ymd`, `tel_rrk_kibo_ymd`, `tel_rrk_kibo_time_cd` (L2038–L2140) |
| 18-21 | IF-ELSE | `takcho_kibo_apo_kigen_ymd`, `tnkj_kibo_apo_kigen_ymd`, `koji_apo_rrks_shitei_cd`, `koji_apo_rrks_telno` (L2144–L2246) |
| 22-23 | IF-ELSE | `rrk_way_cd`, `rrk_way_hoki` (L2250–L2282) |
| 24-26 | IF-ELSE | `kojiak_biko`, `kojiak_biko_1`, `kojiak_biko_2` (L2286–L2334) |
| 27-34 | IF-ELSE | `manssbsys_rnki_kijiran`, `dmpsank_sbt_cd`, `kepco_ctinfo_juju_doi_um`, `cust_sos_use_um`, `family_kei_flg`, `pc_setup_flg`, `bmp_doji_kj_kibo_um` (L2338–L2482) |

---

**Block 11** — [IF chain] `(childMap field mapping: portable phone data slots 1-5)` (L2486–L2658)

> Maps portable phone data across 5 slots. Each slot contains: `bmp_um_N`, `eoh_tel_no_N`, `bmp_rsv_ymd_N`, `bmp_moto_tushin_jgs_cd_N` (pre-change fields) and `chgb_bmp_um_N`, `chgb_eoh_tel_no_N`, `chgb_bmp_rsv_ymd_N`, `chgb_bmp_moto_tushin_jgs_cd_N` (after-change fields). Slots 1-5 each have 8 fields.

| # | Type | Code |
|---|------|------|
| 1-40 | IF-ELSE | Slots 1-5 portable phone data × 8 fields each = 40 IF-ELSE blocks (L2486–L2658) |

---

**Block 12** — [SET] `(household device fields 1-4: null initialization)` (L2660–L2692)

> Sets null for household device type, service contract number, model code, serial number, MAC address, router type, service type (before-change counterparts) for devices 1-4. These are not mapped from childMap — they are initialized to null.

| # | Type | Code |
|---|------|------|
| 1-8 | SET | `template.setNull(...TAKNKIKI_SBT_CD_1)` through `...CHGB_TK_SBT_CD_1` (device 1, 8 fields) |
| 9-16 | SET | `template.setNull(...TAKNKIKI_SBT_CD_2)` through `...CHGB_TK_SBT_CD_2` (device 2, 8 fields) |
| 17-24 | SET | `template.setNull(...TAKNKIKI_SBT_CD_3)` through `...CHGB_TK_SBT_CD_3` (device 3, 8 fields) |
| 25-32 | SET | `template.setNull(...TAKNKIKI_SBT_CD_4)` through `...CHGB_TK_SBT_CD_4` (device 4, 8 fields) |

---

**Block 13** — [IF chain] `(childMap field mapping: household device data slots 5-10)` (L2694–L2778)

> Maps household device data (type, service contract number, model, serial, MAC, router type, service type + before-change counterparts) for devices 5-10 from childMap.

| # | Type | Code |
|---|------|------|
| 1-22 | IF-ELSE | Devices 5: `taknkiki_sbt_cd_5` through `chgb_tk_sbt_cd_5` (L2694–L2774) |
| 23-44 | IF-ELSE | Devices 6-10: `taknkiki_sbt_cd_6-10` through `chgb_tk_sbt_cd_10` (L2776–L2900) |

---

**Block 14** — [IF chain] `(childMap field mapping: household device data slot 11)` (L2902–L2964)

> Maps household device data for device 11 from childMap.

| # | Type | Code |
|---|------|------|
| 1-22 | IF-ELSE | Device 11: `taknkiki_sbt_cd_11` through `chgb_tk_sbt_cd_11` (L2902–L2964) |

---

**Block 15** — [SET] `(null field initialization: device movement codes, change numbers, original case numbers)` (L2966–L3040)

> Sets null for device movement codes (1-20), device change numbers (1-20), and original temporary case numbers (1-20).

| # | Type | Code |
|---|------|------|
| 1-20 | SET | `template.setNull(TAKNKIKI_IDO_CD_1)` through `template.setNull(TAKNKIKI_IDO_CD_20)` (L2966–L3004) |
| 21-40 | SET | `template.setNull(KIKI_CHG_NO_1)` through `template.setNull(KIKI_CHG_NO_20)` (L3006–L3044) |
| 41-60 | SET | `template.setNull(MOTO_TCASE_NO_1)` through `template.setNull(MOTO_TCASE_NO_20)` (L3046–L3084) |

---

**Block 16** — [SET/RETURN] `(template assembly and return)` (L3086–L3091)

> Wraps the template in a CAANMsg array and stores it in the paramMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `templates = new CAANMsg[1]` |
| 2 | SET | `templates[0] = template` |
| 3 | SET | `paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates)` |
| 4 | RETURN | `return paramMap` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `kojiak_no` | Field | Construction order number — unique identifier for a construction order in the eo Light Net Mansion service |
| `svc_kei_no` | Field | Service contract number — identifier for a service contract line item |
| `svc_kei_kaisen_ucwk_no` | Field | Service contract modification work number — internal tracking ID for service contract modification processing |
| `koji_uk_cd` | Field | Construction receipt code — classifies the type of construction work received (e.g., new installation, modification) |
| `koji_uk_dtail_cd` | Field | Construction receipt detail code — sub-classification of construction work type |
| `koji_uk_optnty_ido_dtm` | Field | Construction receipt optional equipment movement datetime — timestamp for optional equipment relocation |
| `svc_cd` | Field | Service code — identifies the type of service (e.g., FTTH, Mail, ENUM) |
| `prc_grp_cd` | Field | Price group code — billing tier/group classification |
| `pcrs_cd` | Field | Price course code — pricing plan/course identifier |
| `pplan_cd` | Field | Plan code — service plan identifier |
| `wrib_type_cd` | Field | Discount type code — classification of discount applied |
| `plan_chg_fix_ymd` | Field | Plan change confirmation date — date when a plan change is confirmed |
| `ad_chg_fix_dtm` | Field | Address change completion datetime — timestamp when address change is finalized |
| `ownr_kei_no` | Field | Owner contract number — contract number of the property owner |
| `ip_hradsi_cd` | Field | IP address assignment code — IP addressing method classification |
| `mans_rm_tushin_kiki_sbt_cd` | Field | Mansion room communication equipment type code — type of in-room communication equipment |
| `mans_tushin_equip_cd` | Field | Mansion communication equipment code — specific communication equipment identifier for the mansion |
| `mskmsha_nm` | Field | Applicant name — name of the service application applicant |
| `cust_nm` | Field | Customer name — name of the customer |
| `cust_kana` | Field | Customer name (kana) — phonetic reading of customer name in Japanese katakana/hiragana |
| `cust_home_tel_no` | Field | Customer home phone number |
| `cust_ktai_tel_no` | Field | Customer mobile phone number (keitai = mobile phone in Japanese) |
| `cust_rrks_tel_no` | Field | Customer contact phone number — preferred contact number |
| `rrks_offc_nm` | Field | Contact business name — business/office name of the contact person |
| `keisha_ad_cd` through `keisha_adrrm` | Fields | Contractor address fields (8 components): address code, postal code, prefecture, city/town/village, district, block, building name, room number — full address of the contractor (bill recipient) |
| `seiky_kei_no` | Field | Invoice contract number — contract number for billing |
| `setplace_ad_cd` through `setplace_adrrm` | Fields | Installation location address fields (8 components) — full address where equipment is installed |
| `koji_saki_ad_mi_fix_flg` | Field | Construction before-address-not-fixed flag — indicates if the pre-construction address has not been finalized |
| `kaisen_place_telno` | Field | Circuit location phone number — phone number at the circuit termination point |
| `kepco_busioffice_no` | Field | KEPCO business office number — number of the power company business office |
| `lgtd` | Field | Longitude — geographic coordinate |
| `lttd` | Field | Latitude — geographic coordinate |
| `zahyo_hosei_um` | Field | Coordinate correction validity — flag indicating whether coordinates have been corrected |
| `ad_form_cd` | Field | Residence type code — type of residence (e.g., apartment, mansion, house) |
| `nyukyo_flr_cnt_cd` | Field | Move-in floor count code — floor number where the customer moves in |
| `kcku_flr_cnt_cd` | Field | Building floor count code — total number of floors in the building |
| `direction_cd_1`, `direction_cd_2` | Fields | Direction codes (1 and 2) — building orientation/direction classification |
| `tentaku_bf_*` | Fields | Move-in before address fields (8 components) — address at the previous residence before moving in |
| `tentaku_saki_*` | Fields | Move-in after address fields (8 components) — address at the new residence after moving in |
| `newconst_bukken_cd` | Field | New construction code — indicates if the building is newly constructed |
| `mansion_bukken_cd` | Field | Mansion building code — identifies mansion/condominium buildings |
| `hukkat_anken_flg` | Field | Reactivation order flag — flag for reactivating a previously canceled service |
| `same_equip_re_mskm_cd` | Field | Same equipment re-application code — indicates if the same equipment is being re-applied |
| `opsvkei_hktgi_flg` | Field | Optional service contract succession flag — indicates if optional services are being carried over |
| `koji_scope_cd` | Field | Construction scope code — defines the extent/scope of construction work |
| `isetsu_cd` | Field | Relocation code — classification of equipment relocation |
| `svc_staymd` | Field | Service start date — date when the service begins |
| `koji_kibo_ymd` | Field | Construction preference date — date the customer prefers for construction |
| `dsl_kibo_ymd` | Field | Contract cancellation preference date — date the customer prefers for cancellation |
| `shunko_rsv_ymd` | Field | Completion reservation date — date when construction is expected to be completed |
| `nyukyo_rsv_ymd` | Field | Move-in reservation date — date when move-in is scheduled |
| `hikiwatashi_rsv_ymd` | Field | Handover reservation date — date for service handover/transition |
| `epower_soden_rsv_ymd` | Field | Power supply reservation date — date when power supply is scheduled |
| `tel_rrk_kibo_ymd` | Field | Phone contact preference date — date the customer prefers to be contacted by phone |
| `tel_rrk_kibo_time_cd` | Field | Phone contact preference time slot code — preferred time window for phone contact |
| `takcho_kibo_apo_kigen_ymd` | Field | Home survey preference application deadline — deadline for home survey preference applications |
| `tnkj_kibo_apo_kigen_ymd` | Field | Indoor construction preference application deadline — deadline for indoor construction preference |
| `koji_apo_rrks_shitei_cd` | Field | Construction APP contact designation code — designated contact person for construction APP |
| `koji_apo_rrks_telno` | Field | Construction APP contact phone number |
| `rrk_way_cd` | Field | Contact method code — preferred method of communication (phone, email, etc.) |
| `rrk_way_hoki` | Field | Contact method remarks — additional notes about contact preferences |
| `kojiak_biko` | Fields | Construction order remarks — free-text notes about the construction order |
| `manssbsys_rnki_kijiran` | Field | Mansion equipment system linkage remarks — notes about integration with mansion building systems |
| `dmpsank_sbt_cd` | Field | Radio interference order type code — classification of radio interference-related work |
| `kepco_ctinfo_juju_doi_um` | Field | KEPCO customer information receipt consent validity — whether consent was given for KEPCO to receive customer info |
| `cust_sos_use_um` | Field | Customer SOS usage validity — whether the customer uses SOS/emergency service |
| `family_kei_flg` | Field | Family contract flag — indicates if this is a family plan contract |
| `pc_setup_flg` | Field | PC setup flag — indicates if PC setup service is required |
| `bmp_*` / `chgb_bmp_*` | Fields | Portable phone data fields — `bmp` = portable phone, `chgb` = before-change. Across 5 slots (1-5), each with 4 fields: existence, eo light phone number, reservation date, original carrier code (before-change), and after-change variants |
| `eoh_tel_no_N` | Field | eo light phone number N — phone number for eo light telephone service, slot N |
| `taknkiki_sbt_cd_N` | Field | Household device type code N — type of in-home device (router, set-top box, etc.), slot N |
| `kktk_svc_kei_no_N` | Field | Device-provided service contract number N — contract number for device-provided service, slot N |
| `taknkiki_model_cd_N` | Field | Household device model code N — model identifier for in-home device, slot N |
| `kkseizo_no_N` | Field | Device serial number N — manufacturing serial number of the device, slot N |
| `macad_N` | Field | MAC address N — network hardware address of the device, slot N |
| `router_kind_cd_N` | Field | Router type code N — type/classification of the router, slot N |
| `tk_sbt_cd_N` | Field | Service type code N — type of service provided through the device, slot N |
| `chgb_taknikk_model_cd_N` | Field | Before-change household device model code N — previous model before change, slot N |
| `chgb_kkseizo_no_N` | Field | Before-change device serial number N — previous serial number, slot N |
| `chgb_macad_N` | Field | Before-change MAC address N — previous MAC address, slot N |
| `chgb_router_kind_cd_N` | Field | Before-change router type code N — previous router type, slot N |
| `chgb_tk_sbt_cd_N` | Field | Before-change service type code N — previous service type, slot N |
| `TAKNKIKI_IDO_CD_N` | Field | Household device movement code N — code for device relocation/movement, slots 1-20 |
| `KIKI_CHG_NO_N` | Field | Device change number N — unique identifier for device change operations, slots 1-20 |
| `MOTO_TCASE_NO_N` | Field | Original temporary case number N — previous temporary case reference, slots 1-20 |
| CAANMsg | Technical | Fujitsu's message/schema class for building and managing CBS (Centralized Business System) messages |
| EKU0061C010CBSMsg | Technical | CBS message schema class specific to the eo Light Net Mansion various changes service. Defines all field keys for the template. |
| editInMsg | Method | Common message preparation method in the CC base class. Sets up base paramMap with control data. |
| TEMPLATE_ID_EKU0061C010 | Constant | Template ID constant with value "EKU0061C010" — identifies the CBS message template type. |
| KKSV054601SCWORK | Constant/Key | Work area mapping key for construction order detail number data. Contains a list of msKM detail numbers. |
| KKSV054601SCWORKLIST | Constant/Key | Work area sub-key containing the list of work detail entries. |
| KKSV0546CCList | Constant/Key | User data list key retrieved from param — contains screen-level data for KKSV0546. |
| JCMConstants.TEMPLATE_LIST_KEY | Constant | Key for storing the CAANMsg template list in paramMap. |
| msKm_dtl_no | Field | Work detail number — internal detail line item number within the work area mapping. |
| eo Light Net Mansion | Business | Fujitsu's fiber-optic internet service for mansion/condominium buildings. Combines FTTH with shared building infrastructure. |
| 工事諸変更 | Business | Construction order various changes — a service category for modifying existing construction orders (address changes, equipment changes, plan changes, etc.) |
| 諸変更 | Business | Various changes / modifications — a service category covering all types of service contract modifications |
| BP | Technical | Business Process — the layer between the screen (KKSV) and the Service Component (SC), containing business logic controllers (CC) |
| CC | Technical | Common Component — a business logic controller class that implements shared business operations |
| SC | Technical | Service Component — a lower-level service layer that performs database operations and business validation |
| CBS | Technical | Centralized Business System — the enterprise system architecture where message templates are processed |
| FUNC_CODE | Field | Function code — identifies the specific function being invoked (set to "1" for this service) |
| msKM | Business | Monthly service management — a business entity for monthly service contract management |
| FTTH | Business | Fiber To The Home — fiber-optic broadband internet service |
| KEPCO | Business | Kyushu Electric Power Company — the regional power utility; in this system, handles power supply coordination for FTTH installation |
