# Business Logic — KKW00128SFLogic.cfmTbxKKW00128SFBean() [411 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00128SF.KKW00128SFLogic` |
| Layer | Controller (Web logic class under `eo.web.webview`) |
| Module | `KKW00128SF` (Package: `eo.web.webview.KKW00128SF`) |

## 1. Role

### KKW00128SFLogic.cfmTbxKKW00128SFBean()

This method populates the service form bean for the **Service Contract Information Update Confirmation (eo Hikari Net)** screen. It serves as the **data assembly step** during a "re-display" (再表示) operation, where the system retrieves all relevant service contract, contract details, line details, and address data from the submission-side data beans and consolidates them into the display-side form bean so the user can review their changes. The method handles **four major data consolidation domains**: (1) Service contract header information (review result code, case number, remarks, last update timestamp), (2) Service contract detail information (contract detail number, last update timestamp), (3) Service contract line detail information (line detail number, postal code, phone number, billing room number, full address, expected installation date), and (4) Service lifecycle dates (start date, end date, charge end date, stop/suspension dates, pause dates) along with business flags (unconfirmed address flag, HGW replacement impossibility flag, district reorganization flag, internet opt-out flag, legal entity contract succession flag, WAO integration availability). It uses a **data copy/translation pattern** — pulling values from source data beans by a "_suffix" key pattern (e.g., `_03`, `_04`, `_07`) and writing them to the target form bean using the canonical key name. Date fields are concatenated from year/month/day components and formatted for display. The method also applies conditional logic: copying service end date to service charge end date when `ido_div == "00005"` (termination separation case), and computing WAO (Wired Access Office) integration availability based on whether a Netflix pack change is in progress.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["cfmTbxKKW00128SFBean(svcFormBean)"])
    START --> S1["Set upd_mskm_sbt_cd = JKKCommonConst.MSKM_SBT_CD_VALUE_00027"]
    S1 --> S2["Set KKW00128SFConst.MSKM_SBT_CD to svcFormBean"]
    S2 --> S3["Set PRG_STAT = '1001'"]
    S3 --> S4["Set KKW00128SFConst.PRG_STAT to svcFormBean"]
    S4 --> S5["Get svc_kei_Info array from EKK0081A010CBSMSG1LIST"]
    S5 --> S6["Get svc_kei_subbean (index 0)"]
    S6 --> S7["Copy MENKAIHAT_ANKEN_NO_03 -> MENKAIHAT_ANKEN_NO"]
    S7 --> S8["Copy SKEKKA_CD_03 -> SKEKKA_CD"]
    S8 --> S9["Copy SKEKKA_DTL_CD_03 -> SKEKKA_DTL_CD"]
    S9 --> S10["Copy BIKO_03 -> BIKO"]
    S10 --> S11["Copy LAST_UPD_DTM_03 -> SVC_KEI_LAST_DTM"]
    S11 --> S12["Get svc_kei_ucwk_list_Info from EKK0161B004CBSMSG1LIST"]
    S12 --> S13["Get svc_kei_ucwk_list_subbean (index 0)"]
    S13 --> S14["Copy SVC_KEI_UCWK_NO_04 -> SVC_KEI_UCWK_NO"]
    S14 --> S15["Call getUcwkBean(svcFormBean)"]
    S15 --> S16["Copy LAST_UPD_DTM_03 -> SVC_KEI_UCWK_LAST_DTM"]
    S16 --> S17["Get svc_kei_kaisen_ucwk_Info from EKK0241B001CBSMSG1LIST"]
    S17 --> S18["Get svc_kei_kaisen_ucwk_subbean (index 0)"]
    S18 --> S19["Copy SVC_KEI_KAISEN_UCWK_NO"]
    S19 --> S20["Concat USEPLACE_AD_PCD_1 + USEPLACE_AD_PCD_2"]
    S20 --> S21["Set USEPLACE_AD_PCD"]
    S21 --> S22["Copy USEPLACE_TELNO_07 -> USEPLACE_TELNO"]
    S22 --> S23["Copy SEIKYUS_YO_RM_NO_07 -> SEIKYUS_YO_RM_NO"]
    S23 --> S24["Copy DSP_USEPLACE_AD_CD, remove '-' chars"]
    S24 --> S25["Copy address fields: STATE, CITY, OAZTSU, AZCHO, BNCHIGO, ADRTTM, ADRRM"]
    S25 --> S26["Get SHUNKO_RSV_YEAR + SHUNKO_RSV_MON"]
    S26 --> COND1{Year or Month null/empty?}
    COND1 -->|No| S27["Set SHUNKO_RSV_YM = year+month+'01'"]
    S27 --> S28["Set DSP_SHUNKO_RSV_YM = year/month"]
    COND1 -->|Yes| S29["Set SHUNKO_RSV_YM = ''"]
    S29 --> S30["Set DSP_SHUNKO_RSV_YM = ''"]
    S28 --> S31["Set AD_MI_FIX_FLG from DSP_AD_MI_FIX_FLG boolean"]
    S30 --> S31
    S31 --> S32["Set HGW_KKN_FFG from DSP_HGW_KKN_FFG boolean"]
    S32 --> S33["Set KUKAKU_SEIRI_CHU_FLG from DSP_KUKAKU_SEIRI_CHU_FLG boolean"]
    S33 --> S34["Concat NYUKYO_RSV_YMD = year+month+day"]
    S34 --> S35["Set DSP_NYUKYO_RSV_YMD via editPrettyYmd()"]
    S35 --> S36["Copy SVC_KEI_KAI_UCWK_LAST_DTM"]
    S36 --> COND2{svcStaYmd valid and != MAX_YMD?}
    COND2 -->|Yes| S37["Set SVC_STA_YMD + format DSP_SVC_STA_YMD"]
    COND2 -->|No| S37s["skip"]
    S37 --> COND3{svcEndYmd valid and != MAX_YMD?}
    COND3 -->|Yes| S38["Set SVC_END_YMD + format DSP_SVC_END_YMD"]
    COND3 -->|No| S38s["skip"]
    S38 --> COND4{svcUseStaKiboYmd valid and != MAX_YMD?}
    COND4 -->|Yes| S39["Set SVC_USE_STA_KIBO_YMD + format"]
    COND4 -->|No| S39s["skip"]
    S39 --> COND5{ido_div == IDO_DIV_VALUE_00005?}
    COND5 -->|Yes| S40["Copy SVC_END to SVC_CHRG_END if null"]
    COND5 -->|No| S40s["skip"]
    S40 --> S41["Set SVC_CHRG_END_YMD + format DSP"]
    S41 --> S42["Set SVC_STP_YMD + format DSP_SVC_STP_YMD"]
    S42 --> S43["Set SVC_STP_RLS_YMD + format DSP"]
    S43 --> COND6{svcPauseYmd length == 8?}
    COND6 -->|Yes| S44["Set SVC_PAUSE_YMD + format DSP"]
    COND6 -->|No| S45["Set SVC_PAUSE_YMD = ''"]
    S44 --> COND7{svcPauseRlsYmd length == 8?}
    COND7 -->|Yes| S46["Set SVC_PAUSE_RLS_YMD + format DSP"]
    COND7 -->|No| S47["Set SVC_PAUSE_RLS_YMD = ''"]
    S45 --> COND7
    S46 --> COND8{pauseAplyPrc length == 6?}
    S47 --> COND8
    COND8 -->|Yes| S48["Set PAUSE_APLY_YM + getYYYYMM"]
    COND8 -->|No| S49["Set PAUSE_APLY_YM = ''"]
    S48 --> S50["Get isNetOfHktg boolean"]
    S49 --> S50
    S50 --> COND9{isNetOfHktg?}
    COND9 -->|Yes| S51["Set 法人契約引継コード = '01' on both beans"]
    COND9 -->|No| S52["Set 法人契約引継コード = '' on both beans"]
    S51 --> S53["Read WAO_RNKI_YKS_FLG_DSL + CSCH flags"]
    S52 --> S53
    S53 --> S54["Compare DSL flag == WAO_RNKI_HI_1, set DSP_WAO_RNKI_DSL"]
    S54 --> S55["Call isNfPackJudge(svcFormBean)"]
    S55 --> COND10{isWaornkiflgHi?}
    COND10 -->|Yes| S56["Set CSCH = WAO_RNKI_HI_1, DSP = No"]
    COND10 -->|No| S57["Compare CSCH == WAO_RNKI_HI_1, set DSP"]
    S56 --> S58["End"]
    S57 --> S58
    S58 --> END(["Return"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `svcFormBean` | `X31SDataBeanAccess` | The main form data bean that carries all screen display fields for the Service Contract Update Confirmation (eo Hikari Net) screen. It contains both the source data (submitted values from the previous step, keyed with suffixes like `_03`, `_04`, `_07`) and the target display fields (canonical keys without suffix). This bean is populated by this method so the screen can render all confirmed data. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `ido_div` | `String` | Disconnection separation flag — when equal to `"00005"`, indicates a termination separation case where service charge end dates must be copied from service end dates |
| `sysid` | `String` | System ID |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `OneStopDataBeanAccessArray.getDataBeanArray` | - | - | Retrieves service contract list array from `EKK0081A010CBSMSG1LIST` key |
| - | `OneStopDataBeanAccessArray.getDataBean` | - | - | Retrieves first element (index 0) of service contract list array |
| - | `OneStopDataBeanAccess.sendMessageString (GET)` | - | - | Reads a string value from a source data bean (GET_VALUE operation) |
| - | `OneStopDataBeanAccess.sendMessageString (SET)` | - | - | Writes a string value to the form bean (SET_VALUE operation) |
| - | `OneStopDataBeanAccess.getDataBean` | - | - | Retrieves the service contract detail bean via `getUcwkBean()` |
| R | `KKW00128SFLogic.getUcwkBean` | KKW00128SFLogic | - | Retrieves the service contract detail sub-bean from the form bean |
| R | `KKW00128SFLogic.getBoolean` | KKW00128SFLogic | - | Reads a boolean flag value from the form bean (address unconfirmed, HGW replacement impossible, district reorganization) |
| R | `KKW00128SFLogic.getString` | KKW00128SFLogic | - | Reads a string value from the form bean (date components, null check) |
| U | `KKW00128SFLogic.setString` | KKW00128SFLogic | - | Writes a string value to the form bean |
| - | `KKW00128SFLogic.editPrettyYmd` | KKW00128SFLogic | - | Formats a YYYYMMDD date string into pretty-printed format (e.g., "2023/04/01") |
| R | `KKW00128SFLogic.getYYYYMM` | KKW00128SFLogic | - | Extracts YYYYMM substring from a YYYYMMDD string for pause application period display |
| - | `KKW00128SFLogic.isNfPackJudge` | KKW00128SFLogic | - | Determines whether a Netflix pack change is in progress, sets `isWaornkiflgHi` flag which forces WAO integration to "No" during Netflix pack changes |
| - | `JPCUtilCommon.formatDate` | JPCUtilCommon | - | Formats a YYYYMMDD string into a human-readable date (e.g., "2023/04/01") |

**Classification:**

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `getDataBeanArray` (EKK0081A010CBSMSG1LIST) | EKK0081A010 | Service Contract Info (EKK0081) | Reads service contract header data for review result code, approval status, case number |
| R | `getDataBeanArray` (EKK0161B004CBSMSG1LIST) | EKK0161B004 | Service Contract Detail (EKK0161) | Reads service contract detail information |
| R | `getDataBeanArray` (EKK0241B001CBSMSG1LIST) | EKK0241B001 | Service Contract Line Detail (EKK0241) | Reads service contract line detail including address and phone |
| U | `setString` / `sendMessageString(SET)` | - | Form Bean | Populates all display fields of the confirmation screen form bean |
| R | `getUcwkBean` | KKW00128SFLogic | - | Retrieves service contract update work sub-bean for last update timestamp |
| - | `isNfPackJudge` | KKW00128SFLogic | - | Netflix pack change judgment — determines if changing to 1Gig Netflix pack, sets WAO integration flag to "No" if true |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Controller:KKW00128SFLogic.actionFix() | `actionFix()` -> `cfmTbxKKW00128SFBean(svcFormBean)` | Form bean fields set; formatDate for display; `sendMessageString` for all fields |
| 2 | Controller:KKW00128SFLogic.actionUpdcfm() | `actionUpdcfm()` -> `cfmTbxKKW00128SFBean(svcFormBean)` | Form bean fields set; formatDate for display; `sendMessageString` for all fields |

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Initialize service sub-type code and progress status (L3044)

This block sets the service sub-type code to `MSKM_SBT_CD_VALUE_00027` (FTTH/Hikari Net) and progress status to `1001`, indicating this is an eo Hikari Net service contract update confirmation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `upd_mskm_sbt_cd = JKKCommonConst.MSKM_SBT_CD_VALUE_00027` // Service sub-type: FTTH/Hikari Net |
| 2 | SET | `upd_prg_stat = "1001"` // Progress status: 1001 |
| 3 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, upd_mskm_sbt_cd)` // Set service sub-type code on form bean |
| 4 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, upd_prg_stat)` // Set progress status on form bean |

**Block 2** — [SET] Copy service contract header info (L3058–L3086)

Retrieves the service contract header from `EKK0081A010CBSMSG1LIST` and copies key fields from source (with `_03` suffix) to target display keys.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svc_kei_Info = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST)` // Get service contract list |
| 2 | EXEC | `svc_kei_subbean = svc_kei_Info.getDataBean(0)` // Get first element |
| 3 | EXEC | `upd_menkaihat_anken_no = svc_kei_subbean.sendMessageString(KKW00128SFConst.MENKAIHAT_ANKEN_NO_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get development case number |
| 4 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_SET_VALUE, upd_menkaihat_anken_no)` // Copy to target |
| 5 | EXEC | `upd_skekka_send_cd = svc_kei_subbean.sendMessageString(KKW00128SFConst.SKEKKA_CD_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get review result code |
| 6 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SKEKKA_CD, X31CWebConst.DATABEAN_SET_VALUE, upd_skekka_send_cd)` // Copy to target |
| 7 | EXEC | `upd_skekka_dtl_cd = svc_kei_subbean.sendMessageString(KKW00128SFConst.SKEKKA_DTL_CD_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get review result detail code |
| 8 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SKEKKA_DTL_CD, X31CWebConst.DATABEAN_SET_VALUE, upd_skekka_dtl_cd)` // Copy to target |
| 9 | EXEC | `upd_biko = svc_kei_subbean.sendMessageString(KKW00128SFConst.BIKO_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get update remarks |
| 10 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.BIKO, X31CWebConst.DATABEAN_SET_VALUE, upd_biko)` // Copy to target |
| 11 | EXEC | `svc_kei_last_upd_dtm = svc_kei_subbean.sendMessageString(KKW00128SFConst.LAST_UPD_DTM_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get last update timestamp |
| 12 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SVC_KEI_LAST_DTM, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_last_upd_dtm)` // Copy to target |

**Block 3** — [SET] Copy service contract detail info (L3089–L3102)

Retrieves service contract detail list from `EKK0161B004CBSMSG1LIST` and copies the contract detail number and last update timestamp.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svc_kei_ucwk_list_Info = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0161B004CBSMSG1LIST)` // Get service contract detail list |
| 2 | EXEC | `svc_kei_ucwk_list_subbean = svc_kei_ucwk_list_Info.getDataBean(0)` // Get first element |
| 3 | EXEC | `upd_svc_kei_ucwk_no = svc_kei_ucwk_list_subbean.sendMessageString(KKW00128SFConst.SVC_KEI_UCWK_NO_04, X31CWebConst.DATABEAN_GET_VALUE)` // Get detail number |
| 4 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, upd_svc_kei_ucwk_no)` // Copy to target |
| 5 | EXEC | `svc_kei_ucwk_subbean = getUcwkBean(svcFormBean)` // Get service contract update work sub-bean |
| 6 | EXEC | `svc_kei_ucwk_last_upd_dtm = svc_kei_ucwk_subbean.sendMessageString(KKW00128SFConst.LAST_UPD_DTM_03, X31CWebConst.DATABEAN_GET_VALUE)` // Get last update timestamp |
| 7 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SVC_KEI_UCWK_LAST_DTM, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_ucwk_last_upd_dtm)` // Copy to target |

