# Business Logic — KKW00804SFLogic.actionFixMyHPInfo() [26 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00804SF.KKW00804SFLogic` |
| Layer | Web Logic (Controller/Service tier) |
| Module | `KKW00804SF` (Package: `eo.web.webview.KKW00804SF`) |

## 1. Role

### KKW00804SFLogic.actionFixMyHPInfo()

This method implements the **Confirm Button processing for My Home Page (My HP) Information update** — a critical step in the customer self-service portal where a user submits their updated My HP profile settings for final registration confirmation. The method follows a **sequential delegation pattern**, first invoking a comprehensive registration confirmation service (`executeAddCfmSvc`) that orchestrates a multi-step service contract validation pipeline across numerous Service Components (SCs), then setting a confirmation success message and redirecting the user to the completion screen (`KKW00806`). It acts as a **shared entry point** invoked by the parent screen logic `KKA14201SFLogic` when the user confirms their My HP information changes (specifically when `FUNC_CODE_1` is active), and also as an independent screen logic in `KKW02504SFLogic` for direct My HP edit confirmation flows. The method is part of the **telecom customer account management domain**, where "My HP" refers to the customer's personalized home page containing their service subscriptions and preferences.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["actionFixMyHPInfo() Start"])
    STEP1["Get ServiceFormBean (X31SDataBeanAccess)"]
    STEP2["Wrap bean into X31SDataBeanAccess[] paramBean"]
    STEP3["Call executeAddCfmSvc(paramBean, FUNC_CD_1)"]
    STEP4["Set confirmation message: My HP information registration"]
    STEP5["Set next screen to KKW00806 (completion)"]
    STEP6["Dump DataBean to debug log"]
    STEP7["Return true"]
    END_NODE(["End"])

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> STEP3
    STEP3 --> STEP4
    STEP4 --> STEP5
    STEP5 --> STEP6
    STEP6 --> STEP7
    STEP7 --> END_NODE
