## 5. Dependency Trace

### Pre-computed evidence from code analysis graph:

No screen/batch entry points found within 8 hops. Direct callers found: 22 methods.
Terminal operations from this method: sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], addDataBean [C], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], sendMessageString [-], addDataBean [C], chkChgKkopTelAdapt [-], chkChgKkopTelAdapt [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0079 | addKKW00101SF -> addCampaignCdDchskmCdAutoAply -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 2 | Screen:KKSV0080 | chkKKW00101Error -> checkKKW00114Error -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 3 | Screen:KKSV0081 | nextKKW00103 -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 4 | Screen:KKSV0082 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 5 | Screen:KKSV0083 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 6 | Screen:KKSV0085 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 7 | Screen:KKSV0086 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 8 | Screen:KKSV0087 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 9 | Screen:KKSV0538 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |
| 10 | Screen:KKSV0675 | (via call chain from screen controller) -> setSvcKeiSvcKeiUcwkInfo | sendMessageString [-], addDataBean [C] |

The method is internal to the KKW00101SFLogic class and is not exposed as a screen entry point itself. It is called from within the screen logic's business processing methods at various stages of the order flow:

- During campaign code auto-application (addCampaignCdDchskmCdAutoAply)
- During error checking (checkKKW00114Error)
- During form transition to next screen (nextKKW00103)

All call chains originate from screen controllers (KKSVxxxx classes) that map user input to logic class method invocations.

## 6. Per-Branch Detail Blocks

**Block 1** — INIT (L23193)

> Initialize the data bean structure. Get the form bean, retrieve the service detail array, and clear it.

| # | Type | Code |
|---|------|------|
| 1 | GET | `dataBean = getServiceFormBean()` |
| 2 | CALL | `dataArray = dataBean.getDataBeanArray(KKW00101SFConst.SVC_KEI_SVC_KEI_UCWK_INFO)` |
| 3 | EXEC | `dataArray.clearArray()` // Clear service detail list |
| 4 | SET | `bean = { dataBean }` |

**Block 2** — IF [EOH_NET_FLG] (L23212)

> Main branch: eo Hikari Net service. The first child bean is always created for the primary Net service if the flag is true.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE)` // Check eo Hikari Net flag |
| 2 | CALL | `dataArray.addDataBean()` // Add first NET childBean |
| 3 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` // Service type code |
| 4 | CALL | `getNetSvcCd(dataBean)` // Get service code |
| 5 | SET | `SVC_CD_12 = result` |
| 6 | SET | `PRC_GRP_CD_12 = getNetSvcKeiPgrpCd(dataBean, mskmshoSbtCd)` |

**Block 2.1** — IF [MSKM_FORM_CD == "04"] (L23218) [MSKM_FORM_CD_TEL = "04"]

> Phone application: get JYUKYO_TYPE for pricing subtype.

| # | Type | Code |
|---|------|------|
| 1 | GET | `mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `MSKM_FORM_CD_TEL.equals(mskmFormCd)` // Phone application |
| 3 | SET | `mskmshoSbtCd = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)` // Residence type as pricing subtype |

**Block 2.2** — IF [MSKM_FORM_CD == "05"] (L23223) [MSKM_FORM_CD_SHOMEN = "05"]

> Written application: get MSKMSHO_KIND for pricing subtype.

| # | Type | Code |
|---|------|------|
| 1 | IF | `MSKM_FORM_CD_SHOMEN.equals(mskmFormCd)` // Written application |
| 2 | SET | `mskmshoSbtCd = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE)` // Written application subtype |

**Block 2.3** — Pricing code resolution (L23230)

> Get mansion map from session, then resolve pricing codes and convert to 100M premium.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `getMansionMap(this, SESSION_KEY_MSKMDATA)` |
| 2 | CALL | `getNetSvcKeiPrcKnrnCd(bean[0], mskmshoSbtCd, mansionMap)` |
| 3 | CALL | `JKKWebCommon.getNetPrcKnrnCdTo100mPremium(...)` // Convert to 100M premium |
| 4 | SET | `PCRS_CD_12 = chgPrcKnrnMap.get(NET_PRC_KNRN_KEY_PCRSCD)` |
| 5 | SET | `PPLAN_CD_12 = chgPrcKnrnMap.get(NET_PRC_KNRN_KEY_PPLANCD)` |

**Block 2.4** — IF [OP_REMOTE_PLUS] (L23236)

> Remote Support Plus optional service. Always uses fixed codes from JKKStrConst.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.OP_REMOTE_PLUS, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `opRemotePlus` |
| 3 | CALL | `dataArray.addDataBean()` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 5 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.OPSVC_PCRS_RMTSPRT_PLUS` |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.OPSVC_PPLAN_RMTSPRT_PLUS` |

**Block 2.5** — Router rental pull-down (L23245) [opPlcRental = pull-down code]

> Wireless router: was previously a boolean flag, now a pull-down code selection.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `opPlcRental = JKKWebCommon.getPullDownCode(bean[0], ...)` // Get pull-down selection |
| 2 | IF | `JKKKeiNewCmnLogicUtil.OP_PLC_RENTAL_CD_MUSEN.equals(opPlcRental)` // == "2" |

**Block 2.5.1** — IF [opPlcRental == "2"] (L23251) [OP_PLC_RENTAL_CD_MUSEN = "2"]

> Free wireless router (no selection).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataArray.addDataBean()` |
| 2 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 3 | SET | `KKTK_SVC_CD_12 = JKKStrConst.CD00132_PLC` |
| 4 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_WLR_LAN` // Changed from CD00134_PLC_RENT (ANK-3529) |
| 5 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_WLR_LAN` // Changed from CD00565_PLC_RENT (ANK-3529) |
| 6 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 2.5.2** — ELSE IF [opPlcRental == "1"] (L23267) [OP_PLC_RENTAL_CD_MESH = "1"]

