## 5. Dependency Trace

No screen/batch entry points found within 8 hops. Direct callers found: 3 methods.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Method: `KKW00121SFLogic.checkAreaRefresh()` | `checkAreaRefresh()` -> `reloadData()` | `invokeService [C] Various DB`, `initKKW00121-[KKW00199] [C] Tab init` |
| 2 | Method: `KKW00121SFLogic.checkHuryo()` | `checkHuryo()` -> `reloadData()` | `invokeService [C] Various DB`, `initKKW00121-[KKW00199] [C] Tab init` |
| 3 | Method: `KKW00121SFLogic.refreshWithReload()` | `refreshWithReload()` -> `reloadData()` | `invokeService [C] Various DB`, `initKKW00121-[KKW00199] [C] Tab init` |

Note: No direct screen/batch entry points were found within 8 hops of this method. All callers are internal logic methods within KKW00121SFLogic itself. This method is a utility called after other validation/confirmation logic completes, rather than a screen entry point.

## 6. Per-Branch Detail Blocks

**Block 1** - [SET] (L31051)
Initialize working variables

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataBean = getServiceFormBean()` |
| 2 | SET | `opeDate = JCCWebCommon.getOpeDate(this, null)` |

**Block 2** - [SET] (L31053-31059)
Load "before-reload" cached data from session (Reload-mae no shokai data)

| # | Type | Code |
|---|------|------|
| 1 | SET | `oldMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_MSKMDATA)` |
| 2 | IF | `oldMap == null` (L31056) |
| 2.1 | SET | `oldMap = new HashMap<String, Object>()` |
| 3 | SET | `oldMskmInfoMap = (HashMap)oldMap.get(MSKM_INFO_KEY_NAME)` |

**Block 3** - [SET] (L31062-31067)
Create mapper, paramMap, and dataMaps for service invocation

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = new HashMap()` |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, KKSV0081)` |
| 3 | SET | `mapper = new KKSV0081_KKSV0081OPDBMapper()` |
| 4 | SET | `paramBean = {dataBean}` |
| 5 | SET | `dataMap = new HashMap()` |
| 6 | SET | `newMskmInfoMap = new HashMap()` |

**Block 4** - [SET] (L31072-31074)
Configure CC handlers (Set common info CC parameters) (Kytou jouhou tokutoku you CC he no parametaa setsuchi)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapper.setKKSV008111CC(..., JPCModelConstant.FUNC_CD_1, opeDate, COMBO_INFO, WORK_PARAM_INFO, PPLAN_KTTANKA_INFO, PPLAN_JRTANKA_INFO, KAP_PLAN_INFO)` |
| 2 | SET | `mapper.setKKSV008101CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 3 | SET | `mapper.setKKSV008102CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 4 | SET | `mapper.setKKSV008103CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 5 | SET | `mapper.setKKSV008104CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 6 | SET | `mapper.setKKSV008105CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 7 | SET | `mapper.setKKSV008106CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 8 | SET | `mapper.setKKSV008107CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 9 | SET | `mapper.setKKSV008108CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 10 | SET | `mapper.setKKSV008109CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 11 | SET | `mapper.setKKSV008110CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 12 | SET | `mapper.setKKSV008112CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 13 | SET | `mapper.setKKSV008113CC(..., JPCModelConstant.FUNC_CD_2, opeDate)` |
| 14 | SET | `mapper.setKKSV008114CC(..., null, opeDate)` |
| 15 | SET | `mapper.setKKSV008115CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 16 | SET | `mapper.setKKSV008116CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 17 | SET | `mapper.setKKSV008117CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 18 | SET | `mapper.setKKSV008118CC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 19 | SET | `mapper.setKKSV008122CC(..., JPCModelConstant.FUNC_CD_1)` |
| 20 | SET | `mapper.setKKSV008123CC(..., JPCModelConstant.FUNC_CD_1)` |
| 21 | SET | `mapper.setKKSV008126CC(..., JPCModelConstant.FUNC_CD_1)` |
| 22 | SET | `mapper.setKKSV008129SC(..., JPCModelConstant.FUNC_CD_1)` |
| 23 | SET | `mapper.setKKSV008131SC(..., JPCModelConstant.FUNC_CD_1)` |
| 24 | SET | `mapper.setKKSV008132SC(..., JPCModelConstant.FUNC_CD_1, serchCondition)` where serchCondition = "MSKM_TEGAK_SVC_[0-9][0-9]$" |
| 25 | SET | `mapper.setKKSV008133SC(..., JPCModelConstant.FUNC_CD_1, kojihiKapPayWay)` where kojihiKapPayWay = "KK_KAPPAYWAY_LIST[0-9][0-9]$'" |
| 26 | SET | `mapper.setKKSV008134SC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 27 | SET | `mapper.setKKSV008135CC(..., JPCModelConstant.FUNC_CD_1)` |
| 28 | SET | `mapper.setKKSV008136CC(..., JPCModelConstant.FUNC_CD_1)` |
| 29 | SET | `mapper.setKKSV008137SC(..., JPCModelConstant.FUNC_CD_1, opeDate)` |
| 30 | SET | `mapper.setKKSV008142SC(..., JPCModelConstant.FUNC_CD_1)` |

