# Business Logic — JKKTvSvcKeiCancelCC.cancel() [86 LOC]

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

## 1. Role

### JKKTvSvcKeiCancelCC.cancel()

This method orchestrates the complete cancellation workflow for a K-Opticom TV service contract line (service detail: `svc_kei`). It is the central business controller that coordinates multiple service components (SCs) and custom components (CCs) to perform a full TV contract cancellation — including state verification, order detail lookup, service contract cancellation execution, discount auto-application, progress tracking, and conditional post-cancellation processing such as customer de-registration and instruction letter issuance.

The method implements a **delegation pattern** with **conditional dispatch** based on the current service contract status. When the contract is in the "confirmed" state (`020`), it branches to search for the associated order details (`execMskm`) before proceeding. When the contract is already in a non-confirmed state (e.g., accepted), it reuses the existing order number from the incoming parameter map. This allows the method to handle both freshly confirmed orders and pre-existing accepted orders in a single entry point.

Additional conditional branches handle business-specific post-cancellation actions: if the contract was confirmed and the movement type is NOT a "relocation/registration" (`ido_div != "00019"`), it triggers the customer common cancellation component (`callCusTaikaiCmnKino`). If an ID notification letter has NOT yet been issued (`ID_TCHISHO_HAK_SKBT_CD != "0"`), it delegates to the instruction letter registration component (`JKKTVSjishoAddCC.mainExecute`). The method serves as a shared utility component called by multiple TV service screens (KKSV0484 and KKSV0729), making it a critical cross-cutting cancellation handler in the eo TV customer core system.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["cancel(params)"])

    START --> A1["Set dataMapKey = fixedText"]
    A1 --> A2["Get ccMsg from param.getData"]
    A2 --> A3["Extract lastUpdDtm from ccMsg"]
    A3 --> A4["Create ServiceComponentRequestInvoker scCall"]
    A4 --> A5["Get opeDate via JPCBPCommon.getOpeDate"]
    A5 --> A6["EKK0081A010 Service Contract Consultation"]
    A6 --> A7["Get curSvcKeiInfo from callSC response"]
    A7 --> A8["Extract curSvcKeiStat from curSvcKeiInfo"]
    A8 --> COND1{"curSvcKeiStat equals 020? (Confirmed)"}

    COND1 -->|Yes| B1["execMskm - Search Order Details"]
    B1 --> B2["Extract mskmNo from EKK0011D020CBSMsg"]
    B2 --> B3["Extract mskmDtlNo from EKK0011D020CBSMsg1List"]

    COND1 -->|No| B4["mskmNo from ccMsg"]
    B4 --> B5["mskmDtlNo from curSvcKeiInfo"]

    B3 --> C1["svcCancel - Service Contract Cancellation"]
    B5 --> C1

    C1 --> C2["execWrisvcAutoAply - Discount Auto Application"]
    C2 --> C3["registProgressInfo - Register 1201 Cancel Complete"]
    C3 --> COND2{"curSvcKeiStat 020 AND ido_div not 00019?"}

    COND2 -->|Yes| D1["callCusTaikaiCmnKino - Customer Cancellation CC"]
    D1 --> D2["EKK0791A010 Price Code Agreement Consultation"]
    COND2 -->|No| D2

    D2 --> COND3{"curSvcKeiStat 020 AND ID Notice Book Issue not 0?"}

    COND3 -->|Yes| E1["Create JKKTVSjishoAddCC"]
    E1 --> E2["Set preSvcStat = curSvcKeiStat"]
    E2 --> E3["jKKTVSjishoAddCC.mainExecute"]
    COND3 -->|No| E4

    E4["Return param"]
    E3 --> E4

    E4 --> END_NODE(["End"])
