---
# Business Logic — JBSbatKKAdChgAddDataCst.execute() [750 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.business.service.JBSbatKKAdChgAddDataCst` |
| Layer | Batch (package: `eo.business.service`, within the koptBatch module) |
| Module | `service` (Package: `eo.business.service`) |

## 1. Role

### JBSbatKKAdChgAddDataCst.execute()

This method serves as the core processing engine for **residence change registration data extraction** (住所変更登録対象データ抽出部品) within K-Opticom's customer core batch system. It is invoked as part of the batch processing flow initiated by `JBSbatKKAdChgCstScreenKidou` (住所変更 cst 画面移動, i.e., the residence change batch screen dispatcher).

The method performs a **dual-dispatch routing pattern**: it first queries four independent data sources to determine which categories of residence change operations are pending — delayed start service contracts (デレイド起動), move-in arrival confirmed contracts (入居予定日到着), new construction completion (新設工事完了), and cancellation completion (撤去工事完了) — then routes processing based on whichever data sources returned non-null results.

The method handles **three primary service operation branches**:

1. **Delayed Start / Move-In Arrival Branch** (highest priority): When a delayed-start or move-in-confirmed service contract line exists, this branch registers new service contract line information (移転先サービス契約回線内詳情報) and procedure information (手順情報) for the target service, while terminating the corresponding old (cancellation) service contract line.

2. **New Construction Completion Branch**: When new construction work order completion is detected, this branch derives the service usage start date from the work order implementation date (工事案件実施年月日), registers new service contract line and target service contract information, and sets up DSL (cancellation) regular processing.

3. **Cancellation Completion Branch**: When cancellation work order completion is detected, this branch calculates the service usage end date (使用終了日) from the latest cancellation work order implementation date and terminates the old service contract line.

Additionally, the method handles **mansion-to-home conversion** (マンション(メゾンプ)→ホーム): when a resident is moving from a mansion/mezono building to a regular home, it triggers initialization flags and retrieves last-updated datetime information for all service contract numbers (net, tel, tv) that need to be reset.

The method implements a **builder design pattern** — it accumulates output maps in an `outMap`, adds them to an `outputItem` list, and finally removes any surrendered service contract records before returning the complete output.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute(inMap)"])
    INIT(["Initialize outputItem, outMap, extract input fields: inAdchgNo, inItensSvkeiKisuwNo, inItnmSvkeiKisuwNo, kshadChgUm, adchgFinAddRunPtn, isDelayed"])
    COND_DELAYED{Is isDelayed = DELAYED_START}
    STEP_DELAYED["Query delayed start service contract line: executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(inItensSvkeiKisuwNo)"]
    STEP_MOVEIN["Check move-in arrival: executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026(inItensSvkeiKisuwNo, opeDate+1)"]
    STEP_NEW["Confirm new construction: executeKK_T_KJ_FIN_WK_KK_SELECT_020(inAdchgNo, opeDate) + loop db_KK_T_KJ_FIN_WK"]
    STEP_NEW_CHECK{newKjFinRnkiList empty?}
    STEP_NEW_SERVICE["Query new construction service line: executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(inItensSvkeiKisuwNo)"]
    STEP_DSL["Confirm cancellation: executeKU_T_KOJIAK_KK_SELECT_038(inAdchgNo, opeDate) + loop db_KU_T_KOJIAK"]
    STEP_DSL_CHECK{dslKjFinRnkiList empty?}
    STEP_DSL_SERVICE["Query cancellation service line: executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(inItnmSvkeiKisuwNo)"]
    EARLY_EXIT{All 4 service contract lines null?}
    HANDLE_DELAYED["Process delayed start / move-in branch: setAdchg, setNewSvkeiKaisenUw, loop ADCHG_DTL, process newSvcKeiNo, process dslSvcKeiNo"]
    HANDLE_NEW["Process new construction branch: setAdchg, setNewSvkeiKaisenUw, loop ADCHG_DTL, nested newKjFinRnkiList loop"]
    HANDLE_DSL["Process cancellation branch: setAdchg, setDslSvkeiKaisenUw, loop ADCHG_DTL, nested dslKjFinRnkiList loop"]
    SET_MANSION["Determine mansion-to-home flag (dslMansionBukkenNo != null AND newMansionBukkenNo == null)"]
    INIT_MANSION["Initialize mansion conversion output fields"]
    REMOVE_DUP["removeSurrenderServiceContract(outputItem)"]
    RETURN_OUTPUT["Return outputItem"]
    END(["Return / Next"])

    START --> INIT
    INIT --> COND_DELAYED
    COND_DELAYED -- "DELAYED_START = \"1\"" --> STEP_DELAYED
    COND_DELAYED -- "DELAYED_NOT_START = \"0\"" --> STEP_MOVEIN
    STEP_DELAYED --> STEP_MOVEIN
    STEP_MOVEIN --> STEP_NEW
    STEP_NEW --> STEP_NEW_CHECK
    STEP_NEW_CHECK -- "not empty" --> STEP_NEW_SERVICE
    STEP_NEW_CHECK -- "empty" --> STEP_DSL
    STEP_NEW_SERVICE --> STEP_DSL
    STEP_DSL --> STEP_DSL_CHECK
    STEP_DSL_CHECK -- "not empty" --> STEP_DSL_SERVICE
    STEP_DSL_CHECK -- "empty" --> EARLY_EXIT
    STEP_DSL_SERVICE --> EARLY_EXIT
    EARLY_EXIT -- "true (all null)" --> END
    EARLY_EXIT -- "false (has data)" --> HANDLE_DELAYED
    HANDLE_DELAYED --> HANDLE_NEW
    HANDLE_NEW --> HANDLE_DSL
    HANDLE_DSL --> SET_MANSION
    SET_MANSION --> INIT_MANSION
    INIT_MANSION --> REMOVE_DUP
    REMOVE_DUP --> RETURN_OUTPUT
    RETURN_OUTPUT --> END
