## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message carrying the KO-sou Henkou (course change) application intermediate file data. Contains service contract number, movement reservation numbers, update timestamps, service code, service detail numbers, work result code, work case information, batch operation date, and optional fields for plan change processing including old/new price course codes and old plan code. |

### Instance Fields / External State Read

| Source | Field/Method | Business Description |
|--------|-------------|---------------------|
| `super.opeDate` | Instance field | Batch operation date (yyMMdd format) |
| `super.logPrint` | Log utility | Debug/business error log output |
| `super.commonItem` | Common item context | Database connection, error flag, system state |
| `JBSbatDateUtil.getSystemDateTimeStamp()` | Utility | Gets current system timestamp for output data |
| `JBSbatDateUtil.getEndOfMonth()` | Utility | Computes month-end date for reconciliation |
| `JBSbatOracleSeqUtil.getNextSeq()` | Utility | Generates sequence numbers for authorization credential numbers |
| `JBSbatStringUtil.padNumFormString()` | Utility | Pads string to 12-digit format |
| `JBSbatStringUtil.Rtrim()` | Utility | Trims trailing whitespace |
| `commonItem.getConnection()` | DB connection | Database connection for sequence generation |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `executeKK_T_IDO_RSV_KK_SELECT_010` | EKK010S0001 | KK_T_IDO_RSV | Movement reservation search by reservation number and service contract number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_014` | EKK014S0001 | KK_T_IDO_RSV_014 | Movement reservation search for second reservation number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_039` | EKK039S0001 | KK_T_IDO_RSV_039 | Movement reservation search by service detail number, date, and application detail number |
| R | `executeKK_T_IDO_RSV_KK_SELECT_040` | EKK040S0001 | KK_T_IDO_RSV_040 | Movement reservation search by application detail number (for non-service-providing status) |
| R | `executeKK_T_SVC_KEI_KK_SELECT_106` | EKK106S0001 | KK_T_SVC_KEI | Service contract search by operation date, service contract number, and movement reservation number |
| R | `executeKK_T_SVC_KEI_UCWK_PKSELECT` | EKK_PKS0001 | KK_T_SVC_KEI_UCWK | Primary key search for service contract detail |
| R | `executeKK_T_SVC_KEI_UCWK_KK_SELECT_131` | EKK131S0001 | KK_T_SVC_KEI_UCWK_131 | Service contract detail search by service contract number and operation date |
| R | `executeKK_T_SVC_KEI_UCWK_KK_SELECT_041` | EKK041S0001 | KK_T_SVC_KEI_UCWK | Service contract detail search by service contract number and application detail number |
| R | `executeKK_T_SVKEIUW_EOH_NET_PKSELECT` | EKK_PKS0002 | KK_T_SVKEIUW_EOH_NET | Primary key search for EO Net service contract detail |
| R | `executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_045` | EKK045S0001 | KK_T_SVKEIUW_EOH_TEL | EO telephone service contract detail search |
| R | `executeKK_T_SVKEIUW_EOH_TEL_PKSELECT` | EKK_PKS0003 | KK_T_SVKEIUW_EOH_TEL | Primary key search for EO telephone service contract detail |
| R | `executeKK_T_OP_SVC_KEI_KK_SELECT_035` | EKK035S0001 | KK_T_OP_SVC_KEI | Option service contract search by service contract number and application detail number |
| R | `executeKK_T_OP_SVC_KEI_KK_SELECT_124` | EKK124S0001 | KK_T_OP_SVC_KEI_124 | Option service contract search by service detail number, option service code, and operation date |
| R | `executeKK_T_OPSVKEI_ISP_KK_SELECT_004` | EKK004S0001 | KK_T_OPSVKEI_ISP_004 | Option service ISP search by option service contract number |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_039` | EKK039S0002 | KK_T_KKTK_SVC_KEI | Device provision service contract search by work case number and service contract number |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_258` | EKK258S0001 | KK_T_KKTK_SVC_KEI_258 | Device provision service contract search by work case number and service detail number |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_259` | EKK259S0001 | KK_T_KKTK_SVC_KEI_259 | Device provision service contract search by device contract number and operation date |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_163` | EKK163S0001 | KK_T_KKTK_SVC_KEI | Multi-function router / HGW device provision service contract search |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_164` | EKK164S0001 | KK_T_KKTK_SVC_KEI | Old device provision service contract search (returned device) |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_179` | EKK179S0001 | KK_T_KKTK_SVC_KEI | Device provision service contract search by service contract number and operation date |
| R | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_049` | EKK049S0001 | KK_T_KKTK_SVC_KEI2 | Old wiring service device provision service contract search |
| R | `executeKK_T_KKTK_SVC_KEI_PKSELECT` | EKK_PKS0004 | KK_T_KKTK_SVC_KEI | Primary key search for device provision service contract |
| R | `executeKK_T_TCHISHO_KK_SELECT_003` | EKK003S0001 | KK_T_TCHISHO | Notice letter search by application detail number and notice type |
| R | `executeKK_T_TCHI_TG_BPIN_KK_SELECT_002` | EKK002S0001 | KK_T_TCHI_TG_BPIN | Notice target object search by notice letter number |
| C | `updateIdoRsv` | EKK_UPD001 | KK_T_IDO_RSV | Update movement reservation |
| C | `updateIdoRsv2` | EKK_UPD002 | KK_T_IDO_RSV | Update movement reservation (second reservation) |
| C | `updateIdoRsv3` | EKK_UPD003 | KK_T_IDO_RSV | Update movement reservation (related reservations from SELECT_039) |
| C | `updateIdoRsvTrgGaiData` | EKK_UPD004 | KK_T_IDO_RSV | Set application date for reservation target-external data |
| C | `updateIdoRsv_kojiAk` | EKK_UPD005 | KK_T_IDO_RSV | Update movement reservation work case number |
| C | `insertSvcKeiUcwk` | EKK_INS001 | KK_T_SVC_KEI_UCWK | Create new generation service contract detail |
| C | `insertOpsvckei` | EKK_INS002 | KK_T_OP_SVC_KEI | Create new generation option service contract |
| C | `kkTOdrHakkoJokenInsert` | EKK_INS003 | KK_T_ODR_HAKKO_JOKEN | Register authorization credential number |
| C | `kkTOdrInfSksiWkInsert` | EKK_INS004 | KK_T_ODR_INF_SKSI_WK | Register authorization information work data |
| C | `kkTOdrHakkoJokenNewMultiInsert` | EKK_INS005 | KK_T_ODR_HAKKO_JOKEN | Register authorization credential number (option/multi) |
| C | `kkTOdrInfSksiWkNewMultiInsert` | EKK_INS006 | KK_T_ODR_INF_SKSI_WK | Register authorization information work data (option/multi) |
| C | `kkTOdrInfSksiWkKoteiIpMultiChgInsert` | EKK_INS007 | KK_T_ODR_INF_SKSI_WK | Register authorization information work data (fixed IP change) |
| C | `selectOpSvcKeiIspKotei` | EKK_CBS001 | KK_T_OPSVKEI_ISP, KK_T_OP_SVC_KEI, KK_T_TCHI_TG_BPIN | Fixed IP address release processing (authorization + re-register + e-jing + e-jing2) |
| C | `selectOpSvcKeiIspMulti` | EKK_CBS002 | KK_T_OPSVKEI_ISP, KK_T_ODR_HAKKO_JOKEN, KK_T_ODR_INF_SKSI_WK | Multi-session authentication ID release processing |
| C | `insertHmpInKikiNewKiki` | EKK_CBS003 | KK_T_HMP_IN_KIKI | Return device registration / new device delivery information update |
| C | `insertOrUpdateKktkSvcKeiDsl` | EKK_CBS004 | KK_T_KKTK_SVC_KEI | Device provision service contract registration/update |
| C | `updateHmpinKikiOldKiki` | EKK_CBS005 | KK_T_HMP_IN_KIKI | Return old device cancellation / return device update |
| C | `insertKktkSvcKeiTakinoRouter` | EKK_CBS006 | KK_T_KKTK_SVC_KEI | Multi-function router / HGW device provision service contract registration |
| C | `updateHaiso` | EKK_CBS007 | DK_T_HAISO | Delivery status update (cancel delivery) |
| C | `insertHmpInKiki` | EKK_CBS008 | KK_T_HMP_IN_KIKI | Return device registration |
| C | `insertKktkSvcKeiKaihk` | EKK_CBS009 | KK_T_KKTK_SVC_KEI | Old device provision service contract restoration |
| C | `updateHmpinKikiOldKaisenKiki` | EKK_CBS010 | KK_T_HMP_IN_KIKI | Old wiring device return cancellation |
| C | `insertSvkeiUcwkTelnoHmdkUpd` | EKK_CBS011 | KK_T_SVC_KEI_UCWK | Service contract detail update (telephone number attachment) |
| C | `insertSvkeiuwEohTelHmdkUpd2` | EKK_CBS012 | KK_T_SVKEIUW_EOH_TEL | EO telephone service contract registration (telephone number attachment) |
| C | `updateTchisho` | EKK_UPD006 | KK_T_TCHISHO | Update notice letter |
| C | `updateTchiTgBpin` | EKK_UPD007 | KK_T_TCHI_TG_BPIN | Update notice target object |
| C | `insertPrg` | EKK_INS008 | KK_T_PRG | Progress registration |
| C | `updateKicjkn` | EKK_UPD008 | KK_T_KICJKN | Contract one-time payment update |
| - | `searchIdoRsv` | EKK_UTIL001 | KK_T_IDO_RSV | Search movement reservation by reservation number |
| - | `idoTimeStampCheck` | EKK_UTIL002 | - | Validate movement reservation timestamp against system time |
| - | `bbrChgSodHakko` | EKK_UTIL003 | KK_T_SOD | Issue router change service order data (SOD) |
| C | `insertOrUpdateKktkSvcKeiTv` | EKK_CBS013 | KK_T_KKTK_SVC_KEI | TV device provision service contract registration/update |
| C | `dslNetflixOption` | EKK_CBS014 | External API | DSL Netflix option processing |
| C | `equipmentOptionServiceContract` | EKK_CBS015 | External API | Equipment option service contract processing |

## 5. Dependency Trace

Only one file references this service class across the entire codebase. This method is a batch service class that is invoked through the batch framework's generic service invocation mechanism. The batch framework resolves class names at runtime through service type codes defined in batch configuration tables.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch:JBSbat (batch framework) | JBSbatBatch.invoke() -> JBSbatBusinessService.execute() -> JBSbatKKKjClDataInTrn.execute() | executeKK_T_IDO_RSV_KK_SELECT_010 [R] KK_T_IDO_RSV |
|   | | | updateIdoRsv [C] KK_T_IDO_RSV |
|   | | | executeKK_T_SVC_KEI_KK_SELECT_106 [R] KK_T_SVC_KEI |
|   | | | insertSvcKeiUcwk [C] KK_T_SVC_KEI_UCWK |
|   | | | kkTOdrHakkoJokenInsert [C] KK_T_ODR_HAKKO_JOKEN |
|   | | | kkTOdrInfSksiWkInsert [C] KK_T_ODR_INF_SKSI_WK |
|   | | | insertOpsvckei [C] KK_T_OP_SVC_KEI |
|   | | | insertHmpInKikiNewKiki [C] KK_T_HMP_IN_KIKI |
|   | | | insertOrUpdateKktkSvcKeiDsl [C] KK_T_KKTK_SVC_KEI |
|   | | | updateHmpinKikiOldKiki [C] KK_T_HMP_IN_KIKI |
|   | | | insertKktkSvcKeiTakinoRouter [C] KK_T_KKTK_SVC_KEI |
|   | | | updateHaiso [C] DK_T_HAISO |
|   | | | updateTchisho [C] KK_T_TCHISHO |
|   | | | insertPrg [C] KK_T_PRG |
|   | | | updateKicjkn [C] KK_T_KICJKN |

## 6. Per-Branch Detail Blocks

**Block 1** — [INITIALIZATION] (L817)

> Initialize output bean, local variables, and DB interface maps.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputBean = new JBSbatOutputItem()` // Create output message |
| 2 | SET | `svcKeiNo_151 = ""` // Service contract number (course change intermediate file) |
| 3 | SET | `idoRsvNo_151 = ""` // Movement reservation number |
| 4 | SET | `updDtm1_151 = ""` // Update timestamp 1 |
| 5 | SET | `svcCd_151 = ""` // Service code |
| 6 | SET | `svcKeiUcwkNo1_151 = ""` // Service detail number 1 |
| 7 | SET | `geneAddDtm1_151 = ""` // Registration date 1 |
| 8 | SET | `svcKeiUcwkNo2_151 = ""` // Service detail number 2 |
| 9 | SET | `geneAddDtm2_151 = ""` // Registration date 2 |
| 10 | SET | `idoRsvNo2_151 = ""` // Movement reservation number 2 |
| 11 | SET | `updDtm2_151 = ""` // Update timestamp 2 |
| 12 | SET | `kojiRslt_151 = ""` // Work result |
| 13 | SET | `kojiakStpCancelPrcUm = ""` // Work case mid-stop cancel fee yes/no |
| 14 | SET | `mskmDtlNo_151 = ""` // Application detail number |
| 15 | SET | `idoDiv_151 = ""` // Movement division |
| 16 | SET | `kojiakNo_151 = ""` // Work case number |
| 17 | SET | `kojiakFinYmd_151 = ""` // Work completion date |
| 18 | SET | `opt_date = super.opeDate` // Batch operation date |
| 19 | SET | `UcwkFlg = true` // Detail flag |
| 20 | SET | `idoRsvMap_010 = new JBSbatCommonDBInterface()` // DB result map |
| 21 | SET | `idoRsvMap_014 = new JBSbatCommonDBInterface()` // DB result map |
| 22 | SET | `idoRsvMap_040 = new JBSbatCommonDBInterface()` // DB result map |
| 23 | SET | `idoRsvMap_039 = new JBSbatCommonDBInterface()` // DB result map |
| 24 | SET | `opSvcKeiMap_035 = new JBSbatCommonDBInterface()` // DB result map |
| 25 | SET | `opSvcKeiIspMap_004 = new JBSbatCommonDBInterface()` // DB result map |
| 26 | SET | `kktkSvcKeiMap_039 = new JBSbatCommonDBInterface()` // DB result map |
| 27 | SET | `tchishoMap_003 = new JBSbatCommonDBInterface()` // DB result map |
| 28 | SET | `tchiTgBpinMap_002 = new JBSbatCommonDBInterface()` // DB result map |
| 29 | SET | `svcKeiUcwkMap_041 = new JBSbatCommonDBInterface()` // DB result map |
| 30 | SET | `svcKeiMap_106 = new JBSbatCommonDBInterface()` // DB result map |
| 31 | SET | `kktkSvcKeiMap_049 = new JBSbatCommonDBInterface()` // DB result map |
| 32 | SET | `haitaIdoRsv_map = new JBSbatCommonDBInterface()` // DB result map |
| 33 | SET | `haitaIdoRsv_map2 = new JBSbatCommonDBInterface()` // DB result map |

