# Business Logic — JBSbatKKSkaWrkCnclProc.execute() [105 LOC]

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

## 1. Role

### JBSbatKKSkaWrkCnclProc.execute()

This method implements the **Skapa (Suka-paa) Work Cancellation** (スカパー工事取消処理) process — a batch routine that cancels scheduled installation/skylark work orders for Skapa (a satellite TV service provided by K-Opticom). The method performs a two-phase cancellation flow: first it processes **temporary reservation data** (IDO_RSV — 異動予約, lines 115–175) to validate and update CAS (Card Administration System) information, then fetches linked Operation Service Contract (OP_SVC_KEI) records and inserts cancellation entries for any contracts that are not already in a terminated or cancelled state. After committing the temporary reservation changes, it processes the **non-temporary reservation data** (IDO_RSV records matched via SQL key KK_SELECT_114) through the same CAS check-and-update workflow.

The method implements a **delegation pattern**: it delegates CAS validation to `execSvc()` which communicates with the Skapa Key Information Operation CC service (`KKSV1053`), and it delegates Operation Service Contract insertion to `insertOpsvckei()`. All database access is performed through `JBSbatSQLAccess` wrappers using predefined SQL keys.

The method is a **batch entry point** called by the batch framework. It returns `null` upon completion (success is indicated by absence of exception and `commonItem.setErrFlg(true)` on error).

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute(inMap)"])

    START --> LOG_START["printDebugLog START"]
    LOG_START --> NEW_MAP_1["New JBSbatCommonDBInterface idoDivDataMap_115"]
    NEW_MAP_1 --> GET_IDO_RSV_NO["Get IDO_RSV_NO from inMap"]
    GET_IDO_RSV_NO --> SELECT_115["executeKK_T_IDO_RSV_KK_SELECT_115(keyParam)"]
    SELECT_115 --> SELECT_NEXT_115["db_KK_T_IDO_RSV.selectNext()"]

    SELECT_NEXT_115 --> COND_115{idoDivDataMap_115 != null}

    COND_115 -->|true| EXTRACT_115["Extract: idoDiv, mskmDtlNo, svcKeiNo"]
    EXTRACT_115 --> CHK_CAS["execSvc(FUNC_CD_CHK, SHORI_CD_CRS_CHG_CL, idoDivDataMap)"]

    CHK_CAS --> CHK_RESULT{execSvc Check returns true}

    CHK_RESULT -->|true| UPD_CAS["execSvc(FUNC_CD_UPD, SHORI_CD_CRS_CHG_CL, idoDivDataMap)"]
    CHK_RESULT -->|false| COMMIT_1["commonItem.getConnection().commit()"]

    UPD_CAS --> UPD_RESULT{execSvc Update returns true}

    UPD_RESULT -->|true| NEW_MAP_CAS["New JBSbatCommonDBInterface casCdKnriMap"]
    UPD_RESULT -->|false| COMMIT_1

    NEW_MAP_CAS --> SELECT_005["executeKK_T_CASCD_KNRI_KK_SELECT_005(casCdKnriParam)"]
    SELECT_005 --> SELECT_NEXT_CAS["db_KK_T_CASCD_KNRI.selectNext()"]

    SELECT_NEXT_CAS --> WHILE_CAS{casCdKnriMap != null}

    WHILE_CAS -->|true| GET_OP_SVC["Get opSvcKeiNo from CAS result"]
    GET_OP_SVC --> SELECT_094["executeKK_T_OP_SVC_KEI_KK_SELECT_094(whereParam)"]
    SELECT_094 --> SELECT_NEXT_094["db_KK_T_OP_SVC_KEI_094.selectNext()"]

    SELECT_NEXT_094 --> COND_OPSVC{opSvcKeiMap != null}

    COND_OPSVC -->|true| PK_SELECT["executeKK_T_OP_SVC_KEI_PKSELECT(pkParam)"]
    PK_SELECT --> COND_STAT{OP_SVC_KEI_STAT != 910 AND != 920}

    COND_STAT -->|true| INSERT_OPSVC["insertOpsvckei(opSvcKeiMapPk, opeDate, idoDiv, mskmDtlNo)"]
    COND_STAT -->|false| FETCH_NEXT_CAS["casCdKnriMap = selectNext()"]

    INSERT_OPSVC --> FETCH_NEXT_CAS
    FETCH_NEXT_CAS --> WHILE_CAS_LOOP["casCdKnriMap = selectNext()"]
    WHILE_CAS_LOOP --> WHILE_CAS

    WHILE_CAS -->|false| COMMIT_1

    COMMIT_1 --> NEW_MAP_2["New JBSbatCommonDBInterface idoDivDataMap_114"]
    NEW_MAP_2 --> SELECT_114["executeKK_T_IDO_RSV_KK_SELECT_114(keyParam)"]
    SELECT_114 --> SELECT_NEXT_114["db_KK_T_IDO_RSV.selectNext()"]

    SELECT_NEXT_114 --> COND_114{idoDivDataMap_114 != null}

    COND_114 -->|true| CHK_CAS_2["execSvc(FUNC_CD_CHK, SHORI_CD_CRS_CHG_CL, idoDivDataMap)"]
    COND_114 -->|false| LOG_END

    CHK_CAS_2 --> CHK_RESULT_2{execSvc Check returns true}

    CHK_RESULT_2 -->|true| UPD_CAS_2["execSvc(FUNC_CD_UPD, SHORI_CD_CRS_CHG_CL, idoDivDataMap)"]
    CHK_RESULT_2 -->|false| LOG_END

    UPD_CAS_2 --> LOG_END["printDebugLog END"]

    LOG_END --> RETURN_NULL["return null"]
    RETURN_NULL --> END_NODE(["Return"])
