## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUW00116 | FUW00116SFChecker.validate -> FUW00116SFLogic.finMskm | setEKK0011C050 [C] KK_T_SUB_PROVISIONAL |
| 2 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0011C110 [C] KK_T_SUBSCRIPTION |
| 3 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0341D010 [C] KK_T_EQUIP_CONTRACT |
| 4 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0361D010 [C] KK_T_OP_SVC_ISP |
| 5 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEZM0121D010 [C] KK_T_TELNO |
| 6 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0371D010 [C] KK_T_OP_SVC_CONTRACT |
| 7 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0381D010 [C] KK_T_OP_SVC_CONTRACT |
| 8 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0491C060 [U] KK_T_SEIKYU_CONTRACT |
| 9 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setECC0021D010 [C] KK_T_EMAIL |
| 10 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0521D020 [C] KK_T_CARD_REG |
| 11 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK1091D010 [C] KK_T_ADVANCE |
| 12 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKK0061A010 [C] KK_T_AGNT |
| 13 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setEKKA0010003 [C] KK_T_ASSOCIATION |
| 14 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setFUSV016040SC [R] eo Net consent SC |
| 15 | Screen:FUW00116 | FUW00116SFLogic.finMskm | setJFUMineoSetPlanRenkeiCC [C] mineo discount |
| 16 | Screen:FUW00122 | (redirect target from finMskm) | outputMap data returned from service invocation |

## 6. Per-Branch Detail Blocks

### Block 1 — IF (campaign check) (L1060)

After loading all form beans and service info beans, check if a campaign has been selected.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = getCommonInfoBean()` |
| 2 | SET | `web_new_info = commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)` |
| 3 | SET | `web_new_infobean = web_new_info.getDataBean(0)` |
| 4 | SET | `serviceFormBean = getServiceFormBean()` |
| 5 | SET | `bnEoNet = getEonet(web_new_infobean)` |
| 6 | SET | `bnEoTv = getEotv(web_new_infobean)` |
| 7 | SET | `bnEoTel[] = getEotel(web_new_infobean)` |
| 8 | SET | `keiyakuSvc = getKeiyakusvcinfo(web_new_infobean)` |
| 9 | SET | `mansioninfo = getMansioninfo(web_new_infobean)` |
| 10 | SET | `payWayInfo = getPywyInfo(web_new_infobean)` |
| 11 | SET | `redirectInfo = getRedirectinfo(web_new_infobean)` |
| 12 | SET | `elseInfo = getelseInfo(web_new_infobean)` |
| 13 | CALL | `JFUWebCommon.campaignCheck(web_new_infobean, this)` |
| 14 | IF | Campaign check returns false -> handle campaign result |

### Block 1.1 — IF (campaign check fails) (L1076)

Campaign is selected, so set the campaign result code and redirect to confirmation screen FUW00166.

| # | Type | Code |
|---|------|------|
| 1 | SET | `elseInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_RESULTCODE_18, "1")` |
| 2 | SET | `web_new_infobean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, SCREEN_MODE_KAKUNIN)` |
| 3 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SCREEN_ID_FUW00166)` |
| 4 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SCREEN_NAME_FUW00166)` |
| 5 | RETURN | `return true` |

### Block 2 — IF (new subscriber check) (L1090)

Check if this is a new subscription (MSKM_KBN equals MSKM_KBN_NEW). If so, validate keisha (subscriber) info.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmKbn = web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, GET)` |
| 2 | IF | `JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn)` |

### Block 2.1 — IF (keisha validation) (L1092)

Validate the subscriber's existing contract status.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapper = new FUSV0012_FUSV0012OPDBMapper()` |
| 2 | CALL | `mapper.checkKeishaInfo(web_new_infobean, this)` |
| 3 | IF | `!checkKeishaInfo(...)` -> throw ERROR_CODE_0013 |
| 4 | THROW | `JCCBusinessException(ERROR_CODE_0013)` -- Contract status error |

### Block 3 — PROCESSING (operational date and mail setup) (L1100)

| # | Type | Code |
|---|------|------|
| 1 | SET | `opeDate = JFUWebCommon.getOpeDate(this, null)` |
| 2 | CALL | `setFormBeanMailInfo(web_new_infobean, serviceFormBean)` |

