# Business Logic — FUW02301SFLogic.cfm() [117 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02301SF.FUW02301SFLogic` |
| Layer | Controller / Web Business Logic (extends `JCCWebBusinessLogic`) |
| Module | `FUW02301SF` (Package: `eo.web.webview.FUW02301SF`) |

## 1. Role

### FUW02301SFLogic.cfm()

This method is the **confirmation screen handler** for the **Mail Address Change Application** (メールアドレス変更申込 — email address modification order) process at the point where the customer presses the "Confirm" button (確認ボタン押下) on the input screen. It orchestrates a comprehensive pre-processing pipeline that prepares all service contract operations, mapping data, and business rules for the upcoming BP (business process) invocation.

The method follows a **sequential dispatch/delegation pattern**: it retrieves shared customer contract data (SSO, service contract, optional service, sub-option service) from the common form bean, builds a structured parameter payload via the `FUSV0065_FUSV0065OPDBMapper` mapping class, and delegates 24 mapped operations (15 SC calls + 9 CC calls) that populate the `dataMap` with all service-level data needed by the backend B2B service. These 24 calls cover order content acceptance registration, optional service contract cancellations and confirmations, ISP information changes, engaging target lifecycle management, progress registration, detail inquiry/follow-up requests, consent conferences, and instruction document registration.

After all SC and CC processing completes, if sub-option service contract data is present, the method sets the sub-option service contract status to "Reservation" (予約). It then invokes the actual B2B web service (`FUSV0065`) via `invokeService()`, catching and translating any `JCCWebServiceException`. Upon completion, it sets the next screen ID and name to `FUW02302` (Mail Address Change Confirmation / メールアドレス変更申込確認), signaling the display of the confirmation page. This method is the **central orchestration entry point** for the FUW02301SF (Mail Address Change Application — Input) confirmation flow.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["cfm()"])
    START --> GET_COMMON["getCommonInfoBean() - Get shared form bean"]
    GET_COMMON --> GET_INFO["getCommoninfoBeanInfo() - Extract customer contract data"]
    GET_INFO --> EXTRACT["Extract SSO, Service, Operation, Sub-Option info from resultMap"]
    EXTRACT --> GET_SERVICE["getServiceFormBean() - Get service form bean"]
    GET_SERVICE --> DISP_INFO["getDispInfo() - Configure display settings"]
    DISP_INFO --> INIT_MAP["Initialize paramMap with USECASE_ID_FUSV0065"]
    INIT_MAP --> CREATE_MAPPER["Create FUSV0065_FUSV0065OPDBMapper"]
    CREATE_MAPPER --> CREATE_DATABEAN["Create paramBean array (5 beans)"]
    CREATE_DATABEAN --> SC1["setFUSV006501SC - Accept/Register order content"]
    SC1 --> SC2["setFUSV006502SC - Sub-option service contract cancellation"]
    SC2 --> SC11["setFUSV006511SC - Sub-option service contract cancellation confirmation"]
    SC11 --> SC12["setFUSV006512SC - Sub-option service contract cancel"]
    SC12 --> SC3["setFUSV006503SC - Operation service contract ISP info change"]
    SC3 --> SC4["setFUSV006504SC - Engaging target usage termination"]
    SC4 --> SC5["setFUSV006505SC - Engaging target usage termination"]
    SC5 --> SC6["setFUSV006506SC - Engaging target usage termination"]
    SC6 --> SC7["setFUSV006507SC - Engaging target registration"]
    SC7 --> SC8["setFUSV006508SC - Engaging target registration"]
    SC8 --> SC9["setFUSV006509SC - Progress registration"]
    SC9 --> SC10["setFUSV006510SC - Order detail inquiry / follow-up request"]
    SC10 --> SC13["setFUSV006513SC - Operation service contract consent conference"]
    SC13 --> SC14["setFUSV006514SC - Operation service contract ISP consent conference"]
    SC14 --> SC15["setFUSV006515SC - Instruction document registration"]
    SC15 --> CC1["setFUSV006501CC - Operation service contract ISP consent CC"]
    CC1 --> CC2["setFUSV006502CC - Service IF result data transfer"]
    CC2 --> CC3["setFUSV006503CC - Engaging list confirmation CC"]
    CC3 --> CC4["setFUSV006504CC - Engaging list confirmation CC"]
    CC4 --> CC5["setFUSV006505CC - Engaging list confirmation CC"]
    CC5 --> CC6["setFUSV006506CC - Mail address SOD mapping CC"]
    CC6 --> CC7["setFUSV006507CC - Service order issuance CC"]
    CC7 --> CC8["setFUSV006508CC - Non-charge determination CC"]
    CC8 --> CC9["setFUSV006509CC - Opt-in email reception setting registration CC"]
    CC9 --> CHECK_SBOP["Check if sub-option service info is non-null"]
    CHECK_SBOP -->|Yes - JFUStrConst.CD00136_B001 = B001 (Operation Service)| SET_SBOP["setSbopSvcKeiStatRsv1 - Set sub-option status to reservation"]
    CHECK_SBOP -->|No| SKIP_SBOP["Skip status update"]
    SET_SBOP --> CREATE_OUTPUT["Create outputMap"]
    SKIP_SBOP --> CREATE_OUTPUT
    CREATE_OUTPUT --> TRY_INVOKE["try: invokeService(paramMap, dataMap, outputMap)"]
    TRY_INVOKE --> CATCH["catch JCCWebServiceException: checkException()"]
    CATCH --> SET_NEXT_SCREEN["Set next screen: FUW02302 (Mail address change confirmation)"]
    SET_NEXT_SCREEN --> RETURN["return true"]