```

**CRITICAL — Constant Resolution:**

| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `DELAYED_START` | `"1"` | Delayed start activated — service contract was triggered by a delayed batch run |
| `DELAYED_NOT_START` | `"0"` | Delayed start not activated — normal processing |
| `ADCHG_DTL_SBT_CD_SVC_KEI_NO` | `"01"` | Residence change detail type code — Service Contract Number |
| `ADCHG_DTL_SBT_CD_KOJIAK_NO` | `"06"` | Residence change detail type code — Work Order Number |
| `SVC_KEI_KAISEN_UCWK_STAT_UKTKZM` | `"010"` | Service contract line status — "Received" (受取済) |
| `SVC_KEI_KAISEN_UCWK_STAT_UNDER_USE` | `"100"` | Service contract line status — "In Use" (使用中) |
| `SVC_KEI_KAISEN_UCWK_STAT_INTACT` | `"210"` | Service contract line status — "Intact" (未使用) |
| `KU_T_KOJIAK_KOJIAK_STAT` | `"900"` | Work order status — "Suspended" (中止) |
| `MAX_DATE` | `"20991231"` | Max date sentinel — indicates usage has no defined end date (open-ended service) |
| `OPMS_CHGE_RNKI_YH_OFF` | `"0"` | OPMS change correlation flag — No correlation required |
| `OPMS_CHGE_RNKI_YH_ON` | `"1"` | OPMS change correlation flag — Correlation required |
| `SYS_TIME_BASE` | `"000000000"` | Time base — 0:0:0.000 |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message carrying residence change registration parameters. Contains: ADCHG_NO (residence change number), ITENS_SVKEI_KISUW_NO (destination service contract line number), ITNM_SVKEI_KISUW_NO (origin service contract line number), KSHAD_CHG_UM (contractor residence change indicator), ADCHG_FIN_ADD_RUN_PTN (residence change confirmation pattern: 1=residence change confirmation, 2=post-confirmation cancellation completion), IS_DELAYED (delayed start flag: 1=delayed, 0=normal) |

**Instance fields read by the method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `itenMotoSvcNoNet` | `String` | Origin net service contract number — the original net service number before transfer (initialized to null at method start per ANK-1429) |
| `itenMotoSvcNoTel` | `String` | Origin tel service contract number — the original phone service number before transfer |
| `itenMotoSvcNoTv` | `String` | Origin tv service contract number — the original TV service number before transfer |
| `db_KK_T_SVKEI_KAISEN_UW` | `JBSbatSQLAccess` | DB access for the service contract line table (KK_T_SVKEI_KAISEN_UW) |
| `db_KK_T_KJ_FIN_WK` | `JBSbatSQLAccess` | DB access for the construction completion work table (KK_T_KJ_FIN_WK) |
| `db_KK_T_ADCHG_DTL` | `JBSbatSQLAccess` | DB access for the residence change details table (KK_T_ADCHG_DTL) |
| `db_KU_T_KOJIAK` | `JBSbatSQLAccess` | DB access for the work order table (KU_T_KOJIAK) |
| `db_KU_T_SVKEI_KOJIAK` | `JBSbatSQLAccess` | DB access for the service contract-work order table (KU_T_SVKEI_KOJIAK) |
| `db_KK_T_KAISEN_TG_SVKEI` | `JBSbatSQLAccess` | DB access for the target service contract table (KK_T_KAISEN_TG_SVKEI) |
| `db_KK_T_SVKEI_EXC_CTRL` | `JBSbatSQLAccess` | DB access for the service contract exception control table (KK_T_SVKEI_EXC_CTRL) |
| `db_KK_T_SVC_KEI` | `JBSbatSQLAccess` | DB access for the service contract table (KK_T_SVC_KEI) |
| `opeDate` | `String` | Operation date — derived from parent class common info, used as the processing date for date queries |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023` | - | KK_T_SVKEI_KAISEN_UW | Selects service contract line by service contract line number. Called for delayed start, new construction, and cancellation branches. |
| R | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026` | - | KK_T_SVKEI_KAISEN_UW | Selects service contract line by service contract line number and date (day after operation date). Used to check move-in arrival. |
| R | `executeKK_T_KJ_FIN_WK_KK_SELECT_020` | - | KK_T_KJ_FIN_WK | Selects construction completion work records by residence change number and operation date. |
| R | `executeKU_T_KOJIAK_KK_SELECT_038` | - | KU_T_KOJIAK | Selects work order completion records by residence change number and operation date. Replaced executeKK_T_KJ_FIN_WK_KK_SELECT_019 per OM-2014-0003552. |
| R | `executeKK_T_ADCHG_DTL_KK_SELECT_003` | - | KK_T_ADCHG_DTL | Selects residence change detail records by residence change number and detail type code. Called with type codes "01" (service contract number) and "06" (work order number). |
| R | `executeKU_T_KOJIAK_KK_SELECT_011` | - | KU_T_KOJIAK | Selects work order information by work order number. Used to retrieve implementation date (工事案件実施年月日). |
| R | `executeKU_T_SVKEI_KOJIAK_KK_SELECT_007` | - | KU_T_SVKEI_KOJIAK | Selects service contract-work order mapping by service contract number and work order number. |
| R | `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024` | - | KK_T_KAISEN_TG_SVKEI | Selects target service contract line by operation date, service contract number, and service contract line number. |
| R | `executeKK_T_SVC_KEI_KK_SELECT_112` | - | KK_T_SVC_KEI | Selects service contract information by service contract number and operation date. Used in DSL new branch. |
| R | `executeKK_T_SVKEI_EXC_CTRL_PKSELECT` | - | KK_T_SVKEI_EXC_CTRL | Selects service contract exception control record by service contract number. Used to retrieve last update datetime. |
| U | `setAdchg` | - | - | Sets residence change output information (address change number and update datetime) in outMap. |
| U | `setNewSvkeiKaisenUw` | - | - | Sets new service contract line registration output (destination service contract line number, registration datetime, usage start date, update datetime). |
| U | `setNewKaisenTgSvkei` | - | - | Sets new target service contract output (service code, destination service contract line number, destination service contract number, usage start date, update datetime). |
| U | `setDslKaisenTgSvkei` | - | - | Sets old target service contract termination output (service code, origin service contract line number, origin service contract number, usage end date, update datetime). |
| U | `setDslSvkeiKaisenUw` | - | - | Sets old service contract line registration output (origin service contract line number, registration datetime, usage end date, update datetime). |
| U | `setPrg` | - | - | Sets procedure information (手順情報) for service contracts. Registers forwarding (進捗登録) for both DSL and new sides when DSL new. |
| U | `setSvcKeiHktg` | - | - | Sets service contract succession (サービス契約引継) information: successor service number, successor registration datetime, successor start date, successor last update datetime. |
| U | `setAdChgNewKojiak` | - | - | Sets address change to new work order registration output (service code, residence change number, new service contract number). |
| U | `setItenMotoSvcNo` | - | - | Preserves origin service contract number classification (net/tel/tv) from target service contract line info. |
| D | `removeSurrenderServiceContract` | - | - | Removes surrender service contract information from outputItem — cleans up cancelled service contract records after main processing. |
| - | `JBSbatDateUtil.adjustDate` | - | - | Date arithmetic — adds/subtracts days to/from operation date (e.g., opeDate+1 for next day, opeDate-1 for day before). |
| - | `JBSbatDateUtil.checkDate` | - | - | Validates date format and length (8-digit YYYYMMDD check). |
| - | `JBSbatDateUtil.dayDiff` | - | - | Computes date difference between two dates for comparing usage start/end dates. |
| - | `JBSbatKKAdChgAddDataCst.isBlank` | - | - | Utility: checks if a string is null or blank. |
| - | `JBSbatKKAdChgAddDataCst.isSvcKeizoku` | - | - | Utility: checks if service continuation applies (service number unchanged between origin and destination). |
| - | `JBSbatKKAdChgAddDataCst.isDslNew` | - | - | Utility: checks if this is a DSL+new pattern (cancellation+new registration), replacing the old `"0"` constant check on SVC_KEI_IDO_SBT_CD. |
| - | `JBSbatKKAdChgAddDataCst.isIdoSbtHoryu` | - | - | Utility: checks if transfer subject preservation applies (settlement service continuation check). |
| - | `JBSbatKKAdChgAddDataCst.isZanTgSvcKei` | - | - | Utility: checks for remaining target service contracts that have not been fully processed. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: `JBSbatKKAdChgCstScreenKidou` | `JBSbatKKAdChgCstScreenKidou` creates `JBSbatKKAdChgAddDataCst` instance (line 187) → invokes `execute(inMap)` | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023 [R] KK_T_SVKEI_KAISEN_UW`, `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026 [R] KK_T_SVKEI_KAISEN_UW`, `executeKK_T_KJ_FIN_WK_KK_SELECT_020 [R] KK_T_KJ_FIN_WK`, `executeKU_T_KOJIAK_KK_SELECT_038 [R] KU_T_KOJIAK`, `executeKK_T_ADCHG_DTL_KK_SELECT_003 [R] KK_T_ADCHG_DTL`, `executeKU_T_KOJIAK_KK_SELECT_011 [R] KU_T_KOJIAK`, `executeKU_T_SVKEI_KOJIAK_KK_SELECT_007 [R] KU_T_SVKEI_KOJIAK`, `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024 [R] KK_T_KAISEN_TG_SVKEI`, `executeKK_T_SVC_KEI_KK_SELECT_112 [R] KK_T_SVC_KEI`, `executeKK_T_SVKEI_EXC_CTRL_PKSELECT [R] KK_T_SVKEI_EXC_CTRL`, `setAdchg [U] outMap`, `setNewSvkeiKaisenUw [U] outMap`, `setNewKaisenTgSvkei [U] outMap`, `setDslKaisenTgSvkei [U] outMap`, `setDslSvkeiKaisenUw [U] outMap`, `setPrg [U] outMap`, `setSvcKeiHktg [U] outMap`, `setAdChgNewKojiak [U] outMap`, `setItenMotoSvcNo [U] outMap`, `removeSurrenderServiceContract [D] outputItem` |

