# Business Logic — JBSbatKKEoTVChgeFix.insertSvcKeiUcwkKjCl() [304 LOC]

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

## 1. Role

### JBSbatKKEoTVChgeFix.insertSvcKeiUcwkKjCl()

This method performs **service contract line item registration** (サービス契約内訳登録処理) triggered by a **work cancellation workflow** (工事取消ワーク). It is the central data-persistence bridge that materializes a service contract detail row (`KK_T_SVC_KEI_UCWK`) into the production database, followed by the creation of its associated subtype records under subtype key `KK0161`.

The method handles two distinct business modes controlled by the `flg` parameter: **STB addition** (STB追加, flg = "0") where a new Set-Top Box service line is being registered, and **STB partial removal/cancellation** (STB一部撤去/解約, flg = "1") where an existing STB service is being decommissioned. When flg is "0" (STB addition), the method configures the contract detail row with a "cancellation completed" status ("910"), sets the cancellation dates to the operational date, and assigns the standard cancellation reason code ("03"). It also clears the recovery date (KAIHK_YMD) per the OM-2014-0000400 defect fix — ensuring that no spurious recovery date lingers when a cancellation-related record is created.

For both modes, the method acts as a **data mapper + delegate**: it extracts 70+ fields from the source `JBSbatCommonDBInterface` (the "current" service contract detail row), populates a 79-element `Object[]` parameter array with those values plus operational metadata (system datetime, batch user ID, valid flag), and delegates the actual INSERT to `executeKK_T_SVC_KEI_UCWK_PKINSERT()`. After the INSERT, it creates the corresponding subtype records via `JKKBatCommon.createSubTypeKK0161()`.

