
## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JBSbatAKKshkmRsltInfoTukiawsday.setData` | JBSbatAKKshkmRsltInfoTukiawsday | - | Calls `setData` in `JBSbatAKKshkmRsltInfoTukiawsday` |
| - | `JBSbatAKKshkmRsltInfoTukiaws.setData` | JBSbatAKKshkmRsltInfoTukiaws | - | Calls `setData` in `JBSbatAKKshkmRsltInfoTukiaws` |
| - | `JBSbatAKKshkmRsltInfoTukiawsRealSkh.setData` | JBSbatAKKshkmRsltInfoTukiawsRealSkh | - | Calls `setData` in `JBSbatAKKshkmRsltInfoTukiawsRealSkh` |
| - | `JBSbatAKKshkmRsltInfTkCvsNCnsl.setData` | JBSbatAKKshkmRsltInfTkCvsNCnsl | - | Calls `setData` in `JBSbatAKKshkmRsltInfTkCvsNCnsl` |
| R | `JBSbatDKNyukaFinAdd.getData` | JBSbatDKNyukaFinAdd | - | Calls `getData` in `JBSbatDKNyukaFinAdd` |
| - | `JBSbatKKGetCTITelno.setData` | JBSbatKKGetCTITelno | - | Calls `setData` in `JBSbatKKGetCTITelno` |
| R | `JFUeoTelOpTransferCC.getData` | JFUeoTelOpTransferCC | - | Calls `getData` in `JFUeoTelOpTransferCC` |
| R | `JFUTransferCC.getData` | JFUTransferCC | - | Calls `getData` in `JFUTransferCC` |
| R | `JFUTransferListToListCC.getData` | JFUTransferListToListCC | - | Calls `getData` in `JFUTransferListToListCC` |
| C | `JKKAdchgHakkoSODCC.executeOdrHakkoJokenAdd` | JKKAdchgHakkoSODCC | - | Calls `executeOdrHakkoJokenAdd` in `JKKAdchgHakkoSODCC` |
| C | `JKKAdchgHakkoSODCC.executeOdrInfoSakseiWkAdd` | JKKAdchgHakkoSODCC | - | Calls `executeOdrInfoSakseiWkAdd` in `JKKAdchgHakkoSODCC` |
| - | `JKKAdchgHakkoSODCC.runEKK0251A010` | JKKAdchgHakkoSODCC | - | Calls `runEKK0251A010` in `JKKAdchgHakkoSODCC` (code 404 only) |
| R | `KKW12701SFLogic.getData` | KKW12701SFLogic | - | Calls `getData` in `KKW12701SFLogic` |

The method primarily operates as a **mapping and delegation layer** rather than directly performing CRUD operations. It uses `setData` on the `param` object (via `param.setData(HAKKOSODCCWORKMAP, inMap)`) to update the work map state between steps. All actual persistence (Create/Read) operations are delegated to the following terminal methods:

- **`executeOdrHakkoJokenAdd(handle, param)`** [C - Create]: Invoked in every branch (step 1) to persist order issuance condition records. Each call uses the mapped parameters from that branch's setup block.
- **`executeOdrInfoSakseiWkAdd(handle, param)`** [C - Create]: Invoked in every branch (step 2) to create order information work records. This is the second persistence operation in each branch.
- **`runEKK0251A010(param, handle, svc_kei_kaisen_ucwk_no)`** [R - Read]: Only invoked by code 404 (Multi-function Router) to query line transfer date information. Returns a HashMap containing the generation addition date-time.
- **Various `setData` calls**: Internal state updates on the work map to pass data between the step 1 setup and step 2 setup phases.

## 5. Dependency Trace