### Block 4 — PROCESSING (mineo set plan info) (L1107)

Set mineo set-discount application info and propagate DNS flags across all service beans.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setmineoSetPlanInfo(commoninfoBean, serviceFormBean)` |
| 2 | SET | `dnskhDoiUmFlg = serviceFormBean.sendMessageString(DNSKH_DOI_ZM_FLG, GET)` |
| 3 | SET | `web_new_infobean.sendMessageString(DNSKH_DOI_UM_SCREEN_06, dnskhDoiUmFlg)` |
| 4 | SET | `bnEoNet.sendMessageString(DNSKH_DOI_ZM_FLG_11, dnskhDoiUmFlg)` |
| 5 | FOR | `for (telBean : bnEoTel)` -> set DNSKH_DOI_ZM_FLG_12 for each |
| 6 | SET | `bnEoTv.sendMessageString(DNSKH_DOI_ZM_FLG_13, dnskhDoiUmFlg)` |
| 7 | SET | `addInputMap = new HashMap<String, Object>()` |
| 8 | CALL | `JFUWebCommon.setMskmDmenXmlMapWebNew(addInputMap, this)` |
| 9 | SET | `super.setSessionObject("add_input_map", addInputMap)` |

### Block 5 — IF (wireless backhaul service type) (L1133)

Determine key service type code based on wireless backhaul service type and mansion type.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskm_ksn_svc = web_new_infobean.sendMessageString(MSKM_KSN_SVC_06, GET)` |
| 2 | SET | `mskmMnsType = web_new_infobean.sendMessageString(MSKM_MNS_TYPE_06, GET)` |
| 3 | SET | `plc_mskm = bnEoNet.sendMessageString(PLC_MSKM_11, GET)` |
| 4 | SET | `mesh_wifi = bnEoNet.sendMessageString(MESH_WIFI_11, GET)` |
| 5 | SET | `taknkikiModelCd = null` |
| 6 | SET | `keySvcTypeSkbtCd = null` |
| 7 | IF | `MSKM_KSN_SVC_HOME.equals(mskm_ksn_svc)` -> `keySvcTypeSkbtCd = "HF"` |
| 8 | ELSE-IF | `MSKM_KSN_SVC_MANSION && MSKM_MNS_TYPE_MEZON` -> `keySvcTypeSkbtCd = "MZ"` |
| 9 | ELSE-IF | `MSKM_KSN_SVC_MANSION && MSKM_MNS_TYPE_MANSION` -> `keySvcTypeSkbtCd = "MF"` |

### Block 5.1 — IF (PLC/Mesh Wi-Fi device model) (L1148)

If PLC repeater or mesh Wi-Fi is selected, query device model code via FUSV0376.

| # | Type | Code |
|---|------|------|
| 1 | IF | `("1".equals(plc_mskm) || "1".equals(mesh_wifi))` |
| 2 | IF | `"1".equals(plc_mskm)` -> query WLR path via getDispItemsAsMap |
| 3 | CALL | `callSvcFUSV0376(keySvcTypeSkbtCd, dispDefMapModelWlr)` -> `taknkikiModelCd` |
| 4 | ELSE-IF | `"1".equals(mesh_wifi)` -> query MESH_WIFI path |
| 5 | CALL | `callSvcFUSV0376(keySvcTypeSkbtCd, dispDefMapModelMeshwifi)` -> `taknkikiModelCd` |
| 6 | IF | `JFUWebCommon.isNull(taknkikiModelCd)` -> throw ERROR_CODE_0002 |

### Block 6 — IF (whole-building vs individual registration) (L1170)

