# Business Logic — JBSbatKKKjFinDataInTrn.execute() [2094 LOC]

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

## 1. Role

### JBSbatKKKjFinDataInTrn.execute()

This method is the core batch processing entry point for **Construction Completion Data Input Processing** (工事完了データ取込処理). It receives a work-completed notification from the field and performs a comprehensive update of all service contracts, reservation records, and device-provided service associations related to the affected customer. The method implements a **routing/dispatch design pattern** that branches by service code (Internet/eo Mobile, Telephone, TV) and then by the type of service contract state, calling specialized sub-methods for each service type's specific processing flow.

The method handles the full lifecycle of post-work data reconciliation: it retrieves the error reservation (異動予約), service contract (SVC_KEI), service inner number (SVC_KEI_UCWK), device-provided service contracts (KKTK_SVC_KEI), and related data. It invokes configurable business rules (RULE0065, RULE0067, RULE0073, RULE0075) to dynamically compute billing start dates, plan start dates, and reservation apply dates. The method then updates or inserts service contracts, reservation records, progress tracking schemas, and optionally registers device-provided service contracts for equipment such as multi-function routers and home gateways (HGW). It is a **shared batch utility** called by the KKPRC work-completion notification process.

**Processing branches by service code:**

- **Internet/eo Mobile** (SVC_CD_IN_SVC = "01"): Handles internet service contracts, including eo Mobile service (new pricing group "08"). Performs full service contract inner-number reconciliation and device-provided service updates.
- **Internet with work completed/none** (SVC_CD_IN_SVC = "01" AND kojiRslt = "1"/"2"/"0"): Internet service where the work result is "work completed" (工事完了), "work pending correction" (工事訂正), or "no work" (工事なし). Handles the optional service contract new/termination registration.
- **Telephone Service** (SVC_CD_TEL_SVC = "02" AND kojiRslt = "1"/"2"/"0"): Telephone service branch handling work-completed scenarios.
- **TV Service** (SVC_CD_TV_SVC = "03" AND kojiRslt = "1"/"2"/"0"): Television service branch handling work-completed scenarios.

