# Business Logic — JKKSeikyKeiBunkatsuCC.editInMsg_EKU0041C010() [1475 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKSeikyKeiBunkatsuCC` |
| Layer | CC/Common Component — shared business component for invoicing/contract separation |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKSeikyKeiBunkatsuCC.editInMsg_EKU0041C010()

This method constructs the inbound message (input parameter map) for the **"Construction Project — EO Hikari TV Line Various Modifications"** service component invocation (EKU0041C010). It is a message-building / template-assembly method that follows the Builder pattern: it initializes a `CAANMsg` template, populates it with field values extracted from `dataMap` and `childMap` (with null-handling for empty strings), and returns the assembled `paramMap` containing the template in a `CAANMsg[]` array keyed by `JCMConstants.TEMPLATE_LIST_KEY`.

The method serves as the **input-side adapter** for the EO Hikari TV line modification CBS (Custom Business System). It handles multiple business scenarios through conditional branches: (1) billing contract number resolution depends on whether the data exists in `dataMap` versus being newly entered, (2) detail number (`MSKM_DTL_NO`) population differs depending on whether the service contract status is "accepted" (`010`) or not, and (3) for confirmation screens (`FUNC_CODE = "2"`), the billing contract number is overridden from `childMap` to prevent IF-product check failures.