```

**Processing Steps Explained:**

1. **Initialization**: The method extracts a data map key from the `fixedText` parameter, retrieves the central message map (`ccMsg`) from the request parameter, and extracts the last update datetime stamp. A `ServiceComponentRequestInvoker` is instantiated for SC communication, and the current operation date is fetched.

2. **Service Contract Consultation (EKK0081A010)**: An inquiry is made to retrieve the current state of the service contract line. FUNC_CODE `"2"` indicates a consultation (inquiry) operation. The method extracts the current service contract status (`curSvcKeiStat`) from the response.

3. **Conditional Branch — Order Detail Search**: If the contract status is `"020"` (Confirmed / 照併済), the method calls `execMskm` to search for and register the order details, extracting both the order number (`mskmNo`) and detail number (`mskmDtlNo`). Otherwise (the contract is already in a non-confirmed state, e.g., Accepted), it reuses the pre-existing order number from the parameter map.

4. **Core Cancellation (svcCancel)**: The main service contract cancellation is executed. This internally calls EKK0081C160 (Service Contract Cancellation) to cancel the contract header, then iterates over all sub-lines via EKK0161B004 (Service Contract Detail List) and EKK0161C160 (Service Contract Detail Cancellation), skipping already-cancelled or already-rescinded lines (status `"910"` DSLZUMI or `"920"` CANCELZUMI).

5. **Discount Auto-Application (execWrisvcAutoAply)**: Prepares the discount auto-application work data (setting `add_chge_div` to `"05"`, `mskm_sbt_cd` to `"00020"`, `svc_cancel_rsn_cd` to `"10"`, etc.) and calls `JKKWrisvcAutoAplyCC.execute` to apply applicable discounts to the cancelled contract.

6. **Progress Registration (registProgressInfo)**: Registers the progress information with status code `"1201"` (Cancel Complete). This iterates over the movement list (`ido_list`) and maps movement reason codes — defaulting to `"C6"` when no reason code is present.

7. **Conditional Branch — Customer Cancellation**: If the contract was confirmed and the movement type is NOT relocation/registration (`ido_div != "00019"`), the customer common cancellation component is invoked to handle the customer's account de-registration.

8. **Price Code Agreement Consultation (EKK0791A010)**: An inquiry to retrieve the price code agreement details, used to check whether an ID notification letter was issued.

9. **Conditional Branch — Instruction Letter Issuance**: If the contract was confirmed AND the ID notification letter issue identification code is not `"0"` (i.e., it was NOT issued), the instruction letter registration component is called to generate and register the notification letter.

10. **Return**: The original request parameter object is returned with all data populated.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle providing transaction context and database connectivity for SC calls. It carries the connection state, transaction boundaries, and session-level metadata used throughout the cancellation workflow. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter container holding the business data map keyed by `fixedText`. Contains fields such as `svc_kei_no` (service detail number), `lastUpdDtm` (last update datetime), `mskm_no` (order number), `func_code` (function code), `ido_div` (movement type), `sysid` (system ID), and `ido_list` (movement detail list). Acts as both input carrier and output accumulator. |
| 3 | `fixedText` | `String` | Used as the data map key to retrieve the central business message (`ccMsg`) from the parameter container. Typically corresponds to a screen-specific message key (e.g., `"KKSV048401CC"` or `"KKSV072916CC"`). Maps to the correct business context across different calling screens. |

**External state / instance fields read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `TEMPLATE_ID_EKK0081A010` | `String` (constant) | Template ID for Service Contract Consultation SC |
| `TEMPLATE_ID_EKK0791A010` | `String` (constant) | Template ID for Price Code Agreement Consultation SC |
| (Private helper methods) | — | `callSC`, `execMskm`, `svcCancel`, `execWrisvcAutoAply`, `registProgressInfo`, `callCusTaikaiCmnKino` — all called as delegated service methods |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `EKK0081A010CBS (callSC)` | EKK0081A010SC | KK_T_SVC_KEI (Service Contract Header) | Consult current service contract state via `callSC` — retrieves `svc_kei_stat`, `svc_kei_no`, `pcrs_cd`, `mskm_dtl_no` |
| R | `execMskm (callSC)` | EKK0011D020SC | KK_T_MSKM (Order Details), KK_T_MSKM_DTL (Order Detail Lines) | Search and register order details — extracts `mskm_no` and `mskm_dtl_no` for confirmed contracts |
| R | `svcCancel` (internal) | EKK0081C160SC | KK_T_SVC_KEI (Service Contract Header) | Execute service contract cancellation — sets cancel reason code `"01"`, updates cancel datetime |
| R | `svcCancel` (internal) | EKK0161B004SC | KK_T_SVC_KEI_UCWK (Service Contract Lines) | Retrieve all service contract lines (detail items) for cancellation processing |
| R | `svcCancel` (internal) | EKK0161C160SC | KK_T_SVC_KEI_UCWK (Service Contract Lines) | Cancel individual service contract lines — skips lines already in DSLZUMI ("910") or CANCELZUMI ("920") state |
| R | `svcCancel` (internal) | EKK0081B035SC | KK_T_SVC_KEI_HST (Service Contract History) | Service contract history consultation (changed from EKK0081B011 in v5.00.00) |
| R | `svcCancel` (internal) | EKK0021C060SC | KK_T_MSKM (Order Details) | Order detail consultation |
| R | `svcCancel` (internal) | EKK0011C060SC | KK_T_MSKM (Order Details) | Order detail consultation |
| R | `svcCancel` (internal) | EKK0011B020SC | KK_T_MSKM (Order Details) | Order detail inquiry |
| R | `svcCancel` (internal) | EKK0341B501SC | (Discount/Service rate related) | Service contract history / discount-related consultation |
| R | `svcCancel` (internal) | EKK0351B002SC | (Discount rate related) | Discount rate consultation |
| R | `svcCancel` (internal) | EKK0341C330SC | (Discount rate related) | Discount rate cancellation |
| R | `svcCancel` (internal) | EKK0351C220SC | (Discount rate related) | Discount rate cancellation (detail) |
| R | `svcCancel` (internal) | EKK0241B001SC | (Discount service related) | Discount service consultation |
| R | `svcCancel` (internal) | EKK0341B504SC | (Discount service related) | Discount service cancellation |
| R | `svcCancel` (internal) | EKK0251C070SC | (Discount cancellation related) | Discount cancellation |
| R | `svcCancel` (internal) | EKK0021C070SC | (Discount cancellation related) | Discount service cancellation |
| R | `svcCancel` (internal) | EKK0011C060SC | KK_T_MSKM (Order Details) | Order detail consultation for discount processing |
| R | `svcCancel` (internal) | EKK0011B020SC | KK_T_MSKM (Order Details) | Order detail inquiry for discount processing |
| - | `execWrisvcAutoAply` | JKKWrisvcAutoAplyCC | KK_T_WRISVC_AUTO_APPLY, KK_T_SVC_KEI, KK_T_SVC_KEI_UCWK | Auto-apply discounts to cancelled contract — sets `add_chge_div="05"`, `mskm_sbt_cd="00020"`, `svc_cancel_rsn_cd="10"`, `grp_div="00"`, `tg_kei_skbt_cd="01"` |
| R | `registProgressInfo` | EKK1091D010SC | KK_T_PRGS (Progress Information) | Register cancellation completion progress (status `"1201"`) — iterates `ido_list` to write movement reason codes and memos |
| R | `callCusTaikaiCmnKino` | JKKCusTaikaiCmnKinoCC | KK_T_CUS (Customer), KK_T_CUS_REL (Customer Relations) | Customer common cancellation — handles account de-registration when movement is NOT relocation/registration |
| R | `EKK0791A010CBS (callSC)` | EKK0791A010SC | KK_T_PCRS (Price Code Agreement) | Consult price code agreement details — retrieves `ID_TCHISHO_HAK_SKBT_CD` (ID notification letter issue identification code) |
| - | `JKKTVSjishoAddCC.mainExecute` | JKKTVSjishoAddCC | KK_T_TCHISHO_HAKKO (Instruction Letter Issue) | Instruction letter registration — registers ID notification letter when not previously issued |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0484 (TV Service Contract Change Screen) | `KKSV0484OPOperation.target3` (CCRequestBroker) -> `JKKTvSvcKeiCancelCC.cancel` | EKK0081A010 [R] KK_T_SVC_KEI, EKK0081C160 [U] KK_T_SVC_KEI, EKK0161B004 [R] KK_T_SVC_KEI_UCWK, EKK0161C160 [U] KK_T_SVC_KEI_UCWK, EKK1091D010 [C] KK_T_PRGS, EKK0791A010 [R] KK_T_PCRS |
| 2 | Screen:KKSV0729 (TV Service Contract Screen) | `KKSV0729OPOperation.target3f` (CCRequestBroker) -> `JKKTvSvcKeiCancelCC.cancel` | EKK0081A010 [R] KK_T_SVC_KEI, EKK0081C160 [U] KK_T_SVC_KEI, EKK0161B004 [R] KK_T_SVC_KEI_UCWK, EKK0161C160 [U] KK_T_SVC_KEI_UCWK, EKK1091D010 [C] KK_T_PRGS, EKK0791A010 [R] KK_T_PCRS |

**Notes:**
- KKSV0484 uses the CC message key `"KKSV048401CC"` and the default exception judge class `DefaultCCExceptionJudge`.
- KKSV0729 uses the CC message key `"KKSV072916CC"` and the default exception judge class `DefaultCCExceptionJudge`.
- Both screens are TV service contract management screens — one for contract changes, the other for general contract operations.

## 6. Per-Branch Detail Blocks

**Block 1** — SET `(Initialization)` (L152)

> Initialize working variables and create the service component request invoker.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMapKey = fixedText` // data map key derived from fixedText param |
| 2 | EXEC | `ccMsg = (HashMap<String, Object>)param.getData(dataMapKey)` // retrieve central message map |
| 3 | SET | `lastUpdDtm = (String) ccMsg.get("lastUpdDtm")` // last update datetime stamp |
| 4 | SET | `scCall = new ServiceComponentRequestInvoker()` // SC invocation instance (ログに出すクラス名を引数に設定。空文字を設定した場合ログに出されない) |
| 5 | SET | `opeDate = JPCBPCommon.getOpeDate(null)` // operation date for the session |