Main branching point for service registration mapping approach.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap.put(TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0160)` |
| 2 | SET | `mapper = new FUSV0160_FUSV0160OPDBMapper()` |
| 3 | SET | `mapper_152 = new FUSV0152_FUSV0152OPDBMapper()` |
| 4 | SET | `mapper_161 = new FUSV0161_FUSV0161OPDBMapper()` |
| 5 | SET | `inputMap = (HashMap)super.getSessionObject("add_input_map").get(true)` |
| 6 | SET | `beans = { commoninfoBean, serviceFormBean }` |
| 7 | SET | `knykeiMskmJokenCd = mansioninfo.sendMessageString(KNYKEI_MSKM_JOKEN_CD_16, GET)` |
| 8 | IF | `KNYKEI_MSKM_JOKEN_CD_13.equals(knykeiMskmJokenCd)` [code "13" = whole-building] |

### Block 6.1 — IF (whole-building batch mapping) (L1180)

For whole-building registration, use batch mapping instead of individual registration.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap.put(TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0161)` |
| 2 | CALL | `callSetdatamap(mapper_152, mapper, mapper_161, beans, inputMap, taknkikiModelCd)` |
| 3 | GOTO | Block 11 (outputMap preparation) |

### Block 6.2 — ELSE (full per-service registration) (L1189)

Over 50 mapper calls to register all service contracts sequentially:

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `setMskmDmenXmlMap(beans, inputMap, FUNC_CD_1)` | Subscription screen XML mapping |
| 2 | CALL | `setFUSV016006CC(beans, inputMap, FUNC_CD_1)` | Usage location / residence split |
| 3 | CALL | `setFUSV016007CC(beans, inputMap, FUNC_CD_1)` | Contract holder residence |
| 4 | CALL | `setFUSV016008CC(beans, inputMap, FUNC_CD_1)` | Number portability residence |
| 5 | CALL | `setFUSV016010CC(beans, inputMap, FUNC_CD_1)` | Mobile device delivery address |
| 6 | CALL | `setEKK0011C050(beans, inputMap, FUNC_CD_1)` | Provisional registration |
| 7 | CALL | `setEKK0011C110(beans, inputMap, FUNC_CD_1)` | Subscription content approval |
| 8 | CALL | `setEKK0341D010(beans, inputMap, FUNC_CD_1, modelCd)` | Device contract registration |
| 9 | CALL | `setEKK2811B503(beans, inputMap, FUNC_CD_1)` | Equipment list (front) |
| 10 | CALL | `setEKK0341B002(beans, inputMap, FUNC_CD_1)` | Contract list |
| 11 | CALL | `setEKK0341C330(beans, inputMap, FUNC_CD_1)` | Contract cancellation |
| 12 | CALL | `setEKK0091A010(beans, inputMap, FUNC_CD_1)` | eo Net consent |
| 13 | CALL | `setEKK0341D010Tkn(beans, inputMap, FUNC_CD_1)` | Device contract (TK) |
| 14 | CALL | `setEKK2811D010Net02(beans, inputMap, FUNC_CD_1)` | Equipment option (Net) |
| 15 | CALL | `setEKK2811D010Tel02(beans, inputMap, FUNC_CD_1)` | Equipment option (Tel) |
| 16 | CALL | `setEKK0391D010(beans, inputMap, FUNC_CD_1)` | Support service registration |
| 17 | CALL | `setFUSV016040SC(beans, inputMap, FUNC_CD_2)` | eo Net consent SC |
| 18 | CALL | `setJKKSecurityPackOperateCC(beans, inputMap, FUNC_CD_1)` | Security pack operation |
| 19 | CALL | `setJFUFamipaRouterCC(beans, inputMap, FUNC_CD_2, opeDT)` | Family router auto register |
| 20 | CALL | `setJFUVaKikiCancelCC(beans, inputMap)` | Equipment option cancel |
| 21 | CALL | `setJFUWribSvcKeiAutoAddCC(beans, inputMap, FUNC_CD_1)` | Discount auto add |
| 22 | CALL | `setFUSV016033CC(beans, inputMap, FUNC_CD_1, opeDate)` | Discount registration |
| 23 | CALL | `setFUSV016034CC(beans, inputMap, FUNC_CD_1, opeDate)` | Data extraction |
| 24 | CALL | `setFUSV016021CC(beans, inputMap)` | Latest contract update mapping |

### Block 6.2.1 — IF (tablet/GH plan check) (L1219)

For tablet or GH buy plans, register additional agent, ISP, device, and discount contracts.