Its role in the larger system is that of a **shared message builder** called by `execEKU0041C010()` (the screen's main processing method) before invoking the SC (Service Component). The same structural pattern is reused across multiple similar methods (e.g., `editInMsg_EKU0061C010` for EO Net Modification), indicating a systematic design approach. The method handles over 200 field assignments, covering customer information, construction project details, address data (both current and pre/post move), scheduling data, and reserved null fields for home equipment (STB/HDD/BS) that are not applicable to TV line modifications.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> COMMON_INIT["Set common area: paramMap = editInMsg(param)"]
    COMMON_INIT --> CREATE_TEMPLATE["Create CAANMsg template for EKU0041C010CBSMsg"]
    CREATE_TEMPLATE --> SET_TEMPLATE_ID["Set TEMPLATE_ID_EKU0041C010 on template"]
    SET_TEMPLATE_ID --> SET_FUNC_CODE["Set FUNC_CODE = 1"]
    SET_FUNC_CODE --> SET_OPERATOR["Set OPERATOR_ID, OPE_DATE, OPE_TIME from param control map"]
    SET_OPERATOR --> GET_WORK_MAP["Get mapping work area from param"]

    GET_WORK_MAP --> CHECK_SEIKY_NO["Check dataMap.ekk0491d010_seiky_kei_no_work"]
    CHECK_SEIKY_NO -->|null or empty| SET_SEIKY_NULL["Set SEIKY_KEI_NO = null"]
    CHECK_SEIKY_NO -->|exists| SET_SEIKY_VALUE["Set SEIKY_KEI_NO from dataMap"]

    SET_SEIKY_NULL --> GET_STATE_CD["Get stateCd from childMap.kksv040321_svc_kei_stat_cd"]
    SET_SEIKY_VALUE --> GET_STATE_CD

    GET_STATE_CD --> CHECK_STATE["Check stateCd equals 010"]
    CHECK_STATE -->|Yes| CHECK_MSKM_DIRECT["Check childMap.kksv040326_mskm_dtl_no"]
    CHECK_STATE -->|No| CHECK_MSKM_LIST["Get KKSV054601SCWORKLIST from dataMap"]

    CHECK_MSKM_DIRECT -->|empty| SET_MSKM_NULL["Set MSKM_DTL_NO = null"]
    CHECK_MSKM_DIRECT -->|exists| SET_MSKM_DIRECT["Set MSKM_DTL_NO from childMap"]

    CHECK_MSKM_LIST -->|null or empty| SET_MSKM_LIST_NULL["Set MSKM_DTL_NO = null"]
    CHECK_MSKM_LIST -->|has items| GET_WORK_MAP_FIRST["Get first item from meisaiList"]
    GET_WORK_MAP_FIRST --> SET_MSKM_LIST["Set MSKM_DTL_NO from ekk0011d020_mskm_dtl_no"]

    SET_MSKM_DIRECT --> CHECK_FUNC_CD["Get funcCd from dataMap"]
    SET_MSKM_LIST_NULL --> CHECK_FUNC_CD
    SET_MSKM_LIST --> CHECK_FUNC_CD
    SET_MSKM_NULL --> CHECK_FUNC_CD

    CHECK_FUNC_CD --> CHECK_CONFIRM["Check funcCd equals 2"]
    CHECK_CONFIRM -->|Yes: Confirmation| SET_SEIKY_FROM_CHILD["Set SEIKY_KEI_NO from childMap.kksv040326_seiky_kei_no"]
    CHECK_CONFIRM -->|No: Normal| CHECK_SEIKY_RE["Check dataMap.ekk0491d010_seiky_kei_no_work"]

    CHECK_SEIKY_RE -->|null or empty| SET_SEIKY_RE_NULL["Set SEIKY_KEI_NO = null"]
    CHECK_SEIKY_RE -->|exists| SET_SEIKY_RE_VALUE["Set SEIKY_KEI_NO from dataMap"]

    SET_SEIKY_FROM_CHILD --> SET_FUNC_CD_RESULT["Set FUNC_CODE from funcCd"]
    SET_SEIKY_RE_NULL --> SET_FUNC_CD_RESULT
    SET_SEIKY_RE_VALUE --> SET_FUNC_CD_RESULT

    SET_FUNC_CD_RESULT --> COPY_CHILD_MAP["Copy 50+ fields from childMap to template"]
    COPY_CHILD_MAP --> CLEAR_SET_PLACE["Clear SETPLACE_*, PLACE_NO fields"]
    CLEAR_SET_PLACE --> COPY_REMAINING["Copy remaining fields: address flags, GPS, timing"]
    COPY_REMAINING --> CLEAR_HOME_EQUIP["Clear home equipment fields 1-20 (200+ fields)"]
    CLEAR_HOME_EQUIP --> CLEAR_OTHER["Clear other null fields: MSKMSHA_NM, MEMO, KIKI_CHG_NO"]
    CLEAR_OTHER --> BUILD_ARRAY["Build CAANMsg[] templates array"]
    BUILD_ARRAY --> PUT_TEMPLATE_LIST["Put templates into paramMap"]
    PUT_TEMPLATE_LIST --> RETURN(["Return paramMap"])

    style START fill:#4CAF50,color:#fff
    style RETURN fill:#4CAF50,color:#fff
```

**CRITICAL — Constant Resolution:**

| Constant | Value | Business Meaning |
|----------|-------|------------------|
| `EKU0041C010CBSMsg.TEMPLATEID` | `"EKU0041C010"` | CBSMsg template ID for EO Hikari TV line modifications |
| `FUNC_CODE = "1"` | `"1"` | Initial input/creation mode |
| `stateCd = "010"` | `"010"` | Service contract status: "Accepted" (ukedatsu-tsuki) |
| `funcCd = "2"` | `"2"` | Confirmation screen mode (kakunin) |
| `JCMConstants.TEMPLATE_LIST_KEY` | `"__JCM_TEMP_LIST_KEY__"` | Key for storing CAANMsg[] in paramMap |
| `JCMConstants.OPERATOR_ID_KEY` | `"OPERATOR_ID"` | Operator ID control map key |
| `JCMConstants.OPE_DATE` | `"OPE_DATE"` | Operation date control map key |
| `JCMConstants.OPE_TIME` | `"OPE_TIME"` | Operation time control map key |
| `JCMConstants.FUNC_CODE_KEY` | `"FUNC_CODE"` | Function code control map key |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | Business data read/write interface carrying request parameters including control map data (operator ID, operation date/time, function code) and the mapping work area (inter-screen data transfer buffer). |
| 2 | `dataMap` | `Map<String, Object>` | Data map holding persistent screen state between round-trips. Contains `ekk0491d010_seiky_kei_no_work` (billing contract number work field), `KKSV054601SCWORKLIST` (itemized detail list for non-accepted contracts), and `FUNC_CODE` (function code). |
| 3 | `childMap` | `HashMap<String, Object>` | Child data map holding the current screen's field values — extracted from the EO Hikari TV line modification screen (KKSV040326). Contains 50+ fields including service contract number, construction project info, customer info, addresses, timing data, and equipment flags. |

**External state / instance fields read:**
- None directly — all data is passed through parameters. The method calls `editInMsg(param)` which is an inherited method on the base class to populate the common area.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `JKKSeikyKeiBunkatsuCC.editInMsg` | - | - | Calls `editInMsg(param)` — inherited method to populate the common area (operator info, system date, etc.) in the paramMap. |
| R | `SCW00701SFLogic.getName` | - | - | Referenced in pre-computed evidence; may be used indirectly by the template message system. |
| U | `CAANMsg.set` | - | - | Sets field values on the CAANMsg template — the primary output mechanism of this method. |
| U | `CAANMsg.setNull` | - | - | Clears fields on the template by setting them to null — used for fields not applicable to TV line modifications (home equipment, installation addresses). |

**Note:** This method is a **message builder** — it does not perform any direct database or SC (Service Component) invocations. All work is done through `CAANMsg` template field population. The actual CBS (Custom Business System) call happens in the caller method `execEKU0041C010()` after `editInMsg_EKU0041C010()` returns. The method returns a `paramMap` containing a `CAANMsg[]` array, which the caller then passes to `scCall.run(paramMap, handle)`.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKSeikyKeiBunkatsuCC.execEKU0041C010` | `execEKU0041C010` -> `editInMsg_EKU0041C010` | `editInMsg [U] common_area` |

**Details:** The method is called directly from `execEKU0041C010()` within the same class. The caller is the main processing entry point for the EO Hikari TV line modifications screen. No screen entry point (`KKSV*`) was found within 8 hops in the pre-computed evidence. The terminal operations from this method are all `setNull` calls on the `CAANMsg` template — this method only writes to the template, never to the database.

## 6. Per-Branch Detail Blocks

**Block 1** — [PROCESS] (L12725) Initialize common area and create template

| # | Type | Code |
|---|------|------|
| 1 | CALL | `paramMap = editInMsg(param)` — Populates common area in paramMap [-> inherited method] |
| 2 | SET | `template = new CAANMsg(EKU0041C010CBSMsg.class.getName())` |
| 3 | SET | `template.set(EKU0041C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKU0041C010)` |
| 4 | SET | `template.set(EKU0041C010CBSMsg.FUNC_CODE, "1")` — Set to initial input mode |
| 5 | SET | `operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID)` |
| 6 | SET | `template.set(JCMConstants.OPERATOR_ID_KEY, operatorId)` |
| 7 | SET | `operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE)` |
| 8 | SET | `template.set(JCMConstants.OPERATE_DATE_KEY, operateDate)` |
| 9 | SET | `operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME)` |
| 10 | SET | `template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime)` |
| 11 | SET | `workMap = param.getMappingWorkArea()` |

**Block 2** — [IF] Billing contract number from dataMap (L12750)

| # | Type | Code |
|---|------|------|
| 1 | IF | `dataMap == null OR dataMap.get("ekk0491d010_seiky_kei_no_work") == null OR dataMap.get("ekk0491d010_seiky_kei_no_work").equals("")` |
| 2 | SET | `template.setNull(EKU0041C010CBSMsg.SEIKY_KEI_NO)` |
| 3 | ELSE | (else branch) |
| 4 | SET | `template.set(EKU0041C010CBSMsg.SEIKY_KEI_NO, (String) dataMap.get("ekk0491d010_seiky_kei_no_work"))` |

**Block 3** — [IF] Service contract status check for detail number resolution (L12761)

| # | Type | Code |
|---|------|------|
| 1 | SET | `stateCd = (String) childMap.get("kksv040321_svc_kei_stat_cd")` |
| 2 | IF | `stateCd.equals("010")` [Service contract status = "Accepted" (ukedatsu-tsuki)] |
| 3 | IF | `childMap.get("kksv040326_mskm_dtl_no").equals("")` |
| 4 | SET | `template.setNull(EKU0041C010CBSMsg.MSKM_DTL_NO)` |
| 5 | ELSE | |
| 6 | SET | `template.set(EKU0041C010CBSMsg.MSKM_DTL_NO, (String) childMap.get("kksv040326_mskm_dtl_no"))` |
| 7 | ELSE | [Not yet accepted — use list from SCWORKLIST] |
| 8 | SET | `meisaiList = (ArrayList<HashMap<String,String>>) dataMap.get("KKSV054601SCWORKLIST")` |
| 9 | IF | `meisaiList == null OR meisaiList.size() == 0` |
| 10 | SET | `template.setNull(EKU0041C010CBSMsg.MSKM_DTL_NO)` |
| 11 | ELSE | |
| 12 | SET | `workdMap = (HashMap) meisaiList.get(0)` |
| 13 | SET | `meisai = (String) workdMap.get("ekk0011d020_mskm_dtl_no")` |
| 14 | IF | `meisai == null OR meisai.equals("")` |
| 15 | SET | `template.setNull(EKU0041C010CBSMsg.MSKM_DTL_NO)` |
| 16 | ELSE | |
| 17 | SET | `template.set(EKU0041C010CBSMsg.MSKM_DTL_NO, meisai)` |

**Block 4** — [IF] Confirmation mode override for billing contract number (L12797)

| # | Type | Code |
|---|------|------|
| 1 | SET | `funcCd = (String) dataMap.get(JCMConstants.FUNC_CODE_KEY)` |
| 2 | IF | `funcCd.equals("2")` [Confirmation screen (kakunin) — IF-product check requires existing contract number] |
| 3 | SET | `template.set(EKU0041C010CBSMsg.SEIKY_KEI_NO, (String) childMap.get("kksv040326_seiky_kei_no"))` |
| 4 | ELSE | [Normal mode — re-check dataMap as initial set was tentative] |
| 5 | IF | `dataMap == null OR dataMap.get("ekk0491d010_seiky_kei_no_work") == null OR dataMap.get("ekk0491d010_seiky_kei_no_work").equals("")` |
| 6 | SET | `template.setNull(EKU0041C010CBSMsg.SEIKY_KEI_NO)` |
| 7 | ELSE | |
| 8 | SET | `template.set(EKU0041C010CBSMsg.SEIKY_KEI_NO, (String) dataMap.get("ekk0491d010_seiky_kei_no_work"))` |
| 9 | SET | `template.set(EKU0041C010CBSMsg.FUNC_CODE, funcCd)` |

**Block 5** — [PROCESS] Copy fields from childMap to template (L12815–12965)

This is a repeating pattern: for each field, check if the childMap value is empty string, and either set null or set the value. This block covers ~30 core fields:

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF-ELSE | `template.setNull/childMap.get("kksv040326_svc_kei_no")` | Service contract number |
| 2 | IF-ELSE | `template.setNull/childMap.get("kksv040326_svc_kei_kaisen_ucwk_no")` | Service contract line detail number |
| 3 | IF-ELSE | `template.setNull/childMap.get("kojiak_no")` | Construction project number |
| 4 | IF-ELSE | `template.setNull/childMap.get("kksv040326_koji_uk_cd")` | Construction receipt code |
| 5 | IF-ELSE | `template.setNull/childMap.get("kksv040326_koji_uk_dtail_cd")` | Construction receipt detail code |
| 6 | IF-ELSE | `template.setNull/childMap.get("kksv040326_koji_uk_optnty_ido_dtm")` | Construction receipt equipment change date/time |
| 7 | IF-ELSE | `template.setNull/childMap.get("kksv040326_svc_cd")` | Service code |
| 8 | IF-ELSE | `template.setNull/childMap.get("kksv040326_prc_grp_cd")` | Price group code |
| 9 | IF-ELSE | `template.setNull/childMap.get("kksv040326_pcrs_cd")` | Price course code |
| 10 | IF-ELSE | `template.setNull/childMap.get("plan_chg_fix_ymd")` | Plan change fix date/time |
| 11 | IF-ELSE | `template.setNull/childMap.get("ad_chg_fix_dtm")` | Address change completion date/time |
| 12 | IF-ELSE | `template.setNull/childMap.get("menkaihat_anken_no")` | Surface development project number |
| 13 | IF-ELSE | `template.setNull/childMap.get("mnkht_koji_cd")` | Surface construction code |
| 14 | IF-ELSE | `template.setNull/childMap.get("ownr_kei_no")` | Owner contract number |
| 15 | IF-ELSE | `template.setNull/childMap.get("pid")` | P-ID |
| 16 | IF-ELSE | `template.setNull/childMap.get("kksv040326_sysid")` | SYSID |

**Block 6** — [PROCESS] Copy customer information fields (L12969–13032)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF-ELSE | `childMap.get("kksv040326_cust_nm")` | Customer name |
| 2 | IF-ELSE | `childMap.get("kksv040326_cust_kana")` | Customer kana name |
| 3 | IF-ELSE | `childMap.get("cust_home_tel_no")` | Customer home phone number |
| 4 | IF-ELSE | `childMap.get("cust_ktai_tel_no")` | Customer mobile phone number |
| 5 | IF-ELSE | `childMap.get("cust_rrks_tel_no")` | Customer contact phone number |
| 6 | IF-ELSE | `childMap.get("rrks_offc_nm")` | Contact business name |

**Block 7** — [PROCESS] Copy contractee address fields (L13036–13090)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF-ELSE | `childMap.get("kksv040326_keisha_ad_cd")` | Contractee address code |
| 2 | IF-ELSE | `childMap.get("kksv040326_keisha_pcd")` | Contractee postal code |
| 3 | IF-ELSE | `childMap.get("kksv040326_keisha_state_nm")` | Contractee prefecture name |
| 4 | IF-ELSE | `childMap.get("kksv040326_keisha_city_nm")` | Contractee city/town/village name |
| 5 | IF-ELSE | `childMap.get("kksv040326_keisha_oaztsu_nm")` | Contractee oaza name (large district) |
| 6 | IF-ELSE | `childMap.get("kksv040326_keisha_azcho_nm")` | Contractee chome name |
| 7 | IF-ELSE | `childMap.get("kksv040326_keisha_ad_bnchigo")` | Contractee address reference number |
| 8 | IF-ELSE | `childMap.get("kksv040326_keisha_adrttm")` | Contractee address supplement/building name |
| 9 | IF-ELSE | `childMap.get("kksv040326_keisha_adrrm")` | Contractee address supplement/unit number |

**Block 8** — [PROCESS] Clear SETPLACE fields (installation address) — NOT used for TV line modifications (L13093–13103)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_AZCHO_NM)` |
| 2 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_STATE_NM)` |
| 3 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_ADRTTM)` |
| 4 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_ADRRM)` |
| 5 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_AD_CD)` |
| 6 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_CITY_NM)` |
| 7 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_AD_BNCHIGO)` |
| 8 | SET | `template.setNull(EKU0041C010CBSMsg.PLACE_NO)` |
| 9 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_PCD)` |
| 10 | SET | `template.setNull(EKU0041C010CBSMsg.SETPLACE_OAZTSU_NM)` |