**Block 5** - [SET] (L31092-31100)
Configure SC handlers

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapper.setKKSV008101SC(..., JPCModelConstant.FUNC_CD_1)` |
| 2 | SET | `mapper.setKKSV008102SC(..., JPCModelConstant.FUNC_CD_1)` |
| 3 | SET | `mapper.setKKSV008103SC(..., JPCModelConstant.FUNC_CD_2)` [MOD: OM-2021-0000443 changed from FUNC_CD_1 to FUNC_CD_2] |
| 4 | SET | `mapper.setKKSV008104SC(..., JPCModelConstant.FUNC_CD_1)` |
| 5 | SET | `mapper.setKKSV008105SC(..., JPCModelConstant.FUNC_CD_1)` |
| 6 | SET | `mapper.setKKSV008119CC(..., JPCModelConstant.FUNC_CD_1)` |

**Block 6** - [EXEC] (L31111)
Execute all CC/SC handlers via invokeService (Kensaku shori call - Reload-go no shokai data ga newMap ni set)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `invokeService(paramMap, dataMap, newMskmInfoMap)` |

**Block 7** - [SET] (L31117-31135)
Get results from handlers into bean (Acquired kytou jouhou wo Bean ni setsuchi)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapper.getKKSV008111CC(paramBean, newMskmInfoMap, COMBO_INFO, WORK_PARAM_INFO, PPLAN_KTTANKA_INFO, PPLAN_JRTANKA_INFO, KAP_PLAN_INFO)` |
| 2 | SET | `mapper.getKKSV008118CC(paramBean, newMskmInfoMap)` |
| 3 | SET | `mapper.getKKSV008122CC(paramBean, newMskmInfoMap)` |
| 4 | SET | `mapper.getKKSV008101SC(paramBean, newMskmInfoMap)` |
| 5 | SET | `mapper.getKKSV008103SC(paramBean, newMskmInfoMap)` |
| 6 | SET | `mapper.getKKSV008104SC(paramBean, newMskmInfoMap)` |
| 7 | SET | `mapper.getKKSV008105SC(paramBean, newMskmInfoMap)` |
| 8 | SET | `mapper.getKKSV008125CC(paramBean, newMskmInfoMap)` |
| 9 | SET | `mapper.getKKSV008130SC(paramBean, newMskmInfoMap)` |
| 10 | SET | `mapper.getKKSV008132SC(paramBean, newMskmInfoMap, opeDate)` |
| 11 | SET | `mapper.getKKSV008126CC(this, newMskmInfoMap)` |
| 12 | SET | `mapper.getKKSV008131SC(paramBean, newMskmInfoMap)` |
| 13 | SET | `mapper.getKKSV008134SC(paramBean, newMskmInfoMap)` |
| 14 | SET | `mapper.getKKSV008135CC(paramBean, newMskmInfoMap)` |
| 15 | SET | `mapper.getKKSV008137SC(paramBean, newMskmInfoMap)` |

**Block 8** - [EXEC] (L31138)
Fix course choice list (ANK-3949)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `fixCourseChoiceList(dataBean, newMskmInfoMap)` |

**Block 9** - [IF] MT management info error check `(MT kanri jouhou shokai)` (L31143)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kksv008136ccMap = (HashMap)newMskmInfoMap.get("KKSV008136CC")` |
| 2 | IF | `kksv008136ccMap != null && kksv008136ccMap.containsKey("mtMngInfoList")` (L31146) |
| 2.1 | SET | `resultCd = (String)kksv008136ccMap.get("return_cd")` |
| 2.2 | IF | `!MT_MNG_INFO_API_RESULT_SEIJYO.equals(resultCd)` (L31148) |
| 2.2.1 | EXEC | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE194_KW, new String[]{"Toru-sen to no setsuzoku error", "Mansho-bu-nga jouhou wo toru"})` |

**Block 10** - [SET] (L31158-31173)
Extract service selection lists for comparison (Saabyu ssaku gamen no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)

| # | Type | Code |
|---|------|------|
| 1 | SET | `newSvcSelectMap = (HashMap)newMskmInfoMap.get("KKSV008101CC")` |
| 2 | SET | `newMskmList = (ArrayList)newSvcSelectMap.get("mskm_svc_kei_ucwk_list")` |
| 3 | SET | `newMskmMap = (HashMap)newMskmList.get(0)` |
| 4 | SET | `newMskmDtlList = (ArrayList)newMskmMap.get("mskm_dtl_list")` |
| 5 | SET | `oldSvcSelectMap = (HashMap)oldMskmInfoMap.get("KKSV008101CC")` |
| 6 | SET | `oldMskmList = (ArrayList)oldSvcSelectMap.get("mskm_svc_kei_ucwk_list")` |
| 7 | SET | `oldMskmMap = (HashMap)oldMskmList.get(0)` |
| 8 | SET | `henFlg = false` |

**Block 11** - [FOR] Loop over service detail list `(for each newMskmDtlMap in newMskmDtlList)` (L31176)
Check if any service category prc_grp_cd matches known service types (prc_grp_cd = CD00133_02 through CD00133_16)

| # | Type | Code |
|---|------|------|
| 1 | SET | `newSvcKeiList = (ArrayList)newMskmDtlMap.get("svc_kei_list")` |
| 2 | SET | `newSvcKeiMap = (HashMap)newSvcKeiList.get(0)` |
| 3 | SET | `prcGrpCd = (String)newSvcKeiMap.get("prc_grp_cd")` |
| 4 | SET | `svcKeiUpdDtm = (String)newSvcKeiMap.get("svc_kei_upd_dtm")` |
| 5 | IF | `JKKStrConst.CD00133_02.equals(prcGrpCd) || CD00133_03 || CD00133_04` [-> "02"="eo Hikari Net Home Type", "03"="eo Hikari Net Metro Type", "04"="eo Hikari Net Mansho Type"] (L31184) |
| 5.1 | SET | `henFlg = true` |
| 6 | IF | `JKKStrConst.CD00133_05.equals(prcGrpCd) || CD00133_06 || CD00133_07` [-> "05"="eoADSL eAccess", "06"="eoADSL Flets", "07"="eo Mobile Wi-Fi"] (L31190) |
| 6.1 | SET | `henFlg = true` |
| 7 | IF | `JKKStrConst.CD00133_08.equals(prcGrpCd) || CD00133_09 || CD00133_10` [-> "08"="eo Mobile EM", "09"="eo Mobile UQ-WiMAX", "10"="eo Hikari Denwa"] (L31198) |
| 7.1 | SET | `henFlg = true` |
| 8 | IF | `JKKStrConst.CD00133_11.equals(prcGrpCd) || CD00133_12 || CD00133_13` [-> "11"="eo Hikari TV K-CAT", "12"="eo Hikari TV KCN", "13"="eo Hikari TV Resend"] (L31206) |
| 8.1 | SET | `henFlg = true` |
| 9 | IF | `JKKStrConst.CD00133_16.equals(prcGrpCd)` [-> "16"="Mail Address"] (L31212) |
| 9.1 | SET | `henFlg = true` |
| 10 | IF | `henFlg` (L31215) |
| 10.1 | SET | `henFlg = false` |
| 10.2 | IF | `checkReloadPrcGrpCd(oldMskmMap, prcGrpCd, svcKeiUpdDtm)` (L31218) |
| 10.2.1 | SET | `henFlg = true` |
| 10.2.2 | EXEC | `break` (L31220) |