**Block 4** — [SET] Copy service contract line detail info (L3107–L3166)

Retrieves service contract line detail from `EKK0241B001CBSMSG1LIST` and copies address components, phone number, postal code, and billing room number.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svc_kei_kaisen_ucwk_Info = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0241B001CBSMSG1LIST)` // Get line detail list |
| 2 | EXEC | `svc_kei_kaisen_ucwk_subbean = svc_kei_kaisen_ucwk_Info.getDataBean(0)` // Get first element |
| 3 | EXEC | `upd_svc_kei_kaisen_ucwk_no = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE)` // Get line detail number |
| 4 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, upd_svc_kei_kaisen_ucwk_no)` // Copy to target |
| 5 | EXEC | `ad_pcd1 = svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_AD_PCD_1, X31CWebConst.DATABEAN_GET_VALUE)` // Get postal code upper 3 digits |
| 6 | EXEC | `ad_pcd2 = svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_AD_PCD_2, X31CWebConst.DATABEAN_GET_VALUE)` // Get postal code lower 4 digits |
| 7 | SET | `upd_ad_pcd = ad_pcd1 + ad_pcd2` // Concatenate to full postal code (3+4=7 digits) |
| 8 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_AD_PCD, X31CWebConst.DATABEAN_SET_VALUE, upd_ad_pcd)` // Set full postal code |
| 9 | EXEC | `upd_useplace_telno = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_TELNO_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get phone number |
| 10 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_TELNO, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_telno)` // Copy to target |
| 11 | EXEC | `seikyus_yo_rm_no = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.SEIKYUS_YO_RM_NO_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get billing room number |
| 12 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SEIKYUS_YO_RM_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyus_yo_rm_no)` // Copy to target |
| 13 | EXEC | `upd_useplace_ad_cd = svcFormBean.sendMessageString(KKW00128SFConst.DSP_USEPLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE)` // Get address code |
| 14 | SET | `upd_useplace_ad_cd.replaceAll("-", "")` // Remove hyphens from address code |
| 15 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_ad_cd)` // Copy to target |
| 16 | EXEC | `upd_useplace_state_nm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_STATE_NM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get prefecture |
| 17 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_state_nm)` // Copy to target |
| 18 | EXEC | `upd_useplace_city_nm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_CITY_NM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get city/town |
| 19 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_city_nm)` // Copy to target |
| 20 | EXEC | `upd_useplace_oaztsu_nm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_OAZTSU_NM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get district name |
| 21 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_oaztsu_nm)` // Copy to target |
| 22 | EXEC | `upd_useplace_azcho_nm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_AZCHO_NM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get town name |
| 23 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_azcho_nm)` // Copy to target |
| 24 | EXEC | `upd_useplace_bnchigo = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_BNCHIGO_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get lot number |
| 25 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_bnchigo)` // Copy to target |
| 26 | EXEC | `upd_useplace_adrttm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_ADRTTM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get building name |
| 27 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_adrttm)` // Copy to target |
| 28 | EXEC | `upd_useplace_adrrm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.USEPLACE_ADRRM_07, X31CWebConst.DATABEAN_GET_VALUE)` // Get room number |
| 29 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.USEPLACE_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, upd_useplace_adrrm)` // Copy to target |

**Block 5** — [IF/ELSE] Concatenate expected installation date year+month (L3174–L3186)

Combines the expected installation year and month components into a full YYYYMMDD date (with day set to "01" as placeholder) and a display-formatted version with slashes.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `upd_shunko_rsv_y = svcFormBean.sendMessageString(KKW00128SFConst.SHUNKO_RSV_YEAR, X31CWebConst.DATABEAN_GET_VALUE)` // Get installation year |
| 2 | EXEC | `upd_shunko_rsv_m = svcFormBean.sendMessageString(KKW00128SFConst.SHUNKO_RSV_MON, X31CWebConst.DATABEAN_GET_VALUE)` // Get installation month |

**Block 5.1** — [IF] Year+Month are non-null and non-empty (L3179–L3183)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SHUNKO_RSV_YM = year + month + "01"` // YYYYMM01 (day default) |
| 2 | SET | `DSP_SHUNKO_RSV_YM = year + "/" + month` // Display format: YYYY/MM |