```

**CRITICAL — Constant Resolution:**

| Constant | Actual Value | Business Meaning |
|----------|-------------|-----------------|
| `USECASE_ID_FUSV0065` | `"FUSV0065"` | Use case ID for the Mail Address Change Application (submit) B2B service |
| `FUNC_CD_2` | `"2"` | Function code for registration / processing mode (vs. "1" for inquiry mode) |
| `CD00136_B001` | `"B001"` | Operation Service type code — identifies optional service contracts |
| `CD00137_D01` | `"D01"` | Sub-option service contract status — "Reservation" (予約) |
| `SCREEN_ID_FUW02302` | `"FUW02302"` | Next screen ID — Mail Address Change Application Confirmation |
| `SCREEN_NAME_FUW02302` | `メールアドレス変更申込確認` | Next screen name (Japanese) |
| `NEXT_SCREEN_ID` | `移行先画面ID` | Key for redirect screen ID (Japanese) |
| `NEXT_SCREEN_NAME` | `移行先画面名` | Key for redirect screen name (Japanese) |
| `SSO_INFO` | `SSO情報` | SSO (Single Sign-On) information key |
| `SVC_KEI_INFO` | `サービス契約情報` | Service contract information key |
| `OP_SVC_KEI_INFO` | `オプションサービス契約情報` | Optional service contract information key |
| `SBOP_SVC_KEI_INFO` | `サブオプションサービス契約情報` | Sub-option service contract information key |
| `TELEGRAM_INFO_USECASE_ID` | (key in X31CWebConst) | Telegram info use case ID map key |
| `CALL_METHOD_CFM` | `"cfm"` | Method name constant used for exception context |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no explicit parameters. All input data is read from instance-level form beans (shared form bean and service form bean) that are populated by the web framework from the HTTP request. |

**Instance fields / external state read by this method:**

| Source | Type | Business Description |
|--------|------|---------------------|
| `super.getCommonInfoBean()` | `X31SDataBeanAccess` | Shared form bean containing cross-screen customer data: SSO info, service contract info, optional service contract info, and sub-option service contract info. Populated from previous screen flow. |
| `super.getServiceFormBean()` | `X31SDataBeanAccess` | Service form bean (`FUW02301SFBean`) containing the customer's mail address change input data entered on the previous screen. |
| `this` (implicit) | `FUW02301SFLogic` | The logic class instance itself — passed to `JFUWebCommon.setSbopSvcKeiStatRsv1()` and used within `checkException()`. |

## 4. CRUD Operations / Called Services

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

The following table documents all method calls within `cfm()`. Each `mapper.setFUSV0065xxSC()` and `mapper.setFUSV0065xxCC()` call is classified by its CRUD role. The SC (Service Component) codes are derived from the class names of the B2B mappers that these SC methods invoke, as confirmed by the `FUSV0065_FUSV0065OPBPCheck` and `FUSV0065_FUSV0065OPOperation` files.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `mapper.setFUSV006501SC` | FUSV006501SC | KK_T_ODR_HAKKO_JOKEN (Order Registration Acceptance) | Accept and register order content — registers the mail address change order with acceptance status |
| C | `mapper.setFUSV006502SC` | FUSV006502SC | KK_T_SBOP_SVC_KEI (Sub-option Service Contract) | Sub-option service contract cancellation preparation — queues cancellation for sub-option services |
| C | `mapper.setFUSV006511SC` | FUSV006511SC | KK_T_SBOP_SVC_KEI (Sub-option Service Contract) | Sub-option service contract cancellation confirmation — confirms cancellation details with timestamp update |
| C | `mapper.setFUSV006512SC` | FUSV006512SC | KK_T_SBOP_SVC_KEI (Sub-option Service Contract) | Sub-option service contract cancel — finalizes the cancel operation on sub-option contracts |
| U | `mapper.setFUSV006503SC` | FUSV006503SC | KK_T_OP_SVC_KEI (Optional Service Contract), KK_T_OP_SVC_KEI_ISP (ISP Info) | Optional service contract ISP information update — changes ISP-related data for optional services |
| U | `mapper.setFUSV006504SC` | KK_T_ENGAGING_TARGET | EKK0361A010SC | Engaging target usage termination processing |
| U | `mapper.setFUSV006505SC` | FUSV006505SC | KK_T_ENGAGING_TARGET | Engaging target usage termination — updates engagement status |
| U | `mapper.setFUSV006506SC` | FUSV006506SC | KK_T_ENGAGING_TARGET, KK_T_EZM_AGING (Aging Table) | Engaging target usage termination — aging information update |
| C | `mapper.setFUSV006507SC` | FUSV006507SC | KK_T_ENGAGING_TARGET | Engaging target registration — registers new engaging targets |
| C | `mapper.setFUSV006508SC` | FUSV006508SC | KK_T_ENGAGING_TARGET | Engaging target registration — additional engaging target registration |
| C | `mapper.setFUSV006509SC` | FUSV006509SC | KK_T_KOJI_SINCHOKU (Progress Registration) | Progress registration — registers construction/installation progress data |
| R | `mapper.setFUSV006510SC` | FUSV006510SC | KK_T_ODR_DTL (Order Detail) | Order detail inquiry and follow-up task request — queries order details and registers follow-up tasks |
| R | `mapper.setFUSV006513SC` | FUSV006513SC | KK_T_OP_SVC_KEI (Optional Service Contract) | Optional service contract consent conference — retrieves consent conference data |
| R | `mapper.setFUSV006514SC` | FUSV006514SC | KK_T_OP_SVC_KEI_ISP (ISP Info) | Optional service contract ISP consent conference — retrieves ISP consent data |
| C | `mapper.setFUSV006515SC` | FUSV006515SC | KK_T_SHISHI_SHO (Instruction Document) | Instruction document registration — registers instruction documents |
| - | `mapper.setFUSV006501CC` | FUSV006501CC | - | Optional service contract ISP consent CC — cross-component processing for ISP consent |
| - | `mapper.setFUSV006502CC` | FUSV006502CC | - | Service IF result data transfer — transfers B2B service interface result data |
| - | `mapper.setFUSV006503CC` | FUSV006503CC | - | Engaging list confirmation CC (engaging value) — cross-component engaging list processing |
| - | `mapper.setFUSV006504CC` | FUSV006504CC | - | Engaging list confirmation CC (engaging value) — second engaging list processing |
| - | `mapper.setFUSV006505CC` | FUSV006505CC | - | Engaging list confirmation CC (engaging value) — third engaging list processing |
| - | `mapper.setFUSV006506CC` | FUSV006506CC | - | Mail address SOD mapping CC — maps mail address to Service Order Data |
| - | `mapper.setFUSV006507CC` | FUSV006507CC | KK_T_SOD (Service Order Data) | Service order issuance CC — issues service orders (SOD) |
| - | `mapper.setFUSV006508CC` | FUSV006508CC | - | Non-charge determination CC — determines if charges apply |
| C | `mapper.setFUSV006509CC` | FUSV006509CC | KK_T_OPTIN_MAIL (Opt-in Email) | Opt-in email reception setting registration CC — registers opt-in email preferences |
| - | `JFUWebCommon.setSbopSvcKeiStatRsv1` | JFUWebCommon | - | Sets sub-option service contract status to "Reservation" (CD00137_D01) |
| - | `JCCBatCommon.invokeService` | FUSV0065 | B2B Service | Invokes the FUSV0065 B2B web service for mail address change processing |
| - | `checkException` | FUW02301SFLogic | - | Exception handling — translates JCCWebServiceException to application exception |
| - | `commoninfoBean.sendMessageString` | X31SDataBeanAccess | - | Sets redirect destination screen ID and name for post-processing navigation |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUW02301SF (Confirmation Button) | `FUW02301SFLogic.execute()` -> `FUW02301SFLogic.cfm()` | 15 SC calls -> FUSV0065 BP service |
| 2 | Screen:FUW02301SF (Confirmation Button) | `FUW02301SFLogic.execute()` -> `FUW02301SFLogic.cfm()` -> `invokeService()` -> `FUSV0065Flow` -> `FUSV0065OPOperation` | 15 SC + 13 SC -> BP process |

**Notes on callers:**
- The `cfm()` method is exclusively invoked from `FUW02301SFLogic.execute()` (the main execute method at lines ~1000-1020), which is the standard entry point for the FUW02301SF screen logic. The `execute()` method delegates to `cfm()` when `CALL_METHOD_CFM` matches the call method identifier.
- The FUW02301SF screen is the "Mail Address Change Application (Submit) Screen" — customers enter their new mail address, and pressing the "Confirm" button triggers this `cfm()` method.
- After `cfm()` completes, the next screen is `FUW02302` (メールアドレス変更申込確認 — Mail Address Change Application Confirmation).

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Shared Form Bean Retrieval (L290)

> Retrieve the shared form bean and extract customer contract data from it.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = super.getCommonInfoBean()` // Get shared form bean |
| 2 | SET | `resultMap = getCommoninfoBeanInfo(commoninfoBean)` // Extract customer contract data |

