# Business Logic — JFUAddSvcKeiTvCC.editErrInfoEKK0341D010() [580 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JFUAddSvcKeiTvCC` |
| Layer | CC / Common Component (Package: `com.fujitsu.futurity.bp.custom.common`) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JFUAddSvcKeiTvCC.editErrInfoEKK0341D010()

This method performs **error information mapping for the Device Provision Service Contract Registration** screen (EKK0341D010). It is the central error-handling bridge between the backend Service Component (SC) response and the frontend presentation layer. After a CBS call returns with potential validation or processing errors, the SC populates a `CAANMsg` template with field-level error codes. This method reads every error field from the template, extracts the target display map from the request parameter, and copies each non-null error value into the appropriate key in that map so the UI can render per-field error messages.

The method implements a **dispatch-and-route** pattern: it iterates through ~55 independently defined error fields, each corresponding to a distinct input/control on the registration form. For each field, it conditionally copies the error string if the template contains a non-null error indicator, and only writes to the map if the target key does not already have an entry — preventing overwrites from downstream validation.

A unique aspect of this version (v1.00.00 addition) is the nested data extraction: instead of using `param.getData(fixedText)` directly, it drills into a three-level structure — `param.getData(fixedText).get("EKK0341D010TvList").get(index)` — to target a specific row within a list of service contract items (e.g., when the user is registering multiple services on one screen). This enables per-item error mapping for multi-line service registration.

