# Business Logic — FUW02601SFLogic.back() [15 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02601SF.FUW02601SFLogic` |
| Layer | Service (Web Business Logic — part of the webview service layer, extends `JCCWebBusinessLogic`) |
| Module | `FUW02601SF` (Package: `eo.web.webview.FUW02601SF`) |

## 1. Role

### FUW02601SFLogic.back()

This method handles the **Back button** operation on the "Mailing List Addition Application Confirmation Screen" (メーリングリスト追加申込確認画面). Its business purpose is to manage navigation state when the user chooses to go back from the confirmation screen to the previous screen in the mailing list addition workflow. Rather than performing any data mutation or service registration, it is a pure **navigation preparation** method: it retrieves the shared common information data bean (which carries cross-screen navigation metadata), then sets two key navigation properties — the next screen name and the next screen ID — onto the common info bean so that the subsequent screen rendering knows which page to display.

The method follows the **delegation pattern**, where the `X31SDataBeanAccess` common info bean acts as a shared context carrier for screen-to-screen communication within the eo Customer Core System (eo顧客基幹システム). It delegates message passing to the bean's `sendMessageString` method, which stores the next-screen target data in a map-based message store. The method has no conditional branches — it always executes the same three-step sequence (fetch bean, set two screen navigation values, return true) and always returns `true` (normal completion), making it a safe, non-throwing navigation handler.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["back() Start"])
    GET_BEAN["Get CommonInfoBean via super.getCommonInfoBean()"]
    SET_NEXT_NAME["sendMessageString with NEXT_SCREEN_NAME and MAIL_LIST_ADD_CONFIRMATION_SCREEN_NAME"]
    SET_NEXT_ID["sendMessageString with NEXT_SCREEN_ID and FUW02601"]
    RETURN_TRUE["Return true"]
    END_NODE(["End: Normal completion"])

    START --> GET_BEAN
    GET_BEAN --> SET_NEXT_NAME
    SET_NEXT_NAME --> SET_NEXT_ID
    SET_NEXT_ID --> RETURN_TRUE
    RETURN_TRUE --> END_NODE
```

**Processing sequence:**

1. **Fetch Common Info Bean** — Calls `super.getCommonInfoBean()` to obtain the `X31SDataBeanAccess` instance (`commoninfoBean`) that holds shared navigation state across screens.
2. **Set Next Screen Name** — Calls `commoninfoBean.sendMessageString()` with `NEXT_SCREEN_NAME` key, `DATABEAN_SET_VALUE` as the value type constant, and `SCREEN_NAME_FUW02601` ("メーリングリスト追加申込" / Mailing List Addition Application) as the screen name value.
3. **Set Next Screen ID** — Calls `commoninfoBean.sendMessageString()` with `NEXT_SCREEN_ID` key, `DATABEAN_SET_VALUE` as the value type constant, and `SCREEN_ID_FUW02601` ("FUW02601") as the screen ID value.
4. **Return true** — Always returns `true` to indicate normal (successful) completion.

**Constant resolution:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|-----------------|
| `CommonInfoCFConst.NEXT_SCREEN_NAME` | "遷移先画面名" (Next Screen Name) | Key for storing the target screen's display name in the common info bean |
| `CommonInfoCFConst.NEXT_SCREEN_ID` | "遷移先画面ID" (Next Screen ID) | Key for storing the target screen's ID in the common info bean |
| `X31CWebConst.DATABEAN_SET_VALUE` | "DATABEAN_SET_VALUE" | Constant indicating the value type is a data bean set operation |
| `JFUScreenConst.SCREEN_NAME_FUW02601` | "メーリングリスト追加申込" | Screen name: Mailing List Addition Application |
| `JFUScreenConst.SCREEN_ID_FUW02601` | "FUW02601" | Screen ID for the mailing list addition application screen |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It operates entirely on shared state accessed through the superclass (`JCCWebBusinessLogic`). |
| - | `commoninfoBean` (local) | `X31SDataBeanAccess` | Shared common information data bean accessed via `super.getCommonInfoBean()`. Acts as a cross-screen context carrier that stores navigation metadata (such as next screen ID and screen name) used by the presentation layer to determine which page to render next. |

**External state used:**
- `JCCWebBusinessLogic.getCommonInfoBean()` — inherited method that returns the common info bean for the current web session.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `X31SDataBeanAccess.getCommonInfoBean` (inherited from `JCCWebBusinessLogic`) | `JCCWebBusinessLogic` | - | Reads/retrieves the shared common info data bean containing navigation context from the current web session |
| - | `X31SDataBeanAccess.sendMessageString` | `X31SDataBeanAccess` | - | Writes string message pairs (key-value) into the common info bean's internal message store. Called twice: once for next screen name, once for next screen ID. This is a local data store operation, not a database operation. |

**Note:** This method performs no direct database operations (no C/R/U/D on entity tables). All operations are in-memory message passing through the `X31SDataBeanAccess` bean. The method is purely a navigation state setter with no persistence side effects.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUW02601 (Confirmation Screen) | User presses Back button -> Screen Controller invokes `FUW02601SFLogic.back()` | `sendMessageString [W] In-memory message store (NEXT_SCREEN_NAME, NEXT_SCREEN_ID)` |

**Notes on callers:**
- The `back()` method is invoked by the **FUW02601SF screen** (メーリングリスト追加申込確認画面 / Mailing List Addition Application Confirmation Screen) when the user clicks the back button.
- No explicit Java-level callers were found in the codebase — the method is called dynamically by the web framework's screen controller dispatch mechanism, which routes button events to corresponding logic methods by naming convention.
- The `FUW02601SFChecker` class exists as the validation layer for this screen but does not directly call `back()` — it is invoked separately during the form validation phase.

## 6. Per-Branch Detail Blocks

This method has **no conditional branches** — it follows a single linear execution path.

**Block 1** — [SET] `(fetch common info bean)` (L360)

> Acquires the shared common information data bean from the parent business logic class. This bean carries navigation state across all screens in the mailing list addition workflow.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = super.getCommonInfoBean()` // Retrieves the X31SDataBeanAccess instance holding cross-screen navigation data |