| # | Type | Code |
|---|------|------|
| 1 | IF | `SMALIN_TABLET_MSKM.equals(bnEoNet.getTabletTanmtMskm())` OR `GH_TANMT_BUY.equals(bnEoNet.getGhTanmt())` |
| 2 | CALL | `setEKK0061A010(beans, inputMap, FUNC_CD_2)` -- Agent consent |
| 3 | CALL | `setJFUSmartLinAdd2CC(beans, inputMap)` -- eo Smart Link 2 |
| 4 | CALL | `setEKK0361D010(beans, inputMap, FUNC_CD_1)` -- ISP contract |
| 5 | CALL | `setEKK0341D010Sml(beans, inputMap, FUNC_CD_1, opeDate)` -- Device contract (small) |
| 6 | CALL | `setEKK2541D010(beans, inputMap, FUNC_CD_1)` -- Discount contract |

### Block 6.2.2 — ELSE (standard phone and option registrations) (L1238)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setJFUBmpTelNoAddChkCC(beans, inputMap, FUNC_CD_2)` -- BMP phone check |
| 2 | CALL | `setTransferCC(beans, inputMap)` -- Data transfer |
| 3 | CALL | `setJKKChkDobanitenPsbAreaCC(beans, inputMap)` -- Number transfer area check |
| 4 | CALL | `setJFUMstTelNoUpdCC(beans, inputMap, FUNC_CD_1)` -- Master tel update |
| 5 | CALL | `setEZM0121D010(beans, inputMap, FUNC_CD_1)` -- Phone registration |
| 6 | CALL | `setEZM0111D010(beans, inputMap, FUNC_CD_1)` -- Ekiing registration |
| 7 | CALL | `setEKK0191C012(beans, inputMap, FUNC_CD_1)` -- Tel contract content change |
| 8 | CALL | `setEKK0371D010(beans, inputMap, FUNC_CD_1)` -- Tel option contract |
| 9 | CALL | `setEKK0381D010(beans, inputMap, FUNC_CD_1)` -- TV option contract |
| 10 | CALL | `setEKK0341C230(beans, inputMap, FUNC_CD_1)` -- Device contract info change |
| 11 | CALL | `setEKK0431D010(beans, inputMap, FUNC_CD_1)` -- Sub-option registration |
| 12 | CALL | `setEKKA0010003(beans, inputMap, FUNC_CD_1)` -- Pre-association request |
| 13 | CALL | `setEKK0521D020(beans, inputMap, FUNC_CD_1)` -- Credit card reg map |
| 14 | CALL | `setEKK0521D010(beans, inputMap, FUNC_CD_1, NOT_IKT)` -- Credit card request map |
| 15 | CALL | `setEKK1031D010(beans, inputMap, FUNC_CD_1, opeDT)` -- Association registration |
| 16 | CALL | `setJFUAddSeikyKozaCC(beans, inputMap, FUNC_CD_1)` -- Bank account |
| 17 | CALL | `setEKK0491C240(beans, inputMap, FUNC_CD_1, opeDate)` -- Payment change |
| 18 | CALL | `setEKK0491C060(beans, inputMap, FUNC_CD_1, opeDate)` -- Invoice contract change |
| 19 | CALL | `setEKK0081C012(beans, inputMap, FUNC_CD_1)` -- Payment method continuation |
| 20 | CALL | `setEKK0491C220(beans, inputMap, FUNC_CD_1)` -- Invoice reservation cancel |
| 21 | CALL | `setEKK0321D010(beans, inputMap, FUNC_CD_1)` -- Invoice destination |
| 22 | CALL | `mapper_152.setJFUAddAgntCC(beans, inputMap, FUNC_CD_1, SCREEN_ID_FUW00116)` -- Agent |
| 23 | CALL | `setEKK1091D010(beans, inputMap, FUNC_CD_1)` -- Advance registration |
| 24 | CALL | `setECC0021D010(beans, inputMap, FUNC_CD_1)` -- Email registration |
| 25 | CALL | `setECC0021D010_PAY(beans, inputMap, FUNC_CD_1)` -- Email payment registration |
| 26 | CALL | `setEKK2201A010(beans, inputMap, FUNC_CD_1)` -- Web support consent |
| 27 | CALL | `setEKK2201C010(beans, inputMap, FUNC_CD_1)` -- Web support update |
| 28 | CALL | `setEKK0321B002(beans, inputMap, FUNC_CD_1)` -- Telephone couple |

