# Business Logic — KKW00147SFLogic.confirmServiceFormBean() [594 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00147SF.KKW00147SFLogic` |
| Layer | Controller (webview logic layer — screen-level business logic) |
| Module | `KKW00147SF` (Package: `eo.web.webview.KKW00147SF`) |

## 1. Role

### KKW00147SFLogic.confirmServiceFormBean()

This method is the pre-confirmation data assembly routine for the "eo Hikari Denwa" (fiber-optic telephone service) registration screen. Its primary purpose is to construct and populate the service form Bean with all derived, computed, and default values that must be displayed to the user during the update confirmation step before a service contract change is submitted. The method handles **four distinct business operation types** identified by the `ido_div` discriminator: **Number Addition** (`IDO_DIV_BANGO_TSUIKA`), **Number Change** (`IDO_DIV_BANGO_HENKO`), **Number Portability Change** (`IDO_DIV_BANPO_HENKO`), and **Service Cancellation** (`IDO_DIV_BANGO_KAIYAKU`), plus **Phone Change** (`IDO_DIV_DENWA_HENKO`).

The method implements a **routing/dispatch pattern** — it reads the `ido_div` discriminator from the form bean and branches into specialized processing blocks, each tailoring the bean state for a specific type of service modification. Within the routing blocks, it uses the **builder pattern** to assemble composite values (e.g., composing `SVC_END_YMD` from separate year/month/day fields, splitting pipe-delimited VA choice strings into model code and change number).

The method plays a critical role in the **screen-level data preparation** for the eo Hikari Denwa service registration S-IF. It is called by `actionFix()` and `cfTran()` within `KKW00147SFLogic`, which are the primary screen entry methods. The method populates over 40 individual bean fields across multiple nested bean arrays, including business commission data, VA (Virtual Apparatus) device selection data, notification bean data, order release bean data, and operational metadata — preparing the screen for user review and confirmation.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["confirmServiceFormBean"])
    START --> GETBEANS["Get svcFormBean, commonInfoBean"]
    GETBEANS --> GETIDO["Read ido_div from formBean"]
    GETIDO --> BR1{Is IDO_DIV_BANGO_TSUIKA<br/>or BANGO_KAIYAKU<br/>or BANGO_HENKO?}
    BR1 -->|Yes| BLOCK1["Block 1: Business commission setup<br/>for number addition change"]
    BR1 -->|No| BR2{Is BANGO_TSUIKA or<br/>BANGO_HENKO or DENWA_HENKO?}
    BLOCK1 --> ICJKN{cdDiv type?}
    ICJKN -->|ARI| SET100["Set ICJKN_SHITEI_RT to 100.0<br/>Clear amount"]
    ICJKN -->|HANGAKU| SET50["Set ICJKN_SHITEI_RT to 50.0<br/>Clear amount"]
    ICJKN -->|SHITEIGAKU| CLEARCOMMA["Remove commas from amount"]
    ICJKN -->|NASI| CLEARAMNT["Clear JIMU_COMMISION_AMNT"]
    SET100 --> BR2
    SET50 --> BR2
    CLEARCOMMA --> BR2
    CLEARAMNT --> BR2
    BR2 -->|Yes| BMP_CHECK{cdDiv equals ARI?}
    BMP_CHECK -->|Yes| EDITBAMPO["Call editBampoInfo"]
    BMP_CHECK -->|No| BR3{Is BANGO_TSUIKA or<br/>DENWA_HENKO?}
    EDITBAMPO --> BR3
    BR3 -->|Yes| VA_PARSE["Parse VA choice: split modelCd + chgNo"]
    BR3 -->|No| BR3B{Is BANGO_KAIYAKU?}
    VA_PARSE --> KIKI_LOOP["Loop kikiPullDownList<br/>match modelCd + chgNo"]
    KIKI_LOOP --> SETVA["Set VA_MODEL_CD, VA_SEIZO_NO, VA_KIKI_CHG_NO"]
    SETVA --> PORT_NO["Read port no<br/>Set kktk_sbt_cd + taknkiki_sbt_cd"]
    PORT_NO --> BR3B
    BR3B -->|Yes| SVC_DATE["Compose SVC_END_YMD<br/>Compose SVC_CHRG_END_YMD<br/>Read penalty div"]
    BR3B -->|No| BR4{Is DENWA_HENKO?}
    SVC_DATE --> BR4
    BR4 -->|Yes| BMP_MSKM["Read BMP_MSKM_COMMISION<br/>Handle temp fund rates"]
    BR4 -->|No| GETOPE["Get unyoYmd + unyoDtm"]
    BMP_MSKM --> GETOPE
    GETOPE --> SETOPE["Set UNYO_YMD + UNYO_DTM"]
    SETOPE --> SEIKY["Loop EKK0491B030DATA<br/>find seiky_kei_no"]
    SEIKY --> SETSTATIC["Set static flags<br/>OYA_KEI_SKBT_CD etc"]
    SETSTATIC --> NOTIFY["Setup EKK0561D010 bean arrays<br/>Set order release beans"]
    NOTIFY --> BR5{Is BANGO_TSUIKA or<br/>BANGO_HENKO or<br/>BANPO_HENKO?}
    BR5 -->|Yes| SVCSTAT{svcKeiSts is<br/>010 or 020 or 030?}
    BR5 -->|No| ENDN["END"]
    SVCSTAT -->|Yes| DOJI_U["Set DOJI_KOJI_UM = U"]
    SVCSTAT -->|No| DOJI_M["Set DOJI_KOJI_UM = M"]
    DOJI_U --> READKKTKEK["Read kkw00148Bean"]
    DOJI_M --> READKKTKEK
    READKKTKEK --> SETLOGIN["Set LOGINUSER_ID<br/>Set ITNM_TSJGS_KTN_CD"]
    SETLOGIN --> PULLDOWN["Call getPulldownName<br/>for DOBANITEN fields"]
    PULLDOWN --> ENDN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. All input data is retrieved from internal bean state via `getServiceFormBean()` and `getCommonInfoBean()`. |
