## 6. Per-Branch Detail Blocks

**Block 1** — INITIALIZATION (L1307)

> Initializes the method: creates mapper, gets error map, extracts target data.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `JKKBpCommon.printBpDebugLog(...)` // Debug log [KK_DEBUG] inspection CC start |
| 2 | SET | `scCall = new ServiceComponentRequestInvoker()` |
| 3 | SET | `inMap = null; svkeiDataERR = null; kidoCd = null; kisnNo = null; rekisnNo = null;` |
| 4 | SET | `errorMapList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO)` |
| 5 | SET | `if (errorMapList == null) errorMapList = new ArrayList<Object>();` |
| 6 | EXEC | `param = createMapper(param);` // Mapper creation |
| 7 | SET | `inMap = (HashMap)param.getData(JKKSvkeiShosaConstCC.TRGT_DATA)` |
| 8 | SET | `elecPrgAddZmFlg = false;` // Electric progress registration flag |
| 9 | SET | `kaisenSamePlcEoelecScreen = (String)inMap.get(KAISEN_SAME_PLC_EOELEC_SCREEN)` |
| 10 | SET | `if (!JKKCommonUtil.isNull(kaisenSamePlcEoelecScreen))` // Parse same-location eo/electric screen data |
| 11 | SET | `itensEoElecSvkeisub = kaisenSamePlcEoelecScreen.split(JKKStrConst.COLON, -1);` |
| 12 | SET | `if (itensEoElecSvkeisub.length >= 3) eoelecSvcKeiNo = itensEoElecSvkeisub[0];` |
| 13 | SET | `trgtDataList = (List)inMap.get(TRGT_DATA_LIST);` |
| 14 | SET | `svkeiDataERR = (HashMap)trgtDataList.get(0);` |
| 15 | SET | `kidoCd = (String)svkeiDataERR.get(KIDO_CD);` |
| 16 | EXEC | `createErrorChgTbl(kidoCd);` // Create error-chg tbl

**Block 2** — FIRST LOOP (First `for (int i = 0; i < trgtDataList.size(); i++)`) (L1377)

> First loop: pre-check for each service contract data. Handles initial HNet-specific pre-verification when this is the first service contract (i=0) in a multi-service order.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svkeiData = (HashMap)trgtDataList.get(i);` |
| 2 | SET | `svcKeiNo = (String)svkeiData.get(SVC_KEI_NO);` |
| 3 | SET | `wkRsltShokaiMap = new HashMap<String, Object>();` |
| 4 | EXEC | `shokaiMapper.editInMsgEKK0081A010(param, svcKeiNo);` // Service contract one-match inquiry |
| 5 | EXEC | `runShokai(param, handle, wkRsltShokaiMap, new String[]{MAP_KEY_EKK0081A010});` |
| 6 | SET | `workEKK0081A010 = getWorkParentData(..., EKK0081A010CBSMSG1LIST, ...)` |
| 7 | SET | `svcCd = workEKK0081A010[0].getString(SVC_CD);` // Service code |
| 8 | SET | `svcSbtCd = getSvcSbtCd(svcCd, prcGrpCd);` |
| 9 | SET | `idoDiv = (String)svkeiData.get(IDO_DIV);` |
| 10 | SET | `if (JKKBpCommon.isNull(idoDiv))` // If no idoDiv, set from work data |
| 11 | SET | `idoDiv = workEKK0081A010[0].getString(IDO_DIV);` |
| 12 | SET | `if (CD00576_00002.equals(idoDiv) && svcSbtCd == SVC_SBT_CD_HNET)` // [IDO_DIV=CD00576_00002] && HNet |
| 13 | SET | `bolHgw = false; bolHgwKkop = false; kktkSvcKeiNo = "";` |

### Block 2.1 — HNet HGW Pre-check (L1419)

> When idoDiv = CD00576_00002 (service addition) and service subtype is HNet: checks for existing HGW device. If HGW exists but KKOP (K-Opticom Option) router function is not registered, registers wired RT function.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `shokaiMapper.editInMsgEKK0341B022(param, svcKeiNo);` |
| 2 | EXEC | `scCall.run(inMsgEKK0341B022Map, handle);` |
| 3 | SET | `outMsgEKK0341B022List = getWorkData(...)` |
| 4 | SET | `for (j = 0; j < outMsgEKK0341B022List.length; j++)` |
| 5 | SET | `if (KKTK_SVC_C025.equals(childTemplate.getString(KKTK_SVC_CD)))` |
| 6 | SET | `if (kktkSvcStat != null && !"910".equals(...) && !"920".equals(...))` // Status not cancelled/unregistered |
| 7 | SET | `kktkSvcKeiNo = childTemplate.getString(KKTK_SVC_KEI_NO); bolHgw = true; break;` |
| 8 | SET | `if (!JKKStringUtil.isNullBlank(kktkSvcKeiNo))` |
| 9 | EXEC | `shokaiMapper.editInMsgEKK2811B011(param, i);` |
| 10 | EXEC | `scCall.run(inMsgEKK2811B011Map, handle);` |
| 11 | SET | `for (j = 0; j < outMsgEKK2811B011List.length; j++)` |
| 12 | EXEC | `shokaiMapper.editInMsgEKK2811A010(param, childTemplate);` // Device option service inquiry |
| 13 | EXEC | `runShokai(param, handle, wkRsltShokaiMap, new String[]{MAP_KEY_EKK2811A010});` |
| 14 | SET | `kkop_svc_cd = msgEKK2811A010.getString(KKOP_SVC_CD);` |
| 15 | SET | `kkop_tg_g01_kktk_svc_kei_no = msgEKK2811A010.getString(KKTK_SVC_KEI_NO);` |
| 16 | SET | `if (kktkSvcKeiNo.equals(kkop_tg_g01_kktk_svc_kei_no) && svcSbtCd == HNET && "G01".equals(kkop_svc_cd) && !("910".equals(...)))` |
| 17 | SET | `bolHgwKkop = true;` |
| 18 | SET | `if (bolHgw == true && bolHgwKkop == false)` // HGW exists but no KKOP router function |
| 19 | EXEC | `shokaiMapper.editInMsgEKK0491B005(param, i);` // Billing contract list inquiry |
| 20 | EXEC | `runShokai(param, handle, wkRsltShokaiMap, ...)` |
| 21 | SET | `seikyKeiNoMb = (extracted from workEKK0491B005 where svcKeiNo matches)` |
| 22 | EXEC | `shosaOkMapper.editInMsgEKK2811D010(param, idoDiv, sysid, seikyKeiNoMb, kktkSvcKeiNo, mskmDtlNo, updDtm);` // Wired RT function registration |
| 23 | EXEC | `scCall.run(rsltEkk2811d010, handle);` |
| 24 | EXEC | `shosaOkMapper.editResultRPEKK2811D010(rsltEKK2811D010, param);` |