```

**Constants resolved:**

| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `FUNC_CD_UPD` | `"1"` | Function code for update operations |
| `FUNC_CD_CHK` | `"2"` | Function code for check-only operations |
| `SHORI_CD_CRS_CHG_CL` | `"3"` | Process code: Cross Change Cancellation (コース変更取消) |
| `OP_SVC_STAT_DSLZUMI` | `"910"` | Operation service contract status: Terminated (解約済) |
| `OP_SVC_STAT_CANCELZUMI` | `"920"` | Operation service contract status: Cancelled (キャンセル済) |
| `SVC_KEI_STAT_DLS_ZM` | `"910"` | Service contract detail status: Terminated (解約済) |
| `PLAN_END_SBT_CD_PLANCHG` | `"1"` | Plan end type code: Plan change (プラン変更による終了) |
| `CD00343_2` | `"2"` | Reservation application code: Reservation confirmed (予約確定) |
| `CD00879_TUJYO_DSL` | `"01"` | Service cancellation reason: Normal cancellation (通常解約) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message carrying the **temporary reservation number** (`IDO_RSV_NO`) — the identifier for a scheduled Skapa installation/skylark work order. Used as the primary key to query the `KK_T_IDO_RSV` table for the 115 SQL key (temporary reservation master). |

**Instance fields / external state read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `opeDate` | `String` | Operating date — the business date used for plan end dates and service end dates in the cancellation record |
| `batchUserId` | `String` (inherited) | Batch operator user ID — recorded as the add/update operator account on inserted records |
| `commonItem` | `JBSbatCommonItem` (inherited) | Common batch item context — provides DB connection for commit |
| `logPrint` | `DebugLog` (inherited) | Debug log handler |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `executeKK_T_IDO_RSV_KK_SELECT_115(Object[])` | - | KK_T_IDO_RSV | Reads temporary reservation data from the **Temporary Reservation** (異動予約) table using SQL key KK_SELECT_115, queried by IDO_RSV_NO (temporary reservation number) |
| C/R | `execSvc(String, String, JBSbatCommonDBInterface)` | - | CAS (external service via KKSV1053) | Invokes the Skapa Key Information Operation CC service (`KKSV1053`) to perform CAS (Card Administration System) check and update operations. Internally calls `JCCBatchEsbInterface.invokeService()` with function code and process code |
| R | `executeKK_T_CASCD_KNRI_KK_SELECT_005(Object[])` | - | KK_T_CASCD_KNRI | Reads **CAS Card Management** (CASカード管理) records linked to a service contract number (SVC_KEI_NO) using SQL key KK_SELECT_005. Returns multiple CAS card entries in a loop |
| R | `executeKK_T_OP_SVC_KEI_KK_SELECT_094(Object[])` | - | KK_T_OP_SVC_KEI | Reads **Operation Service Contract** (オペレーションサービス契約) data by key (opSvcKeiNo + reservation application date) using SQL key KK_SELECT_094 |
| R | `executeKK_T_OP_SVC_KEI_PKSELECT(Object[])` | - | KK_T_OP_SVC_KEI | Performs a **primary key lookup** on the Operation Service Contract table using OP_SVC_KEI_NO and GENE_ADD_DTM as composite key fields |
| C | `insertOpsvckei(JBSbatCommonDBInterface, String, String, String)` | - | KK_T_OP_SVC_KEI | Inserts a new **Operation Service Contract** record with cancellation data: sets status to `910` (Terminated), application code to `2` (Reservation Confirmed), plan end type to `1` (Plan Change End), and cancellation reason to `01` (Normal Cancellation). Writes all 79 fields via `insertByPrimaryKeys` |
| - | `commonItem.getConnection().commit()` | - | - | Commits the transaction at the database level after successful CAS update and Operation Service Contract cancellation insertion |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: `JBSbatKKSkaWrkCnclProc` (self-invoked via batch framework) | `initial(commonItem)` -> `execute(inMap)` | `executeKK_T_IDO_RSV_KK_SELECT_115 [R] KK_T_IDO_RSV`, `execSvc [C/R] CAS(KKSV1053)`, `executeKK_T_CASCD_KNRI_KK_SELECT_005 [R] KK_T_CASCD_KNRI`, `executeKK_T_OP_SVC_KEI_KK_SELECT_094 [R] KK_T_OP_SVC_KEI`, `executeKK_T_OP_SVC_KEI_PKSELECT [R] KK_T_OP_SVC_KEI`, `insertOpsvckei [C] KK_T_OP_SVC_KEI`, `commit []` |

**Note:** This method is only referenced within its own class file. It is a batch entry point invoked by the batch framework (not called directly by any other application class in the codebase).

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] `(Initialize debug log and temporary reservation map)` (L117)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.logPrint.printDebugLog("execute_START")` // Entry debug log |
| 2 | SET | `idoDivDataMap_115 = new JBSbatCommonDBInterface()` // SQL execution result map (temporary reservation schema acquisition) |
| 3 | SET | `keyParam = {inMap.getString(JBSbatKKIFM151.IDO_RSV_NO)}` // Temporary reservation number from input |