The method serves as an entry point in the larger **eo Customer Backbone System** (eo顧客基幹システム), bridging field work completion data with back-end service contract management.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute inMap"])
    START --> INIT["Initialize: outputBean, local vars, DB maps"]
    INIT --> INPUT["Extract input fields from inMap KKIFM151"]
    INPUT --> CHECK_UCWK["UCWK Flg check svcKeiUcwkNo1_151"]
    CHECK_UCWK --> TRUE["UcwkFlg = true"]
    CHECK_UCWK --> FALSE["UcwkFlg = false"]
    TRUE --> DEBUG_LOGS["Print debug logs"]
    FALSE --> DEBUG_LOGS
    DEBUG_LOGS --> CHECK_KOJI["kojiRslt_151 empty?"]
    CHECK_KOJI --> YES_K["kojiAkSbtCd = 999 for 00019"]
    CHECK_KOJI --> NO_K["selectKojiAk kojiakNo_151"]
    YES_K --> SVC_SEARCH_261["executeKK_T_SVC_KEI_KK_SELECT_261"]
    NO_K --> SVC_SEARCH_261
    SVC_SEARCH_261 --> SVC_261_NULL{svcKeiMap_106 null?}
    SVC_261_NULL --> YES_S["Yes"]
    SVC_261_NULL --> NO_S["No"]
    YES_S --> CALL_RULE65["callRule0065001 billing start date rule"]
    CALL_RULE65 --> GET_RSV["getRsvAplyYmd reservation apply date"]
    GET_RSV --> RSV_EMPTY{rsvAplyYmd empty?}
    RSV_EMPTY --> YES_R["return null"]
    RSV_EMPTY --> NO_R["Set rsvAplyDate"]
    NO_R --> UPDATE_IDO_RSV4["updateIdoRsv4"]
    UPDATE_IDO_RSV4 --> INSERT_PRG1["insertPrg progress schema"]
    INSERT_PRG1 --> SEARCH_IDO_RSV["searchIdoRsv idoRsvNo_151"]
    SEARCH_IDO_RSV --> UPDATE_TRG_GAI["updateIdoRsvTrgGaiData"]
    UPDATE_TRG_GAI --> BUILD_OUT1["Build output outmap"]
    BUILD_OUT1 --> RET_OUT1["return outputBean"]
    NO_S --> THROW_261["Exception SVC_KEI not found"]
    THROW_261 --> RET_OUT1
    RET_OUT1 --> IDO_DTM["Get idoDtm via getIdoDtmMax"]
    IDO_DTM --> HAITA_SEARCH["searchIdoRsv idoRsvNo_151"]
    HAITA_SEARCH --> TIMESTAMP_CHECK{idoTimeStampCheck passes?}
    TIMESTAMP_CHECK --> PASS_TS["Extract idoRsv fields"]
    TIMESTAMP_CHECK --> FAIL_TS["Print business error EKKB0360KE"]
    FAIL_TS --> RET_NULL_ERR["return null"]
    PASS_TS --> SVC_STAT_CHECK{svcKeiStat = 100 or svcCd = 01 + PGRP_MOB = 08?}
    SVC_STAT_CHECK --> YES_STAT["Internet eMobile branch"]
    SVC_STAT_CHECK --> NO_STAT["Check idoDiv = 00019"]
    NO_STAT --> IDO_DIV_00019["Set kojiAkSbtCd = 999"]
    IDO_DIV_00019 --> SVC_CD_01_CHECK{svcCd = 01 AND kojiRslt in 1,2,0?}
    SVC_CD_01_CHECK --> YES_01["Internet work completed branch"]
    SVC_CD_01_CHECK --> NO_01["Check svcCd = 02"]
    YES_01 --> SEARCH_IDO_010["executeKK_T_IDO_RSV_KK_SELECT_010"]
    SEARCH_IDO_010 --> IDO_010_NULL{idoRsvMap_010 null?}
    IDO_010_NULL --> YES_I["Exception IdosoRsv not found"]
    IDO_010_NULL --> NO_I["executeKK_T_SVC_KEI_KK_SELECT_106"]
    NO_I --> SVC_106_NULL{svcKeiMap_106 null?}
    SVC_106_NULL --> YES_S2["Exception SVC_KEI not found"]
    SVC_106_NULL --> NO_S2["RULE0065 getRsvAplyYmd"]
    NO_S2 --> UPDATE_IDO_RSV2I["updateIdoRsv2 updateIdoRsvTrgGaiData insertPrg"]
    UPDATE_IDO_RSV2I --> RET_INTELNET["return null"]
    NO_I --> IDO_DIV_00019_2{"idoDiv_151 = 00019?"}
    IDO_DIV_00019_2 --> YES_D["kojiAkSbtCd = 999"]
    IDO_DIV_00019_2 --> NO_D["selectKojiAk"]
    YES_D --> IDO_014_SEARCH["executeKK_T_IDO_RSV_KK_SELECT_014"]
    NO_D --> IDO_014_SEARCH
    IDO_014_SEARCH --> IDO_014_FOUND{idoRsvMap_014 found?}
    IDO_014_FOUND --> FOUND_014["kkTIdoRsv014Flg = true"]
    IDO_014_FOUND --> NOT_FOUND_014["kkTIdoRsv014Flg = false"]
    FOUND_014 --> UCWK_FLG_CHECK{UcwkFlg?}
    NOT_FOUND_014 --> UCWK_FLG_CHECK
    UCWK_FLG_CHECK --> UCWK_TRUE["Search svcKeiUcwkNew, svkeiUwEohNet etc."]
    UCWK_FLG_CHECK --> UCWK_FALSE["Search KKTK_SVC_KEI SELECT_064"]
    UCWK_TRUE --> RULE73_65["callRule0073001 callRule0065001"]
    RULE73_65 --> UCWK_STAT_100{svcKeiUcwkStat = 100?}
    UCWK_STAT_100 --> YES_U["updateSvcKeiUcwkNew updateSvkeiUwEohNet1"]
    UCWK_STAT_100 --> NO_U["insertSvcKeiUcwkNew insertSvkeiUwEohNet"]
    YES_U --> SVC_START_OP["svcStartOpSvcKei"]
    NO_U --> SVC_START_OP
    SVC_START_OP --> KKTK_064["executeKK_T_KKTK_SVC_KEI_KK_SELECT_064"]
    KKTK_064 --> WHILE_064{"map_064 not null?"}
    WHILE_064 --> Y_064["insertUpdatekktkSvcKeiNet updateIdoRsvTrgGaiWhere"]
    Y_064 --> N_064["map_064 = selectNext"]
    N_064 --> WHILE_064
    WHILE_064 --> N_064F["executeKK_T_KKTK_SVC_KEI_KK_SELECT_162"]
    N_064F --> WHILE_162{"map_162 not null?"}
    WHILE_162 --> Y_162["insertKktkSvcKeiTakinoRouter insertIdoRsvAnsnHcsSvc"]
    Y_162 --> N_162["map_162 = selectNext"]
    N_162 --> WHILE_162
    WHILE_162 --> N_162F["updateKktkSvcDslIdoRsv"]
    N_162F --> UPDATE_IDO_RSV["updateIdoRsv updateIdoRsvTrgGaiData"]
    UPDATE_IDO_RSV --> FLG_CHECK{kkTIdoRsv014Flg?}
    FLG_CHECK --> F_TRUE["updateIdoRsv2 search_039 updateIdoRsv3"]
    FLG_CHECK --> F_FALSE["Check svcKeiUcwkStat"]
    F_TRUE --> UCWK_STAT_MAIN{svcKeiUcwkStat = 100?}
    F_FALSE --> UCWK_STAT_MAIN
    UCWK_STAT_MAIN --> YES_SM["updateSvcKeiUcwkNew updateSvkeiUwEohNet1"]
    UCWK_STAT_MAIN --> NO_SM["insertSvcKeiUcwkNew insertSvkeiUwEohNet"]
    YES_SM --> SVC_START_OP2["svcStartOpSvcKei"]
    NO_SM --> SVC_START_OP2
    SVC_START_OP2 --> KKTK_048["executeKK_T_KKTK_SVC_KEI_KK_SELECT_048"]
    KKTK_048 --> WHILE_048{"map_048 not null?"}
    WHILE_048 --> Y_048["RULE0075 RULE0067 kktkSvcKeiInsertNetTv
logicalDeleteKktkSvcKei updataIdoRsvTrgKktkSvcKeiNo"]
    Y_048 --> N_048["map_048 = selectNext"]
    N_048 --> WHILE_048
    WHILE_048 --> N_048F["insertPrg"]
    N_048F --> RET_OUT2["return outputBean"]
    RET_OUT2 --> END_NODE(["END"])
    NO_01 --> SVC_CD_02_CHECK{svcCd = 02 AND kojiRslt in 1,2,0?}
    SVC_CD_02_CHECK --> YES_02["Telephone Service branch"]
    SVC_CD_02_CHECK --> NO_02["Check svcCd = 03"]
    YES_02 --> TEL_SEARCH["SELECT_010 SELECT_106 RULE0065
updateIdoRsv5 updateKktkSvcDslIdoRsv
insertPrg"]
    TEL_SEARCH --> RET_OUT2
    NO_02 --> SVC_CD_03_CHECK{svcCd = 03 AND kojiRslt in 1,2,0?}
    SVC_CD_03_CHECK --> YES_03["TV Service branch"]
    SVC_CD_03_CHECK --> NO_03["END"]
    YES_03 --> TV_SEARCH["SELECT_010 SELECT_106 RULE0065
SELECT_015"]
    TV_SEARCH --> RET_OUT2
    YES_R --> IDO_DTM
    YES_I --> RET_NULL_ERR
    YES_S2 --> RET_NULL_ERR
    NO_S2 --> RET_INTELNET
    RET_INTELNET --> IDO_DIV_00019_2
```

**CONSTANT_RESOLUTION:**
- `JBSbatKKConst.CD00576_IDO_DIV_00019 = "00019"` (Address change / registration)
- `JBSbatKKConst.SVC_KEI_STAT_SVCTK_CHU = "100"` (Service provision in progress)
- `JBSbatKKConst.SVC_CD_IN_SVC = "01"` (Internet service)
- `JBSbatKKConst.PGRP_MOB_08 = "08"` (eo Mobile)
- `JBSbatKKConst.SVC_CD_TEL_SVC = "02"` (Telephone service)
- `JBSbatKKConst.SVC_CD_TV_SVC = "03"` (TV service)
- `JBSbatKKConst.KKIFM151_KOJI_RSLT_1 = "1"` (Work completed)
- `JBSbatKKConst.KKIFM151_KOJI_RSLT_2 = "2"` (Work pending correction)
- `JBSbatKKConst.KKIFM151_KOJI_RSLT_0 = "0"` (No work)

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message containing construction completion data (KKIFM151 format) — carries service contract number, update datetime, error reservation number, work result code, service code, service inner numbers (new/termination), generation registration dates, work completion date, application detail number, error division, work case number, and new pricing group code |
|   | `svcKeiNo_151` | `String` (local) | Service contract number (SVC_KEI_NO) — internal identifier for the service contract line item |
|   | `lastUpdDtmBf` | `String` (local) | Update datetime before (UPD_DTM) — previous modification timestamp for concurrency control |
|   | `idoRsvNo_151` | `String` (local) | Error reservation number (IDO_RSV_NO) — identifier for the pending reservation due to the construction completion |
|   | `updDtm1_151` | `String` (local) | Update datetime 1 (UPD_DTM1) — timestamp for timestamp checking against reservation table |
|   | `svcCd_151` | `String` (local) | Service code (SVC_CD) — classifies the service type (01=Internet, 02=Telephone, 03=TV) |
|   | `svcKeiUcwkNo1_151` | `String` (local) | Service inner number 1 (SVC_KEI_UCWK_NO1) — new service contract line item number (service addition/registration) |
|   | `geneAddDtm1_151` | `String` (local) | Generation registration datetime 1 (GENE_ADD_DTM1) — generation registration date for PK lookup |
|   | `svcKeiUcwkNo2_151` | `String` (local) | Service inner number 2 (SVC_KEI_UCWK_NO2) — terminated service contract line item number (service termination) |
|   | `geneAddDtm2_151` | `String` (local) | Generation registration datetime 2 (GENE_ADD_DTM2) — generation registration date for termination lookup |
|   | `idoRsvNo2_151` | `String` (local) | Error reservation number 2 (IDO_RSV_NO2) — secondary error reservation number for optional service contracts |
|   | `updDtm2_151` | `String` (local) | Update datetime 2 (UPD_DTM2) — timestamp for secondary reservation checking |
|   | `kojiRslt_151` | `String` (local) | Work result (KOJI_RSLT) — status of field work: "0"=no work, "1"=completed, "2"=pending correction |
|   | `kojiakFinYmd_151` | `String` (local) | Work completion date (KOJIAK_FIN_YMD) — the date the field work was completed |
|   | `mskmDtlNo_151` | `String` (local) | Application detail number (MSKM_DTL_NO) — identifier for the application detail record |
|   | `idoDiv_151` | `String` (local) | Error division (IDO_DIV) — classification of error reservation type (e.g., "00019"=address change/registration) |
|   | `kojiakNo_151` | `String` (local) | Work case number (KOJIAK_NO) — identifier for the work case record |
|   | `newPrcGrpCd_151` | `String` (local) | New pricing group code (NEW_PRC_GRP_CD) — pricing group classification for the new service |
|   | `svcKeiStat` | `String` (local) | Service contract status (SVC_KEI_STAT) — status of the service contract (e.g., "100"=provision in progress) |
|   | `idoRsvDtlCd` | `String` (local) | Error reservation detail code (IDO_RSV_DTL_CD) — detail classification of the error reservation |
|   | `super.opeDate` | `String` (inherited) | Operation date (from parent class) — the system operation date used for SQL queries |

**External state read by the method:**
- `super.logPrint` — logging utility for debug and business error logs
- `super.db_KK_T_SVC_KEI`, `db_KK_T_IDO_RSV_010`, `db_KK_T_IDO_RSV_014`, `db_KK_T_IDO_RSV_039`, `db_KK_T_KKTK_SVC_KEI`, `db_KK_T_KKTK_SVC_KEI2`, `db_KK_T_KKTK_SVC_KEI_089` — database result sets from SQL definitions

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `executeKK_T_SVC_KEI_KK_SELECT_261` | EKK1081D261CBS | KK_T_SVC_KEI | Queries service contract by service case number and operation date |
| R | `executeKK_T_SVC_KEI_KK_SELECT_106` | EKK1081D106CBS | KK_T_SVC_KEI | Queries service contract by operation date, service contract number, and error reservation number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_010` | EKK1070D010CBS | KK_T_IDO_RSV | Queries error reservation by error reservation number and service contract number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_014` | EKK1070D014CBS | KK_T_IDO_RSV | Queries error reservation by error reservation number 2 and service inner number 2 |
| R | `executeKK_T_IDO_RSV_KK_SELECT_015` | EKK1070D015CBS | KK_T_IDO_RSV | Queries error reservation by application detail number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_039` | EKK1070D039CBS | KK_T_IDO_RSV | Queries error reservation by service inner number 2, operation date, and application detail number |
| R | `executeKK_T_SVC_KEI_UCWK_PKSELECT` | EKK1090D001SC | KK_T_SVC_KEI_UCWK | Primary key lookup for service inner number (new registration) |
| R | `executeKK_T_SVKEIUW_EOH_NET_PKSELECT` | EKK1091D001SC | KK_T_SVKEIUW_EOH_NET | Primary key lookup for KK SVC inner number eo net (new) |
| R | `executeKK_T_SVC_KEI_UCWK_PKSELECT2` | EKK1090D002SC | KK_T_SVC_KEI_UCWK | Primary key lookup for service inner number (termination) |
| R | `executeKK_T_SVKEIUW_EOH_NET_PKSELECT2` | EKK1091D002SC | KK_T_SVKEIUW_EOH_NET | Primary key lookup for KK SVC inner number eo net (termination) |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_064` | EKK2080D064CBS | KK_T_KKTK_SVC_KEI | Queries device-provided service contract by work case number and service contract number |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_162` | EKK2080D162CBS | KK_T_KKTK_SVC_KEI | Queries device-provided service contract for multi-function router/HGW |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_048` | EKK2080D048CBS | KK_T_KKTK_SVC_KEI | Queries device-provided service contract by work case number and service line inner number |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_089` | EKK2080D089CBS | KK_T_KKTK_SVC_KEI | Queries device-provided service contract by KKTK_SVC_KEI_NO and operation date |
| R | `selectKktkSvcKeiPk` | - | KK_T_KKTK_SVC_KEI | Primary key lookup for device-provided service contract |
| R | `searchIdoRsv` | - | KK_T_IDO_RSV | Queries error reservation by error reservation number |
| R | `JKKBatCommon.getIdoDtmMax` | - | - | Gets maximum datetime from error reservation table or system date |
| R | `callRule0065001` | RULE0065 | - | Calls RULE0065 billing start date configuration for service |
| R | `callRule0067001` | RULE0067 | - | Calls RULE0067 billing start date configuration for device-provided service |
| R | `callRule0073001` | RULE0073 | - | Calls RULE0073 start date configuration for service |
| R | `callRule0075001` | RULE0075 | - | Calls RULE0075 start date configuration for device-provided service |
| R | `selectNext` | - | DB tables | Retrieves next record from result set |
| C | `insertSvcKeiUcwkNew` | - | KK_T_SVC_KEI_UCWK | Inserts new service inner number record |
| C | `insertSvkeiUwEohNet` | - | KK_T_SVKEIUW_EOH_NET | Inserts new KK SVC inner number eo net record |
| C | `insertPrg` | - | KK_T_PRG | Inserts progress schema registration |
| C | `insertUpdatekktkSvcKeiNet` | - | KK_T_KKTK_SVC_KEI | Inserts/updates device-provided service contract |
| C | `insertKktkSvcKeiTakinoRouter` | - | KK_T_KKTK_SVC_KEI | Inserts device-provided service contract for multi-function router/HGW |
| C | `insertIdoRsvAnsnHcsSvc` | - | KK_T_IDO_RSV | Inserts error reservation for ANSAN (security) HCS service |
| C | `kktkSvcKeiInsertNetTv` | - | KK_T_KKTK_SVC_KEI | Inserts device-provided service contract for TV |
| U | `updateIdoRsv4` | - | KK_T_IDO_RSV | Updates error reservation with apply date |
| U | `updateIdoRsv2` | - | KK_T_IDO_RSV | Updates error reservation 2 with apply date |
| U | `updateIdoRsv3` | - | KK_T_IDO_RSV | Updates error reservation in while loop |
| U | `updateIdoRsv5` | - | KK_T_IDO_RSV | Updates error reservation for telephone service |
| U | `updateIdoRsv` | - | KK_T_IDO_RSV | Updates main error reservation |
| U | `updateIdoRsvTrgGaiData` | - | KK_T_IDO_RSV | Updates non-target reservation data with apply date |
| U | `updateIdoRsvTrgGaiWhereKktkSvcKei` | - | KK_T_IDO_RSV | Updates reservation where device-provided service contract matches |
| U | `updateKktkSvcDslIdoRsv` | - | KK_T_IDO_RSV | Updates DSL error reservation for VA/base router |
| U | `updateSvcKeiUcwkNew` | - | KK_T_SVC_KEI_UCWK | Updates service inner number (new registration) |
| U | `updateSvkeiUwEohNet1` | - | KK_T_SVKEIUW_EOH_NET | Updates KK SVC inner number eo net (new) |
| U | `updataIdoRsvTrgKktkSvcKeiNo` | - | KK_T_IDO_RSV | Updates error reservation target by KKTK_SVC_KEI_NO |
| D | `logicalDeleteKktkSvcKei` | - | KK_T_KKTK_SVC_KEI | Logical delete of device-provided service contract record |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: KKPRC02204 (work completion notification) | KKPRC02204.main -> processCompletion -> JBSbatKKKjFinDataInTrn.execute | SELECT_261 [R] KK_T_SVC_KEI, SELECT_106 [R] KK_T_SVC_KEI, SELECT_010 [R] KK_T_IDO_RSV, INSERT_PRG [C] KK_T_PRG, UPDATE_IDO_RSV [U] KK_T_IDO_RSV |
| 2 | Batch: KKPRC02204 (internet/eMobile branch) | KKPRC02204 -> execute -> Internet/eMobile branch | SELECT_010 [R] KK_T_IDO_RSV, SELECT_106 [R] KK_T_SVC_KEI, UPDATE_IDO_RSV2 [U] KK_T_IDO_RSV, INSERT_Ucwk [C] KK_T_SVC_KEI_UCWK |
| 3 | Batch: KKPRC02204 (telephone branch) | KKPRC02204 -> execute -> Telephone branch | SELECT_010 [R] KK_T_IDO_RSV, SELECT_106 [R] KK_T_SVC_KEI, UPDATE_IDO_RSV5 [U] KK_T_IDO_RSV |
| 4 | Batch: KKPRC02204 (TV branch) | KKPRC02204 -> execute -> TV branch | SELECT_010 [R] KK_T_IDO_RSV, SELECT_106 [R] KK_T_SVC_KEI, SELECT_015 [R] KK_T_IDO_RSV |

## 6. Per-Branch Detail Blocks

### Block 1 — INITIALIZATION (L915)

> Initializes output bean, local variables for KKIFM151 format fields, and creates DB interface maps for all SQL result sets.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputBean = new JBSbatOutputItem()` |
| 2 | SET | `svcKeiNo_151, lastUpdDtmBf, idoRsvNo_151, updDtm1_151, svcCd_151` — 17 local string variables initialized to "" |
| 3 | SET | `idoRsvMap_010, idoRsvMap_014, idoRsvMap_015, idoRsvMap_039` — DB interfaces |
| 4 | SET | `svcKeiMap_106, svcKeiUwMap_059, kktkSvcKeiMap_064, kktkSvcKeiMap_048` — DB interfaces |
| 5 | SET | `haitaIdoRsv_map, haitaIdoRsv_map2` — DB interfaces |
| 6 | EXEC | `super.logPrint.printDebugLog("execute_START")` |

### Block 2 — EXTRACT INPUT FIELDS (L994-L1042)

> Extracts all fields from inMap using KKIFM151 field name constants.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiNo_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_NO)` |
| 2 | SET | `lastUpdDtmBf = inMap.getString(JBSbatKKIFM151.UPD_DTM)` |
| 3 | SET | `idoRsvNo_151 = inMap.getString(JBSbatKKIFM151.IDO_RSV_NO)` |
| 4 | SET | `svcCd_151 = inMap.getString(JBSbatKKIFM151.SVC_CD)` |
| 5 | SET | `svcKeiUcwkNo1_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_UCWK_NO1)` |
| 6 | SET | `svcKeiUcwkNo2_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_UCWK_NO2)` |
| 7 | SET | `kojiRslt_151 = inMap.getString(JBSbatKKIFM151.KOJI_RSLT)` |
| 8 | SET | `kojiakNo_151 = inMap.getString(JBSbatKKIFM151.KOJIAK_NO)` |
| 9 | SET | `svcKeiStat = inMap.getString(JBSbatKKIFM151.SVC_KEI_STAT)` |
| 10 | SET | `idoDiv_151 = inMap.getString(JBSbatKKIFM151.IDO_DIV)` |
| 11 | SET | (and 8 additional KKIFM151 fields) |

### Block 3 — UCWK FLG CHECK (L1043-L1048)

> Determines if service inner number 1 has data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `UcwkFlg = true` (default) |
| 2 | IF | `isEmpty(svcKeiUcwkNo1_151)` → `UcwkFlg = false` |

### Block 4 — DEBUG LOGS (L1049-L1063)

> Logs all extracted input field values for debugging.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.logPrint.printDebugLog("service contract number: " + svcKeiNo_151)` |
| 2 | EXEC | `super.logPrint.printDebugLog("update datetime: " + lastUpdDtmBf)` |
| 3 | EXEC | (and 10 more debug log calls) |

### Block 5 — KOJI RESULT CHECK AND SVC_KEI QUERY (L1065-L1130)

> If work result is empty, checks if idoDiv is "00019" (address change). Otherwise queries work case info. Then queries service contract.

| # | Type | Code |
|---|------|------|
| 1 | IF | `(kojiRslt_151.trim()).length() == 0` |
| 2 | IF | `JBSbatKKConst.CD00576_IDO_DIV_00019.equals(idoDiv_151)` → `kojiAkSbtCd = "999"` |
| 3 | ELSE | `kojiAkSbtCd = selectKojiAk(kojiakNo_151)` |
| 4 | SET | `whereKKSvcKeiParam = {opeDate, opeDate, opeDate, idoRsvNo_151}` |
| 5 | CALL | `executeKK_T_SVC_KEI_KK_SELECT_261(whereKKSvcKeiParam)` |
| 6 | SET | `svcKeiMap_106 = db_KK_T_SVC_KEI.selectNext()` |

### Block 6 — SVC_KEI RESULTS BRANCH (L1122-L1130)

| # | Type | Code |
|---|------|------|
| 1 | IF | `null != svcKeiMap_106` |
| 2 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` → checkChrgListList |
| 3 | CALL | `getRsvAplyYmd(checkChrgListList, svcCd_151, prcGrpCd, kojiakFinYmd_151)` |
| 4 | IF | `"".equals(rsvAplyYmd)` → `return null` |
| 5 | SET | `idoDiv_151 = svcKeiMap_106.getString(JBSbatKK_T_SVC_KEI.IDO_DIV)` |
| 6 | ELSE | `throw JBSbatBusinessException(EKKB0210CE, "SVC_KEI not found")` |

### Block 7 — RESERVE APPLY DATE SETTING (L1131-L1149)

> Sets rsvAplyDate based on comparison between billing start date and operation date.

| # | Type | Code |
|---|------|------|
| 1 | IF | `0 >= rsvAplyYmd.compareTo(opeDate)` → `rsvAplyDate = adjustDate(opeDate, 1)` |
| 2 | ELSE | `rsvAplyDate = rsvAplyYmd` |

### Block 8 — UPDATE ERROR RESERVATION (L1151-L1177)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `updateIdoRsv4(idoRsvNo_151, kojiakNo_151, rsvAplyDate, idoDiv_151, kojiakFinYmd_151)` |
| 2 | CALL | `insertPrg(kojiRslt_151, idoDiv_151, svcKeiNo_151, mskmDtlNo_151)` |
| 3 | CALL | `idoRsvMap = searchIdoRsv(idoRsvNo_151)` |
| 4 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, rsvAplyDate, idoDiv_151, kojiakFinYmd_151)` |
| 5 | SET | Build output: `outmap.set(IDO_RSV_NO, idoRsvNo_151)` |
| 6 | EXEC | `outmap.setOutFlg(true)` |
| 7 | EXEC | `outputBean.addOutMapList_2(outmap)` |
| 8 | RETURN | `return outputBean` |

### Block 9 — TIMESTAMP CHECK (L1180-L1203)

> After returning from the early path, checks error reservation timestamp for concurrency control.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `idoDtm = JKKBatCommon.getIdoDtmMax(commonItem, svcKeiNo_151, idoDiv_151, stmt)` |
| 2 | CALL | `haitaIdoRsv_map = searchIdoRsv(idoRsvNo_151)` |
| 3 | SET | `idoLastUpdDtmAf = Rtrim(haitaIdoRsv_map.getString(UPD_DTM))` |
| 4 | IF | `null == idoTimeStampCheck(...)` → log error EKKB0360KE, `return null` |
| 5 | SET | `idoRsvIdoDiv = haitaIdoRsv_map.getString(IDO_DIV)` |
| 6 | SET | `idoRsvMskmDtlNo = haitaIdoRsv_map.getString(MSKM_DTL_NO)` |
| 7 | SET | `idoPnltyHasseiCd = Rtrim(haitaIdoRsv_map.getString(PNLTY_HASSEI_CD))` |

### Block 10 — SERVICE STATUS CHECK (L1205-L1214)

> Checks if service status is "100" (provision in progress) or if it is Internet/eo Mobile service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JBSbatKKConst.SVC_KEI_STAT_SVCTK_CHU.equals(svcKeiStat)` |
| 2 | IF | `JBSbatKKConst.SVC_CD_IN_SVC.equals(svcCd_151) && JBSbatKKConst.PGRP_MOB_08.equals(newPrcGrpCd_151)` |

### Block 10.1 — INTERNET/EMOBILE SERVICE BRANCH (L1214-L1336)

> Full processing for Internet/eo Mobile services.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010({idoRsvNo_151, svcKeiNo_151})` |
| 2 | IF | `null == idoRsvMap_010` → `throw EKKB0210CE` |
| 3 | CALL | `executeKK_T_SVC_KEI_KK_SELECT_106({opeDate, opeDate, svcKeiNo_151, idoRsvNo_151})` |
| 4 | SET | `svcKeiMap_106 = db_KK_T_SVC_KEI.selectNext()` |
| 5 | IF | `null != svcKeiMap_106` |
| 6 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` |
| 7 | CALL | `getRsvAplyYmd(checkChrgListList, svcCd_151, prcGrpCd, kojiakFinYmd_151)` |
| 8 | IF | `"".equals(rsvAplyYmd)` → `return null` |
| 9 | CALL | `updateIdoRsv2(idoRsvNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 10 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, rsvAplyYmd, idoDiv_151, kojiakFinYmd_151)` |
| 11 | CALL | `insertPrg(kojiRslt_151, idoDiv_151, svcKeiNo_151, mskmDtlNo_151)` |
| 12 | RETURN | `return null` |

### Block 11 — ADDRESS CHANGE CHECK (L1338-L1346)

> After the Internet/eMobile branch, checks if idoDiv is "00019" (address change).

| # | Type | Code |
|---|------|------|
| 1 | IF | `JBSbatKKConst.CD00576_IDO_DIV_00019.equals(idoDiv_151)` → `kojiAkSbtCd = "999"` |
| 2 | ELSE | `kojiAkSbtCd = selectKojiAk(kojiakNo_151)` |

### Block 12 — INTERNET WITH WORK COMPLETED CHECK (L1348-L1355)

> Checks for Internet service (01) with specific work result codes.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JBSbatKKConst.SVC_CD_IN_SVC.equals(svcCd_151)` AND `kojiRslt_151` in {"1","2","0"} |

### Block 12.1 — OPTIONAL SERVICE CONTRACT HANDLING (L1357-L1440)

> If optional error reservation 2 exists, validates timestamp, queries, and processes.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!"".equals(idoRsvNo2_151)` |
| 2 | CALL | `haitaIdoRsv_map2 = searchIdoRsv(idoRsvNo2_151)` |
| 3 | IF | `null == idoTimeStampCheck(idoRsvNo2_151, updDtm2_151, idoLastUpdDtmAf2)` → error, `return null` |
| 4 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010({idoRsvNo_151, svcKeiNo_151})` |
| 5 | IF | `null == idoRsvMap_010` → `throw EKKB0210CE` |
| 6 | CALL | `executeKK_T_SVC_KEI_KK_SELECT_106({opeDate, opeDate, svcKeiNo_151, idoRsvNo_151})` |
| 7 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` |
| 8 | CALL | `getRsvAplyYmd(...)` |
| 9 | CALL | `updateIdoRsv2(idoRsvNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 10 | CALL | `updateIdoRsvTrgGaiData(...)` |
| 11 | RETURN | `return null` |

### Block 13 — IDO_014 SEARCH (L1471-L1490)

> Searches error reservation by service inner number 2.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_014({idoRsvNo2_151, svcKeiUcwkNo2_151})` |
| 2 | IF | `null == idoRsvMap_014` → `kkTIdoRsv014Flg = false` |
| 3 | ELSE | `kkTIdoRsv014Flg = true` |

### Block 14 — UCWK FLG SEARCHES (L1508-L1640)

> If UcwkFlg is true, searches service inner number records (new/termination) and EO net inner numbers.

| # | Type | Code |
|---|------|------|
| 1 | IF | `UcwkFlg` |
| 2 | SET | `ucwk1_param = {svcKeiUcwkNo1_151, geneAddDtm1_151}` |
| 3 | CALL | `ucwk1_map = executeKK_T_SVC_KEI_UCWK_PKSELECT(ucwk1_param)` |
| 4 | IF | `null == ucwk1_map` → `throw EKKB0210CE` |
| 5 | CALL | `callRule0073001(svcKeiMap_106, kojiAkSbtCd)` |
| 6 | CALL | `getStaymd(checkList, kojiakNo_151, idoDiv_151, kojiakFinYmd_151)` → planStaymd |
| 7 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` |
| 8 | CALL | `getSvcChrgStaymd(checkChrgListList, planStaymd)` → planChrgStaymd |
| 9 | SET | `svcKeiUcwkStat = ucwk1_map.getString(SVC_KEI_UCWK_STAT)` |
| 10 | SET | `svkeiUwEohNet_param = {svcKeiUcwkNo1_151, geneAddDtm1_151}` |
| 11 | CALL | `svkeiUwEohNet_map = executeKK_T_SVKEIUW_EOH_NET_PKSELECT(...)` |
| 12 | SET | `ucwk2_param = {svcKeiUcwkNo2_151, geneAddDtm2_151}` |
| 13 | CALL | `ucwk2_map = executeKK_T_SVC_KEI_UCWK_PKSELECT2(...)` |
| 14 | SET | `svkeiUwEohNet2_param = {svcKeiUcwkNo2_151, geneAddDtm2_151}` |
| 15 | CALL | `svkeiUwEohNet2_map = executeKK_T_SVKEIUW_EOH_NET_PKSELECT2(...)` |

### Block 15 — DEVICE-PROVIDED SVC 064 SEARCH (L1642-L1710)

> Queries device-provided service contracts and processes each row in a while loop.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_whereParam = {kojiakNo_151, svcKeiNo_151}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_064(kktkSvcKei_whereParam)` |
| 3 | IF | `null == kktkSvcKeiMap_064` → log debug |
| 4 | WHILE | `null != kktkSvcKeiMap_064` |
| 5 | CALL | `insertUpdatekktkSvcKeiNet(kktkSvcKeiMap_064, svcKeiMap_106, ...)` |
| 6 | IF | `!insertUpdatekktkSvcKeiNet(...)` → `return null` |
| 7 | CALL | `updateIdoRsvTrgGaiWhereKktkSvcKei(kktkSvcKeiNo, rsvAplyYmd, ...)` |
| 8 | SET | `kktkSvcKeiMap_064 = db_KK_T_KKTK_SVC_KEI.selectNext()` |

### Block 16 — DEVICE-PROVIDED SVC 162 SEARCH (MULTI-FUNC ROUTER/HGW) (L1730-L1790)

> Queries multi-function router / HGW device-provided service contracts.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_whereParam162 = {mskmDtlNo_151, opeDate, opeDate, svcKeiNo_151, opeDate}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_162(...)` |
| 3 | WHILE | `null != kktkSvcKeiMap_162` |
| 4 | CALL | `insertKktkSvcKeiTakinoRouter(kktkSvcKeiMap_162, svcKeiMap_106, kojiakNo_151, ...)` |
| 5 | CALL | `insertIdoRsvAnsnHcsSvc(svKeiKaisenUcwkNo, kojiakFinYmd_151)` |
| 6 | SET | `kktkSvcKeiMap_162 = db.selectNext()` |

### Block 17 — DSL ERROR RESERVATION UPDATE (L1795-L1798)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `updateKktkSvcDslIdoRsv(svcKeiNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |

### Block 18 — MAIN ERROR RESERVATION UPDATE (L1800-L1805)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `updateIdoRsv(idoRsvNo_151, kojiakNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 2 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, rsvAplyYmd, idoDiv_151, kojiakFinYmd_151)` |

### Block 19 — IDO_014 FLG BRANCH (L1807-L1850)

> If kkTIdoRsv014Flg is true, processes optional service contracts.

| # | Type | Code |
|---|------|------|
| 1 | IF | `kkTIdoRsv014Flg` |
| 2 | CALL | `updateIdoRsv2(idoRsvNo2_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 3 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_039({svcKeiUcwkNo2_151, opeDate, mskmDtlNo_151})` |
| 4 | WHILE | `null != idoRsvMap_039` |
| 5 | CALL | `updateIdoRsv3(idoRsvNo, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 6 | SET | `idoRsvMap_039 = db.selectNext()` |

### Block 20 — SVC_KEI_UCWK STATUS BRANCH (L1852-L1910)

> If UcwkFlg is true, processes service inner number based on status.

| # | Type | Code |
|---|------|------|
| 1 | IF | `UcwkFlg` |
| 2 | IF | `JBSbatKKConst.SVC_KEI_STAT_SVCTK_CHU.equals(svcKeiUcwkStat)` |
| 3 | CALL | `updateSvcKeiUcwkNew(svcKeiUcwkNo1_151, geneAddDtm1_151, mskmDtlNo_151, idoDiv_151, planStaymd, planChrgStaymd)` |
| 4 | CALL | `updateSvkeiUwEohNet1(svcKeiUcwkNo1_151, geneAddDtm1_151)` |
| 5 | ELSE | `sysDateDtm = JCCBatCommon.getSysDateTimeStamp()` |
| 6 | CALL | `insertSvcKeiUcwkNew(ucwk1_map, sysDateDtm, mskmDtlNo_151, idoDiv_151, ...)` |
| 7 | CALL | `insertSvkeiUwEohNet(svkeiUwEohNet_map, sysDateDtm)` |
| 8 | CALL | `svcStartOpSvcKei(svcKeiNo_151, svcKeiUcwkNo1_151, mskmDtlNo_151, ...)` |

### Block 21 — DEVICE-PROVIDED SVC 048 SEARCH (L1912-L2050)

> Queries device-provided service contract by work case number and SVC line inner number.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_whereParam2 = {kojiakNo_151, svcKeiKaisenUcwkNo}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_048(kktkSvcKei_whereParam2)` |
| 3 | IF | `null == kktkSvcKeiMap_048` → log debug |
| 4 | WHILE | `null != kktkSvcKeiMap_048` |
| 5 | CALL | `selectKktkSvcKeiPk(kktkSvcKeiNo, geneAddDtm)` |
| 6 | SET | `haisoWayCd = JBSbatKKConst.CD01148_HAISO_WAY_CD_2 = "2"` |
| 7 | CALL | `callRule0075001(svcKeiMap_106, haisoWayCd)` |
| 8 | CALL | `getKjnYmd(checkList75, outMapKktkPk, kojiakNo_151, ...)` |
| 9 | CALL | `callRule0067001(svcKeiMap_106, outMapKktkPk)` |
| 10 | CALL | `getSvcChrgStaymd2(checkList, svcUseStaKiboYmd, kjnYmd)` |
| 11 | CALL | `kktkSvcKeiInsertNetTv(outMapKktkPk, kktkSvcKeiMapCur, ...)` |
| 12 | CALL | `logicalDeleteKktkSvcKei(kktkSvcKeiMap_048)` |
| 13 | CALL | `updataIdoRsvTrgKktkSvcKeiNo(mskmDtlNo_151, kktkSvcKeiNo)` |
| 14 | IF | `TAKNKIKI_SBT_CD equals R0 or S0` (multi-func router or HGW) |
| 15 | CALL | `insertIdoRsvAnsnHcsSvc(svKeiKaisenUcwkNo, kojiakFinYmd_151)` |
| 16 | SET | `kktkSvcKeiMap_048 = db_KK_T_KKTK_SVC_KEI2.selectNext()` |

### Block 22 — FINAL INSERT PRG (L2052-L2056)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertPrg(kojiRslt_151, idoDiv_151, svcKeiNo_151, mskmDtlNo_151)` |
| 2 | RETURN | (method continues to next processing phase) |

### Block 23 — TELEPHONE SERVICE BRANCH (L2060-L2180)

> Branch for Telephone service (SVC_CD_TEL_SVC = "02") with work result in {"1","2","0"}.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JBSbatKKConst.SVC_CD_TEL_SVC.equals(svcCd_151)` AND `kojiRslt_151` in {"1","2","0"} |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010({idoRsvNo_151, svcKeiNo_151})` |
| 3 | IF | `null == idoRsvMap_010` → `throw EKKB0210CE` |
| 4 | CALL | `executeKK_T_SVC_KEI_KK_SELECT_106({opeDate, opeDate, svcKeiNo_151, idoRsvNo_151})` |
| 5 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` |
| 6 | CALL | `getRsvAplyYmd(...)` |
| 7 | CALL | `updateIdoRsv5(idoRsvNo_151, kojiakNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 8 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, rsvAplyYmd, idoDiv_151, kojiakFinYmd_151)` |
| 9 | CALL | `updateKktkSvcDslIdoRsv(svcKeiNo_151, idoDiv_151, kojiakFinYmd_151, rsvAplyYmd)` |
| 10 | CALL | `insertPrg(kojiRslt_151, idoDiv_151, svcKeiNo_151, mskmDtlNo_151)` |
| 11 | RETURN | (outputBean) |

### Block 24 — TV SERVICE BRANCH (L2182-L2260)

> Branch for TV service (SVC_CD_TV_SVC = "03") with work result in {"1","2","0"}.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JBSbatKKConst.SVC_CD_TV_SVC.equals(svcCd_151)` AND `kojiRslt_151` in {"1","2","0"} |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010({idoRsvNo_151, svcKeiNo_151})` |
| 3 | IF | `null == idoRsvMap_010` → `throw EKKB0210CE` |
| 4 | CALL | `executeKK_T_SVC_KEI_KK_SELECT_106({opeDate, opeDate, svcKeiNo_151, idoRsvNo_151})` |
| 5 | CALL | `callRule0065001(svcKeiMap_106, kojiAkSbtCd)` |
| 6 | CALL | `getRsvAplyYmd(...)` |
| 7 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_015({mskmDtlNo_151})` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service contract number — internal identifier for a service contract line item |
| `svc_kei_stat` | Field | Service contract status — "100" = service provision in progress, "910" = terminated |
| `svc_cd` | Field | Service code — "01" = Internet service, "02" = Telephone service, "03" = TV service, "04" = Hosting |
| `svc_kei_ucwk_no` | Field | Service inner number — identifier for a service contract inner record (new/termination) |
| `ido_rsv_no` | Field | Error reservation number — identifier for a pending reservation triggered by a change |
| `ido_div` | Field | Error division — classification of error reservation type ("00019" = address change/registration) |
| `ido_rsv_dtl_cd` | Field | Error reservation detail code — specific detail classification of the error reservation |
| `koji_rslt` | Field | Work result — field work status: "0" = no work, "1" = work completed, "2" = work pending correction |
| `kojiak_fin_ymd` | Field | Work completion date — the date field work was completed |
| `kojiak_no` | Field | Work case number — identifier for the work case record |
| `mskm_dtl_no` | Field | Application detail number — identifier for the application detail record |
| `new_prc_grp_cd` | Field | New pricing group code — pricing group for the new service ("08" = eo Mobile) |
| `last_upd_dtm` | Field | Update datetime (before) — previous modification timestamp for concurrency control |
| `gene_add_dtm` | Field | Generation registration datetime — timestamp used as part of the primary key |
| `uwcwk_flg` | Field | Inner number flag — indicates whether service inner number 1 has data |
| `kojiak_sbt_cd` | Field | Work case sub-type code — code for the type of work case |
| `rsv_aply_ymd` | Field | Reservation apply date — the computed date when the reservation should take effect |
| `plan_staymd` | Field | Plan start date — the date the service plan starts |
| `plan_chrg_staymd` | Field | Plan billing start date — the date billing for the plan starts |
| `kktk_svc_kei_no` | Field | Device-provided service contract number — identifier for a device-provided service |
| `taknkiki_sbt_cd` | Field | Home device type code — "R0" = multi-function router, "S0" = home gateway (HGW), "50" = eo phone VA |
| `haiso_way_cd` | Field | Delivery method code — "2" = work company delivery |
| SVC_KEI | Entity | Service contract table — main service contract master data |
| KK_T_SVC_KEI | Entity | Service contract DB table — database table for service contracts |
| KK_T_SVC_KEI_UCWK | Entity | Service inner number table — database table for service contract inner records |
| KK_T_IDO_RSV | Entity | Error reservation table — database table for pending reservations |
| KK_T_KKTK_SVC_KEI | Entity | Device-provided service contract table — database table for equipment-based services |
| KK_T_SVKEIUW_EOH_NET | Entity | KK SVC inner number eo net table — database table for eo net inner number records |
| KK_T_PRG | Entity | Progress schema table — database table for batch processing progress tracking |
| RULE0065 | Business rule | Billing start date configuration for service — dynamically computes the billing start date |
| RULE0067 | Business rule | Billing start date configuration for device-provided service — computes billing start date |
| RULE0073 | Business rule | Start date configuration for service — computes the plan start date |
| RULE0075 | Business rule | Start date configuration for device-provided service — computes start date for equipment |
| KKIFM151 | Input format | KK construction completion data input format — input message format |
| KKTK | Abbreviation | Kiki Teikyo (equipment provided) — device-provided services like routers, STBs |
| UCWK | Abbreviation | Uchikai (inner) — service contract inner number |
| KKTk | Abbreviation | Kiki Teikyo — device-provided service |
| ANSAN | Abbreviation | Anzen (security) — security-related services such as security start notification service |
| TAKINO | Abbreviation | Takinori (multi-function) — multi-function router services |
| HGW | Abbreviation | Home Gateway — network equipment at customer premises |
| eo Mobile | Business term | eo Mobile (eo moibairu) — eo's mobile service brand (new pricing group "08") |
| eo Net | Business term | eo Net — fiber-optic internet service |
| eo TV | Business term | eo TV — television service |
| 異動予約 (Ido Yoyaku) | Japanese term | Error reservation — a pending reservation triggered when service changes are needed after field work |
| 工事完了 (Kouji Kanryo) | Japanese term | Work completion — the status indicating field work has been completed |
| 工事訂正 (Kouji Teisei) | Japanese term | Work pending correction — field work requires correction |
| 工事なし (Kouji nashi) | Japanese term | No work — no field work was required |
| 工事案件 (Kouji Anken) | Japanese term | Work case — a field work case record |
| サブ契約内訳 (Sub-service inner) | Japanese term | Service inner number — a sub-record of a service contract |
| 工事完了データ取込 (Kouji kanryo data torikomi) | Japanese term | Construction completion data input — the batch process that receives work completion notifications |
| プラン (Plan) | Japanese term | Plan — a service pricing plan |
| 料金開始日 (Ryokin kaishi hi) | Japanese term | Billing start date — the date when billing begins |
| 予約適用日 (Yoyaku tekiyou hi) | Japanese term | Reservation apply date — the date a reservation takes effect |
| 異動区分 (Ido kubun) | Japanese term | Error division — type of change (e.g., address change, equipment change) |