In the larger system, this method is the **terminal persistence point** for STB-related service contract line items generated during the work cancellation batch workflow. It is called by `createSvcKeiUcwkAddInfoKjCl()`, which iterates over a list of STB-addition candidates obtained from prior queries.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["insertSvcKeiUcwkKjCl"]) --> GET_SYS["Get system date/time stamp"]
    GET_SYS --> INIT_VARS["Initialize svcKeiUcwkStat, svcDslYmd, svcDslKisanYmd, svcDlreCd as empty strings"]
    INIT_VARS --> READ_KAIHK["Read KAIHK_YMD from dbInfo"]
    READ_KAIHK --> CHECK_FLG{flg equals STB_ADD zero?}
    CHECK_FLG -- Yes --> SET_STAT["Set svcKeiUcwkStat to SVC_KEI_STAT_DLS_ZM nine-ten-zero"]
    SET_STAT --> SET_DSL_YMD["Set svcDslYmd to this.opeDate"]
    SET_DSL_YMD --> SET_KISAN_YMD["Set svcDslKisanYmd to this.opeDate"]
    SET_KISAN_YMD --> SET_DLRE_CD["Set svcDlreCd to SVC_DLRE_CD_CANCEL zero-three"]
    SET_DLRE_CD --> CLEAR_KAIHK["Set kaihkYmd to empty string"]
    CLEAR_KAIHK --> READ_SVC_KEI_UCWK_NO["Read SVC_KEI_UCWK_NO from dbInfo"]
    CHECK_FLG -- No --> READ_SVC_KEI_UCWK_NO
    READ_SVC_KEI_UCWK_NO --> BUILD_ARRAY["Create setParam array size 79"]
    BUILD_ARRAY --> POPULATE["Populate setParam zero through 78 from dbInfo fields and local variables"]
    POPULATE --> EXEC_INSERT["Call executeKK_T_SVC_KEI_UCWK_PKINSERT"]
    EXEC_INSERT --> CREATE_SUB["Call JKKBatCommon.createSubTypeKK0161"]
    CREATE_SUB --> END_N(["Return"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `dbInfo` | `JBSbatCommonDBInterface` | The current service contract detail row — a database interface holding the source record (`KK_T_SVC_KEI_UCWK`) from which all field values are extracted for the new registration. This is the "current" context row provided by the caller (`searchPKSvcKeiUcwk`). |
| 2 | `kojiakJssiYmd` | `String` | Work case implementation date (工事案件実施年月日) — the date on which the associated work case was/is scheduled to be executed. Used for business context and audit logging. |
| 3 | `flg` | `String` | Flag determining the operation mode: `"0"` = STB addition (STB追加, new service line registration), `"1"` = partial removal/cancellation (STB一部撤去/解約, service decommission). This is a runtime dispatch key that controls cancellation-related field population. |
| 4 | `strIdoDiv` | `String` | Transfer classification (異動区分) — classifies the type of contract transfer/change. Passed through to the `IDO_DIV` field in the parameter array but not directly used in this method. |
| 5 | `strMskmDtlNo` | `String` | Application detail number (申込明細番号) — identifies the specific line item within a customer application. Passed through to the parameter array but not directly used for conditional logic in this method. |

**Instance fields / external state read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `this.opeDate` | `String` | The operational date (実行日) — a class-level field inherited from the parent service class, used as the service cancellation date and cancellation start-accrual date when STB addition mode is active. Inherited from `JBSbatBusinessService`. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JBSbatDateUtil.getSystemDateTimeStamp` | - | - | Retrieves the current system date/time stamp for audit timestamps |
| R | `JBSbatStringUtil.Rtrim` | - | - | Trims trailing whitespace from database string fields (utility, called 70+ times) |
| C | `JKKBatCommon.createSubTypeKK0161` | JKKBatCommon | Subtype table KK0161 | Creates subtype records linked to the newly inserted service contract detail number |
| R | `dbInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.*)` | - | KK_T_SVC_KEI_UCWK | Reads field values from the current service contract detail row via 70+ column accesses |
| C | `executeKK_T_SVC_KEI_UCWK_PKINSERT` | (internal) | KK_T_SVC_KEI_UCWK | Inserts a new row into the service contract detail table with primary key |

### Derived additional entries:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `executeKK_T_SVC_KEI_UCWK_PKINSERT(Object[])` | (internal) | KK_T_SVC_KEI_UCWK | Primary create — inserts a new service contract detail row with 79-field parameter set |
| C | `JKKBatCommon.createSubTypeKK0161(commonItem, svcKeiUcwkNo, geneAddDtm, sysDate)` | (internal) | Subtype tables (KK0161 series) | Creates subtype child records under the newly registered service contract detail number |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 1 method.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CBS: JBSbatKKEoTVChgeFix.createSvcKeiUcwkAddInfoKjCl | `createSvcKeiUcwkAddInfoKjCl(svcKeiUcwkInfoList, kojiakJssiYmd)` → for each info: `searchPKSvcKeiUcwk(info)` → `insertSvcKeiUcwkKjCl(dbInfo, kojiakJssiYmd, STB_ADD, "", "")` | `executeKK_T_SVC_KEI_UCWK_PKINSERT [C] KK_T_SVC_KEI_UCWK`, `createSubTypeKK0161 [C] Subtype KK0161` |

**Call chain description:**
1. `createSvcKeiUcwkAddInfoKjCl()` iterates over a list of STB-addition candidate records.
2. For each candidate, it calls `searchPKSvcKeiUcwk(info)` to fetch the primary key data of the service contract detail.
3. The result is passed to `insertSvcKeiUcwkKjCl(dbInfo, kojiakJssiYmd, STB_ADD, "", "")` where `flg` is hardcoded to `STB_ADD = "0"`.
4. The method inserts the record and creates subtype entries, completing the batch flow.

## 6. Per-Branch Detail Blocks

**Block 1** — SET (variable declarations) (L7279)

> Initialize local variables with default empty string values. This is standard Java null-safety preparation — all fields are defaulted before the conditional branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `sysDate = JBSbatDateUtil.getSystemDateTimeStamp()` // System date/time stamp |
| 2 | SET | `svcKeiUcwkStat = ""` // Service contract detail status — initialized empty |
| 3 | SET | `svcDslYmd = ""` // Service cancellation date — initialized empty |
| 4 | SET | `svcDslKisanYmd = ""` // Service cancellation start-accrual date — initialized empty |
| 5 | SET | `svcDlreCd = ""` // Service cancellation reason code — initialized empty |
| 6 | SET | `kaihkYmd = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.KAIHK_YMD))` // Recovery date — read from dbInfo (OM-2014-0000400: preserved for non-cancellation modes) |

**Block 2** — IF `(STB_ADD.equals(flg)) [STB_ADD = "0" (STB Addition)] (L7294)`

> When flg equals "0" (STB addition mode), the method configures cancellation-related fields as if the service line item has been cancelled. This may seem counterintuitive — the "STB addition" mode actually creates a new detail row with cancellation-completed status. This is because the batch workflow for STB addition during work cancellation generates a replacement line item; the old one is marked as cancelled while the new one is registered.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiUcwkStat = JBSbatKKConst.SVC_KEI_STAT_DLS_ZM` // "910" — Service contract detail status: Cancellation completed (v20.00.00 change from SVC_KEI_UCWK_STAT_DSL_ZUMI) |
| 2 | SET | `svcDslYmd = this.opeDate` // Service cancellation date ← operational date |
| 3 | SET | `svcDslKisanYmd = this.opeDate` // Service cancellation start-accrual date ← operational date |
| 4 | SET | `svcDlreCd = JBSbatKKConst.SVC_DLRE_CD_CANCEL` // "03" — Cancellation reason code (v20.00.00 change from SVC_CANCEL_CD_KOJI_KIIN) |
| 5 | SET | `kaihkYmd = ""` // Recovery date cleared (OM-2014-0000400: when cancellation reason code is created, clear recovery date; otherwise carry forward) |