| - | `svcFormBean` | `X31SDataBeanAccess` | The service form data bean containing all screen field values (ida_div, VA choice, port number, bean arrays for details, commission data, etc.). Retrieved internally. |
| - | `commonInfoBean` | `X31SDataBeanAccess` | The shared common information bean providing authenticated user data (e.g., `USER_ID` for bampo work assignment). Retrieved via `super.getCommonInfoBean()`. |
| - | `ido_div` | `String` (instance field) | Operation division discriminator — determines which branch of business logic to execute. Values include `BANGO_TSUIKA` (number addition), `BANGO_KAIYAKU` (cancellation), `BANGO_HENKO` (number change), `BANPO_HENKO` (portability change), `DENWA_HENKO` (phone change). |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JCCWebCommon.getOpeDate` | JCCWebCommon | - | Gets the current operational date (YYYYMMDD) for the screen |
| R | `JCCWebCommon.getOpeDateTimeStamp` | JCCWebCommon | - | Gets the current operational timestamp (YYYYMMDDHHMMSS) for the screen |
| R | `KKW00147SFLogic.getPulldownName` | KKW00147SFLogic | - | Retrieves human-readable display names for DOBANITEN (secondary business number) pulldown options |
| R | `OneStopDataBeanAccessArray.getCount` | OneStopDataBeanAccessArray | - | Gets count of elements in a bean array (used for looping over EKK0491B030DATA, kikiPullDownList) |
| R | `OneStopDataBeanAccessArray.getDataBean` | OneStopDataBeanAccessArray | - | Retrieves a specific element from a bean array by index |
| R | `OneStopDataBeanAccess.getDataBeanArray` | OneStopDataBeanAccess | - | Gets a bean array reference (e.g., BMP_UM, VA_CHOICE, NO_GUIDE, KIKIPULLDOWN_LIST, etc.) |
| R | `OneStopDataBeanAccess.sendMessageString` | OneStopDataBeanAccess | - | Gets a field value from a data bean |
| C | `OneStopDataBeanAccessArray.addDataBean` | OneStopDataBeanAccessArray | - | Adds a new element to a bean array (EDK0011D020DETAILLIST, EKK0561D010DETAILLIST) |
| C | `OneStopDataBeanAccessArray.clearArray` | OneStopDataBeanAccessArray | - | Clears an existing bean array before repopulating (EDK0011D020DETAILLIST, EKK0561D010DETAILLIST) |
| - | `OneStopDataBeanAccess.sendMessage` | OneStopDataBeanAccess | - | Clears a bean field (ICJKN_SHITEI_RT, JIMU_COMMISION_AMNT, BMP_MSKM_COMMISION_AMNT) |
| - | `OneStopDataBeanAccess.sendMessageString` | OneStopDataBeanAccess | - | Sets a field value in a data bean (over 40 field assignments across multiple bean types) |
| U | `KKW00147SFLogic.editBampoInfo` | KKW00147SFLogic | - | Transfers bampo (phone number) input screen data to the service form bean — includes JMU_CD_BMP, JMTE_RT_BMP, JMTE_AMNT_BMP |

**Note:** This method is purely a **data assembly/transformation** method. It does not invoke any database-scoped SC (Service Component) or CBS (Business Service) methods directly. All data it manipulates resides in memory within the `X31SDataBeanAccess` bean hierarchy. The `editBampoInfo` method it delegates to also performs only bean-level data transfers.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | KKW00147SFLogic.actionFix() | `actionFix()` -> `confirmServiceFormBean()` | `sendMessageString` [SET] — over 40 bean field assignments; `sendMessage` [CLEAR] — 3 clear operations; `editBampoInfo` [U] — bampo bean data transfer; `getPulldownName` [R] — DOBANITEN pulldown data |
| 2 | KKW00147SFLogic.cfTran() | `cfTran()` -> `confirmServiceFormBean()` | `sendMessageString` [SET] — over 40 bean field assignments; `sendMessage` [CLEAR] — 3 clear operations; `editBampoInfo` [U] — bampo bean data transfer; `getPulldownName` [R] — DOBANITEN pulldown data |

**Terminal operations from this method:**
- `sendMessageString` [SET] — over 40 field assignments across multiple bean types (form bean, commission bean, detail list bean, notification bean, order bean)
- `sendMessage` [CLEAR] — 3 field clear operations (ICJKN_SHITEI_RT, JIMU_COMMISION_AMNT, BMP_MSKM_COMMISION_AMNT)
- `editBampoInfo` [U] — bampo data transfer to service form bean
- `getPulldownName` [R] — DOBANITEN request control CD and judgment CD display name resolution
- `getOpeDate` [R] — operational date retrieval
- `getOpeDateTimeStamp` [R] — operational timestamp retrieval

No screen/batch entry points (KKSV*) are found within 8 hops. The direct callers `actionFix()` and `cfTran()` are themselves the primary screen entry methods for the KKW00147SF screen, which handles eo Hikari Denwa service registration.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `IDO_DIV_BANGO_TSUIKA.equals(ido_div) || IDO_DIV_BANGO_KAIYAKU.equals(ido_div) || IDO_DIV_BANGO_HENKO.equals(ido_div)` [ID_DIV discriminator] (L3092)

> Business commission setup for number addition, cancellation, or number change. Reads the commission division code and sets temporary fund designation rate accordingly.

| # | Type | Code |
|---|------|------|
| 1 | GET | `jimuBean = svcFormBean.getDataBeanArray(KKW00147SFConst.JIMU_COMMISION).getDataBean(0)` // Get business commission bean [-> "jimu_commision"] |
| 2 | GET | `indStr = jimuBean.sendMessageString(KKW00147SFConst.INDEX_01, ...)` // Get commission index [-> "index_01"] |
| 3 | GET | `cdDiv = jimuBean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., Integer.parseInt(indStr))` // Get commission division code [-> "cd_div_list_01"] |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.JIMU_COMMISION_L, ..., cdDiv)` // Set commission list display [-> "jimu_commision_l"] |
| 5 | EXEC | `svcFormBean.sendMessage(KKW00147SFConst.ICJKN_SHITEI_RT, ...CLEAR)` // Clear temp fund designation rate [-> "icjkn_shitei_rt"] |