**Block 5.2** — [ELSE] Year or Month is null/empty (L3185–L3188)

Clears both the compact and display installation date fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `SHUNKO_RSV_YM = ""` |
| 2 | SET | `DSP_SHUNKO_RSV_YM = ""` |

**Block 6** — [IF/ELSE] Set unconfirmed address flag (L3192–L3201)

Reads the display-side unconfirmed address flag as boolean and copies it to the main form bean as "1" (true) or "0" (false).

| # | Type | Code |
|---|------|------|
| 1 | SET | `ad_mi_fix_flg = getBoolean(svcFormBean, KKW00128SFConst.DSP_AD_MI_FIX_FLG)` // Read display flag |

**Block 6.1** — [IF] Address unconfirmed flag is true (L3194–L3196)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.AD_MI_FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1")` |

**Block 6.2** — [ELSE] Address unconfirmed flag is false (L3198–L3200)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.AD_MI_FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0")` |

**Block 7** — [IF/ELSE] Set HGW replacement impossibility flag (L3206–L3215)

Reads the display-side HGW (Home Gateway) replacement impossibility flag and copies it. This flag is set when an HGW cannot be replaced (e.g., equipment not compatible).

| # | Type | Code |
|---|------|------|
| 1 | SET | `hgw_kkn_ffg = getBoolean(svcFormBean, KKW00128SFConst.DSP_HGW_KKN_FFG)` // Read display flag |