**Block 2** — [SET] Extract input values from inMap (L931)

> Extract all fields from the input message map using defined key constants.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiNo_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_NO)` // Service contract number |
| 2 | SET | `idoRsvNo_151 = inMap.getString(JBSbatKKIFM151.IDO_RSV_NO)` // Movement reservation number |
| 3 | SET | `updDtm1_151 = inMap.getString(JBSbatKKIFM151.UPD_DTM1)` // Update timestamp 1 |
| 4 | SET | `svcCd_151 = inMap.getString(JBSbatKKIFM151.SVC_CD)` // Service code |
| 5 | SET | `svcKeiUcwkNo1_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_UCWK_NO1)` // Service detail 1 |
| 6 | SET | `geneAddDtm1_151 = inMap.getString(JBSbatKKIFM151.GENE_ADD_DTM1)` // Reg date 1 |
| 7 | SET | `svcKeiUcwkNo2_151 = inMap.getString(JBSbatKKIFM151.SVC_KEI_UCWK_NO2)` // Service detail 2 |
| 8 | SET | `geneAddDtm2_151 = inMap.getString(JBSbatKKIFM151.GENE_ADD_DTM2)` // Reg date 2 |
| 9 | SET | `idoRsvNo2_151 = inMap.getString(JBSbatKKIFM151.IDO_RSV_NO2)` // Move resv 2 |
| 10 | SET | `updDtm2_151 = inMap.getString(JBSbatKKIFM151.UPD_DTM2)` // Update timestamp 2 |
| 11 | SET | `kojiRslt_151 = inMap.getString(JBSbatKKIFM151.KOJI_RSLT)` // Work result |
| 12 | SET | `kojiakStpCancelPrcUm = inMap.getString(JBSbatKKIFM151.KOJIAK_STP_CANCEL_PRC_UM)` // Mid-stop cancel |
| 13 | SET | `mskmDtlNo_151 = inMap.getString(JBSbatKKIFM151.MSKM_DTL_NO)` // App detail number |
| 14 | SET | `idoDiv_151 = inMap.getString(JBSbatKKIFM151.IDO_DIV)` // Movement division |
| 15 | SET | `kojiakNo_151 = inMap.getString(JBSbatKKIFM151.KOJIAK_NO)` // Work case number |
| 16 | SET | `kojiakFinYmd_151 = inMap.getString(JBSbatKKIFM151.KOJIAK_FIN_YMD)` // Work completion date |
| 17 | SET | `svcKeiStat = inMap.getString(JBSbatKKIFM151.SVC_KEI_STAT)` // Service contract status |
| 18 | SET | `idoRsvDtlCd = inMap.getString(JBSbatKKIFM151.IDO_RSV_DTL_CD)` // Movement reservation detail code |

**Block 3** — [IF] Check if service detail number 1 is empty (L965)

> Determine whether the course change intermediate file has service detail data. If the detail number is empty, UcwkFlg is set to false and the processing path skips detail-level operations.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `isEmpty(svcKeiUcwkNo1_151)` // Check if empty |
| 2 | SET | `UcwkFlg = false` // No detail data |

**Block 4** — [SET] Get latest movement timestamp (L972)

> Get the maximum movement timestamp from common items using service contract number and movement division.

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoDtm = JKKBatCommon.getIdoDtmMax(commonItem, svcKeiNo_151, idoDiv_151, stmt)` // Latest timestamp |

