# Business Logic — JFUAddSvcKeiTelCC.editInEKK0191D010() [789 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JFUAddSvcKeiTelCC` |
| Layer | CC/Common Component (Controller/Common Component — business logic coordination) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JFUAddSvcKeiTelCC.editInEKK0191D010()

This method performs the **upstream mapping** (上りマッピング処理) for the **Service Contract Detail (eo Light Phone) Registration** (サービス契約内訳<eo光電話>登録) screen in the K-Opticom e-commerce system. It transforms form-submitted data collected in the request parameter's work area into a structured `CAANMsg` payload (`EKK0191D010CBSMsg`) that will be consumed by the downstream CBS (Business Support System) layer for persistence.

The method handles **eo Light Phone** (eo光電話) — a fiber-optic telephone service product — service contract registration data. It maps approximately 70+ individual fields spanning five broad business domains: (1) service contract identification and administrative metadata, (2) phone number and usage details, (3) emergency contact address information (from a fallback address map), (4) NTT customer contract details and address, and (5) service lifecycle/timing fields (start dates, trial periods, cancellation/pause schedules, VA device info).

The method implements a **mapping/dispatch pattern** — it acts as the translation layer between the presentation layer's flat work-area map and the CBS's strongly-typed message schema. All fields follow a consistent null-check-then-set pattern: if the source field is null or empty, the output template field is cleared via `setNull()`; otherwise the value is copied via `set()`.

It is a **shared utility called by multiple entry points** — specifically invoked by `addTelTrk()` (for telephone line addition) and `getInvokeCBS()` (for CBS invocation) within the same class. The method processes a single row (line item) within a service contract detail list, identified by the `index` parameter, from the nested `EKK0191D010List` data structure.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editInEKK0191D010<br/>Start"])
    CREATE_MSG["Create CAANMsg Template<br/>EKK0191D010CBSMsg"]
    SET_METADATA["Set template metadata<br/>templateID, funcCode, operatorID,<br/>operateDate, operateDateTime"]
    GET_WORK_AREA["Get workMap from param<br/>getMappingWorkArea()"]
    GET_INMAP["Get inMap from param<br/>param.getData(fixedText)"]
    EXTRACT_LIST["Extract nested list:<br/>(ArrayList)get('EKK0191D010List')<br/>then get(index)"]
    SET_FUNC_CODE["Overwrite funcCode from inMap"]

    START --> CREATE_MSG --> SET_METADATA --> GET_WORK_AREA --> GET_INMAP --> EXTRACT_LIST --> SET_FUNC_CODE

    SUB_1["Process inMap Fields<br/>Null-check each field:<br/>if null/empty -> template.setNull()<br/>else -> template.set()"]
    SUB_2["Process useplaceAddressMap<br/>Fallback address lookup:<br/>param.getData('FUSV015211CC')<br/>-> param.getData('FUSV016102CC')"]
    SUB_3["Get upd_dtm_bf from EKK0111D010"]
    SUB_4["Set rule0059_auto_aply field"]

    SET_FUNC_CODE --> SUB_1
    SUB_1 --> SUB_2
    SUB_2 --> SUB_3 --> SUB_4 --> END(["Return template<br/>CAANMsg"])

    style SUB_1 fill:#e1f5ff
    style SUB_2 fill:#fff4e1
    style SUB_3 fill:#e1f5ff
    style SUB_4 fill:#e1f5ff
```

**Processing Summary:**

1. **Template Creation** (L2201-L2203): A new `CAANMsg` is instantiated using the `EKK0191D010CBSMsg` class schema. A `templateArray` variable is declared but never used.
2. **Metadata Population** (L2205-L2229): Fixed fields are set on the template — `templateID` from `fixedText` parameter, `funcCode` defaulted to `"1"`, and operational metadata (`operatorID`, `operateDate`, `operateDateTime`) are pulled from the control map of `param`.
3. **Work Area Resolution** (L2231-L2237): The method retrieves the work area map from `param.getMappingWorkArea()`, then gets the data map for `fixedText`. Critically, for v1.00.00 enhancement, the `inMap` is resolved by navigating into `param.getData(fixedText)` to get the `"EKK0191D010List"` ArrayList, then extracting the element at `index`.
4. **Func Code Override** (L2241): The initially set `funcCode` default `"1"` is overwritten with the actual function code from the resolved `inMap` data.
5. **Field-by-Field Mapping** (L2244-L2982): Every field in the `inMap` is processed through a null-check pattern. If the field is absent or empty, `template.setNull()` is called; otherwise `template.set()` copies the value. Some fields read from `useplaceAddressMap` (emergency address) and the `svc_kei_no` field falls back to `getWorkMapValue()`. The `emg_ksh_kana` field uses the special method `chkAndCnvEmgKshKana()` for kana conversion.
6. **Update Timestamp Capture** (L2965): The previous update timestamp is read from a separate data key `"EKK0111D010"` for audit purposes.
7. **Rule Auto-apply Field** (L2974): A rule-based auto-apply flag is mapped.
8. **Return** (L2982): The fully populated `CAANMsg` template is returned to the caller.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying all screen input data, control map metadata, and work area data. It contains the form-submitted fields, the mapping work area for fallback lookups, and operational metadata. |
| 2 | `fixedText` | `String` | The template ID / data key used to retrieve data from `param.getData()`. It identifies the data block within the request that holds the nested `EKK0191D010List`. Acts as both the template ID and the data retrieval key. |
| 3 | `index` | `int` | The zero-based index into the `EKK0191D010List` ArrayList, selecting which row/line item of the service contract detail to process. Used when multiple service contract detail lines exist in a single request. |

**Instance fields / external state read:**

| Field/External | Source | Business Description |
|---------------|--------|---------------------|
| `param.getMappingWorkArea()` | `param` | The work area map used for fallback field lookups (e.g., `svc_kei_no`). |
| `param.getControlMapData(OPERATOR_ID)` | `param` | Current operator ID for audit trail. |
| `param.getControlMapData(OPE_DATE)` | `param` | Current operational date for audit trail. |
| `param.getControlMapData(OPE_TIME)` | `param` | Current operational time for audit trail. |
| `param.getData(fixedText)` | `param` | The primary data block containing the nested `EKK0191D010List`. |
| `param.getData("FUSV015211CC")` / `param.getData("FUSV016102CC")` | `param` | Secondary address maps for emergency contact address — first tries one key, falls back to another. |
| `param.getData("EKK0111D010")` | `param` | Previous screen's data key to retrieve the pre-update timestamp. |
| `getWorkMapValue(param, "svc_kei_no", CC_WORK_AREA_NAME)` | Self method | Fallback lookup for service contract number from work area. |
| `getMskmWorkMapValue(param, "ekk0111_mskm_dtl_no")` | Self method | Fallback lookup for application detail number from work area. |
| `chkAndCnvEmgKshKana()` | Self method | Validates and converts emergency contact holder kana name. |
| `CC_WORK_AREA_NAME` | Constant | The work area name constant used in fallback lookups. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JFUAddSvcKeiTelCC.chkAndCnvEmgKshKana` | JFUAddSvcKeiTelCC | - | Calls `chkAndCnvEmgKshKana` for kana conversion of emergency contact name |
| R | `JFUAddSvcKeiTelCC.getMskmWorkMapValue` | JFUAddSvcKeiTelCC | - | Calls `getMskmWorkMapValue` to retrieve mskm_dtl_no from work area |
| R | `JFUAddSvcKeiTelCC.getWorkMapValue` | JFUAddSvcKeiTelCC | - | Calls `getWorkMapValue` to retrieve svc_kei_no from work area |