## 6. Per-Branch Detail Blocks

### Block 1 — Initialization `(L250)`

> Initializes output items, creates the outMap, and extracts all input fields from the input message.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputItem = new JBSbatOutputItem()` // Create output container |
| 2 | SET | `outMap = new JBSbatServiceInterfaceMap()` // Create output map |
| 3 | EXEC | `outMap.setOutFlg(true)` // Set output flag |
| 4 | SET | `inAdchgNo = inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO)` // Residence change number |
| 5 | SET | `inItensSvkeiKisuwNo = inMap.getString(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO)` // Destination service contract line number |
| 6 | SET | `inItnmSvkeiKisuwNo = inMap.getString(JBSbatKK_T_ADCHG.ITNM_SVKEI_KISUW_NO)` // Origin service contract line number |
| 7 | SET | `kshadChgUm = inMap.getString(JBSbatKK_T_ADCHG.KSHAD_CHG_UM)` // Contractor residence change indicator |
| 8 | SET | `adchgFinAddRunPtn = inMap.getString("ADCHG_FIN_ADD_RUN_PTN")` // Residence change confirmation pattern [-> "1": residence change confirmation, "2": post-confirmation cancellation completion] |
| 9 | SET | `isDelayed = inMap.getString("IS_DELAYED")` // Delayed start flag |
| 10 | IF | `if (isBlank(isDelayed))` → `isDelayed = DELAYED_NOT_START` [-> "0"] // Default to non-delayed |
| 11 | SET | `delayedStartKisnInfo = null; nyukyoRsvTriKisnInfo = null; newKjFinRnkiKisnInfo = null; dslKjFinRnkiKisnInfo = null` // Service contract line info variables |
| 12 | SET | `itenMotoSvcNoNet = null; itenMotoSvcNoTel = null; itenMotoSvcNoTv = null` // Reset origin service contract numbers (ANK-1429) |

### Block 2 — Delayed Start Query `(L334)`

> When the delayed start flag is active, retrieves the destination service contract line information.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `[isDelayed = DELAYED_START = "1"]` (L334) |
| 2 | CALL | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItensSvkeiKisuwNo})` // Query destination service contract line |
| 3 | SET | `delayedStartKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext()` // Retrieve result |