**Block 9** — [PROCESS] Copy remaining construction fields (L13107–13557)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF-ELSE | `koji_saki_ad_mi_fix_flg` | Pre-construction address not-yet-fixed flag |
| 2 | IF-ELSE | `kaisen_place_telno` | Wiring location phone number |
| 3 | IF-ELSE | `kepco_busioffice_no` | KEPCO business office number |
| 4 | IF-ELSE | `lgtd` | Longitude |
| 5 | IF-ELSE | `lttd` | Latitude |
| 6 | IF-ELSE | `zahyo_hosei_um` | Coordinate correction validity |
| 7 | IF-ELSE | `ad_form_cd` | Dwelling form code |
| 8 | IF-ELSE | `nyukyo_flr_cnt_cd` | Move-in floor count code |
| 9 | IF-ELSE | `kcku_flr_cnt_cd` | Building floor count code |
| 10 | IF-ELSE | `direction_cd_1` | Direction code 1 |
| 11 | IF-ELSE | `direction_cd_2` | Direction code 2 |
| 12 | IF-ELSE | `tentaku_bf_ad_cd` / `tentaku_bf_pcd` / ... / `tentaku_bf_adrrm` | Pre-move address (7 fields) |
| 13 | IF-ELSE | `tentaku_saki_ad_cd` / `tentaku_saki_pcd` / ... / `tentaku_saki_adrrm` | Post-move address (7 fields) |
| 14 | IF-ELSE | `newconst_bukken_cd` | New construction project code |
| 15 | IF-ELSE | `hukkat_anken_flg` | Reactivation project flag |
| 16 | IF-ELSE | `same_equip_re_mskm_cd` | Same equipment re-order detail code |
| 17 | IF-ELSE | `koji_scope_cd` | Construction scope code |
| 18 | IF-ELSE | `isetsu_cd` | Relocation code |
| 19 | IF-ELSE | `koji_kibo_ymd` | Desired construction date |
| 20 | IF-ELSE | `dsl_kibo_ymd` | Desired cancellation date |
| 21 | IF-ELSE | `shunko_rsv_ymd` | Scheduled completion date |
| 22 | IF-ELSE | `nyukyo_rsv_ymd` | Scheduled move-in date |
| 23 | IF-ELSE | `hikiwatashi_rsv_ymd` | Scheduled handover date |
| 24 | IF-ELSE | `epower_soden_rsv_ymd` | Scheduled power transmission date |
| 25 | IF-ELSE | `tel_rrk_kibo_ymd` | Desired contact date |
| 26 | IF-ELSE | `tel_rrk_kibo_time_cd` | Desired contact time slot code |
| 27 | IF-ELSE | `takcho_kibo_apo_kigen_ymd` | Home survey desired appointment deadline |
| 28 | IF-ELSE | `tnkj_kibo_apo_kigen_ymd` | Home construction desired appointment deadline |
| 29 | IF-ELSE | `koji_apo_rrks_shitei_cd` | Construction appointment contact designation code |
| 30 | IF-ELSE | `rrk_way_cd` | Contact method code |
| 31 | IF-ELSE | `rrk_way_hoki` | Contact method supplement |
| 32 | IF-ELSE | `kojiak_biko` / `kojiak_biko_1` / `kojiak_biko_2` | Construction project notes (3 fields) |

