# Business Logic — JFUAddKktSvcKeiCC.editErrInfoEKK0341D010Msg() [693 LOC]

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

## 1. Role

### JFUAddKktSvcKeiCC.editErrInfoEKK0341D010Msg()

This method is the centralized error-information mapper for the EKK0341 service contract registration screen family (機材提供サービス — Equipment Provisioning Service). After a CBS (Component-Based Service) call returns with error data encoded in a `CAANMsg` template, this method bridges the raw template fields into the request parameter map so the screen can display validation messages to the end user. It performs four distinct responsibilities: (1) status code validation and escalation — overriding the template status to 9000 when a non-zero return code indicates a business-level failure, (2) BP-level return code comparison — determining whether the CBS error severity warrants surfacing the message to the user, (3) field-level error transfer — iteratively copying up to 66 individual error fields from the template into a target `HashMap` keyed by the `fixedText` prefix (e.g., `EKK0341D010Onu` or `EKK0341D010Vonu`), and (4) message resolution — looking up human-readable Japanese error text via `JCMAPLConstMgr` using the template status as a format key. The method implements a **delegation** design pattern: it is a private utility called by `editErrorInfo()` (which processes both ONU and VONU registration data) and `editOutEKK0341D010()`, serving as a shared error-mapping primitive across multiple entry points in the FTTH equipment provisioning domain.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editErrInfoEKK0341D010Msg"])
    
    START --> GetStatus["Get template STATUS field"]
    GetStatus --> CheckReturnCode{"returnCode != 0?"}
    CheckReturnCode -->|true| SetStatus9000["Set templateStatus = 9000"]
    CheckReturnCode -->|false| CheckMsg["Check message in JCMAPLConstMgr"]
    SetStatus9000 --> CheckMsg
    
    CheckMsg -->|lookup is null| ResetStatus["Set templateStatus = 0"]
    CheckMsg -->|lookup exists| GetBpStatus["Read BP return code from control map"]
    ResetStatus --> GetBpStatus
    
    GetBpStatus --> ParseBpStatus{"obj == null?"}
    ParseBpStatus -->|true| SetBpNeg1["Set bpStatus = -1"]
    ParseBpStatus -->|false| parseIntBp["Parse bpStatus from String"]
    SetBpNeg1 --> CompareStatus
    parseIntBp --> CompareStatus
    
    CompareStatus{"templateStatus > bpStatus?"}
    CompareStatus -->|false| GetMap["Get HashMap from param.getData(fixedText)"]
    CompareStatus -->|true| SetReturn["Set RETURN_CODE and RETURN_MESSAGE on param"]
    SetReturn --> GetMap
    
    GetMap --> ProcessFields["Loop: copy error fields from template to inMap"]
    
    ProcessFields --> FieldCheck{"template has err field?"}
    FieldCheck -->|yes| FieldPut["inMap.put(key, template.getString())"]
    FieldCheck -->|no| SkipField["Skip (field not present)"]
    FieldPut --> NextField{"More fields?"}
    SkipField --> NextField
    NextField -->|yes| FieldCheck
    NextField -->|no| END_NODE["Return param"]
