# Business Logic — JKKHakkoSODCC.htelNoDslOdrCtrl() [605 LOC]

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

## 1. Role

### JKKHakkoSODCC.htelNoDslOdrCtrl()

This method performs the end-to-end order control processing for a **light telephony (hikari denwa) number cancellation** (光電話番号解約 — "Hikari telephone number cancellation order control"). It is the central dispatch hub that orchestrates the creation of multiple Service Order Data (SOD) records depending on the customer's service configuration, device setup, and pending order state.

The method handles two primary **service configurations**: (1) standard devices without multi-function routers, and (2) multi-function router setups (multi-func router / 多機能ルーター) which include VA (Virtual Apartment / 宅内VA) indoor terminal equipment. For each configuration, it branches into distinct SOD creation paths.

It implements a **routing/dispatch design pattern** — extracting service parameters, checking pending Z1 (光電話新規契約オーダ — light telephone new-contract order) state, and then routing to appropriate cancellation SOD registrations (SIP cancellation/deletion, OLS cancellation/deletion, ENUM deletion, emergency notification deletion). When a Z1 order is already pending, the method returns early without performing further SOD creation.

The method also handles **forwarded phone (転送電話) service agreements** — if the customer had a forwarded phone service that was already cancelled or has matching application detail numbers, it creates operation settings order control SOD instead. Finally, it always registers **pause SOD** (for scheduled service suspensions) and conditionally registers **emergency notification deletion** SOD.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["htelNoDslOdrCtrl start"])
    START --> EX1["Extract SOD maps and basic info"]
    EX1 --> E1["getSame_trn_no - get same processing number"]
    E1 --> E2["searchSvcKeiUcwk - service contract details agreement"]
    E2 --> E3["callEKK0191A010SC - VA port number retrieval"]
    E3 --> E4["callEKK1041B001SC - order settings list"]
    E4 --> LOOP1["Loop through eKK1041B001 results"]
    LOOP1 --> CHECK_YOKYU{"RCNT_YOKYU_SBT_CD equals 03<br/>or 08?"}
    CHECK_YOKYU -->|Yes| SET_SKIP["can_skip_delsod = true"]
    SET_SKIP --> END_LOOP1
    CHECK_YOKYU -->|No| END_LOOP1
    END_LOOP1["End of order settings list loop"] --> CHECK_Z1{"isZ1Ordered?"}
    CHECK_Z1 -->|false| NO_Z1_PATH["Z1 order not yet processed"]
    CHECK_Z1 -->|true| HAS_Z1_PATH["Z1 order already processed"]
    NO_Z1_PATH --> CHECK_BMP{"BMP_UM equals 1?"}
    CHECK_BMP -->|No| OP_CHECK["getOpSvcKei4Eohtel"]
    OP_CHECK --> OP_LOOP["Loop through opSvcKei4Eohtel"]
    OP_LOOP --> OP_STAT{"opSvcKeiStat equals 910<br/>or 920?"}
    OP_STAT -->|Yes| CALL_ADD_SIP229["addSOD 229 - SIP cancellation"]
    CALL_ADD_SIP229 --> CALL_ADD_SIP230["addSOD 230 - SIP deletion"]
    CALL_ADD_SIP230 --> ENUM_CHECK{"isTajgsTelNo AND<br/>isMonaiBmp?"}
    ENUM_CHECK -->|Yes| CALL_ENUM["addSOD 266 - ENUM deletion"]
    ENUM_CHECK -->|No| OP_BREAK["break"]
    CALL_ENUM --> OP_BREAK
    OP_STAT -->|No| OP_NEXT["continue"]
    OP_NEXT --> OP_LOOP_END["End opSvcKei4Eohtel loop"]
    OP_LOOP_END --> Z1_EARLY_RETURN["return param"]
    CHECK_BMP -->|Yes| Z1_EARLY_RETURN
    HAS_Z1_PATH --> CALL_EG["callEKK0191A010SC chaf +<br/>callEKK0341B008_02SC"]
    CALL_EG --> EG_CHECK{"kktkSvcCd=C004 AND<br/>chf_vaKikiChgNo=kikiChgNo<br/>AND idoDiv=00067?"}
    EG_CHECK -->|Yes| REPLACE_LIST["replace msg list"]
    REPLACE_LIST --> CHK_TAKINO["checkTakinoRT"]
    EG_CHECK -->|No| CHK_TAKINO
    CHK_TAKINO --> TAKINO_0{"takino_flg = 0?"}
    TAKINO_0 -->|Yes| MAIN_LOOP["Loop through device list"]
    TAKINO_0 -->|No| AFTER_TAKINO["skip main loop"]
    MAIN_LOOP --> IS_REGAL{"isRegalVaKiki?"}
    IS_REGAL -->|No| LOOP_CONT["continue"]
    IS_REGAL -->|Yes| KKTK_STAT{"kktkSvcKeiStat 910/920?"}
    KKTK_STAT -->|Yes| LOOP_CONT
    KKTK_STAT -->|No| SET_KKTK_INFO["Set kktkSvcKeiNo,<br/>kktkGeneAddDtm,<br/>vaKikiSeizoNo"]
    SET_KKTK_INFO --> TAK_SUB["takino_flg=1->401,<br/>4->404,<br/>else->default"]
    TAK_SUB --> SET_FIELDS["Set this.svc_kei_ucwk_no,<br/>kktk_svc_kei_no,<br/>taknkiki_model_cd,<br/>kiki_seizo_no"]
    SET_FIELDS --> GET_0251["getEKK0251B001SC"]
    GET_0251 --> PORT_CHK{"vaPortNo blank?"}
    PORT_CHK -->|Yes| TAK_VA{"takino_flg = 0/3/4?"}
    TAK_VA -->|0| OLS_CANCEL["addSOD 215 - OLS cancellation"]
    OLS_CANCEL --> OLS_DEL["addSOD 216 - OLS deletion"]
    OLS_DEL --> VA_EARLY_RETURN["return param"]
    TAK_VA -->|4| MRT_VA_CANCEL["addTakinoSOD 417"]
    MRT_VA_CANCEL --> VA_EARLY_RETURN
    TAK_VA -->|3| MRT_CANCEL2["addTakinoSOD 421"]
    MRT_CANCEL2 --> MRT_DEL2["addTakinoSOD 422"]
    MRT_DEL2 --> VA_EARLY_RETURN
    TAK_VA -->|Other| NO_ACT["no action"]
    NO_ACT --> VA_EARLY_RETURN
    PORT_CHK -->|No| TAK_VA2{"takino_flg = 0?"}
    TAK_VA2 -->|Yes| ADD_209["addSOD 209 - OLS phone cancel"]
    TAK_VA2 -->|!=9| ADD_410["addTakinoSOD 410"]
    TAK_VA2 -->|9| NO_ACT2["no action"]
    ADD_209 --> ADD_TOKI["addTokiSOD"]
    ADD_410 --> ADD_TOKI
    NO_ACT2 --> ADD_TOKI
    ADD_TOKI --> SKIP_DEL{"can_skip_delsod?"}
    SKIP_DEL -->|false| CALL_EMG["addSOD 252 - emergency del"]
    SKIP_DEL -->|true| FINAL_RET["return param"]
    CALL_EMG --> FINAL_RET
    VA_EARLY_RETURN --> FINAL_RET
    Z1_EARLY_RETURN --> FINAL_RET
    FINAL_RET --> END(["htelNoDslOdrCtrl end"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Session manager handle carrying session context (e.g., user authentication, transaction context) used for all service component calls and data retrieval |
| 2 | `param` | `IRequestParameterReadWrite` | Parameter object containing model groups and control maps; serves as the accumulator for SOD records created during processing — each `addSOD`/`addTakinoSOD`/`addTokiSOD` call returns an updated `param` with appended order data |
| 3 | `fixedText` | `String` | User-defined arbitrary string, passed through to operation settings order control processing (`opSetOdrCtrl`) for audit/log traceability; not used in the main cancellation flow |
| 4 | `sodMap` | `HashMap<String, Object>` | Service Order Data map containing three sub-maps: `sod_kihon_info` (SOD basic information — SYSID, move classification), `svc_kei_info` (service contract information — service contract number), and `svc_kei_ucwk_info` (service contract detail information — service contract detail number, post-change generation registration timestamp) |

**Instance fields read by this method:**

| Field | Business Meaning |
|-------|------------------|
| `this.same_trn_no` | Same processing number — used for transaction deduplication |
| `this.mskm_dtl_no` | Application detail number — used to match operation service contracts |
| `this.svc_kei_ucwk_no` | Service contract detail number — set for downstream use |
| `this.svc_kei_ucwk_gadtm` | Post-change service contract detail generation registration timestamp |
| `this.kktk_svc_kei_no` | Device provision service contract number |
| `this.kktk_svc_kei_gadtm` | Device provision service contract generation registration timestamp |
| `this.taknkiki_model_cd` | Indoor terminal model code — VA (Virtual Apartment) equipment model |
| `this.kiki_seizo_no` | Device manufacturing serial number |
| `this.svc_kei_kaisen_ucwk_no` | Service contract line item detail number |
| `this.svc_kei_kaisen_ucwk_gadtm` | Service contract line item generation registration timestamp |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JKKHakkoSODCC.getSame_trn_no` | EKK1081C011 | Same processing number table | Retrieves the same processing number for transaction deduplication |
| R | `JKKHakkoSODCC.searchSvcKeiUcwk` | EKK0161A010 | Service contract detail agreement table | Fetches service contract detail agreement (svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm) for agreement verification |
| R | `JKKHakkoSODCC.callEKK0191A010SC` | EKK0191A010 | VA port number agreement table | Retrieves VA (Virtual Apartment) port number, VA indoor terminal model code, VA device change number, and BMP_UM (number portability presence flag) |
| R | `JKKHakkoSODCC.callEKK1041B001SC` | EKK1041B001 | Order settings list table | Queries order settings for the telephone order type and SIP service order type to check if pending cancellation/deletion |
| R | `JKKHakkoSODCC.getEKK1041B001result` | EKK1041B001 | Order settings list table (result) | Returns the list of order settings for checking RCNT_YOKYU_SBT_CD (required type code) |
| R | `JKKHakkoSODCC.findZ1OrderHasBeenSentSvcKeiUcwk` | EKK (Z1 order) | Z1 order table | Checks whether a Z1 (light telephone new-contract order) has already been sent for this service contract |
| R | `JKKHakkoSODCC.getOpSvcKei4Eohtel` | EKK0351A010 / EKK0351B002 | Operation service contract agreement/list tables | Retrieves forwarded phone service contract information (op_svc_kei_stat, mskm_dtl_no, op_svc_kei_no, gene_add_dtm) |
| R | `JKKHakkoSODCC.callEKK0341B008SC` | EKK0341B008 | Device provision service contract list table | Queries device provision service contracts (kktk_svc_cd, svc_kei_ucwk_no, kiki_chg_no, ido_div) |
| R | `JKKHakkoSODCC.callEKK0341B008_02SC` | EKK0341B022 | Device provision service contract list table (variant 2) | Retrieves device provision service contracts for EG swap consideration (IDO_DIV_00067) |
| R | `JKKHakkoSODCC.getEKK0251B001SC` | EKK0251B001 | Service contract line item detail list table | Retrieves service contract line item detail numbers (svc_kei_kaisen_ucwk_no, gene_add_dtm) |
| C | `JKKHakkoSODCC.addSOD` | JKKHakkoSODCC | SOD (Service Order Data) table | Creates a new SOD record with the given order content code. Used for: OLS cancellation (215), OLS deletion (216), SIP cancellation (229), SIP deletion (230), ENUM deletion (266), emergency notification deletion (252) |
| C | `JKKHakkoSODCC.addTakinoSOD` | JKKHakkoSODCC | SOD (Service Order Data) table | Creates a multi-function router SOD record. Used for: multi-func router VA cancel (417), multi-func router cancel+delete (421+422), OLS phone number cancellation (410) |
| C | `JKKHakkoSODCC.addTokiSOD` | JKKHakkoSODCC | Pause SOD table | Registers a pause (suspend) SOD based on the move classification code (ido_div) |
| U | `JKKHakkoSODCC.edit4OpSetOdrCtrl` | JKKHakkoSODCC | Operation settings order control map | Builds the operation settings order control map for operation-based order processing |
| - | `JKKHakkoSODCC.opSetOdrCtrl` | JKKHakkoSODCC | Operation service order processing | Executes operation settings order control for forwarded phone cancellation (dispatcher number notification only) |
| - | `JKKHakkoSODCC.checkTakinoRT` | JKKHakkoSODCC | - | Determines if the customer uses a multi-function router; returns flag code (0=standard, 1=router only, 4=VA only, 3=both) |
| - | `JKKHakkoSODCC.isBlank` | JKKHakkoSODCC | - | Null/blank string check utility |
| - | `JKKHakkoSODCC.shkkaChr` | JKKHakkoSODCC | - | Character deep clone (copy) utility |
| - | `JKKHakkoSODCC.shkkaMap` | JKKHakkoSODCC | - | HashMap deep clone utility |
| - | `JKKHakkoSODCC.isItenNoGuideTokiChu` | JKKHakkoSODCC | - | Checks if the customer is in a number portability transfer pause period |
| - | `JKKHakkoSODCC.isTajgsTelNo` | JKKHakkoSODCC | - | Checks if the phone number belongs to the provider's own number range |
| - | `JKKHakkoSODCC.isMonaiBmp` | JKKHakkoSODCC | - | Checks if the customer is not a number porting customer |
| - | `JKKHakkoSODCC.isRegalVaKiki` | JKKHakkoSODCC | - | Determines if the device is a legitimate VA (Virtual Apartment) device for light telephony |
| - | `JKKBatClarisAuthCrdt.isNullBlank` | - | - | Null/blank check utility |
| - | `JKKBatClearPassBase.isNullBlank` | - | - | Null/blank check utility |
| - | `JKKBatClearPassCrdt.isNullBlank` | - | - | Null/blank check utility |
| - | `JBSbatACEoElectPrcInfoTrkm.isNullBlank` | - | - | Null/blank check utility |
| - | `JBSbatACTrgtSvcKeiMake.isNullBlank` | - | - | Null/blank check utility |

### Resolved Constant Values

| Constant | Actual Value | Business Meaning |
|----------|-------------|------------------|
| `ORDER_SBT_CD_TEL` | `"2"` | Order type code: 2 = Telephone |
| `SVC_ORDER_CD_SIP` | `"21"` | Service order code: 21 = SIP |
| `YOKYU_SBT_CD_DSL` | `"03"` | Required type code: 03 = Cancellation |
| `YOKYU_SBT_CD_DEL` | `"08"` | Required type code: 08 = Deletion |
| `BMP_UM_ARI` | `"1"` | Number portability: 1 = Present (has number port) |
| `FUNC_CODE_1` | `"1"` | Function code: 1 |
| `FUNC_CODE_4` | `"4"` | Function code: 4 |
| `ODR_NAIYO_CD_209` | `"209"` | Order content: OLS settings — telephone number cancellation |
| `ODR_NAIYO_CD_215` | `"215"` | Order content: OLS settings — cancellation |
| `ODR_NAIYO_CD_216` | `"216"` | Order content: OLS settings — deletion |
| `ODR_NAIYO_CD_229` | `"229"` | Order content: SIP — cancellation |
| `ODR_NAIYO_CD_230` | `"230"` | Order content: SIP — deletion |
| `ODR_NAIYO_CD_252` | `"252"` | Order content: Emergency notification — deletion |
| `ODR_NAIYO_CD_266` | `"266"` | Order content: ENUM settings — deletion |
| `ODR_NAIYO_CD_410` | `"410"` | Order content: Multi-func router settings — change (VA function, telephone number cancellation) |
| `ODR_NAIYO_CD_417` | `"417"` | Order content: Multi-func router settings — change (VA function, cancellation) |
| `ODR_NAIYO_CD_421` | `"421"` | Order content: Multi-func router settings — cancellation (VA function, cancellation) |
| `ODR_NAIYO_CD_422` | `"422"` | Order content: Multi-func router settings — deletion (VA function, cancellation) |
| `OP_SVC_CD_TENSO` | `"B024"` | Operation service code: B024 = Forwarded phone |
| `OP_SVC_CD_DSP_ME` | `"B022"` | Operation service code: B022 = Dispatcher number notification (free) |
| `OP_SVC_CD_N050` | `"B029"` | Operation service code: B029 = 050 number plus option |
| `KKTK_SVC_CD_HTEL_VA` | `"C004"` | Device provision service code: C004 = Light telephony VA |
| `SVC_KEI_STAT_910` | `"910"` | Contract status: 910 = Cancellation completed |
| `SVC_KEI_STAT_920` | `"920"` | Contract status: 920 = Cancellation completed |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | JKKHakkoSODCC.hakkoSOD | `hakkoSOD` -> `htelNoDslOdrCtrl` | `addSOD [C]`, `addTokiSOD [C]`, `addTakinoSOD [C]`, `opSetOdrCtrl [-]`, `edit4OpSetOdrCtrl [U]`, `callEKK0191A010SC [R]`, `callEKK1041B001SC [R]`, `callEKK0341B008SC [R]`, `callEKK0341B008_02SC [R]`, `getEKK0251B001SC [R]`, `getSame_trn_no [R]`, `getOpSvcKei4Eohtel [R]`, `findZ1OrderHasBeenSentSvcKeiUcwk [R]`, `searchSvcKeiUcwk [R]`, `addSOD [C] x6`, `addTakinoSOD [C] x2`, `addTokiSOD [C]` |

**Terminal operations reached from this method:**

| # | Terminal Operation | CRUD | Entity / Description |
|---|-------------------|------|---------------------|
| 1 | `addSOD(handle, param, 229)` | C | SIP cancellation SOD |
| 2 | `addSOD(handle, param, 230)` | C | SIP deletion SOD |
| 3 | `addSOD(handle, param, 266)` | C | ENUM deletion SOD |
| 4 | `addSOD(handle, param, 215)` | C | OLS cancellation SOD |
| 5 | `addSOD(handle, param, 216)` | C | OLS deletion SOD |
| 6 | `addSOD(handle, param, 209)` | C | OLS settings telephone cancellation SOD |
| 7 | `addSOD(handle, param, 252)` | C | Emergency notification deletion SOD |
| 8 | `addTakinoSOD(handle, param, 410)` | C | Multi-func router VA telephone cancellation SOD |
| 9 | `addTakinoSOD(handle, param, 417)` | C | Multi-func router VA cancellation SOD |
| 10 | `addTakinoSOD(handle, param, 421)` | C | Multi-func router cancel+VA cancellation SOD |
| 11 | `addTakinoSOD(handle, param, 422)` | C | Multi-func router delete+VA cancellation SOD |
| 12 | `addTokiSOD(handle, param, ido_div)` | C | Pause SOD registration |
| 13 | `edit4OpSetOdrCtrl(...)` | U | Operation settings order control map creation |
| 14 | `opSetOdrCtrl(handle, param, fixedText, opSodMap)` | - | Operation settings order control execution |

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Extract SOD sub-maps and basic info (L14719)

> Extract three sub-maps from the SOD map and deep clone each, then extract key fields from them.

| # | Type | Code |
|---|------|------|
| 1 | SET | `sod_kihon_info_Map = (HashMap)sodMap.get(JKKHakkoSODConstCC.SOD_KIHON_INFO)` |
| 2 | SET | `svc_kei_info_Map = (HashMap)sodMap.get(JKKHakkoSODConstCC.SVC_KEI_INFO)` |
| 3 | SET | `svc_kei_ucwk_info_Map = (HashMap)sodMap.get(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO)` |
| 4 | EXEC | `sod_kihon_info_Map = shkkaMap(sod_kihon_info_Map)` — deep clone the SOD basic info map |
| 5 | EXEC | `svc_kei_info_Map = shkkaMap(svc_kei_info_Map)` — deep clone the service contract info map |
| 6 | EXEC | `svc_kei_ucwk_info_Map = shkkaMap(svc_kei_ucwk_info_Map)` — deep clone the service contract detail info map |
| 7 | SET | `sys_id = (String)sod_kihon_info_Map.get(JKKHakkoSODConstCC.INFO_SYSID)` |
| 8 | SET | `ido_div = (String)sod_kihon_info_Map.get(JKKHakkoSODConstCC.INFO_IDO_DIV)` |
| 9 | SET | `svc_kei_no = (String)svc_kei_info_Map.get(JKKHakkoSODConstCC.INFO_SVC_KEI_NO)` |
| 10 | SET | `svc_kei_ucwk_no = (String)svc_kei_ucwk_info_Map.get(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO)` |
| 11 | SET | `chaf_svc_kei_ucwk_gene_add_dtm = (String)svc_kei_ucwk_info_Map.get(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM)` |

**Block 2** — [SET] Same processing number and service contract details agreement (L14741)

| # | Type | Code |
|---|------|------|
| 1 | SET | `sameTrnNo = new String[1]` — array for same processing number output |
| 2 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 3 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 4 | SET | `eKK0161A010Hash = searchSvcKeiUcwk(handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 5 | SET | `svcKeiUcwkMskmDtlNo = (String)eKK0161A010Hash.get(EKK0161A010CBSMsg1List.MSKM_DTL_NO)` — application detail number |

**Block 3** — [SET] Prepare for VA port number retrieval (L14752)

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashUcwk = new HashMap()` |
| 2 | SET | `resultHashUcwk = new HashMap()` |
| 3 | SET | `inHashUcwk.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 4 | SET | `inHashUcwk.put(JKKHakkoSODConstCC.GENE_ADD_DTM, chaf_svc_kei_ucwk_gene_add_dtm)` |

**Block 4** — [CALL + IF] Call VA port number retrieval service (L14757)

> Calls EKK0191A010 to retrieve VA port number and device information.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callEKK0191A010SC(param, handle, inHashUcwk, resultHashUcwk, JKKHakkoSODConstCC.FUNC_CODE_1)` |
| 2 | IF | `if (0 != statusCode)` → throw `CCException` with `SCCallException` |
| 3 | SET | `eKK0191A010Hash = (HashMap)resultHashUcwk.get(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0191A010)` |
| 4 | SET | `vaPortNo = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.VA_PORT_NO)` |
| 5 | SET | `vaTaknkikiModelCd = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.VA_TAKNKIKI_MODEL_CD)` |
| 6 | SET | `vaKikiChgNo = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.VA_KIKI_CHG_NO)` |

**Block 5** — [SET + FOR + IF] Check order settings list for pending cancellation/deletion (L14772)

> Queries order settings for SIP service to determine if cancellation/deletion SOD can be skipped (v72.00.01 ANK-4494-00-00).

| # | Type | Code |
|---|------|------|
| 1 | SET | `can_skip_delsod = false` |
| 2 | CALL | `callEKK1041B001SC(param, handle, JKKHakkoSODConstCC.ORDER_SBT_CD_TEL="2", JKKHakkoSODConstCC.SVC_ORDER_CD_SIP="21", null, svc_kei_no, null, null)` |
| 3 | SET | `eKK1041B001HashList = getEKK1041B001result(param)` |
| 4 | FOR | `for (HashMap eKK1041B001Hash : eKK1041B001HashList)` |
| 5 | SET | `tmpSvcKeiUcwkNo = (String)eKK1041B001Hash.get(EKK1041B001CBSMsg1List.SVC_KEI_UCWK_NO)` |
| 6 | IF | `if (svc_kei_ucwk_no.equals(tmpSvcKeiUcwkNo))` — found matching service contract detail number |

  **Block 5.1** — [IF + SET] Check for cancellation or deletion required type code (L14781)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `RCNT_YOKYU_SBT_CD equals JKKHakkoSODConstCC.YOKYU_SBT_CD_DSL="03" (Cancellation) OR YOKYU_SBT_CD_DEL="08" (Deletion)` |
  | 2 | SET | `can_skip_delsod = true` |
  | 3 | SET | `break` |

**Block 6** — [IF] Z1 order pending check (L14791)

> If the Z1 (light telephone new-contract order) has NOT yet been sent, handle forwarded phone SOD cancellation paths.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isZ1Ordered = findZ1OrderHasBeenSentSvcKeiUcwk(param, handle, svc_kei_no, svc_kei_ucwk_no)` |
| 2 | IF | `if (!isZ1Ordered)` — Z1 order not yet processed |

  **Block 6.1** — [IF] BMP_UM check (L14794)

  > Only process if number portability is NOT present (BMP_UM != "1").

  | # | Type | Code |
  |---|------|------|
  | 1 | SET | `bmpUm = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.BMP_UM)` |
  | 2 | IF | `if (!JKKHakkoSODConstCC.BMP_UM_ARI="1".equals(bmpUm))` — number porting NOT present |

    **Block 6.1.1** — [CALL + FOR] Check forwarded phone service contracts (L14798)

    > Get forwarded phone (転送電話) service contracts and check for cancelled ones that match the application detail number.

    | # | Type | Code |
    |---|------|------|
    | 1 | CALL | `kk0351MapList = getOpSvcKei4Eohtel(param, handle, svc_kei_ucwk_no, JKKHakkoSODConstCC.OP_SVC_CD_TENSO="B024")` |
    | 2 | FOR | `for (HashMap eKK0351A010SCHash : kk0351MapList)` |
    | 3 | SET | `opSvcKeiStat = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.OP_SVC_KEI_STAT)` |
    | 4 | SET | `opSvcKeiMskmDtlNo = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.MSKM_DTL_NO)` |
    | 5 | IF | `opSvcKeiStat equals SVC_KEI_STAT_910="910" (Cancellation completed) OR SVC_KEI_STAT_920="920" (Cancellation completed)` |

      **Block 6.1.1.1** — [IF + CALL] SIP cancellation/deletion (L14807)

      > Set instance fields and create SIP cancellation + deletion SOD.

      | # | Type | Code |
      |---|------|------|
      | 1 | IF | `opSvcKeiMskmDtlNo is not null/blank AND opSvcKeiMskmDtlNo.equals(this.mskm_dtl_no)` |
      | 2 | SET | `this.svc_kei_ucwk_no = new String[1]` |
      | 3 | SET | `this.svc_kei_ucwk_no[0] = svc_kei_ucwk_no` |
      | 4 | SET | `this.svc_kei_ucwk_gadtm = new String[1]` |
      | 5 | SET | `this.svc_kei_ucwk_gadtm[0] = chaf_svc_kei_ucwk_gene_add_dtm` |
      | 6 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_229="229")` — SIP cancellation |
      | 7 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_230="230")` — SIP deletion |

      **Block 6.1.1.2** — [IF] ENUM deletion for non-provider numbers (L14820)

      > Check if the phone number is not the provider's own number and the customer has no number port — if so, register ENUM deletion SOD.

      | # | Type | Code |
      |---|------|------|
      | 1 | IF | `!isTajgsTelNo(handle, param, telno) AND isMonaiBmp(handle, param, telno)` |
      | 2 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_266="266")` — ENUM deletion |
      | 3 | SET | `break` |

    **Block 6.1.2** — [RETURN] Early return (L14835)

    > Since Z1 order is not yet processed, return immediately — remaining processing handled elsewhere.

    | # | Type | Code |
    |---|------|------|
    | 1 | RETURN | `return param` |

**Block 7** — [SET] Prepare for device provision service contract retrieval (L14842)

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashKktk = new HashMap()` |
| 2 | SET | `resultHashKktk = new HashMap()` |
| 3 | SET | `inHashKktk.put(JKKHakkoSODConstCC.SVC_KEI_NO, svc_kei_no)` |