### Block 3 — Move-In Arrival Check `(L343)`

> When the confirmation pattern is NOT "2" (post-confirmation cancellation), checks if the move-in scheduled day has arrived.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `!adchgFinAddRunPtn.equals("2")` (L343) // Skip for post-confirmation cancellation |
| 2 | CALL | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026(new String[]{inItensSvkeiKisuwNo, JBSbatDateUtil.adjustDate(opeDate, 1)})` // Query by service contract line number and next day |
| 3 | SET | `nyukyoRsvTriKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext()` // Retrieve result |

### Block 4 — New Construction Completion Check `(L355)`

> When the confirmation pattern is NOT "2", queries for construction completion work records.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `!adchgFinAddRunPtn.equals("2")` (L355) // Skip for post-confirmation cancellation |
| 2 | SET | `newKjFinRnkiList = new ArrayList<JBSbatCommonDBInterface>()` // Initialize completion list |
| 3 | CALL | `executeKK_T_KJ_FIN_WK_KK_SELECT_020(new String[]{inAdchgNo, opeDate})` // Query construction completion work |
| 4 | FOR | Loop: `for (newKjFinRnkiInfo = db_KK_T_KJ_FIN_WK.selectNext(); ...)` // Collect all completion records |
| 5 | IF | **IF** `!newKjFinRnkiList.isEmpty()` — has construction completion records (L366) |
| 6 | CALL | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItensSvkeiKisuwNo})` // Query destination service line |
| 7 | SET | `newKjFinRnkiKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext()` // Retrieve service line info |

### Block 5 — Cancellation Completion Check `(L381)`

