# Business Logic — FUW02601SFLogic.cfm() [17 LOC]

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

## 1. Role

### FUW02601SFLogic.cfm()

This method handles the **confirmation button processing** for the mailing list addition application screen (`FUW02601SF`). When a customer fills out the mailing list addition form and clicks the confirm button, this method is invoked to perform all backend service registration work before displaying the confirmation screen (`FUW02602`).

The method performs a full service contract registration pipeline for optional services (ISP) and related entities, including: submitting content recognition, registering optional service contracts (ISP), executing contract binding and start procedures, registering engaging objects, recording progress, performing application detail checks with follow-up tasks, and transferring service IF result data. It also sets up the order issuance conditions. All of these are executed through the `FUSV0061` mapper which dispatches to the appropriate SC (Service Component) layer.

This method acts as the **primary entry point** for the confirm step in the mailing list addition workflow. It uses the **delegation pattern**, delegating all heavy processing to `cfmMskmSyori` (the "confirmation/mailing list processing" method), and then simply sets up the next screen destination (`FUW02602`) for navigation to the confirmation screen. After successful completion, it returns `true` to signal normal completion to the framework.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["cfm() Start"])
    GET_BEAN["Retrieve common info bean:
getCommonInfoBean()"]
    CALL_CFM_MSKM["Call cfmMskmSyori(CHEK_CFM, commoninfoBean)"]
    SUB_1["cfmMskmSyori processing:
- Extract customer/service info from beans
- Build service parameter map (USECASE_ID_FUSV0061)
- Determine functionCode (FUNC_CD_2 for confirm)
- Execute 10 service operations via FUSV0061 mapper:
  - FUSV006101: Submit content recognition registration
  - FUSV006102: Optional service contract registration (ISP)
  - FUSV006108: Optional service contract (ISP) check
  - FUSV006103: Optional service contract (ISP) binding
  - FUSV006104: Optional service contract (ISP) start
  - FUSV006105: Engaging object registration
  - FUSV006106: Progress registration
  - FUSV006107: Application detail check & follow-up
  - FUSV006101CC: Service IF result data transfer
  - FUSV006102CC: Order issuance condition registration
- Set service contract status
- invokeService(paramMap, dataMap, outputMap)
- Exception handling for JCCWebServiceException"]
    SET_NEXT_NAME["Set next screen name:
sendMessageString(NEXT_SCREEN_NAME, SCREEN_NAME_FUW02602)"]
    SET_NEXT_ID["Set next screen ID:
sendMessageString(NEXT_SCREEN_ID, SCREEN_ID_FUW02602)"]
    RETURN_TRUE["Return true (normal completion)"]
    END_END(["cfm() End"])

    START --> GET_BEAN
    GET_BEAN --> CALL_CFM_MSKM
    CALL_CFM_MSKM --> SUB_1
    SUB_1 --> SET_NEXT_NAME
    SET_NEXT_NAME --> SET_NEXT_ID
    SET_NEXT_ID --> RETURN_TRUE
    RETURN_TRUE --> END_END
```

**CRITICAL — Constant Resolution:**

| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `CHEK_CFM` | `"cfm"` | Confirmation button processing flag — distinguishes confirm flow from submit flow |
| `USECASE_ID_FUSV0061` | `"FUSV0061"` | Service ID for the service registration use case (mailing list addition) |
| `NEXT_SCREEN_NAME` | `"遷移先画面名"` (Navigation destination screen name) | Message key for setting the next screen display name |
| `NEXT_SCREEN_ID` | `"遷移先画面ID"` (Navigation destination screen ID) | Message key for setting the next screen ID |
| `SCREEN_NAME_FUW02602` | `" mailing list addition application confirmation"` | Destination screen name — the confirmation screen |
| `SCREEN_ID_FUW02602` | `"FUW02602"` | Destination screen ID — the confirmation screen identifier |
| `DATABEAN_SET_VALUE` | `"databean_set_value"` | Data bean set operation constant |
| `FUNC_CD_2` | (from `JPCModelConstant`) | Function code for confirmation processing (vs. FUNC_CD_1 for submit) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. All data is obtained from shared form beans and the data bean access layer. |

**Instance fields / external state accessed:**

| Source | Type | Business Description |
|--------|------|---------------------|
| `super.getCommonInfoBean()` | `X31SDataBeanAccess` | Shared common form bean containing customer, service, and contract data retrieved from the session/context |
| `super.getServiceFormBean()` | `X31SDataBeanAccess` | Service form bean accessed within `cfmMskmSyori` — contains the current service form data including mailing list selection |
| `this` (the current instance) | `FUW02601SFLogic` | Passed to `setFUSV006101CC` for service IF result data transfer — allows setting business logic context on the data bean |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `FUW02601SFLogic.cfmMskmSyori` | FUW02601SFLogic | - | Delegates to the confirmation/mailing list processing method that executes a full service registration pipeline |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006101SC` | FUSV006101SC | (Submit content recognition) | Submit content recognition registration — registers the submitted application content |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006102SC` | FUSV006102SC | (Optional service contract <ISP>) | Optional service contract (ISP) registration — registers the ISP service contract for the customer |
| R | `FUSV0061_FUSV0061OPDBMapper.setFUSV006108SC` | FUSV006108SC | (Optional service contract <ISP>) | Optional service contract (ISP) check — performs a pre-check/verification on the ISP contract |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006103SC` | FUSV006103SC | (Optional service contract <ISP>) | Optional service contract (ISP) binding — binds the ISP contract to the service order |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006104SC` | FUSV006104SC | (Optional service contract <ISP>) | Optional service contract (ISP) start — activates the ISP service contract to begin the service |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006105SC` | FUSV006105SC | (Engaging object) | Engaging object registration — registers the engaging object for the service |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006106SC` | FUSV006106SC | (Progress) | Progress registration — records the service order progress |
| R | `FUSV0061_FUSV0061OPDBMapper.setFUSV006107SC` | FUSV006107SC | (Application detail) | Application detail check and follow-up task assignment — verifies application details and may assign follow-up work |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006101CC` | FUSV006101CC | (Service IF result) | Service IF result data transfer — transfers the result data from the service interface |
| C | `FUSV0061_FUSV0061OPDBMapper.setFUSV006102CC` | FUSV006102CC | (Order issuance condition) | Order issuance condition registration — registers the conditions for order issuance |
| - | `OneStopDataBeanAccess.sendMessageString` | OneStopDataBeanAccess | - | Sets next screen navigation metadata (screen name and screen ID) into the shared form bean |

## 5. Dependency Trace

The `cfm()` method is a screen-driven entry point called from the web framework when the user presses the confirm button on the mailing list addition application screen (FUW02601). No explicit caller class references this method by name — the framework dispatches to it based on the action/button name mapped to the logic class.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen: FUW02601 (Confirm button) | Confirm button press -> FUW02601SFLogic.cfm() -> cfmMskmSyori() -> invokeService() | FUSV006101SC [C] Submit content recognition; FUSV006102SC [C] Optional service contract; FUSV006108SC [R] ISP check; FUSV006103SC [C] Contract binding; FUSV006104SC [C] Contract start; FUSV006105SC [C] Engaging object; FUSV006106SC [C] Progress; FUSV006107SC [R] Application detail; FUSV006101CC [C] Service IF transfer; FUSV006102CC [C] Order issuance condition |

**Result:** After successful confirm processing, the user is navigated to screen **FUW02602** (Mailing list addition application confirmation screen).

## 6. Per-Branch Detail Blocks

**Block 1** — [CALL] `(CHEK_CFM)` (L303)

> Retrieve the shared common form bean and delegate to the confirmation/mailing list processing method.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = super.getCommonInfoBean()` // Retrieve shared common form bean (common info data bean access) [-> CHEK_CFM="cfm"] |
| 2 | CALL | `cfmMskmSyori(CHEK_CFM, commoninfoBean)` // Execute confirmation/mailing list processing with confirm mode flag [-> CHEK_CFM="cfm"] |

**Block 2** — [SET] `(Next screen name configuration)` (L308)

> Set the next screen destination name for navigation after confirm processing. This tells the framework which screen to display next.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW02602)` // Set next screen display name to "Mailing list addition application confirmation" [-> NEXT_SCREEN_NAME="遷移先画面名"]; [-> SCREEN_NAME_FUW02602=" mailing list addition application confirmation"] |

**Block 3** — [SET] `(Next screen ID configuration)` (L311)

> Set the next screen destination ID for navigation. This is the screen identifier used by the framework for routing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW02602)` // Set next screen ID to "FUW02602" [-> NEXT_SCREEN_ID="遷移先画面ID"]; [-> SCREEN_ID_FUW02602="FUW02602"] |

**Block 4** — [RETURN] `(Normal completion)` (L313)

> Return `true` to signal successful completion to the framework dispatcher.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // Process completed successfully — navigate to FUW02602 confirmation screen |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `cfm()` | Method | Confirmation button processing — invoked when the user confirms mailing list addition details |
| `cfmMskmSyori()` | Method | Confirmation and mailing list processing — core business logic method that executes the full service registration pipeline |
| `CHEK_CFM` | Constant | `"cfm"` — Flag indicating confirm mode (as opposed to submit mode `CHEK_MSKM="mskm"`) |
| `CHEK_MSKM` | Constant | `"mskm"` — Flag indicating mailing list submit mode |
| `USECASE_ID_FUSV0060` | Constant | `"FUSV0060"` — Service ID for the service definition use case (pricing/pricing list reference) |
| `USECASE_ID_FUSV0061` | Constant | `"FUSV0061"` — Service ID for the service registration use case (mailing list addition registration) |
| `X31SDataBeanAccess` | Class | Shared data bean access — provides access to the common form data bean containing customer/service/contract information |
| `FUSV0061_FUSV0061OPDBMapper` | Class | Service mapper for the FUSV0061 use case — orchestrates calls to SC (Service Component) methods for service registration |
| `FUSV006101SC` | SC | Submit content recognition registration — registers the submitted application content |
| `FUSV006102SC` | SC | Optional service contract registration (ISP) — registers the ISP (Internet Service Provider) optional service contract |
| `FUSV006108SC` | SC | Optional service contract (ISP) check — pre-checks the ISP contract before binding |
| `FUSV006103SC` | SC | Optional service contract (ISP) binding — binds the ISP contract to the service order |
| `FUSV006104SC` | SC | Optional service contract (ISP) start — activates the ISP service contract |
| `FUSV006105SC` | SC | Engaging object registration — registers the engaging object for the service |
| `FUSV006106SC` | SC | Progress registration — records service order progress |
| `FUSV006107SC` | SC | Application detail check and follow-up task — verifies application details and assigns follow-up tasks |
| `FUSV006101CC` | CC | Service IF result data transfer — transfers result data from the service interface |
| `FUSV006102CC` | CC | Order issuance condition registration — registers order issuance conditions |
| `FUNC_CD_2` | Constant | Function code for confirm processing (vs. `FUNC_CD_1` for submit processing) |
| `JCCWebServiceException` | Exception | Web service exception — thrown when the invoked service layer encounters an error |
| `invokeService()` | Method | Invokes the backend service with the prepared parameter and data maps |
| `FUW02601SF` | Screen | Mailing list addition application screen — where users add mailing list addresses |
| `FUW02602` | Screen | Mailing list addition application confirmation screen — shows the confirmed details before final submission |
| `JCCWebBusinessLogic` | Class | Base web business logic class — provides common functionality for web-based business logic classes |
| `JFUScreenConst` | Class | Screen constant definitions — contains screen ID and name constants |
| `SCREEN_NAME_FUW02602` | Constant | `"Mailing list addition application confirmation"` — display name for the confirmation screen |
| `SCREEN_ID_FUW02602` | Constant | `"FUW02602"` — screen ID for the confirmation screen |
| `COMMON_INFO_CF` | Constant | Common Info Common Form — shared form bean namespace for customer/service/contract data |
| `WEB_CHG_INFO` | Constant | Web change information — customer information changed via web |
| `GEN_CUST_KEI_INFO` | Constant | General customer category information — high-level customer grouping data |
| `SVC_KEI_INFO` | Constant | Service category information — service contract details |
| `SEIKY_KEI_INFO` | Constant | Settlement category information — billing/settlement details |
| `CHOICE_KOKAI_SET_VALUE` | Constant | Chosen public setting value — the user's selected public display setting |
| `KOKAI_SET_LIST` | Constant | Public setting list — list of available public display settings |
| `KOKAI_SET_MEI_01` | Constant | Public setting name 01 — display name for a public setting option |
| `KOKAI_SET_VALUE_01` | Constant | Public setting value 01 — value for a public setting option |
| `CHOICE_KOKAI_SET_MEI` | Constant | Chosen public setting name — the name of the user's selected public setting |
| `MLLIST_NM` | Constant | `"mllist_nm"` — Mailing list name error item identifier |
| `EKK0361D010` | Constant | Error template code for Optional service contract <ISP> registration |
| `EZM0111D010` | Constant | Error template code for Engaging object registration |
| `CC_TITLE_FUSV006001` | Constant | `"FUSV006001CC"` — Initial cost list reference CC (Call Component) |
| `SC_TITLE_FUSV006002` | Constant | `"FUSV006002SC"` — Pricing list reference SC (Service Component) |
| `EKK0721A010CBSMSG1LIST` | Constant | `"EKK0721A010CBSMsg1List"` — CBS response message list for cost inquiry |
| `PRC_GRP_CD_23` | Constant | Price group code 23 — identifies the pricing type (e.g., "04" = eo light net mansion type) |
| `KANYU_KEI_PAY_HOSHIKI_CD_23` | Constant | Subscription contract payment method code 23 — identifies payment method (e.g., "003" = all-at-once) |
| `MRYO_OP_SVC_CNT` | Constant | Number of free optional services — count of free service allowances |
| `NOW_MLLIST_STKU_CNT` | Constant | Current mailing list acquisition count — how many mailing list entries have been acquired |
| `NOW_MLLIST_STKU_ZAN_CNT` | Constant | Current mailing list acquisition remaining count — how many more entries can be acquired |
| `MLLIST_STKU_PSB_CNT` | Constant | Mailing list acquisition possible count — total count of mailing list entries that can be acquired |
| `PPLAN_KOTEI_AMNT` | Constant | Fixed plan unit price — the fixed price for optional service charges |
| `CD00133_04` | Constant | `"04"` — Price group code for "eo light net mansion type" |
| `CD01216_003` | Constant | `"003"` — Subscription contract payment method code for "all-at-once" payment |
| `RELATION_ERR` | Constant | `JPCModelConstant.RELATION_ERR` — Relation error status code from model layer |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service (K-Opticom's core service) |
| ISP | Business term | Internet Service Provider — the broadband internet connectivity service layer |
| EMS/Engaging | Business term | Engaging object — the customer's equipment/terminal that is engaged with the service |
| SC | Acronym | Service Component — a backend service layer component that handles specific business operations |
| CC | Acronym | Call Component — a component that coordinates between SCs and handles cross-cutting concerns |
| CBS | Acronym | Central Business System — the core backend system for business processing |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity |
| IF | Acronym | Interface — the service interface layer for communication between tiers |
| USECASE | Acronym | Use Case — the service definition identifier for a business use case (e.g., FUSV0060, FUSV0061) |