**Block 8** — [CALL + IF] Call device provision service contract list (L14846)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callEKK0341B008SC(param, handle, inHashKktk, resultHashKktk, JKKHakkoSODConstCC.FUNC_CODE_1)` |
| 2 | IF | `if (0 != statusCode)` → throw `CCException` |
| 3 | SET | `msgEKK0341B022SCList = (CAANMsg[])resultHashKktk.get(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0341B022)` |

**Block 9** — [SET + CALL] EG swap consideration processing (L14856)

> When VA device retrieval requires EG (equipment group) switching consideration, retrieve recorded device information and compare device change numbers. If IDs match and move classification is 00067 (EG switch), replace the result list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `chaf_InHashUcwk = new HashMap()` |
| 2 | SET | `chaf_resultHashUcwk = new HashMap()` |
| 3 | SET | `chaf_InHashUcwk.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 4 | SET | `chaf_InHashUcwk.put(JKKHakkoSODConstCC.GENE_ADD_DTM, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 5 | CALL | `statusCode = callEKK0191A010SC(param, handle, chaf_InHashUcwk, chaf_resultHashUcwk, JKKHakkoSODConstCC.FUNC_CODE_1)` |
| 6 | IF | `if (0 != statusCode)` → throw `CCException` |
| 7 | SET | `chafEKK0191A010Hash = (HashMap)chaf_resultHashUcwk.get(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0191A010)` |
| 8 | SET | `chaf_vaKikiChgNo = shkkaChr((String)chafEKK0191A010Hash.get(EKK0191A010CBSMsg1List.VA_KIKI_CHG_NO))` |
| 9 | SET | `inHashKktk.put(JKKHakkoSODConstCC.SVC_KEI_NO, svc_kei_no)` |
| 10 | CALL | `statusCode = callEKK0341B008_02SC(param, handle, inHashKktk, resultHashKktk, JKKHakkoSODConstCC.FUNC_CODE_4)` |
| 11 | IF | `if (0 != statusCode)` → throw `CCException` |
| 12 | SET | `msgEKK0341B022_02SCList = (CAANMsg[])resultHashKktk.get(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0341B022)` |

  **Block 9.1** — [IF + FOR] EG swap list replacement check (L14872)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `msgEKK0341B022_02SCList != null && length > 0` |
  | 2 | FOR | `for (int i = 0; i < msgEKK0341B022_02SCList.length; i++)` |
  | 3 | SET | `eKK0341B022SCHash = msgEKK0341B022SCList[i].getMsgData()` |
  | 4 | SET | `kktkSvcCd = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.KKTK_SVC_CD)` |
  | 5 | SET | `kikiChgNo = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.KIKI_CHG_NO)` |
  | 6 | SET | `idoDiv = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.IDO_DIV)` |
  | 7 | IF | `if (JKKSvcConst.KKTK_SVC_CD_HTEL_VA="C004".equals(kktkSvcCd))` — VA device |

    **Block 9.1.1** — [IF] EG swap matching (L14882)

    | # | Type | Code |
    |---|------|------|
    | 1 | IF | `chaf_vaKikiChgNo.equals(kikiChgNo) && "00067".equals(idoDiv)` — device change numbers match AND EG switch classification |
    | 2 | SET | `msgEKK0341B022SCList = msgEKK0341B022_02SCList` — replace with EG-swapped list |

**Block 10** — [SET] Initialize device provision fields (L14893)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiNo = ""` |
| 2 | SET | `kktkGeneAddDtm = ""` |

