# Business Logic — KKW00128SFLogic.setTbxKKW00128SFBean() [468 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00128SF.KKW00128SFLogic` |
| Layer | Controller / Web-Screen Logic (webview layer, front-end data formatting) |
| Module | `KKW00128SF` (Package: `eo.web.webview.KKW00128SF`) |

## 1. Role

### KKW00128SFLogic.setTbxKKW00128SFBean()

This method serves as the **display-data formatter** for the **Service Contract Update Confirmation (eo光/Neo) screen** (サービス契約情報更新確認(eo光ネット)サービスフォームBean). Its sole responsibility is to extract raw service-contract data from the input `svcFormBean` (which carries the DataBeans populated by the preceding SC/CBS layer) and transform it into a display-ready format on the same `svcFormBean` for rendering in the web UI. The method handles **text-based (テキスト系) fields** — dates, addresses, codes, boolean flags, and look-up-name resolution — preparing them for human consumption.

Specifically, it performs these business operations:
1. **DataBean extraction** — pulls the service-contract, contract revision, work-order, work-order-neo, and eo-electric-subscription DataBeans from the input `svcFormBean`.
2. **Postal code splitting** — extracts the raw postal code, formats it with a full-width prefix (`〒`), and splits into 3-digit + 4-digit parts.
3. **Date splitting and formatting** — extracts dates in `YYYYMMDD` format (service start date, service start desired date, install scheduled date, move-in scheduled date, work request date, cancellation date, warranty-period expiry date) and splits each into year/month/day components, while also producing a `YYYY-MM` display format via `JPCUtilCommon.formatDate()`.
4. **Boolean flag translation** — converts string-based flags (`"1"`/`"0"`) to Java booleans for UI checkbox/radio rendering (unconfirmed flag, HGW exchange-impossible flag, district-sorting flag, Keibeiden-notice flag).
5. **Service end-date handling** — when the end date is null, empty, or at its maximum sentinel value, it either sets the fields to empty (default) or, if the change division (`ido_div`) equals `"00005"` (termination / 解約), sets the operation date as the fallback value.
6. **Pause/stop status delegation** — delegates to `setSvcPauseStpInfo()` to populate usage-suspension-start-date, suspension-removal-date, and suspension-charge-applicable-month fields.
7. **Static text label resolution** — converts coded values (contract continuation code, web-op-add-failure flag, long-term discount indicator, concession-contract status, consent-setup content, bureau ONU type, CT empty status, rosette-change work target) into human-readable Japanese labels by looking them up in `outputMap`-held CBS lists.
8. **eo-electric address composition** — concatenates the eo-electric service number, ticket number, and full address components into a single display string for the "same location eo-electric" field.