**Block 12** - [IF] Check if subscription/detail input data changed `(Shinbai, shinbai-meisai no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31225)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!henFlg` (L31225) |
| 1.1 | SET | `newUpdDtm = (String)newMskmMap.get("upd_dtm")` |
| 1.2 | IF | `!newUpdDtm.equals(oldMskmMap.get("upd_dtm"))` |
| 1.2.1 | SET | `henFlg = true` |

**Block 13** - [IF] Check customer info changed `(Okkyaku-sama no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31234)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!henFlg` (L31234) |
| 1.1 | SET | `newCusSelectMap = (HashMap)newMskmInfoMap.get("KKSV008102CC")` |
| 1.2 | SET | `newEckList = (ArrayList)newCusSelectMap.get("ECK0011A010CBSMsg1List")` |
| 1.3 | SET | `newEckMap = (HashMap)newEckList.get(0)` |
| 1.4 | SET | `oldCusSelectMap = (HashMap)oldMskmInfoMap.get("KKSV008102CC")` |
| 1.5 | SET | `oldEckList = (ArrayList)oldCusSelectMap.get("ECK0011A010CBSMsg1List")` |
| 1.6 | SET | `oldEckMap = (HashMap)oldEckList.get(0)` |
| 1.7 | SET | `newLastUpdDtm = (String)newEckMap.get("ck0011_last_upd_dtm")` |
| 1.8 | IF | `!newLastUpdDtm.equals(oldEckMap.get("ck0011_last_upd_dtm"))` |
| 1.8.1 | SET | `henFlg = true` |

**Block 14** - [IF] Re-fetch service selection if henFlg (L31246)

| # | Type | Code |
|---|------|------|
| 1 | IF | `henFlg` (L31246) |
| 1.1 | CALL | `mapper.getKKSV008101CC(paramBean, newMskmInfoMap)` |

**Block 15** - [SET] (L31249)
Re-fetch post-service data and customer info after 01CC

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapper.getKKSV008119CC(paramBean, newMskmInfoMap)` |
| 2 | SET | `mapper.getKKSV008102SC(paramBean, newMskmInfoMap)` |

**Block 16** - [SET] (L31254)
Initialize tab display info (Tab wo hyoji shinaku natta gamen no DataBean wo shokaika suru)

| # | Type | Code |
|---|------|------|
| 1 | SET | `initTabInfo(true)` |

**Block 17** - [SET] (L31257-31261)
Read service flags from data bean

| # | Type | Code |
|---|------|------|
| 1 | SET | `eohNetFlg = dataBean.sendMessageBoolean(EOH_NET_FLG, DATABEAN_GET_VALUE)` |
| 2 | SET | `eohTelFlg = dataBean.sendMessageBoolean(EOH_TEL_FLG, DATABEAN_GET_VALUE)` |
| 3 | SET | `eohTvFlg = dataBean.sendMessageBoolean(EOH_TV_FLG, DATABEAN_GET_VALUE)` |
| 4 | SET | `eohMobaFlg = dataBean.sendMessageBoolean(EOMOBA_FLG, DATABEAN_GET_VALUE)` |
| 5 | SET | `eohAdslFlg = dataBean.sendMessageBoolean(EOADSL_FLG, DATABEAN_GET_VALUE)` |

**Block 18** - [IF] Check if no service tabs are displayed - init service selection screen `(Saabyu ssaku gamen wo hyoji suru)` (L31265)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!eohNetFlg && !eohTelFlg && !eohTvFlg && !eohMobaFlg` (L31265) |
| 1.1 | IF | `!eohAdslFlg` (L31268) |
| 1.1.1 | SET | `initKKW00121()` |

**Block 19** - [SET] (L31279-31293)
Compare contract info (Saishaku-sha jouhou gamen no nyuryoku naiyou)

| # | Type | Code |
|---|------|------|
| 1 | SET | `keiJohoFlg = false` |
| 2 | SET | `newKeiJoMap = (HashMap)newMskmInfoMap.get("KKSV008102CC")` |
| 3 | SET | `newKeiJoList = (ArrayList)newKeiJoMap.get("ECK0011A010CBSMsg1List")` |
| 4 | SET | `newKeiJohMap = (HashMap)newKeiJoList.get(0)` |
| 5 | SET | `oldKeiJoMap = (HashMap)oldMskmInfoMap.get("KKSV008102CC")` |
| 6 | SET | `oldKeiJoList = (ArrayList)oldKeiJoMap.get("ECK0011A010CBSMsg1List")` |
| 7 | SET | `oldKeiJohMap = (HashMap)oldKeiJoList.get(0)` |
| 8 | IF | `oldKeiJohMap == null && newKeiJohMap != null` (L31289) |
| 8.1 | SET | `keiJohoFlg = true` |
| 9 | IF | `oldKeiJohMap != null && newKeiJohMap != null` (L31292) |
| 9.1 | SET | `ck0011LastUpdDtm = (String)newKeiJohMap.get("ck0011_last_upd_dtm")` |
| 9.2 | IF | `!ck0011LastUpdDtm.equals(oldKeiJohMap.get("ck0011_last_upd_dtm"))` |
| 9.2.1 | SET | `keiJohoFlg = true` |

