# Business Logic — FUW02701SFLogic.init() [141 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02701SF.FUW02701SFLogic` |
| Layer | Controller (Web Logic — extends `JCCWebBusinessLogic`) |
| Module | `FUW02701SF` (Package: `eo.web.webview.FUW02701SF`) |

## 1. Role

### FUW02701SFLogic.init()

This method is the **initial processing entry point** for the **Web Contract Capacity Addition Application** (Web契約容量追加申込) screen (FUW027010PJP) in the K-Opticom customer management system. It serves as the bootstrapping logic that prepares all display data for the capacity addition screen, which allows existing customers to add bandwidth capacity to their existing fiber-to-the-home (FTTH) web contract.

The method implements a **screen initialization and data enrichment pattern**. It retrieves the customer's current service contract information from shared form beans (including SSO info, service contract info, option service contract info, and sub-option service contract info), validates the service data, and then invokes a series of service component (SC) calls through the `FUSV0076` service — specifically for displaying business parameter management (MY portal protocol), fee coding for sub-option services, price plan fixed unit pricing (option application fees), and additional charges. An initial fees display component class (CC) call follows to compute the initial cost summary.

The method's **role in the larger system** is as the screen entry point for the first of a three-screen flow: (1) FUW027010PJP — initial display screen where customers view available capacity and pricing; (2) FUW027020PJP — confirmation screen where they review the addition details; and (3) FUW027030PJP — completion screen. It validates that the customer has a positive remaining addable capacity (`webKeiCapa > 0`), throwing a "contract already exhausted" error (`ERROR_CODE_0103`) if no capacity remains. It also determines whether the customer is a new registration or a change (modifying existing capacity), sets mansion-specific flags, applies payment flags, and configures mapping for the price display area.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["init() Entry"])
    CHECK_OROSI["Device Uninstall Check"]
    GET_COMMON["Get Common Form Bean"]
    GET_COMMON_INFO["Get Customer Contract Info from Common Bean"]
    EXTRACT_BLOBS["Extract SSO, SVC, OP_SVC, SBOP_SVC beans"]
    CHECK_SVC_DATA["checkSvcData(resultMap)"]
    GET_SERVICE_BEAN["Get Service Form Bean"]
    CREATE_PARAM_BEAN["Create paramBean array [bean, ssoInfoBean, svcKeiInfoBean, opSvcKeiInfoBean, sbopSvcKeiInfoBean]"]
    CREATE_USECASE_MAP["Create paramMap with USECASE_ID_FUSV0076"]
    CREATE_MAPPER["Create FUSV0076 Mapper"]
    SET_01SC["setFUSV007601SC — Business Param Management
(MY Portal Protocol Retrieval)"]
    SET_02SC["setFUSV007602SC — Fee Coding / Sub-Option Services"]
    SET_03SC["setFUSV007603SC — Price Plan Fixed Unit Pricing Display"]
    SET_04SC["setFUSV007604SC — Additional Charges Display"]
    SET_01CC["setFUSV007601CC — Initial Fees Display CC"]
    CREATE_OUTPUT_MAP["Create outputMap"]
    TRY_BLOCK["try block"]
    INVOKE_SERVICE["invokeService(paramMap, dataMap, outputMap)"]
    EX_CATCH["catch JCCWebServiceException"]
    THROW_SYS_ERR["throw JCCBusinessException ERROR_CODE_0002"]
    GET_01SC["getFUSV007601SC — Map Business Params to Bean"]
    GET_02SC["getFUSV007602SC — Map Fee Coding to Bean"]
    GET_03SC["getFUSV007603SC — Map Price Plan to Bean"]
    GET_04SC["getFUSV007604SC — Map Additional Charges to Bean"]
    SET_NOW_WEB_ID["Set NOW_WEB_ID from opSvcKeiInfoBean"]
    SET_NOW_HP_URL["Set NOW_HP_URL = protocol + domain + account"]
    SET_NOW_CAPA["Set NOW_WEB_KEI_CAPA from opSvcKeiInfoBean"]
    CALC_ADD_CAPA["Calculate webKeiCapa = webMaxCapa - webCapa"]
    SET_ADD_PSB_CAPA["Set ADD_PSB_WEB_KEI_CAPA"]
    CHECK_CAPA_POSITIVE{"webKeiCapa <= 0?"}
    THROW_CONTRACT_ERR["throw JCCBusinessException ERROR_CODE_0103"]
    SET_NEW_ADD_DIV["Set NEW_ADD_DIV = !sbopSvcKeiInfoBean null"]
    CREATE_OPT_DATA["createOptioinData(bean, outputMap)"]
    MAP_PRCDATA["JFUWebCommon.setPrcInfoArea()"]
    SET_MANSION["Set MANSION_DIV via getMansionDiv()"]
    SET_PAY_FLG["Set PAY_FLG via getPayFlg()"]
    SET_NOW_DAY["JFUWebCommon.setPrcDspNowDay()"]
    SET_NEXT_SCREEN["Set NEXT_SCREEN_ID and NEXT_SCREEN_NAME"]
    SET_OPE_DATE["Get and set OPE_DATE"]
    RETURN_TRUE["Return true"]
    END_NODE(["End"])

    START --> CHECK_OROSI
    CHECK_OROSI --> GET_COMMON
    GET_COMMON --> GET_COMMON_INFO
    GET_COMMON_INFO --> EXTRACT_BLOBS
    EXTRACT_BLOBS --> CHECK_SVC_DATA
    CHECK_SVC_DATA --> GET_SERVICE_BEAN
    GET_SERVICE_BEAN --> CREATE_PARAM_BEAN
    CREATE_PARAM_BEAN --> CREATE_USECASE_MAP
    CREATE_USECASE_MAP --> CREATE_MAPPER
    CREATE_MAPPER --> SET_01SC
    SET_01SC --> SET_02SC
    SET_02SC --> SET_03SC
    SET_03SC --> SET_04SC
    SET_04SC --> SET_01CC
    SET_01CC --> CREATE_OUTPUT_MAP
    CREATE_OUTPUT_MAP --> TRY_BLOCK
    TRY_BLOCK --> INVOKE_SERVICE
    INVOKE_SERVICE --> EX_CATCH
    EX_CATCH --> THROW_SYS_ERR
    THROW_SYS_ERR --> RETURN_TRUE
    TRY_BLOCK --> GET_01SC
    GET_01SC --> GET_02SC
    GET_02SC --> GET_03SC
    GET_03SC --> GET_04SC
    GET_04SC --> SET_NOW_WEB_ID
    SET_NOW_WEB_ID --> SET_NOW_HP_URL
    SET_NOW_HP_URL --> SET_NOW_CAPA
    SET_NOW_CAPA --> CALC_ADD_CAPA
    CALC_ADD_CAPA --> SET_ADD_PSB_CAPA
    SET_ADD_PSB_CAPA --> CHECK_CAPA_POSITIVE
    CHECK_CAPA_POSITIVE -- true --> THROW_CONTRACT_ERR
    THROW_CONTRACT_ERR --> END_NODE
    CHECK_CAPA_POSITIVE -- false --> SET_NEW_ADD_DIV
    SET_NEW_ADD_DIV --> CREATE_OPT_DATA
    CREATE_OPT_DATA --> MAP_PRCDATA
    MAP_PRCDATA --> SET_MANSION
    SET_MANSION --> SET_PAY_FLG
    SET_PAY_FLG --> SET_NOW_DAY
    SET_NOW_DAY --> SET_NEXT_SCREEN
    SET_NEXT_SCREEN --> SET_OPE_DATE
    SET_OPE_DATE --> RETURN_TRUE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | `(none)` | - | This method takes no parameters. All required data is retrieved from the shared form beans (common info bean and service form bean) which are maintained by the framework across the screen flow. |

**Instance fields / external state read:**

| Source | Field / State | Business Description |
|--------|--------------|---------------------|
| `JFUWebCommon.checkOrosi(this)` | Device uninstall check (oroishi) | Checks whether the customer's terminal equipment has been uninstalled, per regulatory compliance for FTTH services |
| `super.getCommonInfoBean()` | Common Info Bean | Shared session-level bean containing customer contract data: SSO info, service contract info, option service contract info, sub-option service contract info |
| `super.getServiceFormBean()` | Service Form Bean | The display form bean for this screen (FUW02701SFBean) containing UI-ready data such as capacity, pricing, and flags |
| `invokeService(paramMap, dataMap, outputMap)` | Framework service invoker | Base class method that dispatches to the remote service FUSV0076 |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JFUWebCommon.checkOrosi` | JFUWebCommon | - | Checks device uninstall status (oroishi) for regulatory compliance |
| R | `getCommoninfoBeanInfo(commoninfoBean)` | - | - | Extracts customer contract info from shared common form bean |
| R | `FUSV0076_FUSV0076OPDBMapper.setFUSV007601SC` | FUSV007601SC | - | Business parameter management — retrieves MY portal protocol URL settings |
| R | `FUSV0076_FUSV0076OPDBMapper.setFUSV007602SC` | FUSV007602SC | - | Fee coding for sub-option service agreement display |
| R | `FUSV0076_FUSV0076OPDBMapper.setFUSV007603SC` | FUSV007603SC | - | Price plan fixed unit pricing (option application fees) display |
| R | `FUSV0076_FUSV0076OPDBMapper.setFUSV007604SC` | FUSV007604SC | - | Additional charges display |
| R | `FUSV0076_FUSV0076OPDBMapper.setFUSV007601CC` | FUSV007601CC | - | Initial fees display CC — computes initial cost summary data |
| C | `invokeService(paramMap, dataMap, outputMap)` | FUSV0076 | - | Invokes the service component to process all four SC calls in one transaction |
| R | `FUSV0076_FUSV0076OPDBMapper.getFUSV007601SC` | FUSV007601SC | - | Maps business parameters from output back to service form bean |
| R | `FUSV0076_FUSV0076OPDBMapper.getFUSV007602SC` | FUSV007602SC | - | Maps fee coding data from output back to service form bean |
| R | `FUSV0076_FUSV0076OPDBMapper.getFUSV007603SC` | FUSV007603SC | - | Maps price plan data from output back to service form bean |
| R | `FUSV0076_FUSV0076OPDBMapper.getFUSV007604SC` | FUSV007604SC | - | Maps additional charges data from output back to service form bean |
| - | `JFUWebCommon.setPrcInfoArea` | - | - | Configures the price display area mapping |
| - | `createOptioinData(bean, outputMap)` | - | - | Creates option selection data for the UI |
| - | `getMansionDiv(...)` | - | - | Determines if customer is in a mansion-type building (mansion division) |
| - | `getPayFlg(bean)` | - | - | Determines if the service addition incurs charges (payment flag) |
| R | `JFUWebCommon.setPrcDspNowDay` | JFUWebCommon | - | Sets current date display for price table |
| R | `JFUWebCommon.getScreenId` | JCCWebCommon | - | Retrieves current screen ID for navigation |
| - | `JFUWebCommon.setPrcDspNowDay` | JFUWebCommon | - | Sets current date display for price table |
| R | `JFUWebCommon.getOpeDate` | JFUWebCommon | - | Retrieves the operational date for record-keeping |
| - | `setFuOpedate(commoninfoBean, opeDate)` | - | - | Sets the operational date in the common info bean |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen: FUW027010PJP (Initial Display) | `WEBGAMEN_FUW027010PJP.xml` -> `<BL id="FUW02701SF">` -> `FUW02701SFLogic.init()` | `setFUSV007601SC [R]`, `setFUSV007602SC [R]`, `setFUSV007603SC [R]`, `setFUSV007604SC [R]`, `setFUSV007601CC [R]`, `invokeService [C] FUSV0076` |
| 2 | Screen: FUW027020PJP (Confirmation) | `WEBGAMEN_FUW027020PJP.xml` -> `<BL id="FUW02701SF">` -> `FUW02701SFLogic.init()` | Same as above (shared BL definition) |
| 3 | Screen: FUW027030PJP (Completion) | `WEBGAMEN_FUW027030PJP.xml` -> `<BL id="FUW02701SF">` -> `FUW02701SFLogic.init()` | Same as above (shared BL definition) |

**Notes:** The `FUW02701SF` business logic (BL) definition is shared across all three screens (initial display, confirmation, and completion) via the `<BL id="FUW02701SF">` element in each screen's XML definition. The framework routing dispatches to `FUW02701SFLogic.init()` as the initial screen processing. The `cfm()` method in the same class handles the confirmation button press path (which calls `FUSV0077` instead).

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] (L118) Device uninstall check

> Validates the device uninstall status (oroishi / 設備卸チェック) for regulatory compliance before proceeding with the capacity addition flow.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.checkOrosi(this);` // Device uninstall check |

**Block 2** — [SET] (L123-137) Retrieve shared form beans and extract customer contract info

> Obtains the shared common form bean which contains customer contract data, then extracts four distinct data bean sub-objects: SSO info, service contract info, option service contract info, and sub-option service contract info.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = super.getCommonInfoBean();` // Get common form bean |
| 2 | EXEC | `resultMap = getCommoninfoBeanInfo(commoninfoBean);` // Extract customer contract info |
| 3 | SET | `ssoInfoBean = (X31SDataBeanAccess) resultMap.get(CommonInfoCFConst.SSO_INFO);` // SSO info |
| 4 | SET | `svcKeiInfoBean = (X31SDataBeanAccess) resultMap.get(CommonInfoCFConst.SVC_KEI_INFO);` // Service contract info |
| 5 | SET | `opSvcKeiInfoBean = (X31SDataBeanAccess) resultMap.get(CommonInfoCFConst.OP_SVC_KEI_INFO);` // Option service contract info |
| 6 | SET | `sbopSvcKeiInfoBean = (X31SDataBeanAccess) resultMap.get(CommonInfoCFConst.SBOP_SVC_KEI_INFO);` // Sub-option service contract info |

**Block 3** — [EXEC] (L139) Validate service data

> Validates the extracted customer service data for integrity before proceeding.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `checkSvcData(resultMap);` // Validate service data |

**Block 4** — [SET] (L142-153) Prepare service form bean and service invocation parameters

> Retrieves the service form bean, creates a parameter bean array with all five data sources (service bean + 4 info beans), generates the usecase ID map, and creates the FUSV0076 mapper for SC/CC calls.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean = super.getServiceFormBean();` // Get service form bean |
| 2 | SET | `paramBean = { bean, ssoInfoBean, svcKeiInfoBean, opSvcKeiInfoBean, sbopSvcKeiInfoBean };` // Service form bean array |
| 3 | SET | `paramMap = new HashMap<String, String>(16);` // Create usecase ID map |
| 4 | EXEC | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0076);` // [-> "FUSV0076"] Use case ID for capacity addition initial display |
| 5 | SET | `mapper = new FUSV0076_FUSV0076OPDBMapper();` // Create mapper |
| 6 | SET | `dataMap = new HashMap<String, Object>();` // Create data map |

**Block 5** — [SET] (L156-172) Invoke SC (Service Component) calls and CC (Component Class) call

> Calls four SC methods to populate display data for: (1) business parameter management / MY portal protocol, (2) fee coding for sub-option services, (3) price plan fixed unit pricing, (4) additional charges. Then calls one CC method for initial fees display.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap = mapper.setFUSV007601SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);` // [-> FUNC_CD_1] Business parameter management — MY portal protocol retrieval |
| 2 | SET | `dataMap = mapper.setFUSV007602SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);` // Fee coding / sub-option services |
| 3 | SET | `dataMap = mapper.setFUSV007603SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);` // Price plan fixed unit pricing (option application fees) |
| 4 | SET | `dataMap = mapper.setFUSV007604SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);` // Additional charges |
| 5 | CALL | `mapper.setFUSV007601CC(paramBean, dataMap);` // Initial fees display CC |