The method follows a **sequential builder/dispatch pattern**: it reads from a single source of truth (`svcFormBean` and `outputMap`), transforms data block by block, and writes the results back to the same `svcFormBean`. It has no conditional dispatch to different service branches — the data path is linear but contains embedded look-up loops for name resolution. Its role in the larger system is that of a **screen-entry-point formatter**: called once after the CBS/SC layer has finished fetching data, immediately before the UI renders the confirmation screen.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setTbxKKW00128SFBean(params)"])

    START --> INIT["Extract DataBeans from svcFormBean"]
    INIT --> GET_SVC["Get svcKeiList from EKK0081A010CBSMSG1LIST"]
    GET_SVC --> GET_SVCINFO["Get svcKeiInfo (first element)"]
    GET_SVCINFO --> SET_BIKO["Set BIKO from BIKO_03"]
    SET_BIKO --> GET_KAISEN["Get svc_kei_kaisen_ucwk_Info from EKK0241B001CBSMSG1LIST"]
    GET_KAISEN --> GET_KOJI["Get koji_Info from KU0011A010BSMSG1LIST"]
    GET_KOJI --> GET_KOJI_NET["Get koji_net_Info from KU0021A010BSMSG1LIST"]
    GET_KOJI_NET --> GET_KOJI_NETM["Get koji_netmans_Info from KU0061A010BSMSG1LIST"]
    GET_KOJI_NETM --> GET_SVCFLG["Get svcFlg from SVC_FLG"]

    GET_SVCFLG --> CHECK_SVCFLG{"svcFlg != 1?"}
    CHECK_SVCFLG -->|Yes| REPLACE_NET["Replace koji_net_subbean with koji_netmans Info"]
    CHECK_SVCFLG -->|No| GET_EOELEC["Get eoElecKeiList from EKKA0040001CBSMSG2LIST"]
    REPLACE_NET --> GET_EOELEC

    GET_EOELEC --> ZIPCODE["Extract and split postal code from USEPLACE_AD_PCD_07"]
    ZIPCODE --> EDIT_ZIPCODE["Edit postal code with hyhunPcd, add prefix"]
    EDIT_ZIPCODE --> ADDR["Extract and edit address code from USEPLACE_AD_CD_07"]

    ADDR --> SHUNKO["Extract install date from SHUNKO_RSV_YMD_07, split into year/month"]
    SHUNKO --> SHUNKO_EDIT["Edit date with JPCUtilCommon.formatDate, truncate to YYYY-MM"]

    SHUNKO_EDIT --> FLAG_MIFIX["Extract AD_MI_FIX_FLG boolean flag"]
    FLAG_MIFIX --> FLAG_HGW["Extract HGW_KKN_FFG (HGW exchange impossible) flag"]
    FLAG_HGW --> FLAG_KUKAKU["Extract KISN_PLC_KKK_SEIRI_CHU_FLG (district sorting) flag"]

    FLAG_KUKAKU --> SVC_START["Extract SVC_STA_YMD_03 (service start date)"]
    SVC_START --> SVC_START_SPLIT["Split SVC_STA_YMD into year, month, day"]
    SVC_START_SPLIT --> SVC_START_EDIT["Edit date with JPCUtilCommon.formatDate"]
    SVC_START_EDIT --> SVC_USE_KIBO["Extract SVC_USE_STA_KIBO_YMD_03 (service start desired date)"]
    SVC_USE_KIBO --> SVC_USE_KIBO_SPLIT["Split into year, month, day, edit"]

    SVC_USE_KIBO_SPLIT --> SVC_CHRG_STAYMD["Extract SVC_CHRG_STAYMD_03 (charge start date), edit"]
    SVC_CHRG_STAYMD --> SVC_END["Extract SVC_END_DTM_03 (service end date)"]

    SVC_END --> CHECK_END{"End date null/empty/max?"}
    CHECK_END -->|Yes| CHECK_IDO5A{"ido_div == 00005?"}
    CHECK_IDO5A -->|Yes| END_INIT_OPE["Set end date fields to current opeDate"]
    CHECK_IDO5A -->|No| END_INIT_EMPTY["Set end date fields to empty"]
    CHECK_END -->|No| END_EDIT["Edit end date into year/month/day"]
    END_INIT_OPE --> CHECK_CHRG_END{"Charge end date null/empty/max?"}
    END_INIT_EMPTY --> CHECK_CHRG_END
    END_EDIT --> CHECK_CHRG_END

    CHECK_CHRG_END -->|Yes| CHECK_IDO5B{"ido_div == 00005?"}
    CHECK_IDO5B -->|Yes| CHRG_END_OPE["Set charge end date to current opeDate"]
    CHECK_IDO5B -->|No| CHRG_END_EMPTY["Set charge end date fields to empty"]
    CHECK_CHRG_END -->|No| CHRG_END_EDIT["Edit charge end date into year/month/day"]

    CHRG_END_OPE --> GET_UNYO["Get unyoYmd (operation date)"]
    CHRG_END_EMPTY --> GET_UNYO
    CHRG_END_EDIT --> GET_UNYO

    GET_UNYO --> SET_PAUSE["Call setSvcPauseStpInfo(...)"]
    SET_PAUSE --> MOVE_IN["Extract move-in date from NYUKYO_RSV_YMD_07"]
    MOVE_IN --> MOVE_IN_SPLIT["Split into year/month/day, edit"]

    MOVE_IN_SPLIT --> MENKAI["Extract MENKAIHAT_ADD flag, set label if 1"]
    MENKAI --> GEOCODING["Set latitude (LGTD) and longitude (LTTD)"]
    GEOCODING --> WORK_KJIBO["Extract work request date from KJ_KIBO_YMD_10, edit"]
    WORK_KJIBO --> WORK_DSL["Extract cancellation date from DSL_YMD_11, edit"]
    WORK_DSL --> WORK_APO["Extract warranty period from KJ_KIBO_APO_KIGEN_YMD_10, edit"]
    WORK_APO --> WORK_FUKKAT["Extract restoration order from HUKKAT_ANKEN_11, set label if 1"]

    WORK_FUKKAT --> HOUJIN["Extract legal service contract continuation code"]
    HOUJIN --> CHECK_HOUJIN{"code == 01?"}
    CHECK_HOUJIN -->|Yes| SET_HOUJIN_YES["Set Internet Office continuation flag to true"]
    CHECK_HOUJIN -->|No| SET_HOUJIN_NO["Set Internet Office continuation flag to false"]

    SET_HOUJIN_YES --> CHECK_WEBOP["Check WEB_OP_ADD_FAIL_FLG_03"]
    SET_HOUJIN_NO --> CHECK_WEBOP
    CHECK_WEBOP --> CHECK_CHOWARI["Check long-term discount contract existence"]

    CHECK_CHOWARI --> LOOP_KAP["Loop eKK2541B004CBSMsg1List: check kap_kei_stat for 030"]
    LOOP_KAP --> CHECK_KAP{"kap_kei_stat == 030?"}
    CHECK_KAP -->|Yes| SET_KAP["Set KAP_KEI_KKOKU_OPUT_FLG ON, break"]
    CHECK_KAP -->|No| NEXT_KAP["Continue loop"]

    SET_KAP --> GET_EOELEC_DATA["Extract eo electric address fields"]
    GET_EOELEC_DATA --> BUILD_EOELEC["Build kaisenSamePlcEoelec string"]
    BUILD_EOELEC --> LOOP_CONSNT["Loop EZM0171B010CBSMsg1List3: match cdDiv with consnt_stc_ny"]
    LOOP_CONSNT --> CHECK_CONSNT{"cdDiv matches?"}
    CHECK_CONSNT -->|Yes| SET_CONSNT["Set label, break"]
    CHECK_CONSNT -->|No| NEXT_CONSNT["Continue"]

    SET_CONSNT --> LOOP_ONU["Loop EZM0171B010CBSMsg1List: match cdDiv with kyokuOnu"]
    LOOP_ONU --> CHECK_ONU{"cdDiv matches?"}
    CHECK_ONU -->|Yes| SET_ONU["Set label, break"]
    CHECK_ONU -->|No| NEXT_ONU["Continue"]

    SET_ONU --> LOOP_CTAKI["Loop EZM0171B010CBSMsg1List2: match cdDiv with ctAki"]
    LOOP_CTAKI --> CHECK_CTAKI{"cdDiv matches?"}
    CHECK_CTAKI -->|Yes| SET_CTAKI["Set label, break"]
    CHECK_CTAKI -->|No| NEXT_CTAKI["Continue"]

    SET_CTAKI --> ROZETT["Check rozettChkRslt, set CRSHEN_KJSKP_TAISHO label"]
    ROZETT --> CHECK_ROZETT{"== ROZETT_CHK_RSLT_1?"}
    CHECK_ROZETT -->|Yes| SET_ROZETT_YES["Set label = 対象"]
    CHECK_ROZETT -->|No| SET_ROZETT_NO["Set label = 非対象"]

    SET_ROZETT_YES --> END_NODE(["Return / Next"])
    SET_ROZETT_NO --> END_NODE
    NEXT_KAP --> END_NODE
    NEXT_CONSNT --> END_NODE
    NEXT_ONU --> END_NODE
    NEXT_CTAKI --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `svcFormBean` | `X31SDataBeanAccess` | The DataBean access class that serves as both **input** (contains source DataBeans with service-contract data fetched by prior SC/CBS calls) and **output** (target where formatted display data is written). It contains nested DataBeanArrays for service-contract info (EKK0081A010CBSMSG1LIST), contract revision info (EKK0241B001CBSMSG1LIST), work-order info (KU0011A010BSMSG1LIST), work-order-neo info (KU0021A010BSMSG1LIST/KU0061A010BSMSG1LIST), and eo-electric subscription (EKKA0040001CBSMSG2LIST). |