No screen/batch entry points found within 8 hops. Direct callers found: 19 methods.
Terminal operations from this method: `executeOdrInfoSakseiWkAdd` [C], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `executeOdrHakkoJokenAdd` [C], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `runEKK0251A010` [-], `executeOdrInfoSakseiWkAdd` [C], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `executeOdrHakkoJokenAdd` [C], `setData` [-], `setData` [-], `setData` [-], `setData` [-], `setData` [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_253)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 2 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_254)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 3 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_155)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 4 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_163)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 5 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_156)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 6 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_163)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 7 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_157)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 8 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_158)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 9 | CBS:JKKAdchgHakkoSODCC | `JKKAdchgHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_163)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 10 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_316)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 11 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_317)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 12 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_302)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 13 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_301)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 14 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_253)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |
| 15 | CBS:JKKHakkoSODCC | `JKKHakkoSODCC.tsuikabunAddSOD(handle, param, ODR_NAIYO_CD_254)` | `executeOdrHakkoJokenAdd [C]`, `executeOdrInfoSakseiWkAdd [C]` |

Additional callers:
- **CBS:JKKAdchgCancelHakkoSODCC** calls `tsuikabunAddSOD` with codes 253, 254, 155, 163, 156, 157, 158 (6 call sites)

The terminal operations from this method consistently resolve to:
- `executeOdrHakkoJokenAdd [C]` - Order issuance condition registration (called once per branch)
- `executeOdrInfoSakseiWkAdd [C]` - Order info creation work registration (called once per branch)
- `runEKK0251A010 [R]` - Line transfer date query (code 404 only)
- `setData [-]` - Internal work map state updates (multiple per branch)

## 6. Per-Branch Detail Blocks

**Block 1** — IF `(null != inMap)` (L6182)
> Validates that the work map exists in the request parameter. If null, skips all processing and returns.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `HashMap inMap = (HashMap)param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)` |
| 1 | IF | `if (null != inMap)` |

**Block 1.1** — FOR / Sequential SET (L6190-6228)
> **Map Initialization Processing** - Clears 27 work map fields to empty strings to prevent stale data from previous operations. Service contract number fields are intentionally NOT cleared.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("svc_kei_ucwk_no", "")` // Service contract detail number [-> cleared] |
| 2 | SET | `inMap.put("kktk_svc_kei_no", "")` // Equipment provision service contract number [-> cleared] |
| 3 | SET | `inMap.put("op_svc_kei_no", "")` // Option service contract number [-> cleared] |
| 4 | SET | `inMap.put("sbop_svc_kei_no", "")` // Sub-option service contract number [-> cleared] |
| 5 | SET | `inMap.put("seiopsvc_kei_no", "")` // Billing option service contract number [-> cleared] |
| 6 | SET | `inMap.put("order_sbt_cd", "")` // Order subtype code [-> cleared] |
| 7 | SET | `inMap.put("svc_order_cd", "")` // Service order code [-> cleared] |
| 8 | SET | `inMap.put("yokyu_sbt_cd", "")` // Request subtype code [-> cleared] |
| 9 | SET | `inMap.put("odr_hakko_joken_cd", "")` // Order issuance condition code [-> cleared] |
| 10 | SET | `inMap.put("same_trn_no", "")` // Same processing number [-> cleared] |
| 11 | SET | `inMap.put("taknkiki_model_cd", "")` // Home equipment model code [-> cleared] |
| 12 | SET | `inMap.put("kiki_seizo_no", "")` // Equipment serial number [-> cleared] |
| 13 | SET | `inMap.put("mlad", "")` // Mail address [-> cleared] |
| 14 | SET | `inMap.put("spot_login_sysid", "")` // Spot login system ID [-> cleared] |
| 15 | SET | `inMap.put("send_req_fin_dtm", "")` // Send request completion datetime [-> cleared] |
| 16 | SET | `inMap.put("odr_hakko_joken_no", "")` // Order issuance condition number [-> cleared] |
| 17 | SET | `inMap.put("odr_naiyo_cd", "")` // Order content code [-> cleared] |
| 18 | SET | `inMap.put("svkeiuw_gadtm", "")` // Service contract detail registration datetime [-> cleared] |
| 19 | SET | `inMap.put("kktsvkei_gadtm", "")` // Equipment provision service contract registration datetime [-> cleared] |
| 20 | SET | `inMap.put("opsvkei_gadtm", "")` // Option service contract registration datetime [-> cleared] |
| 21 | SET | `inMap.put("sbopsvkei_gadtm", "")` // Sub-option service contract registration datetime [-> cleared] |
| 22 | SET | `inMap.put("seiopsvkei_gadtm", "")` // Billing option service contract registration datetime [-> cleared] |
| 23 | SET | `inMap.put("huka_inf_kei_no", "")` // Additional info contract number [-> cleared] |
| 24 | SET | `inMap.put("huka_inf_kei_gadtm", "")` // Additional info contract registration datetime [-> cleared] |
| 25 | SET | `inMap.put("chbf_svkei_gadtm", "")` // Pre-change service contract registration datetime [-> cleared] |
| 26 | SET | `inMap.put("chbf_svkeiuw_gadtm", "")` // Pre-change service contract detail registration datetime [-> cleared] |
| 27 | SET | `inMap.put("chbf_kktsvkei_gadtm", "")` // Pre-change equipment provision service contract registration datetime [-> cleared] |
| 28 | SET | `inMap.put("chbf_opsvkei_gadtm", "")` // Pre-change option service contract registration datetime [-> cleared] |
| 29 | SET | `inMap.put("chbf_sbopsvkei_gadtm", "")` // Pre-change sub-option service contract registration datetime [-> cleared] |
| 30 | SET | `inMap.put("chbf_seiopsvkei_gadtm", "")` // Pre-change billing option service contract registration datetime [-> cleared] |
| 31 | SET | `inMap.put("kkop_svc_kei_no_1", "")` // Equipment option service contract (Router) [-> added ANK-1578] |
| 32 | SET | `inMap.put("kkop_svc_kei_no_2", "")` // Equipment option service contract (VA) [-> added ANK-1578] |