**Block 2** — CALL `(EKK0081A010 - Service Contract Consultation)` (L173)

> Consult current service contract state to determine the current status before cancellation. FUNC_CODE `"2"` indicates inquiry mode.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0081a010IN = new CAANMsg(EKK0081A010CBSMsg.class.getName())` // input message for EKK0081A010 |
| 2 | SET | `ekk0081a010IN.set(EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010)` // Template ID: `EKK0081A010` |
| 3 | SET | `ekk0081a010IN.set(EKK0081A010CBSMsg.FUNC_CODE, "2")` // FUNC_CODE: `"2"` (Inquiry/Consultation) |
| 4 | SET | `ekk0081a010IN.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, ccMsg.get("svc_kei_no"))` // service detail number |
| 5 | SET | `ekk0081a010IN.set(EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, "")` // gene add datetime — empty |
| 6 | SET | `ekk0081a010IN.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, opeDate)` // reservation application date |
| 7 | CALL | `curSvcKeiInfo = callSC(handle, scCall, param, dataMapKey, ekk0081a010IN).getCAANMsgList(...)[0]` // get current service contract info |
| 8 | SET | `curSvcKeiStat = curSvcKeiInfo.getString(EKK0081A010CBSMsg1List.SVC_KEI_STAT)` // current service contract status |

**Block 3** — IF/ELSE `[curSvcKeiStat = "020"] (Confirmed)` (L182)

> Branch based on the current service contract status. "020" means Confirmed (照併済) — the order has been confirmed but not yet accepted. This branch searches for and retrieves order details.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmNo = ""` // initialize cancel number |
| 2 | SET | `mskmDtlNo = ""` // initialize cancel detail number |
| 3 | CALL | `mskmInfo = execMskm(handle, scCall, param, dataMapKey)` // search order details (照併済の場合 -> 申込内容承認登録処理) |
| 4 | SET | `mskmNo = mskmInfo.getString(EKK0011D020CBSMsg.MSKM_NO)` // extract order number from result |
| 5 | SET | `mskmDtlNo = mskmInfo.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST)[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO)` // extract order detail number |