**Block 7.1** — [IF] HGW replacement impossibility flag is true (L3208–L3210)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.HGW_KKN_FFG, X31CWebConst.DATABEAN_SET_VALUE, "1")` |

**Block 7.2** — [ELSE] HGW replacement impossibility flag is false (L3212–L3214)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.HGW_KKN_FFG, X31CWebConst.DATABEAN_SET_VALUE, "0")` |

**Block 8** — [IF/ELSE] Set district reorganization flag (L3219–L3227)

Reads the display-side district reorganization in-progress flag and copies it to the form bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kukaku_seiri_chu_flg = getBoolean(svcFormBean, KKW00128SFConst.DSP_KUKAKU_SEIRI_CHU_FLG)` |

**Block 8.1** — [IF] District reorganization flag is true (L3221–L3223)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.KUKAKU_SEIRI_CHU_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1")` |

**Block 8.2** — [ELSE] District reorganization flag is false (L3225–L3227)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.KUKAKU_SEIRI_CHU_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0")` |

**Block 9** — [SET] Concatenate expected move-in date (L3230–L3243)

Combines year, month, and day components for the expected move-in date into YYYYMMDD format and a pretty-printed display format. Unlike the installation date block, this block always executes (the commented-out null check was removed).

| # | Type | Code |
|---|------|------|
| 1 | SET | `upd_nyukyo_rsv_y = getString(svcFormBean, KKW00128SFConst.NYUKYO_RSV_YEAR)` |
| 2 | SET | `upd_nyukyo_rsv_m = getString(svcFormBean, KKW00128SFConst.NYUKYO_RSV_MON)` |
| 3 | SET | `upd_nyukyo_rsv_d = getString(svcFormBean, KKW00128SFConst.NYUKYO_RSV_DAY)` |
| 4 | SET | `NYUKYO_RSV_YMD = y + m + d` // YYYYMMDD compact |
| 5 | SET | `DSP_NYUKYO_RSV_YMD = editPrettyYmd(y + m + d)` // Formatted for display |