The method is primarily a **data mapping method** — it does not directly invoke SC (Service Component) or CBS (Corporate Business System) methods for database operations. Instead, it reads data from `IRequestParameterReadWrite` and writes to a `CAANMsg` template. The downstream CBS call is handled by the caller (e.g., `getInvokeCBS()` or `addTelTrk()`).

### Field-by-Field Output Mapping

| Field (Template) | Field (Source inMap) | Source Type | Business Description |
|-----------------|---------------------|-------------|---------------------|
| `TEMPLATEID` | `fixedText` parameter | param | Service IF template ID |
| `FUNC_CODE` | `"1"` default, overridden by inMap | hardcoded | Function code (overridden from inMap) |
| `OPERATOR_ID_KEY` | `getControlMapData(OPERATOR_ID)` | param | Operator ID (audit) |
| `OPERATE_DATE_KEY` | `getControlMapData(OPE_DATE)` | param | Operational date (audit) |
| `OPERATE_DATETIME_KEY` | `getControlMapData(OPE_TIME)` | param | Operational datetime (audit) |
| `SVC_KEI_NO` | `getWorkMapValue(...,"svc_kei_no")` or inMap | workMap / inMap | Service contract number |
| `MSKM_DTL_NO` | `getMskmWorkMapValue(...,"ekk0111_mskm_dtl_no")` or inMap | workMap / inMap | Application detail number |
| `TK_HOSHIKI_KEI_NO` | `inMap.tk_hoshiki_kei_no` | inMap | Supply method contract number |
| `PAYWAY_KEIZOKU_FLG` | `inMap.payway_keizoku_flg` | inMap | Payment method continuation flag |
| `WEB_OP_ADD_FAIL_FLG` | `inMap.web_op_add_fail_flg` | inMap | WEB option addition impossible flag |
| `WORK_RRK_BIKO` | `inMap.work_rrk_biko` (source key: `biko`) | inMap | Business liaison notes |
| `SVC_USE_STA_KIBO_YMD` | `inMap.svc_use_sta_kibo_ymd` | inMap | Service usage start desired YMD |
| `SVC_UEST_KBTMZ_CD` | `inMap.svc_uest_kbtmz_cd` | inMap | Service usage start desired time zone code |
| `SVC_UEST_KBTM_CD` | `inMap.svc_uest_kbtm_cd` | inMap | Service usage start desired time code |
| `RSV_TSTA_KIBO_YMD` | `inMap.rsv_tsta_kibo_ymd` | inMap | Reservation application start desired YMD |
| `FTRIAL_KANYU_YMD` | `inMap.ftrial_kanyu_ymd` | inMap | Free trial entry YMD |
| `FTRIAL_PRD_ENDYMD` | `inMap.ftrial_prd_endymd` | inMap | Free trial period end YMD |
| `HONKANYU_YMD` | `inMap.honkanyu_ymd` | inMap | Full entry YMD (正式加入年月日) |
| `HONKANYU_IKO_KIGEN_YMD` | `inMap.honkanyu_iko_kigen_ymd` | inMap | Full entry migration deadline YMD |
| `PNLTY_HASSEI_CD` | `inMap.pnlty_hassei_cd` | inMap | Penalty occurrence code |
| `IDO_DIV` | `inMap.ido_div` | inMap | Migration division |
| `TELNO` | `inMap.telno` | inMap | Telephone number |
| `TELNO_USE_PLACE_NO` | `inMap.telno_use_place_no` | inMap | Telephone number usage place number |
| `EMG_AD_CD` | `useplaceAddressMap.ad_cd` | addressMap | Emergency contact address code |
| `EMG_ADRTTM` | `inMap.emg_adrttm` | inMap | Emergency contact address supplement · building name |
| `EMG_ADRRM` | `inMap.emg_adrrm` | inMap | Emergency contact address supplement · room number |
| `TELNO_JUN` | `inMap.telno_jun` | inMap | Telephone number order |
| `NTT_NO_GUIDE_UM` | `inMap.ntt_no_guide_um` | inMap | NTT number guidance presence/absence |
| `HELLOPAGE_KEISAI_UM` | `inMap.hellopage_keisai_um` | inMap | Hello page publication presence/absence |
| `TUWA_DTL_KOKAI_YH` | `inMap.tuwa_dtl_kokai_yh` (source: `pcall_dtl_kokai_yh`) | inMap | Call details publication yes/no |
| `TEL_NO_PRE_TCHI_CD` | `inMap.tel_no_pre_tchi_cd` | inMap | Phone number prior notification code |
| `TSJGS_CD` | `inMap.tsjgs_cd` | inMap | Telecommunications carrier code |
| `DSL_PAUSE_TOKI_KIBO_UM` | `inMap.dsl_pause_toki_kibo_um` | inMap | Cancellation/pause transfer request desired presence/absence |
| `DSL_PAUSE_TOKI_SBT_CD` | `inMap.dsl_pause_toki_sbt_cd` | inMap | Cancellation/pause transfer type code |
| `TOWNPAGE_KEISAI_KANA` | `inMap.townpage_keisai_kana` | inMap | Town page publication kana name |
| `TOWNPAGE_KEISAI_NM` | `inMap.townpage_keisai_nm` | inMap | Town page publication name |
| `BMP_UM` | `inMap.bmp_um` | inMap | Phone book presence/absence |
| `BMP_DOJI_KOJI_KIBO_UM` | `inMap.bmp_doji_koji_kibo_um` | inMap | Phone book simultaneous work desired presence/absence |
| `BMP_DOJI_OPEN_YMD` | `inMap.bmp_doji_open_ymd` | inMap | Phone book simultaneous open YMD |
| `EMG_HOSEI_PCD` | `inMap.emg_hosei_pcd` | inMap | Emergency contact correction postal code |
| `EMG_STATE_NM` | `useplaceAddressMap.state_nm` | addressMap | Emergency contact prefecture name |
| `EMG_CITY_NM` | `useplaceAddressMap.city_nm` | addressMap | Emergency contact city/town/village name |
| `EMG_OAZTSU_NM` | `useplaceAddressMap.oaztsu_nm` | addressMap | Emergency contact oaza (大字) name |
| `EMG_AZCHO_NM` | `useplaceAddressMap.azcho_nm` | addressMap | Emergency contact chome name |
| `EMG_BNCHIGO` | `useplaceAddressMap.after_bnchi` | addressMap | Emergency contact lot number |
| `EMG_KSH_KSITEI_FLG` | `inMap.emg_ksh_ksitei_flg` | inMap | Emergency contact holder individual designation flag |
| `EMG_KSH_NM` | `inMap.emg_ksh_nm` | inMap | Emergency contact holder name |
| `EMG_KSH_KANA` | `chkAndCnvEmgKshKana(inMap.emg_ksh_kana)` | inMap + conversion | Emergency contact holder kana name |
| `NTT_KEISHA_AD_CD` | `inMap.ntt_keisha_ad_cd` | inMap | NTT customer address code |
| `NTT_KEISHA_PCD` | `inMap.ntt_keisha_pcd` | inMap | NTT customer postal code |
| `NTT_KEISHA_STATE_NM` | `inMap.ntt_keisha_state_nm` | inMap | NTT customer prefecture name |
| `NTT_KEISHA_CITY_NM` | `inMap.ntt_keisha_city_nm` | inMap | NTT customer city/town/village name |
| `NTT_KEISHA_OAZTSU_NM` | `inMap.ntt_keisha_oaztsu_nm` | inMap | NTT customer oaza name |
| `NTT_KEISHA_AZCHO_NM` | `inMap.ntt_keisha_azcho_nm` | inMap | NTT customer chome name |
| `NTT_KEISHA_BNCHIGO` | `inMap.ntt_keisha_bnchigo` | inMap | NTT customer lot number |
| `NTT_KEISHA_ADRTTM` | `inMap.ntt_keisha_adrttm` | inMap | NTT customer address supplement · building name |
| `NTT_KEISHA_ADRRM` | `inMap.ntt_keisha_adrrm` | inMap | NTT customer address supplement · room number |
| `NTT_KSH_KANA` | `inMap.ntt_ksh_kana` (source: `ntt_keisha_kana`) | inMap | NTT customer kana name |
| `NTT_KEISHA_NM` | `inMap.ntt_keisha_nm` | inMap | NTT customer name |
| `NTT_KSH_AD_KSH_AD_SAI_FLG` | `inMap.ntt_ksh_ad_ksh_ad_sai_flg` | inMap | NTT customer address · contract holder address difference flag |
| `MAN_SWITCH_RSV_DTM` | `inMap.man_switch_rsv_dtm` | inMap | Manual transfer scheduled datetime |
| `DSL_PAUSE_TOKI_TSS_TLN` | `inMap.dsl_pause_toki_tss_tln` | inMap | Cancellation/pause transfer destination telephone number |
| `DSL_PAUSE_TOKI_STA_YMD` | `inMap.dsl_pause_toki_sta_ymd` | inMap | Cancellation/pause transfer start YMD |
| `DSL_PAUSE_TOKI_END_RSYMD` | `inMap.dsl_pause_toki_end_rsymd` | inMap | Cancellation/pause transfer end scheduled YMD |
| `DSL_PAUSE_TOKI_END_YMD` | `inMap.dsl_pause_toki_end_ymd` | inMap | Cancellation/pause transfer end YMD |
| `DSL_PAUSE_TOKI_ADD_CD` | `inMap.dsl_pause_toki_add_cd` | inMap | Cancellation/pause transfer registration code |
| `DSL_PAUSE_TOKI_STA_RSYMD` | `inMap.dsl_pause_toki_sta_rsymd` | inMap | Cancellation/pause transfer start scheduled YMD |
| `VA_TAKNKIKI_MODEL_CD` | `inMap.va_taknkiki_model_cd` | inMap | VA home device model code |
| `VA_KIKI_SEIZO_NO` | `inMap.va_kiki_seizo_no` | inMap | VA device serial number |
| `VA_PORT_NO` | `inMap.va_port_no` | inMap | VA port number |
| `UPD_DTM_BF` | `param.getData("EKK0111D010").UPD_DTM` | data | Update datetime (pre-update, from previous screen) |
| `RULE0059_AUTO_APLY` | `inMap.rule0059_auto_aply` | inMap | Business procedure material auto-apply flag |
| `DOBANITEN_JDG_CD` | `inMap.dobaniten_jdg_cd` | inMap | Same-store transfer judgment code |
| `ITENS_OPAF_TOKI_KIBO_UM` | `inMap.itens_opaf_toki_kibo_um` | inMap | Transfer destination post-open transfer request desired presence/absence |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `set`, `setNull` (field assignments on template)

