# Business Logic — JKKAdchgCancelHakkoSODCC.dslOdrCtrl() [1125 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKAdchgCancelHakkoSODCC` |
| Layer | Common Component (CC) — Business Order Control |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKAdchgCancelHakkoSODCC.dslOdrCtrl()

The `dslOdrCtrl` method (Japanese: 解約オーダ制御処理 - Cancellation Order Control Processing) is the central order-dispatch hub for processing **telecom service cancellation** across three primary service types: eo Light Net (FTTH/fiber-to-the-home), eo Mobile (mobile/wireless services including e-mobile, WiMAX, and Spot WiFi), and eo Light Telephone (phone services with SIP/Radius). Upon entry, it classifies the service type by calling `jdgSvcKind()` and then routes execution to one of three service-specific branches using a routing/dispatch pattern. Each branch extracts relevant optional services, device contracts, and order details from the service order data (SOD) map, then issues targeted **Service Order Data (SOD)** records via `addSOD()` or delegates to `opSetOdrCtrl()` for optional service settings.

The method implements a **delegation pattern** - rather than issuing SODs directly, it sets up instance fields (e.g., `svc_kei_ucwk_no`, `kktk_svc_kei_no`, `same_trn_no`, `mskm_dtl_no`) that act as a shared context for downstream SOD issuance. The `same_trn_no` field (same transaction number) enables batch cancellation of related services under a single transaction, while `mskm_dtl_no` (application detail number) acts as the key matching criterion to determine whether a specific optional or device service should be cancelled alongside the main contract.

In the larger system architecture, this method is called by `hakkoSODNet` and `hakkoSODTel` - higher-level order dispatchers that handle the "add", "cancel", "keep", and "modify" decisions for contract line item changes. It serves as the cancellation-side counterpart to `opSetOdrCtrl()` (optional settings order control), forming a symmetric pair of order control methods.

**Branch Summary:**

1. **Net/ADSL Branch** (SVC_KIND_NET="1" or SVC_KIND_ADSL="5"): Cancels FTTH authentication, optional services (Email, My Home Page, Mail List, Multi Selection, Fixed Global IP, IPV6), and BBR router devices. Issues SODs for FTTH auth cancellation (ODR_NAIYO_CD_103), multi-selection cancellation (ODR_NAIYO_CD_145), and router connection/deletion (ODR_NAIYO_CD_149/150).

2. **Mobile Branch** (SVC_KIND_MOB="4"): Handles e-mobile (7M/21M), WiMAX (UQ WiMAX B/W), and Spot WiFi services. Cancels e-mobile services (ODR_NAIYO_CD_313), WiMAX CUI/DEV (ODR_NAIYO_CD_308/309), and Spot WiFi update/deletion (ODR_NAIYO_CD_302/303).