**Block 10** — [SET] Copy line detail last update timestamp (L3248–L3250)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svc_kei_kai_ucwk_last_upd_dtm = svc_kei_kaisen_ucwk_subbean.sendMessageString(KKW00128SFConst.LAST_UPD_DTM_03, X31CWebConst.DATABEAN_GET_VALUE)` |
| 2 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.SVC_KEI_KAI_UCWK_LAST_DTM, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_kai_ucwk_last_upd_dtm)` |

**Block 11** — [IF] Set service start date (L3253–L3260)

Concatenates year+month+day into YYYYMMDD and sets both the compact and formatted display versions, but only if the result is valid and not equal to `MAX_YMD` (a sentinel value representing "not set").

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcStaYmd = SVC_STA_YEAR + SVC_STA_MON + SVC_STA_DAY` |
| 2 | SET | `SVC_STA_YMD = svcStaYmd` (if valid) |
| 3 | SET | `DSP_SVC_STA_YMD = JPCUtilCommon.formatDate(svcStaYmd)` (if valid) |

**Block 12** — [IF] Set service end date (L3263–L3270)

Same pattern as Block 11 for service end date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcEndYmd = SVC_END_YEAR + SVC_END_MON + SVC_END_DAY` |
| 2 | SET | `SVC_END_YMD = svcEndYmd` (if valid and != MAX_YMD) |
| 3 | SET | `DSP_SVC_END_YMD = JPCUtilCommon.formatDate(svcEndYmd)` (if valid) |

**Block 13** — [IF] Set service start desired date (L3274–L3284)

Concatenates and sets the customer's desired service start date. Null check was re-enabled per ANK-2410.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcUseStaKiboYmd = SVC_USE_STA_KIBO_YEAR + SVC_USE_STA_KIBO_MON + SVC_USE_STA_KIBO_DAY` |
| 2 | SET | `SVC_USE_STA_KIBO_YMD = svcUseStaKiboYmd` (if valid and != MAX_YMD) |
| 3 | SET | `DSP_SVC_USE_STA_KIBO_YMD = JPCUtilCommon.formatDate(svcUseStaKiboYmd)` (if valid) |

**Block 14** — [IF] Conditional: Termination separation — copy service end to charge end (L3288–L3304)

When `ido_div` equals `"00005"` (termination separation case), the service charge end date fields are populated from the service end date fields if they are currently null. This ensures billing continuity when separating termination from charges.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ido_div` compared against `JKKCommonConst.IDO_DIV_VALUE_00005` |

**Block 14.1** — [IF] SVC_CHRG_END_YEAR is null (L3290–L3292)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_CHRG_END_YEAR = getString(svcFormBean, KKW00128SFConst.SVC_END_YEAR)` // Copy from service end |