**Block 1.1** — [IF] `JIMU_TESURYO_ARI.equals(cdDiv)` [JIMU_TESURYO_ARI="1" (fee required)] (L3102)

> Set 100% fee rate and clear specified amount.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ICJKN_SHITEI_RT, ..., "100.0")` // 100% rate |
| 2 | EXEC | `svcFormBean.sendMessage(KKW00147SFConst.JIMU_COMMISION_AMNT, ...CLEAR)` // Clear amount |

**Block 1.2** — [ELSE-IF] `JIMU_TESURYO_HANGAKU.equals(cdDiv)` [JIMU_TESURYO_HANGAKU="2" (percentage-based fee)] (L3107)

> Set 50% fee rate and clear specified amount.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ICJKN_SHITEI_RT, ..., "50.0")` // 50% rate |
| 2 | EXEC | `svcFormBean.sendMessage(KKW00147SFConst.JIMU_COMMISION_AMNT, ...CLEAR)` // Clear amount |

**Block 1.3** — [ELSE-IF] `JIMU_TESURYO_SHITEIGAKU.equals(cdDiv)` [JIMU_TESURYO_SHITEIGAKU="3" (specified amount fee)] (L3112)

> Remove commas from the specified amount for numeric processing.

| # | Type | Code |
|---|------|------|
| 1 | GET | `shiteigaku = svcFormBean.sendMessageString(KKW00147SFConst.JIMU_COMMISION_AMNT, ...GET)` |
| 2 | SET | `shiteigaku = shiteigaku.replaceAll(",", "")` // Remove commas |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.JIMU_COMMISION_AMNT, ..., shiteigaku)` // Set cleaned amount |

**Block 1.4** — [ELSE] `cdDiv` is none of the above (L3119)

> Clear the commission amount field entirely.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessage(KKW00147SFConst.JIMU_COMMISION_AMNT, ...CLEAR)` // Clear amount |

---

**Block 2** — [IF] `IDO_DIV_BANGO_TSUIKA.equals(ido_div) || IDO_DIV_BANGO_HENKO.equals(ido_div) || IDO_DIV_BANPO_HENKO.equals(ido_div)` [Bampo presence check] (L3130)

> Check if bampo (phone number) information is present. If so, call `editBampoInfo` to copy bampo input data to the service form bean.

| # | Type | Code |
|---|------|------|
| 1 | GET | `bean = svcFormBean.getDataBeanArray(KKW00147SFConst.BMP_UM).getDataBean(0)` // Get bampo presence bean [-> "bmp_um"] |
| 2 | GET | `indStr = bean.sendMessageString(KKW00147SFConst.INDEX_01, ...)` // Get index |
| 3 | GET | `cdDiv = bean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., Integer.parseInt(indStr))` // Get bampo presence code [-> "cd_div_list_01"] |

**Block 2.1** — [IF] `CD00002_ARI.equals(cdDiv)` [CD00002_ARI="1" (bampo present)] (L3139)

> Invoke bampo info editing to transfer bampo input screen data to the service form bean.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `editBampoInfo(svcFormBean)` // Copy bampo bean data — sets JMTE_CD_BMP, JMTE_RT_BMP, JMTE_AMNT_BMP |

---

**Block 3** — [IF] `IDO_DIV_BANGO_TSUIKA.equals(ido_div) || IDO_DIV_DENWA_HENKO.equals(ido_div)` [Number addition or phone change] (L3151)

> Handle VA (Virtual Apparatus) device selection, port number, and device type setup for number addition or phone change operations.

| # | Type | Code |
|---|------|------|
| 1 | GET | `bean = svcFormBean.getDataBeanArray(KKW00147SFConst.VA_CHOICE).getDataBean(0)` // Get VA choice bean [-> "va_choice"] |
| 2 | GET | `indStr = bean.sendMessageString(KKW00147SFConst.INDEX_01, ...)` // Get VA index |
| 3 | GET | `cdDiv = bean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., Integer.parseInt(indStr))` // Get VA choice code |
| 4 | SET | `selectedModelCd = cdDiv.split(KIKI_SEP)[0]` // Extract model code (pipe-separated split) [-> KIKI_SEP="\\|"] |
| 5 | SET | `selectedChgNo = cdDiv.split(KIKI_SEP)[1]` // Extract change number |

**Block 3.1** — [FOR LOOP] `i = 0; i < kikiPullDownList.getCount(); i++` (L3166)

> Iterate through the device pulldown list to find a matching entry where both model code AND change number match the selected VA choice.

| # | Type | Code |
|---|------|------|
| 1 | GET | `element = kikiPullDownList.getDataBean(i)` // Get pulldown element |
| 2 | GET | `element.sendMessageString(KKW00147SFConst.VA_TAKNKIKI_MODEL_CD_27, ...GET)` // Get element model code [-> "va_taknkiki_model_cd_27"] |
| 3 | GET | `element.sendMessageString(KKW00147SFConst.VA_KIKI_CHG_NO_27, ...GET)` // Get element change number [-> "va_kiki_chg_no_27"] |

**Block 3.1.1** — [IF] `selectedModelCd.equals(elementModelCd) && selectedChgNo.equals(elementChgNo)` (L3173)

> Match found — set the VA model code, manufacturing number, and change number into the form bean, then break from the loop.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.VA_MODEL_CD, ..., elementModelCd)` // Set VA model code [-> "va_model_cd"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.VA_SEIZO_NO, ..., elementSeizoNo)` // Set VA manufacturing number [-> "va_seizo_no"] |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.VA_KIKI_CHG_NO, ..., elementChgNo)` // Set VA device change number [-> "va_kiki_chg_no"] |
| 4 | RETURN | `break;` // Exit the for loop |