**Block 6** — [SET] (L174-175) Create output map

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputMap = new HashMap<String, Object>();` // Create output map |

**Block 7** — [TRY-CATCH] (L176-186) Service invocation with error handling

> Invokes the service component `invokeService` in a try block. On `JCCWebServiceException`, re-throws as `JCCBusinessException` with error code `ERROR_CODE_0002` (system error / システムエラー).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `invokeService(paramMap, dataMap, outputMap);` // Invoke service |
| 2 | CATCH | `catch (JCCWebServiceException se)` // Service call exception |
| 3 | RETURN | `throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);` // [-> "0002"] System error |

**Block 8** — [SET] (L189-197) Map SC results back to service form bean

> Retrieves processed data from outputMap and populates the service form bean with four mapped result sets.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean = mapper.getFUSV007601SC(bean, outputMap);` // Map business params to bean |
| 2 | SET | `bean = mapper.getFUSV007602SC(bean, outputMap);` // Map fee coding to bean |
| 3 | SET | `bean = mapper.getFUSV007603SC(bean, outputMap);` // Map price plan to bean |
| 4 | SET | `bean = mapper.getFUSV007604SC(bean, outputMap);` // Map additional charges to bean |

**Block 9** — [SET] (L200-205) Set current display values (Web ID, Home Page URL, Contract Capacity)