> Mesh WiFi wireless router rental (ANK-3825 addition).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataArray.addDataBean()` |
| 2 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 3 | SET | `KKTK_SVC_CD_12 = JKKStrConst.CD00132_PLC` |
| 4 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_MESH_WIFI` |
| 5 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_MESH_WIFI` |
| 6 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 2.6** — IF [IP_STB_RENTAL] (L23278)

> IP STB rental: only creates a child bean if count is a single non-zero digit.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.IP_STB_RENTAL, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `ipStbRentalUseCnt.matches(HANKAKU_NUM_1) && 0 < Integer.parseInt(ipStbRentalUseCnt)` |
| 3 | CALL | `dataArray.addDataBean()` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 5 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_IP_STB` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_SMP` // Changed from CD00134_IP_STB (IT1-2021) |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_SMP` // Changed from CD00565_IP_STB (IT1-2021) |
| 8 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_01` // Changed from CD00212_02 (ANK-3987) |

**Block 2.7** — IF [TABLET_BUY] (L23306)

> Tablet purchase: creates primary tablet bean, and conditionally a cradle bean.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.TABLET_BUY, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `tabletBuy` |
| 3 | CALL | `dataArray.addDataBean()` // Primary tablet |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 5 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_TABLET` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_TABLET` |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_TABLET` |
| 8 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_01` |
| 9 | CALL | `cradleTkniKkCd = JKKWebCommon.getPullDownCode(bean[0], ...)` // Get cradle model |
| 10 | IF | `!"".equals(cradleTkniKkCd)` |
| 11 | CALL | `dataArray.addDataBean()` // Cradle bean |
| 12 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 13 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_TABLET_CRADLE` |
| 14 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_TABLET_CRADLE` |
| 15 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_TABLET_CRADLE` |
| 16 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_01` |

**Block 2.8** — IF [TABLET_PREMIUM_PACK] (L23334)

> SmartLink Premium pack: optional tablet premium service.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `tabletPremiumPack` |
| 3 | CALL | `dataArray.addDataBean()` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 5 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.OPSVC_PCRS_SMARTLINK_PREMIUM` |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.OPSVC_PPLAN_SMARTLINK_PREMIUM` |

**Block 3** — IF [EOH_TEL_FLG] (L23343)

> eo Hikari Telephone service. Primary child bean + optional add-ons.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `EOH_TEL_FLG` |
| 3 | CALL | `dataArray.addDataBean()` // Primary TEL bean |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TEL.name()` |
| 5 | SET | `SVC_CD_12 = getTelSvcCd(dataBean)` |
| 6 | SET | `PRC_GRP_CD_12 = getTelSvcKeiPgrpCd(dataBean)` |
| 7 | SET | `PCRS_CD_12 = getTelSvcKeiPcrsCd(dataBean)` |
| 8 | SET | `PPLAN_CD_12 = getTelSvcKeiPplanCdForNewAdd(dataBean)` |

**Block 3.1** — IF [tel1 or tel2 number notification] (L23361)

> Phone number notification service: either tel1 or tel2 flag triggers one bean.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `tel1HtbTchiUm = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_HTB_TCHI_UM, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | EXEC | `tel2HtbTchiUm = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_HTB_TCHI_UM, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | IF | `tel1HtbTchiUm || tel2HtbTchiUm` |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TEL.name()` |
| 6 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CD_TELNO_TCHI` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_TELNO_DSP` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_TELNO_DSP` |

**Block 3.2** — IF [tel1 or tel2 caller ID] (L23376)

> Caller ID display service.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `tel1OptHtbTchi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_OPT_HTB_TCHI, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | EXEC | `tel2OptHtbTchi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_OPT_HTB_TCHI, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | IF | `tel1OptHtbTchi || tel2OptHtbTchi` |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TEL.name()` |
| 6 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CD_HASINSHA_DSP` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_DSP` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_DSP` |