```

**CRITICAL — Constant Resolution:**

| Constant | Resolved Value | Source | Business Meaning |
|----------|---------------|--------|-----------------|
| `RETURN_MESSAGE_STRING` | `"RETURN_MESSAGE_"` | `JFUAddKktSvcKeiCC.java:L89` (private static final) | Prefix used to build message lookup keys in the `JCMAPLConstMgr` |
| `RETURN_MESSAGE_FORMAT` | `"%1$04d"` | Inherited from common constant pattern | Zero-padded 4-digit format string (e.g., `RETURN_MESSAGE_0001`) |
| `SCControlMapKeys.RETURN_CODE` | key string | Framework constant | Control map key for storing the screen-level return code |
| `SCControlMapKeys.RETURN_MESSAGE` | key string | Framework constant | Control map key for storing the resolved error message text |
| `SCControlMapKeys.ERROR_INFO` | key string | Framework constant | Control map key for storing accumulated error info list |

The method processes **66 distinct error fields**, each following the same pattern: check if the template has a non-null value for the field (using the `*_ERR` suffix variant), then copy it into the target `HashMap` only if the target key does not already exist (defensive — preserves existing values from prior mappings).

The 66 error fields fall into these business categories:
- **Service codes**: `KKTK_SVC_CD_ERR`, `PCRS_CD_ERR`, `PPLAN_CD_ERR`
- **Equipment codes**: `KKTK_SBT_CD_ERR`, `HDD_CAPA_CD_ERR`, `KIBO_MAKER_CD_ERR`, `HAMBAI_SBT_CD_ERR`
- **Desired start dates**: `SVC_USE_STA_KIBO_YMD_ERR`, `RSV_TSTA_KIBO_YMD_ERR`
- **Telecom equipment set codes**: `TSUSHIN_KIKI_SET_CD_ERR`
- **Indoor equipment**: `TAKNKIKI_SBT_CD_ERR`, `TAKNKIKI_MODEL_CD_ERR`, `TAKNKIKI_SETHIN_MODEL_CD_ERR`
- **Accessories**: `HUZOKUHIN_SBT_CD_ERR`
- **Installation location** (設置先): `KIKI_STC_SAKI_PLACE_NO_ERR` and 10 address sub-fields, name/kana, phone
- **Delivery destination** (配送先): `KIKI_SOHUS_*` — name, kana, address, phone (same structure as installation)
- **Mansion info**: `MANSION_BUKKEN_NO_ERR`
- **Contractor address mismatch flags**: `KIKI_SOHUS_KSH_AD_SAI_FLG_ERR`, `KIKI_STC_SK_KSH_AD_SAI_FLG_ERR`
- **Service contract identifiers**: `SVC_KEI_NO_ERR`, `SVC_KEI_UCWK_NO_ERR`, `SVC_KEI_KAISEN_UCWK_NO_ERR`, `OP_SVC_KEI_NO_ERR`
- **System/Reference IDs**: `SYSID_ERR`, `MSKM_DTL_NO_ERR`, `LINK_STB_FLG_ERR`
- **Billing-related**: `KIKI_SORYO_*` (equipment delivery charges — um, ymd, name, kana, address, phone)
- **Supplementary codes for both destinations**: `KIKI_SHS_HSK_*`, `KIKI_STC_STS_HSK_*`
- **Delivery/timing**: `HAISO_DIV_ERR`, `FTRIAL_KANYU_YMD_ERR`, `HONKANYU_YMD_ERR`, `HONKANYU_IKO_KIGEN_YMD_ERR`
- **Guarantee/penalty**: `HOSHO_CD_ERR`, `HOSHO_STAYMD_ERR`, `PNLTY_HASSEI_CD_ERR`
- **Migration**: `IDO_DIV_ERR`
- **CAS card**: `CAS_CARD_USE_KYODAK_YMD_ERR`
- **Equipment specifics** (added 2012/05/07 for service interface integration): `KIKI_SEIZO_NO_ERR` (serial number), `KIKI_ITENS_MV_JSSIS_SKCD_ERR` (migration provider code), `HAISO_REQ_SHITEI_YMD_ERR` (delivery request date), `UPD_DTM_BF_ERR` (pre-update timestamp)
- **Manual input flag**: `KIKI_SHS_AD_MAN_INPUT_FLG_ERR`

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying screen data across the MVC pipeline. Contains the target `HashMap` (retrieved via `param.getData(fixedText)`) where error values are written, and the control map where `RETURN_CODE` and `RETURN_MESSAGE` are set for screen display. The `fixedText` parameter determines which data map slot is targeted (e.g., `"EKK0341D010Onu"` for ONU registration or `"EKK0341D010Vonu"` for VONU registration). |
| 2 | `template` | `CAANMsg` | The CBS response message containing error field values. Populated by the CBS layer (`EKK0341D010CBS`) after validation or service processing. Each `*_ERR` field holds an error value or is null if the field is valid. The `STATUS` field indicates the CBS return status code (e.g., 0 for success, non-zero for specific error conditions). |
| 3 | `returnCode` | `int` | Business return code from the CBS call. When non-zero, it signals that a business-level failure occurred, and the method forces `templateStatus` to `9000` — a catch-all error status that ensures the highest-severity message is surfaced regardless of the template's native status. When zero, the method respects the template's own status value for comparison. |
| 4 | `fixedText` | `String` | A string key identifying which data map to populate. Values are `"EKK0341D010Onu"` (for equipment provisioning service ONU contract registration) or `"EKK0341D010Vonu"` (for VONU contract registration). This allows the same method to serve both ONU and VONU error mapping by targeting different map slots in the request parameter. |

**External state / instance fields read:**
- None directly — this method is fully stateless, relying entirely on its parameters and external lookups.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `EKK0341D010CBSMsg.getInt` | EKK0341D010CBS | - | Reads `STATUS` field from CBS response message template |
| - | `JCMAPLConstMgr.getString` | JCMAPLConstMgr | - | Looks up localized error message text using concatenated key (`"RETURN_MESSAGE_" + formatStatus`) |
| - | `String.format` | String | - | Formats templateStatus as zero-padded 4-digit string (e.g., `0001`) |
| - | `param.getControlMapData` | - | - | Reads BP-level return code from the control map |
| - | `Integer.parseInt` | - | - | Parses BP return code string to integer for comparison |
| - | `param.setControlMapData` | - | - | Writes `RETURN_CODE` and `RETURN_MESSAGE` to control map for screen display |
| - | `param.getData` | - | - | Retrieves target `HashMap` identified by `fixedText` key |
| - | `template.isNull` | - | - | Checks if each error field contains a non-null value |
| - | `HashMap.containsKey` | - | - | Defensive check — only writes error value if target key is not already present |
| - | `template.getString` | - | - | Extracts the string value from the template's error field |
| - | `HashMap.put` | - | - | Writes error field value into target map with lowercase key |
| - | `param.setControlMapData` | SCControlMapKeys | - | Sets `ERROR_INFO` list on control map (called by caller `editErrorInfo`) |

### Field-level error transfer summary:

The method does **not** directly call any SC or CBS layer methods. It is a pure data mapper that operates on the `CAANMsg` template returned by CBS and the `IRequestParameterReadWrite` parameter object. The CBS (`EKK0341D010CBS`) is called by the caller (e.g., `editErrorInfo`) before this method is invoked — this method receives the result as the `template` parameter. The entity/DB tables involved in the overall flow are those accessed by `EKK0341D010CBS` (the CBS layer), which typically operate on `KK_T_SVC_KEI_*` and related service contract tables.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Class: `JFUAddKktSvcKeiCC.editErrorInfo()` | `editErrorInfo(param, templates[], returnCode)` → `editErrInfoEKK0341D010Msg(param, template[idx], returnCode, "EKK0341D010Onu")` + `editErrInfoEKK0341D010Msg(param, template[idx+1], returnCode, "EKK0341D010Vonu")` | `EKK0341D010CBS [R] KK_T_SVC_KEI_* (via template)` |
| 2 | Class: `JFUAddKktSvcKeiCC.editOutEKK0341D010()` | `editOutEKK0341D010()` → `editErrInfoEKK0341D010Msg(param, template, returnCode, fixedText)` | `EKK0341D010CBS [R] KK_T_SVC_KEI_* (via template)` |

**Call chain details:**

- `editErrorInfo()` is the primary entry point. It handles both ONU and VONU registration data by iterating over a template array, calling `editErrInfoEKK0341D010Msg` once per registration type. The `fixedText` argument distinguishes ONU (`"EKK0341D010Onu"`) from VONU (`"EKK0341D010Vonu"`), and both target different `HashMap` data slots in the request parameter.

- `editOutEKK0341D010()` calls this method for out-bound error mapping (likely for service changes or cancellations where error data flows out to the screen).

The method is a leaf-level utility — it calls no other service, CBS, or data access methods. Its only external interaction is through the `JCMAPLConstMgr` for message text resolution and the `CAANMsg` template / `IRequestParameterReadWrite` for data reading and writing.

## 6. Per-Branch Detail Blocks

### Block 1 — IF (template status check with returnCode) (L1824)

> Determines effective status: if a non-zero returnCode was passed, force status to 9000 (universal business error).

| # | Type | Code |
|---|------|------|
| 1 | SET | `int templateStatus = template.getInt(EKK0341D010CBSMsg.STATUS)` |
| 2 | IF | `if (returnCode != 0)` [returnCode is non-zero business error] |
| 3 | SET | `templateStatus = 9000` // Override to universal error [-> 9000] |

### Block 2 — IF (message existence validation) (L1830)

> Validates that a message text exists for the current templateStatus in the constant manager. If no message exists, reset status to 0 (safe default).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)) == null)` [RETURN_MESSAGE_STRING="RETURN_MESSAGE_", RETURN_MESSAGE_FORMAT="%1$04d"] |
| 2 | SET | `templateStatus = 0` // Reset to success/default status [-> 0] |