**Block 3.1** — ELSE `[curSvcKeiStat != "020"]` (L194)

> The contract is already in a non-confirmed state (e.g., Accepted). Reuse pre-existing order numbers from the parameter map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmNo = (String)ccMsg.get("mskm_no")` // reuse cancel number from initial processing (初期処理で取得した「申込番号」) |
| 2 | SET | `mskmDtlNo = curSvcKeiInfo.getString(EKK0081A010CBSMsg1List.MSKM_DTL_NO)` // extract from consulted info |

**Block 4** — CALL `(svcCancel)` (L202)

> Execute the core service contract cancellation logic. This is a delegated private method that handles multi-layer cancellation:
> - Calls EKK0081C160 to cancel the service contract header (SVC_CANCEL_RSN_CD = `"01"`)
> - Calls EKK0161B004 to retrieve all service contract lines
> - Iterates over each line, skipping already-cancelled (`"910"` DSLZUMI) or already-rescinded (`"920"` CANCELZUMI) lines, and calls EKK0161C160 to cancel each active line
> - Handles discount rate cancellation via multiple SCs (EKK0081B035, EKK0021C060, EKK0011C060, EKK0011B020, EKK0341B501, EKK0351B002, EKK0341C330, EKK0351C220, EKK0241B001, EKK0341B504, EKK0251C070, EKK0021C070)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svcCancel(handle, scCall, param, dataMapKey, mskmNo, mskmDtlNo, lastUpdDtm, curSvcKeiStat)` // perform cancellation (キャンセルを行う) |