### Callers:

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JFUAddSvcKeiTelCC.addTelTrk()` | Screen-level entry -> `addTelTrk()` -> `editInEKK0191D010()` | Field assignments to `EKK0191D010CBSMsg` template |
| 2 | `JFUAddSvcKeiTelCC.getInvokeCBS()` | CBS invocation layer -> `getInvokeCBS()` -> `editInEKK0191D010()` | Field assignments to `EKK0191D010CBSMsg` template |

The method is a leaf mapping method — it does not call any SC or CBS methods itself. It produces a `CAANMsg` that is passed up the call chain to be invoked against the CBS. The terminal operations are all `set`/`setNull` calls on the template object.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Template creation and metadata setup (L2201-L2229)

> Creates the CAANMsg template and populates operational metadata from param's control map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = new CAANMsg(EKK0191D010CBSMsg.class.getName())` |
| 2 | SET | `templateArray = null` (declared, unused) |
| 3 | SET | `inMap = null` |
| 4 | SET | `inList = null` |
| 5 | SET | `template.set(TEMPLATEID, fixedText)` // Set template ID from param |
| 6 | SET | `template.set(FUNC_CODE, "1")` // [-> FUNC_CODE default "1"] |
| 7 | SET | `operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID)` |
| 8 | SET | `template.set(JCMConstants.OPERATOR_ID_KEY, operatorId)` |
| 9 | SET | `operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE)` |
| 10 | SET | `template.set(JCMConstants.OPERATE_DATE_KEY, operateDate)` |
| 11 | SET | `operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME)` |
| 12 | SET | `template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime)` |
| 13 | SET | `workMap = (Map)param.getMappingWorkArea()` |