**Block 3.2** — [GET] Port number section (L3197)

> Read the port number pulldown selection and set its display value.

| # | Type | Code |
|---|------|------|
| 1 | GET | `bean = svcFormBean.getDataBeanArray(KKW00147SFConst.PORT_NO).getDataBean(0)` // Get port no bean [-> "port_no"] |
| 2 | GET | `indStr = bean.sendMessageString(KKW00147SFConst.INDEX_01, ...)` // Get port index |
| 3 | GET | `cdDiv = bean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., ...)` // Get port code |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.PORT_NO_L, ..., cdDiv)` // Set port display [-> "port_no_l"] |

**Block 3.3** — [SET] Device type defaults (L3201)

> Set default device type codes for the VA case.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.KKTK_SBT_CD, ..., KKTK_SBT_CD_NONE)` // Set device type code [-> "kktk_sbt_cd"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.TAKNKIKI_SBT_CD, ..., TAKNKIKI_SBT_CD_VA)` // Set indoor device type = VA [-> "taknkiki_sbt_cd"] |

---

**Block 4** — [IF] `IDO_DIV_BANGO_TSUIKA.equals(ido_div)` [Number addition] (L3209)

> Handle number addition specifics: number guide display, phone bill posting, application content approval registration details, and delivery object item details.

| # | Type | Code |
|---|------|------|
| 1 | GET | `bean = svcFormBean.getDataBeanArray(KKW00147SFConst.NO_GUIDE).getDataBean(0)` // Get number guide [-> "no_guide"] |
| 2 | GET | `indStr = bean.sendMessageString(KKW00147SFConst.INDEX_01, ...)` // Get guide index |
| 3 | GET | `cdDiv = bean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., ...)` // Get guide code |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.NO_GUIDE_L, ..., cdDiv)` // Set guide display [-> "no_guide_l"] |
| 5 | GET | `bean = svcFormBean.getDataBeanArray(KKW00147SFConst.DNWACHO_KEISAI).getDataBean(0)` // Get phone bill posting [-> "dnwacho_keisai"] |
| 6 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.DNWACHO_KEISAI_L, ..., cdDiv)` // Set bill posting display [-> "dnwacho_keisai_l"] |
| 7 | CLEAR | `beans = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0011D020DETAILLIST)` // Clear application detail list [-> "ekk0011d020detailist"] |
| 8 | ADD | `bean = beans.addDataBean()` // Add new detail bean |
| 9 | SET | `bean.sendMessageString(KKW00147SFConst.MSKM_FORM_CD_18, ..., "")` // Clear form code [-> "mskm_form_cd_18"] |
| 10 | SET | `bean.sendMessageString(KKW00147SFConst.MSKM_DTL_SBT_CD_18, ..., "")` // Clear detail type code [-> "mskm_dtl_sbt_cd_18"] |
| 11 | CLEAR | `beans = svcFormBean.getDataBeanArray(KKW00147SFConst.EDK0011D020DETAILLIST)` // Clear delivery object list [-> "edk0011d020detailist"] |
| 12 | ADD | `bean = beans.addDataBean()` // Add new delivery bean |
| 13 | SET | `bean.sendMessageString(KKW00147SFConst.KKTK_SVC_KEI_NO_19, ..., kktk_svc_no)` // Set device service no [-> "kktk_svc_kei_no_19"] |
| 14 | SET | `bean.sendMessageString(KKW00147SFConst.TAKNKIKI_SBT_CD_19, ..., TAKNKIKI_SBT_CD_VA)` // Set indoor device type |
| 15 | SET | `bean.sendMessageString(KKW00147SFConst.TAKNKIKI_MODEL_CD_19, ..., vaModelCd)` // Set model code |
| 16 | SET | `bean.sendMessageString(KKW00147SFConst.PCRS_CD_19, ..., PCRS_CD_2_BANGO_COURSE)` // Set course code [-> "pcrs_cd_2_bango_course" = "A33"] |
| 17 | CLEAR | `beans = svcFormBean.getDataBeanArray(KKW00147SFConst.EDK0011D020DETAILLIST)` // Clear again for notification |
| 18 | ADD | `bean = beans.addDataBean()` |
| 19 | GET | `bean.sendMessageString(KKW00147SFConst.SVC_KEI_NO, ...GET)` |
| 20 | SET | `bean.sendMessageString(KKW00147SFConst.SVC_KEI_NO_20, ..., svcKeiNo)` // Set service contract no [-> "svc_kei_no_20"] |

**Block 4.1** — [GET + PARSE] VA model code and change number resolution (L3245)

> Re-read the VA choice bean to extract the selected model code and change number for the form bean.

| # | Type | Code |
|---|------|------|
| 1 | GET | `vaChoiceBean = svcFormBean.getDataBeanArray(KKW00147SFConst.VA_CHOICE).getDataBean(0)` |
| 2 | GET | `selectedIndex = vaChoiceBean.sendMessageString(KKW00147SFConst.INDEX_01, ...GET)` |
| 3 | GET | `selectedCdDiv = vaChoiceBean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., ...)` |
| 4 | SET | `selectedTaknkikiModelCd = selectedCdDiv.split(KIKI_SEP)[0]` |
| 5 | SET | `selectedKikiChgNo = selectedCdDiv.split(KIKI_SEP)[1]` |
| 6 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.TAKNKIKI_MODEL_CD, ..., selectedTaknkikiModelCd)` |
| 7 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.VA_KIKI_CHG_NO, ..., selectedKikiChgNo)` |

**Block 4.2** — [FOR LOOP] Device service contract number lookup (L3258)

> Loop through `EKK0341B002DATA` array to find the matching device service contract number by change number.

| # | Type | Code |
|---|------|------|
| 1 | GET | `kk0341Arr = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0341B002DATA)` // [-> "ekk0341b002data"] |
| 2 | FOR | `i = 0; i < kk0341Arr.getCount(); i++` |
| 3 | GET | `kk0341Bean = kk0341Arr.getDataBean(i)` |
| 4 | GET | `taknkikiChgNo = kk0341Bean.sendMessageString(KKW00147SFConst.KIKI_CHG_NO_07, ...GET)` // [-> "kiki_chg_no_07"] |

**Block 4.2.1** — [IF] `selectedKikiChgNo.equals(taknkikiChgNo)` (L3263)

> Match found — extract the device service contract number.

| # | Type | Code |
|---|------|------|
| 1 | GET | `kktkSvcKeiNo = kk0341Bean.sendMessageString(KKW00147SFConst.KKTK_SVC_KEI_NO_07, ...GET)` // [-> "kktk_svc_kei_no_07"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.KKTK_SVC_KEI_NO, ..., kktkSvcKeiNo)` // Set device service contract no |