**Block 5** — [IF] Debug logging (L979)

> When debug log level is enabled, log all input field values for troubleshooting.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG)` // Check debug level |
| 2 | CALL | `super.logPrint.printDebugLog("Service contract number: " + svcKeiNo_151)` // Log each field |
| 3 | CALL | (Multiple printDebugLog calls for all input fields) |

**Block 6** — [CALL] Search movement reservation (L1004)

> Search the movement reservation table by reservation number to get the last update timestamp for timestamp validation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `haitaIdoRsv_map = searchIdoRsv(idoRsvNo_151)` // Search by reservation number |
| 2 | SET | `idoLastUpdDtmAf = JBSbatStringUtil.Rtrim(haitaIdoRsv_map.getString(JBSbatKK_T_IDO_RSV.UPD_DTM))` // Last update |
| 3 | SET | `idoKojiakNo = JBSbatStringUtil.Rtrim(haitaIdoRsv_map.getString(JBSbatKK_T_IDO_RSV.KOJIAK_NO))` // Work case |

**Block 7** — [IF] Timestamp validation for movement reservation (L1011)

> Validate that the update timestamp in the input matches the latest timestamp in the movement reservation table. If they differ, the record may have been updated by another process.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `idoTimeStampCheck(idoRsvNo_151, updDtm1_151, idoLastUpdDtmAf)` // Timestamp check |
| 2 | RETURN | `return null` if timestamp check fails |
| 3 | CALL | `super.logPrint.printBusinessErrorLog("EKKB0360KE", ["Movement reservation table", idoRsvNo_151])` // Error log |

**Block 8** — [IF/ELSE] Branch on service contract status SVC_KEI_STAT_SVCTK_CHU = "100" (L1021)

> When status is "100" (Service Providing), process the full course change cancellation flow. Otherwise, take a simpler reconciliation path.

**Block 8.1** — [IF] Branch on service code SVC_CD_IN_SVC = "01" AND work result KKIFM151_KOJI_RSLT_4 = "4" (L1027)

> When service code is "01" (Internet Service) AND work result is "4" (Cancel), process internet service course change cancellation with full detail processing.

**Block 8.1.1** — [IF] Check if second movement reservation number is non-empty (L1033)

> If a second reservation number exists, validate its timestamp as well.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `!"".equals(idoRsvNo2_151)` // Check non-empty |
| 2 | CALL | `haitaIdoRsv_map2 = searchIdoRsv(idoRsvNo2_151)` // Search second reservation |
| 3 | CALL | `idoTimeStampCheck(idoRsvNo2_151, updDtm2_151, idoLastUpdDtmAf2)` // Validate timestamp |
| 4 | RETURN | `return null` if timestamp validation fails |

**Block 8.1.2** — [CALL] Movement reservation update for main reservation (L1055)

| # | Type | Code |
|---|------|------|
| 1 | SET | `whereParam = {idoRsvNo_151, svcKeiNo_151}` // Search parameters |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010(whereParam)` // SELECT_010 |
| 3 | SET | `idoRsvMap_010 = db_KK_T_IDO_RSV.selectNext()` // Get result |
| 4 | RETURN | `throw JBSbatBusinessException(EKKB0210CE)` if null |
| 5 | CALL | `updateIdoRsv(idoRsvNo_151)` // Update reservation |
| 6 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, super.opeDate)` // Set application date |

**Block 8.1.3** — [IF] UcwkFlg = true: Process with service detail numbers (L1072)

> When the course change intermediate file contains service detail numbers, process detail-level operations including detail search, authorization credential registration, and optional service processing.

**Block 8.1.3.1** — [CALL] Search second movement reservation by detail number (L1078)

| # | Type | Code |
|---|------|------|
| 1 | SET | `whereIdoParam = {idoRsvNo2_151, svcKeiUcwkNo2_151}` |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_014(whereIdoParam)` // SELECT_014 |
| 3 | SET | `idoRsvMap_014 = db_KK_T_IDO_RSV_014.selectNext()` |
| 4 | CALL | `updateIdoRsv2(idoRsvNo2_151)` if found |