3. **Telephone Branch** (SVC_KIND_TEL="2"): Cancels Radius authentication (ODR_NAIYO_CD_204), OLS settings/cancellation (ODR_NAIYO_CD_215/216), SIP cancellation/deletion (ODR_NAIYO_CD_229/230), 050 number plug-in optional services, and emergency notifications (ODR_NAIYO_CD_252).

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> EXTRACT_EX["Extract SOD maps from sodMap"]
    EXTRACT_EX --> SHKKA["shkkaMap null-initialize maps"]
    SHKKA --> EXTRACT_PARAM["Extract sys_id, ido_div, svc_kei_no"]
    EXTRACT_PARAM --> JDG_SVC["jdgSvcKind - classify service type"]

    JDG_SVC --> BR_NET{SVC_KIND_NET=1<br/>or SVC_KIND_ADSL=5?}

    BR_NET -->|Yes| NET_BRANCH["Net/ADSL Cancellation Branch"]
    NET_BRANCH --> CALL_MLTISE["callEKK0351B002SC - optional svc list"]
    CALL_MLTISE --> LOOP_MLTISE["Loop: each optional service"]

    LOOP_MLTISE --> BR_OPT{op_svc_cd in<br/>EMAIL/HP/MLIST/MLTISE?}
    BR_OPT -->|Yes| CALL_OPSVKEI["callEKK0351A010SC - optional agreement"]
    CALL_OPSVKEI --> CHK_IDO{ido_div match?<br/>DSL/TEKKYO/kyosei/cancel?}

    CHK_IDO -->|Yes| BR_OP_SVC{op_svc_cd type?}
    BR_OP_SVC -->|MLTISE| CHK_FIXIP["Check fixed global IP"]
    BR_OP_SVC -->|HP| CALL_EKK0361["callEKK0361A010SC - ISP"]
    BR_OP_SVC -->|Other| ADD_LIST["Add to hashList"]

    CHK_FIXIP -->|Match| ADD_LIST
    CALL_EKK0361 --> CHK_URL{URL domain/account<br/>not blank?}
    CHK_URL -->|Yes| ADD_LIST

    ADD_LIST --> CHK_BBR{"Check BBR device<br/>callEKK0341B008SC"}
    CHK_BBR --> BR_BBR{KKTK_SVC_CD = BBR?}

    BR_BBR -->|Yes| CALL_BBR_AGR["callEKK0341A010SC - device svc"]
    CALL_BBR_AGR --> BR_BBR_IDO{ido_div match?<br/>dsl/kyosei/cancel?}
    BR_BBR_IDO -->|Yes| SET_BBR["Set eKK0341A010SCHash"]

    SET_BBR --> GET_SAME{getSameTrnNoFlg?}
    CHK_BBR -->|No| GET_SAME
    CHK_IDO -->|No| GET_SAME
    CHK_URL -->|No| GET_SAME
    BR_OPT -->|No| GET_SAME

    GET_SAME --> ADSL_CHECK{ADSL? or furetsu?}
    ADSL_CHECK -->|Yes| FTTH_AUTH{"Not mansion<br/>private?"}
    FTTH_AUTH -->|Yes| ADD_SOD_103["addSOD ODR_103 - FTTH auth"]

    ADSL_CHECK -->|No| LOOP_OPSVC["Loop hashList"]
    ADD_SOD_103 --> LOOP_OPSVC

    LOOP_OPSVC --> BR_MLTISE{op_svc_cd = MLTISE?}
    BR_MLTISE -->|Yes| ADD_SOD_145["addSOD ODR_145 - Multiselection"]
    BR_MLTISE -->|No| MAP_OP["Build opSodMap<br/>opSetOdrCtrl"]

    BR_BBR -->|No| LOOP_OPSVC

    LOOP_OPSVC --> CHK_BBR_FINAL{eKK0341A010SCHash<br/>not null?}
    CHK_BBR_FINAL -->|Yes| ADD_SOD_BBR["addSOD ODR 149,150 - router"]
    ADD_SOD_BBR --> END_NET["End Net/ADSL branch"]
    CHK_BBR_FINAL -->|No| END_NET

    BR_NET -->|No| BR_MOB{SVC_KIND_MOB=4?}

    BR_MOB -->|Yes| MOBILE_BRANCH["Mobile Cancellation Branch"]
    MOBILE_BRANCH --> BR_WIFISPOT{PCRS_CD = WiFISPOT?}
    BR_WIFISPOT -->|Yes| SET_SAME_TRN["same_trn_no empty"]
    BR_WIFISPOT -->|No| BR_CHG_SVC{"chgSvcKeiJdg?<br/>svc changed?"}

    BR_CHG_SVC -->|Yes| GET_MOBILE["getSame_trn_no"]
    BR_CHG_SVC -->|No| CHK_NO_MAIL{PCRS != MAILADDRESS?}
    SET_SAME_TRN --> CHK_NO_MAIL

    CHK_NO_MAIL -->|Yes| CALL_EKK0161["callEKK0161A010SC"]
    CALL_EKK0161 --> BR_EM{eMOBILE_7M/21M?}
    CHK_NO_MAIL -->|No| BR_WIMAX{"WiMAX?"}

    BR_EM -->|Yes| BR_EM_CANCEL{ido_div =<br/>CANCEL or kyosei?}
    BR_EM_CANCEL -->|No| ADD_SOD_313["addSOD ODR_313 - e-mobile"]
    BR_EM_CANCEL -->|Yes| BR_EM_KYOSEI{kyoseiDSLFIX?}
    BR_EM_KYOSEI -->|Yes| RET_EMOBILE["Return param"]

    BR_EM -->|No| BR_WIMAX

    BR_WIMAX -->|Yes| SET_WIMAX["Set ucwk_no/gadtm"]
    SET_WIMAX --> BR_UQWIMAX{UQWIMAX_B?}
    BR_UQWIMAX -->|Yes| CALL_UQ_BBR["callEKK0341B008SC"]
    BR_UQWIMAX -->|No| SET_EMPTY["Set empty values"]

    SET_EMPTY --> BR_WIMAX_CANCEL{ido_div = CANCEL?}
    CALL_UQ_BBR --> BR_WIMAX_CANCEL

    BR_WIMAX_CANCEL -->|No| ADD_SOD_WIMAX["addSOD ODR 308,309"]
    ADD_SOD_WIMAX --> CALL_WIMAX_MLTISE["callEKK0351B002SC"]

    CALL_WIMAX_MLTISE --> WIMAX_LOOP["Loop optional svc"]
    WIMAX_LOOP --> WIMAX_BR{EMAIL/HP/MLIST?}
    WIMAX_BR -->|Yes| WIMAX_CALL_OPSVC["callEKK0351A010 + opSetOdrCtrl"]

    BR_WIMAX -->|No| BR_FREE_WIFI{FREE_WIFI?}

    BR_FREE_WIFI -->|Yes| CALL_WIFISPOT["callEKK0161B003 + A010"]
    CALL_WIFISPOT --> CHK_WIFI{pcrsCd = FREE_WIFI?}
    CHK_WIFI -->|Yes| ADD_SOD_WIFI_UPD["addSOD ODR_302 - Spot update"]
    CHK_WIFI -->|No| ADD_SOD_WIFI_DEL["addSOD ODR_303 - Spot deletion"]

    BR_MOB -->|No| BR_TEL{SVC_KIND_TEL=2?}

    BR_TEL -->|Yes| TEL_BRANCH["Phone Branch"]
    TEL_BRANCH --> TEL_CHG_SVC{"chgSvcKeiJdg?"}
    TEL_CHG_SVC -->|Yes| TEL_GET_SAME["getSame_trn + EKK0251B001"]
    TEL_GET_SAME --> TEL_ADD_RADIUS["addSOD ODR_204 - Radius"]

    TEL_ADD_RADIUS --> TEL_CALL_191["callEKK0191A010 - phone agr"]
    TEL_CALL_191 --> TEL_CALL_341["callEKK0341B008 - device list"]
    TEL_CALL_341 --> TEL_LOOP["Loop devices"]

    TEL_LOOP --> TEL_BR_VA{TELVA type?}
    TEL_BR_VA -->|No| TEL_NEXT["Next device"]
    TEL_BR_VA -->|Yes| TEL_SET["Set kktk values"]

    TEL_NEXT --> TEL_END_LOOP["End loop"]
    TEL_SET --> TEL_ADD_OLS["addSOD ODR 215,216 - OLS"]
    TEL_END_LOOP --> TEL_ADD_SIP["addSOD ODR 229,230 - SIP"]

    TEL_ADD_SIP --> TEL_050_BR["050 Number Plug-in<br/>callEKK0351B002+A010"]
    TEL_050_BR --> TEL_050_CHK{"stat=910 + cancel?"}
    TEL_050_CHK -->|Yes| TEL_050_MAP["Build opSodMap"]

    TEL_050_CHK -->|No| TEL_TRANS["Transfer ticket check"]
    TEL_050_MAP --> TEL_TRANS

    TEL_TRANS --> BR_CANCEL_TRANS{ido_div = CANCEL?}
    BR_CANCEL_TRANS -->|Yes| CHK_SVC_STAT["Check svc status"]
    BR_CANCEL_TRANS -->|No| BR_TRANS{run flag?}

    CHK_SVC_STAT -->|Not 010| SET_NO_TRANS["flag=false"]
    SET_NO_TRANS --> BR_TRANS
    CHK_SVC_STAT -->|010| BR_TRANS

    BR_TRANS -->|True| TEL_CALL_191_T["callEKK0191A010"]
    TEL_CALL_191_T --> BR_TRANSFER{transfer ARI+DSL?}
    BR_TRANSFER -->|Yes| ADD_SOD_220["addSOD ODR_220 - SIP ticket"]

    BR_TRANS -->|False| BR_EMERGENCY["addSOD ODR_252 - emergency"]
    ADD_SOD_220 --> BR_EMERGENCY

    RET_PARAM["Return param"]
    TEL_BRANCH -->|No| RET_PARAM
    BR_EMERGENCY --> RET_PARAM
    BR_FREE_WIFI -->|No| RET_PARAM
    ADD_SOD_WIFI_UPD --> RET_PARAM
    ADD_SOD_WIFI_DEL --> RET_PARAM
    BR_EM_KYOSEI -->|Yes| RET_EMOBILE
    RET_EMOBILE --> RET_PARAM
    RET_PARAM --> END(["End"])

    style START fill:#e1f5fe
    style END fill:#e1f5fe
    style BR_NET fill:#fff9c4
    style BR_MOB fill:#fff9c4
    style BR_TEL fill:#fff9c4
    style ADD_SOD_103 fill:#c8e6c9
    style ADD_SOD_313 fill:#c8e6c9
    style ADD_SOD_WIMAX fill:#c8e6c9
    style TEL_ADD_RADIUS fill:#c8e6c9
    style TEL_ADD_OLS fill:#c8e6c9
    style TEL_ADD_SIP fill:#c8e6c9
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Session handle carrying session manager context; used for all service component invocations |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object containing model group and control map; used throughout to read/write business data and returned after processing |
| 3 | `fixedText` | `String` | User-designated arbitrary string; passed through to downstream methods (opSetOdrCtrl, addSOD) as metadata |
| 4 | `sodMap` | `HashMap<String, Object>` | Service Order Data map containing SOD basic info (sod_kihon_info), service contract info (svc_kei_info), service contract detail info (svc_kei_ucwk_info), and optional service contract info (opsvkei_info) |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `mskm_dtl_no` | `String` | Application detail number - the key matching criterion for determining which optional/device services belong to this cancellation |
| `pcrs_cd` | `String` | Price course code - the billing plan/course that identifies the specific service tier (e.g., 100M course, e-mobile 7M course) |
| `svc_kei_ucwk_no` | `String[]` | Service contract detail number set by this method for downstream SOD issuance |
| `svc_kei_ucwk_gadtm` | `String[]` | Service contract detail generation/addition datetime |
| `same_trn_no` | `String` | Same transaction number - shared transaction ID for batch-related cancellations |
| `kktk_svc_kei_no` | `String[]` | Device provision service contract number |
| `kktk_svc_kei_gadtm` | `String[]` | Device provision service contract generation datetime |
| `taknkiki_model_cd` | `String[]` | In-home device model code |
| `kiki_seizo_no` | `String[]` | Device manufacturing serial number |
| `svc_kei_kaisen_ucwk_no` | `String` | Service route contract detail number |
| `svc_kei_kaisen_ucwk_gadtm` | `String` | Service route contract generation datetime |
| `mae_recode_ch_svc_kei_no` | `String` | Previous contract record change service contract number - set when same_trn_no is not blank |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JKKAdchgCancelHakkoSODCC.callEKK0351B002SC` | EKK0351B002SC | K_OPTSVKEI (Optional Service Contract Table) | Reads optional service contract list by service contract number |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0351A010SC` | EKK0351A010SC | K_OPTSVKEI_AGREEMENT (Optional Service Contract Agreement) | Reads optional service contract agreement details by contract number and generation datetime |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0341B008SC` | EKK0341B008SC | K_KKTSVKEI (Device Provision Service Contract Table) | Reads device provision service contract list by service contract number |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0341A010SC` | EKK0341A010SC | K_KKTSVKEI_AGREEMENT (Device Provision Service Agreement) | Reads device provision service contract agreement details |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0361A010SC` | EKK0361A010SC | K_OPTSVKEI_ISP (Optional Service Contract - ISP) | Reads ISP-type optional service contract agreement (My Home Page) |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0161A010SC` | EKK0161A010SC | K_SVC_KEI_UCWK (Service Contract Detail Table) | Reads service contract detail agreement by detail number and generation datetime |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0161B003SC` | EKK0161B003SC | K_SVC_KEI_UCWK (Service Contract Detail List by SYSID) | Reads service contract detail list filtered by SYSID (Spot WiFi lookup) |
| R | `JKKAdchgCancelHakkoSODCC.callEKK0191A010SC` | EKK0191A010SC | K_SVC_KEI_UCWK_HTEL (Telephone Service Contract Detail) | Reads telephone service contract detail agreement by detail number |
| R | `JKKAdchgCancelHakkoSODCC.getEKK0251B001SC` | EKK0251B001SC | K_SVC_KEI_KAISEN_UCWK (Service Route Contract Detail) | Reads service route contract detail list by service contract number |
| R | `JKKAdchgCancelHakkoSODCC.getSame_trn_no` | EKK1081C011 | SAME_TRN_NO (Same Transaction Number Lookup) | Obtains the same transaction number for batch cancellation grouping |
| C | `JKKAdchgCancelHakkoSODCC.addSOD` | - | SOD (Service Order Data) | Issues a new SOD record; creates cancellation order data with the given ODR_NAIYO_CD |
| - | `JKKAdchgCancelHakkoSODCC.opSetOdrCtrl` | - | Optional Service Order Control | Processes optional service settings order control by delegating to lower-level CBS |
| - | `JKKAdchgCancelHakkoSODCC.chgSvcKeiJdg` | - | Service Contract Change Judgment | Judges whether the current service contract number differs from the previous processing record |
| - | `JKKAdchgCancelHakkoSODCC.jdgSvcKind` | - | Service Type Classification | Classifies the service type (Net=1, Tel=2, Mob=4, ADSL=5) |
| - | `JKKAdchgCancelHakkoSODCC.shkkaMap` | - | Map Null-Initialization | Null-initializes HashMap values (replaces null with empty string) |
| - | `JKKAdchgCancelHakkoSODCC.shkkaChr` | - | String Null-Initialization | Null-initializes String values (replaces null with empty string) |
| - | `JKKAdchgCancelHakkoSODCC.isBlank` | - | String Blank Check | Checks if a string is null or empty |
| - | `JKKAdchgCancelHakkoSODCC.isMansionPrvate` | - | Mansion Private Type Check | Checks if the housing type is mansion private (affects FTTH auth routing) |
| R | `JCCBPCommon.getOpeDate` | - | OPE_DATE (Operation Date) | Retrieves the current operational date (used in Spot WiFi processing) |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CBS: hakkoSODNet | `hakkoSODNet(AD_CHG_CMT_ADD) -> netDslOdrCtrl -> dslOdrCtrl` | `callEKK0351B002SC [R] K_OPTSVKEI`, `callEKK0341A010SC [R] K_KKTSVKEI_AGREEMENT`, `addSOD [C] SOD` |
| 2 | CBS: hakkoSODTel | `hakkoSODTel -> htelNoDslOdrCtrl002/hotelNoDslOdrCtrl -> dslOdrCtrl` | `callEKK0191A010SC [R] K_SVC_KEI_UCWK_HTEL`, `callEKK0251B001SC [R] K_SVC_KEI_KAISEN_UCWK`, `addSOD [C] SOD` |

**Notes:**
- `dslOdrCtrl` is called from `hakkoSODNet` when `use_svc_chg_div = AD_CHG_CMT_ADD` (addition). In that path, it is invoked through `netDslOdrCtrl` as an intermediate wrapper.
- `dslOdrCtrl` is also reachable from `hakkoSODTel` through `htelNoDslOdrCtrl` and `htelNoDslOdrCtrl002` paths. However, based on code comments (OM-2013-0003213), the direct `dslOdrCtrl` call under the "cancel" path (AD_CHG_CMT_SLRE) has been removed and replaced with `htelNoDslOdrCtrl`-based logic.
- The method is private and not exposed as a public API - it is only reachable through the `hakkoSODNet` and `hakkoSODTel` CBS-level order dispatch methods.

## 6. Per-Branch Detail Blocks

**Block 1** - [EXTRACT] (L5704)
Initialize service maps and extract core parameters.

| # | Type | Code |
|---|------|------|
| 1 | SET | `sod_kihon_info_Map = sodMap.get(SOD_KIHON_INFO)` |
| 2 | SET | `svc_kei_info_Map = sodMap.get(SVC_KEI_INFO)` |
| 3 | SET | `svc_kei_ucwk_info_Map = sodMap.get(SVC_KEI_UCWK_INFO)` |
| 4 | CALL | `shkkaMap(sod_kihon_info_Map)` - null-initialize values |
| 5 | CALL | `shkkaMap(svc_kei_info_Map)` |
| 6 | CALL | `shkkaMap(svc_kei_ucwk_info_Map)` |
| 7 | SET | `sys_id = sod_kihon_info_Map.get(INFO_SYSID)` |
| 8 | SET | `ido_div = sod_kihon_info_Map.get(IDO_DIV)` |
| 9 | SET | `svc_kei_no = svc_kei_info_Map.get(INFO_SVC_KEI_NO)` |
| 10 | SET | `svc_kei_ucwk_no = svc_kei_ucwk_info_Map.get(INFO_SVC_KEI_UCWK_NO)` |
| 11 | SET | `chaf_svc_kei_ucwk_gene_add_dtm = svc_kei_ucwk_info_Map.get(INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM)` |

**Block 2** - [EXTRACT] (L5724)
Classify service type.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svc_kind = jdgSvcKind()` - determines service type |