**Block 20** - [IF] Re-fetch customer info if keiJohoFlg (L31298)

| # | Type | Code |
|---|------|------|
| 1 | IF | `keiJohoFlg` (L31298) |
| 1.1 | SET | `mapper.getKKSV008102CC(paramBean, newMskmInfoMap, opeDate)` |

**Block 21** - [IF] Check location info for non-mobile `(Riyoshijo jouhou gamen no nyuryoku naiyou)` (L31308)

| # | Type | Code |
|---|------|------|
| 1 | SET | `riyoNulFlg = false` |
| 2 | IF | `!isMobile(dataBean)` (L31311) |
| 2.1 | SET | `newRiyBaMap = (HashMap)newMskmInfoMap.get("KKSV008110CC")` |
| 2.2 | SET | `newRiyBashotList = (ArrayList)newRiyBaMap.get("mskm_svc_kei_ucwk_list")` |
| 2.3 | SET | `newRiyBashotMap = (HashMap)newRiyBashotList.get(0)` |
| 2.4 | SET | `oldRiyBaMap = (HashMap)oldMskmInfoMap.get("KKSV008110CC")` |
| 2.5 | SET | `oldRiyBashotList = (ArrayList)oldRiyBaMap.get("mskm_svc_kei_ucwk_list")` |
| 2.6 | SET | `oldRiyBashotMap = (HashMap)oldRiyBashotList.get(0)` |
| 2.7 | IF | `oldRiyBashotMap == null && newRiyBashotMap != null` (L31325) |
| 2.7.1 | SET | `riyoNulFlg = true` |
| 2.8 | IF | `oldRiyBashotMap != null && newRiyBashotMap != null` (L31328) |
| 2.8.1 | SET | `kk0251UpdDtm = (String)newRiyBashotMap.get("kk0251_last_upd_dtm")` |
| 2.8.2 | IF | `!kk0251UpdDtm.equals(oldRiyBashotMap.get("kk0251_last_upd_dtm"))` |
| 2.8.2.1 | SET | `riyoNulFlg = true` |
| 2.9 | IF | `riyoNulFlg` (L31335) |
| 2.9.1 | SET | `mapper.getKKSV008110CC(paramBean, newMskmInfoMap, this)` |

**Block 22** - [SET] (L31349-31359)
Compare eo Hikari Net data `(eo Hikari Net gamen no nyuryoku naiyou)`

| # | Type | Code |
|---|------|------|
| 1 | SET | `eoHikNetFlg = false` |
| 2 | SET | `newEoHikariNetWkMap = (HashMap)newMskmInfoMap.get("KKSV008104CC")` |
| 3 | SET | `newEoHikariNetWkList = (ArrayList)newEoHikariNetWkMap.get("EKK0021B502CBSMsg1List")` |
| 4 | SET | `newEoHikariNetKapList = (ArrayList)newEoHikariNetWkMap.get("kk2541_EKK2541B502CBSMsg1List")` |
| 5 | SET | `oldEoHikariNetWkMap = (HashMap)oldMskmInfoMap.get("KKSV008104CC")` |
| 6 | SET | `oldEoHikariNetWkList = (ArrayList)oldEoHikariNetWkMap.get("EKK0021B502CBSMsg1List")` |
| 7 | SET | `oldEoHikariNetKapList = (ArrayList)oldEoHikariNetWkMap.get("kk2541_EKK2541B502CBSMsg1List")` |