**Block 2** — ELSE-IF `[ODR_NAIYO_CD_163 = "163"]` (L6230)
> **Router Connection Information / Change** - Adds new router connection information for existing customers. Uses instance IPv6 escape fields for order issuance work output.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_NET "1")` // Order subtype code (Network) |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_ROUTER "0A")` // Service order code (Router connection) |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_CHG "04")` // Request subtype code (Change) |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` // Order issuance condition code (Instant issuance) |
| 5 | SET | `inMap.put("same_trn_no", same_trn_no)` // Same processing number [-> local variable] |
| 6 | SET | `inMap.put("op_svc_kei_no", this.op_svc_kei_no_ipv6)` // Option service contract number (IPv6) [-> escape data] |
| 7 | SET | `inMap.put("opsvkei_gadtm", this.op_gadtm_ipv6)` // Option service contract registration datetime (IPv6) [-> escape data] |
| 8 | SET | `inMap.put("svc_kei_ucwk_no", this.ipv6_svc_kei_ucwk_no)` // Service contract detail number [-> escape data] |
| 9 | SET | `inMap.put("svkeiuw_gadtm", this.ipv6_svc_kei_ucwk_gadtm)` // Service contract detail registration datetime [-> escape data] |
| 10 | SET | `inMap.put("kktk_svc_kei_no", this.ipv6_kktk_svc_kei_no)` // Equipment provision service contract number (IPv6) [-> escape data] |
| 11 | SET | `inMap.put("kktsvkei_gadtm", this.ipv6_kktk_svc_kei_gadtm)` // Equipment provision service contract registration datetime (IPv6) [-> escape data] |
| 12 | SET | `inMap.put("taknkiki_model_cd", this.taknkiki_model_cd_ipv6)` // Home equipment model code (IPv6) [-> escape data] |
| 13 | SET | `inMap.put("kiki_seizo_no", this.kiki_seizo_no_ipv6)` // Equipment serial number (IPv6) [-> escape data] |
| 14 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` // Persist work map |
| 15 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` // Step 1: Order issuance condition registration |
| 16 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_163 "163")` // Order content code (Router connection change) |
| 17 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` // Update work map with odr_naiyo_cd |
| 18 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` // Step 2: Order info creation work registration |

**Block 3** — ELSE-IF `[ODR_NAIYO_CD_155 = "155"]` (L6277)
> **IPv6 Registration** - Registers new IPv6 service. Uses instance field `this.yokyu_sbt` for request subtype (dynamically determined). Uses instance IPv6 escape fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_NET "1")` // Order subtype code (Network) |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_IPV6 "0B")` // Service order code (IPv6) |
| 3 | SET | `inMap.put("yokyu_sbt_cd", this.yokyu_sbt)` // Request subtype code [-> instance field, dynamic] |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` // Order issuance condition code (Instant issuance) |
| 5 | SET | `inMap.put("same_trn_no", this.same_trn_no)` // Same processing number [-> instance field] |
| 6-13 | SET | Copy IPv6 escape fields (op_svc_kei_no, opsvkei_gadtm, svc_kei_ucwk_no, svkeiuw_gadtm, kktk_svc_kei_no, kktsvkei_gadtm, taknkiki_model_cd, kiki_seizo_no) from instance fields |
| 14 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 15 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 16 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_155 "155")` // Order content code (IPv6 Registration) |
| 17 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 18 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 4** — ELSE-IF `[ODR_NAIYO_CD_156 = "156"]` (L6324)
> **IPv6 Change** - Changes existing IPv6 service settings. Uses `YOKYU_SBT_CD_CHG "04"` for request subtype. Uses instance IPv6 escape fields (no equipment model/serial fields).

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_NET "1")` |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_IPV6 "0B")` |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_CHG "04")` // Request subtype code (Change) |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` |
| 5 | SET | `inMap.put("same_trn_no", this.same_trn_no)` |
| 6-8 | SET | Copy IPv6 escape fields (op_svc_kei_no, opsvkei_gadtm, svc_kei_ucwk_no, svkeiuw_gadtm) only [-> no equipment model/serial for change] |
| 9 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 10 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 11 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_156 "156")` |
| 12 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 13 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 5** — ELSE-IF `[ODR_NAIYO_CD_158 = "158"]` (L6372)
> **IPv6 Deletion** - Deletes IPv6 service. Uses `YOKYU_SBT_CD_DEL "08"` for request subtype. Uses local `same_trn_no` variable. Uses instance IPv6 escape fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_NET "1")` |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_IPV6 "0B")` |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_DEL "08")` // Request subtype code (Deletion) |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` |
| 5 | SET | `inMap.put("same_trn_no", same_trn_no)` // [-> local variable, not instance] |
| 6-13 | SET | Copy IPv6 escape fields from instance |
| 14 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 15 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 16 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_158 "158")` |
| 17 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 18 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**NOTE: Block 157 (IPv6 Cancellation) was REMOVED** per ST2-2012-0001703 (2012/09/21). Comment explains: "For IPv6 cancellation, only deletion order is sufficient, so cancellation has been removed (request subtype for cancellation does not exist for IPv6)."

**Block 6** — ELSE-IF `[ODR_NAIYO_CD_253 = "253"]` (L6416)
> **SIP International Stop Registration** - Registers SIP VoIP international phone stop option. Uses `ORDER_SBT_CD_TEL "2"` and `SVC_ORDER_CD_SIP "21"`. Uses `svc_kei_ucwk_no[0]` array index.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_TEL "2")` // Order subtype code (Telephone) |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_SIP "21")` // Service order code (SIP VoIP) |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_CHG "04")` // Request subtype code (Change) |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` |
| 5 | SET | `inMap.put("svc_kei_ucwk_no", this.svc_kei_ucwk_no[0])` // Service contract detail number [-> array index 0] |
| 6 | SET | `inMap.put("svkeiuw_gadtm", this.svc_kei_ucwk_gadtm[0])` // Service contract detail registration datetime [-> array index 0] |
| 7 | SET | `inMap.put("same_trn_no", same_trn_no)` // [-> local variable] |
| 8 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 9 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 10 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_253 "253")` |
| 11 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 12 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 7** — ELSE-IF `[ODR_NAIYO_CD_254 = "254"]` (L6451)
> **SIP International Stop Cancellation** - Cancels SIP VoIP international phone stop option. Same setup as 253 but different odr_naiyo_cd. Uses instance `this.same_trn_no`.

| # | Type | Code |
|---|------|------|
| 1-7 | SET | Same setup as Block 6, except `same_trn_no` uses `this.same_trn_no` [-> instance field] |
| 8 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 9 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 10 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_254 "254")` |
| 11 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 12 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 8** — ELSE-IF `[ODR_NAIYO_CD_301 = "301"]` (L6486)
> **Wi-Fi Spot Registration** - Registers Wi-Fi Spot authentication service. Uses `ORDER_SBT_CD_MOBILE "3"`, `SVC_ORDER_CD_SPOT "30"`, and `YOKYU_SBT_CD_NEW "02"`. Uses instance `this.odr_hakkou_jyoken`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_MOBILE "3")` // Order subtype code (Mobile) |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_SPOT "30")` // Service order code (SPOT authentication) |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_NEW "02")` // Request subtype code (New) |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", this.odr_hakkou_jyoken)` // Order issuance condition code [-> instance field, ANK-0100] |
| 5 | SET | `inMap.put("svc_kei_ucwk_no", this.svc_kei_ucwk_no[0])` |
| 6 | SET | `inMap.put("svkeiuw_gadtm", this.svc_kei_ucwk_gadtm[0])` |
| 7 | SET | `inMap.put("same_trn_no", this.same_trn_no)` |
| 8 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 9 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 10 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_301 "301")` |
| 11 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 12 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 9** — ELSE-IF `[ODR_NAIYO_CD_302 = "302"]` (L6521)
> **Wi-Fi Spot Change** - Changes existing Wi-Fi Spot authentication settings. Uses `YOKYU_SBT_CD_CHG "04"`.

| # | Type | Code |
|---|------|------|
| 1-7 | SET | Same setup as Block 8, except `yokyu_sbt_cd` uses `YOKYU_SBT_CD_CHG "04"` |
| 8-12 | Same flow as Block 8 |

**Block 10** — ELSE-IF `[ODR_NAIYO_CD_316 = "316"]` (L6556)
> **WiMAX CUI Restoration** - Restores WiMAX CUI service after suspension. Part of ANK-0100-00-01 (eo Mobile/UQ WiMAX Mobile Restoration). Uses `SVC_ORDER_CD_CUI "01"` and `YOKYU_SBT_CD_NEW "02"`. Sets equipment model and serial fields. Commented out `YOKYU_SBT_CD_KAIHK` (Restoration) was replaced with `YOKYU_SBT_CD_NEW "02"`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("taknkiki_model_cd", this.taknkiki_model_cd[0])` // Home equipment model code [-> array index 0] |
| 2 | SET | `inMap.put("kiki_seizo_no", this.kiki_seizo_no[0])` // Equipment serial number [-> array index 0] |
| 3 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_MOBILE "3")` |
| 4 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_CUI "01")` // Service order code (CUI) |
| 5 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_NEW "02")` // [-> originally KAIHK "07", changed to NEW] |
| 6 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` |
| 7 | SET | `inMap.put("svc_kei_ucwk_no", this.svc_kei_ucwk_no[0])` |
| 8 | SET | `inMap.put("svkeiuw_gadtm", this.svc_kei_ucwk_gadtm[0])` |
| 9 | SET | `inMap.put("kktk_svc_kei_no", this.kktk_svc_kei_no[0])` |
| 10 | SET | `inMap.put("kktsvkei_gadtm", this.kktk_svc_kei_gadtm[0])` |
| 11 | SET | `inMap.put("same_trn_no", this.same_trn_no)` |
| 12 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 13 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 14 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_316 "316")` |
| 15 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 16 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 11** — ELSE-IF `[ODR_NAIYO_CD_317 = "317"]` (L6593)
> **WiMAX DEV Restoration** - Restores WiMAX DEV service after suspension. Part of ANK-0100-00-01. Uses `SVC_ORDER_CD_DEV "02"`. Same structure as Block 10.

| # | Type | Code |
|---|------|------|
| 1-11 | SET | Same setup as Block 10, except `svc_order_cd` uses `SVC_ORDER_CD_DEV "02"` |
| 12-16 | Same flow as Block 10 |

**Block 12** — ELSE-IF `[ODR_NAIYO_CD_404 = "404"]` (L6634)
> **Multi-function Router Change** - Adds/modifies multi-function router settings including router function and connection information changes. Part of ANK-1578-00-00 (2013.12.10 Y.Kanata). This is the most complex branch, also invoking `runEKK0251A010` to retrieve line transfer date information. Uses `ORDER_SBT_CD_TEL "2"` (not NET). Includes KKOP (Equipment Option) service contract fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap.put("order_sbt_cd", ORDER_SBT_CD_TEL "2")` // Order subtype code (Telephone) |
| 2 | SET | `inMap.put("svc_order_cd", SVC_ORDER_CD_MFROUTER "26")` // Service order code (Multi-function Router) |
| 3 | SET | `inMap.put("yokyu_sbt_cd", YOKYU_SBT_CD_CHG "04")` |
| 4 | SET | `inMap.put("odr_hakko_joken_cd", ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO "01")` |
| 5 | SET | `inMap.put("same_trn_no", same_trn_no)` // [-> local variable] |
| 6-13 | SET | Copy IPv6 escape fields from instance (op_svc_kei_no, opsvkei_gadtm, svc_kei_ucwk_no, svkeiuw_gadtm, kktk_svc_kei_no, kktsvkei_gadtm, taknkiki_model_cd, kiki_seizo_no) |
| 14 | SET | `inMap.put("kkop_svc_kei_no_1", kkop_svc_kei_router[0])` // Equipment option service contract (Router) [-> ANK-1578] |
| 15 | SET | `inMap.put("kko_svkei_gadtm_1", kkop_svc_kei_router_gadtm[0])` // Router registration datetime [-> ANK-1578] |
| 16 | SET | `inMap.put("kkop_svc_kei_no_2", kkop_svc_kei_va[0])` // Equipment option service contract (VA) [-> ANK-1578] |
| 17 | SET | `inMap.put("kko_svkei_gadtm_2", kkop_svc_kei_va_gadtm[0])` // VA registration datetime [-> ANK-1578] |
| 18 | EXEC | `HashMap ekk0251a010Map = runEKK0251A010(param, handle, svc_kei_kaisen_ucwk_no)` // [-> Line transfer date query, ANK-1578] |
| 19 | SET | `String svc_kei_kaisen_ucwk_gadtm = (String)ekk0251a010Map.get(EKK0251A010CBSMsg1List.GENE_ADD_DTM)` // [-> Extract generation addition datetime] |
| 20 | SET | `inMap.put("huka_inf_kei_no", svc_kei_kaisen_ucwk_no)` // Service contract line transfer detail number |
| 21 | SET | `inMap.put("huka_inf_kei_gadtm", svc_kei_kaisen_ucwk_gadtm)` // Service contract line transfer registration datetime |
| 22 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 23 | CALL | `param = executeOdrHakkoJokenAdd(handle, param)` |
| 24 | SET | `inMap.put("odr_naiyo_cd", ODR_NAIYO_CD_404 "404")` // Order content code (Multi-func router setting/change) |
| 25 | EXEC | `param.setData(HAKKOSODCCWORKMAP, inMap)` |
| 26 | CALL | `param = executeOdrInfoSakseiWkAdd(handle, param)` |