```

**Processing Summary:**
1. Retrieve the service form DataBean from the super-class context.
2. Wrap the single DataBean into an array for the service call interface.
3. Delegate to `executeAddCfmSvc()` with `FUNC_CD_1` to perform the full registration confirmation service (which internally calls 17+ Service Components covering service contract, option services, sub-option services, email target registration, progress information, and application detail approval workflows).
4. Set an info-level confirmation message ("My Home Page information registration") using `JCCWebCommon.setMessageInfo()`.
5. Configure navigation to the completion screen (`KKW00806`) by setting the next screen ID and screen name on the common info bean.
6. Dump the DataBean state to the debug log for traceability.
7. Return `true` to indicate successful processing.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It derives all its data from the session-scoped DataBean accessed via `super.getServiceFormBean()` and `super.getCommonInfoBean()`. |

**Instance fields / external state read:**

| # | Source | Business Description |
|---|--------|---------------------|
| 1 | `super.getServiceFormBean()` | Retrieves the `X31SDataBeanAccess` containing the My HP information data being registered/confirmed. This DataBean carries all user-entered fields for the home page profile (capabilities, access restrictions, service subscriptions, etc.). |
| 2 | `super.getCommonInfoBean()` | Retrieves the common info DataBean used to set navigation targets (next screen ID and screen name for the completion page). |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `JKKAddSupportCC.setMessageInfo` | JKKAddSupportCC | - | Sets confirmation support message |
| C | `JKKCreateNhkDntIktCC.setMessageInfo` | JKKCreateNhkDntIktCC | - | Sets NHK non-reception notice message |
| C | `JKKFumeiKktkSvcKeiUpdCC.setMessageInfo` | JKKFumeiKktkSvcKeiUpdCC | - | Sets disapproved service period update message |
| C | `JKKGetKikiUpdCodeNameCC.setMessageInfo` | JKKGetKikiUpdCodeNameCC | - | Sets equipment update code name message |
| C | `JKKGetKojiAkTaknkikiCC.setMessageInfo` | JKKGetKojiAkTaknkikiCC | - | Sets completed/accepted equipment message |
| C | `OneStopDataBeanAccess.sendMessageString` | OneStopDataBeanAccess | - | Sets navigation message string for next screen |
| C | `KKW00804SFLogic.executeAddCfmSvc` | KKW00804SFLogic | - | Delegates to registration confirmation service |

### Deep dive — `executeAddCfmSvc` called SCs (via `KKSV0006_KKSV0006OPDBMapper`):

The `executeAddCfmSvc` method orchestrates a comprehensive registration confirmation pipeline by calling the following Service Components in sequence through the KKSV0006 mapper:

| CRUD | SC / CBS | SC Code | Operation Description |
|------|----------|---------|----------------------|
| C | `mapper.setKKSV000601SC` | KKSV000601SC | Application content approval registration — registers the primary service order approval |
| C | `mapper.setKKSV000603SC` | KKSV000603SC | Option service contract (ISP) information change — updates ISP option service contract data |
| C | `mapper.setKKSV000604SC` | KKSV000604SC | Option service contract (ISP) registration — registers new ISP option service contracts |
| C | `mapper.setKKSV000605SC` | KKSV000605SC | Sub-option service contract (ISP) registration — registers sub-option ISP service contracts |
| C | `mapper.setKKSV000618SC` | KKSV000618SC | Option service contract (ISP) consultation — performs ISP consultation processing |
| C | `mapper.setKKSV000611SC` | KKSV000611SC | Option service contract (ISP) consultation settlement — settles ISP consultation |
| C | `mapper.setKKSV000612SC` | KKSV000612SC | Option service contract (ISP) start — initiates ISP service activation |
| C | `mapper.setKKSV000619SC` | KKSV000619SC | Sub-option service contract (ISP) consultation — performs sub-option ISP consultation |
| C | `mapper.setKKSV000606SC` | KKSV000606SC | Sub-option service contract (ISP) consultation settlement — settles sub-option consultation |
| C | `mapper.setKKSV000607SC` | KKSV000607SC | Sub-option service contract (ISP) usage start — activates sub-option service |
| C | `mapper.setKKSV000609SC` | KKSV000609SC | Email target registration — registers email target recipients |
| C | `mapper.setKKSV000620SC` | KKSV000620SC | Email target registration — registers email target recipients (secondary) |
| R | `mapper.setKKSV000616SC` | KKSV000616SC | Progress list reconciliation — queries progress information (always uses FUNC_CD_1) |
| C | `mapper.setKKSV000610SC` | KKSV000610SC | Progress information registration — registers service progress data |
| R | `mapper.setKKSV000608SC` | KKSV000608SC | Application detail reconciliation (fixed FUNC_CD_2) — cancels search, queries application details |
| R | `mapper.setKKSV000608SC` | KKSV000608SC | Application detail consultation / follow-up task delegation SC |

**Note:** The pre-computed evidence section above reflects the `setMessageInfo` calls within `executeAddCfmSvc` and the message-setting method calls in `actionFixMyHPInfo` itself (`JCCWebCommon.setMessageInfo`, `OneStopDataBeanAccess.sendMessageString`). The SC list below covers the service pipeline delegated to `executeAddCfmSvc`.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKA14201 (KKA14201SF) | `actionUpdMyHPInfo()` -> `actionFixMyHPInfo()` (condition: `FUNC_CODE_1`) | `setKKSV000601SC [C] approval_data`, `setKKSV000603SC [C] option_contract`, `setKKSV000604SC [C] option_reg`, `setKKSV000605SC [C] sub_option_reg`, `setKKSV000610SC [C] progress_data`, `setKKSV000608SC [R] app_detail`, `setKKSV000609SC [C] email_target` |
| 2 | Screen:KKW02504 (KKW02504SF) | Direct entry point `actionFixMyHPInfo()` in KKW02504SFLogic | `setKKSV000601SC [C] approval_data`, `setKKSV000603SC [C] option_contract`, `setKKSV000604SC [C] option_reg`, `setKKSV000605SC [C] sub_option_reg`, `setKKSV000610SC [C] progress_data`, `setKKSV000608SC [R] app_detail`, `setKKSV000609SC [C] email_target` |
| 3 | Logic:KKW00804 (KKW00804SFLogic) | Direct entry point `actionFixMyHPInfo()` in KKW00804SFLogic | `setKKSV000601SC [C] approval_data`, `setKKSV000603SC [C] option_contract`, `setKKSV000604SC [C] option_reg`, `setKKSV000605SC [C] sub_option_reg`, `setKKSV000610SC [C] progress_data`, `setKKSV000608SC [R] app_detail`, `setKKSV000609SC [C] email_target` |

**Call chain detail for KKA14201SF:**
- `KKA14201SFLogic` handles the My HP information update screen
- When the user presses the **update confirmation button**, `actionUpdMyHPInfo()` is invoked
- If the function code is `FUNC_CODE_1` (confirm button), it calls `actionFixMyHPInfo()` to process the registration confirmation
- The method code: `if (JKKCommonConst.FUNC_CODE_1.equals(funcCode)) { this.actionFixMyHPInfo(); }`

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Retrieve ServiceFormBean (L229)

> Obtain the DataBean carrying the My Home Page information from the service form context.

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccess bean = super.getServiceFormBean();` // Retrieve the service form DataBean carrying user input |
| 2 | SET | `X31SDataBeanAccess[] paramBean = {bean};` // Wrap single bean into array for service interface |