**Block 3** - [IF] `(SVC_KIND_NET="1" or SVC_KIND_ADSL="5")` (L5726) - Net/ADSL Cancellation Branch

> Processes cancellation of FTTH/network services including optional services (Email, My Home Page, Mail List, Multi Selection, Fixed Global IP, IPV6) and BBR router devices.

**Block 3.1** - [SET] (L5730-5731) Initialize tracking variables.

| # | Type | Code |
|---|------|------|
| 1 | SET | `getSameTrnNoFlg = false` |
| 2 | SET | `eKK0351A010SCHashList = new ArrayList()` |
| 3 | SET | `eKK0341A010SCHash = null` |

**Block 3.2** - [CALL] (L5739-5742) Query optional service contract list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashMltise.put(SVC_KEI_NO, svc_kei_no)` |
| 2 | CALL | `statusCode = callEKK0351B002SC(param, handle, inHashMltise, resultHashMltise, FUNC_CODE_1="1")` |
| 3 | IF | `statusCode != 0` - throw CCException |
| 4 | SET | `msgEKK0351B002SCList = resultHashMltise.get(TEMPLATE_ID_EKK0351B002)` |

**Block 3.3** - [FOR LOOP] (L5744-5751) Iterate over optional service contract list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `eKK0351B002SCHash = msgEKK0351B002SCList[i].getMsgData()` |
| 2 | SET | `op_svc_cd = eKK0351B002SCHash.get(OP_SVC_CD)` |

**Block 3.3.1** - [IF] `(op_svc_cd in [EMAIL="B001", HP="B002", MLIST="B003", IPV6="B070", DUP="B020", MLTISE="B015"])` (L5753-5759)

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashSvcKei.put(OP_SVC_KEI_NO, ...)` |
| 2 | SET | `inHashSvcKei.put(GENE_ADD_DTM, ...)` |
| 3 | CALL | `callEKK0351A010SC(param, handle, inHashSvcKei, resultHashSvcKei, FUNC_CODE_1)` |
| 4 | SET | `eKK0351A010SCHash = resultHashSvcKei.get(TEMPLATE_ID_EKK0351A010)` |
| 5 | SET | `op_mskm_dtl_no = shkkaChr(...)` - null-initialize |
| 6 | SET | `op_svc_dlre_cd = eKK0351A010SCHash.get(SVC_DLRE_CD)` |