**Block 2.1** — ELSE-IMPLIED (flg != STB_ADD) (L7294)

> When flg is NOT "0" (e.g., flg = "1" for STB partial removal, or any other value), the method falls through with all cancellation-related fields at their default empty-string values. The original recovery date (`kaihkYmd`) read from dbInfo is preserved for later use in parameter array position [54].

| # | Type | Code |
|---|------|------|
| 1 | — | No additional processing. svcKeiUcwkStat, svcDslYmd, svcDslKisanYmd, svcDlreCd remain as empty strings. |
| 2 | — | kaihkYmd retains its original value from dbInfo (not cleared). |

**Block 3** — SET (read service detail number) (L7313)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiUcwkNo = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO))` // Service contract detail number |

**Block 4** — SET (build parameter array) (L7316)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setParam = new Object[79]` // 79-field parameter array for insert |

**Block 5** — SET (populate setParam fields [0..78]) (L7319–L7557)

> This is the largest block in the method — a sequential population of 79 fields that form the complete record for the service contract detail table. Fields [0..65] are read from dbInfo (the current row). Fields [49..51] use the conditional values computed in Block 2 (svcDslKisanYmd, svcDslYmd, svcDlreCd). Fields [54] uses the preserved kaihkYmd. Fields [66..69] use sysDate/batchUserId for audit columns. Fields [70..71] are empty (no delete timestamp/user). Field [72] is the invalid flag set to valid ("0"). Fields [73..78] are empty placeholders for operation modes and IDs.