| 2 | `outputMap` | `Map<String, Object>` | A HashMap shared across the screen's CBS calls, containing CBS-list data for **display-name lookups**. Specifically: `KKSV005998SC` holds `EKK2541B004CBSMsg1List` for concession-contract status (kap_kei_stat), `KKSV005972SC` holds `EZM0171B010CBSMsg1List3` for consent-setup content codes, `KKSV005973SC` holds `EZM0171B010CBSMsg1List` for bureau ONU types, `KKSV005974SC` holds `EZM0171B010CBSMsg1List2` for CT empty status codes. Each list contains `{cd_div, cd_div_nm}` pairs used for code-to-label resolution. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `ido_div` | `String` | Change division code from the operation context. When equal to `"00005"` (termination / 解約), the service end date and charge end date are initialized to the current operation date instead of left empty. Defined elsewhere in `KKW00128SFLogic`. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW00128SFConst.EKK0081A010CBSMSG1LIST` | EKK0081A010 | KK_T_SVCKEI (Service Contract) | Retrieves service-contract DataBean from input svcFormBean |
| R | `KKW00128SFConst.EKK0241B001CBSMSG1LIST` | EKK0241B001 | KK_T_SVCKEI_KAISEN (Contract Revision) | Retrieves contract-revision DataBean for address/date info |
| R | `KKW00128SFConst.KU0011A010BSMSG1LIST` | KU0011A010 | KK_T_KOJI (Work Order) | Retrieves work-order DataBean (request date, warranty, restoration) |
| R | `KKW00128SFConst.KU0021A010BSMSG1LIST` | KU0021A010 | KK_T_KOJI_NET (Work Order Neo) | Retrieves work-order-neo DataBean (cancellation date) |
| R | `KKW00128SFConst.KU0061A010BSMSG1LIST` | KU0061A010 | KK_T_KOJI_NET_MANS (Work Order Neo Mansion) | Retrieves mansion-specific work-order when home-type != 1 |
| R | `KKW00128SFConst.EKKA0040001CBSMSG2LIST` | EKKA0040001 | KK_T_EOELECKEI (eo Electric Subscription) | Retrieves eo-electric subscription DataBean for address composition |
| R | `KKW00128SFConst.JIMU_COMMISION_LIST` | - | - | (Called in related method cfmListKKW00128SFBean, not in this method) |
| R | `JPCUtilCommon.hyhunPcd` | JPCUtilCommon | - | Formats postal code (halfwidth to fullwidth conversion) |
| R | `JPCUtilCommon.hyhunAdCd` | JPCUtilCommon | - | Formats address code |
| R | `JPCUtilCommon.formatDate` | JPCUtilCommon | - | Formats YYYYMMDD to YYYY-MM-DD display string |
| R | `KKW00128SFLogic.subString` | KKW00128SFLogic | - | Custom substring method for date splitting |
| R | `KKW00128SFLogic.getString` | KKW00128SFLogic | - | Extracts string from DataBean |
| R | `KKW00128SFLogic.isMaxYmd` | KKW00128SFLogic | - | Checks if date equals maximum sentinel value (e.g., 99991231) |
| R | `KKW00128SFLogic.setString` | KKW00128SFLogic | - | Sets string value on DataBean |
| R | `KKW00128SFLogic.setSvcPauseStpInfo` | KKW00128SFLogic | - | Delegates pause/stop status info setting |
| R | `JCCWebCommon.getOpeDate` | JCCWebCommon | - | Returns the current operation date (YYYYMMDD) for fallback end-date initialization |
| R | `outputMap.get("KKSV005998SC")` | EKK2541B004 | KK_T_KAP_KEI (Concession Contract) | Looks up concession-contract status for split-contract processing flag |
| R | `outputMap.get("KKSV005972SC")` | EZM0171B010 | ZM_M_CD_DIV (Master Code Table) | Looks up consent-setup content display name by cd_div match |
| R | `outputMap.get("KKSV005973SC")` | EZM0171B010 | ZM_M_CD_DIV (Master Code Table) | Looks up bureau ONU type display name by cd_div match |
| R | `outputMap.get("KKSV005974SC")` | EZM0171B010 | ZM_M_CD_DIV (Master Code Table) | Looks up CT empty status display name by cd_div match |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Caller: `KKW00128SFLogic.actionInitKKW00128()` | `actionInitKKW00128()` -> `setTbxKKW00128SFBean(svcFormBean, outputMap)` | `formatDate` [-], `hyhunPcd` [-], `hyhunAdCd` [-], `getOpeDate` [-], `sendMessageString` (x8) [-] |

**Notes:** The only direct caller is `actionInitKKW00128()` within the same class. This is typically invoked during the screen initialization phase (init processing) when the Service Contract Update Confirmation screen loads. No external screen/batch entry points call this method directly — it is an internal formatting helper.

**Terminal operations from this method:** The method does not perform any direct DB CRUD operations. Its terminal calls are:
- `JPCUtilCommon.hyhunPcd()` / `hyhunAdCd()` — character-hyphenation conversion (postal code and address code formatting)
- `JPCUtilCommon.formatDate()` — YYYYMMDD to YYYY-MM-DD display formatting
- `JCCWebCommon.getOpeDate()` — retrieves current operation date
- `KKW00128SFLogic.setSvcPauseStpInfo()` — delegates pause/stop status population
- `X31SDataBeanAccess.sendMessageString()` / `sendMessageBoolean()` — writes formatted data to the DataBean (no DB impact)

## 6. Per-Branch Detail Blocks

### Block 1 — DATA BEAN EXTRACTION (L2329–L2368)

> Extracts all source DataBeans from svcFormBean into local variables for subsequent processing. Also handles the home-type conditional for which work-order-neo DataBean to use.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `svcKeiList = svcFormBean.getDataBeanArray(EKK0081A010CBSMSG1LIST)` |
| 2 | EXTRACT | `svcKeiInfo = svcKeiList.getDataBean(0)` |
| 3 | EXEC | `setString(svcFormBean, BIKO, svcKeiInfo.sendMessageString(BIKO_03, DATABEAN_GET_VALUE))` |
| 4 | EXTRACT | `svc_kei_kaisen_ucwk_Info = svcFormBean.getDataBeanArray(EKK0241B001CBSMSG1LIST)` |
| 5 | EXTRACT | `svc_kei_kaisen_ucwk_subbean = svc_kei_kaisen_ucwk_Info.getDataBean(0)` |
| 6 | EXTRACT | `koji_Info = svcFormBean.getDataBeanArray(KU0011A010BSMSG1LIST)` |
| 7 | EXTRACT | `koji_subbean = koji_Info.getDataBean(0)` |
| 8 | EXTRACT | `koji_net_Info = svcFormBean.getDataBeanArray(KU0021A010BSMSG1LIST)` |
| 9 | EXTRACT | `koji_net_subbean = koji_net_Info.getDataBean(0)` |
| 10 | EXTRACT | `koji_netmans_Info = svcFormBean.getDataBeanArray(KU0061A010BSMSG1LIST)` |
| 11 | EXTRACT | `svcFlg = svcFormBean.sendMessageString(SVC_FLG, DATABEAN_GET_VALUE)` |
| 12 | EXTRACT | `eoElecKeiList = svcFormBean.getDataBeanArray(EKKA0040001CBSMSG2LIST)` |
| 13 | EXTRACT | `eoElecKeiSubbean = eoElecKeiList.getDataBean(0)` |

### Block 2 — IF: svcFlg != "1" (Home Type Not Home) (L2359–L2363) `[SVC_FLG != "1"]` (L2359)