> Configures three display values for the screen: the current Web ID, the current Home Page URL (built from protocol + domain + account), and the current Web contract capacity.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageString(NOW_WEB_ID, SET_VALUE, opSvcKeiInfoBean.sendMessageString(WEB_ID_28, GET_VALUE));` // Set current Web ID |
| 2 | EXEC | `bean.sendMessageString(NOW_HP_URL, SET_VALUE, protocol + domain + account);` // Set current Home Page URL |
| 3 | EXEC | `bean.sendMessageString(NOW_WEB_KEI_CAPA, SET_VALUE, opSvcKeiInfoBean.sendMessageString(CAPA_28, GET_VALUE));` // Set current Web contract capacity |

**Block 10** — [SET] (L207-212) Calculate addable capacity

> Computes the remaining capacity that can be added by subtracting current capacity from maximum addable capacity.

| # | Type | Code |
|---|------|------|
| 1 | SET | `webCapa = Long.valueOf(opSvcKeiInfoBean.sendMessageString(CAPA_28, GET_VALUE)).intValue();` // Current capacity |
| 2 | SET | `webMaxCapa = bean.sendMessageLong(ADD_CAPA_ZOUBUN_UPPL_VALUE, GET_VALUE).intValue();` // [-> "追加容量増分上限値"] Max addable capacity increment limit |
| 3 | SET | `webKeiCapa = webMaxCapa - webCapa;` // Remaining addable capacity |
| 4 | EXEC | `bean.sendMessageString(ADD_PSB_WEB_KEI_CAPA, SET_VALUE, String.valueOf(webKeiCapa));` // Set addable capacity |

**Block 11** — [IF] (L214-218) Capacity validation — `webKeiCapa <= 0` [ERROR_CODE_0103] (L215)

> Validates that the customer has remaining addable capacity. If capacity is zero or negative, throws a contract-exhausted error.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (webKeiCapa <= 0)` // Check if remaining capacity is non-positive |
| 2 | RETURN | `throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0103);` // [-> "0103"] Contract already exhausted error |