**Block 3.3.1.1** - [IF] `(ido_div=DSL="00005" or TEKKYODSL="00006" AND op_mskm_dtl_no matches this.mskm_dtl_no) OR (ido_div=kyoseiDSl="00064" AND op_svc_dlre_cd=kyoseiDSl="02") OR (ido_div=CANCEL="00008" AND op_mskm_dtl_no matches this.mskm_dtl_no)` (L5772-5778)

> Determines if this optional service should be cancelled based on the movement division (ido_div) matching the cancellation type.

**Block 3.3.1.1.1** - [IF] `(op_svc_cd = MLTISE="B015")` (L5791-5809) - Multi-selection: Check fixed global IP.

| # | Type | Code |
|---|------|------|
| 1 | FOR | Loop through msgEKK0351B002SCList again |
| 2 | SET | `op_svc_cd_fix = msg[...].get(OP_SVC_CD)` |
| 3 | SET | `op_svc_kei_stat_fix = msg[...].get(OP_SVC_KEI_STAT)` |
| 4 | IF | `(op_svc_cd_fix=FIXIPAD="B004") AND (stat=910=cancellation OR stat=920=cancellation)` |
| 5 | SET | `eKK0351A010SCHashList.add(eKK0351A010SCHash)` |
| 6 | SET | `getSameTrnNoFlg = true` |

