# Business Logic — FUW02601SFLogic.mskm() [25 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02601SF.FUW02601SFLogic` |
| Layer | Service Component / Business Logic (View layer, `eo.web.webview` package) |
| Module | `FUW02601SF` (Package: `eo.web.webview.FUW02601SF`) |

## 1. Role

### FUW02601SFLogic.mskm()

This method handles the **Mailing List Add Subscription confirm screen's submit button** action (Japanese: メーリングリスト追加申込画面の 申し込むボタン押下時の処理). When a current customer navigates to the mailing list add subscription page and clicks "Submit" (申し込む), this method orchestrates the entire subscription workflow: it first performs a common relation check to validate the customer's current contract state (using Usecase ID `FUSV0061`), then delegates the core subscription processing to `cfmMskmSyori()` which invokes a chain of service components to register the mailing list as an optional service on the customer's existing internet contract. After successful subscription processing, it refreshes the current customer contract cache (`refreshGenCustKei`), sends a completion notification email (`sendMskmFinMail` with mail ID `FUW026_1`), and configures the next screen to redirect to `FUW02603` (the mailing list add subscription completion screen). The method is an **entry-point business logic handler** for a specific screen action, following the standard screen-controller delegation pattern where each screen has its own Logic class with dedicated methods for button events. The design pattern used is **delegation** — this method delegates heavy lifting (SC calls, data mapping, error handling) to `cfmMskmSyori()` and various service components via the `FUSV0061_FUSV0061OPDBMapper`.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["mskm()"])
    CHECK["JFUCommonRelationCheck.checkCommonRelation
(this, FUSV0061)"]
    GETBEAN["getCommonInfoBean()
(X31SDataBeanAccess)"]
    CFM["cfmMskmSyori(CHEK_MSKM, bean)
CHEK_MSKM = \"mskm\""]
    REFRESH["JFUWebCommon.refreshGenCustKei(this)"]
    MAIL["JFUWebCommon.sendMskmFinMail(this, MSKM_COMP_MAIL_ID)
MSKM_COMP_MAIL_ID = \"FUW026_1\""]
    SETNEXT["sendMessageString(NEXT_SCREEN_NAME,
JFUScreenConst.SCREEN_NAME_FUW02603)"]
    SETID["sendMessageString(NEXT_SCREEN_ID,
JFUScreenConst.SCREEN_ID_FUW02603)"]
    RETURN["return true"]

    START --> CHECK
    CHECK --> GETBEAN
    GETBEAN --> CFM
    CFM --> REFRESH
    REFRESH --> MAIL
    MAIL --> SETNEXT
    SETNEXT --> SETID
    SETID --> RETURN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This is a parameterless method. All data is retrieved from instance state (`this`), shared form beans (`X31SDataBeanAccess`), and common info beans. |

**Instance fields / external state read:**

| Field | Source | Business Description |
|-------|--------|---------------------|
| `this` (X31BWebBusinessLogic context) | Current Logic instance | Carries screen state, form beans, session data; passed to `checkCommonRelation`, `refreshGenCustKei`, and `sendMskmFinMail` |
| `CommonInfoBean` (commoninfoBean) | `super.getCommonInfoBean()` | Shared form data bean containing current customer contract information (`GEN_CUST_KEI_INFO`) used by `cfmMskmSyori` |

## 4. CRUD Operations / Called Services

### Direct calls within `mskm()` (lines 321-345):

| # | CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|---|------|----------|---------|-------------|----------------------|
| 1 | C | `JFUCommonRelationCheck.checkCommonRelation` | - | - | Pre-flight common relation check for Usecase `FUSV0061`; validates customer eligibility before proceeding |
| 2 | C | `cfmMskmSyori` | - | - | Delegates core mailing list add subscription processing (see nested calls below) |
| 3 | U | `JFUWebCommon.refreshGenCustKei` | - | - | Refreshes the current customer contract cache after subscription changes |
| 4 | C | `JFUWebCommon.sendMskmFinMail` | - | - | Sends completion notification email with mail template ID `FUW026_1` |
| 5 | U | `X31SDataBeanAccess.sendMessageString` | - | - | Sets next screen redirect information (`SCREEN_NAME_FUW02603`, `SCREEN_ID_FUW02603`) |

### Nested calls within `cfmMskmSyori()` (called by `mskm` at L330):

| # | CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|---|------|----------|---------|-------------|----------------------|
| 6 | C | `mapper.setFUSV006101SC` | FUSV006101SC | EKK0011D020 | Subscription content approval registration — registers the subscription request in the order system |
| 7 | C | `mapper.setFUSV006102SC` | FUSV006102SC | EKK0361D010 | Optional service contract (ISP) registration — registers the optional service line item |
| 8 | R | `mapper.setFUSV006108SC` | FUSV006108SC | - | Optional service contract (ISP) inquiry — queries existing optional service contract details |
| 9 | U | `mapper.setFUSV006103SC` | FUSV006103SC | EKK0361C030 | Optional service contract (ISP) contract conclusion — finalizes the optional service contract |
| 10 | U | `mapper.setFUSV006104SC` | FUSV006104SC | EKK0361C040 | Optional service contract (ISP) start — initiates the optional service |
| 11 | C | `mapper.setFUSV006105SC` | FUSV006105SC | EZM0111D010 | Engineering target registration — registers the customer for engineering/installation |
| 12 | C | `mapper.setFUSV006106SC` | FUSV006106SC | EKK1091D010 | Advance registration — registers advance payments/fees |
| 13 | R | `mapper.setFUSV006107SC` | FUSV006107SC | EKK0021C060 | Subscription details inquiry and post-processing delegation — queries subscription details and delegates post-processing tasks |
| 14 | U | `mapper.setFUSV006101CC` | FUSV006101CC | - | Service IF result data transfer CC — transfers service interface result data |
| 15 | C | `mapper.setFUSV006102CC` | FUSV006102CC | - | Order issuance condition registration CC — registers conditions for order issuance |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen: FUW02601 (Mailing List Add Subscription - Submit) | `FUW026010PJP` page → `FUW02601SF` BL (BL ID in x31business_logic_FUW02601SF.xml) → `FUW02601SFLogic.mskm()` | `cfmMskmSyori` [C] EKK0011D020 (Subscription registration) |
| 2 | Screen: FUW02601 (Mailing List Add Subscription - Confirm) | `FUW026020PJP` page → `FUW02601SF` BL → `FUW02601SFLogic.mskm()` | `setFUSV006102SC` [C] EKK0361D010 (ISP service registration) |
| 3 | Same screen controller | `FUW02601SFLogic.mskm()` → `cfmMskmSyori` → mapper chain | `setFUSV006105SC` [C] EZM0111D010 (Engineering registration) |
| 4 | Same screen controller | `FUW02601SFLogic.mskm()` → `cfmMskmSyori` → mapper chain | `setFUSV006106SC` [C] EKK1091D010 (Advance registration) |
| 5 | Same screen controller | `FUW02601SFLogic.mskm()` → `JFUCommonRelationCheck.checkCommonRelation` | `FUSV0061` usecase relation check |
| 6 | Same screen controller | `FUW02601SFLogic.mskm()` → `JFUWebCommon.refreshGenCustKei` | Contract cache refresh |
| 7 | Same screen controller | `FUW02601SFLogic.mskm()` → `JFUWebCommon.sendMskmFinMail` | Completion email `FUW026_1` |

**Notes:**
- No direct caller was found referencing `mskm()` by method name in the codebase — this method is invoked via the **view-layer command routing framework** (`x31business_logic_FUW02601SF.xml`) which maps the `FUW02601SF` BL ID to the `FUW02601SFLogic` class and dispatches the `mskm` method based on the submitted command/button.
- Two screen pages reference this logic: `WEBGAMEN_FUW026010PJP.xml` (subscription screen) and `WEBGAMEN_FUW026020PJP.xml` (confirmation screen), both mapping to the same BL.

## 6. Per-Branch Detail Blocks

**Block 1** — [EXEC] `JFUCommonRelationCheck.checkCommonRelation` (L324)

> Pre-flight common relation check. Validates the customer's current contract state and eligibility before allowing the subscription to proceed. Uses Usecase ID `FUSV0061` to determine which validation rules to apply.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUCommonRelationCheck.checkCommonRelation(this, USECASE_ID_FUSV0061)` // Pre-flight common relation check. [-> USECASE_ID_FUSV0061 = "FUSV0061"] |

---

**Block 2** — [EXEC] `getCommonInfoBean` (L328)

> Retrieves the shared form data bean which contains current customer contract information needed for the subscription processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean()` // Get common form bean. |

---

**Block 3** — [CALL] `cfmMskmSyori` (L330)

> Delegates the core mailing list add subscription processing. This method performs all SC calls, data mapping, and error handling for registering the mailing list as an optional service on the customer's account. `CHEK_MSKM = "mskm"` indicates this is the submit (not confirm) path.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `cfmMskmSyori(CHEK_MSKM, commoninfoBean)` // Core subscription processing. [-> CHEK_MSKM = "mskm"] |

---

**Block 4** — [EXEC] `JFUWebCommon.refreshGenCustKei` (L333)

> Refreshes the current customer contract cache to reflect the newly registered mailing list subscription. Ensures subsequent screen operations see updated contract data.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.refreshGenCustKei(this)` // Refresh current customer contract. |

---

**Block 5** — [EXEC] `JFUWebCommon.sendMskmFinMail` (L336)

> Sends a completion notification email to the customer confirming their mailing list subscription. Uses mail template ID `FUW026_1`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.sendMskmFinMail(this, MSKM_COMP_MAIL_ID)` // Send completion email. [-> MSKM_COMP_MAIL_ID = "FUW026_1"] |

---

**Block 6** — [EXEC] `sendMessageString` — NEXT_SCREEN_NAME (L339)

> Sets the next screen name for redirect after successful subscription. The target screen is `FUW02603`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW02603)` // Set next screen name. [-> SCREEN_NAME_FUW02603] |

---

**Block 7** — [EXEC] `sendMessageString` — NEXT_SCREEN_ID (L342)

> Sets the next screen ID for redirect after successful subscription. The target screen ID is `FUW02603`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW02603)` // Set next screen ID. [-> SCREEN_ID_FUW02603] |

---

**Block 8** — [RETURN] `return true` (L344)

> Returns `true` indicating successful completion. The caller will redirect to the screen configured in Blocks 6 and 7.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // Normal completion. true = success, false = error (per javadoc). |

---

### Nested: `cfmMskmSyori()` (L467) — Called from Block 3

The `cfmMskmSyori` method is the heavy-lifting core processing delegated by `mskm()`. It handles data extraction, service component invocations, and error interpretation.

**Block 3.1** — [SET] Extract current customer contract data (L472-492)

> Extracts nested data from the shared form bean: `WEB_CHG_INFO` → `GEN_CUST_KEI_INFO` → `SVC_KEI_INFO` → `SEIKY_KEI_INFO`. Uses a triple-nested loop to drill down to the deepest billing contract level.

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccessArray webChgInfoBeanArray = commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO)` // Get web change info. |
| 2 | SET | `X31SDataBeanAccess webChgInfoBean = webChgInfoBeanArray.getDataBean(0)` // Get first web change entry. |
| 3 | SET | `genCustKeiInfoArray = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO)` // Get general customer contract info. |
| 4 | LOOP | `for (int i = 0; i < genCustKeiInfoArray.getCount(); i++)` // Iterate over general customer contracts. |
| 5 | SET | `genCustKeiInfoBean = genCustKeiInfoArray.getDataBean(i)` |
| 6 | LOOP | `for (int j = 0; j < svcKeiInfoArray.getCount(); j++)` // Iterate over service contracts. |
| 7 | SET | `svcKeiInfoBean = svcKeiInfoArray.getDataBean(j)` |
| 8 | LOOP | `for (int k = 0; k < seikyKeiInfoArray.getCount(); k++)` // Iterate over billing contracts. |
| 9 | SET | `seikyKeiInfoBean = seikyKeiInfoArray.getDataBean(k)` |

**Block 3.2** — [SET] Get service form bean (L496)

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccess bean = super.getServiceFormBean()` // Get service form bean. |

**Block 3.3** — [SET] Select displayed public settings name (L499-509)

> Matches the displayed public settings name (display name) selected on screen against the list of available settings, and sets the selected display name.

| # | Type | Code |
|---|------|------|
| 1 | SET | `choiceKokaiSetValue = bean.sendMessageString(FUW02601SFConst.CHOICE_KOKAI_SET_VALUE, X31CWebConst.DATABEAN_GET_VALUE)` // Get selected public setting value. |
| 2 | SET | `subBeanArray = bean.getDataBeanArray(FUW02601SFConst.KOKAI_SET_LIST)` // Get public settings list. |
| 3 | LOOP | `for (int i = 0; i < subBeanArray.getCount(); i++)` |
| 4 | SET | `kokaiSetMei = subBean.sendMessageString(FUW02601SFConst.KOKAI_SET_MEI_01, X31CWebConst.DATABEAN_GET_VALUE)` |
| 5 | SET | `kokaiSetValue = subBean.sendMessageString(FUW02601SFConst.KOKAI_SET_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE)` |
| 6 | IF | `kokaiSetValue.equals(choiceKokaiSetValue)` |
| 7 | SET | `bean.sendMessageString(FUW02601SFConst.CHOICE_KOKAI_SET_MEI, X31CWebConst.DATABEAN_SET_VALUE, kokaiSetMei)` |

**Block 3.4** — [SET] Create paramMap and generate Usecase map (L512-520)

> Creates the parameter map for service component calls and initializes the `FUSV0061_FUSV0061OPDBMapper`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = new HashMap<String, String>(16)` |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0061)` |
| 3 | SET | `mapper = new FUSV0061_FUSV0061OPDBMapper()` |
| 4 | SET | `paramBean = { bean, genCustKeiInfoBean, svcKeiInfoBean, seikyKeiInfoBean }` |

**Block 3.5** — [IF/ELSE] Determine function code (L524-530)

> Branches based on the `isTarget` parameter to determine whether this is a confirm (`cfm`) or submit (`mskm`) operation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `CHEK_CFM.equals(isTarget)` [CHEK_CFM = "cfm"] |
| 2 | SET | `functionCode = JPCModelConstant.FUNC_CD_2` |
| 3 | ELSE | |
| 4 | SET | `functionCode = JPCModelConstant.FUNC_CD_1` |

**Block 3.6** — [CALL] Service Component chain (L533-546)

> Sequentially invokes all service components for the mailing list add subscription workflow. This is the core business processing.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setFUSV006101SC(paramBean, dataMap, functionCode)` // [C] EKK0011D020 Subscription content approval registration |
| 2 | CALL | `mapper.setFUSV006102SC(paramBean, dataMap, functionCode)` // [C] EKK0361D010 Optional service contract (ISP) registration |
| 3 | CALL | `dataMap = mapper.setFUSV006108SC(paramBean, dataMap, functionCode)` // [R] Optional service contract (ISP) inquiry |
| 4 | CALL | `mapper.setFUSV006103SC(paramBean, dataMap, functionCode)` // [U] EKK0361C030 Optional service contract conclusion |
| 5 | CALL | `mapper.setFUSV006104SC(paramBean, dataMap, functionCode)` // [U] EKK0361C040 Optional service start |
| 6 | CALL | `mapper.setFUSV006105SC(paramBean, dataMap, functionCode)` // [C] EZM0111D010 Engineering target registration |
| 7 | CALL | `mapper.setFUSV006106SC(paramBean, dataMap, functionCode)` // [C] EKK1091D010 Advance registration |
| 8 | CALL | `mapper.setFUSV006107SC(paramBean, dataMap, functionCode)` // [R] EKK0021C060 Subscription details inquiry / post-processing |
| 9 | CALL | `mapper.setFUSV006101CC(paramBean, dataMap, this)` // [U] Service IF result data transfer |
| 10 | CALL | `mapper.setFUSV006102CC(paramBean, dataMap, functionCode)` // [C] Order issuance condition registration |