**Block 2** — [SET] Data retrieval and inMap resolution (L2233-L2241)

> Retrieves the data block and resolves the nested list structure introduced in v1.00.00.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap = (HashMap)param.getData(fixedText)` // Get primary data |
| 2 | SET | `inMap = (HashMap)((ArrayList)inMap.get("EKK0191D010List")).get(index)` // [-> v1.00.00 enhancement: extract nested list] |
| 3 | SET | `template.set(FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY))` // Override funcCode |

**Block 3** — [IF/ELSE] svc_kei_no mapping with workMap fallback (L2244-L2264)

> Maps service contract number. If not in inMap, falls back to workMap lookup via getWorkMapValue(). The else-if for the v1.00.00 addition handles the case where workMap value is still null.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("svc_kei_no") == null \|\| "".equals(inMap.get("svc_kei_no"))` |
| 1.1 | SET | `svc_kei_no = getWorkMapValue(param, "svc_kei_no", CC_WORK_AREA_NAME)` // Fallback lookup |
| 1.2 | IF | `svc_kei_no == null` |
| 1.2.1 | SET | `template.setNull(SVC_KEI_NO)` |
| 1.3 | ELSE | `template.set(SVC_KEI_NO, svc_kei_no)` |
| 2 | ELSE | `template.set(SVC_KEI_NO, (String)inMap.get("svc_kei_no"))` |

**Block 4** — [IF/ELSE] mskm_dtl_no mapping with workMap fallback (L2267-L2287)