**Block 13** — RETURN (L6651)

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

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_ucwk_no` | Field | Service contract detail number — internal tracking ID for service contract line items |
| `svc_kei_ucwk_gadtm` | Field | Service contract detail registration datetime |
| `kktk_svc_kei_no` | Field | Equipment provision service contract number |
| `kktk_svc_kei_gadtm` | Field | Equipment provision service contract registration datetime |
| `op_svc_kei_no` | Field | Option service contract number |
| `opsvkei_gadtm` | Field | Option service contract registration datetime |
| `sbop_svc_kei_no` | Field | Sub-option service contract number |
| `seiopsvc_kei_no` | Field | Billing option service contract number |
| `order_sbt_cd` | Field | Order subtype code — classifies order by network type (1=Network, 2=Telephone, 3=Mobile) |
| `svc_order_cd` | Field | Service order code — identifies the specific service type being ordered |
| `yokyu_sbt_cd` | Field | Request subtype code — operation type (02=New, 03=Demand, 04=Change, 07=Restoration, 08=Deletion) |
| `odr_hakko_joken_cd` | Field | Order issuance condition code — timing of order processing (01=Instant issuance) |
| `odr_hakko_joken_no` | Field | Order issuance condition number |
| `odr_naiyo_cd` | Field | Order content code — classifies the specific order type and service operation |
| `same_trn_no` | Field | Same processing number — groups related operations for atomic processing |
| `taknkiki_model_cd` | Field | Home equipment model code |
| `kiki_seizo_no` | Field | Equipment serial number |
| `svkeiuw_gadtm` | Field | Service contract detail registration datetime |
| `huka_inf_kei_no` | Field | Additional information contract number |
| `huka_inf_kei_gadtm` | Field | Additional information contract registration datetime |
| `chbf_svkei_gadtm` | Field | Pre-change service contract registration datetime |
| `kkop_svc_kei_no_1` | Field | Equipment option service contract (Router) — added in ANK-1578 |
| `kkop_svc_kei_no_2` | Field | Equipment option service contract (VA) — added in ANK-1578 |
| `svc_kei_kaisen_ucwk_no` | Field | Service contract line transfer detail number — used for line transfer date queries |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity for service changes/additions |
| CC | Acronym | Common Component / Change Controller — shared service component class |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband service |
| IPv6 | Business term | Internet Protocol version 6 — next-generation internet protocol |
| SIP | Acronym | Session Initiation Protocol — VoIP signaling protocol for telecom services |
| VoIP | Acronym | Voice over Internet Protocol — voice communication over IP networks |
| Wi-Fi | Business term | Wireless Fidelity — wireless local area network technology |
| WiMAX | Business term | Worldwide Interoperability for Microwave Access — wireless broadband technology |
| CUI | Acronym | Customer Unit Interface — WiMAX customer premises equipment identifier |
| DEV | Acronym | Device — WiMAX customer device identifier |
| SPOT | Acronym | Spot authentication — Wi-Fi Spot public WiFi authentication service |
| VA | Acronym | Virtual Accessory — optional equipment add-on service |
| IPv6 escape fields | Concept | Instance-scoped fields carrying IPv6 contract data as fallback data when outputting order issuance condition work records |
| HakkoSODCCWORK | Field | Work map key (`"HakkoSODCCWORK"`) — shared HashMap carrying order context between processing steps |
| ORDER_SBT_CD_NET | Constant | Order subtype code "1" — Network service type orders |
| ORDER_SBT_CD_TEL | Constant | Order subtype code "2" — Telephone service type orders |
| ORDER_SBT_CD_MOBILE | Constant | Order subtype code "3" — Mobile service type orders |
| SVC_ORDER_CD_ROUTER | Constant | Service order code "0A" — Router connection information service |
| SVC_ORDER_CD_IPV6 | Constant | Service order code "0B" — IPv6 service |
| SVC_ORDER_CD_SIP | Constant | Service order code "21" — SIP VoIP service |
| SVC_ORDER_CD_MFROUTER | Constant | Service order code "26" — Multi-function Router service |
| SVC_ORDER_CD_SPOT | Constant | Service order code "30" — SPOT authentication service |
| SVC_ORDER_CD_CUI | Constant | Service order code "01" — WiMAX CUI service |
| SVC_ORDER_CD_DEV | Constant | Service order code "02" — WiMAX DEV service |
| YOKYU_SBT_CD_NEW | Constant | Request subtype code "02" — New registration |
| YOKYU_SBT_CD_CHG | Constant | Request subtype code "04" — Change/modification |
| YOKYU_SBT_CD_DEL | Constant | Request subtype code "08" — Deletion |
| YOKYU_SBT_CD_KAIHK | Constant | Request subtype code "07" — Restoration (unused in this method) |
| ODR_HAKKO_JOKEN_CD_SOKJI_HAKKO | Constant | Order issuance condition code "01" — Instant issuance |
| ANK-0048-00-01 | Ref | Development ticket: International Phone Stop Option feature |
| ANK-0046-00-01 | Ref | Development ticket: IPv6 support addition |
| ANK-0085-00-01 | Ref | Development ticket: Mobile 3G restoration |
| ANK-0100-00-01 | Ref | Development ticket: eo Mobile / UQ WiMAX Mobile restoration |
| ANK-1578-00-00 | Ref | Development ticket: Multi-function Router support (2013.12.10) |
| ST2-2012-0001703 | Ref | Change request: Removed IPv6 cancellation (code 157) — deletion suffices for IPv6 |