Additionally, the method handles **status priority logic**: it compares the template's status code against the current business process (BP) return code stored in the control map. If the template's status is higher (more severe), it sets the `RETURN_CODE` and `RETURN_MESSAGE` control map entries so the calling screen can show a global status message.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editErrInfoEKK0341D010"])
    START --> STATUS["Get template status from EKK0341D010CBSMsg.STATUS"]
    STATUS --> CHECK_RC{"returnCode != 0?"}
    CHECK_RC -->|Yes| SET_9000["Set templateStatus = 9000"]
    CHECK_RC -->|No| CHECK_MSG["Validate message lookup
RETURN_MESSAGE_ + status"]
    SET_9000 --> CHECK_MSG
    CHECK_MSG -->|Null| RESET_STATUS["Set templateStatus = 0"]
    CHECK_MSG -->|Valid| GET_BP_STATUS["Get bpStatus from param control map
(RETURN_CODE key)"]
    RESET_STATUS --> GET_BP_STATUS
    GET_BP_STATUS --> BP_NULL{"bpStatus value is null?"}
    BP_NULL -->|Yes| BP_SET_NEG1["Set bpStatus = -1"]
    BP_NULL -->|No| BP_PARSE["Parse bpStatus = Integer.parseInt(controlMapData)"]
    BP_SET_NEG1 --> COMPARE_STATUS{"templateStatus > bpStatus?"}
    BP_PARSE --> COMPARE_STATUS
    COMPARE_STATUS -->|Yes| SET_MSG["Set RETURN_CODE
RETURN_MESSAGE on param"]
    COMPARE_STATUS -->|No| EXTRACT_DATA["Extract HashMap from
param.getData(fixedText)
.get(EKK0341D010TvList)
.get(index)"]
    SET_MSG --> EXTRACT_DATA
    EXTRACT_DATA --> MAP_ERRORS["Map error fields from template to inMap"]
    MAP_ERRORS --> MAP_KKTK["Check KKTK_SVC_CD_ERR
-> put kktk_svc_cd_err"]
    MAP_KKTK --> MAP_PCRS["Check PCRS_CD_ERR
-> put pcrs_cd_err"]
    MAP_PCRS --> MAP_PPLAN["Check PPLAN_CD_ERR
-> put pplan_cd_err"]
    MAP_PPLAN --> MAP_HDD["Check HDD_CAPA_CD_ERR
-> put hdd_capa_cd_err"]
    MAP_HDD --> MAP_SVCUSE["Check SVC_USE_STA_KIBO_YMD_ERR
-> put svc_use_sta_kibo_ymd_err"]
    MAP_SVCUSE --> MAP_RSV["Check RSV_TSTA_KIBO_YMD_ERR
-> put rsv_tsta_kibo_ymd_err"]
    MAP_RSV --> MAP_MAKER["Check KIBO_MAKER_CD_ERR
-> put kibo_maker_cd_err"]
    MAP_MAKER --> MAP_HAMBAI["Check HAMBAI_SBT_CD_ERR
-> put hambai_sbt_cd_err"]
    MAP_HAMBAI --> MAP_TSUSHIN["Check TSUSHIN_KIKI_SET_CD_ERR
-> put tsushin_kiki_set_cd_err"]
    MAP_TSUSHIN --> MAP_TAKN["Check TAKNKIKI_SBT_CD_ERR
-> put taknkiki_sbt_cd_err"]
    MAP_TAKN --> MAP_MODEL["Check TAKNKIKI_MODEL_CD_ERR
-> put taknkiki_model_cd_err"]
    MAP_MODEL --> MAP_SETHIN["Check TAKNKIKI_SETHIN_MODEL_CD_ERR
-> put taknkiki_sethin_model_cd_err"]
    MAP_SETHIN --> MAP_FUZOKU["Check FUZOKUHIN_SBT_CD_ERR
-> put huzokuhin_sbt_cd_err"]
    MAP_FUZOKU --> MAP_PLACE["Check KIKI_STC_SAKI_PLACE_NO_ERR
-> put kiki_stc_saki_place_no_err"]
    MAP_PLACE --> MAP_SVCNO["Check SVC_KEI_NO_ERR
-> put svc_kei_no_err"]
    MAP_SVCNO --> MAP_SVCUCWK["Check SVC_KEI_UCWK_NO_ERR
-> put svc_kei_ucwk_no_err"]
    MAP_SVCUCWK --> MAP_SVCRAISEN["Check SVC_KEI_KAISEN_UCWK_NO_ERR
-> put svc_kei_kaisen_ucwk_no_err"]
    MAP_SVCRAISEN --> MAP_OPSVC["Check OP_SVC_KEI_NO_ERR
-> put op_svc_kei_no_err"]
    MAP_OPSVC --> MAP_SYSID["Check SYSID_ERR
-> put sysid_err"]
    MAP_SYSID --> MAP_MSKM["Check MSKM_DTL_NO_ERR
-> put mskm_dtl_no_err"]
    MAP_MSKM --> MAP_LINKSTB["Check LINK_STB_FLG_ERR
-> put link_stb_flg_err"]
    MAP_LINKSTB --> MAP_SORYO["Check KIKI_SORYO_UM_ERR
-> put kiki_soryo_um_err"]
    MAP_SORYO --> MAP_SAKSEI["Check KIKI_SORYO_SAKSEI_YMD_ERR
-> put kiki_soryo_saksei_ymd_err"]
    MAP_SAKSEI --> MAP_SOHUS_NM["Check KIKI_SOHUS_NM_ERR
-> put kiki_sohus_nm_err"]
    MAP_SOHUS_NM --> MAP_SOHUS_KANA["Check KIKI_SOHUS_KANA_ERR
-> put kiki_sohus_kana_err"]
    MAP_SOHUS_KANA --> MAP_SOHUS_AD["Check KIKI_SOHUS_AD_CD_ERR
-> put kiki_sohus_ad_cd_err"]
    MAP_SOHUS_AD --> MAP_SOHUS_PCD["Check KIKI_SOHUS_PCD_ERR
-> put kiki_sohus_pcd_err"]
    MAP_SOHUS_PCD --> MAP_SOHUS_STATE["Check KIKI_SOHUS_STATE_NM_ERR
-> put kiki_sohus_state_nm_err"]
    MAP_SOHUS_STATE --> MAP_SOHUS_CITY["Check KIKI_SOHUS_CITY_NM_ERR
-> put kiki_sohus_city_nm_err"]
    MAP_SOHUS_CITY --> MAP_SOHUS_OAZTSU["Check KIKI_SOHUS_OAZTSU_NM_ERR
-> put kiki_sohus_oaztsu_nm_err"]
    MAP_SOHUS_OAZTSU --> MAP_SOHUS_AZCHO["Check KIKI_SOHUS_AZCHO_NM_ERR
-> put kiki_sohus_azcho_nm_err"]
    MAP_SOHUS_AZCHO --> MAP_SOHUS_BNCHIGO["Check KIKI_SOHUS_BNCHIGO_ERR
-> put kiki_sohus_bnchigo_err"]
    MAP_SOHUS_BNCHIGO --> MAP_SOHUS_ADRTTM["Check KIKI_SOHUS_ADRTTM_ERR
-> put kiki_sohus_adrttm_err"]
    MAP_SOHUS_ADRTTM --> MAP_SOHUS_ADRRM["Check KIKI_SOHUS_ADRRM_ERR
-> put kiki_sohus_adrrm_err"]
    MAP_SOHUS_ADRRM --> MAP_SOHUS_TEL["Check KIKI_SOHUS_TELNO_ERR
-> put kiki_sohus_telno_err"]
    MAP_SOHUS_TEL --> MAP_MANSION["Check MANSION_BUKKEN_NO_ERR
-> put mansion_bukken_no_err"]
    MAP_MANSION --> MAP_KSH["Check KIKI_SOHUS_KSH_AD_SAI_FLG_ERR
-> put kiki_sohus_ksh_ad_sai_flg_err"]
    MAP_KSH --> MAP_KBT["Check KIKI_SHS_KBT_SHITEI_FLG_ERR
-> put kiki_shs_kbt_shitei_flg_err"]
    MAP_KBT --> MAP_HSK1["Check KIKI_SHS_HSK_CD_1_ERR
-> put kiki_shs_hsk_cd_1_err"]
    MAP_HSK1 --> MAP_HSK2["Check KIKI_SHS_HSK_CD_2_ERR
-> put kiki_shs_hsk_cd_2_err"]
    MAP_HSK2 --> MAP_HSK_MEMO["Check KIKI_SHS_HSK_MEMO_ERR
-> put kiki_shs_hsk_mskm_memo_err"]
    MAP_HSK_MEMO --> MAP_STC_NM["Check KIKI_STC_SAKI_NM_ERR
-> put kiki_stc_saki_nm_err"]
    MAP_STC_NM --> MAP_STC_KANA["Check KIKI_STC_SAKI_KANA_ERR
-> put kiki_stc_saki_kana_err"]
    MAP_STC_KANA --> MAP_STC_AD["Check KIKI_STC_SAKI_AD_CD_ERR
-> put kiki_stc_saki_ad_cd_err"]
    MAP_STC_AD --> MAP_STC_PCD["Check KIKI_STC_SAKI_PCD_ERR
-> put kiki_stc_saki_pcd_err"]
    MAP_STC_PCD --> MAP_STC_STATE["Check KIKI_STC_SAKI_STATE_NM_ERR
-> put kiki_stc_saki_state_nm_err"]
    MAP_STC_STATE --> MAP_STC_CITY["Check KIKI_STC_SAKI_CITY_NM_ERR
-> put kiki_stc_saki_city_nm_err"]
    MAP_STC_CITY --> MAP_STC_OAZTSU["Check KIKI_STC_SAKI_OAZTSU_NM_ERR
-> put kiki_stc_saki_oaztsu_nm_err"]
    MAP_STC_OAZTSU --> MAP_STC_AZCHO["Check KIKI_STC_SAKI_AZCHO_NM_ERR
-> put kiki_stc_saki_azcho_nm_err"]
    MAP_STC_AZCHO --> MAP_STC_BNCHIGO["Check KIKI_STC_SAKI_BNCHIGO_ERR
-> put kiki_stc_saki_bnchigo_err"]
    MAP_STC_BNCHIGO --> MAP_STC_ADRTTM["Check KIKI_STC_SAKI_ADRTTM_ERR
-> put kiki_stc_saki_adrttm_err"]
    MAP_STC_ADRTTM --> MAP_STC_ADRRM["Check KIKI_STC_SAKI_ADRRM_ERR
-> put kiki_stc_saki_adrrm_err"]
    MAP_STC_ADRRM --> MAP_STC_KSH["Check KIKI_STC_SK_KSH_AD_SAI_FLG_ERR
-> put kiki_stc_sk_ksh_ad_sai_flg_err"]
    MAP_STC_KSH --> MAP_STC_TEL["Check KIKI_STC_SK_TELNO_ERR
-> put kiki_stc_sk_telno_err"]
    MAP_STC_TEL --> MAP_STK["Check KIKI_STS_KKK_SEIRI_CHU_FLG_ERR
-> put kiki_sts_kkk_seiri_chu_flg_err"]
    MAP_STK --> MAP_STS_HSK1["Check KIKI_STS_HSK_CD_1_ERR
-> put kiki_sts_hsk_cd_1_err"]
    MAP_STS_HSK1 --> MAP_STS_HSK2["Check KIKI_STS_HSK_CD_2_ERR
-> put kiki_sts_hsk_cd_2_err"]
    MAP_STS_HSK2 --> MAP_STS_MEMO["Check KIKI_STS_HSK_MEMO_ERR
-> put kiki_sts_hsk_memo_err"]
    MAP_STS_MEMO --> MAP_HAISO["Check HAISO_DIV_ERR
-> put haiso_div_err"]
    MAP_HAISO --> MAP_FTRIAL["Check FTRIAL_KANYU_YMD_ERR
-> put ftrial_kanyu_ymd_err"]
    MAP_FTRIAL --> MAP_HONKANYU["Check HONKANYU_YMD_ERR
-> put honkanyu_ymd_err"]
    MAP_HONKANYU --> MAP_HONKANYU_IKO["Check HONKANYU_IKO_KIGEN_YMD_ERR
-> put honkanyu_iko_kigen_ymd_err"]
    MAP_HONKANYU_IKO --> MAP_HOSHO_CD["Check HOSHO_CD_ERR
-> put hosho_cd_err"]
    MAP_HOSHO_CD --> MAP_HOSHO_STAYMD["Check HOSHO_STAYMD_ERR
-> put hosho_staymd_err"]
    MAP_HOSHO_STAYMD --> MAP_PNLTY["Check PNLTY_HASSEI_CD_ERR
-> put pnlty_hassei_cd_err"]
    MAP_PNLTY --> MAP_IDO["Check IDO_DIV_ERR
-> put ido_div_err"]
    MAP_IDO --> MAP_CAS["Check CAS_CARD_USE_KYODAK_YMD_ERR
-> put cas_card_use_kyodak_ymd_err"]
    MAP_CAS --> END_RETURN(["Return param"])
```

**Processing flow summary:**
1. Extract status from template; override to 9000 if `returnCode != 0`
2. Validate that a message lookup key exists for the status; reset to 0 if not
3. Read the BP's current return code from the control map (defaults to -1 if absent)
4. If the template status is more severe than the BP status, set global return code and message on `param`
5. Extract the target `HashMap` from the nested list structure at the given row index
6. Iterate through ~55 independent field-level error mappings — each checks `template.isNull(field)`, and if not null, puts the error string into the map (only if the key does not already exist)

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying screen state, control map data (return code, return message), and the nested data map (`EKK0341D010TvList`) for the TV registration screen. It acts as both input and output — error results are written back into it. |
| 2 | `template` | `CAANMsg` | The CBS/SC response message template populated by the backend Service Component after processing the service contract registration request. Contains error indicator fields (e.g., `KKTK_SVC_CD_ERR`, `PCRS_CD_ERR`, etc.) — each field holds an error message string if the corresponding input was invalid, or is null if valid. |
| 3 | `returnCode` | `int` | A flag from the caller indicating the overall CBS invocation result. If non-zero, the method forces `templateStatus` to 9000 (error state), ensuring that a failed CBS call is reflected in the status comparison logic. |
| 4 | `fixedText` | `String` | The data map key prefix used to retrieve the service registration list from `param`. For TV registration this is `"EKK0341D010Tv"`. It identifies which screen's data map to work with, enabling this method to be reused across multiple screen types. |
| 5 | `index` | `int` | The row index within the `EKK0341D010TvList` ArrayList targeting the specific service contract item row whose errors are being mapped. Used when the screen supports multi-item registration (e.g., adding multiple set-top boxes or service lines). |

**External state / instance fields read:** None. This method is fully stateless — it does not read any instance variables of `JFUAddSvcKeiTvCC`. All state is passed via parameters.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `template.getInt(EKK0341D010CBSMsg.STATUS)` | EKK0341D010CBS | - | Reads status code from the CBS response message template |
| - | `JCMAPLConstMgr.getString(...)` | JCMAPLConstMgr | - | Reads message string from the internationalization constant manager (message lookup) |
| - | `param.getControlMapData(...)` | - | - | Reads control map data (RETURN_CODE) from the request parameter |
| - | `param.setControlMapData(...)` | - | - | Writes RETURN_CODE and RETURN_MESSAGE to the control map |
| - | `param.getData(fixedText)` | - | - | Reads data map from the request parameter (nested HashMap/List structure) |
| - | `template.isNull(...)` | - | - | Reads/null-checks each error field from the CBS response template |
| - | `template.getString(...)` | - | - | Reads error message string from the CBS response template |
| - | `inMap.containsKey(...)` | - | - | Checks if error key already exists in the target map (idempotency guard) |
| - | `inMap.put(...)` | - | - | Writes error message string into the target map for UI display |

**Notes on the method's position in the architecture:** This method is a **pure data transformation layer**. It does not invoke any Service Component (SC) or Business Service (CBS) methods directly. All SC calls (the actual create/update for the service contract registration) were made by the caller (`editErrorInfo` or `editRetEKK0341D010`) before this method was invoked. This method solely reads from the SC response template and writes error display keys into the parameter's data map. The terminal operations are all `isNull` (read) and `getString` (read) from `CAANMsg`, and `put` (write) to a local `HashMap`.

## 5. Dependency Trace

### Direct Callers (from code graph)

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JFUAddSvcKeiTvCC.editErrorInfo()` | `editErrorInfo()` -> `editErrInfoEKK0341D010(param, template, returnCode, fixedText, index)` | `template.getString [R]` (all error fields), `inMap.put [U]` (all error keys) |
| 2 | `JFUAddSvcKeiTvCC.editRetEKK0341D010()` | `editRetEKK0341D010()` -> `editErrInfoEKK0341D010(param, templates[idx], returnCode, "EKK0341D010Tv", i)` (looped for each template) | `template.getString [R]` (all error fields), `inMap.put [U]` (all error keys) |

### Upstream callers of `editErrorInfo()`:
- Called from the CBS handler for screen EKK0341D010 (Device Provision Service Contract Registration) when processing error responses.

### Callers in related files:
- `JFUAddSvcKeiMobCC` has its own overloaded `editErrInfoEKK0341D010(param, template, returnCode, fixedText)` (without `index`) for mobile screen error mapping.
- `JKKAddKktkSvcKeiUtil` has a separate method `editErrInfoEKK0341D010Msg()` that performs the same mapping for K-Opticom TV service contracts.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `returnCode != 0` (L3634)

Status override: If the caller signals a non-zero return code, force the template status to 9000 (error state).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `templateStatus = 9000;` // Override status to error if returnCode is non-zero |

**Block 2** — [IF] `JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus) == null` (L3637)

Message validation: Check if a localized message exists for the current status. If not, reset status to 0 (valid).

| # | Type | Code |
|---|------|------|
| 1 | SET | `formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);` // e.g., "034" -> "034" |
| 2 | EXEC | `message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);` // Lookup message [-> RETURN_MESSAGE_STRING="RETURN_MESSAGE_"] |
| 3 | SET | `templateStatus = 0;` // Reset status if no message key found |

**Block 3** — [IF/ELSE] `obj == null` (L3641)

BP status extraction: Parse the BP's current return code from the control map, defaulting to -1 if not set.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bpStatus = -1;` // Default BP status if not in control map |
| 2 | SET | `bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));` // Parse existing BP status |

**Block 4** — [IF] `templateStatus > bpStatus` (L3648)

Status priority: If the template's status is more severe than the BP's status, set global return code and message on param.

| # | Type | Code |
|---|------|------|
| 1 | SET | `formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);` |
| 2 | EXEC | `message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);` |
| 3 | EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);` // Set return code |
| 4 | EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);` // Set return message |

**Block 5** — [SET/CAST] Nested data extraction (L3655)

Data map extraction: The original extraction and the v1.00.00 override that drills into the nested list structure.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap inMap = (HashMap)param.getData(fixedText);` // Original: get data map by key |
| 2 | SET | `inMap = (HashMap)((ArrayList)((HashMap)param.getData(fixedText)).get("EKK0341D010TvList")).get(index);` // v1.00.00: drill into nested list for specific row [-> fixedText="EKK0341D010Tv"] |

**Block 6 through Block 60** — [IF/IF nested] Error field mapping (L3658–L4195)

Each of the ~55 error field blocks follows the identical pattern: check if the template's error field is non-null, and if so, put the error string into the map (only if the key is not already present). Below are representative blocks grouped by field category.

---

**Block 6** — [IF] `!template.isNull(EKK0341D010CBSMsg.KKTK_SVC_CD_ERR)` — 機器提供サービスコードのエラー (Device Provision Service Code Error) (L3659)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kktk_svc_cd_err"))` // Guard against overwrite |
| 2 | SET | `inMap.put("kktk_svc_cd_err", template.getString(EKK0341D010CBSMsg.KKTK_SVC_CD_ERR));` // Map service code error |

**Block 7** — [IF] `!template.isNull(EKK0341D010CBSMsg.PCRS_CD_ERR)` — 料金コースコードのエラー (Fee Course Code Error) (L3666)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("pcrs_cd_err"))` |
| 2 | SET | `inMap.put("pcrs_cd_err", template.getString(EKK0341D010CBSMsg.PCRS_CD_ERR));` |

**Block 8** — [IF] `!template.isNull(EKK0341D010CBSMsg.PPLAN_CD_ERR)` — 料金プランコードのエラー (Fee Plan Code Error) (L3673)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("pplan_cd_err"))` |
| 2 | SET | `inMap.put("pplan_cd_err", template.getString(EKK0341D010CBSMsg.PPLAN_CD_ERR));` |

**Block 9** — [IF] `!template.isNull(EKK0341D010CBSMsg.HDD_CAPA_CD_ERR)` — HDD容量コードのエラー (HDD Capacity Code Error) (L3680)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("hdd_capa_cd_err"))` |
| 2 | SET | `inMap.put("hdd_capa_cd_err", template.getString(EKK0341D010CBSMsg.HDD_CAPA_CD_ERR));` |

**Block 10** — [IF] `!template.isNull(EKK0341D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR)` — サービス利用開始希望年月日のエラー (Service Start Date Error) (L3687)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("svc_use_sta_kibo_ymd_err"))` |
| 2 | SET | `inMap.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0341D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR));` |

**Block 11** — [IF] `!template.isNull(EKK0341D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR)` — 予約適用開始希望年月日のエラー (Reservation Application Start Date Error) (L3694)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("rsv_tsta_kibo_ymd_err"))` |
| 2 | SET | `inMap.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0341D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR));` |

**Block 12** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIBO_MAKER_CD_ERR)` — 希望メーカーコードのエラー (Desired Manufacturer Code Error) (L3701)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kibo_maker_cd_err"))` |
| 2 | SET | `inMap.put("kibo_maker_cd_err", template.getString(EKK0341D010CBSMsg.KIBO_MAKER_CD_ERR));` |

**Block 13** — [IF] `!template.isNull(EKK0341D010CBSMsg.HAMBAI_SBT_CD_ERR)` — 販売種別コードのエラー (Sales Type Code Error) (L3708)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("hambai_sbt_cd_err"))` |
| 2 | SET | `inMap.put("hambai_sbt_cd_err", template.getString(EKK0341D010CBSMsg.HAMBAI_SBT_CD_ERR));` |

**Block 14** — [IF] `!template.isNull(EKK0341D010CBSMsg.TSUSHIN_KIKI_SET_CD_ERR)` — 通信機器セットコードのエラー (Communication Device Set Code Error) (L3715)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("tsushin_kiki_set_cd_err"))` |
| 2 | SET | `inMap.put("tsushin_kiki_set_cd_err", template.getString(EKK0341D010CBSMsg.TSUSHIN_KIKI_SET_CD_ERR));` |

**Block 15** — [IF] `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_SBT_CD_ERR)` — 家電機器種別コードのエラー (Home Appliance Type Code Error) (L3722)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("taknkiki_sbt_cd_err"))` |
| 2 | SET | `inMap.put("taknkiki_sbt_cd_err", template.getString(EKK0341D010CBSMsg.TAKNKIKI_SBT_CD_ERR));` |

**Block 16** — [IF] `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD_ERR)` — 家電機器型式コードのエラー (Home Appliance Model Code Error) (L3729)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("taknkiki_model_cd_err"))` |
| 2 | SET | `inMap.put("taknkiki_model_cd_err", template.getString(EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD_ERR));` |

**Block 17** — [IF] `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_SETHIN_MODEL_CD_ERR)` — 家電機器セット品型コードのエラー (Home Appliance Set Model Code Error) (L3736)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("taknkiki_sethin_model_cd_err"))` |
| 2 | SET | `inMap.put("taknkiki_sethin_model_cd_err", template.getString(EKK0341D010CBSMsg.TAKNKIKI_SETHIN_MODEL_CD_ERR));` |

**Block 18** — [IF] `!template.isNull(EKK0341D010CBSMsg.HUZOKUHIN_SBT_CD_ERR)` — 付属品种別コードのエラー (Accessory Type Code Error) (L3743)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("huzokuhin_sbt_cd_err"))` |
| 2 | SET | `inMap.put("huzokuhin_sbt_cd_err", template.getString(EKK0341D010CBSMsg.HUZOKUHIN_SBT_CD_ERR));` |

**Block 19** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_PLACE_NO_ERR)` — 機器設置先場所番号のエラー (Device Installation Site Place Number Error) (L3750)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_stc_saki_place_no_err"))` |
| 2 | SET | `inMap.put("kiki_stc_saki_place_no_err", template.getString(EKK0341D010CBSMsg.KIKI_STC_SAKI_PLACE_NO_ERR));` |

**Block 20** — [IF] `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_NO_ERR)` — サービス契約番号のエラー (Service Contract Number Error) (L3757)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("svc_kei_no_err"))` |
| 2 | SET | `inMap.put("svc_kei_no_err", template.getString(EKK0341D010CBSMsg.SVC_KEI_NO_ERR));` |

**Block 21** — [IF] `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_UCWK_NO_ERR)` — サービス契約内訳番号のエラー (Service Contract Detail Number Error) (L3764)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("svc_kei_ucwk_no_err"))` |
| 2 | SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK0341D010CBSMsg.SVC_KEI_UCWK_NO_ERR));` |

**Block 22** — [IF] `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR)` — サービス契約回線内訳番号のエラー (Service Contract Line Detail Number Error) (L3771)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("svc_kei_kaisen_ucwk_no_err"))` |
| 2 | SET | `inMap.put("svc_kei_kaisen_ucwk_no_err", template.getString(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR));` |

**Block 23** — [IF] `!template.isNull(EKK0341D010CBSMsg.OP_SVC_KEI_NO_ERR)` — オプションサービス契約番号のエラー (Optional Service Contract Number Error) (L3778)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("op_svc_kei_no_err"))` |
| 2 | SET | `inMap.put("op_svc_kei_no_err", template.getString(EKK0341D010CBSMsg.OP_SVC_KEI_NO_ERR));` |

**Block 24** — [IF] `!template.isNull(EKK0341D010CBSMsg.SYSID_ERR)` — SYSIDのエラー (System ID Error) (L3785)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("sysid_err"))` |
| 2 | SET | `inMap.put("sysid_err", template.getString(EKK0341D010CBSMsg.SYSID_ERR));` |

**Block 25** — [IF] `!template.isNull(EKK0341D010CBSMsg.MSKM_DTL_NO_ERR)` — 申請明細番号のエラー (Application Detail Number Error) (L3792)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("mskm_dtl_no_err"))` |
| 2 | SET | `inMap.put("mskm_dtl_no_err", template.getString(EKK0341D010CBSMsg.MSKM_DTL_NO_ERR));` |

**Block 26** — [IF] `!template.isNull(EKK0341D010CBSMsg.LINK_STB_FLG_ERR)` — リンクSTBフラグのエラー (Link STB Flag Error) (L3799)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("link_stb_flg_err"))` |
| 2 | SET | `inMap.put("link_stb_flg_err", template.getString(EKK0341D010CBSMsg.LINK_STB_FLG_ERR));` |

**Block 27** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SORYO_UM_ERR)` — 機器送料有無のエラー (Device Shipping Fee Existence Error) (L3806)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_soryo_um_err"))` |
| 2 | SET | `inMap.put("kiki_soryo_um_err", template.getString(EKK0341D010CBSMsg.KIKI_SORYO_UM_ERR));` |

**Block 28** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SORYO_SAKSEI_YMD_ERR)` — 機器送料作成年月日のエラー (Device Shipping Fee Creation Date Error) (L3813)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_soryo_saksei_ymd_err"))` |
| 2 | SET | `inMap.put("kiki_soryo_saksei_ymd_err", template.getString(EKK0341D010CBSMsg.KIKI_SORYO_SAKSEI_YMD_ERR));` |

**Block 29 through Block 34** — 機器送付先 (Device Delivery Destination) fields (L3820–L3881)

Each maps the delivery destination sub-fields from template to inMap.

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 29 | `KIKI_SOHUS_NM_ERR` | `kiki_sohus_nm_err` | 機器送付先名 (Device Delivery Destination Name) |
| 30 | `KIKI_SOHUS_KANA_ERR` | `kiki_sohus_kana_err` | 機器送付先カナ名 (Device Delivery Destination Kana Name) |
| 31 | `KIKI_SOHUS_AD_CD_ERR` | `kiki_sohus_ad_cd_err` | 機器送付先住所コード (Device Delivery Destination Address Code) |
| 32 | `KIKI_SOHUS_PCD_ERR` | `kiki_sohus_pcd_err` | 機器送付先郵便番号 (Device Delivery Destination Postal Code) |
| 33 | `KIKI_SOHUS_STATE_NM_ERR` | `kiki_sohus_state_nm_err` | 機器送付先都道府県名 (Device Delivery Destination Prefecture Name) |
| 34 | `KIKI_SOHUS_CITY_NM_ERR` | `kiki_sohus_city_nm_err` | 機器送付先市区町村名 (Device Delivery Destination City/Town/Village Name) |

Each block follows the same pattern:

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("<key>_err"))` |
| 2 | SET | `inMap.put("<key>_err", template.getString(EKK0341D010CBSMsg.<FIELD>_ERR));` |

**Block 35 through Block 39** — 機器送付先 (Device Delivery Destination) remaining fields (L3888–L3955)

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 35 | `KIKI_SOHUS_OAZTSU_NM_ERR` | `kiki_sohus_oaztsu_nm_err` | 機器送付先大字通称名 (Device Delivery Destination District/Street Name) |
| 36 | `KIKI_SOHUS_AZCHO_NM_ERR` | `kiki_sohus_azcho_nm_err` | 機器送付先字丁目名 (Device Delivery Destination Chome Name) |
| 37 | `KIKI_SOHUS_BNCHIGO_ERR` | `kiki_sohus_bnchigo_err` | 機器送付先番地号 (Device Delivery Destination Block/Lot Number) |
| 38 | `KIKI_SOHUS_ADRTTM_ERR` | `kiki_sohus_adrttm_err` | 機器送付先住所補記・建物名 (Device Delivery Destination Address Building Name) |
| 39 | `KIKI_SOHUS_ADRRM_ERR` | `kiki_sohus_adrrm_err` | 機器送付先住所補記・部屋番号 (Device Delivery Destination Room Number) |

**Block 40** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_TELNO_ERR)` — 機器送付先電話番号のエラー (Device Delivery Destination Phone Number Error) (L3962)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_sohus_telno_err"))` |
| 2 | SET | `inMap.put("kiki_sohus_telno_err", template.getString(EKK0341D010CBSMsg.KIKI_SOHUS_TELNO_ERR));` |

**Block 41** — [IF] `!template.isNull(EKK0341D010CBSMsg.MANSION_BUKKEN_NO_ERR)` — マンション物件番号のエラー (Mansion Property Number Error) (L3969)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("mansion_bukken_no_err"))` |
| 2 | SET | `inMap.put("mansion_bukken_no_err", template.getString(EKK0341D010CBSMsg.MANSION_BUKKEN_NO_ERR));` |

**Block 42** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR)` — 機器送付先_契約者住所差異フラグのエラー (Device Delivery Destination_Contract Address Difference Flag Error) (L3976)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_sohus_ksh_ad_sai_flg_err"))` |
| 2 | SET | `inMap.put("kiki_sohus_ksh_ad_sai_flg_err", template.getString(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR));` |

**Block 43** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR)` — 機器送付先個別指定フラグのエラー (Device Delivery Destination Individual Designation Flag Error) (L3983)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_shs_kbt_shitei_flg_err"))` |
| 2 | SET | `inMap.put("kiki_shs_kbt_shitei_flg_err", template.getString(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR));` |

**Block 44** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_1_ERR)` — 機器送付先補足コード1のエラー (Device Delivery Destination Supplement Code 1 Error) (L3990)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_shs_hsk_cd_1_err"))` |
| 2 | SET | `inMap.put("kiki_shs_hsk_cd_1_err", template.getString(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_1_ERR));` |

**Block 45** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_2_ERR)` — 機器送付先補足コード2のエラー (Device Delivery Destination Supplement Code 2 Error) (L3997)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_shs_hsk_cd_2_err"))` |
| 2 | SET | `inMap.put("kiki_shs_hsk_cd_2_err", template.getString(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_2_ERR));` |

**Block 46** — [IF] `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_MEMO_ERR)` — 機器送付先補足メモのエラー (Device Delivery Destination Supplement Memo Error) (L4004)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if (!inMap.containsKey("kiki_shs_hsk_memo_err"))` |
| 2 | SET | `inMap.put("kiki_shs_hsk_memo_err", template.getString(EKK0341D010CBSMsg.KIKI_SHS_HSK_MEMO_ERR));` |

**Block 47 through Block 54** — 機器設置先 (Device Installation Site) fields (L4011–L4099)

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 47 | `KIKI_STC_SAKI_NM_ERR` | `kiki_stc_saki_nm_err` | 機器設置先名 (Device Installation Site Name) |
| 48 | `KIKI_STC_SAKI_KANA_ERR` | `kiki_stc_saki_kana_err` | 機器設置先カナ名 (Device Installation Site Kana Name) |
| 49 | `KIKI_STC_SAKI_AD_CD_ERR` | `kiki_stc_saki_ad_cd_err` | 機器設置先住所コード (Device Installation Site Address Code) |
| 50 | `KIKI_STC_SAKI_PCD_ERR` | `kiki_stc_saki_pcd_err` | 機器設置先郵便番号 (Device Installation Site Postal Code) |
| 51 | `KIKI_STC_SAKI_STATE_NM_ERR` | `kiki_stc_saki_state_nm_err` | 機器設置先都道府県名 (Device Installation Site Prefecture Name) |
| 52 | `KIKI_STC_SAKI_CITY_NM_ERR` | `kiki_stc_saki_city_nm_err` | 機器設置先市区町村名 (Device Installation Site City/Town/Village Name) |
| 53 | `KIKI_STC_SAKI_OAZTSU_NM_ERR` | `kiki_stc_saki_oaztsu_nm_err` | 機器設置先大字通称名 (Device Installation Site District/Street Name) |
| 54 | `KIKI_STC_SAKI_AZCHO_NM_ERR` | `kiki_stc_saki_azcho_nm_err` | 機器設置先字丁目名 (Device Installation Site Chome Name) |

**Block 55 through Block 60** — 機器設置先 (Device Installation Site) remaining fields + additional fields (L4106–L4195)

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 55 | `KIKI_STC_SAKI_BNCHIGO_ERR` | `kiki_stc_saki_bnchigo_err` | 機器設置先番地号 (Device Installation Site Block/Lot Number) |
| 56 | `KIKI_STC_SAKI_ADRTTM_ERR` | `kiki_stc_saki_adrttm_err` | 機器設置先住所補記・建物名 (Device Installation Site Building Name) |
| 57 | `KIKI_STC_SAKI_ADRRM_ERR` | `kiki_stc_saki_adrrm_err` | 機器設置先住所補記・部屋番号 (Device Installation Site Room Number) |
| 58 | `KIKI_STC_SK_KSH_AD_SAI_FLG_ERR` | `kiki_stc_sk_ksh_ad_sai_flg_err` | 機器設置先_契約者住所差異フラグ (Device Installation Site_Contract Address Difference Flag) |
| 59 | `KIKI_STC_SK_TELNO_ERR` | `kiki_stc_sk_telno_err` | 機器設置先電話番号 (Device Installation Site Phone Number) |
| 60 | `KIKI_STS_KKK_SEIRI_CHU_FLG_ERR` | `kiki_sts_kkk_seiri_chu_flg_err` | 機器設置先区分整理中フラグ (Device Installation Site Classification Sorting Flag) |

**Block 61 through Block 67** — Additional contract/financial fields (L4184–L4195)

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 61 | `KIKI_STS_HSK_CD_1_ERR` | `kiki_sts_hsk_cd_1_err` | 機器設置先補足コード1 (Device Installation Site Supplement Code 1) |
| 62 | `KIKI_STS_HSK_CD_2_ERR` | `kiki_sts_hsk_cd_2_err` | 機器設置先補足コード2 (Device Installation Site Supplement Code 2) |
| 63 | `KIKI_STS_HSK_MEMO_ERR` | `kiki_sts_hsk_memo_err` | 機器設置先補足メモ (Device Installation Site Supplement Memo) |
| 64 | `HAISO_DIV_ERR` | `haiso_div_err` | 配送区分 (Delivery Type) |
| 65 | `FTRIAL_KANYU_YMD_ERR` | `ftrial_kanyu_ymd_err` | 試追加年月日 (Trial Addition Date) |
| 66 | `HONKANYU_YMD_ERR` | `honkanyu_ymd_err` | 本追加年月日 (Actual Addition Date) |
| 67 | `HONKANYU_IKO_KIGEN_YMD_ERR` | `honkanyu_iko_kigen_ymd_err` | 本追加移行期限年月日 (Actual Addition Migration Deadline Date) |

**Block 68 through Block 72** — Guarantee/penalty fields (L4195–L4205)

| Block | Template Field | Map Key | Japanese Description |
|-------|---------------|---------|---------------------|
| 68 | `HOSHO_CD_ERR` | `hosho_cd_err` | 保証コード (Guarantee Code) |
| 69 | `HOSHO_STAYMD_ERR` | `hosho_staymd_err` | 保証開始年月日 (Guarantee Start Date) |
| 70 | `PNLTY_HASSEI_CD_ERR` | `pnlty_hassei_cd_err` | 違約金発生コード (Penalty Occurrence Code) |
| 71 | `IDO_DIV_ERR` | `ido_div_err` | 異動区分 (Transfer Type) |
| 72 | `CAS_CARD_USE_KYODAK_YMD_ERR` | `cas_card_use_kyodak_ymd_err` | CASカード使用许诺年月日 (CAS Card Usage Contract Date) |

**Block 73** — [RETURN] (L4205)

Return the modified param object with all error fields mapped.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param;` // Return param with mapped error messages |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `EKK0341D010` | Screen Code | Device Provision Service Contract Registration screen — a TV/multichannel service registration form in the K-Opticom eo Customer System |
| `JFUAddSvcKeiTvCC` | Class | TV-specific Service Contract Registration Common Component — handles common processing for TV service contract registration |
| `CAANMsg` | Technical | Fujitsu's message object used to pass request/response data between layers; supports `getString()`, `isNull()`, `getInt()` methods |
| `IRequestParameterReadWrite` | Interface | Request parameter interface providing `getData()`, `getControlMapData()`, `setControlMapData()` for screen state management |
| `KKTK_SVC_CD` | Field | K-Opticom TV Service Code — identifies the specific TV service being registered |
| `PCRS_CD` | Field | Price Course Code — the pricing plan/course for the service |
| `PPLAN_CD` | Field | Price Plan Code — the detailed pricing plan within a course |
| `HDD_CAPA_CD` | Field | HDD Capacity Code — specifies the hard disk drive capacity option for the recorder |
| `SVC_USE_STA_KIBO_YMD` | Field | Service Usage Start Desire Date — the customer's desired service activation date (YYYYMMDD) |
| `RSV_TSTA_KIBO_YMD` | Field | Reservation Application Start Desire Date — the date when reservation-based application should begin |
| `KIBO_MAKER_CD` | Field | Desired Manufacturer Code — the customer's preferred equipment manufacturer |
| `HAMBAI_SBT_CD` | Field | Sales Type Code — classifies the sales channel/type (e.g., direct, partner) |
| `TSUSHIN_KIKI_SET_CD` | Field | Communication Device Set Code — identifies bundled communication equipment |
| `TAKNKIKI_SBT_CD` | Field | Home Appliance Type Code — classifies the type of home appliance |
| `TAKNKIKI_MODEL_CD` | Field | Home Appliance Model Code — the specific model of the home appliance |
| `TAKNKIKI_SETHIN_MODEL_CD` | Field | Home Appliance Set Model Code — model code for the appliance set bundle |
| `FUZOKUHIN_SBT_CD` | Field | Accessory Type Code — classifies included accessories |
| `KIKI_STC_SAKI` | Field Prefix | Device Installation Site — all fields prefixed with this relate to where the equipment will be installed |
| `KIKI_SOHUS` | Field Prefix | Device Delivery Destination — all fields prefixed with this relate to where the equipment will be shipped |
| `KIKI_SHS` | Field Prefix | Device Shipment Supplement — supplementary fields for device delivery |
| `KIKI_STS` | Field Prefix | Device Installation Site Supplement — supplementary fields for installation site |
| `svc_kei_no` | Field | Service Contract Number — the unique identifier for the service contract |
| `svc_kei_ucwk_no` | Field | Service Contract Detail Work Number — internal tracking ID for service contract line items |
| `svc_kei_kaisen_ucwk_no` | Field | Service Contract Line Detail Work Number — tracking ID for service contract line details |
| `op_svc_kei_no` | Field | Optional Service Contract Number — identifies optional/add-on service contracts |
| `SYSID` | Field | System ID — the system identifier for the service registration |
| `MSKM_DTL_NO` | Field | Application Detail Number — unique number for application detail records |
| `LINK_STB_FLG` | Field | Link STB Flag — flag indicating whether the set-top box is linked (e.g., bundled with another service) |
| `KIKI_SORYO_UM` | Field | Device Shipping Fee Existence — indicates whether shipping fees apply |
| `KIKI_SORYO_SAKSEI_YMD` | Field | Device Shipping Fee Creation Date — the date shipping fee records were created |
| `KIKI_SOHUS_NM` | Field | Device Delivery Destination Name — full name for equipment delivery |
| `KIKI_SOHUS_KANA` | Field | Device Delivery Destination Kana Name — phonetic name in Kana for delivery |
| `KIKI_SOHUS_AD_CD` | Field | Device Delivery Destination Address Code — address code for delivery location |
| `KIKI_SOHUS_PCD` | Field | Device Delivery Destination Postal Code — postal code for delivery |
| `KIKI_SOHUS_STATE_NM` | Field | Device Delivery Destination Prefecture Name — prefecture for delivery |
| `KIKI_SOHUS_CITY_NM` | Field | Device Delivery Destination City/Town/Village Name — city/town/village for delivery |
| `KIKI_SOHUS_OAZTSU_NM` | Field | Device Delivery Destination District/Street Name — large district name for delivery |
| `KIKI_SOHUS_AZCHO_NM` | Field | Device Delivery Destination Chome Name — chome/block name for delivery |
| `KIKI_SOHUS_BNCHIGO` | Field | Device Delivery Destination Block/Lot Number — lot/block number for delivery |
| `KIKI_SOHUS_ADRTTM` | Field | Device Delivery Destination Address Building Name — supplementary address (building name) |
| `KIKI_SOHUS_ADRRM` | Field | Device Delivery Destination Room Number — room number for delivery |
| `KIKI_SOHUS_TELNO` | Field | Device Delivery Destination Phone Number — contact phone for delivery |
| `MANSION_BUKKEN_NO` | Field | Mansion Property Number — property/building identifier for apartment deliveries |
| `KIKI_SOHUS_KSH_AD_SAI_FLG` | Field | Device Delivery Destination_Contract Address Difference Flag — indicates if delivery address differs from contract address |
| `KIKI_SHS_KBT_SHITEI_FLG` | Field | Device Delivery Destination Individual Designation Flag — indicates individual delivery designation |
| `KIKI_SHS_HSK_CD` | Field | Device Delivery Destination Supplement Code — supplementary delivery codes |
| `KIKI_SHS_HSK_MEMO` | Field | Device Delivery Destination Supplement Memo — supplementary delivery memo |
| `KIKI_STC_SAKI_NM` | Field | Device Installation Site Name — name for equipment installation |
| `KIKI_STC_SAKI_KANA` | Field | Device Installation Site Kana Name — Kana name for installation site |
| `KIKI_STC_SAKI_AD_CD` | Field | Device Installation Site Address Code — address code for installation |
| `KIKI_STC_SAKI_PCD` | Field | Device Installation Site Postal Code — postal code for installation |
| `KIKI_STC_SAKI_STATE_NM` | Field | Device Installation Site Prefecture Name — prefecture for installation |
| `KIKI_STC_SAKI_CITY_NM` | Field | Device Installation Site City/Town/Village Name — city/town/village for installation |
| `KIKI_STC_SAKI_OAZTSU_NM` | Field | Device Installation Site District/Street Name — district name for installation |
| `KIKI_STC_SAKI_AZCHO_NM` | Field | Device Installation Site Chome Name — chome name for installation |
| `KIKI_STC_SAKI_BNCHIGO` | Field | Device Installation Site Block/Lot Number — lot number for installation |
| `KIKI_STC_SAKI_ADRTTM` | Field | Device Installation Site Building Name — building name for installation |
| `KIKI_STC_SAKI_ADRRM` | Field | Device Installation Site Room Number — room number for installation |
| `KIKI_STC_SK_KSH_AD_SAI_FLG` | Field | Device Installation Site_Contract Address Difference Flag — indicates if installation address differs from contract address |
| `KIKI_STC_SK_TELNO` | Field | Device Installation Site Phone Number — contact phone for installation |
| `KIKI_STS_KKK_SEIRI_CHU_FLG` | Field | Device Installation Site Classification Sorting Flag — indicates sorting in progress for classification |
| `HOSHO_CD` | Field | Guarantee Code — type of financial guarantee |
| `HOSHO_STAYMD` | Field | Guarantee Start Date — date the guarantee begins (YYYYMMDD) |
| `PNLTY_HASSEI_CD` | Field | Penalty Occurrence Code — indicates penalty fee conditions |
| `IDO_DIV` | Field | Transfer Type — classifies the type of service transfer/change |
| `CAS_CARD_USE_KYODAK_YMD` | Field | CAS Card Usage Contract Date — date for CAS (Common Address System) card usage agreement |
| `HAISO_DIV` | Field | Delivery Type — classification of delivery method |
| `FTRIAL_KANYU_YMD` | Field | Trial Addition Date — date for trial/sandbox addition |
| `HONKANYU_YMD` | Field | Actual Addition Date — date for actual service activation (YYYYMMDD) |
| `HONKANYU_IKO_KIGEN_YMD` | Field | Actual Addition Migration Deadline Date — deadline for migration from trial to actual (YYYYMMDD) |
| `RETURN_MESSAGE_STRING` | Constant | Message lookup key prefix — `"RETURN_MESSAGE_"`, used to construct internationalization keys for status messages |
| `RETURN_MESSAGE_FORMAT` | Constant | Format string for constructing return message keys with status code |
| `SCControlMapKeys.RETURN_CODE` | Constant | Control map key for return code — used to read/write status between screen and processing |
| `SCControlMapKeys.RETURN_MESSAGE` | Constant | Control map key for return message — used to read/write error messages between screen and processing |
| `EKK0341D010Tv` | Constant | Data map key prefix for TV registration — identifies the TV-specific data map in the request parameter |
| `EKK0341D010TvList` | Key | Nested list key within the data map — holds an ArrayList of per-item HashMaps for multi-line service registration |
| `EKK0341D010CBS` | Class | CBS (Common Business Service) message constant class for screen EKK0341D010 — defines all field key constants |
| `EKK0341D010CBSMsg.STATUS` | Constant | Status field key in the CBS response message |
| EO TV | Business term | K-Opticom's fiber-to-the-home (FTTH) television and internet service — the service domain for this registration screen |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband delivery method used by K-Opticom |
| STB | Business term | Set-Top Box — the decoder equipment for TV service |
| ACAS | Business term | Advanced Conditional Access System — digital rights management for TV content (introduced in v39.00.00 for 4K STB support) |
| v1.00.00 | Version | Version 1.00.00 — added error info mapping for the nested list structure (No708 bug fix, 2013/04/23) |