### Block 3 — IF/ELSE (BP return code parsing) (L1837)

> Reads the BP (business process) level return code from the control map. If null, defaults to -1 (meaning "no BP error yet"). Otherwise parses the string to an integer.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int bpStatus = 0` [-> 0] |
| 2 | SET | `Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE)` |
| 3 | IF | `if (obj == null)` |
| 4 | SET | `bpStatus = -1` // No BP return code set yet [-> -1] |
| 5 | ELSE | `bpStatus = Integer.parseInt((String) param.getControlMapData(SCControlMapKeys.RETURN_CODE))` |

### Block 4 — IF (status comparison — decide whether to set return info) (L1845)

> If the template's effective status exceeds the BP's current return code, set the return code and resolved message text on the control map. This ensures only messages at or above the BP's current error threshold are surfaced.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (templateStatus > bpStatus)` |
| 2 | SET | `String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus)` ["%1$04d"] |
| 3 | SET | `String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus)` [-> "RETURN_MESSAGE_" + formatStatus] |
| 4 | EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)` |
| 5 | EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)` |

### Block 5 — SET (get target HashMap) (L1854)

> Retrieves the target HashMap where error fields will be written. The `fixedText` parameter determines which map slot (ONU or Vonu registration data area).

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap inMap = (HashMap)(param.getData(fixedText))` |

### Blocks 6–71 — IF (copy each error field from template to inMap) (L1857–L2485)

> Each block follows the same pattern: if the template has a non-null value for a specific `*_ERR` field, and the target map does not already contain the lowercase key, copy the value from the template into the map. This is a defensive copy — existing values in the map are preserved (no overwrite).

The blocks are organized by business category. Each has the identical structure:

```
IF: template.isNull(EKK0341D010CBSMsg.<FIELD>_ERR)
  └─ IF: !inMap.containsKey("<lowercase_field>_err")
       └─ EXEC: inMap.put("<lowercase_field>_err", template.getString(EKK0341D010CBSMsg.<FIELD>_ERR))
```

**Block 6 — Service Code Errors (L1857–L1905)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KKTK_SVC_CD_ERR)` [Provider Service Code] |
| 2 | IF | `!inMap.containsKey("kktk_svc_cd_err")` |
| 3 | EXEC | `inMap.put("kktk_svc_cd_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.PCRS_CD_ERR)` [Contract Code] |
| 5 | IF | `!inMap.containsKey("pcrs_cd_err")` |
| 6 | EXEC | `inMap.put("pcrs_cd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.PPLAN_CD_ERR)` [Plan Code] |
| 8 | IF | `!inMap.containsKey("pplan_cd_err")` |
| 9 | EXEC | `inMap.put("pplan_cd_err", template.getString(...))` |

**Block 7 — Equipment & Service Type Errors (L1914–L1983)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KKTK_SBT_CD_ERR)` [Provider Service Type] |
| 2 | IF | `!inMap.containsKey("kktk_sbt_cd_err")` |
| 3 | EXEC | `inMap.put("kktk_sbt_cd_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.HDD_CAPA_CD_ERR)` [HDD Capacity] |
| 5 | IF | `!inMap.containsKey("hdd_capa_cd_err")` |
| 6 | EXEC | `inMap.put("hdd_capa_cd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR)` [Service Start Desired Date] |
| 8 | IF | `!inMap.containsKey("svc_use_sta_kibo_ymd_err")` |
| 9 | EXEC | `inMap.put("svc_use_sta_kibo_ymd_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR)` [Reservation Effective Start Desired Date] |
| 11 | IF | `!inMap.containsKey("rsv_tsta_kibo_ymd_err")` |
| 12 | EXEC | `inMap.put("rsv_tsta_kibo_ymd_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.KIBO_MAKER_CD_ERR)` [Desired Maker] |
| 14 | IF | `!inMap.containsKey("kibo_maker_cd_err")` |
| 15 | EXEC | `inMap.put("kibo_maker_cd_err", template.getString(...))` |
| 16 | IF | `!template.isNull(EKK0341D010CBSMsg.HAMBAI_SBT_CD_ERR)` [Sales Type] |
| 17 | IF | `!inMap.containsKey("hambai_sbt_cd_err")` |
| 18 | EXEC | `inMap.put("hambai_sbt_cd_err", template.getString(...))` |

**Block 8 — Telecom Equipment Set Code (L1992–L2005)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.TSUSHIN_KIKI_SET_CD_ERR)` [Telecom Equipment Set Code] |
| 2 | IF | `!inMap.containsKey("tsushin_kiki_set_cd_err")` |
| 3 | EXEC | `inMap.put("tsushin_kiki_set_cd_err", template.getString(...))` |

**Block 9 — Indoor Equipment Errors (L2014–L2062)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_SBT_CD_ERR)` [Indoor Equipment Type] |
| 2 | IF | `!inMap.containsKey("taknkiki_sbt_cd_err")` |
| 3 | EXEC | `inMap.put("taknkiki_sbt_cd_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD_ERR)` [Indoor Equipment Model] |
| 5 | IF | `!inMap.containsKey("taknkiki_model_cd_err")` |
| 6 | EXEC | `inMap.put("taknkiki_model_cd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.TAKNKIKI_SETHIN_MODEL_CD_ERR)` [Indoor Equipment Parts Model] |
| 8 | IF | `!inMap.containsKey("taknkiki_sethin_model_cd_err")` |
| 9 | EXEC | `inMap.put("taknkiki_sethin_model_cd_err", template.getString(...))` |