**Block 8.1.3.2** — [WHILE] Process related reservations from SELECT_039 (L1102)

> Loop through all related movement reservations found by SELECT_039 and update each one.

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoRsv_whereParam = {svcKeiUcwkNo2_151, this.opeDate, mskmDtlNo_151}` |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_039(idoRsv_whereParam)` |
| 3 | SET | `idoRsvMap_039 = db_KK_T_IDO_RSV_039.selectNext()` |
| 4 | WHILE | `while (null != idoRsvMap_039)` |
| 5 | SET | `idoRsvNo = Rtrim(idoRsvMap_039.getString(IDO_RSV_NO))` |
| 6 | CALL | `updateIdoRsv3(idoRsvNo)` // Update each reservation |

**Block 8.1.3.3** — [CALL] Service contract detail (new generation) PK search and insert (L1131)

| # | Type | Code |
|---|------|------|
| 1 | SET | `ucwk1_param = {svcKeiUcwkNo1_151, geneAddDtm1_151}` |
| 2 | CALL | `ucwk1_map = executeKK_T_SVC_KEI_UCWK_PKSELECT(ucwk1_param)` |
| 3 | RETURN | `throw JBSbatBusinessException(EKKB0210CE)` if null |
| 4 | CALL | `insertSvcKeiUcwk(ucwk1_map)` // Create new generation |

**Block 8.1.3.4** — [CALL] EO Net service contract detail PK search (L1159)