**Block 11** — [IF] Multi-function router feature check (L14898)

> Determines whether the customer uses a multi-function router. If `takino_flg == 0`, the customer does NOT use a multi-function router.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `takino_flg = checkTakinoRT(handle, param)` |
| 2 | IF | `if (takino_flg == 0)` — not a multi-function router customer |

**Block 12** — [FOR + IF] Main device list processing loop (L14903)

> Loop through all device provision service contracts and find the matching VA device.

| # | Type | Code |
|---|------|------|
| 1 | FOR | `for (int i = 0; i < msgEKK0341B022SCList.length; i++)` |
| 2 | SET | `eKK0341B022SCHash = msgEKK0341B022SCList[i].getMsgData()` |
| 3 | SET | `kktkSvcKeiUcwkNo = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.SVC_KEI_UCWK_NO)` |
| 4 | SET | `vaTaknkikiModelCd = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.TAKNKIKI_MODEL_CD)` |

  **Block 12.1** — [IF] VA device check via isRegalVaKiki (L14920)

  | # | Type | Code |
  |---|------|------|
  | 1 | SET | `kokanBfKiki = new HashMap()` |
  | 2 | IF | `if (isRegalVaKiki(handle, param, eKK0341B022SCHash, vaTaknkikiModelCd, null, ido_div, vaKikiChgNo, kokanBfKiki))` |

    **Block 12.1.1** — [IF] Skip cancelled device contracts (L14926)

    | # | Type | Code |
    |---|------|------|
    | 1 | SET | `kktkSvcKeiStat = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.KKTK_SVC_KEI_STAT)` |
    | 2 | IF | `kktkSvcKeiStat equals SVC_KEI_STAT_910="910" OR SVC_KEI_STAT_920="920"` — skip cancelled contracts |
    | 3 | SET | `continue` |

    **Block 12.1.2** — [SET] Set device provision fields (L14933)

    | # | Type | Code |
    |---|------|------|
    | 1 | SET | `kktkSvcKeiNo = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.KKTK_SVC_KEI_NO)` |
    | 2 | SET | `kktkGeneAddDtm = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.GENE_ADD_DTM)` |
    | 3 | SET | `vaKikiSeizoNo = (String)eKK0341B022SCHash.get(EKK0341B022CBSMsg1List.KIKI_SEIZO_NO)` |

    **Block 12.1.3** — [IF] Repair/swap device handling (L14940)

    > If kokanBfKiki (repair before device map) is populated, override fields with pre-repair device data.

    | # | Type | Code |
    |---|------|------|
    | 1 | IF | `kokanBfKiki != null && !kokanBfKiki.isEmpty()` |
    | 2 | SET | Override kktkSvcKeiNo, kktkGeneAddDtm, vaKikiSeizoNo, vaTaknkikiModelCd from kokanBfKiki |

    **Block 12.1.4** — [IF] Serial number presence check (L14947)

    | # | Type | Code |
    |---|------|------|
    | 1 | IF | `!isBlank(vaKikiSeizoNo)` — device serial number is present |
    | 2 | SET | `break` — found the matching VA device |