**Block 10 — Accessories Type Error (L2071–L2084)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.HUZOKUHIN_SBT_CD_ERR)` [Accessory Type] |
| 2 | IF | `!inMap.containsKey("huzokuhin_sbt_cd_err")` |
| 3 | EXEC | `inMap.put("huzokuhin_sbt_cd_err", template.getString(...))` |

**Block 11 — Installation Location Errors (設置先) (L2093–L2248)**

The installation location (機器設置先) has the most fields — a complete address + name + phone block:

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_PLACE_NO_ERR)` [Installation Location Place Number] |
| 2 | IF | `!inMap.containsKey("kiki_stc_saki_place_no_err")` |
| 3 | EXEC | `inMap.put("kiki_stc_saki_place_no_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_NM_ERR)` [Installation Location Name] |
| 5 | IF | `!inMap.containsKey("kiki_stc_saki_nm_err")` |
| 6 | EXEC | `inMap.put("kiki_stc_saki_nm_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_KANA_ERR)` [Installation Location Kana Name] |
| 8 | IF | `!inMap.containsKey("kiki_stc_saki_kana_err")` |
| 9 | EXEC | `inMap.put("kiki_stc_saki_kana_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_AD_CD_ERR)` [Installation Location Address Code] |
| 11 | IF | `!inMap.containsKey("kiki_stc_saki_ad_cd_err")` |
| 12 | EXEC | `inMap.put("kiki_stc_saki_ad_cd_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_PCD_ERR)` [Installation Location Postal Code] |
| 14 | IF | `!inMap.containsKey("kiki_stc_saki_pcd_err")` |
| 15 | EXEC | `inMap.put("kiki_stc_saki_pcd_err", template.getString(...))` |
| 16 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_STATE_NM_ERR)` [Installation Location Prefecture] |
| 17 | IF | `!inMap.containsKey("kiki_stc_saki_state_nm_err")` |
| 18 | EXEC | `inMap.put("kiki_stc_saki_state_nm_err", template.getString(...))` |
| 19 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_CITY_NM_ERR)` [Installation Location City] |
| 20 | IF | `!inMap.containsKey("kiki_stc_saki_city_nm_err")` |
| 21 | EXEC | `inMap.put("kiki_stc_saki_city_nm_err", template.getString(...))` |
| 22 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_OAZTSU_NM_ERR)` [Installation Location Oaza] |
| 23 | IF | `!inMap.containsKey("kiki_stc_saki_oaztsu_nm_err")` |
| 24 | EXEC | `inMap.put("kiki_stc_saki_oaztsu_nm_err", template.getString(...))` |
| 25 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_AZCHO_NM_ERR)` [Installation Location Chome] |
| 26 | IF | `!inMap.containsKey("kiki_stc_saki_azcho_nm_err")` |
| 27 | EXEC | `inMap.put("kiki_stc_saki_azcho_nm_err", template.getString(...))` |
| 28 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_BNCHIGO_ERR)` [Installation Location Block/Lot Number] |
| 29 | IF | `!inMap.containsKey("kiki_stc_saki_bnchigo_err")` |
| 30 | EXEC | `inMap.put("kiki_stc_saki_bnchigo_err", template.getString(...))` |
| 31 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRTTM_ERR)` [Installation Location Building Name] |
| 32 | IF | `!inMap.containsKey("kiki_stc_saki_adrttm_err")` |
| 33 | EXEC | `inMap.put("kiki_stc_saki_adrttm_err", template.getString(...))` |
| 34 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRRM_ERR)` [Installation Location Room Number] |
| 35 | IF | `!inMap.containsKey("kiki_stc_saki_adrrm_err")` |
| 36 | EXEC | `inMap.put("kiki_stc_saki_adrrm_err", template.getString(...))` |
| 37 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG_ERR)` [Installation Location Contractor Address Mismatch Flag] |
| 38 | IF | `!inMap.containsKey("kiki_stc_sk_ksh_ad_sai_flg_err")` |
| 39 | EXEC | `inMap.put("kiki_stc_sk_ksh_ad_sai_flg_err", template.getString(...))` |
| 40 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SK_TELNO_ERR)` [Installation Location Phone Number] |
| 41 | IF | `!inMap.containsKey("kiki_stc_sk_telno_err")` |
| 42 | EXEC | `inMap.put("kiki_stc_sk_telno_err", template.getString(...))` |

**Block 12 — Delivery Destination Errors (配送先) (L2257–L2432)**

Same structure as installation location (name, kana, address, phone, mismatch flag):

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_NM_ERR)` [Delivery Destination Name] |
| 2 | IF | `!inMap.containsKey("kiki_sohus_nm_err")` |
| 3 | EXEC | `inMap.put("kiki_sohus_nm_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_KANA_ERR)` [Delivery Destination Kana Name] |
| 5 | IF | `!inMap.containsKey("kiki_sohus_kana_err")` |
| 6 | EXEC | `inMap.put("kiki_sohus_kana_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_AD_CD_ERR)` [Delivery Destination Address Code] |
| 8 | IF | `!inMap.containsKey("kiki_sohus_ad_cd_err")` |
| 9 | EXEC | `inMap.put("kiki_sohus_ad_cd_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_PCD_ERR)` [Delivery Destination Postal Code] |
| 11 | IF | `!inMap.containsKey("kiki_sohus_pcd_err")` |
| 12 | EXEC | `inMap.put("kiki_sohus_pcd_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_STATE_NM_ERR)` [Delivery Destination Prefecture] |
| 14 | IF | `!inMap.containsKey("kiki_sohus_state_nm_err")` |
| 15 | EXEC | `inMap.put("kiki_sohus_state_nm_err", template.getString(...))` |
| 16 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_CITY_NM_ERR)` [Delivery Destination City] |
| 17 | IF | `!inMap.containsKey("kiki_sohus_city_nm_err")` |
| 18 | EXEC | `inMap.put("kiki_sohus_city_nm_err", template.getString(...))` |
| 19 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_OAZTSU_NM_ERR)` [Delivery Destination Oaza] |
| 20 | IF | `!inMap.containsKey("kiki_sohus_oaztsu_nm_err")` |
| 21 | EXEC | `inMap.put("kiki_sohus_oaztsu_nm_err", template.getString(...))` |
| 22 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_AZCHO_NM_ERR)` [Delivery Destination Chome] |
| 23 | IF | `!inMap.containsKey("kiki_sohus_azcho_nm_err")` |
| 24 | EXEC | `inMap.put("kiki_sohus_azcho_nm_err", template.getString(...))` |
| 25 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_BNCHIGO_ERR)` [Delivery Destination Block/Lot Number] |
| 26 | IF | `!inMap.containsKey("kiki_sohus_bnchigo_err")` |
| 27 | EXEC | `inMap.put("kiki_sohus_bnchigo_err", template.getString(...))` |
| 28 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_ADRTTM_ERR)` [Delivery Destination Building Name] |
| 29 | IF | `!inMap.containsKey("kiki_sohus_adrttm_err")` |
| 30 | EXEC | `inMap.put("kiki_sohus_adrttm_err", template.getString(...))` |
| 31 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_ADRRM_ERR)` [Delivery Destination Room Number] |
| 32 | IF | `!inMap.containsKey("kiki_sohus_adrrm_err")` |
| 33 | EXEC | `inMap.put("kiki_sohus_adrrm_err", template.getString(...))` |
| 34 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_TELNO_ERR)` [Delivery Destination Phone Number] |
| 35 | IF | `!inMap.containsKey("kiki_sohus_telno_err")` |
| 36 | EXEC | `inMap.put("kiki_sohus_telno_err", template.getString(...))` |
| 37 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR)` [Delivery Destination Contractor Address Mismatch Flag] |
| 38 | IF | `!inMap.containsKey("kiki_sohus_ksh_ad_sai_flg_err")` |
| 39 | EXEC | `inMap.put("kiki_sohus_ksh_ad_sai_flg_err", template.getString(...))` |