**Block 2** — [CALL] Registration Confirmation Service (L233)

> Delegate to the comprehensive registration confirmation service with `FUNC_CD_1` (confirm function code). This triggers the full pipeline of service component calls covering service contract registration, option/sub-option services, email targets, progress information, and application detail reconciliation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeAddCfmSvc(paramBean, JPCModelConstant.FUNC_CD_1);` // Registration confirmation service [-> FUNC_CD_1] |

**Block 3** — [SET] Set Confirmation Message (L236)

> Configure an info-level message to display to the user after successful registration confirmation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String[] str = {"Myホームページ情報の登録"};` // "My Home Page information registration" [-> message text] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, str);` // Set confirmation info message [-> EKB4390__I] |

**Block 4** — [SET] Set Next Screen Navigation (L239)

> Configure the completion screen navigation on the common info bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();` // Retrieve the common info bean |
| 2 | CALL | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00806);` // Set next screen ID to completion screen |
| 3 | CALL | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00806);` // Set next screen name to completion screen |

**Block 5** — [EXEC] Debug Log Output (L244)

> Dump the DataBean state for debugging and traceability.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);` // Log full DataBean dump |

**Block 6** — [RETURN] Success (L246)

> Return true to indicate successful processing completion.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // Processing completed normally |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| My HP | Field | My Home Page — the customer's personalized portal page in the telecom self-service system where they can view and manage their subscriptions, services, and preferences |
| FUNC_CD_1 | Constant | Function Code 1 — identifies the "Confirm" button action (as opposed to FUNC_CD_2 which typically identifies "Cancel" or other operations) |
| EKB4390__I | Constant | Message code for "My Home Page information registration" confirmation info message |
| KKSV0004 | Screen | Screen for My Home Page initial display and information editing |
| KKSV0006 | Mapper module | KKSV0006 DataBean-BP mapping cluster object — orchestrates mapping between DataBeans and service components for the registration/confirmation flow |
| KKW00806 | Screen | Completion screen displayed after successful My HP information registration |
| X31SDataBeanAccess | Class | Service form DataBean — carries UI-bound data items between screen and logic layers for service operations |
| JCCWebCommon | Class | Web common utility class providing shared message-setting and web-layer utilities |
| JPCOnlineMessageConstant | Class | Message constant definitions for online system messages |
| CommonInfoCFConst | Class | Common info configuration constants — defines keys like NEXT_SCREEN_ID and NEXT_SCREEN_NAME |
| X31CWebConst | Class | Web common constants — includes DATABEAN_SET_VALUE for setting DataBean fields |
| JKKScreenConst | Class | Screen constant definitions — contains SCREEN_ID_KKW00806 and SCREEN_NAME_KKW00806 |
| KKA14201SF | Screen | My Home Page information update screen — invokes actionFixMyHPInfo() when the user confirms changes |
| KKW02504SF | Screen | My Home Page edit confirmation screen — has its own independent actionFixMyHPInfo() entry point |
| SC Code (KKSV0006**) | Abbreviation | Service Component code — each setKKSV0006XXSC call invokes a distinct service component for a specific service contract or data operation |
| 確定ボタン | Japanese | Confirm button — the button the user presses to finalize their My HP information changes and trigger the registration confirmation service |
| DataBean | Term | Data Bean — a Java bean that carries data between the presentation layer and business logic layer in this system's MVC architecture |
