# Business Logic — JKKCancelSvcKeiCC.ctlCancelData() [634 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKCancelSvcKeiCC` |
| Layer | CC / Common Component (package `com.fujitsu.futurity.bp.custom.common`) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKCancelSvcKeiCC.ctlCancelData()

`ctlCancelData` is the central **service contract cancellation orchestration method** in the K-Opticom customer management system. It executes a comprehensive, sequential cancellation pipeline for a customer service contract (e.g., FTTH internet, phone, TV, or bundled packages), handling every facet of contract termination: the main contract, contract details, option services, subscription options, equipment provision services, and network-specific post-cancellation tasks. It operates on a **routing/dispatch** design pattern — branching by service type code (`svcSbtCd`) and service code (`svcCd`) to apply service-type-specific cancellation steps (e.g., opt-in mail cancellation for net services, VLAN order handling for phone services). The method is **called by the public cancellation entry point** `doCancel` within the same class, which performs preliminary data extraction and status checking before delegating here. The method also handles integration data registration (linkage partition 07 and 02), work case and logistics execution, SOD (Service Order Data) issuance, discount auto-application, advance registration, and customer withdrawal notification. Upon successful completion, it additionally triggers Netflix-specific third-party contract dissolution when the service is a Net service. Every intermediate step performs an early-return on error, making the entire cascade a fail-fast sequential pipeline.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["ctlCancelData enter"])
    START --> INIT["Initialize: statusCode=STAT_NORMAL, svcSbtCd=DFLT"]
    INIT --> GET_WORK["Get eKK0081A010Hash from workField with key svc_kei"]
    GET_WORK --> HICHARGE["cancelSvcKeiMapper.runHiChrgJdgUtil - Non-recurring charge judgment"]
    HICHARGE --> GET_DATA["Extract SYSID, SVC_CD, PRC_GRP_CD, svcSbtCd from hash"]
    GET_DATA --> CANCEL_RSN["getCancelRtnCd - Cancel reason code determination"]
    CANCEL_RSN --> SET_RSN["workField.put CANCEL_RSN_CD with CancelRtnCd"]
    SET_RSN --> MSKM_ADD["setMskmAdd - Submission registration"]
    MSKM_ADD --> MSKM_CHECK["setMskmAdd returns error?"]
    MSKM_CHECK -->|Yes| EARLY_RET1["Return statusCode error"]
    MSKM_CHECK -->|No| CALL_CANCEL_SVR["callCancelSrvKei - Contract cancellation"]
    CALL_CANCEL_SVR --> CALL_SVR_CHECK["callCancelSrvKei returns error?"]
    CALL_SVR_CHECK -->|Yes| EARLY_RET2["Return statusCode error"]
    CALL_SVR_CHECK -->|No| CALL_CANCEL_SVR_UCWK["callCancelSrvKeiUcwk - Contract detail cancellation"]
    CALL_CANCEL_SVR_UCWK --> CALL_UCWK_CHECK["callCancelSrvKeiUcwk returns error?"]
    CALL_UCWK_CHECK -->|Yes| EARLY_RET3["Return statusCode error"]
    CALL_UCWK_CHECK -->|No| ADD_TAIOKRK["addTaiokrk - History registration"]
    ADD_TAIOKRK --> CALL_CANCEL_OP["callCancelOpSvcKei - Option service cancellation"]
    CALL_CANCEL_OP --> CALL_OP_CHECK["callCancelOpSvcKei returns error?"]
    CALL_OP_CHECK -->|Yes| EARLY_RET4["Return statusCode error"]
    CALL_OP_CHECK -->|No| CALL_CANCEL_SBOP["callCancelSbopSvcKei - Subscription option cancellation"]
    CALL_CANCEL_SBOP --> CALL_SBOP_CHECK["callCancelSbopSvcKei returns error?"]
    CALL_SBOP_CHECK -->|Yes| EARLY_RET5["Return statusCode error"]
    CALL_SBOP_CHECK -->|No| GET_SVC_NO["Extract svc_kei_no, svc_kei_stat from hash"]
    GET_SVC_NO --> CALL_CANCEL_UW["callCancelSvKeiKaisenUw - Withdrawal detail cancellation"]
    CALL_CANCEL_UW --> CALL_UW_CHECK["callCancelSvKeiKaisenUw returns error?"]
    CALL_UW_CHECK -->|Yes| EARLY_RET6["Return statusCode error"]
    CALL_UW_CHECK -->|No| PUT_LINK07["putAxMRenkeiDataKbn07 - Linkage data partition 07"]
    PUT_LINK07 --> PUT_LINK02["putAxMRenkeiDataKbn - Linkage data partition 02"]
    PUT_LINK02 --> CALL_KKT["callCancelKktkSvcKei - Equipment provision service cancellation"]
    CALL_KKT --> CALL_KKT_CHECK["callCancelKktkSvcKei returns error?"]
    CALL_KKT_CHECK -->|Yes| EARLY_RET7["Return statusCode error"]
    CALL_KKT_CHECK -->|No| SVC_NET_CHECK["svcSbtCd is NET or ADSL or MOBA?"]
    SVC_NET_CHECK -->|Yes| CANCEL_OPTIN["callCancelOptInMail - Opt-in mail cancellation"]
    CANCEL_OPTIN --> CANCEL_AGING_NET["callCloseAgingNet - Aging end for net"]
    CANCEL_AGING_NET --> SVC_TEL_CHECK["svcSbtCd equals HTel?"]
    SVC_NET_CHECK -->|No| SVC_TEL_CHECK
    SVC_TEL_CHECK -->|Yes| SVC_STAT_CHECK["tmpSvcKeiStat != STAT_UK_ZUMI?"]
    SVC_TEL_CHECK -->|No| CALL_CANCEL_MSKM["callCancelMskm - Submission cancellation"]
    SVC_STAT_CHECK -->|Yes| CALL_VLAN["callVLANOrderUK - Phone VLAN order receipt"]
    SVC_STAT_CHECK -->|No| CALL_AGING_TEL["callCloseAgingTel - Aging end for phone"]
    CALL_VLAN --> CALL_AGING_TEL
    CALL_AGING_TEL --> LOOP_BMP["Loop SVKEIUW_EOH_TEL: cancelBmpkj if target stat and BMP_UM=1"]
    LOOP_BMP --> UPD_TEL["updTelNokojinHojin - Phone and corporate ID code update"]
    UPD_TEL --> CALL_CANCEL_MSKM
    CALL_CANCEL_MSKM --> UPDATE_PCRS["updKktkSvcTblt - Payment stop cancellation"]
    UPDATE_PCRS --> STAT_TARGET["isTrgtBySvcKeiStat with tmpSvcKeiStat?"]
    STAT_TARGET -->|No| FINAL_RET["Return statusCode"]
    STAT_TARGET -->|Yes| STAT_UKM["tmpSvcKeiStat != STAT_UK_ZUMI?"]
    STAT_UKM -->|Yes| FINAL_RET
    STAT_UKM -->|No| EXEC_KOJI["executeKojiakCC - Work case execution"]
    EXEC_KOJI --> EXEC_BUTURYU["executeButuryuCtrlCC - Logistics execution"]
    EXEC_BUTURYU --> EXEC_TCHISHO["executeTchishoAddCC - Notice document registration"]
    EXEC_TCHISHO --> SHOSA_CHECK["SHOSA_DSL_FIN_CD equals SHOSA_NG?"]
    SHOSA_CHECK -->|No| ADD_SJISHO["JKKAddSjishoCC.addSjisho - Direct instruction registration"]
    SHOSA_CHECK -->|Yes| SOD_FLG["sodHakkoFlg = true"]
    ADD_SJISHO --> SOD_FLG
    SOD_FLG --> SOD_EXEC["sodHakkoFlg == true?"]
    SOD_EXEC -->|Yes| EXEC_SOD["executeHakkoSodCC - SOD issuance"]
    SOD_EXEC -->|No| TEL_SVC["svcCd == SVC_CD_TEL?"]
    EXEC_SOD --> TEL_SVC
    TEL_SVC -->|Yes| TEL_PACK["Loop svc_kei_ucwk: executeTelSelectOpPackOperateCC"]
    TEL_SVC -->|No| EXEC_WRIB["executeWribAutoAplyCC - Discount auto-apply"]
    TEL_PACK --> EXEC_WRIB
    EXEC_WRIB --> SET_WRIB["tmpSetwribFlg true?"]
    SET_WRIB -->|Yes| CALL_ADD_WRIB["callAddPrgWrib - Set discount and advance registration"]
    SET_WRIB -->|No| CALL_ADD_PRG["callAddPrg - Advance registration"]
    CALL_ADD_WRIB --> CALL_ADD_PRG
    CALL_ADD_PRG --> EXEC_SM["executeSmtvlIdoInfAddCC - Smart balance discrepancy"]
    EXEC_SM --> CUS_TAIKAI["svc_kei_stat != CD00037_UK_ZM?"]
    CUS_TAIKAI -->|Yes| CALL_CUS["callCusTaikaiCmnKino - Customer withdrawal"]
    CUS_TAIKAI -->|No| NET_CD["svcCd == SVC_CD_NET?"]
    CALL_CUS --> NET_CD
    NET_CD -->|Yes| UPD_NET["JKKTkkkSvKeiNoUpdCC - Home device SVC contract no update"]
    NET_CD -->|No| NETFLIX["svcCd == SVC_CD_NET?"]
    UPD_NET --> NETFLIX
    NETFLIX -->|Yes| DO_NETFLIX["setNetflixCC + JKKNetflixTajgsKeiIdtslAddCC.main"]
    NETFLIX -->|No| FINAL_RET
    DO_NETFLIX --> FINAL_RET
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle carrying the transactional context. Used for all DB reads/writes executed during the cancellation pipeline. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object used to read incoming screen inputs and write linkage data (`putAxMRenkeiDataKbn`) and advance registration control data. Contains screen-published fields like `WrisvcAutoAplyCC` (discount auto-apply CC data) and result codes. |
| 3 | `trgt_data` | `HashMap<String, Object>` | Target data map carrying application-specific input parameters. Used for cancel reason code determination (`getCancelRtnCd`), work case cancellation reason/flag setting, and retrieving `REQ_PARAM_IDO_DIV` for home device SVC contract number update. |
| 4 | `workField` | `HashMap<String, Object>` | Work area map used for result holding and inter-step data passing. Contains service contract agreement results (`svc_kei`), cancel reason code (`CANCEL_RSN_CD`), service contract detail lists (`svc_kei_ucwk`), SVKEIUW_EOH_TEL, etc. Passed into mapper and sub-cancellation methods. |
| 5 | `fixedText` | `String` | Fixed text label used in business processing, such as in the history registration (`addTaiokrk`) for describing the reason context, and passed through to low-level operations like `cancelBmpkj` and `updKktkSvcTblt`. |