**Block 13 — Additional Delivery Fields (L2433–L2485)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR)` [Delivery Destination Individual Designation Flag] |
| 2 | IF | `!inMap.containsKey("kiki_shs_kbt_shitei_flg_err")` |
| 3 | EXEC | `inMap.put("kiki_shs_kbt_shitei_flg_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_1_ERR)` [Delivery Destination Supplementary Code 1] |
| 5 | IF | `!inMap.containsKey("kiki_shs_hsk_cd_1_err")` |
| 6 | EXEC | `inMap.put("kiki_shs_hsk_cd_1_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_2_ERR)` [Delivery Destination Supplementary Code 2] |
| 8 | IF | `!inMap.containsKey("kiki_shs_hsk_cd_2_err")` |
| 9 | EXEC | `inMap.put("kiki_shs_hsk_cd_2_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_MEMO_ERR)` [Delivery Destination Supplementary Memo] |
| 11 | IF | `!inMap.containsKey("kiki_shs_hsk_memo_err")` |
| 12 | EXEC | `inMap.put("kiki_shs_hsk_memo_err", template.getString(...))` |

**Block 14 — Service Contract Identifiers (L2494–L2538)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_NO_ERR)` [Service Contract Number] |
| 2 | IF | `!inMap.containsKey("svc_kei_no_err")` |
| 3 | EXEC | `inMap.put("svc_kei_no_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_UCWK_NO_ERR)` [Service Contract Detail Number] |
| 5 | IF | `!inMap.containsKey("svc_kei_ucwk_no_err")` |
| 6 | EXEC | `inMap.put("svc_kei_ucwk_no_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR)` [Service Contract Line Detail Number] |
| 8 | IF | `!inMap.containsKey("svc_kei_kaisen_ucwk_no_err")` |
| 9 | EXEC | `inMap.put("svc_kei_kaisen_ucwk_no_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.OP_SVC_KEI_NO_ERR)` [Optional Service Contract Number] |
| 11 | IF | `!inMap.containsKey("op_svc_kei_no_err")` |
| 12 | EXEC | `inMap.put("op_svc_kei_no_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.SYSID_ERR)` [System ID] |
| 14 | IF | `!inMap.containsKey("sysid_err")` |
| 15 | EXEC | `inMap.put("sysid_err", template.getString(...))` |
| 16 | IF | `!template.isNull(EKK0341D010CBSMsg.MSKM_DTL_NO_ERR)` [Application Detail Number] |
| 17 | IF | `!inMap.containsKey("mskm_dtl_no_err")` |
| 18 | EXEC | `inMap.put("mskm_dtl_no_err", template.getString(...))` |
| 19 | IF | `!template.isNull(EKK0341D010CBSMsg.LINK_STB_FLG_ERR)` [Link STB Flag] |
| 20 | IF | `!inMap.containsKey("link_stb_flg_err")` |
| 21 | EXEC | `inMap.put("link_stb_flg_err", template.getString(...))` |

**Block 15 — Equipment Delivery Billing Errors (機器送料金) (L2547–L2616)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SORYO_UM_ERR)` [Equipment Delivery Charge Existence] |
| 2 | IF | `!inMap.containsKey("kiki_soryo_um_err")` |
| 3 | EXEC | `inMap.put("kiki_soryo_um_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SORYO_SAKSEI_YMD_ERR)` [Equipment Delivery Charge Creation Date] |
| 5 | IF | `!inMap.containsKey("kiki_soryo_saksei_ymd_err")` |
| 6 | EXEC | `inMap.put("kiki_soryo_saksei_ymd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_NM_ERR)` [Equipment Delivery Destination Name — repeated field alias for billing] |
| 8 | IF | `!inMap.containsKey("kiki_sohus_nm_err")` |
| 9 | EXEC | `inMap.put("kiki_sohus_nm_err", template.getString(...))` |
| 10–21 | IF | Same pattern for: `KIKI_SOHUS_KANA_ERR`, `KIKI_SOHUS_AD_CD_ERR`, `KIKI_SOHUS_PCD_ERR`, `KIKI_SOHUS_STATE_NM_ERR`, `KIKI_SOHUS_CITY_NM_ERR`, `KIKI_SOHUS_OAZTSU_NM_ERR`, `KIKI_SOHUS_AZCHO_NM_ERR`, `KIKI_SOHUS_BNCHIGO_ERR`, `KIKI_SOHUS_ADRTTM_ERR`, `KIKI_SOHUS_ADRRM_ERR`, `KIKI_SOHUS_TELNO_ERR` |

**Block 16 — Mansion & Special Flags (L2625–L2677)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.MANSION_BUKKEN_NO_ERR)` [Mansion Property Number] |
| 2 | IF | `!inMap.containsKey("mansion_bukken_no_err")` |
| 3 | EXEC | `inMap.put("mansion_bukken_no_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG_ERR)` [Delivery Destination Contractor Address Mismatch Flag] |
| 5 | IF | `!inMap.containsKey("kiki_sohus_ksh_ad_sai_flg_err")` |
| 6 | EXEC | `inMap.put("kiki_sohus_ksh_ad_sai_flg_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG_ERR)` [Delivery Destination Individual Designation Flag] |
| 8 | IF | `!inMap.containsKey("kiki_shs_kbt_shitei_flg_err")` |
| 9 | EXEC | `inMap.put("kiki_shs_kbt_shitei_flg_err", template.getString(...))` |

**Block 17 — Delivery Supplementary Codes (L2686–L2730)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_1_ERR)` [Delivery Supplementary Code 1] |
| 2 | IF | `!inMap.containsKey("kiki_shs_hsk_cd_1_err")` |
| 3 | EXEC | `inMap.put("kiki_shs_hsk_cd_1_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_2_ERR)` [Delivery Supplementary Code 2] |
| 5 | IF | `!inMap.containsKey("kiki_shs_hsk_cd_2_err")` |
| 6 | EXEC | `inMap.put("kiki_shs_hsk_cd_2_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_HSK_MEMO_ERR)` [Delivery Supplementary Memo] |
| 8 | IF | `!inMap.containsKey("kiki_shs_hsk_memo_err")` |
| 9 | EXEC | `inMap.put("kiki_shs_hsk_memo_err", template.getString(...))` |

**Block 18 — Installation Supplementary Fields (L2739–L2886)**

Same pattern as delivery — installation location supplementary codes 1, 2, and memo:

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STS_HSK_CD_1_ERR)` [Installation Supplementary Code 1] |
| 2 | IF | `!inMap.containsKey("kiki_sts_hsk_cd_1_err")` |
| 3 | EXEC | `inMap.put("kiki_sts_hsk_cd_1_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STS_HSK_CD_2_ERR)` [Installation Supplementary Code 2] |
| 5 | IF | `!inMap.containsKey("kiki_sts_hsk_cd_2_err")` |
| 6 | EXEC | `inMap.put("kiki_sts_hsk_cd_2_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STS_HSK_MEMO_ERR)` [Installation Supplementary Memo] |
| 8 | IF | `!inMap.containsKey("kiki_sts_hsk_memo_err")` |
| 9 | EXEC | `inMap.put("kiki_sts_hsk_memo_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG_ERR)` [Installation Contractor Address Mismatch Flag] |
| 11 | IF | `!inMap.containsKey("kiki_stc_sk_ksh_ad_sai_flg_err")` |
| 12 | EXEC | `inMap.put("kiki_stc_sk_ksh_ad_sai_flg_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STC_SK_TELNO_ERR)` [Installation Phone Number] |
| 14 | IF | `!inMap.containsKey("kiki_stc_sk_telno_err")` |
| 15 | EXEC | `inMap.put("kiki_stc_sk_telno_err", template.getString(...))` |
| 16 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG_ERR)` [Installation Processing-in-Progress Flag] |
| 17 | IF | `!inMap.containsKey("kiki_sts_kkk_seiri_chu_flg_err")` |
| 18 | EXEC | `inMap.put("kiki_sts_kkk_seiri_chu_flg_err", template.getString(...))` |

**Block 19 — Delivery & Timing Fields (L2895–L2952)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.HAISO_DIV_ERR)` [Delivery Division] |
| 2 | IF | `!inMap.containsKey("haiso_div_err")` |
| 3 | EXEC | `inMap.put("haiso_div_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.FTRIAL_KANYU_YMD_ERR)` [Trial Entry Date] |
| 5 | IF | `!inMap.containsKey("ftrial_kanyu_ymd_err")` |
| 6 | EXEC | `inMap.put("ftrial_kanyu_ymd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.HONKANYU_YMD_ERR)` [Full Entry Date] |
| 8 | IF | `!inMap.containsKey("honkanyu_ymd_err")` |
| 9 | EXEC | `inMap.put("honkanyu_ymd_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR)` [Full Entry Transfer Deadline Date] |
| 11 | IF | `!inMap.containsKey("honkanyu_iko_kigen_ymd_err")` |
| 12 | EXEC | `inMap.put("honkanyu_iko_kigen_ymd_err", template.getString(...))` |