**Block 3.7** — [IF] Error interpretation (L393-452)

> Interprets the relation check results from the SC calls. Each branch handles a specific error scenario from `EKK0361D010` or `EZM0111D010` templates.

| # | Type | Code |
|---|------|------|
| 1 | IF | `RELATION_ERR.equals(status) && CHEK_CFM.equals(isTarget)` |
| 2 | IF | `EKK0361D010.equals(templateid) && RELATION_CHECK_ERR_EB.equals(errFlg) && MLLIST_NM.equals(itemid)` |
| 3 | THROW | `throw se;` // Business exception — engineering check |
| 4 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EA && MLLIST_NM` |
| 5 | THROW | `throw se;` // Business exception — NG word check |
| 5 | ELSE-IF | `EZM0111D010 && RELATION_CHECK_ERR_EA && AGING_TG_VALUE` |
| 6 | THROW | `throw se;` // Business exception — engineering check |
| 7 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EA && UPD_DTM_BF` |
| 8 | THROW | `throw new JCCBusinessException(ERROR_CODE_0204)` // System error — update impossible |
| 9 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EE && OP_SVC_CD` |
| 10 | THROW | `throw new JCCBusinessException(ERROR_CODE_0102)` // System error — contract state error |
| 11 | ELSE-IF | `RELATION_ERR.equals(status) && CHEK_MSKM.equals(isTarget)` |
| 12 | IF | `EKK0361D010 && RELATION_CHECK_ERR_EB && MLLIST_NM` |
| 13 | THROW | `throw new JCCBusinessException(ERROR_CODE_0101)` // System error — usage restriction error |
| 14 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EA && MLLIST_NM` |
| 15 | THROW | `throw new JCCBusinessException(ERROR_CODE_0101)` // System error — usage restriction error |
| 16 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EA && UPD_DTM_BF` |
| 17 | THROW | `throw new JCCBusinessException(ERROR_CODE_0204)` // System error — update impossible |
| 18 | ELSE-IF | `EKK0361D010 && RELATION_CHECK_ERR_EE && OP_SVC_CD` |
| 19 | THROW | `throw new JCCBusinessException(ERROR_CODE_0102)` // System error — contract state error |
| 20 | THROW | `throw new JCCBusinessException(ERROR_CODE_0002)` // Default: system error for unhandled cases |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mskm` | Constant | Mailing List (メール) — short abbreviation for "Mailing List" operations |
| `CHEK_MSKM` | Constant | Check mailing list mode = "mskm" — indicates the submit button path (as opposed to confirm) |
| `CHEK_CFM` | Constant | Check confirm mode = "cfm" — indicates the confirm button path |
| `MSKM_COMP_MAIL_ID` | Constant | Mailing List completion mail ID = "FUW026_1" — email template identifier for the completion notification |
| `USECASE_ID_FUSV0061` | Constant | Usecase ID = "FUSV0061" — identifies this business usecase for relation checks and logging |
| `FUSV0061` | Usecase | Mailing List Add Subscription usecase — the core business usecase for adding a mailing list to a customer's service |
| `FUNC_CD_1` | Constant | Function code 1 — used for submit/execution mode in SC calls |
| `FUNC_CD_2` | Constant | Function code 2 — used for confirm/validation mode in SC calls |
| `FUSV006101SC` | SC Code | Subscription content approval registration SC (EKK0011D020) |
| `FUSV006102SC` | SC Code | Optional service contract (ISP) registration SC (EKK0361D010) |
| `FUSV006108SC` | SC Code | Optional service contract (ISP) inquiry SC |
| `FUSV006103SC` | SC Code | Optional service contract (ISP) contract conclusion SC (EKK0361C030) |
| `FUSV006104SC` | SC Code | Optional service contract (ISP) start SC (EKK0361C040) |
| `FUSV006105SC` | SC Code | Engineering target registration SC (EZM0111D010) |
| `FUSV006106SC` | SC Code | Advance registration SC (EKK1091D010) |
| `FUSV006107SC` | SC Code | Subscription details inquiry and post-processing delegation SC (EKK0021C060) |
| `FUSV006101CC` | CC Code | Service IF result data transfer common component |
| `FUSV006102CC` | CC Code | Order issuance condition registration common component |
| `WEB_CHG_INFO` | Constant | Web change info — shared bean containing current customer change request data |
| `GEN_CUST_KEI_INFO` | Constant | General customer contract info — nested bean with customer's service contract details |
| `SVC_KEI_INFO` | Constant | Service contract info — nested bean with individual service line items |
| `SEIKY_KEI_INFO` | Constant | Billing contract info — nested bean with billing details |
| `RELATION_ERR` | Constant | Relation error status flag — indicates a relation check error was returned from SC |
| `RELATION_CHECK_ERR_EA` | Constant | Relation check error flag "A" — used for NG word checks and timing checks |
| `RELATION_CHECK_ERR_EB` | Constant | Relation check error flag "B" — used for engineering checks |
| `RELATION_CHECK_ERR_EE` | Constant | Relation check error flag "E" — used for optional service contract upper limit checks |
| `EKK0361D010` | Constant | Optional service contract (ISP) registration SC template ID |
| `EKK1091D010` | Constant | Advance registration SC template ID |
| `EKK0011D020` | Constant | Subscription content approval registration SC template ID |
| `EZM0111D010` | Constant | Engineering target registration SC template ID |
| `UPD_DTM_BF` | Constant | Update date/time before — field for timestamp concurrency check (timing conflict) |
| `OP_SVC_CD` | Constant | Optional service code — field for service contract state check |
| `MLLIST_NM` | Constant | Mailing list name — field for mailing list identification in error checks |
| `AGING_TG_VALUE` | Constant | Aging target value — field for engineering aging target check |
| `ERROR_CODE_0101` | Constant | System error code 0101 — usage restriction error (customer cannot subscribe due to plan/type restrictions) |
| `ERROR_CODE_0102` | Constant | System error code 0102 — contract state error (customer's contract status prevents changes) |
| `ERROR_CODE_0204` | Constant | System error code 0204 — update impossible error (data has been modified by another process since display) |
| `SCREEN_NAME_FUW02603` | Constant | Next screen name constant — FUW02603 (Mailing List Add Subscription completion screen) |
| `SCREEN_ID_FUW02603` | Constant | Next screen ID constant — FUW02603 |
| `DATABEAN_SET_VALUE` | Constant | DataBean set value flag for `sendMessageString` |
| `DATABEAN_GET_VALUE` | Constant | DataBean get value flag for `sendMessageString` |
| `NEXT_SCREEN_NAME` | Constant | Next screen name — key for redirect screen name in common info bean |
| `NEXT_SCREEN_ID` | Constant | Next screen ID — key for redirect screen ID in common info bean |
| K-Opticom | Business term | Japanese telecommunications provider (K-opticom) — the service provider for this system |
| FTTH | Business term | Fiber To The Home — the broadband internet service this platform manages |
| SOD | Business term | Service Order Data — telecom order fulfillment entity |
| SC | Technical | Service Component — a service-level component that handles specific business operations (e.g., registration, inquiry, conclusion) |
| CC | Technical | Common Component — reusable shared component for cross-cutting concerns (e.g., data transfer, order issuance conditions) |
| CBS | Technical | Common Business Service — shared service component for business operations |
| Mapper | Technical | `FUSV0061_FUSV0061OPDBMapper` — data mapping class that translates between DataBeans and SC parameters |
| ISP | Business term | Internet Service Provider — the internet service tier in the optional service contract |
| FUW02601 | Screen | Mailing List Add Subscription screen — the screen where customers submit a mailing list add request |
| FUW02603 | Screen | Mailing List Add Subscription completion screen — the target screen after successful subscription |
| X31SDataBeanAccess | Technical | Shared form data bean access class — provides access to screen form data |
| X31SDataBeanAccessArray | Technical | Shared form data bean array — provides access to nested bean collections |