**Block 10** — [PROCESS] Clear fields not applicable to TV line modifications (L13560–13619)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(DMPS_ANKEN_NO)` |
| 2 | SET | `template.setNull(DMPSANK_SBT_CD)` |
| 3 | SET | `template.setNull(KEPCO_CTINFO_JUJU_DOI_UM)` |

**Block 11** — [PROCESS] Clear home equipment fields (units 1–20) — NOT applicable to TV line (L13619–14180)

This block contains 20 groups of 17 null-setting calls each = 340 `setNull` calls. Each group covers: TAKNKIKI_SBT_CD, TAKNKIKI_IDO_CD, KKTK_SVC_KEI_NO, TAKNKIKI_MODEL_CD, KKSEIZO_NO, STB_ID, HDD_CAPA_CD, VONU_BSPT_KH, STB_KEI_TV_COURSE_CD, CHGB_TAKNIKK_MODEL_CD, CHGB_KKSEIZO_NO, CHGB_STB_ID, CHGB_HDD_CAPA_CD, CHGB_VONU_BSPT_KH, CHGB_STB_KEI_TV_COURSE_CD, CHGB_OLD_STB_ID.

| # | Type | Code |
|---|------|------|
| 1 | SET | `setNull(TAKNKIKI_SBT_CD_1)` through `setNull(CHGB_OLD_STB_ID_1)` |
| 2 | SET | `setNull(TAKNKIKI_SBT_CD_2)` through `setNull(CHGB_OLD_STB_ID_2)` |
| ... | SET | (same pattern for units 3 through 20) |

**Block 12** — [PROCESS] Clear additional null fields (L14176–14198)

| # | Type | Code |
|---|------|------|
| 1 | SET | `template.setNull(MSKMSHA_NM)` |
| 2 | SET | `template.setNull(KOJI_APO_RRKS_TELNO)` |
| 3 | SET | `template.setNull(CUST_SOS_USE_UM)` |
| 4 | SET | `template.setNull(KKTK_SVC_KEI_CHGE_MEMO_1)` through `KKTK_SVC_KEI_CHGE_MEMO_20` |
| 5 | SET | `template.setNull(KIKI_CHG_NO_1)` through `KIKI_CHG_NO_20` |
| 6 | SET | `template.setNull(MOTO_TCASE_NO_1)` through `MOTO_TCASE_NO_20` |

**Block 13** — [PROCESS] Build and return template array (L14193–14198)

| # | 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 |
|------|------|------------------|
| `seiky_kei_no` | Field | Billing contract number — the master contract number for invoicing |
| `seiky_kei_no_work` | Field | Billing contract number work field — temporary storage for contract number between screen round-trips |
| `mskm_dtl_no` | Field | Application detail number — item-level detail reference number |
| `ekk0491d010_seiky_kei_no_work` | Field | EKK0491D010 billing contract number work — cross-screen data transfer key |
| `ekk0011d020_mskm_dtl_no` | Field | EKK0011D020 application detail number — from detail list item |
| `svc_kei_stat_cd` | Field | Service contract status code — "010" means "Accepted" (ukedatsu-tsuki) |
| `kksv040321_svc_kei_stat_cd` | Field | KKSV040321 service contract status code — screen field key |
| `kksv040326_mskm_dtl_no` | Field | KKSV040326 application detail number — from TV modification screen |
| `kksv040326_*` | Field prefix | KKSV040326 — EO Hikari TV line various modifications screen field key prefix |
| `kksv040321_*` | Field prefix | KKSV040321 — Service contract status screen field key prefix |
| `kksv040327_*` | Field prefix | KKSV040327 — EO Net modification screen field key prefix (used by editInMsg_EKU0061C010) |
| `kksv054601scworklist` | Field | KKSV054601SCWORKLIST — SC work detail list used for non-accepted contracts |
| `func_cd` / `func_code` | Field | Function code — "1" for input, "2" for confirmation |
| `state_cd` | Field | Status code — service contract lifecycle state |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband service |
| CBS | Acronym | Custom Business System — backend service processing unit |
| SC | Acronym | Service Component — remote service call target |
| CAANMsg | Class | Message template class — carries structured data between layers |
| KKSV040326 | Screen | EO Hikari TV line various modifications screen |
| eo光テレビ | Business term | EO Hikari TV — NTT East's fiber-optic TV service |
| 工事諸変更 | Business term | Construction project modifications — changes to an existing construction project |
| 受付済 | Business term | Accepted — service contract status meaning the order has been received and processed |
| 確認 | Business term | Confirmation — screen mode for review before final submission |
| SETPLACE_* | Field prefix | Installation address fields — not used for TV line modifications |
| TENTAKU_* | Field prefix | Pre-move / post-move address fields — moving-related address data |
| KEISHA_* | Field prefix | Contractee address fields — customer's registered address |
| TAKNKIKI_* | Field prefix | Home equipment fields — equipment type/model codes for STB/HDD/BS |
| CHGB_* | Field prefix | Change-before home equipment — pre-change equipment data |
| KIKI_CHG_NO | Field | Equipment change number — tracking ID for equipment changes |
| MOTO_TCASE_NO | Field | Original汤姆ソんケース番号 — original汤姆ソん case number |
| KIKI | Acronym | Equipment (機器) — home terminal equipment |
| STB | Acronym | Set-Top Box — device for receiving digital TV signals |
| HDD | Acronym | Hard Disk Drive — storage device in STB/DVR |
| BS | Acronym | Broadcasting Satellite — satellite broadcast service in Japan |
| VONU | Acronym | Virtual Optical Network Unit — fiber-to-the-room device |
| EPARK | Business term | KEPCO (Kansai Electric Power Company) — utility company integration |
| DMP S | Acronym | Radio wave obstruction project (電波障害案件) |
| 工事範囲 | Business term | Construction scope — boundaries of construction work |
| 移設 | Business term | Relocation — moving equipment to a different location |
| 立工予定 | Business term | Scheduled completion — planned construction completion date |
| 入居予定 | Business term | Scheduled move-in — planned move-in date |
| 引き渡し予定 | Business term | Scheduled handover — planned handover date |
| 電力送電予定 | Business term | Scheduled power transmission — planned power-on date |
| 電話連絡希望 | Business term | Desired contact — preferred contact date/time for contractor |
| 宅内調査 | Business term | Home survey — on-site inspection before construction |
| 宅内工事 | Business term | Home construction — interior wiring/installation work |
| 住所変更 | Business term | Address change — change of customer's registered address |
| プラン変更 | Business term | Plan change — change of service pricing plan |
| 面開発 | Business term | Surface development — development of building surface infrastructure |
| 新築物件 | Business term | New construction project — newly built property |
| 復活案件 | Business term | Reactivation project — reactivating a previously suspended service |
| 同一設備再申込 | Business term | Same equipment re-order — re-ordering with existing equipment |
| 住所未確定フラグ | Field | Pre-construction address not-yet-fixed flag — indicates address is not confirmed |
| 座標補正 | Field | Coordinate correction — GPS coordinate adjustment |
| 住形態 | Field | Dwelling form — type of residence (house, apartment, etc.) |

---
*Document generated from source analysis of JKKSeikyKeiBunkatsuCC.editInMsg_EKU0041C010 at lines 12725–14199.*