> Queries for cancellation work order completion records using KU_T_KOJIAK table.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dslKjFinRnkiList = new ArrayList<JBSbatCommonDBInterface>()` // Initialize list |
| 2 | CALL | `executeKU_T_KOJIAK_KK_SELECT_038(new String[]{inAdchgNo, opeDate})` // Query cancellation work completion (replaced executeKK_T_KJ_FIN_WK_KK_SELECT_019 per OM-2014-0003552) |
| 3 | FOR | Loop: `for (dslKjFinRnkiInfo = db_KU_T_KOJIAK.selectNext(); ...)` // Collect all cancellation completion records |
| 4 | IF | **IF** `!dslKjFinRnkiList.isEmpty()` — has cancellation completion records (L396) |
| 5 | CALL | `executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItnmSvkeiKisuwNo})` // Query origin service line |
| 6 | SET | `dslKjFinRnkiKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext()` // Retrieve service line info |

### Block 6 — Early Exit Check `(L409)`

> If none of the four service contract line information variables have data, exit early.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `delayedStartKisnInfo == null && nyukyoRsvTriKisnInfo == null && newKjFinRnkiKisnInfo == null && dslKjFinRnkiKisnInfo == null` (L409) |
| 2 | RETURN | `return null` // No work to do — no service contract data available |

### Block 7 — Delayed Start / Move-In Branch `(L411)`

> Highest priority branch. Processes delayed start and move-in arrival service contracts. Sets address change, registers new service line, processes each detail record.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `delayedStartKisnInfo != null || nyukyoRsvTriKisnInfo != null` (L411) |
| 2 | CALL | `setAdchg(outMap, inAdchgNo, inMap.getString(JBSbatKK_T_ADCHG.UPD_DTM))` // Set address change (ST1-2013-0000503) |
| 3 | SET | `targKisnInfo = delayedStartKisnInfo != null ? delayedStartKisnInfo : nyukyoRsvTriKisnInfo` // Select target info |
| 4 | SET | `targUseStaymd = delayedStartKisnInfo != null ? opeDate : nyukyoRsvTriKisnInfo.getString(NYUKYO_RSV_YMD)` // Usage start date |
| 5 | IF | **IF** `SVC_KEI_KAISEN_UCWK_STAT_UKTKZM = "010" (Received)` AND `(isBlank(USE_STAYMD) OR USE_STAYMD = MAX_DATE = "20991231")` (L437) |
| 6 | CALL | `setNewSvkeiKaisenUw(outMap, ...)` // Register new service contract line with destination line number, registration datetime, usage start date, update datetime |
| 7 | CALL | `executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO = "01"})` // Query service contract number details |
| 8 | FOR | **FOR LOOP** `for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); ...)` (L450) |
| 9 | SET | `newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHAF_SKBT_NO)` // Extract new service contract number |
| 10 | IF | **IF** `!isBlank(newSvcKeiNo)` (L456) — new service contract number exists |
| 11 | CALL | `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, newSvcKeiNo, inItensSvkeiKisuwNo})` // Query target service contract |
| 12 | SET | `newKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext()` // Retrieve |
| 13 | IF | **IF** `newKisnTgSvkeiInfo != null` (L461) |
| 14 | IF | **IF** `isBlank(KAISEN_UCWK_USE_STAYMD) OR KAISEN_UCWK_USE_STAYMD = MAX_DATE` (L463) — no defined usage start date |
| 15 | CALL | `setNewKaisenTgSvkei(outMap, SVC_CD, SVC_KEI_KAISEN_UCWK_NO, SVC_KEI_NO, targUseStaymd, UPD_DTM)` // Register new target service contract |
| 16 | CALL | `setAdChgNewKojiak(outMap, SVC_CD, inAdchgNo, newSvcKeiNo)` // Register address change to new work order |
| 17 | IF | **IF** `isSvcKeizoku(adcDtlSvcKeiNoInfo)` — service continuation applies (L479) |
| 18 | CALL | `setPrg(outMap, SVC_CD, newSvcKeiNo, kshadChgUm, true)` // Register procedure for new side |
| 19 | ELSE-IF | **ELSE-IF** `isDslNew(adcDtlSvcKeiNoInfo)` — DSL + new pattern (L482) |
| 20 | SET | `dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHBF_SKBT_NO)` // Extract cancellation service number |
| 21 | CALL | `setPrg(outMap, SVC_CD, newSvcKeiNo, dslSvcKeiNo, kshadChgUm, true)` // Register procedure for both sides |
| 22 | IF | **IF** `isDslNew(adcDtlSvcKeiNoInfo)` — DSL new branch (L490) |
| 23 | CALL | `dslSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{CHBF_SKBT_NO, opeDate})` // Query cancellation service contract |
| 24 | CALL | `newSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{newSvcKeiNo, opeDate})` // Query new service contract |
| 25 | CALL | `newSvkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{newSvcKeiNo})` // Query exception control |
| 26 | IF | **IF** `dslSvcKeiInfo != null && newSvcKeiInfo != null && newSvkeiExcCtrlInfo != null` (L499) |
| 27 | SET | `hktgsSvcKeiGeneAddDtm = newSvcKeiInfo.getString(GENE_ADD_DTM)` // Successor registration datetime |
| 28 | SET | `hktgsSvcKeiLastUpdDtm = newSvkeiExcCtrlInfo.getString(LAST_UPD_DTM)` // Successor last update datetime |
| 29 | SET | `svcStaYmd = dslSvcKeiInfo.getString(SVC_STA_YMD)` // Successor service start date |
| 30 | CALL | `setSvcKeiHktg(outMap, SVC_CD, newSvcKeiNo, hktgsSvcKeiGeneAddDtm, svcStaYmd, hktgsSvcKeiLastUpdDtm)` // Set service contract succession |
| 31 | SET | `dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHBF_SKBT_NO)` // Extract cancellation service number |
| 32 | IF | **IF** `!isBlank(dslSvcKeiNo)` — cancellation service number exists (L519) |
| 33 | CALL | `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, dslSvcKeiNo, inItnmSvkeiKisuwNo})` // Query old target service contract |
| 34 | SET | `dslKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext()` // Retrieve |
| 35 | IF | **IF** `dslKisnTgSvkeiInfo != null` (L525) |
| 36 | CALL | `setItenMotoSvcNo(adcDtlSvcKeiNoInfo, dslKisnTgSvkeiInfo)` // Preserve origin service numbers (ANK-1429) |
| 37 | IF | **IF** `isBlank(KAISEN_UCWK_USE_ENDYMD) OR KAISEN_UCWK_USE_ENDYMD = MAX_DATE` (L529) |
| 38 | IF | **IF** `!SVC_KEI_IDO_SBT_CD = "2"` (L531) — not transfer subject |
| 39 | IF | **IF** `dslSvcKeiNo != null && newSvcKeiNo != null && dslSvcKeiNo.equals(newSvcKeiNo)` — service continuation only (L534) |
| 40 | CALL | `setDslKaisenTgSvkei(outMap, SVC_CD, SVC_KEI_KAISEN_UCWK_NO, SVC_KEI_NO, adjustDate(targUseStaymd, -1), UPD_DTM)` // Terminate old target service contract |

### Block 8 — New Construction Branch `(L574)`

> Processes new construction completion. Derives usage start date from work order implementation dates.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | **ELSE-IF** `newKjFinRnkiKisnInfo != null` (L574) — new construction completed |
| 2 | CALL | `setAdchg(outMap, inAdchgNo, inMap.getString(JBSbatKK_T_ADCHG.UPD_DTM))` // Set address change |
| 3 | IF | **IF** `SVC_KEI_KAISEN_UCWK_STAT_UKTKZM = "010"` AND `(isBlank(USE_STAYMD) OR USE_STAYMD = MAX_DATE)` (L578) |
| 4 | SET | `tempUseStaymd = null` // Temporary usage start date |
| 5 | CALL | `executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_KOJIAK_NO = "06"})` // Query work order numbers |
| 6 | FOR | **FOR LOOP** `for (adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext(); ...)` (L588) |
| 7 | SET | `newKojiakNo = adcDtlKojiakNoInfo.getString(CHAF_SKBT_NO)` // Extract work order number |
| 8 | IF | **IF** `isBlank(newKojiakNo)` → `continue` (L593) |
| 9 | CALL | `executeKU_T_KOJIAK_KK_SELECT_011(new String[]{newKojiakNo})` // Query work order info |
| 10 | SET | `kojiakInfo = db_KU_T_KOJIAK.selectNext()` // Retrieve |
| 11 | IF | **IF** `kojiakInfo == null` → `continue` (L602) |
| 12 | SET | `kojiakJssiYmd = kojiakInfo.getString(KOJIAK_JSSI_YMD)` // Work order implementation date |
| 13 | IF | **IF** `!JBSbatDateUtil.checkDate(kojiakJssiYmd, 8)` → `continue` (L607) — invalid date format |
| 14 | IF | **IF** `isBlank(tempUseStaymd)` → `tempUseStaymd = kojiakJssiYmd` (L611) — first date |
| 15 | ELSE-IF | **ELSE-IF** `-1 < JBSbatDateUtil.dayDiff(tempUseStaymd, kojiakJssiYmd, "2")` (L615) — use the LATER date |
| 16 | SET | `tempUseStaymd = kojiakJssiYmd` // Update to latest implementation date |
| 17 | IF | **IF** `!isBlank(tempUseStaymd)` (L620) — usage start date was derived |
| 18 | CALL | `setNewSvkeiKaisenUw(outMap, SVC_KEI_KAISEN_UCWK_NO, GENE_ADD_DTM, tempUseStaymd, UPD_DTM)` // Register new service line |
| 19 | CALL | `executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO = "01"})` // Query service contract numbers |
| 20 | FOR | **FOR LOOP** `for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); ...)` (L647) |
| 21 | SET | `newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHAF_SKBT_NO)` // New service contract number |
| 22 | IF | **IF** `isBlank(newSvcKeiNo)` → `continue` (L653) |
| 23 | FOR | **NESTED FOR** `for (tempNewKjFinRnkiInfo : newKjFinRnkiList)` (L656) — iterate over construction completion records |
| 24 | CALL | `executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(new String[]{newSvcKeiNo, tempNewKjFinRnkiInfo.getString(KOJIAK_NO)})` // Query service-contract mapping |
| 25 | SET | `svkeiKojiakInfo = db_KU_T_SVKEI_KOJIAK.selectNext()` // Retrieve |
| 26 | IF | **IF** `svkeiKojiakInfo == null` → `continue` (L662) |
| 27 | IF | **IF** `isSvcKeizoku(adcDtlSvcKeiNoInfo)` (L665) |
| 28 | CALL | `setPrg(outMap, SVC_CD, newSvcKeiNo, kshadChgUm, true)` // Register procedure |
| 29 | ELSE-IF | **ELSE-IF** `isDslNew(adcDtlSvcKeiNoInfo)` (L668) |
| 30 | SET | `dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHBF_SKBT_NO)` |
| 31 | CALL | `setPrg(outMap, SVC_CD, newSvcKeiNo, dslSvcKeiNo, kshadChgUm, true)` // Register both sides |
| 32 | CALL | `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, newSvcKeiNo, inItensSvkeiKisuwNo})` // Query target |
| 33 | SET | `newKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext()` // Retrieve |
| 34 | IF | **IF** `newKisnTgSvkeiInfo == null` → `continue` (L682) |
| 35 | CALL | `setAdChgNewKojiak(outMap, SVC_CD, inAdchgNo, newSvcKeiNo)` // Register address change to work order |
| 36 | IF | **IF** `isBlank(KAISEN_UCWK_USE_STAYMD) OR KAISEN_UCWK_USE_STAYMD = MAX_DATE` (L688) |
| 37 | CALL | `setNewKaisenTgSvkei(outMap, SVC_CD, SVC_KEI_KAISEN_UCWK_NO, SVC_KEI_NO, svkeiKojiakInfo.getString(KOJIAK_JSSI_YMD), UPD_DTM)` // Register new target |
| 38 | SET | `dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHBF_SKBT_NO)` // Old service number |
| 39 | IF | **IF** `isBlank(dslSvcKeiNo)` → `continue` (L708) |
| 40 | CALL | `executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, dslSvcKeiNo, inItnmSvkeiKisuwNo})` // Query old target |
| 41 | SET | `dslKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext()` // Retrieve |
| 42 | IF | **IF** `dslKisnTgSvkeiInfo == null` → `continue` (L717) |
| 43 | CALL | `setItenMotoSvcNo(adcDtlSvcKeiNoInfo, dslKisnTgSvkeiInfo)` // Preserve origin numbers |
| 44 | IF | **IF** `isBlank(KAISEN_UCWK_USE_ENDYMD) OR KAISEN_UCWK_USE_ENDYMD = MAX_DATE` (L722) |
| 45 | IF | **IF** `dslSvcKeiNo != null && newSvcKeiNo != null && dslSvcKeiNo.equals(newSvcKeiNo)` (L725) — service continuation |
| 46 | CALL | `setDslKaisenTgSvkei(outMap, SVC_CD, SVC_KEI_KAISEN_UCWK_NO, SVC_KEI_NO, adjustDate(svkeiKojiakInfo.getString(KOJIAK_JSSI_YMD), -1), UPD_DTM)` // Terminate old |
| 47 | IF | **IF** `isDslNew(adcDtlSvcKeiNoInfo)` (L734) — DSL new branch |
| 48 | CALL | `dslSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(...)` // Query cancellation |
| 49 | CALL | `newSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(...)` // Query new |
| 50 | CALL | `newSvkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{newSvcKeiNo})` // Query control |
| 51 | IF | **IF** all three non-null (L742) |
| 52 | CALL | `setSvcKeiHktg(outMap, SVC_CD, newSvcKeiNo, hktgsSvcKeiGeneAddDtm, svcStaYmd, hktgsSvcKeiLastUpdDtm)` // Set succession |

### Block 9 — Cancellation Branch `(L781)`

> Processes cancellation completion. Derives usage end date from cancellation work order dates and terminates old service contracts.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `dslKjFinRnkiKisnInfo != null` (L781) — cancellation completed |
| 2 | SET | `dslKasenUseEndYmd = dslKjFinRnkiKisnInfo.getString(USE_ENDYMD)` // Get usage end date from service line |
| 3 | IF | **IF** `SVC_KEI_KAISEN_UCWK_STAT_UNDER_USE = "100" (In Use)` AND `(isBlank(dslKasenUseEndYmd) OR dslKasenUseEndYmd = MAX_DATE)` (L792) |
| 4 | SET | `tempUseEndymd = null` // Temporary usage end date |
| 5 | CALL | `executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_KOJIAK_NO = "06"})` // Query work order numbers |
| 6 | FOR | **FOR LOOP** `for (adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext(); ...)` (L799) |
| 7 | SET | `dslKojiakNo = adcDtlKojiakNoInfo.getString(CHBF_SKBT_NO)` // Cancellation work order number |
| 8 | IF | **IF** `isBlank(dslKojiakNo)` → `continue` (L804) |
| 9 | CALL | `executeKU_T_KOJIAK_KK_SELECT_011(new String[]{dslKojiakNo})` // Query work order info |
| 10 | SET | `kojiakInfo = db_KU_T_KOJIAK.selectNext()` // Retrieve |
| 11 | IF | **IF** `kojiakInfo == null` → `tempUseEndymd = null; break` (L814) — no cancellation info, abort |
| 12 | SET | `kojiakJssiYmd = kojiakInfo.getString(KOJIAK_JSSI_YMD)` // Implementation date |
| 13 | IF | **IF** `!JBSbatDateUtil.checkDate(kojiakJssiYmd, 8)` → `continue` (L820) |
| 14 | IF | **IF** `isBlank(tempUseEndymd)` → `tempUseEndymd = kojiakJssiYmd` (L824) — first date |
| 15 | ELSE-IF | **ELSE-IF** `dayDiff(tempUseEndymd, kojiakJssiYmd, "2") < 0` (L828) — use the EARLIER date |
| 16 | SET | `tempUseEndymd = kojiakJssiYmd` // Update to earliest implementation date |
| 17 | IF | **IF** `!isBlank(tempUseEndymd)` (L832) — usage end date was derived |
| 18 | IF | **IF** `!isIdoSbtHoryu(inAdchgNo)` (L834) — not subject to transfer preservation |
| 19 | IF | **IF** `!isZanTgSvcKei(inAdchgNo, SVC_KEI_KAISEN_UCWK_NO)` (L836) — no remaining target service contracts |
| 20 | CALL | `setDslSvkeiKaisenUw(outMap, SVC_KEI_KAISEN_UCWK_NO, GENE_ADD_DTM, tempUseEndymd, UPD_DTM)` // Terminate old service line |
| 21 | CALL | `executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO = "01"})` // Query service numbers |
| 22 | FOR | **FOR LOOP** `for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); ...)` (L871) |
| 23 | SET | `dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(CHBF_SKBT_NO)` // Old service number |
| 24 | IF | **IF** `isBlank(dslSvcKeiNo)` → `continue` (L876) |
| 25 | FOR | **NESTED FOR** `for (tempDslKjFinRnkiInfo : dslKjFinRnkiList)` (L880) — iterate over cancellation completion records |
| 26 | CALL | `executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(new String[]{CHBF_SKBT_NO, tempDslKjFinRnkiInfo.getString(KOJIAK_NO)})` // Query mapping |
| 27 | SET | `svkeiKojiakInfo = db_KU_T_SVKEI_KOJIAK.selectNext()` // Retrieve |
| 28 | IF | **IF** `svkeiKojiakInfo == null` → `continue` (L888) |

### Block 10 — Mansion-to-Home Detection `(L903)`

> Determines if the residence change is a mansion (mezono) to home conversion.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isMansionToHome = false` // Initialize flag |
| 2 | SET | `newSvkeiKaisenUwInfo = nyukyoRsvTriKisnInfo != null ? nyukyoRsvTriKisnInfo : (newKjFinRnkiKisnInfo != null ? newKjFinRnkiKisnInfo : query result)` // Get destination info |
| 3 | SET | `newMansionBukkenNo = ""` // Empty per TODO placeholder |
| 4 | SET | `dslSvkeiKaisenUwInfo = dslKjFinRnkiKisnInfo != null ? dslKjFinRnkiKisnInfo : query result` // Get origin info |
| 5 | SET | `dslMansionBukkenNo = ""` // Empty per TODO placeholder |
| 6 | IF | **IF** `dslMansionBukkenNo != null AND not blank` AND `newMansionBukkenNo == null OR blank` (L920) |
| 7 | SET | `isMansionToHome = true` // Mansion to home conversion detected |