**Block 3.3.1.1.2** - [IF] `(op_svc_cd = HP="B002")` (L5810-5833) - My Home Page: Check ISP agreement.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashOpSvcKeiIsp.put(OP_SVC_KEI_NO, ...)` |
| 2 | SET | `inHashOpSvcKeiIsp.put(GENE_ADD_DTM, ...)` |
| 3 | CALL | `callEKK0361A010SC(param, handle, inHashOpSvcKeiIsp, resultHashOpSvcKeiIsp, FUNC_CODE_1)` |
| 4 | SET | `urlDomain = eKK0361A010SCHash.get(URL_DOMAIN)` |
| 5 | SET | `urlAccount = eKK0361A010SCHash.get(URL_ACCOUNT)` |
| 6 | IF | `(!isBlank(urlDomain) AND !isBlank(urlAccount))` |
| 7 | SET | `eKK0351A010SCHashList.add(eKK0351A010SCHash)` |
| 8 | SET | `getSameTrnNoFlg = true` |

**Block 3.3.1.1.3** - [ELSE] (L5834-5838) - Other optional services.

| # | Type | Code |
|---|------|------|
| 1 | SET | `eKK0351A010SCHashList.add(eKK0351A010SCHash)` |
| 2 | SET | `getSameTrnNoFlg = true` |

**Block 3.4** - [CALL] (L5847-5854) Query BBR device provision service contract list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashKktk.put(SVC_KEI_NO, svc_kei_no)` |
| 2 | CALL | `statusCode = callEKK0341B008SC(param, handle, inHashKktk, resultHashKktk, FUNC_CODE_1)` |
| 3 | SET | `msgEKK0341B008SCList = resultHashKktk.get(TEMPLATE_ID_EKK0341B008)` |

**Block 3.5** - [FOR LOOP] (L5856-5864) Iterate BBR devices.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmp_kktk_svc_cd = eKK0341B008SCHash.get(KKTK_SVC_CD)` |

**Block 3.5.1** - [IF] `(tmp_kktk_svc_cd = BBR="C014")` (L5866-5922) - BBR device processing.

**Block 3.5.1.1** - [CALL] (L5878-5883) Query device service agreement.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashKktk2.put(KKTK_SVC_KEI_NO, tmp_kktk_svc_kei_no)` |
| 2 | SET | `inHashKktk2.put(GENE_ADD_DTM, tmp_gene_add_dtm)` |
| 3 | CALL | `callEKK0341A010SC(param, handle, inHashKktk2, resultHashKktk2, FUNC_CODE_1)` |
| 4 | SET | `kk_mskm_dtl_no = retHash.get(MSKM_DTL_NO)` |
| 5 | SET | `kk_kiki_seizo_no = retHash.get(KIKI_SEIZO_NO)` |
| 6 | SET | `kk_svc_dlre_cd = retHash.get(SVC_DLRE_CD)` |
| 7 | IF | `isBlank(kk_kiki_seizo_no)` - continue |

**Block 3.5.1.2** - [IF] `(ido_div=DSL or TEKKYODSL AND kk_mskm_dtl_no matches) OR (ido_div=kyoseiDSl AND kk_svc_dlre_cd=kyoseiDSl) OR (ido_div=CANCEL AND kk_mskm_dtl_no matches)` (L5903-5909)

| # | Type | Code |
|---|------|------|
| 1 | SET | `eKK0341A010SCHash = retHash` |
| 2 | SET | `getSameTrnNoFlg = true` |
| 3 | BREAK | |

**Block 3.6** - [IF] `(getSameTrnNoFlg)` (L5924-5930) - Get same transaction number.

| # | Type | Code |
|---|------|------|
| 1 | IF | true: `getSame_trn_no(param, handle, null, sameTrnNo); this.same_trn_no = sameTrnNo[0]` |
| 2 | ELSE | `this.same_trn_no = ""` |