**External state / instance fields read:**
- None directly — this method is stateless. All state flows through the `workField` and `trgt_data` parameters.
- The method references `eKK0081A010CBSMsg1List`, `EKK0161A010CBSMsg1List`, `EKK0161B004CBSMsg1List`, `EKK0191A010CBSMsg1List`, `EKK0251A010CBSMsg1List`, `EKK0341A010CBSMsg1List`, `EKK0351A010CBSMsg1List` classes as constant holders for DB field keys.
- Static constants defined in `JKKCancelSvcKeiCC` (service type codes, data map keys), `JKKStrConst` (string constants), `JKKSvcConst` (service constants), `JKKAddSjishoConst`, `JKKCancelBmpkjConst` are all class-level constant values.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `cancelSvcKeiMapper.runHiChrgJdgUtil` | - | - | Runs non-recurring charge judgment utility for the service contract (DSL, option, subscription option) |
| - | `getSvcSbtCd` | - | - | Determines service subtype code from svcCd and prcGrpCd |
| - | `getCancelRtnCd` | - | - | Determines the cancel reason code from target data |
| C | `setMskmAdd` | MskmAdd | KK_T_MSKM (submission) | Registers the cancellation submission (申書登録) |
| C | `callCancelSrvKei` | EKK0081A010SC / EKK0081CBS | KK_T_OPSVKEI (service contract) | Cancels/rescinds the main service contract agreement |
| C | `callCancelSrvKeiUcwk` | EKK0161B004SC / EKK0161A010SC / EKK0191A010SC | KK_T_OPSVKEI_UCWK (service contract detail) | Cancels/rescinds service contract details (eo光電話, eo光ネット, eoADSL) |
| C | `addTaiokrk` | - | KK_T_TAIOKRK (history) | Registers cancellation history record (対応履歴登録) |
| C | `callCancelOpSvcKei` | EKK0351A010SC | KK_T_OP_SVKEI (option service) | Cancels option services (ISP, Tel) |
| C | `callCancelSbopSvcKei` | EKKxxxCBS | KK_T_SBOP_SVKEI (subscription option) | Cancels subscription option services |
| C | `callCancelSvKeiKaisenUw` | EKK0251A010SC | KK_T_SVKEI_KAISEN_UW (contract withdrawal detail) | Cancels contract withdrawal details |
| - | `JKKBpCommon.putAxMRenkeiDataKbn07` | - | KK_T_AXMR (linkage data) | Registers linkage data partition 07: various service contract info related to withdrawal |
| - | `JKKBpCommon.putAxMRenkeiDataKbn` | - | KK_T_AXMR (linkage data) | Registers linkage data partition 02: SVC contract no + SYSID association |
| C | `callCancelKktkSvcKei` | EKK0341A010SC | KK_T_KKTK_SVKEI (equipment provision service) | Cancels equipment provision services (VDSL, MRT, HGW, TAKINO) |
| C | `callCancelOptInMail` | - | - | Cancels opt-in mail reception setting for net services |
| C | `callCloseAgingNet` | - | - | Ends aging for net services (ネッティング使用終了) |
| C | `callVLANOrderUK` | - | - | Processes phone VLAN order receipt (電話用VLANオーダ受付) |
| C | `callCloseAgingTel` | - | - | Ends aging for phone services (エンジン使用終了) |
| D | `JKKBpCommon.cancelBmpkj` | JKKCancelBmpkj | KK_T_BMP_KOJI (work case) | Cancels Fannbo work case (番工取消) based on service contract and BmpTelNo |
| C | `updTelNokojinHojin` | - | - | Updates phone number and corporate ID codes (電話番号・個人法人番号コード更新) |
| C | `callCancelMskm` | - | - | Cancels the submission (申書キャンセル) |
| - | `updKktkSvcTblt` | - | - | Updates payment stop cancellation table (支払い取消) |
| C | `executeKojiakCC` | JKKKojiAnkenCC | KK_T_KOJIAK (work case) | Executes work case cancellation (工事案件キャンセル実行) |
| C | `executeButuryuCtrlCC` | - | - | Executes logistics cancellation (物流キャンセル実行) |
| C | `executeTchishoAddCC` | - | - | Executes notice document registration (通知書登録実行) |
| C | `JKKAddSjishoCC.addSjisho` | JKKAddSjishoCC | KK_T_SJISHO (instruction data) | Registers direct instruction data for照枠OK (inspection OK) cancel |
| C | `executeHakkoSodCC` | JKKHakkoSODConstCC | KK_T_ODR_HAKKO_JOKEN (SOD order) | Issues SOD (Service Order Data) for cancellation |
| C | `executeTelSelectOpPackOperateCC` | - | - | Executes tel selection option pack operation for phone services |
| C | `executeWribAutoAplyCC` | - | - | Executes discount auto-application (割引自動適用実行) |
| C | `callAddPrgWrib` | - | - | Sets discount and registers advance progress (セット割引用 + 進捗登録) |
| C | `callAddPrg` | - | - | Registers advance progress (進捗登録) |
| C | `executeSmtvlIdoInfAddCC` | JKKSmtvlIdoInfAddConstCC | - | Registers smart balance discrepancy information (スマートバレウ情報登録) |
| C | `callCusTaikaiCmnKino` | - | - | Executes customer withdrawal process (お客様退会処理) |
| U | `JKKTkkkSvKeiNoUpdCC.updTkkkSvKeiNo` | JKKTkkkSvKeiNoUpdCC | KK_T_TKKK_SVKEI_NO (home device SVC contract no) | Updates home device service contract number |
| C | `JKKNetflixTajgsKeiIdtslAddCC.main` | JKKNetflixTajgsKeiIdtslAddCC | - | Registers Netflix third-party contract dissolution discrepancy notification |
| R | `JBSbatDKNyukaFinAdd.getData` | - | - | Reads data from JBSbatDKNyukaFinAdd |
| R | `JFUeoTelOpTransferCC.getData` | - | - | Reads data for eo Tel option transfer |
| R | `JFUTransferCC.getData` | - | - | Reads transfer data |
| R | `JFUTransferListToListCC.getData` | - | - | Reads transfer list data |
| C | `JCKCustInfChgSjishoAddCC.addSjisho` | - | - | Adds address for customer info change |
| C | `JCKKeishaChgOrsCC.addSjisho` | - | - | Adds address for keisha change |
| C | `JKKAddSjishoCC.addSjisho` | - | - | Adds address data |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Class:JKKCancelSvcKeiCC (doCancel) | `JKKCancelSvcKeiCC.doCancel` -> `analyzeRequestParam` -> `ctlChshtData` -> `JKKCancelSvcKeiCC.ctlCancelData` | `cancelBmpkj [D] KK_T_BMP_KOJI`, `addTaiokrk [C] KK_T_TAIOKRK`, `executeHakkoSodCC [C] KK_T_ODR_HAKKO_JOKEN`, `callCusTaikaiCmnKino [C] -`, `callAddPrg [C] -`, `executeSmtvlIdoInfAddCC [C] -`, `updTkkkSvKeiNo [U] KK_T_TKKK_SVKEI_NO`, `NetflixCC.main [C] -`, `setData [R] -` |