### Block 6.2.3 — IF (telephone package) (L1285)

| # | Type | Code |
|---|------|------|
| 1 | SET | `telMskm = keiyakuSvc.sendMessageString(SELECT_SVC_TEL_10, GET)` |
| 2 | SET | `telCourse = web_new_infobean.sendMessageString(TEL_COURSE_06, GET)` |
| 3 | IF | `SELECT_SVC_TEL_CHOICE.equals(telMskm)` -> register tel package 1-number |
| 4 | CALL | `setEKK0451D01001(beans, inputMap, FUNC_CD_1, opeDate)` |
| 5 | IF | `TEL_COURSE_2BANGOU_SVC.equals(telCourse)` [2-number course] |
| 6 | CALL | `setEKK0451D01002(beans, inputMap, FUNC_CD_1, opeDate)` |

### Block 6.2.4 — ELSE (discount auto apply) (L1300)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setJKKWrisvcAutoAplyCC(beans, inputMap, FUNC_CD_1)` -- Discount auto apply |
| 2 | CALL | `setJKKWrisvcAutoAplyCC2(beans, inputMap, FUNC_CD_1)` -- Discount auto apply 2 |
| 3 | CALL | `setEKK1391C040(beans, inputMap, FUNC_CD_1, opeDate)` -- Data extraction complete |
| 4 | CALL | `setJFUBackyardMappingCC(beans, inputMap)` -- WiFi set mapping |
| 5 | CALL | `setJFUCustCC(beans, inputMap, FUNC_CD_1)` -- Customer data |
| 6 | CALL | `setJFUSameSeikyusakiCheckCC(beans, inputMap, FUNC_CD_1)` -- Same invoice check |
| 7 | CALL | `setJFUAddSeikyOpSvcCC(beans, inputMap, "1")` -- Invoice op service reg |

### Block 6.2.5 — IF (electric guide desire) (L1319)

| # | Type | Code |
|---|------|------|
| 1 | IF | `ELEC_GUIDE_KIBO_ARI.equals(bnEoNet.getElecGuideKibo())` |
| 2 | SET | `opeDateStamp = JFUWebCommon.getOpeDateTimeStamp(this, null)` |
| 3 | CALL | `setECR0511D010(beans, inputMap, FUNC_CD_1, opeDateStamp)` -- CASE file reg |

### Block 6.2.6 — IF (mineo set plan application) (L1331)

Check if mineo set-discount application is active and register.

| # | Type | Code |
|---|------|------|
| 1 | IF | `(MINEO_SETPLAN_KBN="2" && telArea!=empty && telCity!=empty && telLocal!=empty)` OR `(MINEO_SETPLAN_KBN="1" && uktnNo!=empty)` |
| 2 | CALL | `setEKK0011A010(beans, inputMap, FUNC_CD_2)` -- Subscription approval |
| 3 | CALL | `setEKK0011C020(beans, inputMap, FUNC_CD_1, SCREEN_ID_FUW00116)` -- Content change mapping |
| 4 | CALL | `setJFUMineoSetPlanRenkeiCC(beans, inputMap, opeDateTimeStamp)` -- Mineo set-discount linkage |

### Block 6.2.7 — IF (terminal repair plan) (L1355)

| # | Type | Code |
|---|------|------|
| 1 | SET | `netInfobean = getEonet(web_new_infobean)` |
| 2 | SET | `netPcpln = netInfobean.getKkCompPcMskm()` |
| 3 | SET | `netPcwpln = netInfobean.getKkCompPcwMskm()` |
| 4 | SET | `netTvpln = netInfobean.getKkCompTvMskm()` |
| 5 | IF | `(PC_PLN_MSKM.equals(netPcpln) || PCW_PLN_MSKM.equals(netPcwpln) || TV_PLN_MSKM.equals(netTvpln))` |
| 6 | SET | `mskmDate = JFUWebCommon.getOpeDate(this, null)` |
| 7 | CALL | `setJKKTmcpOperateCC(beans, inputMap, FUNC_CD_1, mskmDate)` -- Terminal repair CC |