**Block 14.2** — [IF] SVC_CHRG_END_MON is null (L3293–L3295)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_CHRG_END_MON = getString(svcFormBean, KKW00128SFConst.SVC_END_MON)` |

**Block 14.3** — [IF] SVC_CHRG_END_DAY is null (L3296–L3298)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_CHRG_END_DAY = getString(svcFormBean, KKW00128SFConst.SVC_END_DAY)` |

**Block 15** — [IF] Set service charge end date (L3306–L3313)

Concatenates charge end year+month+day and sets compact + formatted versions.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcChrgEndYmd = SVC_CHRG_END_YEAR + SVC_CHRG_END_MON + SVC_CHRG_END_DAY` |
| 2 | SET | `SVC_CHRG_END_YMD = svcChrgEndYmd` (if valid) |
| 3 | SET | `DSP_SVC_CHRG_END_YMD = JPCUtilCommon.formatDate(svcChrgEndYmd)` (if valid) |

**Block 16** — [SET] Set service stop/suspension date (L3316–L3320)

Always executed — concatenates year+month+day for service stop/suspension date. The formatted version is always set (no null check — empty string is valid).

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcStpYmd = SVC_STP_YEAR + SVC_STP_MON + SVC_STP_DAY` |
| 2 | SET | `SVC_STP_YMD = svcStpYmd` |
| 3 | SET | `DSP_SVC_STP_YMD = JPCUtilCommon.formatDate(svcStpYmd)` |

**Block 17** — [SET] Set service stop/suspension release date (L3323–L3328)

Concatenates year+month+day for service stop/suspension release date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcStpRlsYmd = SVC_STP_RLS_YEAR + SVC_STP_RLS_MON + SVC_STP_RLS_DAY` |
| 2 | SET | `SVC_STP_RLS_YMD = svcStpRlsYmd` |
| 3 | SET | `DSP_SVC_STP_RLS_YMD = JPCUtilCommon.formatDate(svcStpRlsYmd)` |

**Block 18** — [IF/ELSE] Set service pause date (L3331–L3342)

Validates that the pause date is exactly 8 characters (YYYYMMDD). If valid, sets both compact and formatted values; otherwise clears them.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcPauseYmd = SVC_PAUSE_YEAR + SVC_PAUSE_MON + SVC_PAUSE_DAY` |

**Block 18.1** — [IF] Pause date length == 8 (L3337–L3340)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_PAUSE_YMD = svcPauseYmd` |
| 2 | SET | `DSP_SVC_PAUSE_YMD = JPCUtilCommon.formatDate(svcPauseYmd)` |

**Block 18.2** — [ELSE] Pause date invalid length (L3342–L3344)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_PAUSE_YMD = ""` |
| 2 | SET | `DSP_SVC_PAUSE_YMD = ""` |

**Block 19** — [IF/ELSE] Set service pause release date (L3347–L3358)

Same validation pattern as Block 18 for pause release date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcPauseRlsYmd = SVC_PAUSE_RLS_YEAR + SVC_PAUSE_RLS_MON + SVC_PAUSE_RLS_DAY` |

**Block 19.1** — [IF] Pause release date length == 8 (L3352–L3355)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_PAUSE_RLS_YMD = svcPauseRlsYmd` |
| 2 | SET | `DSP_SVC_PAUSE_RLS_YMD = JPCUtilCommon.formatDate(svcPauseRlsYmd)` |

**Block 19.2** — [ELSE] Pause release date invalid length (L3357–L3359)

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_PAUSE_RLS_YMD = ""` |
| 2 | SET | `DSP_SVC_PAUSE_RLS_YMD = ""` |

**Block 20** — [IF/ELSE] Set pause application period (L3362–L3372)

Combines year+month into YYYYMM format (6 chars). If valid, sets both compact and display-formatted versions using `getYYYYMM()`. Otherwise clears them.

| # | Type | Code |
|---|------|------|
| 1 | SET | `pauseAplyPrc = PAUSE_APLY_YEAR + PAUSE_APLY_MON` |

**Block 20.1** — [IF] Pause application period length == 6 (L3367–L3370)

| # | Type | Code |
|---|------|------|
| 1 | SET | `PAUSE_APLY_YM = pauseAplyPrc` |
| 2 | SET | `DSP_PAUSE_APLY_YM = getYYYYMM(pauseAplyPrc)` // Format as "YYYY/MM" |

**Block 20.2** — [ELSE] Pause application period invalid (L3372–L3374)

| # | Type | Code |
|---|------|------|
| 1 | SET | `PAUSE_APLY_YM = ""` |
| 2 | SET | `DSP_PAUSE_APLY_YM = ""` |

**Block 21** — [IF/ELSE] Set legal entity contract succession flag (L3376–L3387)

Reads the "Internet Opt-Out" flag (`isNetOfHktg`) and based on its value, sets the "Legal Entity Service Contract Succession Type Code" (`法人サービス契約引継ぎ種類コード`) to either `"01"` (yes) or empty on both the main form bean and the service contract sub-bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isNetOfHktg = getBoolean(svcFormBean, "インターネットオフフィスへ")` // Read opt-out flag |

**Block 21.1** — [IF] Internet opt-out flag is true (L3379–L3382)