**Block 2** — [CALL] `(Query temporary reservation data — SQL key KK_SELECT_115)` (L122)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_115(keyParam)` // Query KK_T_IDO_RSV by IDO_RSV_NO using SQL key KK_SELECT_115 |
| 2 | SET | `idoDivDataMap_115 = db_KK_T_IDO_RSV.selectNext()` // Fetch first result row |

**Block 3** — [IF] `(Temporary reservation data exists)` `(idoDivDataMap_115 != null)` (L124)

> If the temporary reservation record is found, proceed with CAS validation and Operation Service Contract cancellation processing.

**Block 3.1** — [SET] `(Extract reservation data fields)` (L127–131)

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoDiv = idoDivDataMap_115.getString(JBSbatKK_T_IDO_RSV.IDO_DIV)` // Installation division (工事区分) |
| 2 | SET | `mskmDtlNo = idoDivDataMap_115.getString(JBSbatKK_T_IDO_RSV.MSKM_DTL_NO)` // Application detail number (申込み詳細番号) |
| 3 | SET | `svcKeiNo = idoDivDataMap_115.getString(JBSbatKK_T_IDO_RSV.SVC_KEI_NO)` // Service contract number (サービス契約番号) |

**Block 3.2** — [CALL] `(CAS information check)` (L133)