### Block 6.2.8 — ELSE (standard post-service registrations) (L1383)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setFUSV016041CC(beans, inputMap)` -- Address split CC |
| 2 | CALL | `setFUSV016042CC(beans, inputMap)` -- Contract state check |
| 3 | SET | `payway = payWayInfo.sendMessageString(PAYWAY_15, GET)` |
| 4 | IF | `payway.equals(PAYWAY_CREDIT)` -> `setFUSV016047SC(...)` -- Credit payment SC |
| 5 | IF | Campaign list has entries -> `setJFUGetCampaignListCC(...)` |
| 6 | IF | `intrCd` matches regex `[A-Z][0-9]{9}` -> `setFUSV016044SC` + `setFUSV016043SC` -- Referral |

### Block 7 — PROCESSING (outputMap and post-invoke setup) (L1421)

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputMap = new HashMap<String, Object>()` |
| 2 | CALL | `setWorkStrConstMap(beans, inputMap, FUNC_CD_1)` -- Fixed language linkage |
| 3 | CALL | `setFUSV016046SC(beans, inputMap, FUNC_CD_1)` |
| 4 | SET | `cxStartFrom = JFUWebCommon.getDispItem(CX_START_FROM)` |
| 5 | IF | `cxStartFrom <= opeDate && MSKM_KBN_NEW` -> `setJFUEoidInputInfoAddCC(...)` |
| 6 | CALL | `setJFUMskmDtlUpdCC(beans, inputMap, FUNC_CD_1)` -- Subscription detail update |

### Block 8 — TRY-CATCH (service invocation) (L1438)

Main service invocation with comprehensive exception handling for all SC errors.

| # | Type | Code |
|---|------|------|
| 1 | TRY | `invokeService(paramMap, inputMap, outputMap)` |
| 2 | CATCH | `JCCWebServiceException e` |
| 3 | SET | `moreInfo = e.getMessageList().getMessageMoreInfoList()` |
| 4 | SET | `info = moreInfo[0]` |
| 5 | SET | `templateid = info.getTemplateId()` |
| 6 | SET | `itemid = info.getItemId()` |
| 7 | SET | `status = info.getStatus()` |
| 8 | SET | `errFlg = info.getItemCheckErr()` |
| 9 | IF | `RELATION_ERR.equals(status) && EKKA0010003.equals(templateid)` |

### Block 8.1 — IF (association error retry via FUSV0368) (L1464)

| # | Type | Code |
|---|------|------|
| 1 | IF | `outputMap.containsKey("EKKA0010003")` |
| 2 | SET | `mapper_368 = new FUSV0368_FUSV0368OPDBMapper()` |
| 3 | SET | `paramMap_368.put(TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0368)` |
| 4 | CALL | `mapper_368.setFUSV036801CC(parentMap, inputMap_368, FUNC_CD_1)` |
| 5 | TRY | `invokeService(paramMap_368, inputMap_368, outputMap_368)` |
| 6 | CATCH | `JCCWebServiceException e_368` -> throw ERROR_CODE_0002 |

### Block 8.2 — IF (payment/credit card errors) (L1492)

| # | Type | Code |
|---|------|------|
| 1 | IF | `ERR_PY_CARDNUMBER.equals(itemid)` [py_connect_id] -> set CR_RESULTCODE_NG, redirect FUW00115, return true |
| 2 | IF | `ERR_PY_CARDEXP.equals(itemid)` [py_connect_password] -> set CR_RESULTCODE_NG_2, redirect FUW00115, return true |
| 3 | IF | `ERR_PY_AMOUNT.equals(itemid)` [py_card_token] -> set CR_RESULTCODE_NG_4, redirect FUW00115, return true |
| 4 | ELSE | set CR_RESULTCODE_NG_3, redirect FUW00115, return true |

### Block 8.3 — IF (campaign errors) (L1572)

| # | Type | Code |
|---|------|------|
| 1 | IF | `(EKK1351A010 || EKK1351B003 || EKK0841A010 || EKK0841B003).equals(templateid) && RELATION_CHECK_ERR_EA.equals(errFlg)` |
| 2 | IF | `"notfound".equals(itemid)` -> set elseInfo CAMPAIGN_RESULTCODE_18="1", redirect FUW00166, return true |
| 3 | IF | `"outofrange".equals(itemid)` -> set elseInfo CAMPAIGN_RESULTCODE_18="2", redirect FUW00166, return true |

### Block 8.4 — IF (other template errors) (L1598)

| # | Type | Code |
|---|------|------|
| 1 | IF | `EKK0081B524.equals(templateid) && ITEMID_KEY_SVC_KEI_ERR.equals(itemid)` -> throw ERROR_CODE_0102 |
| 2 | IF | `EZM0121A010.equals(templateid) && ITEMID_KEY_TELNO_ERR.equals(itemid)` -> throw ERROR_CODE_0103 |
| 3 | IF | `EZM0111B030.equals(templateid) && ITEMID_KEY_AGING_TG_VALUE_ERR.equals(itemid)` -> throw ERROR_CODE_0103 |
| 4 | IF | `ETU0071A010.equals(templateid) && ITEMID_KEY_JUDGE_KYOKU_NO_ERR.equals(itemid)` -> throw ERROR_CODE_0103 |
| 5 | IF | `"EKK0161B511".equals(templateid) && "upplno".equals(itemid)` -> throw ERROR_CODE "0112" |
| 6 | IF | `EZM0121C010.equals(templateid) && ITEMID_TELNO_ERR.equals(itemid)` -> throw ERROR_CODE_0102 |

### Block 8.5 — IF (mineo contract errors) (L1646)

| # | Type | Code |
|---|------|------|
| 1 | IF | `EKKA0070001.equals(templateid) && RELATION_CHECK_ERR_EA.equals(errFlg)` |
| 2 | IF | `("shokai" || "else").equals(itemid)` -> setMessageInfo(MSG_EKF2020_NW, MINEO_TEL), return true |
| 3 | IF | `"nodata".equals(itemid)` -> setMessageInfo(MSG_EKF2030_NW, MINEO_TEL), return true |
| 4 | IF | `"EKK0251B502".equals(templateid) && "mineo_stat".equals(itemid)` -> throw ERROR_CODE_0102 |
| 5 | IF | `"ECK0011B009".equals(templateid) && "cust_rsv".equals(itemid)` -> throw ERROR_CODE_0102 |
| 6 | ELSE | throw ERROR_CODE_0002 (system error) |

### Block 9 — PROCESSING (post-invoke) (L1664)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.executeAxmRenkeiService(this)` -- AxM integration |
| 2 | SET | `workKiseiListBean = getWorkKiseiList(commoninfoBean)` |
| 3 | SET | `frontKadoTrgtKiseiFlg = workKiseiListBean.sendMessageString(FRONT_KADO_TRGT_KISEI_FLG_48, GET)` |
| 4 | IF | `!REQUEST_RESTRICTION_FLG_ON.equals(frontKadoTrgtKiseiFlg)` |