**Block 2** — [SET] SSO and Contract Information Extraction (L292–296)

> Extract four types of contract information from the resultMap using CommonInfoCFConst keys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ssoInfoBean = (X31SDataBeanAccess)resultMap.get(CommonInfoCFConst.SSO_INFO)` // SSO information ["SSO情報"] [-> SSO_INFO="SSO情報"] (L292) |
| 2 | SET | `svcKeiInfoBean = (X31SDataBeanAccess)resultMap.get(CommonInfoCFConst.SVC_KEI_INFO)` // Service contract information ["サービス契約情報"] [-> SVC_KEI_INFO="サービス契約情報"] (L294) |
| 3 | SET | `opSvcKeiInfoBean = (X31SDataBeanAccess)resultMap.get(CommonInfoCFConst.OP_SVC_KEI_INFO)` // Optional service contract information ["オプションサービス契約情報"] [-> OP_SVC_KEI_INFO="オプションサービス契約情報"] (L296) |
| 4 | SET | `sbopSvcKeiInfoBean = (X31SDataBeanAccess)resultMap.get(CommonInfoCFConst.SBOP_SVC_KEI_INFO)` // Sub-option service contract information ["サブオプションサービス契約情報"] [-> SBOP_SVC_KEI_INFO="サブオプションサービス契約情報"] (L298) |

**Block 3** — [SET] Service Form Bean Retrieval and Display Configuration (L301–304)

> Retrieve the service-specific form bean and configure display settings.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean = super.getServiceFormBean()` // Get service form bean (L301) |
| 2 | EXEC | `getDispInfo(commoninfoBean, bean)` // Configure display settings (L304) |