**Block 3.3** — IF [tel1 or tel2 non-answer rejection] (L23392)

> Non-answer rejection service (sub-option).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `tel1OptHtchiKyohi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | EXEC | `tel2OptHtchiKyohi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | IF | `tel1OptHtchiKyohi || tel2OptHtchiKyohi` |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TEL.name()` |
| 6 | SET | `SBOP_SVC_CD_12 = JKKStrConst.CD00137_HITCHI_KYOHI` // Sub-option SVC code |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_HITCHI_KYOHI` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_HTCHI_KYOHI` |

**Block 4** — IF [EOH_TV_FLG] (L23407)

> eo Hikari TV / Cable TV service. Most complex branch with deep nesting.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `EOH_TV_FLG` |
| 3 | CALL | `dataArray.addDataBean()` // Primary TV bean |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 5 | SET | `SVC_CD_12 = getTvSvcCd(dataBean)` |
| 6 | SET | `PRC_GRP_CD_12 = getTvSvcKeiPgrpCd(dataBean)` |
| 7 | SET | `PCRS_CD_12 = getTvSvcKeiPcrsCd(dataBean)` |
| 8 | SET | `PPLAN_CD_12 = getTvSvcKeiPplanCd(dataBean)` |
| 9 | GET | `catvCompFlg = dataBean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |

**Block 4.1** — IF [K-CAT or Resend + HD] (L23419)

> K-CAT (K-Opticom CATV) or Resend service with Basic HD/Premium HD selection. Deep loop structure.

| # | Type | Code |
|---|------|------|
| 1 | IF | `(catvCompFlg == CATV_COMP_FLG_KCAT (1) || catvCompFlg == CATV_COMP_FLG_RESEND (3)) && MSKM_SVC_CHOICE == MSKM_SVC_CHOICE_HD (1)` |
| 2 | CALL | `kcatUseCnt = Integer.parseInt(subBean.sendMessageString(KKW00101SFConst.TUNER_USE_CNT_CD_22, X31CWebConst.DATABEAN_GET_VALUE)) + 1` |
| 3 | CALL | `JKKWebCommon.stbMainKeiCheck(this, kcatUseCnt)` // STB main contract check |
| 4 | GET | `mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)` |
| 5 | GET | `mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE)` |
| 6 | GET | `jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)` |

**Block 4.1.1** — FOR [i < kcatUseCnt] (L23442)

> Loop over each tuner unit. Gets tuner info from KCAT_TV_TUNER_LIST.

| # | Type | Code |
|---|------|------|
| 1 | GET | `subBean = dataBeanArray.getDataBean(i)` |
| 2 | IF | `!JKKCommonUtil.isNull(subBean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_03, X31CWebConst.DATABEAN_GET_VALUE))` |
| 3 | CALL | `dataArray.addDataBean()` // Course detail bean |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 5 | SET | `PCRS_CD_12 = getTvSckeiUwPcrsCd(subBean)` |
| 6 | SET | `PPLAN_CD_12 = getTvSckeiUwPplanCd(subBean, mskmFormCd, mskmshoKind, jyukyoType)` |

**Block 4.1.2** — Get tuner type code (L23506)

> Convert tuner code from multi-array dropdown.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kcatTvTuner = JKKWebCommon.convertCodeMultiArray(bean[0], ...)` |

**Block 4.1.3** — IF [tuner type = 4K] (L23567) [4KNON = "0" or 4KSTB = "1"]

> 4K STB: creates STB bean with CCAS Card only (no BCAS Card per ANK-3488).

| # | Type | Code |
|---|------|------|
| 1 | IF | `KCAT_TV_TUNER_CD_4KNON.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_4KSTB.equals(kcatTvTuner)` // 4K tuner |
| 2 | CALL | `dataArray.addDataBean()` // STB bean |
| 3 | CALL | `getStbPrcKnrnCd(kcatTvTuner)` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 5 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_STB` |
| 6 | SET | `PCRS_CD_12 = pcrsCd` |
| 7 | SET | `PPLAN_CD_12 = pplanCd` |
| 8 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |
| 9 | CALL | `dataArray.addDataBean()` // CCAS Card bean only (no BCAS per ANK-3488) |
| 10 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 11 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_C_CAS` |
| 12 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_CCAS` |
| 13 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_CCAS` |
| 14 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 4.1.4** — IF [tuner type = 4 or 5 or 6] (L23519)

> Non-4K tuner: creates STB bean + BCAS Card bean + CCAS Card bean.

| # | Type | Code |
|---|------|------|
| 1 | IF | `KCAT_TV_TUNER_CD_NORECNEW.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_HD500.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_HDD2TB.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_NOREC.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_BL.equals(kcatTvTuner) || KCAT_TV_TUNER_CD_HDD.equals(kcatTvTuner)` |
| 2 | CALL | `dataArray.addDataBean()` // STB bean |
| 3 | CALL | `getStbPrcKnrnCd(kcatTvTuner)` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 5 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_STB` |
| 6 | SET | `PCRS_CD_12 = pcrsCd` |
| 7 | SET | `PPLAN_CD_12 = pplanCd` |
| 8 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |
| 9 | CALL | `dataArray.addDataBean()` // BCAS Card bean |
| 10 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 11 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_B_CAS` |
| 12 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_BCAS` |
| 13 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_BCAS` |
| 14 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |
| 15 | CALL | `dataArray.addDataBean()` // CCAS Card bean |
| 16 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 17 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_C_CAS` |
| 18 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_CCAS` |
| 19 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_CCAS` |
| 20 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 4.2** — IF [CABLE_GUIDE_MSKM_CNT > 0] (L23608)