> Search the EO Net (EO光インターネット) service contract detail table by primary key.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svkeiUwEohNet_param = {svcKeiUcwkNo1_151, geneAddDtm1_151}` |
| 2 | CALL | `svkeiUwEohNet_map = executeKK_T_SVKEIUW_EOH_NET_PKSELECT(svkeiUwEohNet_param)` |
| 3 | RETURN | `throw JBSbatBusinessException(EKKB0210CE)` if null |
| 4 | SET | `ispNinshoId = Rtrim(svkeiUwEohNet_map.getString(ISP_NINSHO_ID))` |
| 5 | SET | `svcKeiUcwkNo = Rtrim(svkeiUwEohNet_map.getString(SVC_KEI_UCWK_NO))` |

**Block 8.1.3.5** — [IF] ISP certification ID and service detail number are both non-empty (L1187)

> If both ISP certification ID and service detail number exist, register FTTH authorization credentials for deregistration (DSL) and cancellation (DEL).

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrHakkoJokenNoNinId = padNumFormString(getNextSeq(SEQ_ODR_HAKKO_JOKEN_NO), 12)` |
| 2 | CALL | `kkTOdrHakkoJokenInsert(svcKeiNo_151, svcKeiUcwkNo1_151, YOKYU_SBT_CD_DSL="03", odrHakkoJokenNoNinId)` |
| 3 | CALL | `kkTOdrInfSksiWkInsert(svcKeiNo_151, svcKeiGeneAddDtm, svcKeiUcwkNo1_151, geneAddDtm1_151, ORDER_NAIYO_CD_FTTH_NINSHO_DSL="103", odrHakkoJokenNoNinId, "")` |
| 4 | SET | `odrHakkoJokenNoNinId2 = padNumFormString(getNextSeq(SEQ_ODR_HAKKO_JOKEN_NO), 12)` |
| 5 | CALL | `kkTOdrHakkoJokenInsert(svcKeiNo_151, svcKeiUcwkNo1_151, YOKYU_SBT_CD_DEL="08", odrHakkoJokenNoNinId2)` |
| 6 | CALL | `kkTOdrInfSksiWkInsert(svcKeiNo_151, svcKeiGeneAddDtm, svcKeiUcwkNo1_151, geneAddDtm1_151, ORDER_NAIYO_CD_FTTH_NINSHO_DEL="104", odrHakkoJokenNoNinId2, "")` |
| 7 | SET | `isISPninshoChg = true` // ISP certification has changed |

**Block 8.1.4** — [CALL] Option service contract search and update (ANK-2765-00-00 ADD, L1267)

> Search and update option service contracts (fixed IP, multi-session). Moved outside the internet service branch for broader applicability.

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKei_param = {svcKeiNo_151, mskmDtlNo_151}` |
| 2 | CALL | `executeKK_T_OP_SVC_KEI_KK_SELECT_035(opSvcKei_param)` // SELECT_035 |
| 3 | SET | `opSvcKeiMap_035 = db_KK_T_OP_SVC_KEI.selectNext()` |
| 4 | WHILE | `while(opSvcKeiMap_035 != null)` |
| 5 | SET | `opSvcKeiNo = Rtrim(opSvcKeiMap_035.getString(OP_SVC_KEI_NO))` |
| 6 | SET | `opSvcKeiGeneAddDtm = Rtrim(opSvcKeiMap_035.getString(GENE_ADD_DTM))` |
| 7 | SET | `opSvcKeiIsp_param = {opSvcKeiNo}` |
| 8 | CALL | `executeKK_T_OPSVKEI_ISP_KK_SELECT_004(opSvcKeiIsp_param)` // SELECT_004 |
| 9 | CALL | `selectOpSvcKeiIspKotei(opSvcKeiNo, svcKeiNo_151, svcKeiGeneAddDtm, svcKeiUcwkNo1_151, geneAddDtm1_151)` // Fixed IP release |
| 10 | CALL | `selectOpSvcKeiIspMulti(opSvcKeiNo, opSvcKeiGeneAddDtm, svcKeiNo_151, svcKeiGeneAddDtm, ispNinshoId)` // Multi release |
| 11 | CALL | `insertOpsvckei(opSvcKeiMap_035)` // Create new generation |
| 12 | SET | `opSvcKeiMap_035 = db_KK_T_OP_SVC_KEI.selectNext()` |

**Block 8.1.5** — [CALL] Device provision service contract (multi-function router, HGW swap cancel) (ANK-3412-00-00 ADD, L1520)

> Query device provision service contracts by work case number and service detail number for multi-function router / HGW swap cancellation processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiWhereParam258 = {kojiakNo_151, svcKeiKaisenUcwkNo}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_258(kktkSvcKeiWhereParam258)` // SELECT_258 |
| 3 | SET | `kktkSvcKeiMap258 = db_KK_T_KKTK_SVC_KEI_258.selectNext()` |
| 4 | CALL | `insertHmpInKikiNewKiki(kktkSvcKeiMap258, svcKeiNo_151, idoDtm, idoDiv_151)` // Return device |
| 5 | CALL | `insertOrUpdateKktkSvcKeiDsl(kktkSvcKeiMap258, mskmDtlNo_151, svcCd_151, svcKeiGeneAddDtm, isISPninshoChg)` |
| 6 | CALL | `updateHmpinKikiOldKiki(kktkSvcKeiMap258)` // Old device return |
| 7 | CALL | `executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_045` // EO telephone search |
| 8 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_259` // Device search |
| 9 | WHILE | `while(svkeiuwEohTelMap045 != null)` |
| 10 | CALL | `insertSvkeiUcwkTelnoHmdkUpd(svkeiUcwkPkMap)` // Telno attachment update |
| 11 | CALL | `insertSvkeiuwEohTelHmdkUpd2(svkeiuwEohTelPkMap, kktkSvcKeiMap259, sysDateDtm)` |

**Block 8.1.6** — [CALL] Device provision service contract search (KKT_039) (L1686)

> Search device provision service contracts by work case number and service contract number.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_param = {kojiakNo_151, svcKeiNo_151}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_039(kktkSvcKei_param)` // SELECT_039 |
| 3 | SET | `kktkSvcKeiMap_039 = db_KK_T_KKTK_SVC_KEI.selectNext()` |
| 4 | WHILE | `while(kktkSvcKeiMap_039 != null)` |
| 5 | SET | `kikiNinshoId = Rtrim(kktkSvcKeiMap_039.getString(KIKI_NINSHO_ID))` |
| 6 | SET | `kktkSvcKeiNo = Rtrim(kktkSvcKeiMap_039.getString(KKTK_SVC_KEI_NO))` |
| 7 | CALL | `insertHmpInKikiNewKiki(kktkSvcKeiMap_039, svcKeiNo_151, idoDtm, idoDiv_151)` |
| 8 | CALL | `insertOrUpdateKktkSvcKeiDsl(kktkSvcKeiMap_039, mskmDtlNo_151, svcCd_151, svcKeiGeneAddDtm, isISPninshoChg)` |
| 9 | CALL | `updateHmpinKikiOldKiki(kktkSvcKeiMap_039)` |
| 10 | SET | `kktkSvcKeiMap_039 = db_KK_T_KKTK_SVC_KEI.selectNext()` |