**Block 5** — CALL `(execWrisvcAutoAply)` (L205)

> Apply applicable discounts to the cancelled contract. Builds a work data map with cancel reason code `"10"`, adds contract header info (sysid, svc_kei_no, svc_kei_stat, svc_cd, prc_grp_cd, pcrs_cd, pplan_cd, svc_endymd, svc_chrg_endymd), then delegates to `JKKWrisvcAutoAplyCC.execute`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execWrisvcAutoAply(handle, param, curSvcKeiInfo, dataMapKey, mskmNo)` // discount auto-application (割引自動適用) |

**Block 6** — CALL `(registProgressInfo)` (L208)

> Register the cancellation completion progress. Status code `"1201"` means Cancel Complete (キャンセル完了). Iterates over `ido_list` to write movement reason codes (defaulting to `"C6"` when null) and movement reason memos.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `registProgressInfo(handle, scCall, param, dataMapKey, mskmDtlNo, "1201")` // register progress (進捗の登録) |

**Block 7** — IF `(Customer Cancellation Conditional)` (L211)

> Conditional branch: invoke customer common cancellation if the contract was confirmed AND the movement type is NOT relocation/registration.

| # | Type | Code |
|---|------|------|
| 1 | COND | `"020".equals(curSvcKeiStat)` // was confirmed (照併済) |
| 2 | COND | `!"00019".equals(ccMsg.get("ido_div"))` // NOT relocation/registration (住所変更・登録) |
| 3 | IF TRUE | `callCusTaikaiCmnKino(handle, param, dataMapKey)` // customer cancellation CC (お客様退会CC) |

**Block 8** — CALL `(EKK0791A010 - Price Code Agreement Consultation)` (L216)

> Consult price code agreement to check whether an ID notification letter was previously issued. FUNC_CODE `"2"` indicates inquiry mode. Uses `pcrs_cd` from the service contract info and the current operation date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0791a010IN = new CAANMsg(EKK0791A010CBSMsg.class.getName())` |
| 2 | SET | `ekk0791a010IN.set(EKK0791A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0791A010)` // Template ID: `EKK0791A010` |
| 3 | SET | `ekk0791a010IN.set(EKK0791A010CBSMsg.FUNC_CODE, "2")` // FUNC_CODE: `"2"` (Inquiry) |
| 4 | SET | `ekk0791a010IN.set(EKK0791A010CBSMsg.KEY_PCRS_CD, curSvcKeiInfo.getString(EKK0081A010CBSMsg1List.PCRS_CD))` // price code |
| 5 | SET | `ekk0791a010IN.set(EKK0791A010CBSMsg.KEY_RSV_APLY_YMD, opeDate)` // reservation application date |
| 6 | CALL | `ekk0791a010OUT = callSC(handle, scCall, param, dataMapKey, ekk0791a010IN).getCAANMsgList(...)` // get price code agreement result |