> If the service flag is NOT "1" (i.e., not a home-type contract), replace the work-order-neo subbean with the mansion-specific work-order-neo subbean (KU0061A010BSMSG1LIST). This ensures mansion/apartment contracts display the correct work-order data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koji_net_subbean = koji_netmans_Info.getDataBean(0)` |

### Block 3 — POSTAL CODE EXTRACTION AND FORMATTING (L2370–L2390)

> Extracts the postal code from the contract-revision DataBean, splits it into 3-digit + 4-digit parts for separate form fields, formats it with hyphenation and full-width prefix, and sets all variations on svcFormBean.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `work_ad_pcd = svc_kei_kaisen_ucwk_subbean.sendMessageString(USEPLACE_AD_PCD_07, DATABEAN_GET_VALUE)` |
| 2 | SET | `svcFormBean USEPLACE_AD_PCD_1 = subString(work_ad_pcd, 0, 3)` |
| 3 | SET | `svcFormBean USEPLACE_AD_PCD_2 = subString(work_ad_pcd, 3, 7)` |
| 4 | SET | `work_ad_pcd = JPCUtilCommon.hyhunPcd(work_ad_pcd)` // halfwidth-to-fullwidth conversion |
| 5 | SET | `ad_pcd = "〒" + work_ad_pcd` // full-width postcode prefix |
| 6 | SET | `svcFormBean DSP_USEPLACE_AD_PCD = ad_pcd` |
| 7 | EXTRACT | `work_ad_cd = svc_kei_kaisen_ucwk_subbean.sendMessageString(USEPLACE_AD_CD_07, DATABEAN_GET_VALUE)` |
| 8 | SET | `work_ad_cd = JPCUtilCommon.hyhunAdCd(work_ad_cd)` |
| 9 | SET | `svcFormBean DSP_USEPLACE_AD_CD = work_ad_cd` |

### Block 4 — INSTALL SCHEDULED DATE (L2392–L2404)

> Extracts the install scheduled date (YYYYMMDD), splits into year/month, and formats to YYYY-MM for display.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `work_shuko_rsv_ymd = svc_kei_kaisen_ucwk_subbean.sendMessageString(SHUNKO_RSV_YMD_07, DATABEAN_GET_VALUE)` |
| 2 | SET | `svcFormBean SHUNKO_RSV_YEAR = subString(work_shuko_rsv_ymd, 0, 4)` |
| 3 | SET | `svcFormBean SHUNKO_RSV_MON = subString(work_shuko_rsv_ymd, 4, 6)` |
| 4 | SET | `work_shuko_rsv_ymd = JPCUtilCommon.formatDate(work_shuko_rsv_ymd)` |
| 5 | IF | `work_shuko_rsv_ymd.length() == 10` (L2401) |
| 5.1 | SET | `work_shuko_rsv_ymd = work_shuko_rsv_ymd.substring(0, 7)` // truncate to YYYY-MM |
| 6 | SET | `svcFormBean DSP_SHUNKO_RSV_YM = work_shuko_rsv_ymd` |

### Block 5 — UNCONFIRMED FLAG (L2408–L2420)

> Extracts the unconfirmed flag (AD_MI_FIX_FLG), converts string "1" to Java boolean, and writes to svcFormBean.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `mi_fix_flg = svc_kei_kaisen_ucwk_subbean.sendMessageString(AD_MI_FIX_FLG, DATABEAN_GET_VALUE)` |
| 2 | SET | `ad_mi_fix_flg = false` |
| 3 | IF | `"1".equals(mi_fix_flg)` (L2414) `[AD_MI_FIX_FLG = "1"]` |
| 3.1 | SET | `ad_mi_fix_flg = true` |
| 4 | SET | `svcFormBean DSP_AD_MI_FIX_FLG = new Boolean(ad_mi_fix_flg)` |

### Block 6 — HGW EXCHANGE-IMPOSSIBLE FLAG (L2424–L2436)

> Extracts the HGW (Home Gateway) exchange-impossible flag and sets it as a boolean on svcFormBean. ANK-4315-00-00 addition (2023/04/11).

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `hgw_ffg = svc_kei_kaisen_ucwk_subbean.sendMessageString(HGW_KKN_FFG, DATABEAN_GET_VALUE)` |
| 2 | SET | `hgw_kkn_ffg = false` |
| 3 | IF | `"1".equals(hgw_ffg)` (L2430) `[HGW_KKN_FFG = "1"]` |
| 3.1 | SET | `hgw_kkn_ffg = true` |
| 4 | SET | `svcFormBean DSP_HGW_KKN_FFG = new Boolean(hgw_kkn_ffg)` |

### Block 7 — DISTRICT SORTING FLAG (L2439–L2450)

> Extracts the district-sorting-in-progress flag and sets it as a boolean on svcFormBean.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `kukaku_seiri_chu = svc_kei_kaisen_ucwk_subbean.sendMessageString(KISN_PLC_KKK_SEIRI_CHU_FLG, DATABEAN_GET_VALUE)` |
| 2 | SET | `kukaku_seiri_chu_flg = false` |
| 3 | IF | `"1".equals(kukaku_seiri_chu)` (L2444) |
| 3.1 | SET | `kukaku_seiri_chu_flg = true` |
| 4 | SET | `svcFormBean DSP_KUKAKU_SEIRI_CHU_FLG = new Boolean(kukaku_seiri_chu_flg)` |

### Block 8 — SERVICE START DATE (L2458–L2498)

> Extracts the service start date (from service contract agreement list), splits into year/month/day components, formats for display, and stores a hidden copy. Also extracts the service-start-desired date with the same treatment.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `svcStaYmd = svcKeiInfo.sendMessageString(SVC_STA_YMD_03, DATABEAN_GET_VALUE)` // service start date |
| 2 | SET | `svcFormBean SVC_STA_YEAR = subString(svcStaYmd, 0, 4)` |
| 3 | SET | `svcFormBean SVC_STA_MON = subString(svcStaYmd, 4, 6)` |
| 4 | SET | `svcFormBean SVC_STA_DAY = subString(svcStaYmd, 6, 8)` |
| 5 | SET | `svcFormBean SVC_STA_YMD = svcStaYmd` |
| 6 | SET | `svcFormBean DSP_SVC_STA_YMD = JPCUtilCommon.formatDate(svcStaYmd)` |
| 7 | SET | `svcFormBean SVC_STA_YMD_H = svcStaYmd` // hidden field |
| 8 | EXTRACT | `svcUseStaKiboYmd = svcKeiInfo.sendMessageString(SVC_USE_STA_KIBO_YMD_03, DATABEAN_GET_VALUE)` // desired start date |
| 9 | SET | `svcFormBean SVC_USE_STA_KIBO_YEAR = subString(svcUseStaKiboYmd, 0, 4)` |
| 10 | SET | `svcFormBean SVC_USE_STA_KIBO_MON = subString(svcUseStaKiboYmd, 4, 6)` |
| 11 | SET | `svcFormBean SVC_USE_STA_KIBO_DAY = subString(svcUseStaKiboYmd, 6, 8)` |
| 12 | SET | `svcFormBean SVC_USE_STA_KIBO_YMD = svcUseStaKiboYmd` |
| 13 | SET | `svcFormBean DSP_SVC_USE_STA_KIBO_YMD = JPCUtilCommon.formatDate(svcUseStaKiboYmd)` |

### Block 9 — SERVICE CHARGE START DATE (L2500–L2507)

> Extracts and formats the charge start date.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `work_svc_chrg_staymd = svcKeiInfo.sendMessageString(SVC_CHRG_STAYMD_03, DATABEAN_GET_VALUE)` |
| 2 | SET | `work_svc_chrg_staymd = JPCUtilCommon.formatDate(work_svc_chrg_staymd)` |
| 3 | SET | `svcFormBean DSP_SVC_CHRG_STA_YMD = work_svc_chrg_staymd` |

### Block 10 — SERVICE END DATE — NULL/EMPTY/MAX CHECK (L2509–L2548)

> Extracts the service end date. If it is null, empty, or a maximum sentinel value: checks if `ido_div == "00005"` (termination/解約) to decide between setting operation-date fallback or empty strings. Otherwise, formats the date into year/month/day components.

**Block 10** — IF: end date is null, empty, or max (L2517) `[isMaxYmd(svcEndYmd) || svcEndYmd == null || svcEndYmd.isEmpty()]`

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKCommonConst.IDO_DIV_VALUE_00005.equals(ido_div)` (L2520) `[IDO_DIV_VALUE_00005 = "00005" (termination/解約)]` |
| 1.1 | SET | `svcEndYmd = JCCWebCommon.getOpeDate(this, null)` // set current operation date |
| 2 | ELSE | (L2524) |
| 2.1 | SET | `svcFormBean DSP_SVC_END_YMD = JPCUtilCommon.formatDate(svcEndYmd)` |