**Block 20 — Guarantee, Penalty & Migration (L2961–L3028)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.HOSHO_CD_ERR)` [Guarantee Code] |
| 2 | IF | `!inMap.containsKey("hosho_cd_err")` |
| 3 | EXEC | `inMap.put("hosho_cd_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.HOSHO_STAYMD_ERR)` [Guarantee Start Date] |
| 5 | IF | `!inMap.containsKey("hosho_staymd_err")` |
| 6 | EXEC | `inMap.put("hosho_staymd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.PNLTY_HASSEI_CD_ERR)` [Penalty Occurrence Code] |
| 8 | IF | `!inMap.containsKey("pnlty_hassei_cd_err")` |
| 9 | EXEC | `inMap.put("pnlty_hassei_cd_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.IDO_DIV_ERR)` [Migration Division] |
| 11 | IF | `!inMap.containsKey("ido_div_err")` |
| 12 | EXEC | `inMap.put("ido_div_err", template.getString(...))` |
| 13 | IF | `!template.isNull(EKK0341D010CBSMsg.CAS_CARD_USE_KYODAK_YMD_ERR)` [CAS Card Usage Agreement Date] |
| 14 | IF | `!inMap.containsKey("cas_card_use_kyodak_ymd_err")` |
| 15 | EXEC | `inMap.put("cas_card_use_kyodak_ymd_err", template.getString(...))` |

**Block 21 — Service Interface Integration Fields (2012/05/07 h.iwamoto) (L3037–L3137)**

Added for service interface integration — new equipment tracking fields:

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SEIZO_NO_ERR)` [Equipment Serial Number] [-> service interface update 2012/05/07] |
| 2 | IF | `!inMap.containsKey("kiki_seizo_no_err")` |
| 3 | EXEC | `inMap.put("kiki_seizo_no_err", template.getString(...))` |
| 4 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD_ERR)` [Equipment Migration Provider Identification Code] |
| 5 | IF | `!inMap.containsKey("kiki_itens_mv_jssis_skcd_err")` |
| 6 | EXEC | `inMap.put("kiki_itens_mv_jssis_skcd_err", template.getString(...))` |
| 7 | IF | `!template.isNull(EKK0341D010CBSMsg.HAISO_REQ_SHITEI_YMD_ERR)` [Delivery Request Designation Date] |
| 8 | IF | `!inMap.containsKey("haiso_req_shitei_ymd_err")` |
| 9 | EXEC | `inMap.put("haiso_req_shitei_ymd_err", template.getString(...))` |
| 10 | IF | `!template.isNull(EKK0341D010CBSMsg.UPD_DTM_BF_ERR)` [Pre-Update Timestamp] |
| 11 | IF | `!inMap.containsKey("upd_dtm_bf_err")` |
| 12 | EXEC | `inMap.put("upd_dtm_bf_err", template.getString(...))` |

