**Block 10** — [IF] `opSvcCd == OP_SVC_CD_MLIST` (L8252)

> **Mailing List service branch.** Determines whether to register, unregister, or restore mailing list subscription.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.op_svc_kei_no_mlist = chaf_opsvkei_no` // Save key info |
| 1.1 | SET | `this.op_gadtm_mlist = chaf_opsvkei_gene_add_dtm` |
| 2 | IF | `isNewOpsvkei` // Mailing List newly registered |
| 2.1 | SET | `this.same_trn_no = ""` // Clear same transaction number |
| 2.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_129` |
| 2.3 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_129)` // ML registration |
| 3 | ELSE-IF | `isDslOpsvkei` // Mailing List cancelled/withdrawn |
| 3.1 | IF | `!IDO_DIV_DSL && !IDO_DIV_TEKKYODSL && !IDO_DIV_KYOSEIDSL && !IDO_DIV_CANCEL` // Not a cancellation-divided workflow |
| 3.1.1 | SET | `this.same_trn_no = ""` // Clear same transaction number |
| 3.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_131` |
| 3.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_131)` // ML unregistration |
| 4 | ELSE-IF | `isKaihkOpsvkei` // Mailing List restored |
| 4.1 | SET | `this.same_trn_no = ""` // Clear same transaction number |
| 4.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_133` |
| 4.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_133)` // ML restoration |

**Block 11** — [IF] `opSvcCd == OP_SVC_CD_FIXIPAD` (L8394)

> **Fixed IP Address service branch.** Handles fixed IP address registration, unregistration, and pause-related SOD issuance. Calls EKK0161B004SC to retrieve service detail info and `getOldVrsbIdgSvcDtlCd` for VR compatibility checks.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashUcwk.put(SVC_KEI_NO, svc_kei_no)` // Service contract number |
| 2 | CALL | `callEKK0161B004SC(param, handle, inHashUcwk, resultHashUcwk, FUNC_CODE_1)` // Get service detail |
| 3 | EXTRACT | `retHash = msgListUcwk[0].getMsgData()` // Extract data |
| 4 | SET | `this.svc_kei_ucwk_no[0] = retHash.get(SVC_KEI_UCWK_NO)` // Service detail number |
| 5 | SET | `this.svc_kei_ucwk_gadtm[0] = retHash.get(GENE_ADD_DTM)` // Timestamp |
| 6 | SET | `this.op_svc_kei_no_fixipad = chaf_opsvkei_no` // Save key info |
| 7 | SET | `this.op_gadtm_fixipad = chaf_opsvkei_gene_add_dtm` |
| 8 | SET | `this.op_svc_kei_no_mltise = chaf_opsvkei_no` // Also store for multisection |
| 9 | SET | `this.op_gadtm_mltise = chaf_opsvkei_gene_add_dtm` |
| 10 | CALL | `this.old_vrsb_jdg_svc_dtl_cd = getOldVrsbIdgSvcDtlCd(handle, param, svc_kei_no, this.svc_kei_ucwk_no[0], this.pplan_cd)` // Old VR identification |
| 11 | IF | `isBlank(chbf_opsvkei_no)` // Fixed IP newly registered |
| 11.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_152` |
| 11.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_152)` // Fixed IP registration |
| 12 | ELSE-IF | `SVC_KEI_STAT_910.equals(opsvkeiStatAfter) || SVC_KEI_STAT_920.equals(opsvkeiStatAfter)` // Fixed IP cancelled/withdrawn |
| 12.1 | IF | `SVC_KEI_STAT_910.equals(svc_kei_ucwk_stat) || SVC_KEI_STAT_920.equals(svc_kei_ucwk_stat)` // Service detail also cancelled/withdrawn |
| 12.1.1 | // No SOD issued - authentication ID already cancelled |
| 12.2 | ELSE | // Service detail still active |
| 12.2.1 | CALL | `pauseJdg(param, handle, null, svc_kei_no, pause_jdg_cd)` // Check pause status |
| 12.2.2 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` // Acquire same transaction number |
| 12.2.3 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 12.2.4 | IF | `PAUSE_JDG_CD_1.equals(pause_jdg_cd[0])` // Service suspended |
| 12.2.4.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_107` |
| 12.2.4.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_107)` // FTTH authentication/pause cancellation |
| 12.2.4.1.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_154` |
| 12.2.4.1.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_154)` // Fixed IP unregistration |
| 12.2.4.1.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_146` |
| 12.2.4.1.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_146)` // Fixed IP deletion |
| 12.2.4.1.4 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_101` |
| 12.2.4.1.4.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_101)` // FTTH registration |
| 12.2.4.1.5 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_106` |
| 12.2.4.1.5.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_106)` // FTTH authentication/temporary pause |
| 12.2.5 | ELSE-IF | `PAUSE_JDG_CD_0.equals(pause_jdg_cd[0])` // Service not suspended |
| 12.2.5.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_154` |
| 12.2.5.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_154)` // Fixed IP unregistration |
| 12.2.5.1.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_146` |
| 12.2.5.1.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_146)` // Fixed IP deletion |
| 12.2.5.1.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_101` |
| 12.2.5.1.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_101)` // FTTH registration |
| 13 | ELSE-IF | `910 before && 100 after` // Fixed IP restored |
| 13.1 | SET | `this.op_svc_kei_no_fixipad = chaf_opsvkei_no` |
| 13.2 | SET | `this.op_gadtm_fixipad = chaf_opsvkei_gene_add_dtm` |
| 13.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_153` |
| 13.4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_153)` // Fixed IP restoration |

**Block 12** — [IF] `opSvcCd == OP_SVC_CD_MLTISE` (L8552)

> **Multisection service branch.** Handles dynamic and static multisection registration/unregistration. Checks for existing fixed IP address service via EKK0351B002SC.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.op_svc_kei_no_mltise = chaf_opsvkei_no` // Save key info |
| 1.1 | SET | `this.op_gadtm_mltise = chaf_opsvkei_gene_add_dtm` |
| 2 | SET | `inHashMltise.put(SVC_KEI_NO, svc_kei_no)` // Service contract number |
| 3 | SET | `inHashMltise.put(OP_SVC_CD, OP_SVC_CD_FIXIPAD)` // Check for existing fixed IP |
| 4 | CALL | `callEKK0351B002SC(param, handle, inHashMltise, resultHashMltise, FUNC_CODE_1)` // Get optional service list |
| 5 | SET | `op_svc_kei_stat = msgList[i].getMsgData().get(OP_SVC_KEI_STAT)` // Get fixed IP status |
| 6 | IF | `SVC_KEI_STAT_100.equals(op_svc_kei_stat)` // Fixed IP is active |
| 6.1 | IF | `isNewOpsvkei` // Multisection newly registered |
| 6.1.1 | CALL | `this.old_vrsb_jdg_svc_dtl_cd = getOldVrsbIdgSvcDtlCd(...)` // Old VR identification |
| 6.1.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_144` |
| 6.1.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_144)` // Multisection (static) registration |
| 6.2 | ELSE-IF | `isDslOpsvkei` // Multisection cancelled/withdrawn |
| 6.2.1 | CALL | `pauseJdg(param, handle, null, svc_kei_no, pause_jdg_cd)` // Check pause status |
| 6.2.2 | IF | `PAUSE_JDG_CD_1.equals(pause_jdg_cd[0])` // Service suspended |
| 6.2.2.1 | CALL | `callEKK0161B004SC(...)` // Get service detail |
| 6.2.2.2 | CALL | `getOldVrsbIdgSvcDtlCd(...)` // Old VR identification |
| 6.2.2.3 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 6.2.2.4 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 6.2.2.5 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_107` |
| 6.2.2.5.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_107)` // FTTH authentication/pause cancellation |
| 6.2.2.5.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_145` |
| 6.2.2.5.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_145)` // Multisection (static) unregistration |
| 6.2.2.5.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_106` |
| 6.2.2.5.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_106)` // FTTH authentication/temporary pause |
| 6.2.3 | ELSE-IF | `PAUSE_JDG_CD_0.equals(pause_jdg_cd[0])` // Service not suspended |
| 6.2.3.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_145` |
| 6.2.3.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_145)` // Multisection (static) unregistration |
| 6.3 | ELSE-IF | `isKaihkOpsvkei` // Multisection restored |
| 6.3.1 | CALL | `getOldVrsbIdgSvcDtlCd(...)` // Old VR identification |
| 6.3.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_161` |
| 6.3.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_161)` // Multisection (static) restoration |
| 6.4 | ELSE-IF | `isChgOpsvkei` // Multisection unchanged but modified |
| 6.4.1 | CALL | `getOldVrsbIdgSvcDtlCd(...)` // Old VR identification |
| 6.4.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_162` |
| 6.4.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_162)` // Multisection (static) session count change |
| 7 | ELSE | // Fixed IP is not active |
| 7.1 | CALL | `callEKK0161B004SC(...)` // Get service detail |
| 7.2 | CALL | `getOldVrsbIdgSvcDtlCd(...)` // Old VR identification |
| 7.3 | IF | `isNewOpsvkei` // Multisection (dynamic) newly registered |
| 7.3.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_142` |
| 7.3.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_142)` // Multisection (dynamic) registration |
| 7.4 | ELSE-IF | `isDslOpsvkei` // Multisection (dynamic) cancelled |
| 7.4.1 | CALL | `pauseJdg(param, handle, null, svc_kei_no, pause_jdg_cd)` // Check pause status |
| 7.4.2 | IF | `PAUSE_JDG_CD_1.equals(pause_jdg_cd[0])` // Service suspended |
| 7.4.2.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 7.4.2.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 7.4.2.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_107` |
| 7.4.2.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_107)` // FTTH authentication/pause cancellation |
| 7.4.2.3.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_143` |
| 7.4.2.3.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_143)` // Multisection (dynamic) unregistration |
| 7.4.2.3.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_106` |
| 7.4.2.3.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_106)` // FTTH authentication/temporary pause |
| 7.4.3 | ELSE-IF | `PAUSE_JDG_CD_0.equals(pause_jdg_cd[0])` // Service not suspended |
| 7.4.3.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_143` |
| 7.4.3.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_143)` // Multisection (dynamic) unregistration |
| 7.5 | ELSE-IF | `isKaihkOpsvkei` // Multisection (dynamic) restored |
| 7.5.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_142` |
| 7.5.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_142)` // Multisection (dynamic) restoration |
| 7.6 | ELSE-IF | `isChgOpsvkei` // Multisection (dynamic) unchanged but modified |
| 7.6.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 7.6.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 7.6.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_143` |
| 7.6.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_143)` // Multisection (dynamic) unregistration |
| 7.6.4 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_142` |
| 7.6.4.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_142)` // Multisection (dynamic) registration |