**Block 8.1.7** — [CALL] Multi-function router / HGW device provision service contract (L1767)

> Search and process multi-function router / HGW device provision service contracts for registration and cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_whereParam163 = {kojiakNo_151, svcKeiKaisenUcwkNo, opt_date}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_163(kktkSvcKei_whereParam163)` // SELECT_163 |
| 3 | SET | `isHaisoStatFin = false` // Delivery status flag |
| 4 | WHILE | `while(null != kktkSvcKeiMap_163)` |
| 5 | CALL | `insertKktkSvcKeiTakinoRouter(kktkSvcKeiMap_163, kojiakFinYmd_151, svcKeiNo_151)` |
| 6 | SET | `haisoStat = Rtrim(kktkSvcKeiMap_163.getString(HAISO_STAT))` |
| 7 | IF | `haisoStat = CD00009_HAISO_STAT_001="001"`: `updateHaiso(kktkSvcKeiMap_163)` // Cancel delivery |
| 8 | IF | `haisoStat = CD00009_HAISO_STAT_002="002" OR 003`: `insertHmpInKiki(kktkSvcKeiMap_163, svcKeiNo_151, idoDtm, idoDiv_151)` |
| 9 | IF | `haisoStat = CD00009_HAISO_STAT_004="004"`: `isHaisoStatFin = true; insertHmpInKiki()` |
| 10 | SET | `kktkSvcKeiMap_163 = db_KK_T_KKTK_SVC_KEI.selectNext()` |

**Block 8.1.8** — [CALL] Old device provision service contract search (L1858)

> Search for old device provision service contracts (returned devices) and restore them.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKei_whereParam164 = {mskmDtlNoTakinoRouter, opt_date}` |
| 2 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_164(kktkSvcKei_whereParam164)` // SELECT_164 |
| 3 | SET | `kktkSvcKeiMap_164 = db_KK_T_KKTK_SVC_KEI.selectNext()` |
| 4 | WHILE | `while(null != kktkSvcKeiMap_164)` |
| 5 | IF | `isHmpinKikiStat001(kktkSvcKeiMap_164)`: skip if not "001" status |
| 6 | CALL | `insertKktkSvcKeiKaihk(kktkSvcKeiMap_164, svcKeiNo_151)` // Restore old device |
| 7 | CALL | `updateHmpinKikiOldKiki(kktkSvcKeiMap_164)` // Return cancellation |

**Block 8.1.9** — [IF] ISP certification change processing (OM-2014-0001055, L1902)

> When ISP certification ID has changed during course change, issue router change service order data (SOD).

| # | Type | Code |
|---|------|------|
| 1 | IF | `isISPninshoChg == true` |
| 2 | SET | `kktkSvcKeiParam = {svcKeiNo_151, super.opeDate}` |
| 3 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_179(kktkSvcKeiParam)` // SELECT_179 |
| 4 | IF | `kktkSvcKeiMap_179 == null`: `cancelSodTakinoRouter(svcKeiNo_151, svcKeiGeneAddDtm, svcKeiUcwkNo2_151, geneAddDtm2_151, isHaisoStatFin)` |
| 5 | WHILE | `while(kktkSvcKeiMap_179 != null)` |
| 6 | CALL | `bbrChgSodHakko(kktkSvcKeiMap_179, svcKeiGeneAddDtm, svcKeiUcwkNo2_151, geneAddDtm2_151)` |

**Block 8.1.10** — [CALL] Notice letter update and notice target object update (L1961)

> Search and update notice letters (Tchisho) and their associated notice target objects (TchiTgBpin).

| # | Type | Code |
|---|------|------|
| 1 | SET | `kkTTchisho_param = {mskmDtlNo_151, "010"}` |
| 2 | CALL | `executeKK_T_TCHISHO_KK_SELECT_003(kkTTchisho_param)` // SELECT_003 |
| 3 | SET | `tchishoMap_003 = db_KK_T_TCHISHO.selectNext()` |
| 4 | WHILE | `while(tchishoMap_003 != null)` |
| 5 | SET | `tchishoNo = Rtrim(tchishoMap_003.getString(TCHISHO_NO))` |
| 6 | CALL | `updateTchisho(tchishoNo)` // Update notice letter |
| 7 | SET | `kkTTchiTgBpin_param = {tchishoNo}` |
| 8 | CALL | `executeKK_T_TCHI_TG_BPIN_KK_SELECT_002(kkTTchiTgBpin_param)` // SELECT_002 |
| 9 | WHILE | `while(tchiTgBpinMap_002 != null)` |
| 10 | SET | `tchiTgBpinNo = Rtrim(tchiTgBpinMap_002.getString(TCHI_TG_BPIN_NO))` |
| 11 | IF | `!isEmpty(tchiTgBpinNo)`: `updateTchiTgBpin(tchiTgBpinNo)` // Update notice target |

**Block 8.1.11** — [CALL] System timestamp and old wiring service processing (L2024)