| # | Type | Code |
|---|------|------|
| 1 | SET | `result = execSvc(FUNC_CD_CHK, SHORI_CD_CRS_CHG_CL, idoDivDataMap)` // Check CAS information — FUNC_CD_CHK = "2" (check only), SHORI_CD_CRS_CHG_CL = "3" (cross change cancellation) |
| 2 | CALLOUT | `execSvc` internally: builds paramMap with `TELEGRAM_INFO_USECASE_ID = "KKSV1053"`, `TELEGRAM_INFO_OPERATION_ID = "KKSV1053OP"`. Constructs `KKSV1053DataMap` with `func_cd`, `shori_cd`, `svc_kei_no`, `old_pcrs`, `new_pcrs` (swapped). Calls `JCCBatchEsbInterface.invokeService()`. Returns `true` if no error code and return code is success. |

**Block 3.3** — [IF] `(CAS check passed)` `(result == true)` (L135)

> If CAS check succeeds, proceed to update CAS information.

**Block 3.3.1** — [CALL] `(CAS information update)` (L137)

| # | Type | Code |
|---|------|------|
| 1 | SET | `result = execSvc(FUNC_CD_UPD, SHORI_CD_CRS_CHG_CL, idoDivDataMap)` // Update CAS information — FUNC_CD_UPD = "1" (update), SHORI_CD_CRS_CHG_CL = "3" |

**Block 3.3.2** — [IF] `(CAS update succeeded)` `(result == true)` (L139)

> If CAS update succeeds, proceed to cancel linked Operation Service Contracts.

**Block 3.3.2.1** — [SET] `(Initialize CAS card management query)` (L142–144)

| # | Type | Code |
|---|------|------|
| 1 | SET | `casCdKnriMap = new JBSbatCommonDBInterface()` // SQL execution result map (CAS card management) |
| 2 | SET | `casCdKnriParam = {svcKeiNo}` // Query parameter: service contract number |

**Block 3.3.2.2** — [CALL] `(Query CAS card management records)` (L147)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_CASCD_KNRI_KK_SELECT_005(casCdKnriParam)` // Query KK_T_CASCD_KNRI by SVC_KEI_NO using SQL key KK_SELECT_005 |
| 2 | SET | `casCdKnriMap = db_KK_T_CASCD_KNRI.selectNext()` // Fetch first CAS card management record |

**Block 3.3.2.3** — [WHILE] `(Iterate over CAS card management records)` `(casCdKnriMap != null)` (L149)

> For each CAS card linked to the service contract, find and cancel the corresponding Operation Service Contract.

**Block 3.3.2.3.1** — [SET] `(Extract operation service contract number)` (L152)

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKeiNo = JBSbatStringUtil.Rtrim(casCdKnriMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO))` // Operation service contract number (trimmed) |
| 2 | SET | `opSvcKeiMap = new JBSbatCommonDBInterface()` // SQL execution result map |
| 3 | SET | `whereParam = {opSvcKeiNo, this.opeDate}` // Query key: operation service contract number + operation date |