| # | Type | Code | Description |
|---|------|------|-------------|
| 1 | SET | `setParam[0] = svcKeiUcwkNo` | Service contract detail number (PK) |
| 2 | SET | `setParam[1] = sysDate` | Generation timestamp |
| 3 | SET | `setParam[2] = svcKeiUcwkStat` | Service contract detail status ("910" for STB add, "" otherwise) |
| 4 | SET | `setParam[3] = dbInfo.getString(SVC_KEI_NO)` | Service contract number |
| 5 | SET | `setParam[4] = dbInfo.getString(MSKM_DTL_NO)` | Application detail number |
| 6 | SET | `setParam[5] = dbInfo.getString(PCRS_CD)` | Pricing course code |
| 7 | SET | `setParam[6] = dbInfo.getString(PPLAN_CD)` | Pricing plan code |
| 8 | SET | `setParam[7] = dbInfo.getString(TK_HOSHIKI_KEI_NO)` | Provisional contract number |
| 9 | SET | `setParam[8] = dbInfo.getString(PAYWAY_KEIZOKU_FLG)` | Payment method continuation flag |
| 10 | SET | `setParam[9] = dbInfo.getString(WEB_OP_ADD_FAIL_FLG)` | Web option addition unavailable flag |
| 11 | SET | `setParam[10] = dbInfo.getString(WORK_RRK_BIKO)` | Business liaison remarks |
| 12 | SET | `setParam[11] = dbInfo.getString(SVC_USE_STA_KIBO_YMD)` | Service use start preferred date |
| 13 | SET | `setParam[12] = dbInfo.getString(SVC_UEST_KBTMZ_CD)` | Service use start preferred time slot code |
| 14 | SET | `setParam[13] = dbInfo.getString(SVC_UEST_KBTM_CD)` | Service use start preferred time code |
| 15 | SET | `setParam[14] = dbInfo.getString(RSV_TSTA_KIBO_YMD)` | Reservation application start preferred date |
| 16 | SET | `setParam[15] = dbInfo.getString(SKEKKA_SEND_CD)` | Review result notification code |
| 17 | SET | `setParam[16] = dbInfo.getString(SVC_KEI_UCWK_KZKWRK_REQYMD)` | Service contract detail post-processing request date |
| 18 | SET | `setParam[17] = dbInfo.getString(SHOSA_YMD)` | Inspection date |
| 19 | SET | `setParam[18] = dbInfo.getString(SHOSA_CL_YMD)` | Inspection cancellation date |
| 20 | SET | `setParam[19] = dbInfo.getString(FTRIAL_KANYU_YMD)` | Trial addition date |
| 21 | SET | `setParam[20] = dbInfo.getString(FTRIAL_PRD_ENDYMD)` | Trial period end date |
| 22 | SET | `setParam[21] = dbInfo.getString(HONKANYU_YMD)` | Full addition date |
| 23 | SET | `setParam[22] = dbInfo.getString(HONKANYU_IKO_KIGEN_YMD)` | Full addition transfer deadline date |
| 24 | SET | `setParam[23] = dbInfo.getString(KEI_CNC_YMD)` | Contract signing date |
| 25 | SET | `setParam[24] = dbInfo.getString(RSV_APLY_YMD)` | Reservation application date |
| 26 | SET | `setParam[25] = dbInfo.getString(RSV_CL_YMD)` | Reservation cancellation date |
| 27 | SET | `setParam[26] = dbInfo.getString(RSV_APLY_CD)` | Reservation application code |
| 28 | SET | `setParam[27] = dbInfo.getString(PLAN_STAYMD)` | Plan start date |
| 29 | SET | `setParam[28] = dbInfo.getString(PLAN_ENDYMD)` | Plan end date |
| 30 | SET | `setParam[29] = dbInfo.getString(PLAN_CHRG_STAYMD)` | Plan charge start date |
| 31 | SET | `setParam[30] = dbInfo.getString(PLAN_CHRG_ENDYMD)` | Plan charge end date |
| 32 | SET | `setParam[31] = dbInfo.getString(PLAN_END_SBT_CD)` | Plan end type code |
| 33 | SET | `setParam[32] = dbInfo.getString(SVC_CANCEL_YMD)` | Service cancellation date |
| 34 | SET | `setParam[33] = dbInfo.getString(SVC_CANCEL_RSN_CD)` | Service cancellation reason code |
| 35 | SET | `setParam[34] = dbInfo.getString(SVC_STA_YMD)` | Service start date |
| 36 | SET | `setParam[35] = dbInfo.getString(SVC_CHRG_STAYMD)` | Service charge start date |
| 37 | SET | `setParam[36] = dbInfo.getString(SVC_STP_YMD)` | Service suspension date |
| 38 | SET | `setParam[37] = dbInfo.getString(SVC_STP_RSN_CD)` | Service suspension reason code |
| 39 | SET | `setParam[38] = dbInfo.getString(SVC_STP_RLS_YMD)` | Service suspension release date |
| 40 | SET | `setParam[39] = dbInfo.getString(SVC_STP_RLS_RSN_CD)` | Service suspension release reason code |
| 41 | SET | `setParam[40] = dbInfo.getString(PAUSE_STP_CD)` | Suspension interruption code |
| 42 | SET | `setParam[41] = dbInfo.getString(SVC_PAUSE_YMD)` | Service pause date |
| 43 | SET | `setParam[42] = dbInfo.getString(SVC_PAUSE_RSN_CD)` | Service pause reason code |
| 44 | SET | `setParam[43] = dbInfo.getString(SVC_PAUSE_RSN_MEMO)` | Service pause reason memo |
| 45 | SET | `setParam[44] = dbInfo.getString(SVC_PAUSE_RLS_YMD)` | Service pause release date |
| 46 | SET | `setParam[45] = dbInfo.getString(SVC_PAUSE_RLS_RSN_CD)` | Service pause release reason code |
| 47 | SET | `setParam[46] = dbInfo.getString(SVC_PAUSE_RLS_RSN_MEMO)` | Service pause release reason memo |
| 48 | SET | `setParam[47] = dbInfo.getString(SVC_ENDYMD)` | Service end date |
| 49 | SET | `setParam[48] = dbInfo.getString(SVC_CHRG_ENDYMD)` | Service charge end date |
| 50 | SET | `setParam[49] = svcDslKisanYmd` // Resolved: "" or this.opeDate [-> Conditional from Block 2] | Service cancellation start-accrual date |
| 51 | SET | `setParam[50] = svcDslYmd` // Resolved: "" or this.opeDate [-> Conditional from Block 2] | Service cancellation date |
| 52 | SET | `setParam[51] = svcDlreCd` // Resolved: "" or "03" [-> Conditional from Block 2] | Service cancellation reason code |
| 53 | SET | `setParam[52] = dbInfo.getString(SVC_DLRE_MEMO)` | Service cancellation reason memo |
| 54 | SET | `setParam[53] = dbInfo.getString(SVC_DSL_TTDKI_FIN_FLG)` | Service cancellation completion flag |
| 55 | SET | `setParam[54] = kaihkYmd` // Preserved or cleared [-> Conditional from Block 2] | Recovery date |
| 56 | SET | `setParam[55] = dbInfo.getString(SVC_CANCEL_CL_YMD)` | Service cancellation reversal date |
| 57 | SET | `setParam[56] = dbInfo.getString(SVC_DSL_CL_YMD)` | Service cancellation reversal date |
| 58 | SET | `setParam[57] = dbInfo.getString(SVKEIUW_HKHASYMD)` | Service contract detail transfer occurrence date |
| 59 | SET | `setParam[58] = dbInfo.getString(CHRG_STA_YMD_HOSEI_UM)` | Charge start date correction existence |
| 60 | SET | `setParam[59] = dbInfo.getString(SVC_PAUSE_CHRG_STA_YMD)` | Service pause charge start date |
| 61 | SET | `setParam[60] = dbInfo.getString(PNLTY_HASSEI_CD)` | Penalty occurrence code |
| 62 | SET | `setParam[61] = dbInfo.getString(IDO_DIV)` | Transfer classification |
| 63 | SET | `setParam[62] = dbInfo.getString(SHOSA_DSL_FIN_CD)` | Inspection cancellation completion code |
| 64 | SET | `setParam[63] = dbInfo.getString(SVCTK_BUT_DEL_TRN_JSSI_DTM)` | Service product deletion processing execution datetime |
| 65 | SET | `setParam[64] = dbInfo.getString(KEIZK_MT_SVC_KEI_UCWK_NO)` | Inherited source service contract detail number |
| 66 | SET | `setParam[65] = dbInfo.getString(KEIZK_AF_KEI_CHGECHU_FLG)` | Post-inheritance contract change processing flag |
| 67 | SET | `setParam[66] = sysDate` // [-> CONSTANT from Block 1] | Registration timestamp |
| 68 | SET | `setParam[67] = batchUserId` // [-> Instance field] | Registration operator account |
| 69 | SET | `setParam[68] = sysDate` | Update timestamp |
| 70 | SET | `setParam[69] = batchUserId` | Update operator account |
| 71 | SET | `setParam[70] = ""` | Delete timestamp |
| 72 | SET | `setParam[71] = ""` | Delete operator account |
| 73 | SET | `setParam[72] = JBSbatKKConst.MK_FLG_YK` // "0" — Valid flag: Effective [-> CONSTANT: MK_FLG_YK = "0"] | Invalid flag: "0" = valid |
| 74 | SET | `setParam[73] = ""` | Registration operation date |
| 75 | SET | `setParam[74] = ""` | Registration processing ID |
| 76 | SET | `setParam[75] = ""` | Update operation date |
| 77 | SET | `setParam[76] = ""` | Update processing ID |
| 78 | SET | `setParam[77] = ""` | Delete operation date |
| 79 | SET | `setParam[78] = ""` | Delete processing ID |