**Block 12** — [SET] (L221-225) Determine new registration division flag

> Determines whether the customer is a new registration (`newAddDiv = true`) or a change (modifying existing capacity). If `sbopSvcKeiInfoBean` (sub-option service contract info) is not null, it is a change and `newAddDiv` is set to `false`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `newAddDiv = Boolean.TRUE;` // Default: new registration |
| 2 | IF | `if (sbopSvcKeiInfoBean != null)` // Sub-option service contract info exists |
| 3 | SET | `newAddDiv = Boolean.FALSE;` // [-> false] Change (not new) registration |
| 4 | EXEC | `bean.sendMessageBoolean(NEW_ADD_DIV, SET_VALUE, newAddDiv);` // Set new registration division flag |

**Block 13** — [CALL] (L227) Create option data

> Generates option selection data for the UI based on the service processing results.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `createOptioinData(bean, outputMap);` // Create option data |

**Block 14** — [CALL] (L230) Map price data area

> Configures the price information area display with SC title, CC title, and screen ID.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.setPrcInfoArea(bean, outputMap, SC_TITLE_FUSV007604, CC_TITLE_FUSV007601, FUW02701);` // [-> "FUSV007604SC"] / [-> "FUSV007601CC"] / [-> "FUW02701"] Price area mapping |

**Block 15** — [CALL] (L233) Set mansion division flag

> Determines if the customer is in a mansion-type building by calling `getMansionDiv()`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageBoolean(MANSION_DIV, SET_VALUE, getMansionDiv(commoninfoBean, bean, outputMap));` // [-> "マンション区分"] Set mansion division flag |