### Block 9.1 — IF (no restriction) (L1674)

| # | Type | Code |
|---|------|------|
| 1 | IF | `KNYKEI_MSKM_JOKEN_CD_13.equals(knykeiMskmJokenCd)` [whole-building] |
| 2 | CALL | `callGetdatamap(mapper_152, mapper_161, beans, outputMap)` -- Output mapping |

### Block 9.2 — ELSE (restriction active) (L1682)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `keiyakuSvc.sendMessageString(UPD_DTM_MSKM_NO_10, opeDateTime)` -- Set update datetime |

### Block 10 — FINAL PROCESSING (L1690)

| # | Type | Code |
|---|------|------|
| 1 | SET | `web_new_infobean.sendMessageString(SCREEN_MODE_06, SCREEN_MODE_DEF)` |
| 2 | SET | `commoninfoBean.sendMessageString(NEXT_SCREEN_ID, SCREEN_ID_FUW00122)` |
| 3 | SET | `commoninfoBean.sendMessageString(NEXT_SCREEN_NAME, SCREEN_NAME_FUW00122)` |
| 4 | IF | `KNYKEI_MSKM_JOKEN_CD_13.equals(knykeiMskmJokenCd)` -> `usecaseId = USECASE_ID_FUSV0161` |
| 5 | ELSE | `usecaseId = USECASE_ID_FUSV0160` |
| 6 | CALL | `JFUWebCommon.sendMskmFinMail(this, outputMap, usecaseId)` -- Completion email |
| 7 | RETURN | `return true` |