> Get system timestamp, query old wiring service device contracts, and build output data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `lastUpdDtmStr = JBSbatDateUtil.getSystemDateTimeStamp()` |
| 2 | SET | `kktkSvcKei_whereParam2 = {kojiakNo_151, svcKeiKaisenUcwkNo}` |
| 3 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_049(kktkSvcKei_whereParam2)` // SELECT_049 |
| 4 | SET | `kktkSvcKeiMap_049 = db_KK_T_KKTK_SVC_KEI2.selectNext()` |
| 5 | IF | `kktkSvcKeiMap_049 != null`: `updateHmpinKikiOldKaisenKiki(svcKeiKaisenUcwkNo)` |
| 6 | WHILE | `while(kktkSvcKeiMap_049 != null)` |
| 7 | CALL | `insertHmpInKikiNewKiki(kktkSvcKeiMap_049, svcKeiNo_151, idoDtm, idoDiv_151)` |
| 8 | CALL | `insertOrUpdateKktkSvcKeiDsl(kktkSvcKeiMap_049, mskmDtlNo_151, svcCd_151, "", isISPninshoChg)` |
| 9 | SET | `kktkSvcKei_keyparam = [KKTK_SVC_KEI_NO, GENE_ADD_DTM]` |
| 10 | CALL | `kktkSvcKei_map = executeKK_T_KKTK_SVC_KEI_PKSELECT(kktkSvcKei_keyparam)` |
| 11 | SET | `outmap = new JBSbatServiceInterfaceMap()` |
| 12 | SET | `outmap.set(KKTK_SVC_KEI_NO, kktkSvcKeiNoStr2)` |
| 13 | SET | `outmap.set(GENE_ADD_DTM, geneAddDtmStr2)` |
| 14 | SET | `outmap.set(RSV_CL_YMD, rsvClYmdStr2)` |
| 15 | SET | `outmap.set(RSV_APLY_CD, rsvAplyCdStr2)` |
| 16 | SET | `outmap.set(UPD_DTM_BF, lastUpdDtmStr)` |
| 17 | SET | `outmap.setOutFlg(true)` |
| 18 | CALL | `outputBean.addOutMapList(outmap)` |

**Block 8.1.12** — [CALL] Progress registration and contract one-time payment update (L2089)

> Register progress and update contract one-time payment information.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertPrg(mskmDtlNo_151, svcKeiNo_151, idoDiv_151, idoDtm)` // Progress registration |
| 2 | CALL | `updateKicjkn(svcKeiNo_151, kojiakNo_151, kojiakStpCancelPrcUm, mskmDtlNo_151)` // One-time payment |

**Block 8.1.13** — [IF] Netflix course change linkage (ANK-3949-00-00 ADD, L2094)

> When a service contract number is set, invoke the Netflix information linkage external service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKStringUtil.isNullBlank(svcKeiNo_151)` |
| 2 | SET | `paramMap.put(TELEGRAM_INFO_USECASE_ID, "KKSV0950")` |
| 3 | SET | `paramMap.put(TELEGRAM_INFO_OPERATION_ID, "KKSV0950OP")` |
| 4 | SET | `parentMap.put("func_code", JPCModelConstant.FUNC_CD_1)` |
| 5 | SET | `parentMap.put("svc_kei_no", svcKeiNo_151)` |
| 6 | SET | `parentMap.put("syori_kbn", COURSE_CHG_CANCEL_04="04")` |
| 7 | SET | `parentMap.put("pcrs_cd", inMap.getString(OLD_PCRS_CD))` |
| 8 | SET | `parentMap.put("pcrs_after_cd", inMap.getString(NEW_PCRS_CD))` |
| 9 | CALL | `JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap)` |
| 10 | CALL | `dslNetflixOption(inMap, svcKeiNo_151, kojiakFinYmd_151)` |
| 11 | IF | `!RETURN_CODE_SUCCESS.equals(returnCode)`: `super.commonItem.setErrFlg(true)` |

**Block 8.1.14** — [CALL] Equipment option service contract (ANK-4287-00-00 ADD, L2115)

> Process equipment option service contracts using the service detail number and registration date.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `equipmentOptionServiceContract(svcKeiKaisenUcwkNo, svcKeiGeneAddDtm, inMap, idoDtm)` |

**Block 9** — [ELSE] Service code "03" (TV Service) with work result "4" (cancel) (L2123)

> When service code is "03" (TV Service) with work result "4" (cancel), process TV-specific service contract detail updates and device service contract registrations for TV device provision.

**Block 9.1** — [CALL] Movement reservation update for TV service (L2127)

| # | Type | Code |
|---|------|------|
| 1 | SET | `whereParam = {idoRsvNo_151, svcKeiNo_151}` |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_010(whereParam)` // SELECT_010 |
| 3 | CALL | `updateIdoRsv(idoRsvNo_151)` // Update |
| 4 | CALL | `updateIdoRsvTrgGaiData(mskmDtlNo_151, super.opeDate)` // Set application date |

**Block 9.2** — [CALL] Movement reservation search and update for TV service (L2152)

| # | Type | Code |
|---|------|------|
| 1 | SET | `whereIdoParam = {mskmDtlNo_151}` |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_040(whereIdoParam)` // SELECT_040 |
| 3 | WHILE | `while(idoRsvMap_040 != null)` |
| 4 | CALL | `updateIdoRsv2(Rtrim(idoRsvMap_040.getString(IDO_RSV_NO)))` |

**Block 9.3** — [CALL] Service contract detail update for TV service (L2178)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiUcwk_whereParam = {svcKeiNo_151, mskmDtlNo_151}` |
| 2 | CALL | `executeKK_T_SVC_KEI_UCWK_KK_SELECT_041(kktkSvcKeiUcwk_whereParam)` // SELECT_041 |
| 3 | WHILE | `while(svcKeiUcwkMap_041 != null)` |
| 4 | SET | `ucwk1_param = [svcKeiUcwkNoStr, geneAddDtmStr]` |
| 5 | CALL | `ucwk1_map = executeKK_T_SVC_KEI_UCWK_PKSELECT(ucwk1_param)` |
| 6 | CALL | `insertSvcKeiUcwk(ucwk1_map)` // Create new generation |

**Block 9.4** — [CALL] TV device provision service contract registration (OM-2013-0004256, L2210)

> Register/update TV device provision service contracts.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertUpdateKktkSvcKeiTV(kojiakNo_151, svcKeiNo_151, mskmDtlNo_151, idoDtm, idoDiv_151, svcCd_151)` |

**Block 9.5** — [CALL] Notice letter update for TV service (L2218)

> Search and update notice letters and notice target objects for TV service course change cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kkTTchisho_param = {mskmDtlNo_151, "010"}` |
| 2 | CALL | `executeKK_T_TCHISHO_KK_SELECT_003(kkTTchisho_param)` // SELECT_003 |
| 3 | WHILE | `while(tchishoMap_003 != null)` |
| 4 | SET | `tchishoNo = Rtrim(tchishoMap_003.getString(TCHISHO_NO))` |
| 5 | CALL | `updateTchisho(tchishoNo)` |
| 6 | CALL | `executeKK_T_TCHI_TG_BPIN_KK_SELECT_002` // SELECT_002 |
| 7 | WHILE | `while(tchiTgBpinMap_002 != null)` |
| 8 | CALL | `updateTchiTgBpin(tchiTgBpinNo)` |

**Block 9.6** — [CALL] System timestamp and old wiring service for TV (L2292)

> Get system timestamp, query old wiring service device contracts, and build output data for TV service.