**Block 16** — [CALL] (L236) Set payment flag

> Determines if charges apply for the capacity addition by calling `getPayFlg()`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageBoolean(PAY_FLG, SET_VALUE, getPayFlg(bean));` // [-> "有料フラグ"] Set payment flag |

**Block 17** — [CALL] (L238) Set current date display

> Sets the current date in the price table display.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.setPrcDspNowDay(this);` // Set price display current date |

**Block 18** — [SET] (L241-244) Set navigation destination screen ID and name

> Configures the next screen ID (retrieved from framework) and the screen name for the FUW02701 flow.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `commoninfoBean.sendMessageString(NEXT_SCREEN_ID, SET_VALUE, JFUWebCommon.getScreenId(this));` // Set next screen ID |
| 2 | EXEC | `commoninfoBean.sendMessageString(NEXT_SCREEN_NAME, SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW02701);` // [-> SCREEN_NAME_FUW02701] Set next screen name |

**Block 19** — [SET] (L247-248) Get and set operational date

> Retrieves the current operational date and stores it in the common info bean for record-keeping.

| # | Type | Code |
|---|------|------|
| 1 | SET | `opeDate = JFUWebCommon.getOpeDate(this, null);` // Get operational date |
| 2 | CALL | `setFuOpedate(commoninfoBean, opeDate);` // Set operational date in common info bean |