Sets the legal entity succession code to `"01"` on both beans, indicating the customer is opting out of internet service and succession is required.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString("法人サービス契約引継ぎ種類コード", X31CWebConst.DATABEAN_SET_VALUE, "01")` |
| 2 | EXEC | `svc_kei_subbean.sendMessageString("法人サービス契約引継ぎ種類コード", X31CWebConst.DATABEAN_SET_VALUE, "01")` |

**Block 21.2** — [ELSE] Internet opt-out flag is false (L3384–L3387)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString("法人サービス契約引継ぎ種類コード", X31CWebConst.DATABEAN_SET_VALUE, "")` |
| 2 | EXEC | `svc_kei_subbean.sendMessageString("法人サービス契約引継ぎ種類コード", X31CWebConst.DATABEAN_SET_VALUE, "")` |

**Block 22** — [SET] Read WAO integration flags (L3392–L3397)

Reads the WAO (Wired Access Office) integration availability flags for DSL and CSCH from the form bean. Also declares a local variable `wao_rnki_yks_dsl = ""`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wao_rnki_yks_dsl = ""` // Initialize DSL WAO integration flag |
| 2 | SET | `wao_rnki_yks_dsl = svcFormBean.sendMessageString(KKW00128SFConst.WAO_RNKI_YKS_FLG_DSL, X31CWebConst.DATABEAN_GET_VALUE)` |
| 3 | SET | `wao_rnki_yks_csch = ""` // Initialize CSCH WAO integration flag |
| 4 | SET | `wao_rnki_yks_csch = svcFormBean.sendMessageString(KKW00128SFConst.WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_GET_VALUE)` |

**Block 23** — [IF/ELSE] Compare DSL flag with WAO_RNKI_HI_1 (L3399–L3407)

If the DSL WAO integration flag equals `WAO_RNKI_HI_1` (WAO integration: No), displays "否" (No). Otherwise displays "要" (Required).

| # | Type | Code |
|---|------|------|
| 1 | SET | `WAO_RNKI_HI_1` compared against `wao_rnki_yks_dsl` |

**Block 23.1** — [IF] DSL flag equals `WAO_RNKI_HI_1` (L3400–L3402)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.DSP_WAO_RNKI_YKS_FLG_DSL, X31CWebConst.DATABEAN_SET_VALUE, "否")` // Display "No" |

**Block 23.2** — [ELSE] DSL flag not equal (L3404–L3406)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.DSP_WAO_RNKI_YKS_FLG_DSL, X31CWebConst.DATABEAN_SET_VALUE, "要")` // Display "Required" |

**Block 24** — [CALL] Netflix pack change judgment (L3410)

Calls `isNfPackJudge(svcFormBean)` which determines whether a Netflix pack change is in progress. This sets the `isWaornkiflgHi` instance variable to indicate whether WAO integration should be forced to "No" during Netflix pack changes (as per ANK-4640-06-00).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isNfPackJudge(svcFormBean)` // Netflix pack change judgment method |

**Block 25** — [IF/ELSE] Netflix pack change overrides WAO CSCH flag (L3413–L3432)

If `isWaornkiflgHi` is true (Netflix pack change detected), the WAO CSCH integration flag is forced to `WAO_RNKI_HI_1` (No), and the display shows "否". Otherwise, it compares the CSCH flag against `WAO_RNKI_HI_1` and sets the display value accordingly.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isWaornkiflgHi` compared (Netflix pack change flag, set by isNfPackJudge) |

**Block 25.1** — [IF] Netflix pack change detected (isWaornkiflgHi = true) (L3414–L3417)

WAO integration is forced to "No" because during a Netflix pack change, WAO integration is incompatible.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_SET_VALUE, WAO_RNKI_HI_1)` |
| 2 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.DSP_WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_SET_VALUE, "否")` |

**Block 25.2** — [ELSE] No Netflix pack change (L3419–L3430)

Compares the CSCH WAO integration flag against `WAO_RNKI_HI_1` to determine display value.

| # | Type | Code |
|---|------|------|
| 1 | SET | `WAO_RNKI_HI_1` compared against `wao_rnki_yks_csch` |

**Block 25.2.1** — [IF] CSCH flag equals `WAO_RNKI_HI_1` (L3421–L3423)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.DSP_WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_SET_VALUE, "否")` |