> Cable guide subscription: optional broadband magazine subscription.

| # | Type | Code |
|---|------|------|
| 1 | GET | `cableGuideMskmCnt = dataBean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `cableGuideMskmCnt.matches(HANKAKU_NUM_1) && 0 < Integer.parseInt(cableGuideMskmCnt)` |
| 3 | CALL | `dataArray.addDataBean()` |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.TV.name()` |
| 5 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CABLE_GUDMG` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_B36` |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.OPSVC_PPLAN_CABLE_GUDMG` |

**Block 5** — IF [EOMOBA_FLG] (L23617)

> eo Mobile service. Primary mobile bean + optional Wi-Fi, WiMAX, device, and hybrid router add-ons.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `EOMOBA_FLG` |
| 3 | CALL | `dataArray.addDataBean()` // Primary MBL bean |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.MBL.name()` |
| 5 | SET | `SVC_CD_12 = getMobSvcCd(dataBean)` |
| 6 | SET | `PRC_GRP_CD_12 = getMobSvcKeiPgrpCd(dataBean)` |
| 7 | SET | `PCRS_CD_12 = getMobSvcKeiPcrsCd(dataBean)` |
| 8 | SET | `PPLAN_CD_12 = getMobSvcKeiPplanCd(dataBean)` |

**Block 5.1** — IF [PCRS_CD != A61] (L23633) [CD00134_MOB_MAIL = "A61"]

> Mobile Wi-Fi add-on: created for all mobile plans except the mail plan.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKStrConst.CD00134_MOB_MAIL.equals(pcrsCd)` |
| 2 | CALL | `dataArray.addDataBean()` |
| 3 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.MBL.name()` |
| 4 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_MOB_WIFI` |
| 5 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_MOB_WIFI` |

**Block 5.2** — IF [PCRS_GRP == CD00133_09] (L23643)

> WiMAX add-on: for price group code 09.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKStrConst.CD00133_09.equals(pcrsGrpCd)` |
| 2 | CALL | `dataArray.addDataBean()` |
| 3 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.MBL.name()` |
| 4 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_MOB_WIMAX` |
| 5 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_MOB_WIMAX` |

**Block 5.3** — IF [PCRS_CD != A30 and != A61] (L23653)

