**Block 9** — [IF] `opSvcCd == OP_SVC_CD_HP` (L8052)

> **Homepage/HP service branch.** Handles homepage registration, unregistration, capacity change, and access analytics.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.op_svc_kei_no_hp = chaf_opsvkei_no` // Save key info |
| 1.1 | SET | `this.op_gadtm_hp = chaf_opsvkei_gene_add_dtm` |
| 2 | IF | `isNewOpsvkei` // HP newly registered |
| 2.1 | EXTRACT | `chafUrlDomain = chafEKK0361A010SCHash.get(URL_DOMAIN)` // After URL domain |
| 2.2 | EXTRACT | `chafUrlAccount = chafEKK0361A010SCHash.get(URL_ACCOUNT)` // After URL account |
| 2.3 | IF | `!isBlank(chafUrlDomain) && !isBlank(chafUrlAccount)` // URL configured |
| 2.3.1 | IF | `chgOpsvKeiJdg && sameTrnJdg > 0` // Change detected + same txn needed |
| 2.3.1.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 2.3.1.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 2.3.2 | IF | `chgOpsvKeiJdg` // Before and after differ |
| 2.3.2.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_121` |
| 2.3.2.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_121)` // Web registration |
| 2.3.3 | // Sub-option analysis (same pattern as Email block) | |
| 2.3.3.1 | IF | `isBlank(chbf_sbopsvkei_no) && !isBlank(chaf_sbopsvkei_no) && SBOP_SVC_CD_HPACCESS.equals(chafsbopSvcCd)` // New access analytics |
| 2.3.3.1.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_124` |
| 2.3.3.1.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_124)` // Web/Access analytics registration |
| 2.3.3.2 | ELSE-IF | `(isNewSbopkei || isDslSbopkei) && SBOP_SVC_CD_HPCAPA.equals(chafsbopSvcCd)` // HP capacity change |
| 2.3.3.2.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_123` |
| 2.3.3.2.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_123)` // Web/HP capacity change |
| 2.3.3.3 | ELSE-IF | `isSbopkeiStatNotChg && SBOP_SVC_CD_HPCAPA.equals(chafsbopSvcCd)` // Capacity comparison |
| 2.3.3.3.1 | EXTRACT | `chbfHpCapa = chbfEKK0411A010SCHash.get(ADD_CAPA)` |
| 2.3.3.3.2 | EXTRACT | `chafHpCapa = chafEKK0411A010SCHash.get(ADD_CAPA)` |
| 2.3.3.3.3 | IF | `!chbfHpCapa.equals(chafHpCapa)` // Capacity differs |
| 2.3.3.3.3.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_123` |
| 2.3.3.3.3.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_123)` // Web/HP capacity change |
| 3 | ELSE-IF | `isDslOpsvkei` // HP cancelled/withdrawn |
| 3.1 | EXTRACT | `chafUrlDomain = chafEKK0361A010SCHash.get(URL_DOMAIN)` |
| 3.2 | EXTRACT | `chafUrlAccount = chafEKK0361A010SCHash.get(URL_ACCOUNT)` |
| 3.3 | IF | `!isBlank(chafUrlDomain) && !isBlank(chafUrlAccount)` |
| 3.3.1 | IF | `!IDO_DIV_DSL && !IDO_DIV_TEKKYODSL && !IDO_DIV_KYOSEIDSL && !IDO_DIV_CANCEL` // Not a cancellation-divided workflow |
| 3.3.1.1 | SET | `this.same_trn_no = ""` |
| 3.3.2 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_126` |
| 3.3.2.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_126)` // Web unregistration |
| 4 | ELSE-IF | `isKaihkOpsvkei` // HP restored |
| 4.1 | EXTRACT | `chafUrlDomain = chafEKK0361A010SCHash.get(URL_DOMAIN)` |
| 4.2 | EXTRACT | `chafUrlAccount = chafEKK0361A010SCHash.get(URL_ACCOUNT)` |
| 4.3 | IF | `!isBlank(chafUrlDomain) && !isBlank(chafUrlAccount)` |
| 4.3.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_128` |
| 4.3.1.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_128)` // Web restoration |
| 5 | ELSE-IF | `isChgOpsvkei` // HP unchanged but modified |
| 5.1 | IF | `chgOpsvKeiJdg && sameTrnJdg > 0` // Same txn needed |
| 5.1.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 5.1.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 5.2 | IF | `chgOpsvKeiJdg` // Before and after differ |
| 5.2.1 | EXTRACT | `chbfUrl = chbfEKK0361A010SCHash.get(URL_ACCOUNT)` |
| 5.2.2 | EXTRACT | `chafUrl = chafEKK0361A010SCHash.get(URL_ACCOUNT)` |
| 5.2.3 | IF | `!isBlank(chafUrl) && !chafUrl.equals(chbfUrl)` // URL changed |
| 5.2.3.1 | IF | `isBlank(this.same_trn_no)` // Same txn not yet acquired |
| 5.2.3.1.1 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 5.2.3.1.2 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 5.2.3.2 | IF | `!isBlank(chbfUrl)` // Before URL configured |
| 5.2.3.2.1 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_126` |
| 5.2.3.2.2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_126)` // Web unregistration |
| 5.2.3.2.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_127` |
| 5.2.3.2.4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_127)` // Web deletion |
| 5.2.3.3 | SET | `selectOdrNaiyoCd = ODR_NAIYO_CD_121` |
| 5.2.3.3.1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_121)` // Web registration |