**Block 9** — IF `(Instruction Letter Issuance Conditional)` (L224)

> Conditional branch: issue an instruction letter (ID notification letter) if the contract was confirmed and the ID notification letter was NOT previously issued. This is a v5.00.01 addition (IT1-2013-0000643).

| # | Type | Code |
|---|------|------|
| 1 | COND | `"020".equals(curSvcKeiStat)` // was confirmed (照併済) |
| 2 | COND | `!"0".equals(ekk0791a010OUT[0].getString(EKK0791A010CBSMsg1List.ID_TCHISHO_HAK_SKBT_CD))` // ID notification letter issue code is NOT `"0"` (発行なし) |
| 3 | IF TRUE | `jKKTVSjishoAddCC = new JKKTVSjishoAddCC()` // create instruction letter registration component |
| 4 | SET | `ccMsg.put("preSvcStat", curSvcKeiStat)` // set previous status for downstream processing |
| 5 | CALL | `jKKTVSjishoAddCC.mainExecute(handle, param, fixedText)` // register instruction letter (指示書登録CC) |

**Block 10** — RETURN `(Return)` (L232)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` // return the populated parameter object |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service detail number — unique identifier for a TV service contract line item within a customer agreement |
| `svc_kei_stat` | Field | Service contract status — current state of the service detail: `"020"` = Confirmed (照併済), `"910"` = Rescinded (解消済), `"920"` = Cancelled (キャンセル済) |
| `mskm_no` | Field | Order number (申込番号) — the primary key for an order record in the system |
| `mskm_dtl_no` | Field | Order detail number (申込詳細番号) — line-item identifier within an order |
| `mskm_sbt_cd` | Field | Order type code (申込種類コード) — classifies the nature of the order; `"00020"` = Service cancellation order |
| `lastUpdDtm` | Field | Last update datetime (更新年月日时分秒) — timestamp used for optimistic concurrency control |
| `ido_div` | Field | Movement type (異動区分) — classifies the type of customer change; `"00019"` = Relocation/Registration (住所変更・登録) |
| `ido_rsn_cd` | Field | Movement reason code (異動理由コード) — explains why a customer moved/changed |
| `ido_rsn_memo` | Field | Movement reason memo (異動理由メモ) — free-text explanation for the movement |
| `ido_list` | Field | Movement detail list — array of movement reason objects containing reason codes and memos |
| `preSvcStat` | Field | Previous service status — used to preserve the prior state when branching to sub-components (e.g., instruction letter issuance) |
| `func_code` | Field | Function code (機能コード) — identifies which screen/function invoked the cancellation |
| `sysid` | Field | System ID — identifies the originating subsystem in the multi-system architecture |
| `add_chge_div` | Field | Registration/change classification (登録変更区分) — `"05"` indicates cancellation-related change |
| `grp_div` | Field | Group classification (グルーピング区分) — `"00"` = standard group |
| `tg_kei_skbt_cd` | Field | Target contract identification code (対象契約識別コード) — `"01"` = primary contract |
| `svc_cancel_rsn_cd` | Field | Service cancellation reason code (キャンセル理由コード) — `"10"` = cancellation via this component |
| `prc_grp_cd` | Field | Price group code (料金グループコード) — groups pricing plans |
| `pcrs_cd` | Field | Price code (料金コード) — identifies the price plan/agreement |
| `pplan_cd` | Field | Price plan code (料金プランコード) — specific pricing tier within a price code |
| `svc_endymd` | Field | Service end date (サービス終了年月日) — when the service contract terminates |
| `svc_chrg_endymd` | Field | Service charge end date (サービス課金終了年月日) — when billing for the service ends |
| `ID_TCHISHO_HAK_SKBT_CD` | Field | ID notification letter issue identification code (ID通知書発行識別コード) — `"0"` = not issued (発行なし) |
| `SVC_KEI_UCWK_STAT` | Field | Service contract line status — `"910"` = DSLZUMI (解消済/rescinded), `"920"` = CANCELZUMI (キャンセル済/cancelled) |
| `PRGS_STAT` | Field | Progress status (進捗状況) — `"1201"` = Cancel Complete (キャンセル完了) |
| `TEMPLATE_ID_*` | Constant | Template ID string passed to CBS/SC calls to identify the message format version |
| JPCBPCommon.getOpeDate | Method | Retrieves the current operational date from the system session |
| callSC | Method | Shared service component invocation delegate — constructs CAANMsg and dispatches via the ServiceComponentRequestInvoker |
| execMskm | Method | Searches and registers order details when the contract status is "020" (Confirmed) — calls EKK0011D020CBS |
| svcCancel | Method | Core cancellation engine — handles contract header cancellation (EKK0081C160), detail line cancellation (EKK0161C160), and discount rate cancellation |
| execWrisvcAutoAply | Method | Prepares and dispatches discount auto-application work data to JKKWrisvcAutoAplyCC |
| registProgressInfo | Method | Registers cancellation completion progress in the progress table (KK_T_PRGS) |
| callCusTaikaiCmnKino | Method | Customer common cancellation — handles customer account de-registration |
| EKK0081A010 | SC Code | Service Contract Consultation (サービス契約照会) — consults service contract header state |
| EKK0081C160 | SC Code | Service Contract Cancellation (サービス契約キャンセル) — cancels the service contract header |
| EKK0161B004 | SC Code | Service Contract Detail List (サービス契約内容一覧照会) — retrieves all service contract line items |
| EKK0161C160 | SC Code | Service Contract Detail Cancellation (サービス契約内容キャンセル) — cancels individual service contract lines |
| EKK0011D020 | SC Code | Order Detail Search/Registration (申込詳細検索登録) — searches and registers order details |
| EKK0791A010 | SC Code | Price Code Agreement Consultation (料金コース照会) — consults price code agreement and ID notification letter status |
| EKK1091D010 | SC Code | Progress Information Registration (進捗情報登録) — registers processing progress |
| KKSV0484 | Screen | TV Service Contract Change Screen — one of the entry points for cancellation |
| KKSV0729 | Screen | TV Service Contract Screen — another entry point for cancellation operations |
| KK_T_SVC_KEI | Table | Service Contract Header table — stores service contract line items |
| KK_T_SVC_KEI_UCWK | Table | Service Contract Line table — stores individual contract detail items (lines) |
| KK_T_MSKM | Table | Order Details table — stores order records |
| KK_T_MSKM_DTL | Table | Order Detail Lines table — stores order line items |
| KK_T_PCRS | Table | Price Code Agreement table — stores pricing agreements |
| KK_T_PRGS | Table | Progress Information table — tracks processing status |
| KK_T_CUS | Table | Customer table — customer master data |
| KK_T_CUS_REL | Table | Customer Relations table — customer relationship data |
| KK_T_TCHISHO_HAKKO | Table | Instruction Letter Issue table — stores notification letter records |
| EO Light TV | Business term | eo光テレビ — K-Opticom's fiber-optic television service (FTTH-based) |
| FTTH | Business term | Fiber To The Home — fiber-optic internet delivery technology used by K-Opticom |
| CC | Acronym | Common Component — shared business logic component in the Fujitsu Futurity framework |
| SC | Acronym | Service Component — thin service-layer component wrapping CBS (business logic) |
| CBS | Acronym | Core Business System — backend business logic execution unit |
| CAANMsg | Acronym | Communication Abstract Application Network Message — message wrapper for SC/CBS communication |
| ServiceComponentRequestInvoker | Class | Framework class that encapsulates SC invocation and log output of the called class name |