**Block 3.7** - [IF] `(!ADSL OR ADSL with furetsu)` (L5933-5945) - FTTH auth cancellation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!isMansionPrvate()` - `addSOD(handle, param, ODR_NAIYO_CD_103)` - FTTH auth/cancellation |

**Block 3.8** - [FOR LOOP] (L5950-6019) Iterate eKK0351A010SCHashList.

| # | Type | Code |
|---|------|------|
| 1 | IF | `op_svc_cd = MLTISE="B015"` |
| 2 | SET | `this.op_svc_kei_no_mltise = op_svc_kei_no` |
| 3 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_145)` - Multiselection cancellation |
| 4 | ELSE | Build opSodMap with SOD basic info, service contract info, detail info, and optional service info |
| 5 | CALL | `opSetOdrCtrl(handle, param, fixedText, opSodMap)` |

**Block 3.9** - [IF] `(eKK0341A010SCHash != null)` (L6021-6035) - BBR router cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.kktk_svc_kei_no[0] = eKK0341A010SCHash.get(KKTK_SVC_KEI_NO)` |
| 2 | SET | `this.taknkiki_model_cd[0] = eKK0341A010SCHash.get(TAKNKIKI_MODEL_CD)` |
| 3 | SET | `this.kiki_seizo_no[0] = eKK0341A010SCHash.get(KIKI_SEIZO_NO)` |
| 4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_149)` - Router connection/cancellation |
| 5 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_150)` - Router connection/deletion |

**Block 4** - [ELSE IF] `(SVC_KIND_MOB="4")` (L6039) - Mobile Cancellation Branch

> Handles e-mobile, WiMAX (UQ), Spot WiFi, and mail address services.

**Block 4.1** - [IF] `(PCRS_CD = WiFISPOT="A30")` (L6071-6074) - Spot WiFi.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.same_trn_no = ""` |

**Block 4.2** - [ELSE IF] `(chgSvcKeiJdg(svc_kei_no))` (L6076-6081) - Service contract changed.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 2 | SET | `this.same_trn_no = sameTrnNo[0]` |

**Block 4.3** - [IF] `(!PCRS_CD = MAILADDRESS="A61")` (L6087-6112) - Query service contract detail.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inEKK0161A010Hash.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 2 | SET | `inEKK0161A010Hash.put(GENE_ADD_DTM, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 3 | CALL | `callEKK0161A010SC(param, handle, inEKK0161A010Hash, retEKK0161A010Hash, FUNC_CODE_1)` |
| 4 | SET | `ucwkPcrsCd = eKK0161A010Hash.get(PCRS_CD)` |

**Block 4.4** - [IF] `(PCRS_CD = EMOBILE_7M="A26" or EMOBILE_21M="A27")` (L6121-6146) - e-mobile cancellation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!(ido_div=CANCEL or kyoseiDSl)` |
| 2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_313)` - e-mobile cancellation |
| 3 | IF | `ido_div=kyoseiDSLFIX="00007"` - `return param` |

**Block 4.5** - [IF] `(PCRS_CD = WiMAX="A46")` (L6155-6204) - WiMAX processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.svc_kei_ucwk_no[0] = svc_kei_ucwk_no` |
| 2 | IF | `PCRS_CD = UQWIMAX_B="A28"` - `callEKK0341B008SC` |
| 3 | SET | `kktk_svc_kei_no[0]` and `kktk_svc_kei_gadtm[0]` from response |
| 4 | IF | `!ido_div=CANCEL` - `addSOD ODR_308` (WiMAX/CUI) + `addSOD ODR_309` (WiMAX/DEV) |
| 5 | CALL | `callEKK0351B002SC` for optional services |
| 6 | LOOP | Check EMAIL/MLIST optional services - callEKK0351A010SC + opSetOdrCtrl |

**Block 4.6** - [ELSE IF] `(PCRS_CD = FREE_WIFI="A45")` (L6212-6279) - Spot WiFi cancellation/update.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashUcwk.put(SYSID, sys_id)` |
| 2 | CALL | `callEKK0161B003SC(param, handle, inHashUcwk, resultHashUcwk, FUNC_CODE_1)` |
| 3 | LOOP | For each result: `callEKK0161A010SC` with OPE_DATE |
| 4 | IF | `pcrsCd = FREE_WIFI="A45"` |
| 5 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_302)` - Wi-Fi spot update |
| 6 | ELSE | `addSOD(handle, param, ODR_NAIYO_CD_303)` - Wi-Fi spot deletion |

**Block 4.7** - [IF] `(PCRS_CD = MAILADDRESS="A61")` (L6285-6374) - Mail address service cancellation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `callEKK0351B002SC` - Optional service list |
| 2 | LOOP | For each optional service: |
| 3 | IF | `(EMAIL="B001" or MLIST="B003")` |
| 4 | CALL | `callEKK0351A010SC` - Optional service agreement |
| 5 | IF | `(ido_div matches cancellation criteria)` |
| 6 | Build opSodMap - `opSetOdrCtrl(handle, param, fixedText, opSodMap)` |

**Block 4.8** - [IF] `(!isBlank(this.same_trn_no))` (L6377-6379) - End of mobile branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.mae_recode_ch_svc_kei_no = new String(svc_kei_no)` |

**Block 5** - [ELSE IF] `(SVC_KIND_TEL="2")` (L6383) - Telephone Service Cancellation Branch

> Handles Radius auth, OLS (Optical Line Terminal settings), SIP (VoIP), 050 number plug-in, and transfer ticket services.

**Block 5.1** - [IF] `(chgSvcKeiJdg(svc_kei_no))` (L6389-6414) - Service contract changed.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 2 | CALL | `eKK0251B001Hash = getEKK0251B001SC(param, handle, svc_kei_no, FUNC_CODE_1)` |
| 3 | SET | `this.svc_kei_kaisen_ucwk_no = eKK0251B001Hash.get(SVC_KEI_KAISEN_UCWK_NO)` |
| 4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_204)` - Radius auth/cancellation |