**Notes:** The public entry point `doCancel` in the same class (`JKKCancelSvcKeiCC`, line ~920) performs preliminary data extraction via `analyzeRequestParam` and status control via `ctlChshtData`, then delegates to `ctlCancelData`. No direct screen/batch entry points (KKSV*) were found calling this private method within 8 hops.

## 6. Per-Branch Detail Blocks

**Block 1** — INITIALIZATION (L1210)

Initialize local variables, status codes, and extract service contract agreement data from workField.

| # | Type | Code |
|---|------|------|
| 1 | SET | `statusCode = STAT_NORMAL (0)` |
| 2 | SET | `svcSbtCd = SVC_SBT_CD_DFLT (0)` |
| 3 | SET | `sysid = null, svcCd = null, prcGrpCd = null` |
| 4 | SET | `eKK0081A010Hash = (HashMap) workField.get(SVC_KEI = "svc_kei")` |

**Block 2** — NON-RECURRING CHARGE JUDGMENT (L1222)

Executes non-recurring charge judgment utility for DSL service. Sets `DSL_SBT_FLG_SVC_KEI_DSL = "1"` flag.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `cancelSvcKeiMapper.runHiChrgJdgUtil(handle, param, trgt_data, workField, eKK0081A010Hash, null, null, null, DSL_SBT_FLG_SVC_KEI_DSL = "1")` |
| 2 | SET | `jdgHiChrgMapSvcKei` = result from mapper |