**Block 20** — [RETURN] (L250) Return true

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // Always returns true — indicates successful initialization |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `init()` | Method | Initial screen processing — bootstraps all display data for the capacity addition screen |
| `FUW02701SF` | Screen Module | Web Contract Capacity Addition Application module — allows FTTH customers to add bandwidth capacity to their existing contract |
| `FUSV0076` | Service ID | Service ID for Web Contract Capacity Addition Application (initial display) |
| `FUSV0077` | Service ID | Service ID for Web Contract Capacity Addition Application (application/confirmation) |
| `X31SDataBeanAccess` | Framework Type | Shared data bean access class used throughout the X31 framework for carrying form data between screens |
| `FUSV007601SC` | Service Component | Business parameter management — retrieves MY portal protocol settings |
| `FUSV007602SC` | Service Component | Fee coding for sub-option service agreement display |
| `FUSV007603SC` | Service Component | Price plan fixed unit pricing (option application fees) display |
| `FUSV007604SC` | Service Component | Additional charges display |
| `FUSV007601CC` | Component Class | Initial fees display component class — computes initial cost summary |
| `commoninfoBean` | Field | Common form bean — shared session bean containing customer contract and SSO information |
| `svcKeiInfoBean` | Field | Service contract info bean — current service subscription details |
| `opSvcKeiInfoBean` | Field | Option service contract info bean — optional add-on service contract data (e.g., ISP provider) |
| `sbopSvcKeiInfoBean` | Field | Sub-option service contract info bean — sub-option service contract data; null for new registrations, non-null for changes |
| `ssoInfoBean` | Field | SSO (Single Sign-On) info bean — SSO authentication/session data |
| `USECASE_ID_FUSV0076` | Constant | Service use case ID "FUSV0076" — identifies the capacity addition initial display use case |
| `USECASE_ID_FUSV0077` | Constant | Service use case ID "FUSV0077" — identifies the capacity addition application use case |
| `webCapa` | Variable | Current Web contract capacity in Mbps — the customer's existing subscribed bandwidth |
| `webMaxCapa` | Variable | Maximum addable capacity increment limit — the upper bound for additional capacity |
| `webKeiCapa` | Variable | Remaining addable Web contract capacity — `webMaxCapa - webCapa`; must be > 0 to proceed |
| `NEW_ADD_DIV` | Constant | "新規登録区分" (New Registration Division) — boolean flag: true for new registration, false for modification |
| `MANSION_DIV` | Constant | "マンション区分" (Mansion Division) — boolean flag indicating if customer is in a mansion-type building |
| `PAY_FLG` | Constant | "有料フラグ" (Payment Flag) — boolean flag indicating whether charges apply for the capacity addition |
| `ADD_PSB_WEB_KEI_CAPA` | Constant | "追加可能Web契約容量" (Addable Web Contract Capacity) — remaining capacity available for addition |
| `NOW_WEB_ID` | Constant | "現在のWeb ID" (Current Web ID) — the customer's current web account identifier |
| `NOW_HP_URL` | Constant | "現在のホームページURL" (Current Home Page URL) — the customer's current homepage URL |
| `NOW_WEB_KEI_CAPA` | Constant | "現在のWeb契約容量" (Current Web Contract Capacity) — current contracted bandwidth |
| `JCCBusinessException` | Exception | Business-level exception wrapper — wraps error codes like ERROR_CODE_0002 (system error) and ERROR_CODE_0103 (contract exhausted) |
| ERROR_CODE_0002 | Constant | System error — thrown when the underlying web service invocation fails |
| ERROR_CODE_0103 | Constant | Contract already exhausted error — thrown when `webKeiCapa <= 0`, no more capacity can be added |
| `JFUWebCommon.checkOrosi` | Utility | Device uninstall check — regulatory compliance check for FTTH terminal equipment |
| `invokeService` | Framework Method | Base class method that dispatches to the remote service component for processing |
| `opSvcKeiInfoBean` | Bean | Option service contract info — contains ISP provider details, web ID, URL, and capacity info |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service offered by K-Opticom |
| ISP | Business term | Internet Service Provider — the network access provider for the customer's FTTH connection |
| SC | Technical term | Service Component — the service layer that handles specific business logic operations |
| CC | Technical term | Component Class — a reusable component class that processes specific business data (e.g., fee computations) |
| MY Portal | Business term | MY homepage / MY portal — the customer's self-service web portal for managing their services |
| `FUNC_CD_1` | Constant | Function code 1 — used by SC methods for initial display queries |
| `FUNC_CD_2` | Constant | Function code 2 — used by SC methods for application/confirmation queries |
| `opeDate` | Variable | Operational date — the current business date used for record-keeping and audit trails |
| `JPCModelConstant.FUNC_CD_1` | Constant | Function code 1 constant — used to identify display-mode operations |
| `JFUStrConst.ERROR_CODE_0002` | Constant | System error error code string — wraps web service call failures |
| `JFUStrConst.ERROR_CODE_0103` | Constant | Contract exhausted error code string — thrown when remaining capacity is non-positive |