---

**Block 5** — [IF] `IDO_DIV_BANGO_KAIYAKU.equals(ido_div)` [Service cancellation] (L3277)

> Compose service end dates and set up penalty occurrence data for cancellation operations.

| # | Type | Code |
|---|------|------|
| 1 | GET | `yyyy = svcFormBean.sendMessageString(KKW00147SFConst.SVC_END_YEAR, ...GET)` // [-> "svc_end_year"] |
| 2 | GET | `mm = svcFormBean.sendMessageString(KKW00147SFConst.SVC_END_MON, ...GET)` // [-> "svc_end_mon"] |
| 3 | GET | `dd = svcFormBean.sendMessageString(KKW00147SFConst.SVC_END_DAY, ...GET)` // [-> "svc_end_day"] |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SVC_END_YMD, ..., yyyy + mm + dd)` // Compose YYYYMMDD [-> "svc_end_ymd"] |
| 5 | GET | `yyyy = svcFormBean.sendMessageString(KKW00147SFConst.SVC_CHRG_END_YEAR, ...GET)` // [-> "svc_chrg_end_year"] |
| 6 | GET | `mm = svcFormBean.sendMessageString(KKW00147SFConst.SVC_CHRG_END_MON, ...GET)` // [-> "svc_chrg_end_mon"] |
| 7 | GET | `dd = svcFormBean.sendMessageString(KKW00147SFConst.SVC_CHRG_END_DAY, ...GET)` // [-> "svc_chrg_end_day"] |
| 8 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SVC_CHRG_END_YMD, ..., yyyy + mm + dd)` // Compose charge end YYYYMMDD [-> "svc_chrg_end_ymd"] |
| 9 | GET | `iyaku = svcFormBean.getDataBeanArray(KKW00147SFConst.PNLTY_HASSEI_DIV).getDataBean(0)` // Get penalty div [-> "pnltY_hassei_div"] |
| 10 | GET | `indStr = iyaku.sendMessageString(KKW00147SFConst.INDEX_01, ...GET)` |
| 11 | SET | `cdDiv = iyaku.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., ...)` |
| 12 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.PNLTY_HASSEI_DIV_L, ..., cdDiv)` // Set penalty display [-> "pnltY_hassei_div_l"] |

---

**Block 6** — [IF] `IDO_DIV_DENWA_HENKO.equals(ido_div)` [Phone change — ANK-3190-00-00] (L3296)

> Handle bampo application commission for phone change operations. Similar to Block 1 but reads from the bampo-specific commission bean.

| # | Type | Code |
|---|------|------|
| 1 | GET | `bmpBean = svcFormBean.getDataBeanArray(KKW00147SFConst.BMP_MSKM_COMMISION).getDataBean(0)` // [-> "bmp_mskm_commision"] |
| 2 | GET | `indStr = bmpBean.sendMessageString(KKW00147SFConst.INDEX_01, ...GET)` |
| 3 | GET | `cdDiv = bmpBean.sendMessageString(KKW00147SFConst.CD_DIV_LIST_01, ..., ...)` // Get bampo commission div |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.BMP_MSKM_COMMISION_L, ..., cdDiv)` // [-> "bmp_mskm_commision_l"] |

**Block 6.1** — [IF] `JIMU_TESURYO_SHITEIGAKU.equals(cdDiv)` [JIMU_TESURYO_SHITEIGAKU="3" (specified amount)] (L3306)

> Strip commas from the specified amount for phone change bampo commission.

| # | Type | Code |
|---|------|------|
| 1 | GET | `shiteigaku = svcFormBean.sendMessageString(KKW00147SFConst.BMP_MSKM_COMMISION_AMNT, ...GET)` // [-> "bmp_mskm_commision_amnt"] |
| 2 | SET | `shiteigaku = shiteigaku.replaceAll(",", "")` // Remove commas |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.BMP_MSKM_COMMISION_AMNT, ..., shiteigaku)` // Set cleaned |

**Block 6.2** — [ELSE] (L3313)

> Clear the bampo commission amount.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `svcFormBean.sendMessage(KKW00147SFConst.BMP_MSKM_COMMISION_AMNT, ...CLEAR)` |

---

**Block 7** — [SET] Operational date and timestamp (L3320)

> Get the current operational date and timestamp from `JCCWebCommon` and set them in the form bean.

| # | Type | Code |
|---|------|------|
| 1 | GET | `unyoYmd = JCCWebCommon.getOpeDate(this, null)` // [-> "unyo_ymd"] |
| 2 | GET | `unyoDtm = JCCWebCommon.getOpeDateTimeStamp(this, null)` // [-> "unyo_dtm"] |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.UNYO_YMD, ..., unyoYmd)` |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.UNYO_DTM, ..., unyoDtm)` |