**Block 3** — EXTRACT SERVICE DATA (L1234)

Extract service contract data from the agreement hash map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpSvcKeiStat = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT)` |
| 2 | SET | `sysid = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SYSID)` // SYSID |
| 3 | SET | `svcCd = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_CD)` // Service code |
| 4 | SET | `prcGrpCd = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.PRC_GRP_CD)` // Price group code |
| 5 | CALL | `svcSbtCd = getSvcSbtCd(svcCd, prcGrpCd)` // Service subtype |

**Block 4** — CANCEL REASON CODE DETERMINATION (L1241)

Determine the cancellation reason code from target data.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `CancelRtnCd = getCancelRtnCd(trgt_data)` |
| 2 | SET | `workField.put(CANCEL_RSN_CD = "cancel_rsn_cd", CancelRtnCd)` |

**Block 5** — SUBMISSION REGISTRATION (L1245)

Register the cancellation submission (申書登録実施処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = setMskmAdd(param, handle, trgt_data, workField, eKK0081A010Hash)` |

**Block 5.1** — EARLY RETURN ON FAILURE (L1247)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 6** — CONTRACT CANCELLATION/RESCISSION (L1256)

Cancel the main service contract agreement (サービス契約キャンセル・解約処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelSrvKei(param, handle, trgt_data, workField)` |

**Block 6.1** — EARLY RETURN ON FAILURE (L1258)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 7** — CONTRACT DETAIL CANCELLATION (L1267)

Cancel service contract details (サービス契約内訳キャンセル・解約処理).

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiUcwkDataList = new ArrayList<HashMap<String,Object>>()` |
| 2 | CALL | `statusCode = callCancelSrvKeiUcwk(param, handle, trgt_data, workField, svcKeiUcwkDataList, sysid, svcSbtCd, prcGrpCd)` |

**Block 7.1** — EARLY RETURN ON FAILURE (L1269)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 8** — HISTORY REGISTRATION (L1277)

Register cancellation history (対応履歴登録処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addTaiokrk(handle, param, fixedText, trgt_data, workField, svcSbtCd)` |

**Block 9** — OPTION SERVICE CANCELLATION (L1285)

Cancel option services (オプションサービス契約キャンセル・解約処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelOpSvcKei(param, handle, trgt_data, workField, sysid, jdgHiChrgMapSvcKei)` |

**Block 9.1** — EARLY RETURN ON FAILURE (L1287)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 10** — SUBSCRIPTION OPTION CANCELLATION (L1295)

Cancel subscription option services (サブオプションサービス契約キャンセル・解約処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelSbopSvcKei(param, handle, trgt_data, workField, jdgHiChrgMapSvcKei)` |

**Block 10.1** — EARLY RETURN ON FAILURE (L1297)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 11** — EXTRACT SVC CONTRACT NO AND STAT (L1305)

Extract service contract number and status for downstream processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svc_kei_no = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_KEI_NO)` // Service contract number |
| 2 | SET | `svc_kei_stat = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT)` // Service contract status |

**Block 12** — WITHDRAWAL DETAIL CANCELLATION (L1312)

Cancel contract withdrawal details (サービス契約回線内訳キャンセル処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelSvKeiKaisenUw(param, handle, trgt_data, workField, svc_kei_no)` |

**Block 12.1** — EARLY RETURN ON FAILURE (L1314)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 13** — LINKAGE DATA REGISTRATION (Partition 07) (L1322)

Register linkage data partition 07: various service contract info related to withdrawal (連携データ区分 07).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JKKBpCommon.putAxMRenkeiDataKbn07(param, SJISHO_MAP, JKKAddSjishoConst.TRN_KBN_DEL, new String[]{svc_kei_no}, "料金グループ番号？")` |

**Block 14** — LINKAGE DATA REGISTRATION (Partition 02) (L1333)

Register linkage data partition 02: SVC contract no + SYSID association (連携データ区分 02). Sets `RENKEI_DATA_KBN_SYSID` with `TRN_KBN_UPD`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JKKBpCommon.putAxMRenkeiDataKbn(param, SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_SYSID, JKKAddSjishoConst.TRN_KBN_UPD, new String[]{svc_kei_no}, "")` |

**Block 15** — EQUIPMENT PROVISION SERVICE CANCELLATION (L1348)

Cancel equipment provision services (機器提供サービス契約キャンセル・解約処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelKktkSvcKei(param, handle, trgt_data, workField)` |

**Block 15.1** — EARLY RETURN ON FAILURE (L1350)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 16** — SERVICE TYPE BRANCH: NET/ADSL/MOBA (L1367)

If the service subtype is Net (HNET=1), ADSL (ADSL=3), or Mobile (MOBA=2), execute net-specific cancellation steps.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (svcSbtCd == SVC_SBT_CD_HNET (1) || svcSbtCd == SVC_SBT_CD_ADSL (3) || svcSbtCd == SVC_SBT_CD_MOBA (2))` |

**Block 16.1** — OPT-IN MAIL CANCELLATION (L1377)

Cancel opt-in mail reception setting (オプションメール受信設定取消).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCancelOptInMail(param, handle, workField)` |

**Block 16.2** — EARLY RETURN ON FAILURE (L1379)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 16.3** — END AGING FOR NET (L1386)

End aging for net services (エンジン使用終了（ネット）).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCloseAgingNet(param, handle, workField, svcSbtCd)` |

**Block 16.4** — EARLY RETURN ON FAILURE (L1388)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 16.5** — ELSE: PHONE SERVICE BRANCH (L1395)

If the service subtype is HTel (4), execute phone-specific cancellation steps.

| # | Type | Code |
|---|------|------|
| 1 | ELSE IF | `else if (svcSbtCd == SVC_SBT_CD_HTEL (4))` |

**Block 16.5.1** — PHONE VLAN ORDER (L1410)

Process phone VLAN order receipt if service contract status is not "010" (STAT_UK_ZUMI).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!STAT_UK_ZUMI ("010").equals(tmpSvcKeiStat))` |
| 2 | SET | `tmpSvcKeiStat = ""` |
| 3 | CALL | `statusCode = callVLANOrderUK(param, handle, workField)` |

**Block 16.5.2** — END AGING FOR PHONE (L1420)

End aging for phone services (エンジン使用終了（電話）).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callCloseAgingTel(param, handle, workField)` |

**Block 16.5.3** — BAMPKOJI CANCELLATION LOOP (L1444)

Loop through SVKEIUW_EOH_TEL list and cancel BmpKoji (Fannbo work case) for each target service where `BMP_UM == "1"` and service contract detail stat is a cancellation target.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashlistSvkeiUwEohTel = (ArrayList) workField.get(SVKEIUW_EOH_TEL = "svkeiuw_eoh_tel")` |
| 2 | FOR | `for (int i = 0; i < inHashlistSvkeiUwEohTel.size(); i++)` |
| 3 | SET | `tmpSvcKeiUcwkStat = (String) inHashlistSvkeiUwEohTel.get(i).get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)` |
| 4 | SET | `tmpBmpUm = (String) inHashlistSvkeiUwEohTel.get(i).get(EKK0191A010CBSMsg1List.BMP_UM)` |

**Block 16.5.3.1** — TARGET SERVICE CHECK (L1452)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (isTrgtBySvcKeiStat(tmpSvcKeiUcwkStat))` |

**Block 16.5.3.2** — BAMPKOJI EXECUTION (L1454)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if ("1".equals(tmpBmpUm))` |
| 2 | SET | `bmp_Telno = (String) inHashlistSvkeiUwEohTel.get(i).get(EKK0191A010CBSMsg1List.TELNO)` |
| 3 | SET | `cancelBmpkjMap = new HashMap<>()` |
| 4 | SET | `cancelBmpkjMap.put(JKKCancelBmpkjConst.SVC_KEI_NO, svc_kei_no)` |
| 5 | SET | `cancelBmpkjMap.put(JKKCancelBmpkjConst.BMP_TELNO, bmp_Telno)` |
| 6 | CALL | `JKKBpCommon.cancelBmpkj(handle, param, fixedText, cancelBmpkjMap)` |

**Block 16.5.4** — PHONE/ CORPORATE ID CODE UPDATE (L1467)

Update phone number and corporate ID codes (電話番号・個人法人番号コードコード更新).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = updTelNokojinHojin(param, handle, workField)` |

**Block 16.5.5** — EARLY RETURN ON FAILURE (L1469)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 17** — SUBMISSION CANCELLATION (L1483)

Cancel the submission (申書キャンセル処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `callCancelMskm(param, handle, workField)` |

**Block 18** — PAYMENT STOP CANCELLATION (L1489)

Update payment stop cancellation table (料金コースコード / 配送阻止取消).

| # | Type | Code |
|---|------|------|
| 1 | SET | `pcrsCd = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.PCRS_CD)` |
| 2 | CALL | `updKktkSvcTblt(handle, param, pcrsCd, svcSbtCd, svc_kei_no, fixedText)` |

**Block 19** — CANCELLATION TARGET CHECK (L1495)

Check if the service contract status requires further cancellation processing. Only proceeds if `isTrgtBySvcKeiStat(tmpSvcKeiStat)` returns true (status is a cancellation target, e.g., not already cancelled/rescinded).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (isTrgtBySvcKeiStat(tmpSvcKeiStat))` |

**Block 19.1** — ALREADY CANCELLED CHECK (L1501)

Skip if status is `STAT_UK_ZUMI` ("010") — already cancelled/rescinded.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!STAT_UK_ZUMI ("010").equals(tmpSvcKeiStat))` |

**Block 19.1.1** — WORK CASE CANCELLATION (L1507)

Execute work case cancellation (工事案件KK実行).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKojiakCC(param, handle, trgt_data, workField)` |

**Block 19.1.2** — LOGISTICS EXECUTION (L1512)

Execute logistics cancellation (物流KK実行).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeButuryuCtrlCC(param, handle, trgt_data, workField)` |

**Block 19.1.3** — NOTICE DOCUMENT REGISTRATION (L1520)

Execute notice document registration (通知書登録KK実行).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeTchishoAddCC(param, handle, trgt_data, workField)` |

**Block 19.1.4** — INSTRUCTION REGISTRATION FOR INSPECTION OK (L1528)

If `SHOSA_DSL_FIN_CD` is NOT `SHOSA_NG` ("2"), register direct instruction (指示書登録).

| # | Type | Code |
|---|------|------|
| 1 | SET | `shosaDslFinCd = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SHOSA_DSL_FIN_CD)` |
| 2 | IF | `if (JKKStrConst.CD00469_1.equals(shosaDslFinCd))` |
| 3 | CALL | `(new JKKAddSjishoCC()).addSjisho(handle, param, SJISHO_MAP)` |

**Block 19.1.5** — SOD FLAG DETERMINATION (L1536)

Set `sodHakkoFlg` based on whether `SHOSA_DSL_FIN_CD` is not `SHOSA_NG` ("2").

| # | Type | Code |
|---|------|------|
| 1 | SET | `sodHakkoFlg = false` |
| 2 | SET | `tmpShosaDslFinCd = (String) eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SHOSA_DSL_FIN_CD)` |

**Block 19.1.5.1** — SOD FLAG SET FROM SHOSA STATUS (L1643)

If `SHOSA_DSL_FIN_CD_SHOSA_NG ("2")` does NOT equal `tmpShosaDslFinCd`, set `sodHakkoFlg = true`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!SHOSA_DSL_FIN_CD_SHOSA_NG ("2").equals(tmpShosaDslFinCd))` |
| 2 | SET | `sodHakkoFlg = true` |

**Block 19.1.6** — SOD ISSUANCE (L1657)

If `sodHakkoFlg` is true, issue SOD (Service Order Data) for the cancellation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (sodHakkoFlg)` |
| 2 | CALL | `executeHakkoSodCC(param, handle, trgt_data, eKK0081A010Hash, svcKeiUcwkDataList, workField)` |

**Block 19.1.7** — TEL SELECT OPTION PACK OPERATE (L1667)

If `svcCd == SVC_CD_TEL ("02")`, execute tel select option pack operations.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (SVC_CD_TEL ("02").equals(svcCd))` |
| 2 | SET | `inHashlist = (ArrayList) workField.get(SVC_KEI_UCWK = "svc_kei_ucwk")` |
| 3 | FOR | `for (int i = 0; i < inHashlist.size(); i++)` |
| 4 | SET | `svc_kei_ucwk_no = (String) inHashlist.get(i).get(EKK0161A010CBSMsg1List.SVC_KEI_UCWK_NO)` |
| 5 | CALL | `executeTelSelectOpPackOperateCC(param, handle, trgt_data, eKK0081A010Hash, svc_kei_ucwk_no, workField)` |

**Block 19.1.8** — DISCOUNT AUTO-APPLY (L1680)

Execute discount auto-application (割引自動適用KK実行).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeWribAutoAplyCC(param, handle, trgt_data, eKK0081A010Hash, workField)` |

**Block 19.1.9** — SET DISCOUNT CHECK (L1690)

Check if discount auto-apply CC returned a net/mobile set discount service code (`WRIB_SVC_CD_NET_MOBSET = "W00000005"`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpSetwribFlg = false` |
| 2 | SET | `wrisvcAutoAplyCC = (HashMap) param.getData("WrisvcAutoAplyCC")` |
| 3 | IF | `if (wrisvcAutoAplyCC != null && size > 0)` |
| 4 | FOR | `for (wrib_svc_kei_grp_list)` then `for (wrib_svc_kei_list)` |
| 5 | IF | `if (JKKSvcConst.WRIB_SVC_CD_NET_MOBSET ("W00000005").equals(wrib_svc_kei.get("wrib_svc_cd")))` |
| 6 | SET | `tmpSetwribFlg = true` |

**Block 19.1.9.1** — SET DISCOUNT + ADVANCE REGISTRATION (L1713)

If `tmpSetwribFlg` is true, set discount info and register advance progress.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (tmpSetwribFlg)` |
| 2 | SET | `workField.put(WRIB_IDO_DIV = "wrib_ido_div", JKKSvcConst.IDO_DIV_WRIBINFOADD)` |
| 3 | SET | `workField.put(WRIB_PRG_STAT = "wrib_prg_stat", JKKSvcConst.PRG_STAT_F051)` |
| 4 | CALL | `statusCode = callAddPrgWrib(param, handle, trgt_data, workField)` |
| 5 | IF | `if (statusCode != STAT_NORMAL) return statusCode;` |
| 6 | SET | `workField.remove(WRIB_IDO_DIV)` |
| 7 | SET | `workField.remove(WRIB_PRG_STAT)` |

**Block 19.1.10** — ADVANCE REGISTRATION (L1730)

Register advance progress (進捗登録).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callAddPrg(param, handle, trgt_data, workField)` |

**Block 19.1.10.1** — EARLY RETURN ON FAILURE (L1732)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (statusCode != STAT_NORMAL)` |
| 2 | RETURN | `return statusCode;` // 失敗 (Failure) |

**Block 19.1.11** — SMART BALANCE DISCREPANCY (L1740)

Register smart balance discrepancy information (スマートバレウ情報登録KK実行).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeSmtvlIdoInfAddCC(param, handle, trgt_data, workField)` |

**Block 19.1.12** — CUSTOMER WITHDRAWAL (L1750)

If `svc_kei_stat` is NOT `CD00037_UK_ZM` ("010"), execute customer withdrawal.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!JKKStrConst.CD00037_UK_ZM ("010").equals(svc_kei_stat))` |
| 2 | CALL | `callCusTaikaiCmnKino(handle, param, sysid, svc_kei_no)` |

**Block 19.1.13** — HOME DEVICE SVC CONTRACT NO UPDATE (L1757)

If `svcCd == SVC_CD_NET ("01")`, update home device SVC contract number.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (SVC_CD_NET ("01").equals(svcCd))` |
| 2 | SET | `ccMap = new HashMap()` |
| 3 | SET | `ccMap.put(JKKTkkkSvKeiNoUpdCC.IN_PARAM_SVC_KEI_NO, eKK0081A010Hash.get(SVC_KEI_NO))` |
| 4 | SET | `ccMap.put(JKKTkkkSvKeiNoUpdCC.IN_PARAM_SYORI_KBN, JKKTkkkSvKeiNoUpdCC.SYORI_KBN_2)` |
| 5 | SET | `ccMap.put(JKKTkkkSvKeiNoUpdCC.IN_PARAM_IDO_DIV, trgt_data.get(REQ_PARAM_IDO_DIV))` |
| 6 | SET | `param.setData("JKKTkkkSvKeiNoUpdCC", ccMap)` |
| 7 | SET | `jKKTkkkSvKeiNoUpdCC = new JKKTkkkSvKeiNoUpdCC()` |
| 8 | CALL | `jKKTkkkSvKeiNoUpdCC.updTkkkSvKeiNo(handle, param, "JKKTkkkSvKeiNoUpdCC")` |

**Block 20** — NETFLIX THIRD-PARTY CONTRACT DISSOLUTION (L1771)

If `svcCd == SVC_CD_NET ("01")`, register Netflix third-party contract dissolution discrepancy notification.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (SVC_CD_NET ("01").equals(svcCd))` |
| 2 | SET | `NetflixCC = new JKKNetflixTajgsKeiIdtslAddCC()` |
| 3 | CALL | `setNetflixCC(param, eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_KEI_NO))` |
| 4 | CALL | `NetflixCC.main(handle, param, "NETFLIXCC")` |

**Block 21** — RETURN STATUS CODE (L1793)

Final return of the status code after all cancellation steps.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return statusCode;` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei` | Field | Service contract — the main telecom service agreement record |
| `svc_kei_ucwk` | Field | Service contract detail — line-item breakdown of a service contract (e.g., individual eo光電話, eo光ネット lines) |
| `svc_kei_no` | Field | Service contract number — unique identifier for a service contract |
| `svc_kei_stat` / `SVC_KEI_STAT` | Field | Service contract status — lifecycle state (e.g., "010" = completed cancellation/rescission) |
| `svcSbtCd` / `SVC_SBT_CD` | Field | Service subtype code — classifies service as HNET(1)=eo光ネット, HTel(4)=eo光電話, MOBA(2)=eoモバイル, ADSL(3)=eoADSL, HTV(5)=eo光TV |
| `svcCd` / `SVC_CD` | Field | Service code — broad category: "01"=Internet, "02"=Phone, "03"=TV |
| `prcGrpCd` / `PRC_GRP_CD` | Field | Price group code — billing plan type (Home Type "02", Meson Type "03", Mansion Type "04", etc.) |
| `SYSID` | Field | System ID — unique system identifier for the customer/account |
| `SHOSA_DSL_FIN_CD` | Field | Inspection DSL finish code — result of inspection/preparation (e.g., "2" = 照査NG = inspection failed) |
| `SHOSA_NG` | Field | Inspection failed — code "2", indicates inspection did not pass, which affects SOD issuance eligibility |
| `STAT_UK_ZUMI` | Field | Cancellation completed — status "010", meaning the service has already been cancelled or rescinded |
| `CD00037_UK_ZM` | Field | Not yet accepted — equivalent to "010", used for customer withdrawal eligibility check |
| `CANCEL_RSN_CD` | Field | Cancel reason code — reason classification for the cancellation |
| `sodHakkoFlg` | Field | SOD issuance flag — when true, triggers Service Order Data issuance |
| SOD | Acronym | Service Order Data — order data issued to downstream systems for service provisioning/change |
| `WRIB_SVC_CD_NET_MOBSET` | Field | Net/Mobile set discount service code — "W00000005", identifies internet/mobile bundle discount |
| `IDO_DIV_WRIBINFOADD` | Field | Progress division: discount info registration — triggers discount-specific processing |
| `PRG_STAT_F051` | Field | Progress status: discount/coupon cancellation completed — "F051" |
| `BMP_UM` | Field | Fannbo presence flag — "1" indicates a Fannbo (番工) telephone number is assigned |
| `BMP_TELNO` | Field | Fannbo telephone number — the phone number associated with a Fannbo work case |
| `cancelBmpkj` | Method | Fannbo work case cancellation — cancels the installation work case for a phone number |
| `setMskmAdd` | Method | Submission registration — registers a cancellation request form (申書) |
| `callCancelMskm` | Method | Submission cancellation — cancels a previously registered submission |
| `addTaiokrk` | Method | History registration — records the cancellation as a history entry |
| `callCancelOpSvcKei` | Method | Option service cancellation — cancels optional services (ISP, Tel) |
| `callCancelSbopSvcKei` | Method | Subscription option cancellation — cancels subscription-level optional services |
| `callCancelKktkSvcKei` | Method | Equipment provision service cancellation — cancels equipment-related services (VDSL, MRT, HGW, TAKINO) |
| `callCancelOptInMail` | Method | Opt-in mail reception cancellation — unsubscribes from opt-in email for net services |
| `callCloseAgingNet` / `callCloseAgingTel` | Method | Aging end — terminates active aging processing for net or phone services |
| `callVLANOrderUK` | Method | Phone VLAN order receipt — processes VLAN assignment order for phone cancellation |
| `updTelNokojinHojin` | Method | Phone/Corporate ID code update — updates phone number and corporate ID codes |
| `updKktkSvcTblt` | Method | Payment stop cancellation — updates payment-related tables for cancellation |
| `executeKojiakCC` | Method | Work case cancellation — executes cancellation of work cases (工事案件) |
| `executeButuryuCtrlCC` | Method | Logistics cancellation — handles logistics-related cancellation processing |
| `executeTchishoAddCC` | Method | Notice document registration — registers cancellation notice documents |
| `executeHakkoSodCC` | Method | SOD issuance — issues Service Order Data for the cancellation |
| `executeTelSelectOpPackOperateCC` | Method | Tel select option pack operation — handles phone-specific option pack operations |
| `executeWribAutoAplyCC` | Method | Discount auto-apply — automatically applies discounts for cancellation scenarios |
| `executeSmtvlIdoInfAddCC` | Method | Smart balance discrepancy registration — registers balance discrepancy info |
| `callCusTaikaiCmnKino` | Method | Customer withdrawal — processes customer withdrawal from the service |
| `JKKTkkkSvKeiNoUpdCC` | Class | Home device SVC contract no. update CC — updates home device service contract numbers |
| `JKKNetflixTajgsKeiIdtslAddCC` | Class | Netflix third-party contract dissolution discrepancy add CC — registers Netflix contract dissolution |
| FTTH | Business term | Fiber To The Home — fiber-optic internet service (eo光ネット) |
| eo光電話 | Business term | eo optical phone — NTT-style telephone service bundled with eo internet |
| eo光ネット | Business term | eo optical net — fiber-optic internet service |
| eoモバイル | Business term | eo Mobile — mobile service offering |
| ISP | Business term | Internet Service Provider — internet connectivity option service |
| VLAN | Business term | Virtual LAN — network segmentation used for phone service VLAN ordering |
| Fannbo (番工) | Business term | Fannbo work — telephone number assignment/installation work case |
| 申書 (Mskm) | Business term | Submission form — the cancellation request form/register document |
| 照査 (Shosa) | Business term | Inspection — preliminary check of the cancellation request; 照査NG means inspection failed |
| 工事案件 (Koji Anken) | Business term | Work case — installation/maintenance work order |
| 物流 (Buturyu) | Business term | Logistics — hardware/device logistics management |
| 通知書 (Tchisho) | Business term | Notice document — official cancellation notification |
| 設定割引 (Set Wrib) | Business term | Set discount — bundled discount for internet/mobile packages |
| 進捗登録 (Shincho Touroku) | Business term | Progress registration — registers the progress status of the cancellation workflow |
| 連携データ (Renkei Data) | Business term | Linkage data — inter-system data synchronization records (partition 02: SYSID assoc, partition 07: contract details) |
| NETFLIXCC | Field | Netflix third-party contract dissolution component — handles Netflix service contract dissolution for net customers |
| STAT_NORMAL | Constant | Normal completion status code — integer 0 |
| TRN_KBN_DEL | Constant | Transaction kind: delete — deletion instruction for linkage data |
| TRN_KBN_UPD | Constant | Transaction kind: update — update instruction for linkage data |
| RENKEI_DATA_KBN_SYSID | Constant | Linkage data classification: SYSID — partition key for SYSID-based linkage records |
| SYORI_KBN_2 | Constant | Processing kind: type 2 — specific processing type for home device SVC contract no update |