> Maps application detail number. Falls back to `getMskmWorkMapValue(param, "ekk0111_mskm_dtl_no")`. Note: L2277 has a stray semicolon `;` after `setNull()`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("mskm_dtl_no") == null \|\| "".equals(inMap.get("mskm_dtl_no"))` |
| 1.1 | SET | `mskm_dtl_no = getMskmWorkMapValue(param, "ekk0111_mskm_dtl_no")` |
| 1.2 | IF | `mskm_dtl_no == null` |
| 1.2.1 | SET | `template.setNull(MSKM_DTL_NO);` // [-> stray semicolon] |
| 1.3 | ELSE | `template.set(MSKM_DTL_NO, mskm_dtl_no)` |
| 2 | ELSE | `template.set(MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"))` |

**Block 5 through Block N** — [IF/ELSE] Standard null-check field mapping (L2290-L2982)

> Every subsequent field follows the identical pattern. Below are representative groups:

**Block 5** — tk_hoshiki_kei_no (supply method contract number) (L2290-L2299)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("tk_hoshiki_kei_no") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(TK_HOSHIKI_KEI_NO)` |
| 2 | ELSE | `template.set(TK_HOSHIKI_KEI_NO, (String)inMap.get("tk_hoshiki_kei_no"))` |

**Block 6** — payway_keizoku_flg (payment method continuation flag) (L2302-L2311)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("payway_keizoku_flg") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(PAYWAY_KEIZOKU_FLG)` |
| 2 | ELSE | `template.set(PAYWAY_KEIZOKU_FLG, (String)inMap.get("payway_keizoku_flg"))` |

**Block 7** — web_op_add_fail_flg (WEB option addition impossible flag) (L2314-L2323)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("web_op_add_fail_flg") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(WEB_OP_ADD_FAIL_FLG)` |
| 2 | ELSE | `template.set(WEB_OP_ADD_FAIL_FLG, (String)inMap.get("web_op_add_fail_flg"))` |

**Block 8** — work_rrk_biko (business liaison notes) (L2326-L2335)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("biko") == null \|\| "".equals(inMap.get("work_rrk_biko"))` |
| 1.1 | SET | `template.setNull(WORK_RRK_BIKO)` // Note: source key mismatch — checks "biko" but reads "work_rrk_biko" |
| 2 | ELSE | `template.set(WORK_RRK_BIKO, (String)inMap.get("work_rrk_biko"))` |

**Block 9** — svc_use_sta_kibo_ymd (service usage start desired date) (L2338-L2347)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("svc_use_sta_kibo_ymd") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(SVC_USE_STA_KIBO_YMD)` |
| 2 | ELSE | `template.set(SVC_USE_STA_KIBO_YMD, (String)inMap.get("svc_use_sta_kibo_ymd"))` |

**Block 10** — svc_uest_kbtmz_cd and svc_uest_kbtm_cd (service usage start desired time zone/time codes) (L2351-L2380)

> Added 2012/2/22 by Oyama. Two consecutive time-related fields.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("svc_uest_kbtmz_cd") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(SVC_UEST_KBTMZ_CD)` |
| 2 | ELSE | `template.set(SVC_UEST_KBTMZ_CD, (String)inMap.get("svc_uest_kbtmz_cd"))` |
| 3 | IF | `inMap == null \|\| inMap.get("svc_uest_kbtm_cd") == null \|\| "".equals(...)` |
| 3.1 | SET | `template.setNull(SVC_UEST_KBTM_CD)` |
| 4 | ELSE | `template.set(SVC_UEST_KBTM_CD, (String)inMap.get("svc_uest_kbtm_cd"))` |

**Block 11** — rsv_tsta_kibo_ymd through pnlty_hassei_cd (reservation, trial, full-entry, penalty fields) (L2383-L2452)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("rsv_tsta_kibo_ymd") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(RSV_TSTA_KIBO_YMD)` |
| 2 | ELSE | `template.set(RSV_TSTA_KIBO_YMD, (String)inMap.get("rsv_tsta_kibo_ymd"))` |
| 3 | IF | `inMap == null \|\| inMap.get("ftrial_kanyu_ymd") == null \|\| "".equals(...)` |
| 3.1 | SET | `template.setNull(FTRIAL_KANYU_YMD)` |
| 4 | ELSE | `template.set(FTRIAL_KANYU_YMD, (String)inMap.get("ftrial_kanyu_ymd"))` |
| 5 | IF | `inMap == null \|\| inMap.get("ftrial_prd_endymd") == null \|\| "".equals(...)` |
| 5.1 | SET | `template.setNull(FTRIAL_PRD_ENDYMD)` |
| 6 | ELSE | `template.set(FTRIAL_PRD_ENDYMD, (String)inMap.get("ftrial_prd_endymd"))` |
| 7 | IF | `inMap == null \|\| inMap.get("honkanyu_ymd") == null \|\| "".equals(...)` |
| 7.1 | SET | `template.setNull(HONKANYU_YMD)` |
| 8 | ELSE | `template.set(HONKANYU_YMD, (String)inMap.get("honkanyu_ymd"))` |
| 9 | IF | `inMap == null \|\| inMap.get("honkanyu_iko_kigen_ymd") == null \|\| "".equals(...)` |
| 9.1 | SET | `template.setNull(HONKANYU_IKO_KIGEN_YMD)` |
| 10 | ELSE | `template.set(HONKANYU_IKO_KIGEN_YMD, (String)inMap.get("honkanyu_iko_kigen_ymd"))` |
| 11 | IF | `inMap == null \|\| inMap.get("pnlty_hassei_cd") == null \|\| "".equals(...)` |
| 11.1 | SET | `template.setNull(PNLTY_HASSEI_CD)` |
| 12 | ELSE | `template.set(PNLTY_HASSEI_CD, (String)inMap.get("pnlty_hassei_cd"))` |

**Block 12** — ido_div (migration division) (L2455-L2464)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("ido_div") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(IDO_DIV)` |
| 2 | ELSE | `template.set(IDO_DIV, (String)inMap.get("ido_div"))` |

**Block 13** — telno through telno_use_place_no (L2467-L2488)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("telno") == null \|\| "".equals(...)` |
| 1.1 | SET | `template.setNull(TELNO)` |
| 2 | ELSE | `template.set(TELNO, (String)inMap.get("telno"))` |
| 3 | IF | `inMap == null \|\| inMap.get("telno_use_place_no") == null \|\| "".equals(...)` |
| 3.1 | SET | `template.setNull(TELNO_USE_PLACE_NO)` |
| 4 | ELSE | `template.set(TELNO_USE_PLACE_NO, (String)inMap.get("telno_use_place_no"))` |

**Block 14** — useplaceAddressMap fallback and emergency address fields (L2492-L2558)

> Added 2013/03/21 by Otsuka (ST1-2013-0000487). Retrieves address from one of two possible data keys, then maps emergency address fields from the address map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `useplaceAddressMap = (HashMap)param.getData("FUSV015211CC")` |
| 2 | IF | `null == useplaceAddressMap` |
| 2.1 | SET | `useplaceAddressMap = (HashMap)param.getData("FUSV016102CC")` // Fallback address key |
| 3 | IF | `useplaceAddressMap == null \|\| useplaceAddressMap.get("ad_cd") == null \|\| "".equals(...)` |
| 3.1 | SET | `template.setNull(EMG_AD_CD)` |
| 4 | ELSE | `template.set(EMG_AD_CD, (String)useplaceAddressMap.get("ad_cd"))` |
| 5 | IF | `inMap == null \|\| inMap.get("emg_adrttm") == null \|\| "".equals(...)` |
| 5.1 | SET | `template.setNull(EMG_ADRTTM)` |
| 6 | ELSE | `template.set(EMG_ADRTTM, (String)inMap.get("emg_adrttm"))` |
| 7 | IF | `inMap == null \|\| inMap.get("emg_adrrm") == null \|\| "".equals(...)` |
| 7.1 | SET | `template.setNull(EMG_ADRRM)` |
| 8 | ELSE | `template.set(EMG_ADRRM, (String)inMap.get("emg_adrrm"))` |

**Block 15** — telno_jun through hellopage_keisai_um (phone number order, NTT guidance, HelloPage) (L2561-L2604)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("telno_jun") == null` → `setNull(TELNO_JUN)` |
| 2 | IF | `inMap.get("ntt_no_guide_um") == null` → `setNull(NTT_NO_GUIDE_UM)` |
| 3 | IF | `inMap.get("hellopage_keisai_um") == null` → `setNull(HELLOPAGE_KEISAI_UM)` |
| 4 | IF | `inMap.get("pcall_dtl_kokai_yh") == null` (reads source `tuwa_dtl_kokai_yh`) → `setNull(TUWA_DTL_KOKAI_YH)` |

**Block 16** — tel_no_pre_tchi_cd through townpage_keisai_nm (phone number notification, carrier, town page) (L2607-L2653)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("tel_no_pre_tchi_cd") == null` → `setNull(TEL_NO_PRE_TCHI_CD)` |
| 2 | IF | `inMap.get("tsjgs_cd") == null` → `setNull(TSJGS_CD)` |
| 3 | IF | `inMap.get("dsl_pause_toki_kibo_um") == null` → `setNull(DSL_PAUSE_TOKI_KIBO_UM)` |
| 4 | IF | `inMap.get("dsl_pause_toki_sbt_cd") == null` → `setNull(DSL_PAUSE_TOKI_SBT_CD)` |
| 5 | IF | `inMap.get("townpage_keisai_kana") == null` → `setNull(TOWNPAGE_KEISAI_KANA)` |
| 6 | IF | `inMap.get("townpage_keisai_nm") == null` → `setNull(TOWNPAGE_KEISAI_NM)` |

**Block 17** — bmp_um through bmp_doji_open_ymd (phone book fields) (L2656-L2688)

> Includes both basic phone book presence/absence and simultaneous work fields (added 2012/05/07 by h.iwamoto for Service Interface integration).

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("bmp_um") == null` → `setNull(BMP_UM)` |
| 2 | IF | `inMap.get("bmp_doji_koji_kibo_um") == null` → `setNull(BMP_DOJI_KOJI_KIBO_UM)` // Note: value read without cast to String |
| 3 | IF | `inMap.get("bmp_doji_open_ymd") == null` → `setNull(BMP_DOJI_OPEN_YMD)` |

**Block 18** — emg_hosei_pcd and emergency address supplementary fields (SIF items) (L2691-L2762)

> Added 2012/04/26 for SIF integration, 2013/03/21 by Otsuka. Reads from `useplaceAddressMap` for prefecture, city, oaza, chome, lot number.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("emg_hosei_pcd") == null` → `setNull(EMG_HOSEI_PCD)` |
| 2 | IF | `useplaceAddressMap.get("state_nm") == null` → `setNull(EMG_STATE_NM)` |
| 3 | IF | `useplaceAddressMap.get("city_nm") == null` → `setNull(EMG_CITY_NM)` |
| 4 | IF | `useplaceAddressMap.get("oaztsu_nm") == null` → `setNull(EMG_OAZTSU_NM)` |
| 5 | IF | `useplaceAddressMap.get("azcho_nm") == null` → `setNull(EMG_AZCHO_NM)` |
| 6 | IF | `useplaceAddressMap.get("after_bnchi") == null` → `setNull(EMG_BNCHIGO)` |

**Block 19** — emg_ksh_kana with kana conversion (L2765-L2774)

> The emergency contact holder kana field is the only field that applies a transformation (`chkAndCnvEmgKshKana`) rather than a simple passthrough.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("emg_ksh_ksitei_flg") == null` → `setNull(EMG_KSH_KSITEI_FLG)` |
| 2 | IF | `inMap.get("emg_ksh_nm") == null` → `setNull(EMG_KSH_NM)` |
| 3 | IF | `inMap.get("emg_ksh_kana") == null` → `setNull(EMG_KSH_KANA)` |
| 4 | ELSE | `template.set(EMG_KSH_KANA, this.chkAndCnvEmgKshKana((String)inMap.get("emg_ksh_kana")))` // Kana conversion applied |

**Block 20** — NTT customer address fields (L2777-L2857)

> Maps the full NTT customer address: address code, postal code, prefecture, city, oaza, chome, lot number, building name, room number, kana name, and name.

| # | Type | Code |
|---|------|------|
| 1-8 | IF/ELSE | `ntt_keisha_ad_cd` through `ntt_keisha_adrrm` — all standard null-check pattern |

**Block 21** — ntt_ksh_kana (NTT customer kana name) (L2860-L2869)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("ntt_keisha_kana") == null \|\| "".equals(inMap.get("ntt_ksh_kana"))` |
| 1.1 | SET | `template.setNull(NTT_KSH_KANA)` // Note: checks "ntt_keisha_kana" but reads "ntt_ksh_kana" — potential source key mismatch |
| 2 | ELSE | `template.set(NTT_KSH_KANA, (String)inMap.get("ntt_ksh_kana"))` |

**Block 22** — ntt_keisha_nm and ntt_ksh_ad_ksh_ad_sai_flg (NTT customer name and address difference flag) (L2872-L2891)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("ntt_keisha_nm") == null` → `setNull(NTT_KEISHA_NM)` |
| 2 | IF | `inMap.get("ntt_ksh_ad_ksh_ad_sai_flg") == null` → `setNull(NTT_KSH_AD_KSH_AD_SAI_FLG)` |

**Block 23** — man_switch_rsv_dtm (manual transfer scheduled datetime) (L2893-L2902)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("man_switch_rsv_dtm") == null` → `setNull(MAN_SWITCH_RSV_DTM)` |
| 2 | ELSE | `template.set(MAN_SWITCH_RSV_DTM, (String)inMap.get("man_switch_rsv_dtm"))` |

**Block 24** — dsl_pause_toki transfer fields (L2905-L2962)

> Maps cancellation/pause transfer destination phone number, start/end dates, registration codes, and scheduled dates.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("dsl_pause_toki_tss_tln") == null` → `setNull(DSL_PAUSE_TOKI_TSS_TLN)` |
| 2 | IF | `inMap.get("dsl_pause_toki_sta_ymd") == null` → `setNull(DSL_PAUSE_TOKI_STA_YMD)` |
| 3 | IF | `inMap.get("dsl_pause_toki_end_rsymd") == null` → `setNull(DSL_PAUSE_TOKI_END_RSYMD)` |
| 4 | IF | `inMap.get("dsl_pause_toki_end_ymd") == null` → `setNull(DSL_PAUSE_TOKI_END_YMD)` |
| 5 | IF | `inMap.get("dsl_pause_toki_add_cd") == null` → `setNull(DSL_PAUSE_TOKI_ADD_CD)` |
| 6 | IF | `inMap.get("dsl_pause_toki_sta_rsymd") == null` → `setNull(DSL_PAUSE_TOKI_STA_RSYMD)` |

**Block 25** — VA device fields (L2965-L2982)

> Maps VA (Value Add) home device model code, serial number, and port number.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("va_taknkiki_model_cd") == null` → `setNull(VA_TAKNKIKI_MODEL_CD)` |
| 2 | IF | `inMap.get("va_kiki_seizo_no") == null` → `setNull(VA_KIKI_SEIZO_NO)` |
| 3 | IF | `inMap.get("va_port_no") == null` → `setNull(VA_PORT_NO)` |

**Block 26** — upd_dtm_bf (update datetime pre-update) (L2984-L2995)

> Reads the previous update timestamp from a separate data key `"EKK0111D010"` for audit comparison. Added 2012/05/07 for Service Interface integration.

| # | Type | Code |
|---|------|------|
| 1 | SET | `upd_dtm_bf = (String)((HashMap)(param.getData("EKK0111D010"))).get(EKK0111D010CBSMsg.UPD_DTM)` |
| 2 | IF | `upd_dtm_bf == null` → `setNull(UPD_DTM_BF)` |
| 3 | ELSE | `template.set(UPD_DTM_BF, upd_dtm_bf)` |

**Block 27** — rule0059_auto_aply (business procedure material auto-apply flag) (L2997-L3008)

> Added 2012/06/18 per PCON Issue No.2012-0000003 by h.iwamoto.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("rule0059_auto_aply") == null` → `setNull(RULE0059_AUTO_APLY)` |
| 2 | ELSE | `template.set(RULE0059_AUTO_APLY, inMap.get("rule0059_auto_aply"))` // No cast to String |

**Block 28** — dobaniten_jdg_cd (same-store transfer judgment code) (L3011-L3021)

> Added 2012/09/21 by Otsuka.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("dobaniten_jdg_cd") == null` → `setNull(DOBANITEN_JDG_CD)` |
| 2 | ELSE | `template.set(DOBANITEN_JDG_CD, (String)inMap.get("dobaniten_jdg_cd"))` |

**Block 29** — itens_opaf_toki_kibo_um (transfer destination post-open transfer request) (L3024-L3033)

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("itens_opaf_toki_kibo_um") == null` → `setNull(ITENS_OPAF_TOKI_KIBO_UM)` |
| 2 | ELSE | `template.set(ITENS_OPAF_TOKI_KIBO_UM, (String)inMap.get("itens_opaf_toki_kibo_um"))` |

**Block 30** — kari_mskm_flg (pseudo-application flag) (L3036-L3045)

> Added 2012/10/16 by h.iwamoto (IT1-2012-0001150). No empty-string check — only null check.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap.get("kari_mskm_flg") == null` // Only null check, no empty string check |
| 1.1 | SET | `template.setNull(KARI_MSKM_FLG)` |
| 2 | ELSE | `template.set(KARI_MSKM_FLG, (String)inMap.get("kari_mskm_flg"))` |

**Block 31** — [RETURN] Return the fully mapped template (L3048)

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

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service contract number — the unique identifier for a service contract line item |
| `svc_kei_ucwk_no` | Field | Service contract work number — internal tracking ID for service contract line items |
| `mskm_dtl_no` | Field | Application detail number — the detail number associated with a customer application |
| `ekk0111_mskm_dtl_no` | Field | Application detail number from EKK0111 screen — source for mskm_dtl_no fallback |
| `tk_hoshiki_kei_no` | Field | Supply method contract number — identifies how the service is supplied (contract type) |
| `payway_keizoku_flg` | Field | Payment method continuation flag — whether to continue the existing payment method |
| `web_op_add_fail_flg` | Field | WEB option addition impossible flag — indicates if WEB options cannot be added |
| `work_rrk_biko` / `biko` | Field | Business liaison notes — remarks for business coordination |
| `svc_use_sta_kibo_ymd` | Field | Service usage start desired YMD — the customer's desired service start date (year/month/day) |
| `svc_uest_kbtmz_cd` | Field | Service usage start desired time zone code — preferred time zone for service activation |
| `svc_uest_kbtm_cd` | Field | Service usage start desired time code — preferred time slot for service activation |
| `rsv_tsta_kibo_ymd` | Field | Reservation application start desired YMD — desired date for reservation application to take effect |
| `ftrial_kanyu_ymd` | Field | Free trial entry YMD — date of free trial service enrollment |
| `ftrial_prd_endymd` | Field | Free trial period end YMD — end date of the free trial period |
| `honkanyu_ymd` | Field | Full entry YMD (正式加入) — date of full service enrollment (after trial) |
| `honkanyu_iko_kigen_ymd` | Field | Full entry migration deadline YMD — deadline for migrating from trial to full service |
| `pnlty_hassei_cd` | Field | Penalty occurrence code — code indicating if/when contract penalties apply |
| `ido_div` | Field | Migration division — classification of the type of migration/portability |
| `telno` | Field | Telephone number — the primary phone number for the service |
| `telno_use_place_no` | Field | Telephone number usage place number — identifies where the phone number is used |
| `telno_jun` | Field | Telephone number order — the sequence/order of phone numbers in a multi-line setup |
| `emg_ad_cd` | Field | Emergency contact address code — postal/address code for emergency contact |
| `emg_adrttm` | Field | Emergency contact address supplement · building name — building name for emergency contact |
| `emg_adrrm` | Field | Emergency contact address supplement · room number — room number for emergency contact |
| `emg_hosei_pcd` | Field | Emergency contact correction postal code — corrected postal code for emergency contact |
| `emg_state_nm` | Field | Emergency contact prefecture name — prefecture (都道府県) in emergency address |
| `emg_city_nm` | Field | Emergency contact city/town/village name — city (市区町村) in emergency address |
| `emg_oaztsu_nm` | Field | Emergency contact oaza (大字) name — oaza (larger district) in emergency address |
| `emg_azcho_nm` | Field | Emergency contact chome (字丁目) name — chome (block/sub-district) in emergency address |
| `emg_bnchigo` / `after_bnchi` | Field | Emergency contact lot number (番地号) — lot/ban-chi number in emergency address |
| `emg_ksh_ksitei_flg` | Field | Emergency contact holder individual designation flag — whether emergency contact is a specific person |
| `emg_ksh_nm` | Field | Emergency contact holder name — name of the emergency contact person |
| `emg_ksh_kana` | Field | Emergency contact holder kana name — kana (phonetic) representation of emergency contact name |
| `ntt_keisha_ad_cd` | Field | NTT customer address code — NTT customer's residential address code |
| `ntt_keisha_pcd` | Field | NTT customer postal code — NTT customer's postal code |
| `ntt_keisha_state_nm` | Field | NTT customer prefecture name — prefecture in NTT customer address |
| `ntt_keisha_city_nm` | Field | NTT customer city/town/village name — city in NTT customer address |
| `ntt_keisha_oaztsu_nm` | Field | NTT customer oaza name — oaza in NTT customer address |
| `ntt_keisha_azcho_nm` | Field | NTT customer chome name — chome in NTT customer address |
| `ntt_keisha_bnchigo` | Field | NTT customer lot number — ban-chi in NTT customer address |
| `ntt_keisha_adrttm` | Field | NTT customer address supplement · building name — building name in NTT customer address |
| `ntt_keisha_adrrm` | Field | NTT customer address supplement · room number — room number in NTT customer address |
| `ntt_ksh_kana` / `ntt_keisha_kana` | Field | NTT customer kana name — kana representation of NTT customer name |
| `ntt_keisha_nm` | Field | NTT customer name — name of the NTT account holder |
| `ntt_ksh_ad_ksh_ad_sai_flg` | Field | NTT customer address · contract holder address difference flag — whether NTT address differs from contract address |
| `man_switch_rsv_dtm` | Field | Manual transfer scheduled datetime — scheduled date/time for manual number portability transfer |
| `dsl_pause_toki_kibo_um` | Field | Cancellation/pause transfer request desired presence/absence — whether customer wants to transfer out on cancellation/pause |
| `dsl_pause_toki_sbt_cd` | Field | Cancellation/pause transfer type code — type code for cancellation/pause transfer |
| `dsl_pause_toki_tss_tln` | Field | Cancellation/pause transfer destination telephone number — phone number at the transfer destination |
| `dsl_pause_toki_sta_ymd` | Field | Cancellation/pause transfer start YMD — effective date of the cancellation/pause transfer |
| `dsl_pause_toki_end_rsymd` | Field | Cancellation/pause transfer end scheduled YMD — scheduled end date of cancellation/pause |
| `dsl_pause_toki_end_ymd` | Field | Cancellation/pause transfer end YMD — actual end date of cancellation/pause |
| `dsl_pause_toki_add_cd` | Field | Cancellation/pause transfer registration code — code for the transfer registration |
| `dsl_pause_toki_sta_rsymd` | Field | Cancellation/pause transfer start scheduled YMD — scheduled start date |
| `tsjgs_cd` | Field | Telecommunications carrier code — identifies the telecommunications service provider |
| `townpage_keisai_kana` | Field | Town page publication kana name — kana name for town page listing |
| `townpage_keisai_nm` | Field | Town page publication name — name for town page listing |
| `bmp_um` | Field | Phone book (番浦) presence/absence — whether to publish in phone directory |
| `bmp_doji_koji_kibo_um` | Field | Phone book simultaneous work desired presence/absence — desire for simultaneous phone book work |
| `bmp_doji_open_ymd` | Field | Phone book simultaneous open YMD — date for simultaneous phone book opening |
| `ntt_no_guide_um` | Field | NTT number guidance presence/absence — whether NTT number guidance applies |
| `hellopage_keisai_um` | Field | Hello page publication presence/absence — whether to publish on HelloPage (customer directory) |
| `tuwa_dtl_kokai_yh` / `pcall_dtl_kokai_yh` | Field | Call details publication yes/no — whether call details are publicly listed |
| `tel_no_pre_tchi_cd` | Field | Phone number prior notification code — code for pre-notification about phone number changes |
| `va_taknkiki_model_cd` | Field | VA (Value Add) home device model code — model code of the VA home device |
| `va_kiki_seizo_no` | Field | VA device serial number — serial number of the VA device |
| `va_port_no` | Field | VA port number — port number on the VA device |
| `upd_dtm_bf` | Field | Update datetime (pre-update) — timestamp before the current update, for audit comparison |
| `rule0059_auto_aply` | Field | Business procedure material auto-apply flag — whether Rule 0059 materials are auto-applied |
| `dobaniten_jdg_cd` | Field | Same-store transfer (同番移転) judgment code — code for same-phone-number transfer decision |
| `dobaniten_mskm_um` | Field | Same-store transfer application presence/absence — whether same-store transfer is applied |
| `dobaniten_req_ctrl_cd` | Field | Same-store transfer request control code — control code for same-store transfer request |
| `itens_opaf_toki_kibo_um` | Field | Transfer destination post-open transfer request desired presence/absence — desire for transfer after destination opens |
| `itens_opaf_toki_add_cd` | Field | Transfer destination post-open transfer registration code |
| `itens_opaf_toki_sbt_cd` | Field | Transfer destination post-open transfer type code |
| `itens_opaf_toki_sta_rsymd` | Field | Transfer destination post-open transfer start scheduled YMD |
| `itens_opaf_toki_sta_ymd` | Field | Transfer destination post-open transfer start YMD |
| `itens_opaf_toki_end_rsymd` | Field | Transfer destination post-open transfer end scheduled YMD |
| `itens_opaf_toki_end_ymd` | Field | Transfer destination post-open transfer end YMD |
| `itns_opaf_toki_tss_svkuwno` | Field | Transfer destination post-open transfer destination service contract detail number |
| `kk0191_gene_add_dtm` | Field | Generation registration datetime (service contract detail eo Light Phone) |
| `kk0161_gene_add_dtm` | Field | Generation registration datetime (service contract) |
| `svc_kei_ucwk_stat` | Field | Service contract detail status |
| `kari_touroku_flg` | Field | Pseudo-registration flag — whether this is a temporary/pseudo registration |
| `kari_mskm_flg` | Field | Pseudo-application flag — whether this is a pseudo/interim application |
| `nkys_ad_man_input_flg` | Field | NTT customer address manual input flag — whether NTT address was manually entered |
| `itnm_tsjgs_ktn_cd` | Field | Transfer origin telecommunications carrier node code — carrier code of the transfer origin |
| `bmp_koji_kibo_ymd` | Field | Phone book work desired YMD — desired date for phone book work |
| `bmpkj_kibo_time_cd` | Field | Phone book work desired time code |
| `dbaniten_mskmjig_kijiran_1` | Field | Same-store transfer application business operator entry field 1 |
| `dbaniten_mskmjig_kijiran_2` | Field | Same-store transfer application business operator entry field 2 |
| `emg_ad_chk_lv` | Field | Emergency contact address check level |
| `ntt_ad_chk_lv` | Field | NTT customer address check level |
| `pause_toki_end_sbt_cd` | Field | Pause transfer end type code |
| `dsl_pause_toki_tss_svkuwno` | Field | Cancellation/pause transfer destination service contract detail number |
| `dobaniten_ntt_keisha_nm` | Field | Same-store transfer NTT customer name |
| `dobaniten_ntt_ksh_kana` | Field | Same-store transfer NTT customer kana name |
| `mans_skbt_cd` | Field | Mansion identification code |
| `va_kiki_chg_no` | Field | VA device change number |
| `dobaniten_ttdk_jssis_skcd` | Field | Same-store transfer implementation operator identification code |
| `dbnitn_kopt_nai_skekka_cd` | Field | Same-store transfer KOPT internal screening result code |
| `koji_jssi_way` | Field | Work implementation method — how the physical installation work is performed |
| `sotei_switch_timez` | Field | Estimated switching time zone — predicted time window for service switching |
| `rsv_aply_ymd` | Field | Reservation application YMD |
| `rsv_aply_cd` | Field | Reservation application code |
| `add_dtm` | Field | Registration datetime |
| `add_opeacnt` | Field | Registration operator count |
| `upd_dtm` | Field | Update datetime |
| `upd_opeacnt` | Field | Update operator count |
| `mk_flg` | Field | Invalid flag — marks data as invalid |
| `svc_kei_no_err` | Field | Service contract number error flag |
| `mskm_dtl_no_err` | Field | Application detail number error flag |
| `telno_err` | Field | Telephone number error flag |
| eo光電話 (eo光でんわ) | Business term | eo Light Phone — NTT东's fiber-optic telephone service brand |
| EKK0191D010 | Screen/Process ID | Service Contract Detail eo Light Phone Registration — the screen ID this method supports |
| CAANMsg | Technical | K-Opticom's message envelope class used for CBS communication |
| EKK0191D010CBSMsg | Technical | CBS message schema class defining the structure of the EKK0191D010 data exchange |
| IRequestParameterReadWrite | Technical | Interface for request parameter objects that carry screen data and control info |
| CBS | Technical | Corporate Business System — the backend business logic layer in K-Opticom's architecture |
| SC | Technical | Service Component — the service layer that handles business operations and DB access |
| work area | Technical | A map/data structure used to carry data between screens and processing stages |
| 上りマッピング (nobori mapping) | Business term | Upstream mapping — transforming form input data into CBS message format (presentation to service layer) |
| 下りマッピング (kudari mapping) | Business term | Downstream mapping — transforming CBS response into screen-display format (service to presentation layer) |
| v1.00.00 追加 | Developer note | v1.00.00 addition — enhancement that added nested list extraction using `EKK0191D010List` and `index` parameter |