**Block 6** — CALL (execute insert) (L7560)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `executeKK_T_SVC_KEI_UCWK_PKINSERT(setParam)` // Insert the service contract detail record with 79 fields | Primary Create — inserts a new row into KK_T_SVC_KEI_UCWK table. The parameter array contains the complete record with system timestamps, audit fields, and all business data derived from the source dbInfo row plus the conditional cancellation fields. |

**Block 7** — CALL (create subtype) (L7563)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `JKKBatCommon.createSubTypeKK0161(commonItem, svcKeiUcwkNo, JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.GENE_ADD_DTM)), sysDate)` // Register subtype under the new service detail number | Create subtype child records — creates all subtype records associated with subtype key KK0161 (service contract detail subtype) for the newly inserted detail number. The geneAddDtm (generation addition datetime) from the source row and the system date are passed for audit. |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_ucwk_no` | Field | Service contract detail number — internal tracking ID for a service contract line item |
| `svc_kei_no` | Field | Service contract number — groups one or more line items (detail rows) under a single service agreement |
| `svc_kei_ucwk_stat` | Field | Service contract detail status — indicates the lifecycle state of a line item (e.g., "910" = Cancellation Completed) |
| `svc_dsl_ymd` | Field | Service cancellation date (サービス解約年月日) — the date when service cancellation took effect |
| `svc_dsl_kisan_ymd` | Field | Service cancellation start-accrual date (サービス解約起算年月日) — the date from which cancellation billing accrual begins |
| `svc_dlre_cd` | Field | Service cancellation reason code (サービス解約理由コード) — categorizes why the service was cancelled ("03" = standard cancellation) |
| `kaihk_ymd` | Field | Recovery date (回復年月日) — when a cancelled/paused service is restored; cleared during cancellation registration |
| `flg` | Field | Operation flag — dispatches between STB addition ("0") and STB partial removal/cancellation ("1") |
| `STB_ADD` | Constant | "0" — STB addition mode (STB追加). Triggers cancellation-completed status and date configuration. |
| `STB_DSL` | Constant | "1" — STB partial removal/cancellation mode (STB一部撤去/解約) |
| `SVC_KEI_STAT_DLS_ZM` | Constant | "910" — Service contract status: Cancellation completed (解約済). Replaced "SVC_KEI_UCWK_STAT_DSL_ZUMI" in v20.00.00. |
| `SVC_DLRE_CD_CANCEL` | Constant | "03" — Cancellation reason code. Replaced "SVC_CANCEL_CD_KOJI_KIIN" in v20.00.00. |
| `MK_FLG_YK` | Constant | "0" — Invalid flag set to valid (無効フラグ: 有効). The record is active/effective. |
| `ido_div` | Field | Transfer classification (異動区分) — categorizes the type of contract transfer/change event |
| `mskm_dtl_no` | Field | Application detail number (申込明細番号) — identifies a specific line item within a customer application |
| `kojiak_jssi_ymd` | Field | Work case implementation date (工事案件実施年月日) — the date on which associated field work is executed |
| `batchUserId` | Field | Batch operator user ID — the system account performing batch operations, used for audit trail |
| `opeDate` | Field | Operational date (実行日) — the date this batch process is executing, set by the parent service class |
| `KK_T_SVC_KEI_UCWK` | Table | Service contract detail table (サービス契約内訳) — stores individual line items within a service contract |
| `KK_T_SVC_KEI` | Table | Service contract table (サービス契約) — stores the parent service contract header |
| `KK_T_KKTK_SVC_KEI` | Table | Equipment provision service contract table (機器提供サービス契約) — stores service contracts tied to equipment provisioning |
| `KK0161` | Subtype Key | Subtype group for service contract detail records — child records for line-item-level data |
| `GENE_ADD_DTM` | Field | Generation addition datetime (生成追加日時) — when this detail row was originally generated |
| STB | Acronym | Set-Top Box — set-top box equipment for TV/cable service delivery |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service (domain context) |
| OM | Acronym | Operations & Maintenance — internal defect tracking prefix (e.g., OM-2014-0000400) |
| SC | Acronym | Service Component — a layer in the architecture that encapsulates business logic operations |
| CBS | Acronym | Common Business Service — shared service component used across multiple screens/batches |