---

**Block 8** — [FOR LOOP] Billing contract number lookup (L3328)

> Loop through `EKK0491B030DATA` array to find the billing contract number (`seiky_kei_no`).

| # | Type | Code |
|---|------|------|
| 1 | GET | `beans = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0491B030DATA)` // [-> "ekk0491b030data"] |
| 2 | FOR | `i = 0; i < beans.getCount(); i++` |
| 3 | GET | `bean = beans.getDataBean(i)` |
| 4 | GET | `seiky_kei_no = bean.sendMessageString(KKW00147SFConst.SEIKY_KEI_NO_23, ...GET)` // [-> "seiky_kei_no_23"] |
| 5 | RETURN | `break;` // Found first match |
| 6 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SEIKY_KEI_NO, ..., seiky_kei_no)` // Set billing contract no [-> "seiky_kei_no"] |
| 7 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.OYA_KEI_SKBT_CD, ..., OYA_KEI_SKBT_CD_03)` // Set parent contract code [-> "oya_kei_skbt_cd" = "03"] |

---

**Block 9** — [SET] Static flag assignments (L3340)

> Set various static/default flag values for billing contract, notification, and delivery configuration. These are set once and are independent of the operation division.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.TUWA_DTL_KOKAI_YH, ..., CD00003_HI)` // Call detail disclosure = No [-> "tuwa_dtl_kokai_yh"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ITNTOKI_KIBO_UM, ..., CD00002_NASI)` // Transfer token desire = No [-> "itntoki_kibo_um"] |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.HAISO_DIV, ..., "00")` // Delivery division = Direct [-> "haiso_div"] |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.HISOS_KSITEI_FLG, ..., "0")` // Delivery destination separate flag = No [-> "hisos_ksitei_flg"] |
| 5 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SOKO_CD, ..., "")` // Warehouse code = empty [-> "soko_cd"] |
| 6 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SHELF_CD, ..., "000")` // Shelf code = 000 [-> "shelf_cd"] |
| 7 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.AD_MI_FIX_FLG, ..., "0")` // Address undetermined flag = No [-> "ad_mi_fix_flg"] |
| 8 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SHUKKA_TAIKI_FLG, ..., "0")` // Shipment pending flag = No [-> "shukka_taiki_flg"] |
| 9 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.TCHISHO_TEMP_CD, ..., "0")` // Notice document attachment code = 0 [-> "tchisho_temp_cd"] |

---

**Block 10** — [SET] Notification bean data assembly (L3360)

> Populate the notification document registration bean arrays for the "Notice Document Registration S-IF".

| # | Type | Code |
|---|------|------|
| 1 | GET | `ekk0561d010DetailList = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0561D010DETAILLIST)` // [-> "ekk0561d010detailist"] |
| 2 | CLEAR | `ekk0561d010DetailList.clearArray()` |
| 3 | ADD | `ekk0561d010Detail = ekk0561d010DetailList.addDataBean()` |
| 4 | GET | `svcFormBean.sendMessageString(KKW00147SFConst.SVC_KEI_NO, ...GET)` |
| 5 | SET | `ekk0561d010Detail.sendMessageString(KKW00147SFConst.SVC_KEI_NO_20, ..., svcKeiNo)` // [-> "svc_kei_no_20"] |
| 6 | SET | `ekk0561d010Detail.sendMessageString(KKW00147SFConst.TCHI_TG_BPIN_TSTAYMD_20, ..., unyoYmd)` // [-> "tchi_tg_bpin_tstaymd_20"] |
| 7 | SET | `ekk0561d010Detail.sendMessageString(KKW00147SFConst.TCHI_TG_BPIN_TENDYMD_20, ..., MAX_DATE)` // [-> "tchi_tg_bpin_tendymd_20"] |
| 8 | GET | `ekk0561d010DetailList2 = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0561D010DETAILLIST2)` // [-> "ekk0561d010detailist2"] |
| 9 | CLEAR | `ekk0561d010DetailList2.clearArray()` |

---

**Block 11** — [SET] Order release condition bean data (L3380)

> Set the order issuance condition bean data for the "Order Issuance Condition Registration S-IF".

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ORDER_SBT_CD, ..., "2")` // Order type code = 2 [-> "order_sbt_cd"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.SVC_ORDER_CD, ..., "Z1")` // Service order code = Z1 [-> "svc_order_cd"] |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.YOKYU_SBT_CD, ..., "02")` // Request type code = 02 [-> "yokyu_sbt_cd"] |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ODR_HAKKO_JOKEN_CD, ..., "00")` // Order release condition code = 00 [-> "odr_hakko_joken_cd"] |

---

**Block 12** — [IF] `IDO_DIV_BANGO_TSUIKA.equals(ido_div) || IDO_DIV_BANGO_HENKO.equals(ido_div) || IDO_DIV_BANPO_HENKO.equals(ido_div)` [Number-related change operations] (L3388)

> Handle simultaneous work eligibility determination and bampo input data transfer for number addition, number change, and number portability change operations.

| # | Type | Code |
|---|------|------|
| 1 | GET | `eKK0081A010DATAList = svcFormBean.getDataBeanArray(KKW00147SFConst.EKK0081A010DATA)` // [-> "ekk0081a010data"] |
| 2 | GET | `eKK0081A010DATA = eKK0081A010DATAList.getDataBean(0)` |
| 3 | GET | `svcKeiSts = eKK0081A010DATA.sendMessageString(KKW00147SFConst.SVC_KEI_STAT_21, ...GET)` // [-> "svc_kei_stat_21"] |

**Block 12.1** — [IF] `svcKeiSts.equals("010") || svcKeiSts.equals("020") || svcKeiSts.equals("030")` [JKKCommonConst: SVC_KEI_STAT_010/020/030] (L3397)