**Block 3.3.2.3.2** — [CALL] `(Query operation service contract)` (L155–156)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_OP_SVC_KEI_KK_SELECT_094(whereParam)` // Query KK_T_OP_SVC_KEI by (opSvcKeiNo, opeDate) using SQL key KK_SELECT_094 |
| 2 | SET | `opSvcKeiMap = db_KK_T_OP_SVC_KEI_094.selectNext()` // Fetch result |

**Block 3.3.2.3.3** — [IF] `(Operation service contract data fetched)` `(opSvcKeiMap != null)` (L159)

**Block 3.3.2.3.3.1** — [CALL] `(Primary key lookup on operation service contract)` (L162)

| # | Type | Code |
|---|------|------|
| 1 | SET | `whereOpSvcKeiParamPk = {opSvcKeiNo, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.GENE_ADD_DTM)}` // Composite PK: contract number + generation add datetime |
| 2 | SET | `opSvcKeiMapPk = executeKK_T_OP_SVC_KEI_PKSELECT(whereOpSvcKeiParamPk)` // PK lookup on KK_T_OP_SVC_KEI |

**Block 3.3.2.3.3.2** — [IF] `(PK lookup succeeded)` `(opSvcKeiMapPk != null)` (L164)

**Block 3.3.2.3.3.3** — [IF] `(Contract status is NOT terminated AND NOT cancelled)` `(!OP_SVC_STAT_DSLZUMI.equals(stat) && !OP_SVC_STAT_CANCELZUMI.equals(stat))` `[OP_SVC_STAT_DSLZUMI="910" (解約済)]` `[OP_SVC_STAT_CANCELZUMI="920" (キャンセル済)]` (L167)

> Only insert cancellation records for contracts that are still active (not already in terminated or cancelled state).

**Block 3.3.2.3.3.3.1** — [CALL] `(Insert operation service contract cancellation record)` (L169)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertOpsvckei(opSvcKeiMapPk, this.opeDate, idoDiv, mskmDtlNo)` // Registers cancellation data into KK_T_OP_SVC_KEI. Sets status to 910 (Terminated), reservation application code to 2 (Confirmed), plan end type to 1 (Plan Change), service cancellation reason to 01 (Normal), cancellation date/period to opeDate |

**Block 3.3.2.3.4** — [SET] `(Fetch next CAS card record for loop)` (L178)

| # | Type | Code |
|---|------|------|
| 1 | SET | `casCdKnriMap = db_KK_T_CASCD_KNRI.selectNext()` // Get next row; null exits the loop |

**Block 3.4** — [EXEC] `(Commit temporary reservation transaction)` (L182)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `commonItem.getConnection().commit()` // Commit transaction at service layer boundary |

> Comment: "Set transaction and processing unit here to align service-level transactions" (サービス層のトランザクションと処理単位を合わせることでコミット)

**Block 4** — [SET] `(Initialize second query map — SQL key KK_SELECT_114)` (L186)

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoDivDataMap_114 = new JBSbatCommonDBInterface()` // SQL execution result map for non-temporary reservation |
| 2 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_114(keyParam)` // Query KK_T_IDO_RSV by IDO_RSV_NO using SQL key KK_SELECT_114 (non-temporary reservation) |
| 3 | SET | `idoDivDataMap_114 = db_KK_T_IDO_RSV.selectNext()` // Fetch result |

**Block 5** — [IF] `(Non-temporary reservation data exists)` `(idoDivDataMap_114 != null)` (L189)

> Same CAS check-and-update flow but for non-temporary reservation records (SQL key 114). No Operation Service Contract cancellation here — only CAS card update.

**Block 5.1** — [CALL] `(CAS information check)` (L192)

| # | Type | Code |
|---|------|------|
| 1 | SET | `result = execSvc(FUNC_CD_CHK, SHORI_CD_CRS_CHG_CL, idoDivDataMap)` // Check CAS for non-temporary reservation |

**Block 5.2** — [IF] `(CAS check passed)` `(result == true)` (L194)

