# Business Logic — JBSbatKKAdHenkoHoyuDataChstu.execute() [1015 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.business.service.JBSbatKKAdHenkoHoyuDataChstu` |
| Layer | Service (Batch) |
| Module | `service` (Package: `eo.business.service`) |

## 1. Role

### JBSbatKKAdHenkoHoyuDataChstu.execute()

This method performs **change/preserved address data extraction** for batch processing. It is part of the address master update workflow — specifically, it extracts address change history records from various source tables (customer master, service contracts, delivery, billing, work projects, etc.) and inserts them into the change-preserved address table (`KK_T_CHG_AD_JGRTWK`). The class comment states: "Changes the work of the change-target address code — it is a component that extracts change-preserved address data from the target table" (変更対象住所コードワークの処理品です。変更住所データ抽出クラスです).

The method uses a **repetitive pattern (iterate-and-insert)** across 14 sequential data sources, each with a distinct business domain. For each source, it: (1) queries the source table filtered by the address code (`AD_CD`), (2) generates a new sequence number for the change record, (3) populates an insert map with address fields from the source row, (4) marks the "change preservation target transmission status code" (`AD_TOHAIGO_TRN_STAT_CD`) with "untransmitted" (`0`), and (5) inserts the record into `KK_T_CHG_AD_JGRTWK`. After all sources are processed, it updates the work table `KK_T_CHGTGAD_CD_WK` to mark the address code's transfer status as "completed" (`9`), then commits the transaction.

The 14 source data blocks handle: NTT customer contracts, customer-designated delivery addresses, personal (individual) customer records, delivery records, eo Light Phone service contracts, service contract lines, equipment provision services, TV option services, billing contracts, work projects (post-move, contractor, pre-move), and phone bill records (posted address, installation address). A design pattern of **delegation and iteration** is used: the method delegates data access to `JBSbatSQLAccess` instances and uses `JCCOracleSeqUtil` for sequence generation.