> Service contract status is "received", "under review", or "concluded" — simultaneous work is possible (UM = "U" for "ari").

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.DOJI_KOJI_UM, ..., JKKCommonConst.UM_U)` // Simultaneous work = Yes [-> "doji_koji_um" = "U"] |

**Block 12.2** — [ELSE] (L3405)

> Service contract status is not yet finalized — simultaneous work is not possible (UM = "M" for "nai").

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.DOJI_KOJI_UM, ..., JKKCommonConst.UM_M)` // Simultaneous work = No [-> "doji_koji_um" = "M"] |

**Block 12.3** — [SET] Bampo work assignment data (L3424)

> Copy bampo work assignment user ID and bampo work site code from the bampo input screen bean.

| # | Type | Code |
|---|------|------|
| 1 | GET | `kkw00148Bean = svcFormBean.getDataBeanArray(KKW00147SFConst.BMP_INPUT).getDataBean(0)` // [-> "bmp_input"] |
| 2 | GET | `commonInfoBean.sendMessageString(CommonInfoCFConst.USER_ID, ...GET)` // Get logged-in user ID |
| 3 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.LOGINUSER_ID, ..., userId)` // Set login user ID [-> "loginuser_id"] |
| 4 | GET | `kkw00148Bean.sendMessageString(SRC_KKW00148_KEYS[17], ...GET)` // Get bampo work site code |
| 5 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.ITNM_TSJGS_KTN_CD, ..., siteCode)` // [-> "itnm_tsjgs_ktn_cd"] |

**Block 12.4** — [SET] DOBANITEN pulldown display names (L3436)