**Block 5.2** - [CALL] (L6419-6429) Query telephone service contract detail.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashUcwk.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 2 | SET | `inHashUcwk.put(GENE_ADD_DTM, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 3 | CALL | `callEKK0191A010SC(param, handle, inHashUcwk, resultHashUcwk, FUNC_CODE_1)` |
| 4 | SET | `vaTaknkikiModelCd = eKK0191A010Hash.get(VA_TAKNKIKI_MODEL_CD)` |
| 5 | SET | `vaKikiSeizoNo = eKK0191A010Hash.get(VA_KIKI_SEIZO_NO)` |

**Block 5.3** - [CALL] (L6437-6447) Query device provision service contract list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashKktk.put(SVC_KEI_NO, svc_kei_no)` |
| 2 | CALL | `callEKK0341B008SC(param, handle, inHashKktk, resultHashKktk, FUNC_CODE_1)` |
| 3 | LOOP | For each device: |
| 4 | IF | `!taknkikiSbtCd = TELVA="50"` - continue |
| 5 | IF | `multiple devices` - `callEKK0341A010SC` and verify model/serial match |
| 6 | SET | `this.kktk_svc_kei_no[0]`, `this.kktk_svc_kei_gadtm[0]`, `this.taknkiki_model_cd[0]`, `this.kiki_seizo_no[0]` |
| 7 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_215)` - OLS settings/cancellation |
| 8 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_216)` - OLS settings/deletion |

**Block 5.4** - (L6455-6467) SIP cancellation and deletion.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.svc_kei_ucwk_no[0] = svc_kei_ucwk_no` |
| 2 | SET | `this.svc_kei_ucwk_gadtm[0] = chaf_svc_kei_ucwk_gene_add_dtm` |
| 3 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_229)` - SIP cancellation |
| 4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_230)` - SIP deletion |

**Block 5.5** - (L6471-6543) 050 Number Plug-in optional service cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashOp.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 2 | SET | `inHashOp.put(OP_SVC_CD, N050="B029")` |
| 3 | CALL | `callEKK0351B002SC` - Optional service list |
| 4 | LOOP | For each result: `callEKK0351A010SC` - agreement details |
| 5 | IF | `(stat=910 AND (ido_div DSL/TEKKYO AND op_mskm_dtl_no matches)) OR (ido_div=kyoseiDSl AND op_svc_dlre_cd=kyoseiDSl) OR (ido_div=CANCEL AND op_mskm_dtl_no matches)` |
| 6 | Build opSodMap - `opSetOdrCtrl(handle, param, fixedText, opSodMap)` |

**Block 5.6** - (L6545-6593) Transfer ticket check for SIP.

| # | Type | Code |
|---|------|------|
| 1 | SET | `runItntokiSodFlg = true` |
| 2 | IF | `ido_div=CANCEL` - `callEKK0161A010SC` and check `svc_kei_ucwk_stat != 010` |
| 3 | IF | `runItntokiSodFlg` - `callEKK0191A010SC` |
| 4 | SET | `itntokiKiboUm = eKK0191A010.get(ITENS_OPAF_TOKI_KIBO_UM)` |
| 5 | SET | `itntokiAddCd = eKK0191A010.get(ITENS_OPAF_TOKI_ADD_CD)` |
| 6 | IF | `(itntokiKibo=ARI="1" AND itntokiAdd=DSL="2")` - `addSOD(handle, param, ODR_NAIYO_CD_220)` - SIP ticket registration |

**Block 5.7** - (L6597-6599) Emergency notification deletion.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_252)` - Emergency notification/deletion |