**Block 23** - [IF] Check net data change if eohNetFlg `(eo Hikari Net shokai CC)` (L31362)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eohNetFlg` (L31362) |
| 1.1 | IF | `oldEoHikariNetWkList != null && newEoHikariNetWkList != null` (L31364) |
| 1.1.1 | SET | `newEoHikariNetMap = (HashMap)newEoHikariNetWkList.get(0)` |
| 1.1.2 | SET | `oldEoHikariNetMap = (HashMap)oldEoHikariNetWkList.get(0)` |
| 1.1.3 | IF | `oldEoHikariNetMap == null && newEoHikariNetMap != null` (L31370) |
| 1.1.3.1 | SET | `eoHikNetFlg = true` |
| 1.1.4 | IF | `oldEoHikariNetMap != null && newEoHikariNetMap != null` (L31373) |
| 1.1.4.1 | SET | `kk0081LastUpdDtm = (String)newEoHikariNetMap.get("kk0081_last_upd_dtm")` |
| 1.1.4.2 | IF | `!kk0081LastUpdDtm.equals(oldEoHikariNetMap.get("kk0081_last_upd_dtm"))` |
| 1.1.4.2.1 | SET | `eoHikNetFlg = true` |
| 1.2 | IF | `!eoHikNetFlg` (L31383) |
| 1.2.1 | IF | `newEoHikariNetKapList != null && oldEoHikariNetKapList != null` (L31385) |
| 1.2.1.1 | SET | `newKK2541LastUpdDtm = "00000000000000000"` |
| 1.2.1.2 | SET | `oldKK2541LastUpdDtm = "00000000000000000"` |
| 1.2.1.3 | FOR | `i from 0 to newEoHikariNetKapList.size()` (L31393) |
| 1.2.1.3.1 | SET | `newEoHikariNetKapMap = (HashMap)newEoHikariNetKapList.get(i)` |
| 1.2.1.3.2 | IF | `newKK2541LastUpdDtm.compareTo(newEoHikariNetKapMap.get("kk2541_last_upd_dtm")) < 0` |
| 1.2.1.3.2.1 | SET | `newKK2541LastUpdDtm = (String)newEoHikariNetKapMap.get("kk2541_last_upd_dtm")` |
| 1.2.1.4 | FOR | `i from 0 to oldEoHikariNetKapList.size()` (L31400) |
| 1.2.1.4.1 | SET | `oldEoHikariNetKapMap = (HashMap)oldEoHikariNetKapList.get(i)` |
| 1.2.1.4.2 | IF | `oldKK2541LastUpdDtm.compareTo(oldEoHikariNetKapMap.get("kk2541_last_upd_dtm")) < 0` |
| 1.2.1.4.2.1 | SET | `oldKK2541LastUpdDtm = (String)oldEoHikariNetKapMap.get("kk2541_last_upd_dtm")` |
| 1.2.1.5 | IF | `!newKK2541LastUpdDtm.equals(oldKK2541LastUpdDtm)` (L31408) |
| 1.2.1.5.1 | SET | `eoHikNetFlg = true` |
| 1.2.2 | IF | `newEoHikariNetKapList != null && oldEoHikariNetKapList == null` (L31411) |
| 1.2.2.1 | SET | `eoHikNetFlg = true` |
| 1.2.3 | IF | `newEoHikariNetKapList == null && oldEoHikariNetKapList != null` (L31414) |
| 1.2.3.1 | SET | `eoHikNetFlg = true` |

**Block 24** - [IF] Reload net data if eoHikNetFlg (L31420)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eoHikNetFlg` (L31420) |
| 1.1 | SET | `mapper.getKKSV008104CC(paramBean, newMskmInfoMap)` |
| 1.2 | SET | `mapper.getKKSV008105CC(paramBean, newMskmInfoMap)` |
| 1.3 | SET | `mapper.getKKSV008142SC(paramBean, newMskmInfoMap)` |
| 1.4 | IF | `isTypeN()` (L31426) |
| 1.4.1 | CALL | `setNttTenyo(dataBean, newMskmInfoMap)` |
| 1.4.2 | CALL | `setSyokika(dataBean, newMskmInfoMap)` |
| 1.4.3 | CALL | `setNttTelOpt(dataBean, newMskmInfoMap)` |

**Block 25** - [SET] (L31437)
Check telephone data change

| # | Type | Code |
|---|------|------|
| 1 | SET | `eoHikTelFlg = checkReloadKKW00125(oldMskmInfoMap, newMskmInfoMap)` |

**Block 26** - [IF] Reload telephone data if eoHikTelFlg `(Denwa 1, 2 no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31440)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eoHikTelFlg` (L31440) |
| 1.1 | SET | `mapper.getKKSV008106CC(paramBean, newMskmInfoMap)` |

**Block 27** - [IF] Set same address for emergency notification `(eo Hikari Denwa saabyu wo shinshou shite iru baai wa kinjuu tsuhou yuu jyo chu)` (L31446)

| # | Type | Code |
|---|------|------|
| 1 | IF | `dataBean.sendMessageBoolean(EOH_TEL_FLG, DATABEAN_GET_VALUE)` (L31446) |
| 1.1 | SET | `setSameTelEmgAd(getServiceFormBean(), TEL_ONE)` |
| 1.2 | IF | `TEL_TWO.equals(dataBean.sendMessageString(EOH_TEL_NUM_FLG, DATABEAN_GET_VALUE))` (L31449) |
| 1.2.1 | SET | `setSameTelEmgAd(getServiceFormBean(), TEL_TWO)` |

**Block 28** - [SET] (L31458-31463)
Compare eo Hikari TV data `(eo Hikari TV gamen no nyuryoku naiyou)`

| # | Type | Code |
|---|------|------|
| 1 | SET | `eoHikaTvShoFlg = false` |
| 2 | SET | `newEoHikariTvMap = (HashMap)newMskmInfoMap.get("KKSV008108CC")` |
| 3 | SET | `oldEoHikariTvMap = (HashMap)oldMskmInfoMap.get("KKSV008108CC")` |

**Block 29** - [IF] Check TV data change if eohTvFlg `(eo Hikari TV shokai CC)` (L31466)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eohTvFlg` (L31466) |
| 1.1 | IF | `oldEoHikariTvMap == null && newEoHikariTvMap != null` (L31468) |
| 1.1.1 | SET | `eoHikaTvShoFlg = true` |
| 1.2 | IF | `oldEoHikariTvMap != null && newEoHikariTvMap != null` (L31471) |
| 1.2.1 | SET | `kk0081LastUpdDtmTvNew = newEoHikariTvMap.containsKey("kk0081_last_upd_dtm") ? (String)newEoHikariTvMap.get("kk0081_last_upd_dtm") : ""` |
| 1.2.2 | SET | `kk0081LastUpdDtmTvOld = oldEoHikariTvMap.containsKey("kk0081_last_upd_dtm") ? (String)oldEoHikariTvMap.get("kk0081_last_upd_dtm") : ""` |
| 1.2.3 | IF | `!kk0081LastUpdDtmTvNew.equals(kk0081LastUpdDtmTvOld)` |
| 1.2.3.1 | SET | `eoHikaTvShoFlg = true` |

**Block 30** - [IF] Reload TV data if eoHikaTvShoFlg (L31482)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eoHikaTvShoFlg` (L31482) |
| 1.1 | SET | `mapper.getKKSV008108CC(paramBean, newMskmInfoMap)` |
| 1.2 | SET | `mapper.getKKSV008109CC(paramBean, newMskmInfoMap)` |

**Block 31** - [SET] (L31492-31497)
Compare mobile data `(Mobairu no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)`

