# Business Logic — JKKKojiChgPlaceNoCC.editInMsgEKK0251C030() [95 LOC]

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

## 1. Role

### JKKKojiChgPlaceNoCC.editInMsgEKK0251C030()

This method is an **input message builder** for the Service Contract Circuit Content Modification screen (EKK0251C030) within K-Opticom's customer base system. It assembles a comprehensive two-dimensional Object array (`Object[][]`) containing approximately 59 field mappings that represent the complete state of a service contract's circuit content details — essentially a DTO (Data Transfer Object) prepared for downstream CBS (Component-Based Service) processing.

The method performs three core operations: (1) it retrieves the primary message list from the input `CAANMsg kaisenMsg` to access detailed circuit content data, (2) it resolves a fallback value for `mskmDtlNo` (application detail number) when not provided, (3) it computes a **line location check level** (`kisn_ad_chk_lv`) based on whether the line location address is locked for modification, and (4) it constructs the output array by pulling fields from both the message object and a context map (`ccMsg`), merging them into a single schema-matched payload.

The method implements a **builder pattern** — collecting disparate data sources into a unified structured output — and a **delegation pattern** — reading data from lower-level message objects (`EKK0251A010CBSMsg1List`) and context maps to populate a target schema (`EKK0251C030CBSMsg`). It serves as a shared utility called by screen processing logic (e.g., `execute()` and `editUpdPlaceNo()`), acting as a bridge between the presentation layer and the CBS service layer for the circuit content modification workflow.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editInMsgEKK0251C030 called"])
    START --> GET_MSG["Get first element from kaisenMsg.getCAANMsgList"]
    GET_MSG --> CHECK_MSKM{"mskmDtlNo
null or empty"}
    CHECK_MSKM -->|Yes| SET_MSKM["mskmDtlNo from msg.getString"]
    CHECK_MSKM -->|No| CHECK_FIXFLG{"kisn_plc_ad_mi_fix_flg
equals 1"}
    SET_MSKM --> CHECK_FIXFLG
    CHECK_FIXFLG -->|Yes| SET_LV2["kisn_ad_chk_lv = 2"]
    CHECK_FIXFLG -->|No| SET_LV1["kisn_ad_chk_lv = 1"]
    SET_LV2 --> BUILD_INMSG["Build Object[][] inMsg with 59 field mappings"]
    SET_LV1 --> BUILD_INMSG
    BUILD_INMSG --> RETURN_INMSG["Return inMsg"]
    RETURN_INMSG --> END_NODE(["Method returns"])
```

**Processing description:**
1. Extract the first element from `kaisenMsg.getCAANMsgList(EKK0251A010CBSMsg.EKK0251A010CBSMSG1LIST)` — this is the service contract circuit content detail agreement master data message.
2. If `mskmDtlNo` is null or empty, populate it from `msg.getString(EKK0251A010CBSMsg1List.MSKM_DTL_NO)` as a fallback.
3. Determine the line location check level: if `ccMsg.kisn_plc_ad_mi_fix_flg` equals `"1"`, set `kisn_ad_chk_lv = "2"` (strict check); otherwise set `kisn_ad_chk_lv = "1"` (normal check).
4. Build the output `Object[][] inMsg` containing 59 field mappings including template ID, function code, service contract circuit content number, address fields, scheduling dates, coordinate data, TV/antenna settings, VDSL configuration, power/schedule dates, and the resolved check level.
5. Return the constructed array.

**Constant Resolution:**
- `TEMPLATE_ID_EKK0251C030` = `"EKK0251C030"` (defined in `JKKAdInfChgConstCC`)
- `kisn_plc_ad_mi_fix_flg = "1"` means the line location address is locked for modification (unfixed flag is active).

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `kaisenUcwkNo` | `String` | Service contract circuit content number — the unique identifier for a service contract's circuit content modification work item. Used to locate the correct record. |
| 2 | `mskmDtlNo` | `String` | Application detail number — the line item sequence number within a service contract. If null or empty, it is resolved from the message data. |
| 3 | `lastUpdDtm` | `String` | Last update date-time (before) — the timestamp of the previous version of the record, used for optimistic concurrency control during updates. |
| 4 | `kaisenMsg` | `CAANMsg` | Service contract circuit content detail agreement master message — the primary data carrier containing all circuit content fields extracted from CBS. The method reads from its first list element. |
| 5 | `ccMsg` | `HashMap<String, Object>` | Context/contextual communication message map — carries screen-level computed values and user selections (e.g., address fix flag, telephone number, address codes, area codes, memo fields). |
| 6 | `placeNo` | `String` | Circuit place number — the specific circuit location identifier being modified. Represents the physical or logical circuit endpoint. |

**External state / instance fields read:** None directly. The method is self-contained and operates only on its parameters.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `kaisenMsg.getCAANMsgList` | EKK0251A010CBS | - | Retrieves the circuit content detail agreement master list from the CAANMsg container |
| R | `msg.getString(EKK0251A010CBSMsg1List.MSKM_DTL_NO)` | EKK0251A010CBS | - | Reads the application detail number from the message |
| R | `msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_RLS_YMD)` | EKK0251A010CBS | - | Reads the line location address unfixed release date |
| R | `msg.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG)` | EKK0251A010CBS | - | Reads the circuit place - contractor residence difference flag |
| R | `msg.getString(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG)` | EKK0251A010CBS | - | Reads the customer reported address unfixed flag |
| R | `msg.getString(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM)` | EKK0251A010CBS | - | Reads the customer SOS usage availability |
| R | `msg.getString(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO)` | EKK0251A010CBS | - | Reads the mansion project number |
| R | `msg.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KANA)` | EKK0251A010CBS | - | Reads the circuit place kana name |
| R | `msg.getString(EKK0251A010CBSMsg1List.AD_FORM_CD)` | EKK0251A010CBS | - | Reads the residence form code |
| R | `msg.getString(EKK0251A010CBSMsg1List.SHUNKO_RSV_YMD)` | EKK0251A010CBS | - | Reads the construction start scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.EPOWER_SODEN_RSV_YMD)` | EKK0251A010CBS | - | Reads the power transmission scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.NYUKYO_RSV_YMD)` | EKK0251A010CBS | - | Reads the move-in scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.HIKIWATASHI_RSV_YMD)` | EKK0251A010CBS | - | Reads the handover scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.HIKKOSHI_RSV_YMD)` | EKK0251A010CBS | - | Reads the moving scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.HIKKOSHI_YMD)` | EKK0251A010CBS | - | Reads the actual moving date |
| R | `msg.getString(EKK0251A010CBSMsg1List.XZAHYO)` | EKK0251A010CBS | - | Reads the X coordinate |
| R | `msg.getString(EKK0251A010CBSMsg1List.YZAHYO)` | EKK0251A010CBS | - | Reads the Y coordinate |
| R | `msg.getString(EKK0251A010CBSMsg1List.LGTD)` | EKK0251A010CBS | - | Reads the longitude |
| R | `msg.getString(EKK0251A010CBSMsg1List.LTTD)` | EKK0251A010CBS | - | Reads the latitude |
| R | `msg.getString(EKK0251A010CBSMsg1List.ZAHYO_HOSEI_UM)` | EKK0251A010CBS | - | Reads the coordinate correction availability |
| R | `msg.getString(EKK0251A010CBSMsg1List.TV_KOBET_TAIO_CD)` | EKK0251A010CBS | - | Reads the TV individual response code |
| R | `msg.getString(EKK0251A010CBSMsg1List.TV_ANTENNA_UM)` | EKK0251A010CBS | - | Reads the TV antenna availability |
| R | `msg.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_1)` | EKK0251A010CBS | - | Reads the direction code 1 |
| R | `msg.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_2)` | EKK0251A010CBS | - | Reads the direction code 2 |
| R | `msg.getString(EKK0251A010CBSMsg1List.KODATE_KCKU_FLR_CNT_CD)` | EKK0251A010CBS | - | Reads the house building floor count code |
| R | `msg.getString(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD)` | EKK0251A010CBS | - | Reads the residential building floor count code |
| R | `msg.getString(EKK0251A010CBSMsg1List.PON_SBT_CD)` | EKK0251A010CBS | - | Reads the PON subtype code |
| R | `msg.getString(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD)` | EKK0251A010CBS | - | Reads the circuit provider company code |
| R | `msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TEL_KISN_SBT_CD)` | EKK0251A010CBS | - | Reads the VDSL used telephone circuit subtype code |
| R | `msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_DKSN_SWCH_RSV_YMD)` | EKK0251A010CBS | - | Reads the VDSL used telephone circuit switching scheduled date |
| R | `msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_DBKSN_SBT_CD)` | EKK0251A010CBS | - | Reads the VDSL used target telephone number circuit subtype code |
| R | `msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_TELNO)` | EKK0251A010CBS | - | Reads the VDSL used target telephone number |
| R | `msg.getString(EKK0251A010CBSMsg1List.GAITO_AREA_SVC_STAYMD)` | EKK0251A010CBS | - | Reads the assigned area service start date |
| R | `msg.getString(EKK0251A010CBSMsg1List.TEKKYO_KOJI_KIBO_YMD)` | EKK0251A010CBS | - | Reads the demolition work desired date |
| R | `msg.getString(EKK0251A010CBSMsg1List.KITEN_HDSHO_CD)` | EKK0251A010CBS | - | Reads the starting substation code |
| R | `msg.getString(EKK0251A010CBSMsg1List.SHYAKK_CD)` | EKK0251A010CBS | - | Reads the dispatch office code |
| R | `msg.getString(EKK0251A010CBSMsg1List.KEPCO_BUSIOFFICE_CD)` | EKK0251A010CBS | - | Reads the KEPCO business office code |
| R | `msg.getString(EKK0251A010CBSMsg1List.SKS_YO_KISN_PLACE_AD_RM_NO)` | EKK0251A010CBS | - | Reads the invoice line location address room number |
| R | `msg.getString(EKK0251A010CBSMsg1List.TEL_BAS_HOST_ID)` | EKK0251A010CBS | - | Reads the telephone BAS host ID |
| R | `msg.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID)` | EKK0251A010CBS | - | Reads the telephone VLAN ID |
| R | `msg.getString(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG)` | EKK0251A010CBS | - | Reads the VLAN ID fix flag |
| R | `msg.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID_TRKM_YMD)` | EKK0251A010CBS | - | Reads the telephone VLAN ID provision date |
| R | `msg.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM)` | EKK0251A010CBS | - | Reads the invoice delivery address change availability |
| R | `msg.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_KIBO_YMD)` | EKK0251A010CBS | - | Reads the invoice delivery address change desired date |
| R | `msg.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_UM)` | EKK0251A010CBS | - | Reads the contractor residence change availability |
| R | `msg.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_KIBO_YMD)` | EKK0251A010CBS | - | Reads the contractor residence change desired date |
| R | `msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_1)` | EKK0251A010CBS | - | Reads the line location supplementary code 1 |
| R | `msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_2)` | EKK0251A010CBS | - | Reads the line location supplementary code 2 |
| R | `msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_KKK_SEIRI_CHU_FLG)` | EKK0251A010CBS | - | Reads the line location area consolidation in-progress flag |
| R | `ccMsg.get("kisn_plc_ad_mi_fix_flg")` | - | - | Reads the line location address unfixed flag from context map |
| M | `new Object[][]` | - | - | Constructs the output message array with ~59 field-value pairs |