**Block 22 — Manual Input Flag (L3146–L3159)**

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0341D010CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG_ERR)` [Delivery Destination Manual Input Flag] |
| 2 | IF | `!inMap.containsKey("kiki_shs_ad_man_input_flg_err")` |
| 3 | EXEC | `inMap.put("kiki_shs_ad_man_input_flg_err", template.getString(...))` |

### Block 72 — RETURN (L3162)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param;` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `KKTK_SVC_CD` | Field | Provider Service Code — the type of equipment provisioning service (e.g., FTTH, cable, satellite) |
| `PCRS_CD` | Field | Contract Code — identifies the service contract type |
| `PPLAN_CD` | Field | Plan Code — the specific service plan / tariff plan selected |
| `KKTK_SBT_CD` | Field | Provider Service Type Code — sub-type classification within the provider service |
| `HDD_CAPA_CD` | Field | HDD Capacity Code — storage capacity classification for recording devices |
| `KIBO_MAKER_CD` | Field | Desired Maker Code — customer's preferred equipment manufacturer |
| `HAMBAI_SBT_CD` | Field | Sales Type Code — how the service is sold (direct, partner, bundle, etc.) |
| `TSUSHIN_KIKI_SET_CD` | Field | Telecom Equipment Set Code — bundle/set classification for telecom equipment |
| `TAKNKIKI_SBT_CD` | Field | Indoor Equipment Type Code — type of indoor unit (e.g., ONU, VONU, set-top box) |
| `TAKNKIKI_MODEL_CD` | Field | Indoor Equipment Model Code — specific model identifier |
| `TAKNKIKI_SETHIN_MODEL_CD` | Field | Indoor Equipment Parts Model Code — component/parts model within the indoor equipment |
| `HUZOKUHIN_SBT_CD` | Field | Accessory Type Code — type of accessories (cables, mounts, adapters) |
| `KIKI_STC_SAKI_*` | Field prefix | Installation Location (設置先) — fields describing where the equipment is physically installed |
| `KIKI_SOHUS_*` | Field prefix | Delivery Destination (配送先) — fields describing where equipment is delivered |
| `KIKI_SORYO_*` | Field prefix | Equipment Delivery Charge (機器送料金) — fields related to delivery fee calculation |
| `KIKI_SHS_*` | Field prefix | Delivery Supplementary (配送先補足) — supplementary codes for delivery destination |
| `KIKI_STC_STS_*` | Field prefix | Installation Supplementary (設置先補足) — supplementary codes for installation location |
| `KIKI_SEIZO_NO` | Field | Equipment Serial Number (機器製造番号) — unique identifier for each piece of equipment |
| `SVC_KEI_NO` | Field | Service Contract Number (サービス契約番号) — primary contract identifier |
| `SVC_KEI_UCWK_NO` | Field | Service Contract Detail Number (サービス契約内訳番号) — line item number within a contract |
| `SVC_KEI_KAISEN_UCWK_NO` | Field | Service Contract Line Detail Number (サービス契約回線内訳番号) — line-specific detail number |
| `OP_SVC_KEI_NO` | Field | Optional Service Contract Number (オプションサービス契約番号) — optional add-on contract ID |
| `SVC_USE_STA_KIBO_YMD` | Field | Service Start Desired Date (サービス利用開始希望年月日) — when the customer wants the service to start |
| `RSV_TSTA_KIBO_YMD` | Field | Reservation Effective Start Desired Date (予約適用開始希望年月日) — when a promotional reservation should take effect |
| `FTRIAL_KANYU_YMD` | Field | Trial Entry Date (試加入年月日) — date of trial/free-trial enrollment |
| `HONKANYU_YMD` | Field | Full Entry Date (本加入年月日) — date of正式 (full) service enrollment |
| `HONKANYU_IKO_KIGEN_YMD` | Field | Full Entry Transfer Deadline Date (本加入移行期限年月日) — deadline for transitioning from trial to full enrollment |
| `HAISO_DIV` | Field | Delivery Division (配送区分) — classification of delivery method (standard, express, scheduled) |
| `IDO_DIV` | Field | Migration Division (異動区分) — migration/change type (new, transfer, upgrade) |
| `HOSHO_CD` | Field | Guarantee Code (保証コード) — warranty/guarantee type code |
| `HOSHO_STAYMD` | Field | Guarantee Start Date (保証開始年月日) — when the warranty period begins |
| `PNLTY_HASSEI_CD` | Field | Penalty Occurrence Code (違約金発生コード) — code indicating early termination or breach |
| `CAS_CARD_USE_KYODAK_YMD` | Field | CAS Card Usage Agreement Date (CASカード使用許諾年月日) — date customer consented to CAS card usage |
| `LINK_STB_FLG` | Field | Link STB Flag (リンクSTBフラグ) — whether a set-top box is linked to the service |
| `KIKI_SORYO_UM` | Field | Equipment Delivery Charge Existence (機器送料有無) — whether delivery charges apply |
| `KIKI_SORYO_SAKSEI_YMD` | Field | Equipment Delivery Charge Creation Date (機器送料金作成年月日) — when delivery charges were calculated |
| `MANSION_BUKKEN_NO` | Field | Mansion Property Number (マンション物件番号) — identifier for multi-unit building properties |
| `KIKI_ITENS_MV_JSSIS_SKCD` | Field | Equipment Migration Provider Identification Code (機器転移先提供者識別コード) — identifies the provider receiving migrated equipment |
| `HAISO_REQ_SHITEI_YMD` | Field | Delivery Request Designation Date (配送依頼指定年月日) — customer-requested delivery date |
| `UPD_DTM_BF` | Field | Pre-Update Timestamp (更新年月日時(更新前)) — timestamp before an update operation, used for optimistic locking |
| `KIKI_SHS_AD_MAN_INPUT_FLG` | Field | Delivery Destination Manual Input Flag (配送先マニュアル入力フラグ) — indicates manual vs. auto-populated address |
| `KIKI_STC_SK_KSH_AD_SAI_FLG` | Field | Installation Location Contractor Address Mismatch Flag (機器設置先_契約者住所差異フラグ) — flags when installation address differs from contractor's address |
| `KIKI_SOHUS_KSH_AD_SAI_FLG` | Field | Delivery Destination Contractor Address Mismatch Flag (機器配送先_契約者住所差異フラグ) — flags when delivery address differs from contractor's address |
| `KIKI_SHS_KBT_SHITEI_FLG` | Field | Delivery Destination Individual Designation Flag (機器配送先個別指定フラグ) — indicates a custom-delivery instruction |
| `KIKI_SHS_HSK_CD_*` | Field | Delivery Supplementary Codes (機器配送先補足コード) — supplementary classification codes for delivery |
| `KIKI_STC_STS_HSK_CD_*` | Field | Installation Supplementary Codes (機器設置先補足コード) — supplementary classification codes for installation |
| `KIKI_STS_KKK_SEIRI_CHU_FLG` | Field | Installation Processing-in-Progress Flag (機器設置先企画整理中フラグ) — flags when installation is being planned/organized |
| SYSID | Field | System ID (システムID) — unique system identifier for audit/tracking |
| `MSKM_DTL_NO` | Field | Application Detail Number (申請明細番号) — detail number within an application |
| Japanese Field Translations | | |
| 機材提供サービス | Business term | Equipment Provisioning Service — FTTH/cable service where the provider supplies installation equipment |
| 機器設置先 | Business term | Installation Location (設備設置先) — physical address where telecom equipment is installed |
| 機器配送先 | Business term | Delivery Destination (機器配送先) — address where equipment is delivered |
| 契約者住所差異 | Business term | Contractor Address Mismatch — when the installation/delivery address differs from the contract holder's registered address |
| 試加入 / 本加入 | Business term | Trial Enrollment / Full Enrollment — two-phase service activation (trial then permanent) |
| 違約金 | Business term | Penalty — early termination fee or breach-of-contract charge |
| 保証 | Business term | Warranty / Guarantee — service warranty coverage |
| 転居 / 異動 | Business term | Migration / Move — customer relocation or service transfer |
| STB | Acronym | Set-Top Box — cable/satellite receiver equipment |
| CAS | Acronym | Conditional Access System — digital rights management for cable/satellite content |
| ONU | Acronym | Optical Network Unit — FTTH customer-premises equipment that terminates fiber optic cable |
| VONU | Acronym | Virtual Optical Network Unit — virtualized ONU for multi-dwelling units (apartments) |
| CBS | Acronym | Component-Based Service — the service layer class that handles business logic and database operations |
| CAANMsg | Acronym | Fujitsu's message template class — structured container for CBS request/response fields |
| SC | Acronym | Service Component — the layer between CBS and the database, typically with naming pattern `EKKxxxxxSC` |
| JCMAPLConstMgr | Class | Japanese Character Map Application Layout Constant Manager — resolves localized message text by key |
| `RETURN_MESSAGE_` | Constant | Prefix for error message lookup keys in JCMAPLConstMgr; appended with zero-padded status code |
| `fixedText` (EKK0341D010Onu) | Parameter value | Map key for ONU equipment provisioning error data |
| `fixedText` (EKK0341D010Vonu) | Parameter value | Map key for VONU equipment provisioning error data |