> Mobile device provision: excludes ADSL-only plan and mobile mail plan.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKStrConst.CD00134_A30.equals(pcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(pcrsCd)` |
| 2 | CALL | `kikiPcrsCd = JKKWebCommon.convertCode(dataBean, ...)` // Mobile device code |
| 3 | CALL | `kikiSvcCd = getMobKikiSvcCd(dataBean, kikiPcrsCd)` |
| 4 | CALL | `kikiPplanCd = getMobKikiPplanCd(dataBean, kikiPcrsCd)` |
| 5 | CALL | `dataArray.addDataBean()` |
| 6 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.MBL.name()` |
| 7 | SET | `KKTK_SVC_CD_12 = kikiSvcCd` |
| 8 | SET | `PCRS_CD_12 = kikiPcrsCd` |
| 9 | SET | `PPLAN_CD_12 = kikiPplanCd` |
| 10 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_01` |

**Block 5.4** — IF [PCRS_CD = CD00134_3G72M_HYBRID] (L23673)

> Hybrid 3G/2M router: for hybrid plans.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKStrConst.CD00134_3G72M_HYBRID.equals(pcrsCd)` |
| 2 | SET | `kikiPcrsCd = CD00134_MOB_3G7_2M_ROUTER` |
| 3 | CALL | `kikiSvcCd = getMobKikiSvcCd(dataBean, kikiPcrsCd)` |
| 4 | CALL | `kikiPplanCd = getMobKikiPplanCd(dataBean, kikiPcrsCd)` |
| 5 | CALL | `dataArray.addDataBean()` |
| 6 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.MBL.name()` |
| 7 | SET | `KKTK_SVC_CD_12 = kikiSvcCd` |
| 8 | SET | `PCRS_CD_12 = kikiPcrsCd` |
| 9 | SET | `PPLAN_CD_12 = kikiPplanCd` |
| 10 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_01` |

**Block 6** — IF [EOADSL_FLG] (L23693)

> eo ADSL service. Primary ADSL bean + optional E-Access modem.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataBean.sendMessageBoolean(KKW00101SFConst.EOADSL_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | IF | `EOADSL_FLG` |
| 3 | CALL | `dataArray.addDataBean()` // Primary ADSL bean |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.ADSL.name()` |
| 5 | SET | `SVC_CD_12 = getAdslSvcCd(dataBean)` |
| 6 | SET | `PRC_GRP_CD_12 = getAdslSvcKeiPgrpCd(dataBean)` |
| 7 | SET | `PCRS_CD_12 = getAdslPcrsCd(dataBean)` |
| 8 | SET | `PPLAN_CD_12 = getAdslSvcKeiPplanCd(dataBean)` |

**Block 6.1** — IF [E-Access + non-1M no-rental] (L23710)

> E-Access modem: optional E-Access ADSL modem rental.

| # | Type | Code |
|---|------|------|
| 1 | GET | `eoadslEaccessFlg = dataBean.sendMessageString(KKW00101SFConst.EOADSL_EACCESS_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | GET | `adslPlanCd = plan.getDataBean(0).sendMessageString(KKW00101SFConst.ADSL_PLAN_CD_39, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | IF | `EOADSL_EACCESS.equals(eoadslEaccessFlg) && !EOADSL_PLAN_1M_NORENT_MODEM.equals(adslPlanCd)` |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.ADSL.name()` |
| 6 | SET | `OP_SVC_CD_12 = JKKStrConst.OP_SVC_CD_MDM_EM` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.OPSVC_PCRS_MDM_EM` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.OPSVC_PPLAN_MDM_EM` |

**Block 7** — VDSL [VDSL active] (L23725)

> VDSL modem: independent of the five main services. Creates bean if display flags indicate net/tel display and the modem is active.

| # | Type | Code |
|---|------|------|
| 1 | GET | `netVdslHskDspCtlFlg = dataBean.sendMessageBoolean(KKW00101SFConst.NET_VDSL_HSK_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | GET | `tel1VdslHskDspCtlFlg = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_VDSL_HSK_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | GET | `vdslHskKsiCtlFlg = dataBean.sendMessageBoolean(KKW00101SFConst.VDSL_HSK_KSI_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE)` |
| 4 | IF | `(netVdslHskDspCtlFlg || tel1VdslHskDspCtlFlg) && vdslHskKsiCtlFlg` |
| 5 | CALL | `getModemPrcKnrnCd(dataBean, false, null)` |
| 6 | CALL | `vdslModemKktkSbtCd = JKKWebCommon.convertCode(dataBean, ...)` // Convert VDSL model |
| 7 | CALL | `kktkSbtCd = getNetVdslKktkSbtCd(vdslModemKktkSbtCd)` |
| 8 | CALL | `dataArray.addDataBean()` |
| 9 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KISN_KEI_KIKI.name()` |
| 10 | SET | `KKTK_SVC_CD_12 = JKKStrConst.CD00132_MODEM` |
| 11 | SET | `PCRS_CD_12 = pcrsCd` |
| 12 | SET | `PPLAN_CD_12 = pplanCd` |
| 13 | SET | `KKTK_SBT_CD_12 = kktkSbtCd` |

**Block 8** — Router [isChgTakinortKktk] (L23751)

> Wiring-line equipment (multi-function router). Two paths: taking-orthogonal router or eo Hikari Net router options.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `routerRental = JKKWebCommon.getPullDownCode(dataBean, ...)` // Router rental selection |
| 2 | IF | `JKKWebCommon.isChgTakinortKktk(this)` |
| 3 | CALL | `dataArray.addDataBean()` // Taking-orthogonal router |
| 4 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KISN_KEI_KIKI.name()` |
| 5 | SET | `KKTK_SVC_CD_12 = JKKStrConst.KKTK_SVC_CD_TAKINORT` |
| 6 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_TAKINORT` |
| 7 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_TAKINORT` |
| 8 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 8.1** — ELSE [not taking-orthogonal] (L23760)

> eo Hikari Net router options (free rental or basic rental).

| # | Type | Code |
|---|------|------|
| 1 | ELSE | !isChgTakinortKktk |
| 2 | IF | `dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE)` // EO Hikari Net flag in router block |
| 3 | IF | `OP_ROUTER_RENTAL_CD_MUSEN.equals(routerRental)` // == "1" (Free) |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 6 | SET | `KKTK_SVC_CD_12 = JKKStrConst.CD00132_BBR` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_MUSEN_1G_RENT` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_MUSEN_1G_RENT` |
| 9 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 8.1.2** — ELSE IF [routerRental == "2"] (L23773) [OP_ROUTER_RENTAL_CD_BASIC = "2"]

> Basic 1G wireless router rental.

| # | Type | Code |
|---|------|------|
| 1 | ELSE IF | `OP_ROUTER_RENTAL_CD_BASIC.equals(routerRental)` // == "2" (Basic) |
| 2 | CALL | `dataArray.addDataBean()` |
| 3 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.NET.name()` |
| 4 | SET | `KKTK_SVC_CD_12 = JKKStrConst.CD00132_BBR` |
| 5 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_BASIC_1G_RENT` |
| 6 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_BASIC_1G_RENT` |
| 7 | SET | `KKTK_SBT_CD_12 = JKKStrConst.CD00212_02` |

**Block 9** — Router function [chkChgKkopRouter] (L23788)

> Equipment option: router function (wireless or wired).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kkopPcrsCd = JKKWebCommon.chkChgKkopRouter(this)` |
| 2 | IF | `kkopPcrsCd != null` |
| 3 | IF | `JKKStrConst.CD00134_KKOP_MUSEN.equals(kkopPcrsCd)` (Wireless) |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KIKI_OP.name()` |
| 6 | SET | `KKOP_SVC_CD_12 = JKKStrConst.KKOP_SVC_CD_ROUTER` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_KKOP_MUSEN` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_KKOP_MUSEN` |
| 9 | ELSE IF | `JKKStrConst.CD00134_KKOP_YUSEN.equals(kkopPcrsCd)` (Wired) |
| 10 | CALL | `dataArray.addDataBean()` |
| 11 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KIKI_OP.name()` |
| 12 | SET | `KKOP_SVC_CD_12 = JKKStrConst.KKOP_SVC_CD_ROUTER` |
| 13 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_KKOP_YUSEN` |
| 14 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_KKOP_YUSEN` |

**Block 10** — Tel adapter [chkChgKkopTelAdapt] (L23812)

> Equipment option: telephone adapter (No. 1 or No. 2).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kkopPcrsCd = JKKWebCommon.chkChgKkopTelAdapt(this)` |
| 2 | IF | `kkopPcrsCd != null` |
| 3 | IF | `JKKStrConst.CD00134_KKOP_TEL_1.equals(kkopPcrsCd)` (No. 1) |
| 4 | CALL | `dataArray.addDataBean()` |
| 5 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KIKI_OP.name()` |
| 6 | SET | `KKOP_SVC_CD_12 = JKKStrConst.KKOP_SVC_CD_TEL_ADAPT` |
| 7 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_KKOP_TEL_1` |
| 8 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_KKOP_TEL_1` |
| 9 | ELSE IF | `JKKStrConst.CD00134_KKOP_TEL_2.equals(kkopPcrsCd)` (No. 2) |
| 10 | CALL | `dataArray.addDataBean()` |
| 11 | SET | `SVC_KIND_CD_12 = WRIB_KIND_CD.KIKI_OP.name()` |
| 12 | SET | `KKOP_SVC_CD_12 = JKKStrConst.KKOP_SVC_CD_TEL_ADAPT` |
| 13 | SET | `PCRS_CD_12 = JKKStrConst.CD00134_KKOP_TEL_2` |
| 14 | SET | `PPLAN_CD_12 = JKKStrConst.CD00565_KKOP_TEL_2` |

**Block 11** — RETURN (L23830)

> Return the bean array containing the form bean.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return bean` |

## 7. Glossary

### Service Type Codes (WRIB_KIND_CD enum)

| Term | Type | Business Meaning |
|------|------|------------------|
| NET | Service type | eo Hikari Net — fiber-optic broadband internet service. Primary internet service line. |
| TEL | Service type | eo Hikari Telephone — IP-based telephone service. Voice over IP telephony. |
| TV | Service type | eo Hikari Television — Cable/satellite television service via eo Hikari network. |
| MBL | Service type | eo Mobile — Mobile phone/wireless data service. |
| ADSL | Service type | eo ADSL — Asymmetric Digital Subscriber Line broadband service. Legacy copper-line internet. |
| KISN_KEI_KIKI | Service type | Wiring-line equipment — hardware devices installed on the wiring line (modems, routers, STBs). |
| KIKI_OP | Service type | Equipment option — optional add-on features for installed hardware (router function, telephone adapter). |

### Application Form Codes

| Term | Type | Business Meaning |
|------|------|------------------|
| MSKM_FORM_CD_TEL = "04" | Constant | Phone Application — service application submitted by telephone (voice call). |
| MSKM_FORM_CD_SHOMEN = "05" | Constant | Written Application — service application submitted via written form/document. |
| MSKM_SVC_CHOICE_HD = "1" | Constant | Basic HD / Premium HD — HD service tier selection for cable TV. |

### Cable TV Flags

| Term | Type | Business Meaning |
|------|------|------------------|
| CATV_COMP_FLG_KCAT = "1" | Constant | K-CAT — K-Opticom CATV branded cable TV service. Proprietary K-Opticom cable network. |
| CATV_COMP_FLG_RESEND = "3" | Constant | Resend — Cable TV retransmission service (rebroadcasting of broadcast signals). |
| KCAT_TV_TUNER_CD_NORECNEW = "4" | Constant | No-recording, new type — STB with no recording capability, new hardware revision. |
| KCAT_TV_TUNER_CD_HD500 = "5" | Constant | HD 500GB — STB with 500GB HDD for HD recording. |
| KCAT_TV_TUNER_CD_HDD2TB = "6" | Constant | HDD 2TB — STB with 2TB HDD for extended recording. |
| KCAT_TV_TUNER_CD_NOREC = "0" | Constant | No-recording (legacy) — Legacy STB with no recording. |
| KCAT_TV_TUNER_CD_BL = "1" | Constant | Blu-ray — STB with Blu-ray disc recording. |
| KCAT_TV_TUNER_CD_HDD = "2" | Constant | HDD recording (legacy) — Legacy STB with HDD. |
| KCAT_TV_TUNER_CD_4KNON = "0" | Constant | 4K without TV — 4K STB that does not include TV service component. No BCAS card. |
| KCAT_TV_TUNER_CD_4KSTB = "1" | Constant | 4K STB — 4K-capable set-top box. No BCAS card per ANK-3488 modification. |

### Router/Device Rental Codes

| Term | Type | Business Meaning |
|------|------|------------------|
| OP_PLC_RENTAL_CD_MESH = "1" | Constant | Mesh WiFi — Wireless router rental using Mesh WiFi technology. |
| OP_PLC_RENTAL_CD_MUSEN = "2" | Constant | No selection / Free — Free wireless router (no rental charge). |
| OP_ROUTER_RENTAL_CD_MUSEN = "1" | Constant | Free 1G router — Free wireless 1G router rental option. |
| OP_ROUTER_RENTAL_CD_BASIC = "2" | Constant | Basic 1G router — Basic (charged) wireless 1G router rental option. |
| KKTK_SVC_CD_IP_STB | Constant | IP STB — IP-based Set-Top Box for television viewing. |
| KKTK_SVC_CD_STB | Constant | STB — Standard Set-Top Box for cable/satellite TV. |
| KKTK_SVC_CD_B_CAS | Constant | BCAS Card — Broadcast Content Protection Association smart card for encrypted TV content decryption. |
| KKTK_SVC_CD_C_CAS | Constant | CCAS Card — Common CAS (Content Protection for Advanced Services) smart card for CA system independent decryption. |
| KKTK_SVC_CD_TABLET | Constant | Tablet — Tablet device provision service. |
| KKTK_SVC_CD_TABLET_CRADLE | Constant | Tablet Cradle — Tablet accessory cradle provision service. |
| KKTK_SVC_CD_TAKINORT | Constant | Taking-orthogonal router — Multi-function orthogonal-frequency router for wiring-line equipment. |
| KKTK_SVC_CD_MDM_EM | Constant | E-Access modem — ADSL modem for E-Access network (copper-line DSL). |
| KKTK_SVC_CD_TEL_ADAPT | Constant | Telephone adapter — VoIP adapter that converts analog telephone to digital/IP. |
| KKOP_SVC_CD_ROUTER | Constant | Router function — Equipment option for router capability (wireless or wired). |
| CD00132_PLC | Constant | PLC device — PLC (Power Line Communication) device / wireless router. |
| CD00132_MODEM | Constant | Modem — DSL/VDSL modem hardware device. |
| CD00132_BBR | Constant | BBR (BroadBand Router) — Broadband wireless router. |

### Pricing Codes

| Term | Type | Business Meaning |
|------|------|------------------|
| PCRS_CD_12 | Field | Price course code — classifies the pricing structure for a service line item. |
| PPLAN_CD_12 | Field | Price plan code — identifies the specific pricing plan/tier for a service. |
| PRC_GRP_CD_12 | Field | Price group code — groups related pricing structures together. |
| SVC_KIND_CD_12 | Field | Service kind code — identifies the service type category (NET, TEL, TV, MBL, ADSL, etc.). |
| SVC_CD_12 | Field | Service code — identifies the specific service within a service kind. |
| KKTK_SVC_CD_12 | Field | Equipment provision service code — identifies the specific equipment/product being provided. |
| KKTK_SBT_CD_12 | Field | Equipment provision subtype code — identifies the subtype/category of equipment provision. |
| KKOP_SVC_CD_12 | Field | Equipment option service code — identifies the specific equipment option service. |
| OP_SVC_CD_12 | Field | Optional service code — identifies optional/add-on services. |
| SBOP_SVC_CD_12 | Field | Sub-option service code — identifies sub-option services (e.g., non-answer rejection). |
| CD00134_MOB_MAIL = "A61" | Constant | Mobile mail plan — Mobile service type restricted to email-only (excluded from Wi-Fi add-on). |
| CD00134_MOB_WIFI | Constant | Mobile Wi-Fi — Mobile Wi-Fi data service. |
| CD00134_MOB_WIMAX = "A46" | Constant | Mobile WiMAX — WiMAX wireless broadband service. |
| CD00134_3G72M_HYBRID | Constant | 3G/2M Hybrid — Hybrid 3G/2M data plan. |
| CD00134_A30 | Constant | ADSL-only plan code — Plan restricted to ADSL only (no mobile device provision). |
| CD00133_09 | Constant | Price group code 09 — Price group indicating WiMAX eligibility. |
| EOADSL_PLAN_1M_NORENT_MODEM = "0" | Constant | 1M plan, no modem rental — ADSL plan without modem rental (E-Access flag not applied). |
| HANKAKU_NUM_1 = "^[0-9]+$" | Constant | Single digit numeric regex — Used to validate single-digit count values. |

### Data Bean and Array Terms

| Term | Type | Business Meaning |
|------|------|------------------|
| SVC_KEI_SVC_KEI_UCWK_INFO | Field | Service detail information — the main data bean array holding all service contract line items. |
| X31SDataBeanAccess | Class | Data bean access class — represents a single row/record in the service detail list. |
| X31SDataBeanAccessArray | Class | Data bean access array — represents the collection/array of data beans for service details. |
| DATA_BEAN_SET_VALUE | Constant | Data bean set operation — sets a value in a data bean. |
| DATA_BEAN_GET_VALUE | Constant | Data bean get operation — retrieves a value from a data bean. |

### Screen and System Codes

| Term | Type | Business Meaning |
|------|------|------------------|
| KKW00101SF | Screen | Service detail entry screen — the screen where multi-service contracts are configured. Part of the KKW series (service contract entry). |
| KKSV0079-KKSV0087 | Screen | Mapper screens — various screen mappers that invoke the KKW00101SF logic at different stages. |
| SESSION_KEY_MSKMDATA | Constant | Mansion data session key — session storage key for mansion (apartment) information map used in pricing. |
| JACBatCommon | Component | JAC Batch Common — common utility class for batch processing (isNull checks). |
| JKKWebCommon | Component | JKK Web Common — shared web utilities (code conversion, router detection, STB checks, 100M premium conversion). |
| JKKGetData | Component | JKK Data — data retrieval utility (getPullDownCode). |
| JCRGetData | Component | JCR Data — data retrieval utility (getPullDownCode for JCR). |
| JCRWebCommon | Component | JCR Web Common — JCR web utility (getPullDownCode). |
| JKKKeiNewCmnLogic | Component | JKK Kei New Common Logic — shared business logic for service contract calculations. |
| JKKStrConst | Component | JKK String Constants — global string constant definitions for codes and labels. |
| X31CWebConst | Component | X31C Web Constants — web layer constant definitions (DATA_BEAN_SET_VALUE, DATA_BEAN_GET_VALUE). |

### Business Process Terms

| Term | Type | Business Meaning |
|------|------|------------------|
| Service Contract Detail (サービス契約内訳情報) | Concept | The complete breakdown of a service contract into individual line items (each with its own service code, pricing code, and plan code). |
| Remote Support Plus | Service | Optional remote technical support service for internet connections. |
| SmartLink Premium | Service | Premium tablet connectivity package with enhanced mobile data services. |
| IP STB (Set-Top Box) | Equipment | IP-based television receiver that decodes internet-delivered TV signals. |
| BCAS Card | Equipment | Broadcast Content Protection smart card — required for decrypting broadcast TV content in Japan. |
| CCAS Card | Equipment | Common CAS smart card — CA-system-independent decryption card. |
| Cable Guide | Service | Broadband digital magazine/television guide subscription. |
| E-Access | Network | E-Access Inc. — ADSL broadband provider (copper-line DSL network). |
| K-CAT | Network | K-Opticom CATV — K-Opticom's proprietary cable television network. |
| Resend | Network | Cable TV retransmission — rebroadcasting of broadcast signals over cable infrastructure. |
| VDSL | Technology | Very-high-bitrate Digital Subscriber Line — faster DSL technology over copper lines. |
| Mesh WiFi | Technology | Mesh WiFi — wireless networking using multiple router nodes for full-coverage WiFi. |
| 100M Premium | Pricing | 100 Mbps premium pricing tier — upgraded pricing for higher-speed internet plans. |