Note: The pre-computed graph evidence from Step 4 of the original task lists 20+ `getString` calls. The full method contains significantly more `msg.getString()` calls (approximately 50+ total). All are Read operations against `EKK0251A010CBSMsg1List` schema fields.

## 5. Dependency Trace

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

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | JKKKojiChgPlaceNoCC | `JKKKojiChgPlaceNoCC.execute()` -> `editInMsgEKK0251C030()` | `msg.getString [R] EKK0251A010CBS` |
| 2 | JKKSvkeiShosaCC | `JKKSvkeiShosaCC.editUpdPlaceNo()` -> `editInMsgEKK0251C030()` | `msg.getString [R] EKK0251A010CBS` |

No screen/batch entry points (KKSV*) found within 8 hops. Direct callers are both business component classes: `JKKKojiChgPlaceNoCC` (its own `execute()` method) and `JKKSvkeiShosaCC` (the service inspection component's `editUpdPlaceNo()` method).

This method is a **leaf-level message builder** — it does not call any further service components, CBS, or DB methods. Its terminal operations are all Read (`getString`) operations against the `EKK0251A010CBSMsg1List` message schema fields.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (condition) `mskmDtlNo == null || "".equals(mskmDtlNo)` (L1244)

> If the application detail number is not provided, resolve it from the message data as a fallback.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmDtlNo = msg.getString(EKK0251A010CBSMsg1List.MSKM_DTL_NO)` // fallback from message [-> MSKM_DTL_NO = "mskm_dtl_no"] |

**Block 2** — IF/ELSE (condition) `"1".equals((String)ccMsg.get("kisn_plc_ad_mi_fix_flg"))` (L1248)

> Determine the line location check level. If the line location address is locked (fix flag = "1"), set strict check level "2". Otherwise, use normal check level "1". This level is used downstream to control how rigorously the address is validated during modification.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kisn_ad_chk_lv = "2"` // strict check: address is locked [-> kisn_plc_ad_mi_fix_flg = "1"] |
| 2 | ELSE | `kisn_ad_chk_lv = "1"` // normal check: address is not locked |

**Block 3** — Array Initialization (L1254–1324)

> Build the output message array containing all circuit content fields. This is the main body of the method — a version-patched block (v5.00.04, 修正開始/修正終了 = start/end of correction). Each row is a `{key, value}` pair where the key is a schema field constant from `EKK0251C030CBSMsg` and the value is sourced from either `msg.getString()` from `EKK0251A010CBSMsg1List` or `ccMsg.get()` from the context map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMsg = new Object[][]{...}` // ~59 field mappings |
| 2 | SET | `{EKK0251C030CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0251C030}` // [-> "EKK0251C030"] |
| 3 | SET | `{EKK0251C030CBSMsg.FUNC_CODE, "1"}` // function code = 1 |
| 4 | SET | `{EKK0251C030CBSMsg.SVC_KEI_KAISEN_UCWK_NO, kaisenUcwkNo}` // service contract circuit content number |
| 5 | SET | `{EKK0251C030CBSMsg.MSKM_DTL_NO, mskmDtlNo}` // application detail number (resolved in Block 1) |
| 6 | SET | `{EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG, (String)ccMsg.get("kisn_plc_ad_mi_fix_flg")}` // line location address unfixed flag |
| 7 | SET | `{EKK0251C030CBSMsg.KISN_PLC_AD_MI_FIX_RLS_YMD, msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_AD_MI_FIX_RLS_YMD)}` // unfixed release date |
| 8 | SET | `{EKK0251C030CBSMsg.KAISEN_PLC_KSH_AD_SAI_FLG, msg.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG)}` // contractor residence difference flag |
| 9 | SET | `{EKK0251C030CBSMsg.CUST_SKK_AD_MI_FIX_FLG, msg.getString(EKK0251A010CBSMsg1List.CUST_SKK_AD_MI_FIX_FLG)}` // customer reported address unfixed flag |
| 10 | SET | `{EKK0251C030CBSMsg.CUST_SOS_USE_UM, msg.getString(EKK0251A010CBSMsg1List.CUST_SOS_USE_UM)}` // customer SOS usage availability |
| 11 | SET | `{EKK0251C030CBSMsg.MANSION_BUKKEN_NO, msg.getString(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO)}` // mansion project number |
| 12 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_TELNO, (String)ccMsg.get("telno_shinsetsu")}` // circuit telephone number (from context) |
| 13 | SET | `{EKK0251C030CBSMsg.KAISEN_PLC_KANA, msg.getString(EKK0251A010CBSMsg1List.KAISEN_PLC_KANA)}` // circuit place kana name |
| 14 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_AD_CD, (String)ccMsg.get("kaisen_place_ad_cd")}` // circuit place address code |
| 15 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_PCD, (String)ccMsg.get("kaisen_place_pcd")}` // circuit place postal code |
| 16 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_STATE_NM, (String)ccMsg.get("kaisen_place_state_nm")}` // circuit place prefecture name |
| 17 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_CITY_NM, (String)ccMsg.get("kaisen_place_city_nm")}` // circuit place city name |
| 18 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_OAZTSU_NM, (String)ccMsg.get("kaisen_place_oaztsu_nm")}` // circuit place oaza (large district) name |
| 19 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_AZCHO_NM, (String)ccMsg.get("kaisen_place_azcho_nm")}` // circuit place cho (small district) name |
| 20 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_BNCHIGO, (String)ccMsg.get("kaisen_place_bnchigo")}` // circuit place land parcel number |
| 21 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_ADRTTM, (String)ccMsg.get("kaisen_place_adrttm")}` // circuit place address suffix / building name |
| 22 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_ADRRM, (String)ccMsg.get("kaisen_place_adrrm")}` // circuit place address suffix / room number |
| 23 | SET | `{EKK0251C030CBSMsg.KAISEN_PLACE_NO, placeNo}` // circuit place number (method parameter) |
| 24 | SET | `{EKK0251C030CBSMsg.KISN_PLC_KKK_SEIRI_CHU_FLG, (String)ccMsg.get("kisn_plc_kkk_seiri_chu_flg")}` // line location area consolidation in-progress flag |
| 25 | SET | `{EKK0251C030CBSMsg.KISN_PLC_HSK_CD_1, msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_1)}` // line location supplementary code 1 |
| 26 | SET | `{EKK0251C030CBSMsg.KISN_PLC_HSK_CD_2, msg.getString(EKK0251A010CBSMsg1List.KISN_PLC_HSK_CD_2)}` // line location supplementary code 2 |
| 27 | SET | `{EKK0251C030CBSMsg.KISN_PLC_HSK_MEMO, (String)ccMsg.get("kisn_plc_hsk_memo")}` // line location supplementary memo |
| 28 | SET | `{EKK0251C030CBSMsg.AD_FORM_CD, msg.getString(EKK0251A010CBSMsg1List.AD_FORM_CD)}` // residence form code |
| 29 | SET | `{EKK0251C030CBSMsg.SHUNKO_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.SHUNKO_RSV_YMD)}` // construction start scheduled date |
| 30 | SET | `{EKK0251C030CBSMsg.EPOWER_SODEN_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.EPOWER_SODEN_RSV_YMD)}` // power transmission scheduled date |
| 31 | SET | `{EKK0251C030CBSMsg.NYUKYO_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.NYUKYO_RSV_YMD)}` // move-in scheduled date |
| 32 | SET | `{EKK0251C030CBSMsg.HIKIWATASHI_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.HIKIWATASHI_RSV_YMD)}` // handover scheduled date |
| 33 | SET | `{EKK0251C030CBSMsg.HIKKOSHI_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.HIKKOSHI_RSV_YMD)}` // moving scheduled date |
| 34 | SET | `{EKK0251C030CBSMsg.XZAHYO, msg.getString(EKK0251A010CBSMsg1List.XZAHYO)}` // X coordinate |
| 35 | SET | `{EKK0251C030CBSMsg.YZAHYO, msg.getString(EKK0251A010CBSMsg1List.YZAHYO)}` // Y coordinate |
| 36 | SET | `{EKK0251C030CBSMsg.LGTD, msg.getString(EKK0251A010CBSMsg1List.LGTD)}` // longitude |
| 37 | SET | `{EKK0251C030CBSMsg.LTTD, msg.getString(EKK0251A010CBSMsg1List.LTTD)}` // latitude |
| 38 | SET | `{EKK0251C030CBSMsg.ZAHYO_HOSEI_UM, msg.getString(EKK0251A010CBSMsg1List.ZAHYO_HOSEI_UM)}` // coordinate correction availability |
| 39 | SET | `{EKK0251C030CBSMsg.TV_KOBET_TAIO_CD, msg.getString(EKK0251A010CBSMsg1List.TV_KOBET_TAIO_CD)}` // TV individual response code |
| 40 | SET | `{EKK0251C030CBSMsg.TV_ANTENNA_UM, msg.getString(EKK0251A010CBSMsg1List.TV_ANTENNA_UM)}` // TV antenna availability |
| 41 | SET | `{EKK0251C030CBSMsg.DIRECTION_CD_1, msg.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_1)}` // direction code 1 |
| 42 | SET | `{EKK0251C030CBSMsg.DIRECTION_CD_2, msg.getString(EKK0251A010CBSMsg1List.DIRECTION_CD_2)}` // direction code 2 |
| 43 | SET | `{EKK0251C030CBSMsg.KODATE_KCKU_FLR_CNT_CD, msg.getString(EKK0251A010CBSMsg1List.KODATE_KCKU_FLR_CNT_CD)}` // house building floor count code |
| 44 | SET | `{EKK0251C030CBSMsg.SHUGJ_NYUKYO_FLR_CNT_CD, msg.getString(EKK0251A010CBSMsg1List.SHUGJ_NYUKYO_FLR_CNT_CD)}` // residential building floor count code |
| 45 | SET | `{EKK0251C030CBSMsg.PON_SBT_CD, msg.getString(EKK0251A010CBSMsg1List.PON_SBT_CD)}` // PON subtype code |
| 46 | SET | `{EKK0251C030CBSMsg.KAISEN_TK_COMP_CD, msg.getString(EKK0251A010CBSMsg1List.KAISEN_TK_COMP_CD)}` // circuit provider company code |
| 47 | SET | `{EKK0251C030CBSMsg.VDSL_USE_TEL_KISN_SBT_CD, msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TEL_KISN_SBT_CD)}` // VDSL used telephone circuit subtype code |
| 48 | SET | `{EKK0251C030CBSMsg.VDSL_USE_DKSN_SWCH_RSV_YMD, msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_DKSN_SWCH_RSV_YMD)}` // VDSL telephone switching scheduled date |
| 49 | SET | `{EKK0251C030CBSMsg.VDSL_USE_TG_DBKSN_SBT_CD, msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_DBKSN_SBT_CD)}` // VDSL target telephone number circuit subtype |
| 50 | SET | `{EKK0251C030CBSMsg.VDSL_USE_TG_TELNO, msg.getString(EKK0251A010CBSMsg1List.VDSL_USE_TG_TELNO)}` // VDSL target telephone number |
| 51 | SET | `{EKK0251C030CBSMsg.HIKKOSHI_YMD, msg.getString(EKK0251A010CBSMsg1List.HIKKOSHI_YMD)}` // actual moving date |
| 52 | SET | `{EKK0251C030CBSMsg.GAITO_AREA_SVC_STAYMD, msg.getString(EKK0251A010CBSMsg1List.GAITO_AREA_SVC_STAYMD)}` // assigned area service start date |
| 53 | SET | `{EKK0251C030CBSMsg.TEKKYO_KOJI_KIBO_YMD, msg.getString(EKK0251A010CBSMsg1List.TEKKYO_KOJI_KIBO_YMD)}` // demolition work desired date |
| 54 | SET | `{EKK0251C030CBSMsg.KITEN_HDSHO_CD, msg.getString(EKK0251A010CBSMsg1List.KITEN_HDSHO_CD)}` // starting substation code |
| 55 | SET | `{EKK0251C030CBSMsg.SHYAKK_CD, msg.getString(EKK0251A010CBSMsg1List.SHYAKK_CD)}` // dispatch office code |
| 56 | SET | `{EKK0251C030CBSMsg.KEPCO_BUSIOFFICE_CD, msg.getString(EKK0251A010CBSMsg1List.KEPCO_BUSIOFFICE_CD)}` // KEPCO business office code |
| 57 | SET | `{EKK0251C030CBSMsg.SKS_YO_KISN_PLACE_AD_RM_NO, msg.getString(EKK0251A010CBSMsg1List.SKS_YO_KISN_PLACE_AD_RM_NO)}` // invoice line location address room number |
| 58 | SET | `{EKK0251C030CBSMsg.TEL_BAS_HOST_ID, msg.getString(EKK0251A010CBSMsg1List.TEL_BAS_HOST_ID)}` // telephone BAS host ID |
| 59 | SET | `{EKK0251C030CBSMsg.TEL_VLAN_ID, msg.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID)}` // telephone VLAN ID |
| 60 | SET | `{EKK0251C030CBSMsg.VLAN_ID_FIX_FLG, msg.getString(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG)}` // VLAN ID fix flag |
| 61 | SET | `{EKK0251C030CBSMsg.TEL_VLAN_ID_TRKM_YMD, msg.getString(EKK0251A010CBSMsg1List.TEL_VLAN_ID_TRKM_YMD)}` // telephone VLAN ID provision date |
| 62 | SET | `{EKK0251C030CBSMsg.SKS_SHS_AD_CHG_UM, msg.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_UM)}` // invoice delivery address change availability |
| 63 | SET | `{EKK0251C030CBSMsg.SKS_SHS_AD_CHG_KIBO_YMD, msg.getString(EKK0251A010CBSMsg1List.SKS_SHS_AD_CHG_KIBO_YMD)}` // invoice delivery address change desired date |
| 64 | SET | `{EKK0251C030CBSMsg.KSHAD_CHG_UM, msg.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_UM)}` // contractor residence change availability |
| 65 | SET | `{EKK0251C030CBSMsg.KSHAD_CHG_KIBO_YMD, msg.getString(EKK0251A010CBSMsg1List.KSHAD_CHG_KIBO_YMD)}` // contractor residence change desired date |
| 66 | SET | `{EKK0251C030CBSMsg.KISN_AD_CHK_LV, kisn_ad_chk_lv}` // line location check level (resolved in Block 2) |
| 67 | SET | `{EKK0251C030CBSMsg.UPD_DTM_BF, lastUpdDtm}` // update date-time before (parameter) |

**Block 4** — RETURN (L1327)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return inMsg;` // return the constructed message array to the caller |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `kaisenUcwkNo` | Field | Service contract circuit content work number — internal tracking ID for a circuit content modification work item |
| `mskmDtlNo` | Field | Application detail number — sequence number identifying a line item within a service contract application |
| `lastUpdDtm` | Field | Last update date-time (before) — timestamp of the previous version of the record, used for optimistic concurrency control |
| `placeNo` | Field | Circuit place number — unique identifier for a specific circuit endpoint or location |
| `kisn_plc_ad_mi_fix_flg` | Field | Line location address unfixed flag — when "1", the line location address is locked and cannot be freely modified |
| `kisn_ad_chk_lv` | Field | Line location check level — "1" = normal check, "2" = strict check based on address lock status |
| `telno_shinsetsu` | Key | Telephone number registration — newly registered telephone number stored in the context map |
| `kaisen_place_ad_cd` | Key | Circuit place address code — address classification code from the context map |
| `kaisen_place_pcd` | Key | Circuit place postal code — postal code from the context map |
| `kaisen_place_state_nm` | Key | Circuit place prefecture name — prefecture/region name from the context map |
| `kaisen_place_city_nm` | Key | Circuit place city/town name — city/municipality name from the context map |
| `kaisen_place_oaztsu_nm` | Key | Circuit place oaza name — large district name (大字通称) from the context map |
| `kaisen_place_azcho_nm` | Key | Circuit place cho name — small district name (字丁目) from the context map |
| `kaisen_place_bnchigo` | Key | Circuit place land parcel number — land lot/parcel number from the context map |
| `kaisen_place_adrttm` | Key | Circuit place address suffix / building name — additional address info or building name |
| `kaisen_place_adrrm` | Key | Circuit place address suffix / room number — room/suite number in the address |
| `kisn_plc_kkk_seiri_chu_flg` | Key | Line location area consolidation in-progress flag — indicates if the location is undergoing area reorganization |
| `kisn_plc_hsk_memo` | Key | Line location supplementary memo — additional notes about the location |
| `TEMPLATE_ID_EKK0251C030` | Constant | `"EKK0251C030"` — template identifier for the circuit content modification CBS schema |
| EKK0251A010CBS | CBS | Service contract circuit content detail agreement master — CBS that provides the source data for circuit content fields |
| EKK0251C030CBSMsg | Message Schema | Target message schema for circuit content modification — defines the output field layout |
| EKK0251A010CBSMsg1List | Message List | Source message list schema containing all circuit content detail agreement fields |
| CAANMsg | Type | Fujitsu's asynchronous message object — a structured data carrier used throughout the K-Opticom platform for CBS communication |
| K-Opticom | Business term | K-Opticom — Japanese fiber-optic ISP providing FTTH, mail, and other telecom services |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| PON | Business term | Passive Optical Network — the fiber distribution technology used by K-Opticom for broadband delivery |
| VDSL | Business term | Very-high-bit-rate Digital Subscriber Line — telephone-based broadband technology, coexists with fiber services |
| KEPCO | Business term | Korea Electric Power Corporation — the utility company whose business office codes are referenced for regional electricity/service area mapping |
| BAS | Acronym | Broadband Access Server — network equipment that handles telephone broadband connections |
| VLAN | Acronym | Virtual Local Area Network — network segmentation identifier used for telephone service isolation |
| HGW | Acronym | Home Gateway — customer-premises equipment for broadband connectivity |
| AD | Abbreviation | Address / 住所 — Japanese term for residential address used throughout field names |
| 回線 | Business term | Circuit / Line — refers to telecommunications circuit (回線 = kaisen) |
| 工事 | Business term | Construction / Installation work — installation work scheduled or completed for circuit services |
| 引越 | Business term | Moving — relocation of service from one address to another |
| 撤去 | Business term | Demolition / Removal — removal of installed equipment when service is cancelled |
| 集約局 | Business term | Dispatch office — the central telephone exchange or aggregation office serving a service area |
| 起点変電所 | Business term | Starting substation — the origin point of the power/circuit distribution network |