> Call `getPulldownName()` to populate the human-readable display names for the secondary business number inquiry request control code and inquiry result code pulldowns.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `getPulldownName(svcFormBean, KKW00147SFConst.DOBANITEN_REQ_CTRL_CD)` // [-> "dobaniten_req_ctrl_cd"] |
| 2 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.DOBANITEN_REQ_CTRL_CD_L, ..., pulldownName)` // [-> "dobaniten_req_ctrl_cd_l"] |
| 3 | CALL | `getPulldownName(svcFormBean, KKW00147SFConst.DOBANITEN_JDG_CD)` // [-> "dobaniten_jdg_cd"] |
| 4 | SET | `svcFormBean.sendMessageString(KKW00147SFConst.DOBANITEN_JDG_CD_L, ..., pulldownName)` // [-> "dobaniten_jdg_cd_l"] |

---

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `ido_div` | Field | Operation division — discriminator indicating the type of service modification: number addition, number change, cancellation, portability change, or phone change |
| BANGO_TSUIKA | Domain term | Number Addition — adding a new phone number to an existing eo Hikari Denwa service contract |
| BANGO_KAIYAKU | Domain term | Number Cancellation — terminating an eo Hikari Denwa service contract and canceling the associated phone number |
| BANGO_HENKO | Domain term | Number Change — changing the phone number while keeping the same service contract |
| BANPO_HENKO | Domain term | Number Portability Change — porting a phone number from another carrier to eo Hikari Denwa (MNP) |
| DENWA_HENKO | Domain term | Phone Change — changing the telephone line without altering the phone number |
| `jimu_commision` | Field | Business commission data — data related to work/service fees for bampo (phone number) operations |
| `jimu_commision_l` | Field | Business commission list display — formatted/computed commission value for screen display |
| `icjkn_shitei_rt` | Field | Temporary fund designation rate — percentage rate for interim payment (100.0%, 50.0%, or empty) |
| `jimu_commision_amnt` | Field | Business commission amount — the specified monetary amount for work fees |
| JIMU_TESURYO_ARI | Constant | Fee required — business work commission is applicable (rate: 100%) |
| JIMU_TESURYO_HANGAKU | Constant | Percentage-based fee — commission calculated as a percentage of a base amount (rate: 50%) |
| JIMU_TESURYO_SHITEIGAKU | Constant | Specified amount — the customer has specified an exact commission amount |
| `bmp_um` | Field | Bampo (phone number) presence/absence — indicates whether bampo data is provided |
| CD00002_ARI | Constant | Bampo present — indicator value "1" meaning bampo information exists |
| CD00002_NASI | Constant | Bampo absent — indicator value "0" meaning no bampo information |
| VA_CHOICE | Field | VA (Virtual Apparatus) choice — user's selection from the indoor device pulldown list |
| KIKI_SEP | Constant | Device separator — pipe character ("\|") used to separate model code and change number in the VA choice value |
| `va_model_cd` | Field | VA model code — indoor device model code selected by the user |
| `va_seizo_no` | Field | VA manufacturing number — serial/manufacturing number of the selected indoor device |
| `va_kiki_chg_no` | Field | VA device change number — change number associated with the selected device |
| `va_taknkiki_model_cd_27` | Field | VA indoor device model code (index 27) — source model code from pulldown list element |
| `va_kiki_chg_no_27` | Field | VA device change number (index 27) — source change number from pulldown list element |
| `port_no` | Field | Port number — the port number associated with the service |
| `port_no_l` | Field | Port number display — formatted port number for screen display |
| `kktk_sbt_cd` | Field | Device service type code — classifies the type of device service |
| `kktk_sbt_cd_none` | Constant | Device service type = None |
| `taknkiki_sbt_cd` | Field | Indoor device type code |
| `taknkiki_sbt_cd_va` | Constant | Indoor device type = VA (Virtual Apparatus) |
| `no_guide` | Field | Number guide — guidance information about phone number options |
| `no_guide_l` | Field | Number guide display — formatted guide for screen display |
| `dnwacho_keisai` | Field | Phone bill posting — indicates whether the phone number appears on bills |
| `dnwacho_keisai_l` | Field | Phone bill posting display — formatted billing indicator |
| `ekk0011d020detailist` | Field | Application content approval registration detail list — beans for registration of application content approval |
| `edk0011d020detailist` | Field | Delivery object item detail list — beans for delivery target item details |
| `mskm_form_cd_18` | Field | Application form code (detail index 18) |
| `mskm_dtl_sbt_cd_18` | Field | Application detail type code (detail index 18) |
| `kktk_svc_kei_no_19` | Field | Device service contract number (detail index 19) |
| `taknkiki_sbt_cd_19` | Field | Indoor device type code (detail index 19) |
| `taknkiki_model_cd_19` | Field | Indoor device model code (detail index 19) |
| `pcrs_cd_19` | Field | Pricing course code (detail index 19) — set to "A33" (No. 2 course for number addition) |
| `svc_kei_no_20` | Field | Service contract number (notification detail index 20) |
| `svc_end_ymd` | Field | Service end date — composed YYYYMMDD string from year/month/day fields (for cancellation) |
| `svc_chrg_end_ymd` | Field | Service charge end date — composed YYYYMMDD string from separate fields |
| `pnltY_hassei_div` | Field | Penalty occurrence division — indicates whether a cancellation penalty applies |
| `pnltY_hassei_div_l` | Field | Penalty occurrence display — formatted penalty indicator for screen |
| `bmp_mskm_commision` | Field | Bampo application commission bean — commission data specific to bampo applications (phone change) |
| `bmp_mskm_commision_l` | Field | Bampo commission display value |
| `bmp_mskm_commision_amnt` | Field | Bampo commission specified amount |
| `unyo_ymd` | Field | Operational date — current date in YYYYMMDD format |
| `unyo_dtm` | Field | Operational timestamp — current date and time in YYYYMMDDHHMMSS format |
| `seiky_kei_no` | Field | Billing contract number — found from EKK0491B030DATA array |
| `oya_kei_skbt_cd` | Field | Parent contract classification code — set to "03" |
| `tuwa_dtl_kokai_yh` | Field | Call detail disclosure flag — set to "0" (No, per eo Hikari Denwa S-IF) |
| CD00003_HI | Constant | Disclosure = No |
| `itntoki_kibo_um` | Field | Transfer token desire presence/absence — set to "0" (No) |
| `haiso_div` | Field | Delivery division — set to "00" (Direct delivery per Delivery Receipt S-IF) |
| `hisos_ksitei_flg` | Field | Delivery destination separate designation flag — set to "0" (No separate designation) |
| `soko_cd` | Field | Warehouse code — set to empty (set by YPARA) |
| `shelf_cd` | Field | Shelf code — set to "000" |
| `ad_mi_fix_flg` | Field | Address undetermined flag — set to "0" (Address determined) |
| `shukka_taiki_flg` | Field | Shipment pending flag — set to "0" (Not pending) |
| `tchisho_temp_cd` | Field | Notice document attachment code — set to "0" |
| `ekk0561d010detailist` | Field | Notification object detail list — beans for notification document registration S-IF |
| `ekk0561d010detailist2` | Field | Notification content detail list — beans for notification document registration S-IF |
| `tchi_tg_bpin_tstaymd_20` | Field | Notification object application start date (detail index 20) |
| `tchi_tg_bpin_tendymd_20` | Field | Notification object application end date (detail index 20) — set to MAX_DATE |
| `order_sbt_cd` | Field | Order type code — set to "2" for order issuance condition registration |
| `svc_order_cd` | Field | Service order code — set to "Z1" |
| `yokyu_sbt_cd` | Field | Request type code — set to "02" |
| `odr_hakko_joken_cd` | Field | Order release condition code — set to "00" |
| `ekk0081a010data` | Field | Service contract consent meeting data — contains service contract status |
| `svc_kei_stat_21` | Field | Service contract status code from EKK0081A010DATA |
| JKKCommonConst.SVC_KEI_STAT_010 | Constant | Service contract status = 010 (Received) |
| JKKCommonConst.SVC_KEI_STAT_020 | Constant | Service contract status = 020 (Under review) |
| JKKCommonConst.SVC_KEI_STAT_030 | Constant | Service contract status = 030 (Concluded) |
| DOJI_KOJI_UM | Field | Simultaneous work presence/absence — "U" (ari/present) or "M" (nai/absent) |
| JKKCommonConst.UM_U | Constant | Simultaneous work = Yes (Ari) |
| JKKCommonConst.UM_M | Constant | Simultaneous work = No (Nai) |
| `bmp_input` | Field | Bampo input screen bean — contains data from the phone number input screen (KKW00148SF) |
| `loginuser_id` | Field | Login user ID — the authenticated user assigned to bampo work |
| `itnm_tsjgs_ktn_cd` | Field | Business site code — the bampo work site code from input screen |
| SRC_KKW00148_KEYS | Constant | Source key array for KKW00148SF screen bean fields |
| `dobaniten_req_ctrl_cd` | Field | Secondary business number inquiry request control code |
| `dobaniten_req_ctrl_cd_l` | Field | Secondary business number inquiry request control code display name |
| `dobaniten_jdg_cd` | Field | Secondary business number inquiry result code |
| `dobaniten_jdg_cd_l` | Field | Secondary business number inquiry result code display name |
| eo Hikari Denwa | Business term | Fiber-optic telephone service — NTT's premium internet + telephone service using fiber-to-the-home technology |
| S-IF | Acronym | Service Interface — the web service interface layer for screen processing |
| Bean | Technical term | X31SDataBeanAccess — a data structure used throughout the framework to carry field values between screens, logic, and data access layers |
| Pulldown | UI term | Dropdown list — a UI control showing a list of selectable values with human-readable labels |
| `ekk0341b002data` | Field | EKK0341B002 data array — contains device service contract records used to resolve service numbers by change number |
| `kiki_chg_no_07` | Field | Device change number (EKK0341 index 07) |
| `kktk_svc_kei_no_07` | Field | Device service contract number (EKK0341 index 07) |