**Block 13** — [SET] Set instance fields from device data (L14957)

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.svc_kei_ucwk_no = new String[1]; this.svc_kei_ucwk_no[0] = svc_kei_ucwk_no` |
| 2 | SET | `this.svc_kei_ucwk_gadtm = new String[1]; this.svc_kei_ucwk_gadtm[0] = chaf_svc_kei_ucwk_gene_add_dtm` |
| 3 | SET | `this.kktk_svc_kei_no = new String[1]; this.kktk_svc_kei_no[0] = kktkSvcKeiNo` |
| 4 | SET | `this.kktk_svc_kei_gadtm = new String[1]; this.kktk_svc_kei_gadtm[0] = kktkGeneAddDtm` |
| 5 | SET | `this.taknkiki_model_cd = new String[1]; this.taknkiki_model_cd[0] = vaTaknkikiModelCd` |
| 6 | SET | `this.kiki_seizo_no = new String[1]; this.kiki_seizo_no[0] = vaKikiSeizoNo` |

**Block 14** — [CALL] Get service contract line item details (L15021)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `eKK0251B001Hash = getEKK0251B001SC(param, handle, svc_kei_no, JKKHakkoSODConstCC.FUNC_CODE_1)` |
| 2 | SET | `this.svc_kei_kaisen_ucwk_no = (String)eKK0251B001Hash.get(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO)` |
| 3 | SET | `this.svc_kei_kaisen_ucwk_gadtm = (String)eKK0251B001Hash.get(EKK0251B001CBSMsg1List.GENE_ADD_DTM)` |

**Block 15** — [IF] VA port number branch — no port number set (L15027)

> When no port number is set on the VA, create OLS cancellation SOD based on multi-function router flag.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (isBlank(vaPortNo))` — VA port number is blank |

  **Block 15.1** — [IF] Standard device path (L15032)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `if (takino_flg == 0)` — standard device (no multi-function router) |
  | 2 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_215="215")` — OLS cancellation |
  | 3 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_216="216")` — OLS deletion |

  **Block 15.2** — [ELSE-IF] VA-only multi-func router (L15036)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `else if (takino_flg == 4)` — VA-only multi-function router |
  | 2 | CALL | `param = addTakinoSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_417="417")` — multi-func router VA cancel |

  **Block 15.3** — [ELSE-IF] Dual-use multi-func router (L15040)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `else if (takino_flg == 3)` — both router and VA in use |
  | 2 | CALL | `param = addTakinoSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_421="421")` — multi-func router cancel VA |
  | 3 | CALL | `param = addTakinoSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_422="422")` — multi-func router delete VA |

  **Block 15.4** — [RETURN] Early return (L15047)

  | # | Type | Code |
  |---|------|------|
  | 1 | RETURN | `return param` |