### Block 11 — Mansion Conversion Output `(L925)`

> When mansion-to-home, initializes conversion flags and retrieves last-updated datetimes.

| # | Type | Code |
|---|------|------|
| 1 | IF | **IF** `isMansionToHome` (L925) |
| 2 | EXEC | `outMap.setString(ITNS_TK_HOSHIKI_KEI_INIT_UM, "1")` // Initialize TK flag |
| 3 | EXEC | `outMap.setString(ITNS_MANSION_BUKKEN_INIT_UM, "1")` // Initialize mansion property flag |
| 4 | SET | `itnsSvcKeiNoNet = outMap.getString(ITNS_SVC_KEI_NO_NET)` // Get net service number |
| 5 | IF | **IF** `itnsSvcKeiNoNet != null AND not blank` |
| 6 | CALL | `svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoNet})` // Query control |
| 7 | IF | **IF** `svkeiExcCtrlInfo != null` |
| 8 | EXEC | `outMap.setString(ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(LAST_UPD_DTM))` // Set net last update |
| 9 | SET | `itnsSvcKeiNoTel = outMap.getString(ITNS_SVC_KEI_NO_TEL)` // Get tel service number |
| 10 | IF | **IF** `itnsSvcKeiNoTel != null AND not blank` |
| 11 | CALL | `svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoTel})` // Query control |
| 12 | IF | **IF** `svkeiExcCtrlInfo != null` |
| 13 | EXEC | `outMap.setString(ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(LAST_UPD_DTM))` // Set tel last update |
| 14 | SET | `itnsSvcKeiNoTv = outMap.getString(ITNS_SVC_KEI_NO_TV)` // Get tv service number |
| 15 | IF | **IF** `itnsSvcKeiNoTv != null AND not blank` |
| 16 | CALL | `svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoTv})` // Query control |
| 17 | IF | **IF** `svkeiExcCtrlInfo != null` |
| 18 | EXEC | `outMap.setString(ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(LAST_UPD_DTM))` // Set tv last update |
| 19 | ELSE | **ELSE** |
| 20 | EXEC | `outMap.setString(ITNS_TK_HOSHIKI_KEI_INIT_UM, "0")` // Reset TK flag |
| 21 | EXEC | `outMap.setString(ITNS_MANSION_BUKKEN_INIT_UM, "0")` // Reset mansion flag |