**Block 10.2** — ELSE (end date is valid) (L2523)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean DSP_SVC_END_YMD = JPCUtilCommon.formatDate(svcEndYmd)` |

### Block 11 — SERVICE END DATE — SET FIELDS (L2531–L2548)

> Second conditional: if the end date is null/empty/max, set all end-date display fields to empty. Otherwise, set all fields (year, month, day) from the extracted value.

**Block 11** — IF: end date is null, empty, or max (L2531)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean DSP_SVC_END_YMD = ""` |
| 2 | SET | `svcFormBean SVC_END_YEAR = ""` |
| 3 | SET | `svcFormBean SVC_END_MON = ""` |
| 4 | SET | `svcFormBean SVC_END_DAY = ""` |

**Block 11.2** — ELSE (valid end date) (L2536)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean DSP_SVC_END_YMD = JPCUtilCommon.formatDate(svcEndYmd)` |
| 2 | SET | `svcFormBean SVC_END_YEAR = svcEndYmd.substring(0, 4)` |
| 3 | SET | `svcFormBean SVC_END_MON = svcEndYmd.substring(4, 6)` |
| 4 | SET | `svcFormBean SVC_END_DAY = svcEndYmd.substring(6, 8)` |

### Block 12 — CHARGE END DATE (L2550–L2598)

> Same pattern as Block 11 but for the charge end date (svcChrgEndYmd). Handles null/max/empty cases with optional `ido_div == "00005"` fallback to current operation date.

**Block 12** — IF: charge end date is null, empty, or max (L2560) `[isMaxYmd(svcChrgEndYmd)]`

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKCommonConst.IDO_DIV_VALUE_00005.equals(ido_div)` (L2563) `[IDO_DIV_VALUE_00005 = "00005" (termination/解約)]` |
| 1.1 | SET | `svcChrgEndYmd = JCCWebCommon.getOpeDate(this, null)` |
| 2 | ELSE | (L2567) |
| 2.1 | SET | `svcFormBean DSP_SVC_CHRG_END_YMD = JPCUtilCommon.formatDate(svcChrgEndYmd)` |

**Block 12.2** — IF: charge end date is null/empty/max (second check) (L2571)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean DSP_SVC_CHRG_END_YMD = ""` |
| 2 | SET | `svcFormBean SVC_CHRG_END_YEAR = ""` |
| 3 | SET | `svcFormBean SVC_CHRG_END_MON = ""` |
| 4 | SET | `svcFormBean SVC_CHRG_END_DAY = ""` |

**Block 12.3** — ELSE (L2579)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean DSP_SVC_CHRG_END_YMD = JPCUtilCommon.formatDate(svcChrgEndYmd)` |
| 2 | SET | `svcFormBean SVC_CHRG_END_YEAR = svcChrgEndYmd.substring(0, 4)` |
| 3 | SET | `svcFormBean SVC_CHRG_END_MON = svcChrgEndYmd.substring(4, 6)` |
| 4 | SET | `svcFormBean SVC_CHRG_END_DAY = svcChrgEndYmd.substring(6, 8)` |

### Block 13 — OPERATION DATE AND PAUSE/STOP STATUS (L2600–L2605)

> Gets the current operation date and delegates to `setSvcPauseStpInfo` to populate pause/stop status fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `unyoYmd = JCCWebCommon.getOpeDate(this, null)` |
| 2 | CALL | `setSvcPauseStpInfo(svcFormBean, outputMap, svcKeiInfo, unyoYmd)` |

### Block 14 — MOVE-IN SCHEDULED DATE (L2607–L2620)

> Extracts the move-in scheduled date from contract-revision DataBean, splits into year/month/day, and formats for display.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `work_nyukyo_rsv_ymd = svc_kei_kaisen_ucwk_subbean.sendMessageString(NYUKYO_RSV_YMD_07, DATABEAN_GET_VALUE)` |
| 2 | SET | `svcFormBean NYUKYO_RSV_YEAR = subString(work_nyukyo_rsv_ymd, 0, 4)` |
| 3 | SET | `svcFormBean NYUKYO_RSV_MON = subString(work_nyukyo_rsv_ymd, 4, 6)` |
| 4 | SET | `svcFormBean NYUKYO_RSV_DAY = subString(work_nyukyo_rsv_ymd, 6, 8)` |
| 5 | SET | `work_nyukyo_rsv_ymd = JPCUtilCommon.formatDate(work_nyukyo_rsv_ymd)` |
| 6 | SET | `svcFormBean DSP_NYUKYO_RSV_YMD = work_nyukyo_rsv_ymd` |

### Block 15 — KEIBEIDEN NOTICE FLAG (L2622–L2630)

> Extracts the Keibeiden (面開発) notice registration flag. If set to "1", sets the display label to "面開発登録データ" (Keibeiden registration data).

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `add_flg = svcKeiInfo.sendMessageString(MENKAIHAT_ANKEN_KR_ADD_FLG_03, DATABEAN_GET_VALUE)` |
| 2 | IF | `add_flg.equals("1")` (L2627) |
| 2.1 | SET | `svcFormBean MENKAIHAT_ADD = "面開発登録データ"` |

### Block 16 — GEOCODING (LATITUDE/LONGITUDE) (L2632–L2642)