**Block 25.2.2** — [ELSE] CSCH flag not equal (L3425–L3427)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessageString(KKW00128SFConst.DSP_WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_SET_VALUE, "要")` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mskm_sbt_cd` | Field | Service sub-type code — classifies the type of telecom service (e.g., FTTH/Hikari Net = `MSKM_SBT_CD_VALUE_00027`) |
| `prg_stat` | Field | Program progress status — `1001` indicates the current processing state for the confirmation screen |
| `svc_kei_Info` | Field | Service contract list — array of service contract header records |
| `EKK0081A010CBSMSG1LIST` | Constant | Service Contract Agreement Detail Information key — CBS message list for service contract header |
| `menkaihat_anken_no` | Field | Development case number — internal case tracking ID for FTTH deployment projects |
| `skekka_cd` | Field | Review result code — indicates the approval/review status of the service contract update request |
| `skekka_dtl_cd` | Field | Review result detail code — provides detailed breakdown of the review result |
| `biko` | Field | Update remarks — free-text field for notes about the service contract update |
| `last_upd_dtm` | Field | Last update date/time — timestamp of the most recent modification |
| `EKK0161B004CBSMSG1LIST` | Constant | Service Contract Detail List Confirmation Information key — CBS message list for contract detail |
| `svc_kei_ucwk_no` | Field | Service contract detail number — unique identifier for a service contract line item |
| `getUcwkBean` | Method | Retrieves the service contract update work sub-bean containing additional detail fields |
| `EKK0241B001CBSMSG1LIST` | Constant | Service Contract Line Detail List Confirmation Information key — CBS message list for line detail |
| `svc_kei_kaisen_ucwk_no` | Field | Service contract line detail number — unique identifier for a specific service line |
| `useplace_ad_pcd` | Field | Usage location postal code — 7-digit Japanese postal code (3 upper + 4 lower digits) |
| `useplace_telno` | Field | Usage location telephone number — customer phone number at the service address |
| `seikyus_yo_rm_no` | Field | Billing room number — room number for billing correspondence |
| `useplace_ad_cd` | Field | Usage location address code — Japanese address classification code with hyphens removed |
| `useplace_state_nm` | Field | Prefecture name — Japanese prefecture (都道府県) of the service address |
| `useplace_city_nm` | Field | City/town name — municipality (市区町村) of the service address |
| `useplace_oaztsu_nm` | Field | District name — district-level address component (大字) |
| `useplace_azcho_nm` | Field | Town name — town-level address component (字町) |
| `useplace_bnchigo` | Field | Lot number — land parcel number (番地) |
| `useplace_adrttm` | Field | Building name — building/apartment name |
| `useplace_adrrm` | Field | Room number — specific room within a building |
| `shunko_rsv_ym` | Field | Expected installation year-month — planned date when installation work will be completed |
| `ad_mi_fix_flg` | Field | Address unconfirmed flag — indicates whether the address has not yet been confirmed/verified |
| `hgw_kkn_ffg` | Field | HGW replacement impossibility flag — indicates whether the Home Gateway equipment cannot be replaced (eo Home Gateway introduction) |
| `kukaku_seiri_chu_flg` | Field | District reorganization in-progress flag — indicates if the area is undergoing administrative reorganization |
| `nyukyo_rsv_ymd` | Field | Expected move-in date — planned date the customer will begin using the service |
| `svc_sta_ymd` | Field | Service start date — the date when service officially begins |
| `svc_end_ymd` | Field | Service end date — the date when service officially ends (termination) |
| `svc_use_sta_kibo_ymd` | Field | Service start desired date — the customer's requested start date for the service |
| `ido_div` | Field | Disconnection separation — when `"00005"`, indicates termination separation where charges end date must be copied from service end date |
| `IDO_DIV_VALUE_00005` | Constant | Termination separation code — value of `ido_div` that triggers charge end date copying |
| `svc_chrg_end_ymd` | Field | Service charge end date — the date when billing for the service ends |
| `svc_stp_ymd` | Field | Service stop/suspension date — the date when service is temporarily suspended |
| `svc_stp_rls_ymd` | Field | Service stop/suspension release date — the date when suspended service resumes |
| `svc_pause_ymd` | Field | Service pause date — the date when service is paused (different from suspension; typically voluntary) |
| `svc_pause_rls_ymd` | Field | Service pause release date — the date when paused service resumes |
| `pause_aply_ym` | Field | Pause application period — the month when pause fees are applied (YYYYMM format) |
| `getYYYYMM` | Method | Formats a YYYYMM string into a displayable "YYYY/MM" format |
| `isNetOfHktg` | Field | Internet opt-out flag — indicates whether the customer is opting out of internet service |
| `法人サービス契約引継ぎ種類コード` | Field | Legal entity service contract succession type code — `"01"` when internet opt-out requires legal entity succession |
| `WAO` | Business term | Wired Access Office — NTT's broadband access service platform for enterprise/government customers |
| `WAO_RNKI_YKS_FLG_DSL` | Constant | WAO integration availability flag for DSL (DSL connection) |
| `WAO_RNKI_YKS_FLG_CSCH` | Constant | WAO integration availability flag for CSCH (CS connection) |
| `WAO_RNKI_HI_1` | Constant | WAO integration: No — value indicating WAO integration is not available/required |
| `isWaornkiflgHi` | Field | WAO integration impossibility flag during Netflix pack change — set by `isNfPackJudge()` to force WAO to "No" |
| `isNfPackJudge` | Method | Netflix pack change judgment — determines if a 1Gig Netflix pack change is in progress; sets `isWaornkiflgHi` |
| `editPrettyYmd` | Method | Formats a YYYYMMDD string into a pretty-printed date with slashes (e.g., "2023/04/01") |
| `MAX_YMD` | Constant | Sentinel date value — represents "not set" or "maximum" date; used to skip formatting for empty dates |
| `JPCUtilCommon.formatDate` | Method | Utility function that formats YYYYMMDD into human-readable date format |
| `X31CWebConst.DATABEAN_GET_VALUE` | Constant | Operation code to read a value from a data bean |
| `X31CWebConst.DATABEAN_SET_VALUE` | Constant | Operation code to write a value to a data bean |
| `X31SDataBeanAccess` | Class | Futurity framework data bean access class — provides `sendMessageString()` for read/write operations |
| `X31SDataBeanAccessArray` | Class | Futurity framework data bean array access class — provides `getDataBean()` for element access |
| eo Hikari Net | Business term | K-Opticom's fiber-optic broadband internet service (FTTH — Fiber To The Home) |
| eo Home Gateway | Business term | K-Opticom's branded home gateway/router equipment for eo Hikari Net customers |
| Netflix Pack | Business term | Bundled service offering that includes Netflix streaming alongside eo Hikari Net broadband |
| FTTH | Business term | Fiber To The Home — optical fiber direct-to-premises internet technology |