**Block 4** — [SET] Parameter Map Initialization (L307–313)

> Prepare the use case parameter map and mapper objects for SC/CC processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = new HashMap<String, String>(16)` // Create use case parameter map (L307) |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0065)` // Set use case ID [-> USECASE_ID_FUSV0065="FUSV0065"] (L308) |
| 3 | SET | `mapper = new FUSV0065_FUSV0065OPDBMapper()` // Create mapping class instance (L310) |
| 4 | SET | `dataMap = new HashMap<String, Object>()` // Create data map for SC/CC results (L312) |
| 5 | SET | `paramBean = { bean, ssoInfoBean, svcKeiInfoBean, opSvcKeiInfoBean, sbopSvcKeiInfoBean }` // 5-bean array [-> paramBean[0]=serviceBean, paramBean[1]=ssoInfo, paramBean[2]=svcKeiInfo, paramBean[3]=opSvcKeiInfo, paramBean[4]=sbopSvcKeiInfo] (L314) |

**Block 5** — [CALL] SC Processing Phase (15 sequential calls) (L317–343)

> Execute 15 Service Component (SC) mapping calls in sequence. All pass `FUNC_CD_2 = "2"` (registration mode). These calls populate `dataMap` with data ready for B2B service invocation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataMap = mapper.setFUSV006501SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Accept and register order content [-> FUNC_CD_2="2"] (L317) |
| 2 | CALL | `dataMap = mapper.setFUSV006502SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract cancellation (L319) |
| 3 | CALL | `dataMap = mapper.setFUSV006511SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract cancellation confirmation (L321) |
| 4 | CALL | `dataMap = mapper.setFUSV006512SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract cancel (L323) |
| 5 | CALL | `dataMap = mapper.setFUSV006503SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Optional service contract ISP info change (L325) |
| 6 | CALL | `dataMap = mapper.setFUSV006504SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Engaging target usage termination (L327) |
| 7 | CALL | `dataMap = mapper.setFUSV006505SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Engaging target usage termination (L329) |
| 8 | CALL | `dataMap = mapper.setFUSV006506SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Engaging target usage termination (L331) |
| 9 | CALL | `dataMap = mapper.setFUSV006507SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Engaging target registration (L333) |
| 10 | CALL | `dataMap = mapper.setFUSV006508SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Engaging target registration (L335) |
| 11 | CALL | `dataMap = mapper.setFUSV006509SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Progress registration (L337) |
| 12 | CALL | `dataMap = mapper.setFUSV006510SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Order detail inquiry / follow-up task request (L339) |
| 13 | CALL | `dataMap = mapper.setFUSV006513SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Optional service contract consent conference (L341) |
| 14 | CALL | `dataMap = mapper.setFUSV006514SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Optional service contract ISP consent conference (L343) |
| 15 | CALL | `dataMap = mapper.setFUSV006515SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Instruction document registration (L345) |