**Block 13** — [IF] `opSvcCd == OP_SVC_CD_DUP` (L8800)

> **Dial-up (Duplicate) service branch.** Handles dial-up connection registration, unregistration, and plan changes.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `callEKK0161B004SC(param, handle, inHashUcwk, resultHashUcwk, FUNC_CODE_1)` // Get service detail |
| 2 | EXTRACT | `this.svc_kei_ucwk_no[0] = retHash.get(SVC_KEI_UCWK_NO)` // Service detail number |
| 3 | EXTRACT | `this.svc_kei_ucwk_gadtm[0] = retHash.get(GENE_ADD_DTM)` // Timestamp |
| 4 | SET | `this.op_svc_kei_no_dial = chaf_opsvkei_no` // Save key info |
| 5 | SET | `this.op_gadtm_dial = chaf_opsvkei_gene_add_dtm` |
| 6 | IF | `isNewOpsvkei` // Dial-up newly registered |
| 6.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_137` |
| 6.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_137)` // Dial-up connection unregistration |
| 6.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_138` |
| 6.4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_138)` // Dial-up connection deletion |
| 7 | ELSE-IF | `isDslOpsvkei` // Dial-up cancelled/withdrawn |
| 7.1 | IF | `!IDO_DIV_DSL && !IDO_DIV_TEKKYODSL && !IDO_DIV_KYOSEIDSL && !IDO_DIV_CANCEL` // Not a cancellation-divided workflow |
| 7.1.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 7.1.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 7.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_137` |
| 7.3 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_137)` // Dial-up connection unregistration |
| 7.4 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_138` |
| 7.5 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_138)` // Dial-up connection deletion |
| 8 | ELSE-IF | `isKaihkOpsvkei` // Dial-up restored |
| 8.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_134` |
| 8.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_134)` // Dial-up connection registration (restoration) |
| 9 | ELSE-IF | `isChgOpsvkei` // Dial-up unchanged but modified |
| 9.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_136` |
| 9.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_136)` // Dial-up connection plan change |