**Block 5.8** - [IF] `(!isBlank(this.same_trn_no))` (L6603-6605) - End of telephone branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.mae_recode_ch_svc_kei_no = new String(svc_kei_no)` |

## 7. Glossary

### Service Types

| Term | Type | Business Meaning |
|------|------|------------------|
| SVC_KIND_NET | Constant | Service type code "1" - eo Light Net (FTTH/fiber-optic internet service) |
| SVC_KIND_ADSL | Constant | Service type code "5" - eo ADSL (asymmetric digital subscriber line) |
| SVC_KIND_MOB | Constant | Service type code "4" - eo Mobile (mobile/wireless service including e-mobile and WiMAX) |
| SVC_KIND_TEL | Constant | Service type code "2" - eo Light Telephone (phone service) |

### Movement Divisions (ido_div)

| Term | Type | Business Meaning |
|------|------|------------------|
| IDO_DIV_DSL | Constant | "00005" - Cancellation (standard contract cancellation) |
| IDO_DIV_TEKKYODSL | Constant | "00006" - Withdrawal (cancellation due to withdrawal) |
| IDO_DIV_KYOSEIDSL | Constant | "00064" - Forced cancellation (carrier-initiated cancellation) |
| IDO_DIV_KYOSEIDSLFIX | Constant | "00007" - Forced cancellation confirmation |
| IDO_DIV_CANCEL | Constant | "00008" - Cancel (customer cancellation request) |

### Optional Service Codes (op_svc_cd)

| Term | Type | Business Meaning |
|------|------|------------------|
| OP_SVC_CD_EMAIL | Constant | "B001" - Email optional service |
| OP_SVC_CD_HP | Constant | "B002" - My Home Page optional service |
| OP_SVC_CD_MLIST | Constant | "B003" - Mail List (mailing list) optional service |
| OP_SVC_CD_MLTISE | Constant | "B015" - Multi Selection (multiple optional services bundled) |
| OP_SVC_CD_FIXIPAD | Constant | "B004" - Fixed Global IP Address |
| OP_SVC_CD_IPV6 | Constant | "B070" - IPV6 Access (IP version 6 connectivity) |
| OP_SVC_CD_DUP | Constant | "B020" - Duplicate Access |
| OP_SVC_CD_N050 | Constant | "B029" - 050 Number Plug-in (VoIP number service) |

### Order Content Codes (ODR_NAIYO_CD)

| Term | Type | Business Meaning |
|------|------|------------------|
| ODR_NAIYO_CD_103 | Constant | FTTH Authentication Cancellation - cancels the FTTH authentication ID registration |
| ODR_NAIYO_CD_145 | Constant | Multi Selection Cancellation - cancels multi-selection optional service bundle |
| ODR_NAIYO_CD_149 | Constant | Router Connection Cancellation - cancels router connection service for BBR devices |
| ODR_NAIYO_CD_150 | Constant | Router Connection Deletion - deletes router connection records for BBR devices |
| ODR_NAIYO_CD_204 | Constant | Radius Authentication Cancellation - cancels Radius (Remote Authentication Dial-In User Service) auth for phone services |
| ODR_NAIYO_CD_215 | Constant | OLS Settings Cancellation - cancels Optical Line Terminal settings |
| ODR_NAIYO_CD_216 | Constant | OLS Settings Deletion - deletes OLS records |
| ODR_NAIYO_CD_220 | Constant | SIP Ticket Registration - registers transfer ticket for SIP service |
| ODR_NAIYO_CD_229 | Constant | SIP Cancellation - cancels Session Initiation Protocol (VoIP) service |
| ODR_NAIYO_CD_230 | Constant | SIP Deletion - deletes SIP registration records |
| ODR_NAIYO_CD_252 | Constant | Emergency Notification Deletion - removes emergency notification service |
| ODR_NAIYO_CD_302 | Constant | Wi-Fi Spot Update - updates Spot WiFi service registration |
| ODR_NAIYO_CD_303 | Constant | Wi-Fi Spot Deletion - deletes Spot WiFi service records |
| ODR_NAIYO_CD_308 | Constant | WiMAX/CUI Deletion - removes WiMAX Customer Unit Interface |
| ODR_NAIYO_CD_309 | Constant | WiMAX/DEV Deletion - removes WiMAX device records |
| ODR_NAIYO_CD_313 | Constant | e-mobile Cancellation - cancels e-mobile mobile service |

### Service Component (SC) Interfaces

| Term | Type | Business Meaning |
|------|------|------------------|
| EKK0351B002SC | SC | Optional Service Contract List (by service contract number) |
| EKK0351A010SC | SC | Optional Service Contract Agreement (details) |
| EKK0341B008SC | SC | Device Provision Service Contract List (by service contract number) |
| EKK0341A010SC | SC | Device Provision Service Agreement (details) |
| EKK0361A010SC | SC | Optional Service Contract - ISP (My Home Page type) |
| EKK0161A010SC | SC | Service Contract Detail Agreement |
| EKK0161B003SC | SC | Service Contract Detail List by SYSID (Spot WiFi lookup) |
| EKK0191A010SC | SC | Telephone Service Contract Detail Agreement |
| EKK0251B001SC | SC | Service Route Contract Detail List (by service contract number) |
| EKK1081C011 | SC | Same Transaction Number Lookup |

### Business Acronyms

| Term | Type | Business Meaning |
|------|------|------------------|
| SOD | Acronym | Service Order Data - the telecom order fulfillment record that triggers downstream billing, provisioning, and cancellation workflows |
| FTTH | Business Term | Fiber To The Home - fiber-optic broadband internet service |
| BBR | Business Term | B-BBR (Big Band Broadband Router) - router provision service by K-Opticom |
| OLS | Acronym | Optical Line Terminal Settings - optical line terminal configuration for phone services |
| SIP | Acronym | Session Initiation Protocol - VoIP (Voice over IP) communication protocol |
| Radius | Acronym | Remote Authentication Dial-In User Service - network authentication protocol for telephone service access |
| ISP | Acronym | Internet Service Provider - internet connectivity service (My Home Page type) |
| VA | Acronym | Virtual Accessory - optional add-on device/service for telephone contracts |
| WiMAX | Business Term | Wireless MAN (Mobile Access) - wireless broadband service by UQ Communications |
| e-mobile | Business Term | e-mobile 3G mobile service (7.2M/21M data plans) |
| Spot WiFi | Business Term | Spot WiFi - public/private WiFi hotspot service with fixed-fee unlimited plan |

### Data Fields

| Term | Type | Business Meaning |
|------|------|------------------|
| svc_kei_no | Field | Service contract number - unique identifier for a service contract line item |
| svc_kei_ucwk_no | Field | Service contract detail number - internal tracking ID for service contract modifications |
| ido_div | Field | Movement division - classifies the type of contract change (cancellation, forced cancellation, cancel, etc.) |
| mskm_dtl_no | Field | Application detail number - matching key to link optional/device services to the main contract |
| same_trn_no | Field | Same transaction number - shared transaction ID for batch cancellation of related services |
| op_svc_kei_no | Field | Optional service contract number - identifier for an optional service line item |
| op_svc_cd | Field | Optional service code - classifies the type of optional service (Email, HP, etc.) |
| pcrs_cd | Field | Price course code - billing plan/course identifying the specific service tier |
| kktk_svc_kei_no | Field | Device provision service contract number - identifier for a device (router) service contract |
| kiki_seizo_no | Field | Device manufacturing serial number - unique serial number of a provisioned device |
| taknkiki_model_cd | Field | In-home device model code - classification code for the type of in-home device |
| svc_dlre_cd | Field | Service cancellation reason code - classifies the reason for service cancellation |
| op_mskm_dtl_no | Field | Optional service application detail number - the application detail number for an optional service |
| itntokiKiboUm | Field | Transfer ticket desire indicator - whether the customer desires a transfer ticket (0=no, 1=yes) |
| itntokiAddCd | Field | Transfer ticket registration code - classifies the type of transfer ticket (1=new transfer, 2=cancellation-based, 3=pause-based) |

---

*Document generated from source file: JKKAdchgCancelHakkoSODCC.java, lines 5697-6821 (1125 LOC)*
*Source method Javadoc: 解約オーダ制御処理 (Cancellation Order Control Processing)*