**Block 6** — [CALL] CC Processing Phase (9 sequential calls) (L348–363)

> Execute 9 Cross-Component (CC) mapping calls. These handle mail address SOD mapping, engaging list confirmations, service order issuance, non-charge determination, and opt-in email settings.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataMap = mapper.setFUSV006501CC(paramBean, dataMap)` // Optional service contract ISP consent CC (L348) |
| 2 | CALL | `dataMap = mapper.setFUSV006502CC(paramBean, dataMap)` // Service IF result data transfer (L350) |
| 3 | CALL | `dataMap = mapper.setFUSV006503CC(paramBean, dataMap)` // Engaging list confirmation CC (L352) |
| 4 | CALL | `dataMap = mapper.setFUSV006504CC(paramBean, dataMap)` // Engaging list confirmation CC (L354) |
| 5 | CALL | `dataMap = mapper.setFUSV006505CC(paramBean, dataMap)` // Engaging list confirmation CC (L356) |
| 6 | CALL | `dataMap = mapper.setFUSV006506CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Mail address SOD mapping CC [-> FUNC_CD_2="2"] (L358) |
| 7 | CALL | `dataMap = mapper.setFUSV006507CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Service order issuance CC [-> FUNC_CD_2="2"] (L360) |
| 8 | CALL | `dataMap = mapper.setFUSV006508CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Non-charge determination CC [-> FUNC_CD_2="2"] (L362) |
| 9 | CALL | `dataMap = mapper.setFUSV006509CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1)` // Opt-in email reception setting registration CC [-> FUNC_CD_1 (different from FUNC_CD_2)] (L363) |