**Block 16** — [ELSE] VA port number is set — telephone number cancellation (L15050)

> When VA port number IS set, process OLS settings with telephone number cancellation.

| # | Type | Code |
|---|------|------|
| 1 | ELSE | — VA port number is set |

  **Block 16.1** — [IF + CALL] Standard device path (L15079)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `if (takino_flg == 0)` — standard device |
  | 2 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_209="209")` — OLS settings telephone number cancellation |

  **Block 16.2** — [ELSE-IF] Multi-func router path (L15083)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `else if (takino_flg != 9)` — multi-function router (any flag except 9) |
  | 2 | CALL | `param = addTakinoSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_410="410")` — multi-func router VA telephone cancellation |

**Block 17** — [CALL + IF] SIP cancellation/deletion (L15099)

> Skip SIP cancellation/deletion if the customer is in a number portability transfer pause period.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!isItenNoGuideTokiChu(param, handle, eKK0161A010Hash, eKK0191A010Hash))` — not in transfer pause period |

  **Block 17.1** — [IF] SIP cancellation/deletion (L15104)

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `if (!can_skip_delsod)` |
  | 2 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_229="229")` — SIP cancellation |
  | 3 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_230="230")` — SIP deletion |

  **Block 17.2** — [IF + IF] ENUM deletion (L15111)

  > Only process if eKK0191A010Hash is not null, customer has no number port, number is not provider's own, and can_skip_delsod is false.

  | # | Type | Code |
  |---|------|------|
  | 1 | IF | `if (eKK0191A010Hash != null)` |
  | 2 | SET | `bmpUm = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.BMP_UM)` |
  | 3 | IF | `if (!BMP_UM_ARI="1".equals(bmpUm))` — number porting NOT present |
  | 4 | IF | `if (!isTajgsTelNo(...) AND isMonaiBmp(...) AND !can_skip_delsod)` |
  | 5 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_266="266")` — ENUM deletion |

**Block 18** — [CALL + FOR] 050 number plus option processing (L15131)

> Retrieve 050 number plus option service contracts and create operation settings order control SOD for dispatcher number notification services.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kk0351MapList = getOpSvcKei4Eohtel(param, handle, svc_kei_ucwk_no, null)` |
| 2 | FOR | `for (HashMap eKK0351A010SCHash : kk0351MapList)` |
| 3 | SET | `op_svc_cd = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.OP_SVC_CD)` |
| 4 | IF | `if (OP_SVC_CD_DSP_ME="B022".equals(op_svc_cd) OR OP_SVC_CD_N050="B029".equals(op_svc_cd))` |

  **Block 18.1** — [IF + CALL] Operation settings order control (L15143)

  | # | Type | Code |
  |---|------|------|
  | 1 | SET | `kk0351No = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.OP_SVC_KEI_NO)` |
  | 2 | SET | `op_gene_add_dtm = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.GENE_ADD_DTM)` |
  | 3 | SET | `op_mskm_dtl_no = (String)eKK0351A010SCHash.get(EKK0351A010CBSMsg1List.MSKM_DTL_NO)` |
  | 4 | IF | `if (!isNullBlank(op_mskm_dtl_no) && op_mskm_dtl_no.equals(this.mskm_dtl_no))` |
  | 5 | CALL | `opSodMap = edit4OpSetOdrCtrl(ido_div, sys_id, svc_kei_no, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm, kk0351No, op_gene_add_dtm)` |
  | 6 | CALL | `opSetOdrCtrl(handle, param, fixedText, opSodMap)` |