| # | Type | Code |
|---|------|------|
| 1 | SET | `lastUpdDtmStr = JBSbatDateUtil.getSystemDateTimeStamp()` |
| 2 | SET | `kktkSvcKei_whereParam2 = {kojiakNo_151, svcKeiKaisenUcwkNo}` |
| 3 | CALL | `executeKK_T_KKTK_SVC_KEI_KK_SELECT_049(kktkSvcKei_whereParam2)` // SELECT_049 |
| 4 | WHILE | `while(kktkSvcKeiMap_049 != null)` |
| 5 | CALL | `insertHmpInKikiNewKiki(kktkSvcKeiMap_049, svcKeiNo_151, idoDtm, idoDiv_151)` |
| 6 | CALL | `insertOrUpdateKktkSvcKeiDsl(kktkSvcKeiMap_049, mskmDtlNo_151, svcCd_151, "", isISPninshoChg)` |
| 7 | SET | `outmap = new JBSbatServiceInterfaceMap()` |
| 8 | CALL | `outputBean.addOutMapList(outmap)` |

**Block 9.7** — [CALL] Progress registration and contract one-time payment for TV service (L2371)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertPrg(mskmDtlNo_151, svcKeiNo_151, idoDiv_151, idoDtm)` |
| 2 | CALL | `updateKicjkn(svcKeiNo_151, kojiakNo_151, kojiakStpCancelPrcUm, mskmDtlNo_151)` |

**Block 10** — [ELSE] Service contract status is NOT "100" (L2381)

> When the service contract status is NOT "100" (Service Providing), this branch handles month-end reconciliation and cases where the movement reservation has no associated work case.

**Block 10.1** — [SET] Compute month-end date (L2384)

| # | Type | Code |
|---|------|------|
| 1 | SET | `endDay = opt_date.substring(0, 6) + JBSbatDateUtil.getEndOfMonth(opt_date.substring(0, 6))` |

**Block 10.2** — [IF] Movement reservation work case number is empty OR today is month-end (L2388)

> When no work case number is set (no associated work) or the operation date is the month-end date, update the movement reservation work case number.

| # | Type | Code |
|---|------|------|
| 1 | IF | `isEmpty(idoKojiakNo) || endDay.equals(opt_date)` |
| 2 | IF | `isEmpty(idoKojiakNo)`: `updateIdoRsv_kojiAk(idoRsvNo_151, kojiakNo_151)` // Update work case number |
| 3 | CALL | `super.logPrint.printBusinessErrorLog(EKKB1050CW, [svcKeiNo_151, svcKeiStat, idoRsvNo_151, idoDiv_151, idoRsvDtlCd])` // Reconciliation error |

**Block 11** — [FINAL] End processing (L2415)

> Log end of execution and return the output message.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `super.logPrint.printDebugLog("execute_END")` |
| 2 | RETURN | `return outputBean` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service contract number — unique identifier for a service contract |
| `svc_kei_ucwk_no` | Field | Service contract detail number — internal tracking ID for service contract line items |
| `svc_kei_stat` | Field | Service contract status — e.g., "100" = Service Providing, "010" = Contract Pending |
| `svc_cd` | Field | Service code — classifies the type of service (e.g., "01" = Internet, "03" = TV) |
| `ido_rsv_no` | Field | Movement reservation number — identifies a service movement/change reservation |
| `ido_div` | Field | Movement division — classifies the type of service movement |
| `ido_rsv_dtl_cd` | Field | Movement reservation detail code — detail classification of the movement reservation |
| `koji_rslt` | Field | Work result — e.g., "4" = Cancel (work cancellation) |
| `kojiak_no` | Field | Work case number — links service movements to a work case |
| `kojiak_fin_ymd` | Field | Work completion date — when the work was completed |
| `mskm_dtl_no` | Field | Application detail number — links service movements to the original application |
| `upd_dtm` | Field | Update timestamp — last update date/time for concurrency control |
| `gene_add_dtm` | Field | Registration date/time — when the record was first registered |
| `isp_ninsho_id` | Field | ISP certification ID — Internet Service Provider authentication identifier |
| `kiki_ninsho_id` | Field | Device authentication ID — unique identifier for a registered device |
| `kktk_svc_kei_no` | Field | Device provision service contract number — contract number for equipment-provided services |
| `kktk_svc_kei_stat` | Field | Device provision service contract status |
| `taknkiki_model_cd` | Field | Indoor device model code — model classification of the customer's device |
| `kiki_seizo_no` | Field | Device serial number — unique manufacturing serial number of the device |
| `svc_kei_kaisen_ucwk_no` | Field | Service contract wiring detail number — identifies the previous/old service contract line |
| `kotei_ip_ad` | Field | Fixed IP address — the static IP address assigned to the customer |
| `mltise_ninsho_id` | Field | Multi-session authentication ID — authentication identifier for multi-session services |
| `tchisho_no` | Field | Notice letter number — identifier for a notice letter sent to the customer |
| `tchi_tg_bpin_no` | Field | Notice target object number — identifies the specific target of a notice letter |
| `haIso_stat` | Field | Delivery status — e.g., "001" = Accepted, "004" = Completed |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity for service change orders |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| JOKEN | Acronym | Authorization/Credential (Joken) — authentication credentials for network services |
| ISP | Business term | Internet Service Provider — provides internet connectivity services |
| HGW | Business term | Home Gateway — the network gateway device installed at the customer premises |
| ONU | Business term | Optical Network Unit — fiber-optic terminal device at the customer premises |
| KOJIAK | Acronym | Work Case (Kouji AnKen) — case record for installation/maintenance work |
| UCWK | Abbreviation | Service Contract Detail (Ucwk = Usaku Yaku) — line item within a service contract |
| KKTk | Abbreviation | Device Provision Service (Kiki Teikyou) — equipment-provided service contracts |
| ODA | Abbreviation | Authorization Registration (Oda) — registration of service authorization credentials |
| JOKEN | Abbreviation | Credentials/Authentication (Joken) — authentication data for service access |
| TV | Business term | Television service — TV broadcast/service offering |
| Netflix | Business term | Netflix streaming service — integrated with course change plan processing |
| KKSV0950 | Screen/Interface | Netflix information linkage screen interface — external API for Netflix course change |