**Block 2** — [EXEC] `(set next screen name)` (L362)

> Configures the target screen's display name for the navigation target. This tells the presentation layer what screen to render when the user navigates back.

| # | Type | Code |
|---|------|------|
| 1 | SET | Key: `CommonInfoCFConst.NEXT_SCREEN_NAME = "遷移先画面名"` (Next Screen Name) |
| 2 | SET | Value type: `X31CWebConst.DATABEAN_SET_VALUE = "DATABEAN_SET_VALUE"` |
| 3 | SET | Screen name value: `JFUScreenConst.SCREEN_NAME_FUW02601 = "メーリングリスト追加申込"` (Mailing List Addition Application) [-> CONSTANT: SCREEN_NAME_FUW02601 = "メーリングリスト追加申込"] |
| 4 | CALL | `commoninfoBean.sendMessageString(NEXT_SCREEN_NAME, DATABEAN_SET_VALUE, SCREEN_NAME_FUW02601)` // Stores the next screen's display name in the common info bean's message store |

**Block 3** — [EXEC] `(set next screen ID)` (L365)

> Configures the target screen's ID for the navigation target. This provides the machine-readable screen identifier used by the framework's routing mechanism.

| # | Type | Code |
|---|------|------|
| 1 | SET | Key: `CommonInfoCFConst.NEXT_SCREEN_ID = "遷移先画面ID"` (Next Screen ID) |
| 2 | SET | Value type: `X31CWebConst.DATABEAN_SET_VALUE = "DATABEAN_SET_VALUE"` |
| 3 | SET | Screen ID value: `JFUScreenConst.SCREEN_ID_FUW02601 = "FUW02601"` [-> CONSTANT: SCREEN_ID_FUW02601 = "FUW02601"] |
| 4 | CALL | `commoninfoBean.sendMessageString(NEXT_SCREEN_ID, DATABEAN_SET_VALUE, SCREEN_ID_FUW02601)` // Stores the next screen's ID in the common info bean's message store |

**Block 4** — [RETURN] `(return result)` (L367)

> Returns `true` to indicate the back navigation setup completed successfully.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // Processing result: true indicates normal (successful) completion |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `FUW02601SF` | Screen Module | Mailing List Addition Application — the screen module for handling customer requests to add their email address to the company's mailing list |
| `back()` | Method | Back button handler — returns user from the confirmation screen to the previous screen in the workflow |
| メーリングリスト追加申込確認画面 | Field | Mailing List Addition Application Confirmation Screen — the confirmation step where the user reviews their mailing list subscription details before final submission |
| X31SDataBeanAccess | Class | Web data bean access class — the framework class providing a message-passing mechanism for sharing data between screens within the eo Customer Core System |
| CommonInfoCFConst | Constant Class | Common Information Configuration Constants — holds keys for common cross-screen data fields such as next screen ID and next screen name |
| NEXT_SCREEN_NAME | Constant | "遷移先画面名" (Next Screen Name) — key used to store and retrieve the target screen's display name |
| NEXT_SCREEN_ID | Constant | "遷移先画面ID" (Next Screen ID) — key used to store and retrieve the target screen's technical identifier |
| DATABEAN_SET_VALUE | Constant | "DATABEAN_SET_VALUE" — value type constant indicating a data bean string value is being set in the message store |
| SCREEN_NAME_FUW02601 | Constant | "メーリングリスト追加申込" (Mailing List Addition Application) — human-readable screen name constant for screen FUW02601 |
| SCREEN_ID_FUW02601 | Constant | "FUW02601" — technical screen ID constant used by the framework for routing and dispatch |
| JCCWebBusinessLogic | Class | Base web business logic class — superclass providing common web business methods including `getCommonInfoBean()` |
| JFUScreenConst | Constant Class | Screen Constants — centralized screen ID and screen name constants shared across all web modules |
| true/false | Return values | Process result indicator — `true` means normal (successful) completion; `false` means error occurred |
| eo顧客基幹システム | System | eo Customer Core System — the core customer management platform operated by K-Opticom for managing customer services and contracts |
| JCC | Acronym | Java Common Component — the enterprise framework layer for web business logic components |