### Block 12 — Finalize Output `(L957)`

> Adds the output map to the output item list and cleans up surrendered service contracts.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `outputItem.addOutMapList(outMap)` // Add output to result |
| 2 | CALL | `removeSurrenderServiceContract(outputItem)` // Remove surrendered service records (ANK-1429) |
| 3 | RETURN | `return outputItem` // Return the final output |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `adchg_no` | Field | Residence Change Number — unique identifier for a residence change registration record |
| `adchg_fdt` | Field | Residence Change Detail Type Code — classifies the type of detail (01=service contract number, 06=work order number) |
| `adchg_fin_add_run_ptn` | Field | Residence Change Confirmation Pattern — processing mode: "1" = residence change confirmation, "2" = post-confirmation cancellation completion |
| `chaf_skbt_no` | Field | New Service Contract Number — the new service contract number after residence change (change-after service-basis contract number) |
| `chbf_skbt_no` | Field | Old/Cancellation Service Contract Number — the service contract number before residence change (change-before service-basis contract number) |
| `dsl_kj_fin_rnki` | Field | Cancellation Construction Completion Correlation — cancellation work order completion records linked to residence change |
| `dsl_svc_kei_no` | Field | Cancellation Service Contract Number — the service contract number being cancelled |
| `itens_svkei_kisuw_no` | Field | Destination Service Contract Line Number — the service contract line number after residence change (transfer destination) |
| `itnm_svkei_kisuw_no` | Field | Origin Service Contract Line Number — the service contract line number before residence change (transfer origin) |
| `is_delayed` | Field | Delayed Start Flag — batch execution mode flag: "1" = delayed start, "0" = normal |
| `jssi_ymd` | Field | Work Order Implementation Date — the date when the construction/cancellation work was actually performed |
| `kshad_chg_um` | Field | Contractor Residence Change Indicator — flag indicating whether the contractor changed residence |
| `kojiak_no` | Field | Work Order Number — unique identifier for a construction/cancellation work order |
| `kojiak_stat` | Field | Work Order Status — status code (e.g., "900" = suspended/中止) |
| `new_kj_fin_rnki` | Field | New Construction Completion Correlation — new construction work order completion records |
| `new_svc_kei_no` | Field | New Service Contract Number — the newly registered service contract number |
| `nyukyo_rsv_ymd` | Field | Move-In Reservation Date — the scheduled move-in date for the residence |
| `ope_date` | Field | Operation Date — the processing date for the batch job |
| `svc_kei_hktg` | Field | Service Contract Succession — information linking old and new service contracts during transfer |
| `svc_kei_kaisan_ucwk_no` | Field | Service Contract Line Number — internal tracking number for a service contract line item |
| `svc_kei_kaisan_ucwk_stat` | Field | Service Contract Line Status — status of the service contract line: "010"=received, "100"=in use, "210"=intact |
| `svc_kei_no` | Field | Service Contract Number — identifier for a service contract (network, phone, or TV) |
| `svc_sta_ymd` | Field | Service Start Date — the date when the service contract becomes effective |
| `use_staymd` | Field | Usage Start Date — when the service contract line starts being used |
| `use_endymd` | Field | Usage End Date — when the service contract line stops being used |
| `gene_add_dtm` | Field | Service Contract Registration Datetime — when the service contract was originally registered |
| `upd_dtm` | Field | Update Datetime — last modification timestamp |
| `mansion_bukken_no` | Field | Mansion Property Number — building/property identifier for mansion/mezono housing |
| `isMansionToHome` | Field | Mansion-to-Home Conversion Flag — true when moving from mansion to regular home |
| SVC | Acronym | Service (Contract) — a telecom service offering (net, tel, tv) |
| FTTH | Business term | Fiber To The Home — fiber-optic internet broadband service |
| DSL | Acronym | Discontinuation / Cancellation (解除) — the act of cancelling an existing service contract |
| KK | Acronym | K-Opticom (Customer Core) — the core customer management system module |
| ADCHG | Abbreviation | Address Change / Residence Change (住所変更) — the process of changing a customer's registered address |
| KOJIAK | Abbreviation | Work Order (工事案件) — a construction, installation, or cancellation work assignment |
| SVKEI | Abbreviation | Service Details (サービス内詳) — detailed information about a service contract line item |
| KAISEN | Abbreviation | Transfer/Relocation (移転) — the transfer of a service contract line from one location/contract to another |
| KJ_FIN | Abbreviation | Construction Completion (工事完了) — a record indicating construction work has been completed |
| NTKO | Abbreviation | New Construction / Installation (新設) — new service installation work |
| UTKZM | Abbreviation | Received (受取済) — the service contract line has been received/registered |
| UNDER_USE | Abbreviation | In Use (使用中) — the service contract line is currently active and being used |
| INTACT | Abbreviation | Not Yet Used (未使用) — the service contract line has been registered but not yet started |
| SBT_CD | Abbreviation | Subject Code (種類コード) — a classification code for service/detail types |
| IDO_SBT_CD | Abbreviation | Transfer Subject Code (移動種類コード) — code indicating the type of service transfer/continuation |
| GENE_ADD_DTM | Abbreviation | Generation Registration Datetime (生成登録日時) — the timestamp when a record was created in the database |
| LAST_UPD_DTM | Abbreviation | Last Updated Datetime (最終更新日時) — the most recent modification timestamp of a record |
| PKSELECT | Abbreviation | Primary Key SELECT — database query using primary key lookup |
| DB | Abbreviation | Database — underlying data store (typically Oracle) |
| outMap | Field | Output Map — accumulates processed data to be sent to downstream screens/processes |
| outputItem | Field | Output Item — container holding one or more outMap results |
| delayedStartKisnInfo | Field | Delayed Start Service Contract Line Info — service line data retrieved for delayed-start processing |
| nyukyoRsvTriKisnInfo | Field | Move-In Arrival Service Contract Line Info — service line data for confirmed move-in dates |
| newKjFinRnkiKisnInfo | Field | New Construction Completion Service Contract Line Info — service line data for completed new construction |
| dslKjFinRnkiKisnInfo | Field | Cancellation Completion Service Contract Line Info — service line data for completed cancellation |