| # | Type | Code |
|---|------|------|
| 1 | SET | `eoMobalFlg = false` |
| 2 | SET | `newEoHikariMobMap = (HashMap)newMskmInfoMap.get("KKSV008112CC")` |
| 3 | SET | `oldEoHikariMobMap = (HashMap)oldMskmInfoMap.get("KKSV008112CC")` |

**Block 32** - [IF] Check mobile data change if eohMobaFlg `(eo Mobairu shokai CC)` (L31500)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eohMobaFlg` (L31500) |
| 1.1 | IF | `oldEoHikariMobMap == null && newEoHikariMobMap != null` (L31502) |
| 1.1.1 | SET | `eoMobalFlg = true` |
| 1.2 | IF | `oldEoHikariMobMap != null && newEoHikariMobMap != null` (L31505) |
| 1.2.1 | SET | `kk0081LastUpdDtmMbNew = newEoHikariMobMap.containsKey("mobile_last_upd_dtm") ? (String)newEoHikariMobMap.get("mobile_last_upd_dtm") : ""` |
| 1.2.2 | SET | `kk0081LastUpdDtmMbOld = oldEoHikariMobMap.containsKey("mobile_last_upd_dtm") ? (String)oldEoHikariMobMap.get("mobile_last_upd_dtm") : ""` |
| 1.2.3 | IF | `!kk0081LastUpdDtmMbNew.equals(kk0081LastUpdDtmMbOld)` |
| 1.2.3.1 | SET | `eoMobalFlg = true` |

**Block 33** - [IF] Reload mobile data if eoMobalFlg (L31515)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eoMobalFlg` (L31515) |
| 1.1 | SET | `mapper.getKKSV008112CC(paramBean, newMskmInfoMap, ADDRESS_MOBILE_KIKI_SOHUS)` |

**Block 34** - [SET] (L31525-31529)
Compare ADSL data `(ADSL no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)`

| # | Type | Code |
|---|------|------|
| 1 | SET | `eoAdsFlg = false` |
| 2 | SET | `newEoAdslMap = (HashMap)newMskmInfoMap.get("KKSV008113CC")` |
| 3 | SET | `oldEoAdslMap = (HashMap)oldMskmInfoMap.get("KKSV008113CC")` |

**Block 35** - [IF] Check ADSL data change if eohAdslFlg `(eoADSL shokai CC)` (L31532)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eohAdslFlg` (L31532) |
| 1.1 | IF | `oldEoAdslMap == null && newEoAdslMap != null` (L31534) |
| 1.1.1 | SET | `eoAdsFlg = true` |
| 1.2 | IF | `oldEoAdslMap != null && newEoAdslMap != null` (L31537) |
| 1.2.1 | SET | `kk0081LastUpdDtmAd = (String)newEoAdslMap.get("kk0081_last_upd_dtm")` |
| 1.2.2 | IF | `!kk0081LastUpdDtmAd.equals(oldEoAdslMap.get("kk0081_last_upd_dtm"))` |
| 1.2.2.1 | SET | `eoAdsFlg = true` |

**Block 36** - [IF] Reload ADSL data if eoAdsFlg (L31544)

| # | Type | Code |
|---|------|------|
| 1 | IF | `eoAdsFlg` (L31544) |
| 1.1 | SET | `mapper.getKKSV008113CC(paramBean, newMskmInfoMap)` |

**Block 37** - [IF] Reload special options `(Tokui no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31551)

| # | Type | Code |
|---|------|------|
| 1 | SET | `isReloadTokkiFlg = checkReloadKKW00182(oldMskmInfoMap, newMskmInfoMap)` |
| 2 | IF | `isReloadTokkiFlg` (L31553) |
| 2.1 | SET | `mapper.getKKSV008114CC(paramBean, newMskmInfoMap)` |