**Block 19** — [CALL] Pause SOD registration (L15197)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `param = addTokiSOD(handle, param, this.ido_div, null)` — register pause SOD based on move classification |

**Block 20** — [IF] Emergency notification deletion (L15202)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (!can_skip_delsod)` |
| 2 | CALL | `param = addSOD(handle, param, JKKHakkoSODConstCC.ODR_NAIYO_CD_252="252")` — emergency notification deletion |

**Block 21** — [RETURN] Return processed parameter (L15208)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service contract number — unique identifier for a service contract |
| `svc_kei_ucwk_no` | Field | Service contract detail number — internal tracking ID for service contract line items |
| `svc_kei_ucwk_gene_add_dtm` | Field | Service contract detail generation registration timestamp — post-change generation registration datetime |
| `svc_kei_kaisen_ucwk_no` | Field | Service contract line item detail number |
| `ido_div` | Field | Move classification — indicates the type of contract change (new, cancellation, course change, EG swap, etc.) |
| `sys_id` | Field | SYSID — system identifier from SOD basic information |
| `kktk_svc_kei_no` | Field | Device provision service contract number |
| `kktk_svc_kei_gadtm` | Field | Device provision service contract generation registration timestamp |
| `taknkiki_model_cd` | Field | Indoor terminal model code — identifies the VA (Virtual Apartment) equipment model |
| `kiki_seizo_no` | Field | Device manufacturing serial number |
| `vaPortNo` | Field | VA port number — port number assigned to the Virtual Apartment device |
| `vaKikiChgNo` | Field | VA device change number — used for EG (equipment group) swap tracking |
| `bmpUm` | Field | BMP presence flag — whether number porting (番号ポ) is present ("1" = has number port) |
| `mskm_dtl_no` | Field | Application detail number — used to match operation service contracts |
| `same_trn_no` | Field | Same processing number — transaction deduplication key |
| SOD | Acronym | Service Order Data — core order fulfillment entity in the telecom order system |
| OLS | Business term | Optical Line terminal settings — NTT fiber optic equipment configuration service |
| SIP | Business term | Session Initiation Protocol — VoIP telephone service |
| ENUM | Business term | E.164 Number Mapping — DNS-based telephone number to SIP URI mapping service |
| VA | Business term | Virtual Apartment — indoor terminal equipment for light telephony service |
| Z1 | Business term | Light telephone new-contract order — initial order for new light telephone service |
| EG Swap | Business term | Equipment Group swap (EG切替) — moving VA equipment between equipment groups; move classification 00067 |
| Multi-func Router (多機能ルーター) | Business term | Combined router/VA device supporting both internet routing and indoor telephony |
| `takino_flg` | Field | Multi-function router feature flag — 0=standard, 1=router only, 3=dual-use, 4=VA only |
| ODR_NAIYO_CD | Field | Order content code — classifies the type of SOD being created (cancellation, deletion, SIP, OLS, ENUM, etc.) |
| `RCNT_YOKYU_SBT_CD` | Field | Required type code — indicates if the order is cancellation (03) or deletion (08) |
| `op_svc_cd` | Field | Operation service code — identifies the type of operation service (forwarded phone, dispatcher number, 050 plus option) |
| `op_svc_kei_stat` | Field | Operation service contract status — 910=cancellation completed, 920=cancelled |
| `can_skip_delsod` | Field | Flag indicating whether deletion SOD can be skipped (already issued for forced termination) |
| `isItenNoGuideTokiChu` | Method | Checks if the customer is in a number portability transfer pause period |
| `isTajgsTelNo` | Method | Checks if the phone number belongs to the provider's own number range |
| `isMonaiBmp` | Method | Checks if the customer is NOT a number porting customer |
| `isRegalVaKiki` | Method | Determines if a device is a legitimate VA device for light telephony |
| `addSOD` | Method | Creates a standard SOD record with the specified order content code |
| `addTakinoSOD` | Method | Creates a multi-function router SOD record |
| `addTokiSOD` | Method | Registers a pause (scheduled suspension) SOD based on move classification |
| `opSetOdrCtrl` | Method | Executes operation settings order control for operation-based order processing |
| `edit4OpSetOdrCtrl` | Method | Builds the operation settings order control map |
| `checkTakinoRT` | Method | Checks if the customer uses a multi-function router; returns flag code |
| `shkkaMap` | Method | Deep clone (copy) a HashMap |
| `shkkaChr` | Method | Deep clone (copy) a String (character-level) |
| `callEKK0191A010SC` | Method | Calls the VA port number agreement service component |
| `callEKK1041B001SC` | Method | Calls the order settings list query service component |
| `callEKK0341B008SC` | Method | Calls the device provision service contract list query service component |
| `callEKK0341B008_02SC` | Method | Variant of device provision service contract query (for EG swap handling) |
| `getEKK0251B001SC` | Method | Queries service contract line item detail list by service contract number |
| `getSame_trn_no` | Method | Retrieves the same processing number for transaction deduplication |
| `getOpSvcKei4Eohtel` | Method | Retrieves forwarded phone (転送電話) operation service contract information |
| `findZ1OrderHasBeenSentSvcKeiUcwk` | Method | Checks whether a Z1 (light telephone new-contract order) has already been sent |
| `searchSvcKeiUcwk` | Method | Retrieves service contract detail agreement information |
| KKTK_SVC_CD_TEL_VA | Constant | Device provision service code "C004" — light telephony VA |
| KKTK_SVC_CD_HTEL_VA | Constant | Device provision service code "C004" — light telephony VA (alias) |
| SVC_KEI_STAT_910 | Constant | Contract status "910" — cancellation completed |
| SVC_KEI_STAT_920 | Constant | Contract status "920" — cancellation completed |
| OP_SVC_CD_TENSO | Constant | Operation service code "B024" — forwarded phone |
| OP_SVC_CD_DSP_ME | Constant | Operation service code "B022" — dispatcher number notification (free option) |
| OP_SVC_CD_N050 | Constant | Operation service code "B029" — 050 number plus option |
| ORDER_SBT_CD_TEL | Constant | Order type code "2" — telephone |
| SVC_ORDER_CD_SIP | Constant | Service order code "21" — SIP |
| YOKYU_SBT_CD_DSL | Constant | Required type code "03" — cancellation |
| YOKYU_SBT_CD_DEL | Constant | Required type code "08" — deletion |
| BMP_UM_ARI | Constant | Number porting presence flag "1" — number porting is present |
| IDO_DIV_EGCHANGE | Constant | Move classification "00067" — EG (equipment group) swap |
| FUNC_CODE_1 | Constant | Function code "1" |
| FUNC_CODE_4 | Constant | Function code "4" |