**Block 7** — [IF] Sub-Option Service Contract Status Update (L366–369)

> If sub-option service contract information is present (non-null), set its status to "Reservation" (CD00137_D01 = "D01"). This ensures the sub-option service contract is marked as pending reservation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JFUWebCommon.isNull(resultMap.get(CommonInfoCFConst.SBOP_SVC_KEI_INFO))` // Check if sub-option service info exists (L366) |

**Block 7.1** — [nested IF-THEN] Sub-Option Status Set (L367–368)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JFUWebCommon.setSbopSvcKeiStatRsv1(this, dataMap, JFUStrConst.CD00136_B001, JFUStrConst.CD00137_D01)` // Set sub-option status to reservation [-> CD00136_B001="B001" (Operation Service), CD00137_D01="D01" (Reservation)] |

**Block 8** — [SET] Output Map Creation (L372)

> Prepare the map for B2B service output data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputMap = new HashMap<Object, Object>()` // Create output map for invokeService results (L372) |

**Block 9** — [TRY-CATCH] B2B Service Invocation (L373–393)

> Invoke the FUSV0065 B2B web service that executes the actual mail address change business process. Wrapped in try-catch to handle web service exceptions.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `invokeService(paramMap, dataMap, outputMap)` // Invoke FUSV0065 B2B web service (L376) |

**Block 9.1** — [CATCH] Exception Handling (L380–382)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `checkException(se, CALL_METHOD_CFM)` // Translate JCCWebServiceException; CALL_METHOD_CFM="cfm" (L381) |

**Block 10** — [SET] Next Screen Configuration (L387–390)

> Set the redirect destination to the confirmation screen FUW02302.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW02302)` // Set next screen ID [-> NEXT_SCREEN_ID="移行先画面ID", SCREEN_ID_FUW02302="FUW02302"] (L387) |
| 2 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW02302)` // Set next screen name [-> NEXT_SCREEN_NAME="移行先画面名", SCREEN_NAME_FUW02302="メールアドレス変更申込確認"] (L389) |

**Block 11** — [RETURN] Method Completion (L392)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // Always returns true; navigation is controlled via sendMessageString (L392) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| メールアドレス変更申込 | Business term | Mail Address Change Application — customer request to change the registered email address for their K-Opticom account |
| 確認ボタン押下 | Japanese phrase | Confirmation button pressed — triggers the `cfm()` method when the customer confirms input data on the confirmation screen |
| FUW02301SF | Module | Confirmation screen module for mail address change application (submit) |
| FUW02302 | Screen ID | Confirmation screen — displays the processed mail address change summary to the customer |
| SSO | Acronym | Single Sign-On — authentication and session information for the customer |
| SOD | Acronym | Service Order Data — internal data structure representing service orders generated by the system |
| SVC_KEI | Field | Service contract information (サービス契約情報) — contains main service contract details |
| OP_SVC_KEI | Field | Optional service contract information (オプションサービス契約情報) — data for add-on optional services |
| SBOP_SVC_KEI | Field | Sub-option service contract information (サブオプションサービス契約情報) — data for sub-level optional services |
| SC | Abbreviation | Service Component — a Service Component class that handles service-level operations, typically invoking B2B services |
| CC | Abbreviation | Cross Component — a Cross Component class that handles internal cross-cutting processing such as data mapping and business rule validation |
| BP | Abbreviation | Business Process — the BPMN-based backend service layer that executes the actual business logic |
| FUSV0065 | Use Case ID | The B2B service use case ID for mail address change application processing |
| FUNC_CD_2 | Constant | Function code "2" — indicates registration/processing mode (as opposed to "1" for inquiry mode) |
| CD00136_B001 | Constant | Value "B001" — identifies the operation service type code |
| CD00137_D01 | Constant | Value "D01" — sub-option service contract status indicating "Reservation" (予約) |
| Engaging Target | Business term | Engaging target (エージン対象) — equipment or line items eligible for engaging (early upgrade) programs |
| ISP | Business term | Internet Service Provider — the ISP service component of optional service contracts |
| Opt-in Email | Business term | Opt-in email reception setting — customer's consent to receive promotional emails |
| Service Order (SOD) | Entity | Service Order Data — data record generated for service provisioning after confirmation |
| 予約 | Japanese phrase | Reservation — status indicating a sub-option service contract is pending |
| X31SDataBeanAccess | Class | Shared data bean access class used to access shared form bean information across screens |
| X31CWebConst | Constant class | Web constant definitions for X31 framework (e.g., DATABEAN_SET_VALUE, TELEGRAM_INFO_USECASE_ID) |
| JCCWebBusinessLogic | Base class | Base business logic class for JCC web modules, providing common functionality for web-based business logic |
| JCCBatCommon | Common component | Batch/web common component providing utility methods including `invokeService` for B2B service invocation |
| JFUWebCommon | Common component | Web common utility class providing methods like `setSbopSvcKeiStatRsv1` for setting sub-option service contract status |
| JFUStrConst | Constant class | String constant definitions used throughout the application (e.g., CD00136_B001, CD00137_D01) |
| JFUScreenConst | Constant class | Screen ID and screen name constant definitions (e.g., SCREEN_ID_FUW02302, SCREEN_NAME_FUW02302) |
| FUSV0065_FUSV0065OPDBMapper | Mapping class | Data mapping class that maps form data to B2B service parameters for the FUSV0065 use case |
| JCCWebServiceException | Exception class | Exception thrown when a B2B web service call fails, caught and translated by `checkException()` |
| KK_T_ODR_HAKKO_JOKEN | Database table | Order registration acceptance and conditions table |
| KK_T_SBOP_SVC_KEI | Database table | Sub-option service contract table |
| KK_T_OP_SVC_KEI | Database table | Optional service contract table |
| KK_T_OP_SVC_KEI_ISP | Database table | Optional service contract ISP information table |
| KK_T_ENGAGING_TARGET | Database table | Engaging target management table |
| KK_T_EZM_AGING | Database table | Aging (engagement eligibility) table |
| KK_T_SOD | Database table | Service Order Data table |
| KK_T_OPTIN_MAIL | Database table | Opt-in email reception settings table |
| KK_T_KOJI_SINCHOKU | Database table | Progress registration (construction/installation progress) table |
| KK_T_ODR_DTL | Database table | Order detail table |
| KK_T_SHISHI_SHO | Database table | Instruction document table |