**Block 38** - [IF] Reload payment method `(Shihara-hou no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31559)

| # | Type | Code |
|---|------|------|
| 1 | SET | `isReloadPaywayFlg = checkReloadKKW00183(oldMskmInfoMap, newMskmInfoMap)` |
| 2 | IF | `isReloadPaywayFlg` (L31561) |
| 2.1 | SET | `mapper.getKKSV008103CC(paramBean, newMskmInfoMap)` |

**Block 39** - [IF] Reload discount info `(Waribiki jouhou no nyuryoku naiyou wo shokai shita deeta de kiki-kaeru)` (L31567)

| # | Type | Code |
|---|------|------|
| 1 | SET | `isReloadWribFlg = checkReloadKKW00184(oldMskmInfoMap, newMskmInfoMap)` |
| 2 | IF | `isReloadWribFlg` (L31569) |
| 2.1 | SET | `mapper.getKKSV008115CC(paramBean, newMskmInfoMap)` |
| 2.2 | SET | `setListBackColor()` |

**Block 40** - [SET] (L31577-31581)
Store reload result to session `(Reload-go no shokai data kakudo)`

| # | Type | Code |
|---|------|------|
| 1 | SET | `screenInfoMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_MSKMDATA)` |
| 2 | IF | `screenInfoMap == null` (L31579) |
| 2.1 | SET | `screenInfoMap = new HashMap<String, Object>()` |
| 3 | SET | `screenInfoMap.put(MSKM_INFO_KEY_NAME, newMskmInfoMap)` |
| 4 | SET | `JCCWebCommon.setScreenInfo(this, SESSION_KEY_MSKMDATA, screenInfoMap)` |

**Block 41** - [SET] (L31585-31587)
Initialize VDSL screen state + footer button control

| # | Type | Code |
|---|------|------|
| 1 | SET | `initVdslHsk()` |
| 2 | SET | `activateFooterButton(false)` |

**Block 42** - [IF] Hikari Man-sho and Course Change possible flags (ANK-4244, ANK-4493) (L31590)

| # | Type | Code |
|---|------|------|
| 1 | SET | `fixedText = "KKSV008118CC"` |
| 2 | IF | `JKKKeiNewCmnLogicUtil.judgeHkrmn(newMskmInfoMap, fixedText)` (L31590) |
| 2.1 | SET | `dataBean.sendMessageBoolean(HKRMN_FLG, DATABEAN_SET_VALUE, true)` |
| 2.2 | SET | `editHkrmnComboBox(dataBean, newMskmInfoMap)` |
| 3 | ELSE-IF | `JKKKeiNewCmnLogicUtil.judgeHhs_Cschpsb_Mans(newMskmInfoMap, fixedText)` (L31599) |
| 3.1 | SET | `dataBean.sendMessageBoolean(HHS_CSCHPSB_MANS_FLG, DATABEAN_SET_VALUE, true)` |
| 3.2 | SET | `editHkrmnComboBox(dataBean, newMskmInfoMap)` |

**Block 43** - [EXEC] (L31608-31619)
Error check and device move check

| # | Type | Code |
|---|------|------|
| 1 | SET | `checkConfirmError(true)` |
| 2 | IF | `!checkMoveKKW03301()` (L31612) |
| 2.1 | SET | `dataBean.sendMessageString(KIKI_DTL_MOVE_CHK_FLG, DATABEAN_SET_VALUE, "1")` |
| 3 | ELSE | (L31616) |
| 3.1 | SET | `dataBean.sendMessageString(KIKI_DTL_MOVE_CHK_FLG, DATABEAN_SET_VALUE, "0")` |

**Block 44** - [IF] Search old employee name if henFlg (ANK-2679) (L31624)

| # | Type | Code |
|---|------|------|
| 1 | IF | `henFlg` (L31624) |
| 1.1 | CALL | `searchAgntMkmUkEostfUserIdAjax()` |

**Block 45** - [EXEC] (L31628)
Edit displayed service list (ANK-3910)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `editTegakSvcList(dataBean)` |

**Block 46** - [SET] (L31631-31633)
Determine current screen ID and tab service flag

| # | Type | Code |
|---|------|------|
| 1 | SET | `currentScreenId = getScreenId(this)` |
| 2 | SET | `isTabSvc = !eohNetFlg && !eohTelFlg && !eohTvFlg && !eohMobaFlg && !eohAdslFlg` |

**Block 47** - [IF-ELSE-IF] Screen-specific initialization (L31635-31677)

| # | Type | Code |
|---|------|------|
| 1 | IF | `SCREEN_ID_KKW00121.equals(currentScreenId) && (henFlg || isTabSvc)` (L31635) |
| 1.1 | SET | `initKKW00121()` |
| 2 | ELSE-IF | `SCREEN_ID_KKW00122.equals(currentScreenId) && riyoNulFlg` (L31639) |
| 2.1 | SET | `initKKW00122()` |
| 3 | ELSE-IF | `SCREEN_ID_KKW00123.equals(currentScreenId) && keiJohoFlg` (L31643) |
| 3.1 | SET | `initKKW00123()` |
| 4 | ELSE-IF | `SCREEN_ID_KKW00124.equals(currentScreenId) && eoHikNetFlg` (L31647) |
| 4.1 | SET | `initKKW00124()` |
| 5 | ELSE-IF | `SCREEN_ID_KKW00125.equals(currentScreenId) && eoHikTelFlg` (L31651) |
| 5.1 | SET | `initKKW00125()` |
| 6 | ELSE-IF | `SCREEN_ID_KKW00179.equals(currentScreenId) && eoHikTelFlg` (L31655) |
| 6.1 | SET | `initKKW00179()` |
| 7 | ELSE-IF | `SCREEN_ID_KKW00180.equals(currentScreenId) && eoHikaTvShoFlg` (L31659) |
| 7.1 | SET | `initKKW00180()` |
| 8 | ELSE-IF | `SCREEN_ID_KKW00181.equals(currentScreenId) && eoMobalFlg` (L31663) |
| 8.1 | SET | `initKKW00181()` |
| 9 | ELSE-IF | `SCREEN_ID_KKW00182.equals(currentScreenId) && isReloadTokkiFlg` (L31667) |
| 9.1 | SET | `initKKW00182()` |
| 10 | ELSE-IF | `SCREEN_ID_KKW00183.equals(currentScreenId) && isReloadPaywayFlg` (L31671) |
| 10.1 | SET | `initKKW00183()` |
| 11 | ELSE-IF | `SCREEN_ID_KKW00184.equals(currentScreenId) && isReloadWribFlg` (L31675) |
| 11.1 | SET | `initKKW00184()` |
| 12 | ELSE-IF | `SCREEN_ID_KKW00189.equals(currentScreenId) && eoAdsFlg` (L31679) |
| 12.1 | SET | `initKKW00189()` |
| 13 | ELSE-IF | `SCREEN_ID_KKW00199.equals(currentScreenId)` (L31684) |
| 13.1 | SET | `initKKW00199()` |

**Block 48** - [EXEC] (L31690)
Display all page error info to message error

| # | Type | Code |
|---|------|------|
| 1 | CALL | `displayAllPageErrInfo()` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `reloadData` | Method | Reload processing - refetches all screen data after service selection changes |
| `henFlg` | Field | Henkou Flag - change indicator, true when data has been modified since last reload |
| `keiJohoFlg` | Field | Keiyaku-jouhou Flag - contract information change flag |
| `riyoNulFlg` | Field | Riyousho jouhou Flag - location/service site information change flag |
| `eoHikNetFlg` | Field | eo Hikari Net change flag |
| `eoHikTelFlg` | Field | eo Hikari Telephone change flag |
| `eoHikaTvShoFlg` | Field | eo Hikari TV show change flag |
| `eoMobalFlg` | Field | eo Mobile change flag |
| `eoAdsFlg` | Field | eo ADSL change flag |
| `isReloadTokkiFlg` | Field | Special options reload flag |
| `isReloadPaywayFlg` | Field | Payment method reload flag |
| `isReloadWribFlg` | Field | Discount information reload flag |
| `prc_grp_cd` | Field | Price group code - classifies service billing group type |
| `svc_kei_ucwk_no` | Field | Service detail work number - internal tracking ID for service contract line items |
| `svc_kei_upd_dtm` | Field | Service contract last update datetime |
| `kk0081_last_upd_dtm` | Field | kk0081 last update datetime - used across multiple service screens |
| `ck0011_last_upd_dtm` | Field | Customer information last update datetime |
| `kk0251_last_upd_dtm` | Field | kk0251 last update datetime - location service site update time |
| `kk2541_last_upd_dtm` | Field | kk2541 last update datetime - eo Hikari Net supplementary data time |
| `upd_dtm` | Field | Update datetime for subscription detail |
| `mskm_dtl_list` | Field | Service selection detail list - nested list of service items |
| `mskm_svc_kei_ucwk_list` | Field | Service selection service detail work list |
| `svc_kei_list` | Field | Service detail list - nested within mskm_dtl_list |
| CD00133_01 | Constant | Price group code "01" - eo Net Home Type (base) |
| CD00133_02 | Constant | Price group code "02" - eo Hikari Net Home Type |
| CD00133_03 | Constant | Price group code "03" - eo Hikari Net Metro Type |
| CD00133_04 | Constant | Price group code "04" - eo Hikari Net Mansho Type |
| CD00133_05 | Constant | Price group code "05" - eoADSL (eAccess) |
| CD00133_06 | Constant | Price group code "06" - eoADSL (Flets) |
| CD00133_07 | Constant | Price group code "07" - eo Mobile (Wi-Fi) |
| CD00133_08 | Constant | Price group code "08" - eo Mobile (EM) |
| CD00133_09 | Constant | Price group code "09" - eo Mobile (UQ-WiMAX) |
| CD00133_10 | Constant | Price group code "10" - eo Hikari Denwa |
| CD00133_11 | Constant | Price group code "11" - eo Hikari TV (K-CAT) |
| CD00133_12 | Constant | Price group code "12" - eo Hikari TV (KCN) |
| CD00133_13 | Constant | Price group code "13" - eo Hikari TV (Resend) |
| CD00133_16 | Constant | Price group code "16" - Mail Address |
| EO_H_NET_FLG | Constant | eo Hikari Net service flag - true when Net service selected |
| EO_H_TEL_FLG | Constant | eo Hikari Telephone service flag |
| EO_H_TV_FLG | Constant | eo Hikari TV service flag |
| EOMOBA_FLG | Constant | eo Mobile service flag |
| EOADSL_FLG | Constant | eo ADSL service flag |
| HKRMN_FLG | Constant | Hikari Man-sho flag - true for condominium Hikari scenario |
| HHS_CSCHPSB_MANS_FLG | Constant | Hikari Course Change possible flag for condominium |
| KIKI_DTL_MOVE_CHK_FLG | Constant | Device detail move check flag - "1"=cannot move, "0"=can move |
| KKW00121 | Constant | Screen ID for service selection tab |
| KKW00122 | Constant | Screen ID for location information tab |
| KKW00123 | Constant | Screen ID for contract information tab |
| KKW00124 | Constant | Screen ID for eo Hikari Net tab |
| KKW00125 | Constant | Screen ID for eo Hikari Telephone tab 1 |
| KKW00179 | Constant | Screen ID for eo Hikari Telephone tab 2 |
| KKW00180 | Constant | Screen ID for eo Hikari TV tab |
| KKW00181 | Constant | Screen ID for Mobile tab |
| KKW00182 | Constant | Screen ID for special options tab |
| KKW00183 | Constant | Screen ID for payment method tab |
| KKW00184 | Constant | Screen ID for discount information tab |
| KKW00189 | Constant | Screen ID for ADSL tab |
| KKW00199 | Constant | Screen ID for additional management tab |
| SESSION_KEY_MSKMDATA | Constant | Session key for service selection data snapshot |
| MSKM_INFO_KEY_NAME | Constant | Key within session map for service selection snapshot |
| EKK0021B502CBS | Entity/DB | eo Hikari Net contract information table |
| EKK2541B502CBS | Entity/DB | eo Hikari Net supplementary information table |
| ECK0011A010CBS | Entity/DB | Customer information table |
| FTTH | Business term | Fiber To The Home - fiber-optic broadband service type |
| eo Hikari | Business term | eo-branded fiber-optic broadband service by NTT East |
| eo ADSL | Business term | eo-branded ADSL broadband service |
| eo Mobile | Business term | eo-branded mobile wireless service |
| Mansho | Japanese term | Condominium/Apartment building - refers to multi-unit residential buildings |
| Tokki | Japanese term | Special options - promotional or limited-time service options |
| Shihara-hou | Japanese term | Payment method |
| Waribiki | Japanese term | Discount |
| MT | Acronym | Mansion (building) - building management information |
| ISP | Acronym | Internet Service Provider |
| CC | Acronym | Control Component - a service component type in the architecture |
| SC | Acronym | Service Component - backend service component |
| CBS | Acronym | Common Business Service - database access service layer |
| ANK | Acronym | Internal issue tracking prefix (e.g., ANK-3296 = work item) |
| eAccess | Business term | NTT eAccess - DSL broadband service brand |
| K-CAT | Business term | K-CAT - eo Hikari TV terminal type |
| KCN | Business term | KCN - eo Hikari TV service platform |
| UQ-WiMAX | Business term | UQ WiMAX - mobile wireless broadband service |
| EM | Business term | EM - Mobile service type (eMobairu) |
| Type-N | Business term | NTT Type-N service contract category |