This service is called by sibling classes `JBSbatKKAdHenkoHoyuDataChstuOtr` (for "Otr" / out-of-contract scenarios) and `JBSbatKKAdHenkoHoyuDataChstuMan` (for manual operations), which follow the same structural pattern but query different source tables and use different status codes (`HENKO_ADD_CD_FUKA = "4"` for Man, meaning "invalid/exception").

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute(inMap)"])

    START --> GET_AD["Get AD_CD from inMap"]
    GET_AD --> BLOCK1["Block 1: Customer (NTT Contract Address)"]

    BLOCK1 --> SEQ1["Get Next Seq"]
    SEQ1 --> SEL1["SELECT from CK_T_CUST (KK_SELECT_040)"]
    SEL1 --> LOOP1{Has rows?}
    LOOP1 -->|Yes| SET1["Set address fields
CHG_TG_SCHEMA_ID = CK0011
CHG_TG_KMK_NM_EINM = KEISHA_AD_CD"]
    SET1 --> INS1["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS1 --> LOOP1
    LOOP1 -->|No| BLOCK2

    BLOCK2["Block 2: Customer (Customer-Designated Delivery Address)"]
    BLOCK2 --> SEQ2["Get Next Seq"]
    SEQ2 --> SEL2["SELECT from CK_T_CUST (KK_SELECT_041)"]
    SEL2 --> LOOP2{Has rows?}
    LOOP2 -->|Yes| SET2["Set address fields
CHG_TG_SCHEMA_ID = CK0011
CHG_TG_KMK_NM_EINM = CSSTI_SHS_AD_CD"]
    SET2 --> INS2["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS2 --> LOOP2
    LOOP2 -->|No| BLOCK3

    BLOCK3["Block 3: Customer <Personal>"]
    BLOCK3 --> SEQ3["Get Next Seq"]
    SEQ3 --> SEL3["SELECT from CK_T_CUST_KOJIN (KK_SELECT_006)"]
    SEL3 --> LOOP3{Has rows?}
    LOOP3 -->|Yes| SET3["Set address fields
CHG_TG_SCHEMA_ID = CK0021
CHG_TG_KMK_NM_EINM = SKSHA_AD_CD"]
    SET3 --> INS3["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS3 --> LOOP3
    LOOP3 -->|No| BLOCK4

    BLOCK4["Block 4: Delivery"]
    BLOCK4 --> SEQ4["Get Next Seq"]
    SEQ4 --> SEL4["SELECT from DK_T_HAISO (KK_SELECT_007)"]
    SEL4 --> LOOP4{Has rows?}
    LOOP4 -->|Yes| SET4["Set address fields
CHG_TG_SCHEMA_ID = DK0011
CHG_TG_KMK_NM_EINM = HISOS_AD_CD"]
    SET4 --> INS4["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS4 --> LOOP4
    LOOP4 -->|No| BLOCK5

    BLOCK5["Block 5: Service Contract <eo Light Phone>"]
    BLOCK5 --> SEQ5["Get Next Seq"]
    SEQ5 --> SEL5["SELECT from KK_T_SVKEIUW_EOH_TEL (KK_SELECT_049)"]
    SEL5 --> LOOP5{Has rows?}
    LOOP5 -->|Yes| SET5["Set address fields
CHG_TG_SCHEMA_ID = KK0191
CHG_TG_KMK_NM_EINM = EMG_AD_CD"]
    SET5 --> INS5["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS5 --> LOOP5
    LOOP5 -->|No| BLOCK6

    BLOCK6["Block 6: Service Contract Lines"]
    BLOCK6 --> SEQ6["Get Next Seq"]
    SEQ6 --> SEL6["SELECT from KK_T_SVKEI_KAISEN_UW (KK_SELECT_036)"]
    SEL6 --> LOOP6{Has rows?}
    LOOP6 -->|Yes| SET6["Set address fields
CHG_TG_SCHEMA_ID = KK0251
CHG_TG_KMK_NM_EINM = KAISEN_PLACE_AD_CD"]
    SET6 --> INS6["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS6 --> LOOP6
    LOOP6 -->|No| BLOCK7

    BLOCK7["Block 7: Equipment Provision Service (Installation Address)"]
    BLOCK7 --> SEQ7["Get Next Seq"]
    SEQ7 --> SEL7["SELECT from KK_T_KKTK_SVC_KEI (KK_SELECT_107)"]
    SEL7 --> LOOP7{Has rows?}
    LOOP7 -->|Yes| SET7["Set address fields
CHG_TG_SCHEMA_ID = KK0341
CHG_TG_KMK_NM_EINM = KIKI_STC_SAKI_AD_CD"]
    SET7 --> INS7["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS7 --> LOOP7
    LOOP7 -->|No| BLOCK8

    BLOCK8["Block 8: Option Service Contract <TV>"]
    BLOCK8 --> SEQ8["Get Next Seq"]
    SEQ8 --> SEL8["SELECT from KK_T_OPSVKEI_TV (KK_SELECT_006)"]
    SEL8 --> LOOP8{Has rows?}
    LOOP8 -->|Yes| SET8["Set address fields
CHG_TG_SCHEMA_ID = KK0381
CHG_TG_KMK_NM_EINM = GUIDEMG_SOHUS_AD_CD"]
    SET8 --> INS8["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS8 --> LOOP8
    LOOP8 -->|No| BLOCK9

    BLOCK9["Block 9: Billing Contract"]
    BLOCK9 --> SEQ9["Get Next Seq"]
    SEQ9 --> SEL9["SELECT from KK_T_SEIKY_KEI (KK_SELECT_055)"]
    SEL9 --> LOOP9{Has rows?}
    LOOP9 -->|Yes| SET9["Set address fields
CHG_TG_SCHEMA_ID = KK0491
CHG_TG_KMK_NM_EINM = SOHUS_AD_CD"]
    SET9 --> INS9["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS9 --> LOOP9
    LOOP9 -->|No| BLOCK10

    BLOCK10["Block 10: Work Project (Post-Move Address)"]
    BLOCK10 --> SEQ10["Get Next Seq"]
    SEQ10 --> SEL10["SELECT from KU_T_KOJIAK (KK_SELECT_017)"]
    SEL10 --> LOOP10{Has rows?}
    LOOP10 -->|Yes| SET10["Set address fields
CHG_TG_SCHEMA_ID = KU0011
CHG_TG_KMK_NM_EINM = TENTAKU_SAKI_AD_CD"]
    SET10 --> INS10["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS10 --> LOOP10
    LOOP10 -->|No| BLOCK11

    BLOCK11["Block 11: Work Project (Contractor Address)"]
    BLOCK11 --> SEQ11["Get Next Seq"]
    SEQ11 --> SEL11["SELECT from KU_T_KOJIAK (KK_SELECT_018)"]
    SEL11 --> LOOP11{Has rows?}
    LOOP11 -->|Yes| SET11["Set address fields
CHG_TG_SCHEMA_ID = KU0011
CHG_TG_KMK_NM_EINM = KEISHA_AD_CD"]
    SET11 --> INS11["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS11 --> LOOP11
    LOOP11 -->|No| BLOCK12

    BLOCK12["Block 12: Work Project (Pre-Move Address)"]
    BLOCK12 --> SEQ12["Get Next Seq"]
    SEQ12 --> SEL12["SELECT from KU_T_KOJIAK (KK_SELECT_019)"]
    SEL12 --> LOOP12{Has rows?}
    LOOP12 -->|Yes| SET12["Set address fields
CHG_TG_SCHEMA_ID = KU0011
CHG_TG_KMK_NM_EINM = TENTAKU_BF_AD_CD"]
    SET12 --> INS12["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS12 --> LOOP12
    LOOP12 -->|No| BLOCK13

    BLOCK13["Block 13: Phone Bill (Posted Address)"]
    BLOCK13 --> SEQ13["Get Next Seq"]
    SEQ13 --> SEL13["SELECT from TU_T_DNWACHOMSK_NYO (KK_SELECT_002)"]
    SEL13 --> LOOP13{Has rows?}
    LOOP13 -->|Yes| SET13["Set address fields
CHG_TG_SCHEMA_ID = TU0091
CHG_TG_KMK_NM_EINM = KEISAI_AD_CD"]
    SET13 --> INS13["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS13 --> LOOP13
    LOOP13 -->|No| BLOCK14

    BLOCK14["Block 14: Phone Bill (Installation Address)"]
    BLOCK14 --> SEQ14["Get Next Seq"]
    SEQ14 --> SEL14["SELECT from TU_T_DNWACHOMSK_NYO (KK_SELECT_003)"]
    SEL14 --> LOOP14{Has rows?}
    LOOP14 -->|Yes| SET14["Set address fields
CHG_TG_SCHEMA_ID = TU0091
CHG_TG_KMK_NM_EINM = SETPLACE_AD_CD"]
    SET14 --> INS14["INSERT into KK_T_CHG_AD_JGRTWK
AD_TOHAIGO_TRN_STAT_CD = 0 (MI)"]
    INS14 --> LOOP14
    LOOP14 -->|No| UPDATE

    UPDATE["Update KK_T_CHGTGAD_CD_WK:
SET CHG_AD_TRN_STAT_CD = 9 (ZM)"]
    UPDATE --> COMMIT["Commit transaction"]
    COMMIT --> RETURN(["Return null"])

    END(["END"])
    RETURN --> END
```

### Block Pattern Summary
Each of the 14 blocks follows the identical processing pattern:

| Step | Operation | Description |
|------|-----------|-------------|
| 1 | SELECT | Query source table by `AD_CD` using `selectBySqlDefine` |
| 2 | while | Iterate over each result row |
| 3 | SEQ | Generate primary key via `JCCOracleSeqUtil.getFormatedNextSeq` |
| 4 | SET | Populate `inDbMap` with address fields from source row |
| 5 | INSERT | Insert into `KK_T_CHG_AD_JGRTWK` via `insertByPrimaryKeys` |

Key constant: `HENKO_ADD_CD_MI = "0"` — "not yet transmitted" (未送信), indicating the change-preserved address record has been generated but not yet sent to downstream systems.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message containing the target address code (`AD_CD`) — the Japanese postal address identifier used to filter records across all 14 source tables. This is the key lookup value for the entire batch process. |

### Instance fields read by this method

| Field | Type | Business Description |
|-------|------|---------------------|
| `db_CHGTGAD_CD_WK` | `JBSbatSQLAccess` | SQL access to `KK_T_CHGTGAD_CD_WK` — the change-target address code work table, updated at the end to mark processing completion |
| `db_CHG_AD_JGRTWK` | `JBSbatSQLAccess` | SQL access to `KK_T_CHG_AD_JGRTWK` — the change-preserved address work table, the primary insert target for all 14 data blocks |
| `db_CK_T_CUST` | `JBSbatSQLAccess` | SQL access to `CK_T_CUST` — NTT customer master (blocks 1 & 2) |
| `db_CK_T_CUST_KOJIN` | `JBSbatSQLAccess` | SQL access to `CK_T_CUST_KOJIN` — individual (personal) customer master (block 3) |
| `db_KK_T_SVKEIUW_EOH_TEL` | `JBSbatSQLAccess` | SQL access to `KK_T_SVKEIUW_EOH_TEL` — eo Light Phone service contract table (block 5) |
| `db_KK_T_SVKEI_KAISEN_UW` | `JBSbatSQLAccess` | SQL access to `KK_T_SVKEI_KAISEN_UW` — service contract lines table (block 6) |
| `db_KK_T_KKTK_SVC_KEI` | `JBSbatSQLAccess` | SQL access to `KK_T_KKTK_SVC_KEI` — equipment provision service contract table (block 7) |
| `db_KK_T_OPSVKEI_TV` | `JBSbatSQLAccess` | SQL access to `KK_T_OPSVKEI_TV` — TV option service contract table (block 8) |
| `db_KK_T_SEIKY_KEI` | `JBSbatSQLAccess` | SQL access to `KK_T_SEIKY_KEI` — billing contract table (block 9) |
| `db_TU_T_DNWACHOMSK_NYO` | `JBSbatSQLAccess` | SQL access to `TU_T_DNWACHOMSK_NYO` — phone bill application details table (blocks 13 & 14) |
| `db_DK_T_HAISO` | `JBSbatSQLAccess` | SQL access to `DK_T_HAISO` — delivery records table (block 4) |
| `db_KU_T_KOJIAK` | `JBSbatSQLAccess` | SQL access to `KU_T_KOJIAK` — work project table (blocks 10, 11, 12) |
| `commonItem` | `JBSbatCommonItem` | Batch common parameters, inherited from `JBSbatBusinessService`, providing database connection and operation date |
| `opeDate` | `String` | Operation date, used as filter parameter in v19.00.00+ for address consolidation (horizontal expansion) |

### Sequence constant

| Constant | Value | Description |
|----------|-------|-------------|
| `SEQ_NAME` | `SEQ_CHG_AD_JGRTWK_NO` | Oracle sequence name for generating primary keys on the change-preserved address table |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `db_CK_T_CUST.selectBySqlDefine` | - | `CK_T_CUST` | Queries NTT customer master and customer-designated delivery address records filtered by address code |
| R | `db_CK_T_CUST.selectNext` | - | `CK_T_CUST` | Fetches next row from customer master result set |
| R | `db_CK_T_CUST_KOJIN.selectBySqlDefine` | - | `CK_T_CUST_KOJIN` | Queries individual (personal) customer master records |
| R | `db_CK_T_CUST_KOJIN.selectNext` | - | `CK_T_CUST_KOJIN` | Fetches next row from personal customer result set |
| R | `db_DK_T_HAISO.selectBySqlDefine` | - | `DK_T_HAISO` | Queries delivery address records for the given address code |
| R | `db_DK_T_HAISO.selectNext` | - | `DK_T_HAISO` | Fetches next row from delivery result set |
| R | `db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine` | - | `KK_T_SVKEIUW_EOH_TEL` | Queries eo Light Phone service contract records |
| R | `db_KK_T_SVKEIUW_EOH_TEL.selectNext` | - | `KK_T_SVKEIUW_EOH_TEL` | Fetches next row from eo Light Phone contract result set |
| R | `db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine` | - | `KK_T_SVKEI_KAISEN_UW` | Queries service contract lines (installation place) records |
| R | `db_KK_T_SVKEI_KAISEN_UW.selectNext` | - | `KK_T_SVKEI_KAISEN_UW` | Fetches next row from contract lines result set |
| R | `db_KK_T_KKTK_SVC_KEI.selectBySqlDefine` | - | `KK_T_KKTK_SVC_KEI` | Queries equipment provision service contract records (equipment installation address) |
| R | `db_KK_T_KKTK_SVC_KEI.selectNext` | - | `KK_T_KKTK_SVC_KEI` | Fetches next row from equipment provision result set |
| R | `db_KK_T_OPSVKEI_TV.selectBySqlDefine` | - | `KK_T_OPSVKEI_TV` | Queries TV option service contract records |
| R | `db_KK_T_OPSVKEI_TV.selectNext` | - | `KK_T_OPSVKEI_TV` | Fetches next row from TV option contract result set |
| R | `db_KK_T_SEIKY_KEI.selectBySqlDefine` | - | `KK_T_SEIKY_KEI` | Queries billing contract records |
| R | `db_KK_T_SEIKY_KEI.selectNext` | - | `KK_T_SEIKY_KEI` | Fetches next row from billing contract result set |
| R | `db_KU_T_KOJIAK.selectBySqlDefine` | - | `KU_T_KOJIAK` | Queries work project records (post-move, contractor, and pre-move addresses) |
| R | `db_KU_T_KOJIAK.selectNext` | - | `KU_T_KOJIAK` | Fetches next row from work project result set |
| R | `db_TU_T_DNWACHOMSK_NYO.selectBySqlDefine` | - | `TU_T_DNWACHOMSK_NYO` | Queries phone bill application records (posted address and installation address) |
| R | `db_TU_T_DNWACHOMSK_NYO.selectNext` | - | `TU_T_DNWACHOMSK_NYO` | Fetches next row from phone bill result set |
| C | `db_CHG_AD_JGRTWK.insertByPrimaryKeys` | EKK0191CBS | `KK_T_CHG_AD_JGRTWK` | Inserts a change-preserved address record with the generated sequence key. Creates one row per source row processed. |
| U | `db_CHGTGAD_CD_WK.updateByPrimaryKeys` | EKK0192CBS | `KK_T_CHGTGAD_CD_WK` | Updates the work table to mark the address code's transmission status as "completed" (`9`). Executed once after all 14 blocks. |
| - | `JCCOracleSeqUtil.getFormatedNextSeq` | JCCOracleSeq | Oracle Sequence | Generates the next formatted sequence number for the change-preserved address record key |
| - | `JZMBatCommon.getInMapData` | JZMBatCommon | - | Retrieves the address code (`AD_CD`) value from the input message map |
| - | `JBSbatCommonDBInterface.setValue` | JDKStructuredMap | - | Sets values in the database interface data structure |
| - | `JBSbatCommonDBInterface.getString` | JBSbatCommonDBInterface | - | Retrieves string values from database interface data structure |
| - | `JBSbatBusinessService.commit` | JBSbatBusiness | - | Commits the database transaction after all processing |
| - | `super.logPrint.printDebugLog` | JACBatCommon | - | Logs debug output for each block (e.g., "Customer (NTT Contract Address)") |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: JBSbatKKAdHenkoHoyuDataChstuOtr | `JBSbatKKAdHenkoHoyuDataChstuOtr.execute(inMap)` | `insertByPrimaryKeys [C] KK_T_CHG_AD_JGRTWK`, `updateByPrimaryKeys [U] KK_T_CHGTGAD_CD_WK` |
| 2 | Batch: JBSbatKKAdHenkoHoyuDataChstuMan | `JBSbatKKAdHenkoHoyuDataChstuMan.execute(inMap)` | `insertByPrimaryKeys [C] KK_T_CHG_AD_JGRTWK`, `updateByPrimaryKeys [U] KK_T_CHGTGAD_CD_WK` |

**Notes on callers:**
- `JBSbatKKAdHenkoHoyuDataChstuOtr` handles out-of-contract (Otr) scenarios, querying different source tables (`CK_T_PROSCST`, `DK_T_YBKIKI_HAISO`, `KU_T_SENKO_DSGN`) and using schema IDs `CK0051`, `DK0061`, `KU0101`.
- `JBSbatKKAdHenkoHoyuDataChstuMan` handles manual operations, using the same source tables as the main class but different SQL keys (e.g., `KK_SELECT_043`/`KK_SELECT_044` vs `KK_SELECT_040`/`KK_SELECT_041`) and status code `HENKO_ADD_CD_FUKA = "4"` (invalid/exception) instead of `HENKO_ADD_CD_MI = "0"`.
- All three classes are part of the same address change preservation batch family.

## 6. Per-Branch Detail Blocks

**Block 1** — WHILE (Customer / NTT Contract Address) (L110)

> Retrieves NTT customer contract address records and inserts them as change-preserved address data. Schema ID: `CK0011`. Marked as `KEISHA_AD_CD` (NTT contract address code).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` // Address code filter [-> AD_CD from inMap] |
| 3 | EXEC | `dbList.setValue(opeDate)` (x3) // v19.00.00: address consolidation (horizontal expansion) |
| 4 | CALL | `db_CK_T_CUST.selectBySqlDefine(dbList, "KK_SELECT_040")` // Query NTT customer master |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_CK_T_CUST.selectNext()) != null` |
| 6.1 | SET | `inDbMap = new JBSbatCommonDBInterface()` |
| 6.2 | CALL | `seqNo = JCCOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(), SEQ_NAME, "", JKKBatConst.SEQ_KETA)` |
| 6.3 | SET | `inDbMap.setValue(JBSbatKK_T_CHG_AD_JGRTWK.CHG_AD_JGRTWK_NO, seqNo)` |
| 6.4 | SET | `inDbMap.setValue(CHG_TG_SCHEMA_ID, "CK0011")` // NTT customer schema |
| 6.5 | SET | `inDbMap.setValue(CHG_TG_KMK_NM_EINM, "KEISHA_AD_CD")` // NTT contract address |
| 6.6-26 | SET | `inDbMap.setValue(SVC_KEI_NO, SYSID, AD_CD, PCD, STATE_NM, CITY_NM, OAZTSU_NM, AZCHO_NM, AD_SHUSEI_CD, NEW_AD_CD, NEW_PCD, NEW_STATE_NM, NEW_CITY_NM, NEW_OAZTSU_NM, NEW_AZCHO_NM, AD_CHG_SBT_CD)` // Source fields from `map.getString()` |
| 27 | SET | `inDbMap.setValue(OLD_AD_CD, map.getString("KEISHA_AD_CD"))` |
| 28-33 | SET | `inDbMap.setValue(OLD_PCD, OLD_STATE_NM, OLD_CITY_NM, OLD_OAZTSU_NM, OLD_AZCHO_NM, OLD_BNCHIGO)` // from `KEISHA_*` fields |
| 34 | SET | `inDbMap.setValue(AD_TOHAIGO_TRN_STAT_CD, JKKBatConst.HENKO_ADD_CD_MI)` // [-> "0"] (not transmitted) |
| 35 | CALL | `count = db_CHG_AD_JGRTWK.insertByPrimaryKeys(inDbMap)` |

**Block 2** — WHILE (Customer / Customer-Designated Delivery Address) (L188)

> Retrieves customer-designated delivery address records. Schema ID: `CK0011`. Marked as `CSSTI_SHS_AD_CD` (customer-specified delivery address code).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | EXEC | `dbList.setValue(opeDate)` (x3) // v19.00.00 addition |
| 4 | CALL | `db_CK_T_CUST.selectBySqlDefine(dbList, "KK_SELECT_041")` // Query customer with delivery address |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_CK_T_CUST.selectNext()) != null` |
| 6.1-35 | Same pattern as Block 1.6-6.35, but with: |
| 6.1 | SET | `CHG_TG_KMK_NM_EINM = "CSSTI_SHS_AD_CD"` // Customer-designated delivery |
| 27-33 | SET | `OLD_*` fields from `CSSTI_SHS_*` columns |

**Block 3** — WHILE (Customer <Personal>) (L266)

> Retrieves individual (personal) customer address records. Schema ID: `CK0021`. Marked as `SKSHA_AD_CD` (personal customer address code). Source table: `CK_T_CUST_KOJIN`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | EXEC | `dbList.setValue(opeDate)` (x3) // v19.00.00 addition |
| 4 | CALL | `db_CK_T_CUST_KOJIN.selectBySqlDefine(dbList, "KK_SELECT_006")` |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_CK_T_CUST_KOJIN.selectNext()) != null` |
| 6.1-35 | Same pattern as Block 1.6-6.35, but with: |
| 6.1 | SET | `CHG_TG_SCHEMA_ID = "CK0021"` // Personal customer schema |
| 6.5 | SET | `CHG_TG_KMK_NM_EINM = "SKSHA_AD_CD"` // Personal customer address |
| 33 | SET | `OLD_BNCHIGO = map.getString("SKSHA_AD_BNCHIGO")` (note: BNCHIGO from AD_ prefixed field) |

**Block 4** — WHILE (Delivery) (L338)

> Retrieves delivery address records. Schema ID: `DK0011`. Marked as `HISOS_AD_CD` (delivery address code). Source table: `DK_T_HAISO`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_DK_T_HAISO.selectBySqlDefine(dbList, "KK_SELECT_007")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_DK_T_HAISO.selectNext()) != null` |
| 5.1 | SET | `inDbMap = new JBSbatCommonDBInterface()` |
| 5.2 | CALL | `seqNo = JCCOracleSeqUtil.getFormatedNextSeq(...)` |
| 5.3 | SET | `CHG_TG_SCHEMA_ID = "DK0011"` |
| 5.4 | SET | `CHG_TG_KMK_NM_EINM = "HISOS_AD_CD"` |
| 5.5-6 | SET | `HAISO_NO`, `AD_CD`, `PCD`, `STATE_NM`, `CITY_NM`, `OAZTSU_NM`, `AZCHO_NM`, `AD_SHUSEI_CD`, `NEW_AD_CD`, `NEW_PCD`, `NEW_STATE_NM`, `NEW_CITY_NM`, `NEW_OAZTSU_NM`, `NEW_AZCHO_NM`, `AD_CHG_SBT_CD` from `map.getString()` |
| 7 | SET | `OLD_AD_CD = map.getString("HISOS_AD_CD")` |
| 8-13 | SET | `OLD_PCD`, `OLD_STATE_NM`, `OLD_CITY_NM`, `OLD_OAZTSU_NM`, `OLD_AZCHO_NM`, `OLD_BNCHIGO` from `HISOS_*` fields |
| 14 | SET | `AD_TOHAIGO_TRN_STAT_CD = HENKO_ADD_CD_MI` [-> "0"] |
| 15 | CALL | `count = db_CHG_AD_JGRTWK.insertByPrimaryKeys(inDbMap)` |

**Block 5** — WHILE (Service Contract <eo Light Phone>) (L380)

> Retrieves eo Light Phone service contract records. Schema ID: `KK0191`. Marked as `EMG_AD_CD` (eo Light phone address code). Source table: `KK_T_SVKEIUW_EOH_TEL`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | EXEC | `dbList.setValue(super.opeDate)` (x3) // OM-2016-0000003: uses super.opeDate instead of local opeDate |
| 4 | CALL | `db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(dbList, "KK_SELECT_049")` // Modified from KK_SELECT_032 (OM-2016-0000003) |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_KK_T_SVKEIUW_EOH_TEL.selectNext()) != null` |
| 6.1-37 | Same pattern as Block 4, plus additional fields: |
| 6.1 | SET | `CHG_TG_SCHEMA_ID = "KK0191"` |
| 6.5 | SET | `CHG_TG_KMK_NM_EINM = "EMG_AD_CD"` |
| 7 | SET | `SVC_KEI_UCWK_NO = map.getString("SVC_KEI_UCWK_NO")` // Service detail work number |
| 34-35 | SET | `OLD_ADRTTM = map.getString("EMG_ADRTTM")` // Address time |
| 36 | SET | `OLD_ADRRM = map.getString("EMG_ADRRM")` // Address room |
| 37 | SET | `OLD_PCD = map.getString("EMG_HOSEI_PCD")` // Corrected postal code |

**Block 6** — WHILE (Service Contract Lines) (L450)

> Retrieves service contract line (installation place) records. Schema ID: `KK0251`. Marked as `KAISEN_PLACE_AD_CD` (contract line installation place address code). Source table: `KK_T_SVKEI_KAISEN_UW`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(dbList, "KK_SELECT_036")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_KK_T_SVKEI_KAISEN_UW.selectNext()) != null` |
| 5.1-32 | Same pattern as Block 5, with: |
| 5.1 | SET | `CHG_TG_SCHEMA_ID = "KK0251"` |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "KAISEN_PLACE_AD_CD"` |
| 8 | SET | `SVC_KEI_KAISEN_UCWK_NO = map.getString("SVC_KEI_KAISEN_UCWK_NO")` // Contract line work number |

**Block 7** — WHILE (Equipment Provision Service / Installation Address) (L520)

> Retrieves equipment provision service contract records (equipment installation address). Schema ID: `KK0341`. Marked as `KIKI_STC_SAKI_AD_CD` (equipment installation destination address code). Source table: `KK_T_KKTK_SVC_KEI`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | EXEC | `dbList.setValue(opeDate)` // v15.00.00 addition |
| 4 | CALL | `db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(dbList, "KK_SELECT_107")` |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_KK_T_KKTK_SVC_KEI.selectNext()) != null` |
| 6.1-32 | Same pattern, with: |
| 6.1 | SET | `CHG_TG_SCHEMA_ID = "KK0341"` |
| 6.5 | SET | `CHG_TG_KMK_NM_EINM = "KIKI_STC_SAKI_AD_CD"` |
| 9 | SET | `KKTK_SVC_KEI_NO = map.getString("KKTK_SVC_KEI_NO")` // Equipment provision service number |

**Block 8** — WHILE (Option Service Contract <TV>) (L590)

> Retrieves TV option service contract records. Schema ID: `KK0381`. Marked as `GUIDEMG_SOHUS_AD_CD` (TV guide bundled service address code). Source table: `KK_T_OPSVKEI_TV`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_KK_T_OPSVKEI_TV.selectBySqlDefine(dbList, "KK_SELECT_006")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_KK_T_OPSVKEI_TV.selectNext()) != null` |
| 5.1-32 | Same pattern, with: |
| 5.1 | SET | `CHG_TG_SCHEMA_ID = "KK0381"` |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "GUIDEMG_SOHUS_AD_CD"` |
| 8 | SET | `OP_SVC_KEI_NO = map.getString("OP_SVC_KEI_NO")` // Option service number |

**Block 9** — WHILE (Billing Contract) (L660)

> Retrieves billing contract records. Schema ID: `KK0491`. Marked as `SOHUS_AD_CD` (service contract address code). Source table: `KK_T_SEIKY_KEI`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | EXEC | `dbList.setValue(opeDate)` (x3) // v19.00.00 addition |
| 4 | CALL | `db_KK_T_SEIKY_KEI.selectBySqlDefine(dbList, "KK_SELECT_055")` |
| 5 | SET | `map = new JBSbatCommonDBInterface()` |
| 6 | WHILE | `(map = db_KK_T_SEIKY_KEI.selectNext()) != null` |
| 6.1-32 | Same pattern, with: |
| 6.1 | SET | `CHG_TG_SCHEMA_ID = "KK0491"` |
| 6.5 | SET | `CHG_TG_KMK_NM_EINM = "SOHUS_AD_CD"` |
| 8 | SET | `SEIKY_KEI_NO = map.getString("SEIKY_KEI_NO")` // Billing contract number |

**Block 10** — WHILE (Work Project / Post-Move Address) (L725)

> Retrieves work project records for post-move (転宅先) addresses. Schema ID: `KU0011`. Marked as `TENTAKU_SAKI_AD_CD` (post-move destination address code). Source table: `KU_T_KOJIAK`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_KU_T_KOJIAK.selectBySqlDefine(dbList, "KK_SELECT_017")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_KU_T_KOJIAK.selectNext()) != null` |
| 5.1-32 | Same pattern, with: |
| 5.1 | SET | `CHG_TG_SCHEMA_ID = "KU0011"` |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "TENTAKU_SAKI_AD_CD"` |
| 8 | SET | `KOJIAK_NO = map.getString("KOJIAK_NO")` // Work project number |
| 31 | SET | `OLD_BNCHIGO = map.getString("TENTAKU_SAKI_AD_BNCHIGO")` (note: AD_ prefixed) |

**Block 11** — WHILE (Work Project / Contractor Address) (L790)

> Retrieves work project records for contractor (契約者) addresses. Schema ID: `KU0011`. Marked as `KEISHA_AD_CD` (NTT contract address code — reused name). Source table: `KU_T_KOJIAK`, SQL key: `KK_SELECT_018`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_KU_T_KOJIAK.selectBySqlDefine(dbList, "KK_SELECT_018")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_KU_T_KOJIAK.selectNext()) != null` |
| 5.1-35 | Same pattern as Block 10, with: |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "KEISHA_AD_CD"` |
| 34 | SET | `OLD_BNCHIGO = map.getString("KEISHA_AD_BNCHIGO")` |

**Block 12** — WHILE (Work Project / Pre-Move Address) (L855)

> Retrieves work project records for pre-move (転居前) addresses. Schema ID: `KU0011`. Marked as `TENTAKU_BF_AD_CD` (pre-move destination address code). Source table: `KU_T_KOJIAK`, SQL key: `KK_SELECT_019`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_KU_T_KOJIAK.selectBySqlDefine(dbList, "KK_SELECT_019")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_KU_T_KOJIAK.selectNext()) != null` |
| 5.1-35 | Same pattern, with: |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "TENTAKU_BF_AD_CD"` |
| 27-33 | SET | `OLD_*` fields from `TENTAKU_BF_*` columns (pre-move prefix) |
| 34 | SET | `OLD_BNCHIGO = map.getString("TENTAKU_BF_AD_BNCHIGO")` |

**Block 13** — WHILE (Phone Bill / Posted Address) (L930)

> Retrieves phone bill application records for posted address (健在住所) codes. Schema ID: `TU0091`. Marked as `KEISAI_AD_CD` (posted address code). Source table: `TU_T_DNWACHOMSK_NYO`, SQL key: `KK_SELECT_002`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_TU_T_DNWACHOMSK_NYO.selectBySqlDefine(dbList, "KK_SELECT_002")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_TU_T_DNWACHOMSK_NYO.selectNext()) != null` |
| 5.1-35 | Same pattern, with: |
| 5.1 | SET | `CHG_TG_SCHEMA_ID = "TU0091"` |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "KEISAI_AD_CD"` |
| 8 | SET | `DNWACHO_MSKM_NO = map.getString("DNWACHO_MSKM_NO")` // Phone bill masking number |
| 9 | SET | `DNWACHO_MSKM_NAIYO_NO = map.getString("DNWACHO_MSKM_NAIYO_NO")` // Phone bill masking detail number |
| 34 | SET | `OLD_BNCHIGO = map.getString("KEISAI_AD_BNCHIGO")` |

**Block 14** — WHILE (Phone Bill / Installation Address) (L995)

> Retrieves phone bill application records for installation address (設置場所住所) codes. Schema ID: `TU0091`. Marked as `SETPLACE_AD_CD` (installation location address code). Source table: `TU_T_DNWACHOMSK_NYO`, SQL key: `KK_SELECT_003`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` |
| 2 | SET | `dbList.setValue(strAdCd)` |
| 3 | CALL | `db_TU_T_DNWACHOMSK_NYO.selectBySqlDefine(dbList, "KK_SELECT_003")` |
| 4 | SET | `map = new JBSbatCommonDBInterface()` |
| 5 | WHILE | `(map = db_TU_T_DNWACHOMSK_NYO.selectNext()) != null` |
| 5.1-32 | Same pattern as Block 13, with: |
| 5.5 | SET | `CHG_TG_KMK_NM_EINM = "SETPLACE_AD_CD"` |
| 27 | SET | `OLD_AD_CD = map.getString("SETPLACE_AD_CD")` |
| 28-33 | SET | `OLD_*` fields from `SETPLACE_*` columns |

**Block 15** — UPDATE + COMMIT (Work Table Status Update and Commit) (L1060)

> After all 14 data blocks are processed, this block updates the work table `KK_T_CHGTGAD_CD_WK` to mark the address code's transfer status as "completed" (`9`), then commits the transaction.

| # | Type | Code |
|---|------|------|
| 1 | SET | `valueMap = new JBSbatCommonDBInterface()` |
| 2 | SET | `valueMap.setValue(CHG_AD_TRN_STAT_CD, JKKBatConst.HENKO_ADD_CD_ZM)` // [-> "9"] (change completed) |
| 3 | SET | `whereMap = new JBSbatCommonDBInterface()` |
| 4 | SET | `whereMap.setValue(AD_CD, strAdCd)` // WHERE clause: address code filter |
| 5 | CALL | `db_CHGTGAD_CD_WK.updateByPrimaryKeys(whereMap, valueMap)` // Update work table status |
| 6 | CALL | `super.commit()` // Commit transaction |
| 7 | RETURN | `return null` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `AD_CD` | Field | Address code — Japanese postal address identifier used as the primary lookup key across all source tables |
| `CHG_AD_JGRTWK_NO` | Field | Change-preserved address work number — unique sequence-generated primary key for each inserted change record |
| `CHG_TG_SCHEMA_ID` | Field | Change target schema ID — internal schema identifier distinguishing the data source type (CK0011, KK0191, DK0011, etc.) |
| `CHG_TG_KMK_NM_EINM` | Field | Change target source name (English name) — identifies the source address type (e.g., KEISHA_AD_CD, CSSTI_SHS_AD_CD) |
| `AD_TOHAIGO_TRN_STAT_CD` | Field | Change preservation target transmission status code — tracks whether the change record has been transmitted (0=untransmitted, 9=completed) |
| `HENKO_ADD_CD_MI` | Constant | "Not transmitted" status code = "0". Indicates the change-preserved address record is ready but not yet sent to downstream systems. |
| `HENKO_ADD_CD_ZM` | Constant | "Change completed" status code = "9". Indicates the work table processing is complete. |
| `HENKO_ADD_CD_FUKA` | Constant | "Invalid/exception" status code = "4". Used by the Man variant to indicate records with invalid or manual input errors. |
| `KEISHA_AD_CD` | Field | NTT contract address code — the address associated with the primary NTT subscriber contract |
| `CSSTI_SHS_AD_CD` | Field | Customer-designated delivery address code — an address specifically designated by the customer for delivery |
| `SKSHA_AD_CD` | Field | Personal (individual) customer address code — address for individual customer records (not corporate) |
| `HISOS_AD_CD` | Field | Delivery address code — the address where delivery is to be made |
| `EMG_AD_CD` | Field | eo Light Phone address code — address for the eo Light Phone (eoひかり電話) service contract |
| `KAISEN_PLACE_AD_CD` | Field | Contract line installation place address code — the installation location for a service contract line |
| `KIKI_STC_SAKI_AD_CD` | Field | Equipment provision service installation destination address code — address for equipment delivery/installation |
| `GUIDEMG_SOHUS_AD_CD` | Field | TV guide bundled service address code — address for TV option service contracts |
| `SOHUS_AD_CD` | Field | Service contract address code — address associated with the main billing service contract |
| `TENTAKU_SAKI_AD_CD` | Field | Post-move destination address code — the address where the customer has moved to |
| `TENTAKU_BF_AD_CD` | Field | Pre-move destination address code — the address where the customer is moving from (old address) |
| `KEISAI_AD_CD` | Field | Posted address code — the address on file for phone billing (健在住所) |
| `SETPLACE_AD_CD` | Field | Installation location address code — the address where equipment is installed |
| `SVC_KEI_NO` | Field | Service number — internal tracking identifier for a service contract line item |
| `SVC_KEI_UCWK_NO` | Field | Service detail work number — additional work-level identifier for service contracts |
| `SVC_KEI_KAISEN_UCWK_NO` | Field | Service contract line detail work number — work-level identifier for contract lines |
| `KKTK_SVC_KEI_NO` | Field | Equipment provision service number — identifier for equipment-related service contracts |
| `OP_SVC_KEI_NO` | Field | Option service number — identifier for option service contracts (e.g., TV) |
| `SEIKY_KEI_NO` | Field | Billing contract number — identifier for billing service contracts |
| `KOJIAK_NO` | Field | Work project number — identifier for construction/work project records |
| `DNWACHO_MSKM_NO` | Field | Phone bill masking number — identifier for phone bill application records |
| `DNWACHO_MSKM_NAIYO_NO` | Field | Phone bill masking detail number — sub-identifier for phone bill application details |
| `AD_SHUSEI_CD` | Field | Address consolidation code — code indicating whether the address has been consolidated (address unification) |
| `NEW_AD_CD` / `NEW_PCD` | Field | New address code / New postal code — the updated address fields from the source data |
| `OLD_AD_CD` / `OLD_PCD` | Field | Old address code / Old postal code — the previous address fields from the source data |
| `PCD` | Field | Postal code — Japanese postal addressing code |
| `STATE_NM` | Field | Prefecture name — Japanese prefecture (都道府県) name from address |
| `CITY_NM` | Field | City name — municipality (市区) name from address |
| `OAZTSU_NM` | Field | District name — larger district (大字) name from address |
| `AZCHO_NM` | Field | Town/block name — smaller district (町丁) name from address |
| `BNCHIGO` | Field | Branch number — supplementary address number (枝番) |
| `ADRTTM` | Field | Address time — timestamp of last address update |
| `ADRRM` | Field | Address room — room/suite number in address |
| `HOOSEI_PCD` | Field | Corrected postal code — postal code after postal code correction processing |
| KK_T_CHG_AD_JGRTWK | DB Table | Change-preserved address work table — the target table where address change records are inserted |
| KK_T_CHGTGAD_CD_WK | DB Table | Change-target address code work table — work table tracking the processing status of address codes |
| CK_T_CUST | DB Table | NTT customer master table — primary customer reference table |
| CK_T_CUST_KOJIN | DB Table | Individual customer master table — separate table for personal (non-corporate) customers |
| KK_T_SVKEIUW_EOH_TEL | DB Table | eo Light Phone service contract table |
| KK_T_SVKEI_KAISEN_UW | DB Table | Service contract lines table — contract line-level details |
| KK_T_KKTK_SVC_KEI | DB Table | Equipment provision service contract table |
| KK_T_OPSVKEI_TV | DB Table | TV option service contract table |
| KK_T_SEIKY_KEI | DB Table | Billing contract table |
| KU_T_KOJIAK | DB Table | Work project table — construction and installation work records |
| TU_T_DNWACHOMSK_NYO | DB Table | Phone bill application details table |
| DK_T_HAISO | DB Table | Delivery records table |
| SEQ_CHG_AD_JGRTWK_NO | Sequence | Oracle sequence for generating primary keys on the change-preserved address table |
| HENKO | Business term | Change / modification (変更) — refers to address changes in this context |
| TOHAIGO | Business term | Preservation / retention (通報後) — refers to retaining address change data after transmission |
| MI | Business term | Untransmitted / not yet sent (未送信) — status code "0" |
| ZM | Business term | Completed / zero message (完了) — status code "9" |
| FUKA | Business term | Invalid / exception (不整合) — status code "4" |
| eo Light | Business term | eo Light Phone (eoひかり電話) — NTT Communications fiber-optic telephone service |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband service infrastructure |