**Block 5.2.1** — [CALL] `(CAS information update)` (L196)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execSvc(FUNC_CD_UPD, SHORI_CD_CRS_CHG_CL, idoDivDataMap)` // Update CAS for non-temporary reservation |

**Block 6** — [EXEC] `(End of method — debug log and return)` (L200)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.logPrint.printDebugLog("execute_END")` // Exit debug log |
| 2 | RETURN | `return null` // Returns null; errors indicated by commonItem.errFlg |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|-----------------|
| `JBSbatKKSkaWrkCnclProc` | Class | Skapa Work Cancellation Processing — batch service for cancelling scheduled Skapa installation work orders |
| `IDO_RSV_NO` | Field | Temporary reservation number (異動予約番号) — unique identifier for a scheduled installation/skylark work order |
| `IDO_DIV` | Field | Installation division (工事区分) — classification code for the type of installation work |
| `MSKM_DTL_NO` | Field | Application detail number (申込み詳細番号) — internal identifier for the application detail |
| `SVC_KEI_NO` | Field | Service contract number (サービス契約番号) — unique identifier for a service contract line |
| `OP_SVC_KEI_NO` | Field | Operation service contract number (オペレーションサービス契約番号) — unique ID for an operation-level service contract |
| `GENE_ADD_DTM` | Field | Generation add datetime (世代登録年月日時分秒) — timestamp used as part of the composite primary key for optimistic locking |
| `OP_SVC_KEI_STAT` | Field | Operation service contract status (オペレーションサービス契約ステータス) — lifecycle state of the contract |
| `KK_T_IDO_RSV` | Table | Temporary Reservation table (異動予約) — stores scheduled installation/skylark work order reservations |
| `KK_T_CASCD_KNRI` | Table | CAS Card Management table (CASカード管理) — stores CAS card numbers linked to service contracts |
| `KK_T_OP_SVC_KEI` | Table | Operation Service Contract table (オペレーションサービス契約) — stores detailed service contract records with status, plan, and cancellation data |
| `CAS` | Acronym | Card Administration System — external system managing subscription card information for Skapa (satellite TV) |
| `KKSV1053` | Screen/Batch | Skapa Key Information Operation CC service — external ESBN service for key information operations |
| `FUNC_CD_CHK` | Constant | Function code "2" — check-only mode (更新のみ), validates data before update |
| `FUNC_CD_UPD` | Constant | Function code "1" — update mode (変更), performs actual data update |
| `SHORI_CD_CRS_CHG_CL` | Constant | Process code "3" — Cross Change Cancellation (コース変更取消), process type for service plan change cancellation |
| `OP_SVC_STAT_DSLZUMI` | Constant | Status code "910" — Terminated (解約済), contract has been fully terminated |
| `OP_SVC_STAT_CANCELZUMI` | Constant | Status code "920" — Cancelled (キャンセル済), contract has been cancelled |
| `SVC_KEI_STAT_DLS_ZM` | Constant | Status code "910" — Terminated (解約済), set as the new status for cancelled service contracts |
| `PLAN_END_SBT_CD_PLANCHG` | Constant | Plan end type code "1" — Plan change end (プラン変更による終了), reason code for plan termination due to change |
| `CD00343_2` | Constant | Reservation application code "2" — Reservation confirmed (予約確定), confirms the reservation application |
| `CD00879_TUJYO_DSL` | Constant | Service cancellation reason "01" — Normal cancellation (通常解約), standard cancellation reason code |
| Suka-paa / Skapa | Business term | A satellite TV service provided by K-Opticom — the core domain for this cancellation process |
| `SPTVKEYINFOOPERATECC` | Constant | "SPTVKEYINFOOPERATECC" — key name for Skapa Key Information Operation CC data map |
| `K-Opticom` | Company | Japanese telecommunications company providing fiber-optic internet and satellite TV (Skapa) services |
| `JBSbatBusinessService` | Class | Parent class for batch business services — provides common infrastructure (log, DB connection, commit) |
| `JCCBatchEsbInterface` | Class | ESBN (Enterprise Service Bus) interface — handles async service invocation for batch processes |
| `DSZM` | Acronym | 解約済 (Kaiyaku-zumi) — status suffix meaning "already terminated" |
| `CNCL_ZM` | Acronym | キャンセル済 (Kyanseru-zumi) — status suffix meaning "already cancelled" |