> Sets latitude and longitude from the contract-revision DataBean directly. ANK-1933-00-00 addition (2014/02/20).

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean LGTD = svc_kei_kaisen_ucwk_subbean.sendMessageString(LGTD_07, DATABEAN_GET_VALUE)` |
| 2 | SET | `svcFormBean LTTD = svc_kei_kaisen_ucwk_subbean.sendMessageString(LTTD_07, DATABEAN_GET_VALUE)` |

### Block 17 — WORK DATA (REQUEST DATE, CANCELLATION, WARRANTY, RESTORATION) (L2645–L2682)

> Extracts work-order fields: request date (formatted), cancellation date (formatted), warranty-period expiry (formatted), and restoration-order flag.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `work_kjkibo_ymd = koji_subbean.sendMessageString(KJ_KIBO_YMD_10, DATABEAN_GET_VALUE)` |
| 2 | SET | `work_kjkibo_ymd = JPCUtilCommon.formatDate(work_kjkibo_ymd)` |
| 3 | SET | `svcFormBean DSP_KJ_KIBO_YMD = work_kjkibo_ymd` |
| 4 | EXTRACT | `work_dsl_ymd = koji_net_subbean.sendMessageString(DSL_YMD_11, DATABEAN_GET_VALUE)` |
| 5 | SET | `work_dsl_ymd = JPCUtilCommon.formatDate(work_dsl_ymd)` |
| 6 | SET | `svcFormBean DSP_DSL_YMD = work_dsl_ymd` |
| 7 | EXTRACT | `workApoYmd = koji_subbean.sendMessageString(KJ_KIBO_APO_KIGEN_YMD_10, DATABEAN_GET_VALUE)` |
| 8 | SET | `workApoYmd = JPCUtilCommon.formatDate(workApoYmd)` |
| 9 | SET | `svcFormBean DSP_KJ_KIBO_APO_KIGEN_YMD = workApoYmd` |
| 10 | EXTRACT | `work_hukkat_anken = koji_net_subbean.sendMessageString(HUKKAT_ANKEN_11, DATABEAN_GET_VALUE)` |
| 11 | IF | `work_hukkat_anken.equals("1")` (L2680) |
| 11.1 | SET | `svcFormBean DSP_HUKKAT_ANKEN = "復旧案件"` |

### Block 18 — LEGAL SERVICE CONTRACT CONTINUATION (L2684–L2693)

> Extracts the legal (法人) service contract continuation method code. If code equals "01", sets the Internet Office continuation flag to true; otherwise false.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `hojinsvkei_hktgi_sbt_cd = svcKeiInfo.sendMessageString("法人サービス契約引継ぎ種別コード", DATABEAN_GET_VALUE)` |
| 2 | SET | `svcFormBean "法人サービス契約引継ぎ種別コード" = hojinsvkei_hktgi_sbt_cd` |
| 3 | IF | `hojinsvkei_hktgi_sbt_cd.equals("01")` (L2688) `[HOJINSVKEI_HKTGI_SBT_CD = "01"]` |
| 3.1 | SET | `svcFormBean "インターネットオフィスへの引継" = true` |
| 4 | ELSE | (L2690) |
| 4.1 | SET | `svcFormBean "インターネットオフィスへの引継" = false` |

### Block 19 — WEB OP ADD FAILURE AND LONG-TERM DISCOUNT (L2695–L2712)

> Checks the web-op-add-failure flag and the long-term discount contract indicator. Sets respective boolean/string labels on svcFormBean.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `webOpDontAddFlg = getString(svcKeiInfo, WEB_OP_ADD_FAIL_FLG_03)` |
| 2 | IF | `"1".equals(webOpDontAddFlg)` (L2696) |
| 2.1 | SET | `svcFormBean "WEBオペション追加不可" = true` |
| 3 | EXTRACT | `wribSvcKeiNoChokiWrib = getString(svcFormBean, WRIB_SVC_KEI_NO_CHOKI_WRIB)` |
| 4 | IF | `wribSvcKeiNoChokiWrib != null && !"".equals(wribSvcKeiNoChokiWrib)` (L2701) |
| 4.1 | SET | `svcFormBean CHOWARI_UM = "有"` |
| 5 | ELSE | (L2705) |
| 5.1 | SET | `svcFormBean CHOWARI_UM = "無"` |

### Block 20 — CONCESSION CONTRACT STATUS LOOP (L2709–L2729)

> Iterates through the concession-contract status list from `outputMap.KKSV005998SC.EKK2541B004CBSMsg1List`. If any record has `kap_kei_stat == "030"` (settled / 締結済), sets the split-contract-processing flag ON and breaks.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `kksv005998sc = outputMap.get("KKSV005998SC")` |
| 2 | EXTRACT | `eKK2541B004CBSMsg1List = kksv005998sc.get("EKK2541B004CBSMsg1List")` |
| 3 | FOR | `for (HashMap eKK2541B004CBSMsg1 : eKK2541B004CBSMsg1List)` (L2711) |
| 3.1 | EXTRACT | `kapKeiStat = (String)eKK2541B004CBSMsg1.get("kap_kei_stat")` |
| 3.2 | IF | `kapKeiStat != null && !"".equals(kapKeiStat)` (L2714) |
| 3.3 | IF | `KAP_KEI_STAT_030.equals(kapKeiStat)` (L2717) `[KAP_KEI_STAT_030 = "030" (settled/締結済)]` |
| 3.3.1 | SET | `svcFormBean KAP_KEI_KKOKU_OPUT_FLG = JKKCommonConst.FLG_ON` |
| 3.3.2 | EXEC | `break` |

### Block 21 — EO ELECTRIC ADDRESS COMPOSITION (L2732–L2759)

> Extracts multiple address components from the eo-electric subscription DataBean, concatenates them (service number + ticket number + state + city + oaztsu + azcho + banchigo + adrTtm + adrRm) into a single display string for the "same location eo-electric" field.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `svcKeiNo = eoElecKeiSubbean.sendMessageString(SVC_KEI_NO_21, DATABEAN_GET_VALUE)` |
| 2 | EXTRACT | `ryobashStateNm = eoElecKeiSubbean.sendMessageString(RYOBSH_STATE_NM_21, DATABEAN_GET_VALUE)` |
| 3 | EXTRACT | `ryobashCityNm = eoElecKeiSubbean.sendMessageString(RYOBSH_CITY_NM_21, DATABEAN_GET_VALUE)` |
| 4 | EXTRACT | `ryobashOaztsuNm = eoElecKeiSubbean.sendMessageString(RYOBSH_OAZTSU_NM_21, DATABEAN_GET_VALUE)` |
| 5 | EXTRACT | `ryobashAzchoNm = eoElecKeiSubbean.sendMessageString(RYOBSH_AZCHO_NM_21, DATABEAN_GET_VALUE)` |
| 6 | EXTRACT | `ryobashBnchigo = eoElecKeiSubbean.sendMessageString(RYOBSH_BNCHIGO_21, DATABEAN_GET_VALUE)` |
| 7 | EXTRACT | `ryobashAdrttm = eoElecKeiSubbean.sendMessageString(RYOBSH_ADRTTM_21, DATABEAN_GET_VALUE)` |
| 8 | EXTRACT | `ryobashAdrrm = eoElecKeiSubbean.sendMessageString(RYOBSH_ADRRM_21, DATABEAN_GET_VALUE)` |
| 9 | EXTRACT | `kykychtnTktNo = eoElecKeiSubbean.sendMessageString(KYKYCHTN_TKT_NO_21, DATABEAN_GET_VALUE)` |
| 10 | IF | `svcKeiNo != null && !"".equals(svcKeiNo)` (L2752) |
| 10.1 | SET | `kaisenSamePlcEoelec = svcKeiNo + ":" + kykychtnTktNo + ":" + ryobashStateNm + ryobashCityNm + ryobashOaztsuNm + ryobashAzchoNm + ryobashBnchigo + ryobashAdrttm + ryobashAdrrm` |
| 11 | SET | `svcFormBean KAISEN_SAME_PLC_EOELEC = kaisenSamePlcEoelec` |

### Block 22 — CONSENT SETUP CONTENT LOOKUP LOOP (L2762–L2781)

> Looks up the display name for the consent-setup content code. Iterates through `outputMap.KKSV005972SC.EZM0171B010CBSMsg1List3`, matching `cd_div` against `consnt_stc_ny`. Sets the display name on match and breaks.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `consnt_stc_ny = svc_kei_kaisen_ucwk_subbean.sendMessageString(CONSNT_STC_NYO_CD_07, DATABEAN_GET_VALUE)` |
| 2 | EXTRACT | `kksv005972sc = outputMap.get("KKSV005972SC")` |
| 3 | EXTRACT | `eZM0171B010CBSMsg1List3 = kksv005972sc.get("EZM0171B010CBSMsg1List3")` |
| 4 | FOR | `for (HashMap eZM0171B010CBSMsg3 : eZM0171B010CBSMsg1List3)` (L2771) |
| 4.1 | EXTRACT | `cdDiv = (String)eZM0171B010CBSMsg3.get("cd_div")` |
| 4.2 | IF | `cdDiv != null && !"".equals(cdDiv)` (L2774) |
| 4.3 | IF | `cdDiv.equals(consnt_stc_ny)` (L2777) |
| 4.3.1 | EXTRACT | `cdDivNm = (String)eZM0171B010CBSMsg3.get("cd_div_nm")` |
| 4.3.2 | SET | `svcFormBean DSP_CONSNT_STC_NY = cdDivNm` |
| 4.3.3 | EXEC | `break` |

### Block 23 — BUREAU ONU LOOKUP LOOP (L2784–L2804)

> Looks up the display name for the bureau ONU type. Iterates through `outputMap.KKSV005973SC.EZM0171B010CBSMsg1List`, matching `cd_div` against `kyokuOnu`.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `kyokuOnu = svcFormBean.sendMessageString(KYOKU_ONU, DATABEAN_GET_VALUE)` |
| 2 | EXTRACT | `kksv005973sc = outputMap.get("KKSV005973SC")` |
| 3 | EXTRACT | `eZM0171B010CBSMsg1List = kksv005973sc.get("EZM0171B010CBSMsg1List")` |
| 4 | FOR | `for (HashMap eZM0171B010CBSMsg1 : eZM0171B010CBSMsg1List)` (L2793) |
| 4.1 | EXTRACT | `cdDiv = (String)eZM0171B010CBSMsg1.get("cd_div")` |
| 4.2 | IF | `cdDiv != null && !"".equals(cdDiv)` (L2796) |
| 4.3 | IF | `cdDiv.equals(kyokuOnu)` (L2799) |
| 4.3.1 | EXTRACT | `cdDivNm = (String)eZM0171B010CBSMsg1.get("cd_div_nm")` |
| 4.3.2 | SET | `svcFormBean DSP_KYOKU_ONU = cdDivNm` |
| 4.3.3 | EXEC | `break` |

### Block 24 — CT EMPTY STATUS LOOKUP LOOP (L2808–L2828)

> Looks up the display name for the CT (Communication Terminal) empty status. Iterates through `outputMap.KKSV005974SC.EZM0171B010CBSMsg1List2`.

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `ctAki = svcFormBean.sendMessageString(CT_AKI, DATABEAN_GET_VALUE)` |
| 2 | EXTRACT | `kksv005974sc = outputMap.get("KKSV005974SC")` |
| 3 | EXTRACT | `eZM0171B010CBSMsg1List2 = kksv005974sc.get("EZM0171B010CBSMsg1List2")` |
| 4 | FOR | `for (HashMap eZM0171B010CBSMsg2 : eZM0171B010CBSMsg1List2)` (L2817) |
| 4.1 | EXTRACT | `cdDiv = (String)eZM0171B010CBSMsg2.get("cd_div")` |
| 4.2 | IF | `cdDiv != null && !"".equals(cdDiv)` (L2820) |
| 4.3 | IF | `cdDiv.equals(ctAki)` (L2823) |
| 4.3.1 | EXTRACT | `cdDivNm = (String)eZM0171B010CBSMsg2.get("cd_div_nm")` |
| 4.3.2 | SET | `svcFormBean DSP_CT_AKI = cdDivNm` |
| 4.3.3 | EXEC | `break` |

### Block 25 — ROSETTE CHANGE WORK TARGET (L2832–L2842)

> Checks the rosette (rozet) change work skip target result. If equal to `ROZETT_CHK_RSLT_1`, sets target label ("対象"); otherwise sets non-target ("非対象").

| # | Type | Code |
|---|------|------|
| 1 | EXTRACT | `rozettChkRslt = svcFormBean.sendMessageString(ROZETT_CHK_RSLT, DATABEAN_GET_VALUE)` |
| 2 | IF | `JKKStrConst.ROZETT_CHK_RSLT_1.equals(rozettChkRslt)` (L2836) `[ROZETT_CHK_RSLT_1 = code for "target"]` |
| 2.1 | SET | `svcFormBean CRSHEN_KJSKP_TAISHO = "対象"` |
| 3 | ELSE | (L2838) |
| 3.1 | SET | `svcFormBean CRSHEN_KJSKP_TAISHO = "非対象"` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `EKK0081A010CBSMSG1LIST` | Constant | Service-contract list DataBean key from CBS EKK0081A010 — contains main service-contract information |
| `EKK0241B001CBSMSG1LIST` | Constant | Contract-revision list DataBean key from CBS EKK0241B001 — contains revision/address change data |
| `KU0011A010BSMSG1LIST` | Constant | Work-order DataBean key — contains general work-order info (request date, warranty period) |
| `KU0021A010BSMSG1LIST` | Constant | Work-order-neo DataBean key — contains neo-service-specific work info (cancellation date) |
| `KU0061A010BSMSG1LIST` | Constant | Work-order-neo-mansion DataBean key — mansion-specific work-order data (used when home-type != 1) |
| `EKKA0040001CBSMSG2LIST` | Constant | eo-electric subscription DataBean key — contains eo electric contract address info |
| `SVC_FLG` | Constant | Service flag — indicates contract type; "1" = home type, otherwise mansion/apartment |
| `ido_div` | Field | Change division code — identifies the type of contract change operation. Value `"00005"` means termination (解約) |
| `IDO_DIV_VALUE_00005` | Constant | Change division code for "termination/解約" — when matched, end dates default to current operation date |
| `BOKI` | Field | Remark/notes field for service contracts |
| `USEPLACE_AD_PCD_07` | Field | Postal code (7-digit) from contract revision DataBean |
| `USEPLACE_AD_CD_07` | Field | Address code (7-digit) from contract revision DataBean |
| `DSP_USEPLACE_AD_PCD` | Field | Display postal code — formatted with full-width prefix `〒` |
| `SHUNKO_RSV_YMD_07` | Field | Install scheduled date (YYYYMMDD) from contract revision |
| `DSP_SHUNKO_RSV_YM` | Field | Display install scheduled month (YYYY-MM) |
| `AD_MI_FIX_FLG` | Field | Unconfirmed flag — indicates whether the address is unconfirmed |
| `DSP_AD_MI_FIX_FLG` | Field | Display unconfirmed flag (boolean) |
| `HGW_KKN_FFG` | Field | HGW exchange-impossible flag — "1" means Home Gateway cannot be exchanged |
| `DSP_HGW_KKN_FFG` | Field | Display HGW exchange-impossible flag (boolean) |
| `KISN_PLC_KKK_SEIRI_CHU_FLG` | Field | District sorting-in-progress flag |
| `DSP_KUKAKU_SEIRI_CHU_FLG` | Field | Display district sorting-in-progress flag (boolean) |
| `SVC_STA_YMD_03` | Field | Service start date (YYYYMMDD) from service contract agreement list |
| `SVC_USE_STA_KIBO_YMD_03` | Field | Service start desired date (YYYYMMDD) from service contract agreement list |
| `SVC_CHRG_STAYMD_03` | Field | Service charge start date (YYYYMMDD) |
| `SVC_END_DTM_03` | Field | Service end date/time (YYYYMMDD) |
| `SVC_DSL_KISAN_YMD` | Field | Service charge end date (used as cancellation accounting date) |
| `KAP_KEI_STAT_030` | Constant | Concession contract status code "030" — means "settled/締結済" (in the process of being paid by split contract) |
| `KAP_KEI_KKOKU_OPUT_FLG` | Field | Split-contract-processing flag — set ON when a settled concession contract is found |
| `WEB_OP_ADD_FAIL_FLG_03` | Field | Web-operation-add-failure flag — "1" means web option addition is not possible |
| `WRIB_SVC_KEI_NO_CHOKI_WRIB` | Field | Long-term discount contract service number — presence indicates a long-term discount contract exists |
| `CHOWARI_UM` | Field | Long-term discount indicator — "有" (present) or "無" (absent) |
| `CONSENT_STC_NYO_CD_07` | Field | Consent-setup content code from contract revision |
| `KYOKU_ONU` | Field | Bureau ONU type code |
| `CT_AKI` | Field | CT (Communication Terminal) empty status code |
| `ROZETT_CHK_RSLT` | Field | Rosette (rozet) change work skip target result code |
| `ROZETT_CHK_RSLT_1` | Constant | Rosette check result code for "target/対象" |
| `CRSHEN_KJSKP_TAISHO` | Field | Rosette-change work-skip target label — "対象" (target) or "非対象" (non-target) |
| `EKK2541B004CBSMsg1List` | Constant | Concession-contract status list from CBS EKK2541B004 — contains kap_kei_stat codes |
| `EZM0171B010CBSMsg1List3` | Constant | Consent-setup content code list from CBS EZM0171B010 — contains cd_div/cd_div_nm pairs |
| `EZM0171B010CBSMsg1List` | Constant | Bureau ONU type code list from CBS EZM0171B010 — contains cd_div/cd_div_nm pairs |
| `EZM0171B010CBSMsg1List2` | Constant | CT empty status code list from CBS EZM0171B010 — contains cd_div/cd_div_nm pairs |
| `kap_kei_stat` | Field | Concession contract status code in the CBS list |
| `cd_div` | Field | Code division — the code value used for matching against display-name lookup lists |
| `cd_div_nm` | Field | Code division name — the human-readable label matching a cd_div code |
| `hyhunPcd` | Method | Halfwidth-to-fullwidth conversion utility for postal codes (JPCUtilCommon) |
| `hyhunAdCd` | Method | Halfwidth-to-fullwidth conversion utility for address codes (JPCUtilCommon) |
| `formatDate` | Method | Date formatting utility converting YYYYMMDD to YYYY-MM-DD or YYYY-MM format |
| `getOpeDate` | Method | Retrieves the current operation date (business date) from JCCWebCommon |
| `setSvcPauseStpInfo` | Method | Delegates population of usage-suspension start date, suspension-removal date, and suspension-charge-applicable-month fields |
| `eo光ネット` | Business term | eo Light Neo — NTT West's fiber-optic broadband service brand |
| `解約` | Business term | Termination/cancellation — the contract end operation, identified by ido_div = "00005" |
| `復旧案件` | Business term | Restoration order — a work order to restore service after an incident, indicated by HUKKAT_ANKEN_11 = "1" |
| `面開発登録` | Business term | Keibeiden (face development) registration — a specific type of service registration, displayed as "面開発登録データ" |
| `法人サービス契約引継ぎ種別コード` | Field | Legal (corporate) service contract continuation method code — "01" = continue to Internet Office |
| `インターネットオフィスへの引継` | Field | Internet Office continuation flag (boolean) |
| `新電力` | Business term | New electric power — eo electric subscription contract for new electricity providers |
| `同一利用箇所` | Business term | Same location — used in eo-electric address composition to identify contracts at the same address |
| `HGW` | Acronym | Home Gateway — residential networking equipment for eo light service |
| `ONU` | Acronym | Optical Network Unit — terminal equipment for fiber-optic connections |
| `CT` | Acronym | Communication Terminal — the customer-side network termination device |
| `KKSV005998SC` | Constant | Screen CBS key for concession-contract status list in outputMap |
| `KKSV005972SC` | Constant | Screen CBS key for consent-setup content list in outputMap |
| `KKSV005973SC` | Constant | Screen CBS key for bureau ONU type list in outputMap |
| `KKSV005974SC` | Constant | Screen CBS key for CT empty status list in outputMap |
| `LGD` | Field | Latitude (经度/latitude) — geocoding coordinate for the contract address |
| `LTTD` | Field | Longitude (緯度/longitude) — geocoding coordinate for the contract address |
