---
title: "Business Logic — KKW02510SFLogic.actionFix()"
created: 2026-06-30
updated: 2026-06-30
method: actionFix
class: KKW02510SFLogic
fqn: eo.web.webview.KKW02510SF.KKW02510SFLogic
file: source/koptWebB/src/eo/web/webview/KKW02510SF/KKW02510SFLogic.java
loc: 115
---

# Business Logic — KKW02510SFLogic.actionFix() [115 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW02510SF.KKW02510SFLogic` |
| Layer | Web Logic (Controller logic tier — extends JCCWebBusinessLogic) |
| Module | `KKW02510SF` (Package: `eo.web.webview.KKW02510SF`) |

## 1. Role

### KKW02510SFLogic.actionFix()

This method implements the "Confirm" (確定) button handler for the **Multi-Section Information Update/Confirmation screen** (KKW02510). It is the central dispatch entry point that accepts a user's confirmation of service changes displayed on a review screen and routes the request to the appropriate backend service based on the operation type. The method reads a `trans_div` (processing division) flag from the DataBean to determine which of four mutually exclusive service workflows to execute: **dismantle** (解約 — service cancellation), **update** (変更 — service detail modification), **restore** (復帰 — service reinstatement), or **reservation cancel** (予約取消 — cancellation of a scheduled reservation). Each workflow follows an identical three-phase pattern: (1) prepare the input parameter map by calling a type-specific `set*Dslsrv` helper, (2) invoke the corresponding downstream screen CBS via `doService()`, and (3) map the service output back into the DataBean via a `storeDataBean*Dslsrv` helper. After the service call completes, the method checks for a return message ID; if none exists, it navigates to the completion screen (KKW02512) and displays an info message; if an error message ID is returned, it displays the error. The method always returns `true` on completion. The design pattern employed is a **branch-and-delegate router** — conditional dispatch to parallelized sub-handlers followed by unified post-processing.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["actionFix entry"])

    INIT["Initialize maps and DataBean access"]
    GET_TRANS["Get trans_div from DataBean"]
    CHECK_TRANS["Check trans_div value"]

    DSL_BRANCH["OP_TRAN_DIV_DSL = \"04\""]
    DSL_SET["setDslsrv paramBean, inputMap, FUNC_CD_1"]
    DSL_SVC["doService KKSV0073/KKSV0073OP"]
    DSL_MAP["storeDataBeanDslsrv paramBean, outputMap"]
    DSL_MSG["msgInfo = INFO_MSGSTRING[1]"]

    CHGE_BRANCH["OP_TRAN_DIV_CHGE = \"03\""]
    CHGE_SET["setChgesrv paramBean, inputMap, FUNC_CD_1"]
    CHGE_SVC["doService KKSV0072/KKSV0072OP"]
    CHGE_MAP["storeDataBeanChgesrv paramBean, outputMap"]
    CHGE_MSG["msgInfo = INFO_MSGSTRING[0]"]

    KAIHK_BRANCH["OP_TRAN_DIV_KAIHK = \"05\""]
    KAIHK_SET["setKaihksrv paramBean, inputMap, FUNC_CD_1"]
    KAIHK_SVC["doService KKSV0074/KKSV0074OP"]
    KAIHK_MAP["storeDataBeanKaihksrv paramBean, outputMap"]
    KAIHK_MSG["msgInfo = INFO_MSGSTRING[2]"]

    RSV_BRANCH["OP_TRAN_DIV_RSV_CL = \"06\""]
    RSV_SET["setRsvclsrv paramBean, inputMap, FUNC_CD_1"]
    RSV_SVC["doService KKSV0075/KKSV0075OP"]
    RSV_MAP["storeDataBeanRsvclsrv paramBean, outputMap"]
    RSV_MSG["msgInfo = INFO_MSGSTRING[3]"]

    GET_RTN["Get rtn_msgId from DataBean"]
    CHECK_RTN["Check rtn_msgId"]

    OK_PATH["rtn_msgId is null or empty"]
    ERR_PATH["rtn_msgId has a value"]

    SET_NEXT["Set next screen KKW02512 in commonInfoBean"]
    SET_INFO["JCCWebCommon.setMessageInfo EKB4390__I, msgInfo"]
    SHOW_ERR["displayGyomuErrorMsg rtn_msgId, trans_div"]

    DUMP["dumpDatabean() to JSYwebLog"]
    RETURN_T["Return true"]
    END_NODE(["End"])

    START --> INIT
    INIT --> GET_TRANS
    GET_TRANS --> CHECK_TRANS
    CHECK_TRANS -->|"\"04\""| DSL_BRANCH
    CHECK_TRANS -->|"\"03\""| CHGE_BRANCH
    CHECK_TRANS -->|"\"05\""| KAIHK_BRANCH
    CHECK_TRANS -->|"\"06\""| RSV_BRANCH
    DSL_BRANCH --> DSL_SET
    DSL_SET --> DSL_SVC
    DSL_SVC --> DSL_MAP
    DSL_MAP --> DSL_MSG
    CHGE_BRANCH --> CHGE_SET
    CHGE_SET --> CHGE_SVC
    CHGE_SVC --> CHGE_MAP
    CHGE_MAP --> CHGE_MSG
    KAIHK_BRANCH --> KAIHK_SET
    KAIHK_SET --> KAIHK_SVC
    KAIHK_SVC --> KAIHK_MAP
    KAIHK_MAP --> KAIHK_MSG
    RSV_BRANCH --> RSV_SET
    RSV_SET --> RSV_SVC
    RSV_SVC --> RSV_MAP
    RSV_MAP --> RSV_MSG
    DSL_MSG --> GET_RTN
    CHGE_MSG --> GET_RTN
    KAIHK_MSG --> GET_RTN
    RSV_MSG --> GET_RTN
    GET_RTN --> CHECK_RTN
    CHECK_RTN -->|"null or empty"| OK_PATH
    CHECK_RTN -->|"has value"| ERR_PATH
    OK_PATH --> SET_NEXT
    SET_NEXT --> SET_INFO
    ERR_PATH --> SHOW_ERR
    SET_INFO --> DUMP
    SHOW_ERR --> DUMP
    DUMP --> RETURN_T
    RETURN_T --> END_NODE
```

**Constant Resolution Reference:**
| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `JKKCommonConst.OP_TRAN_DIV_CHGE` | `"03"` | Update — modify service details |
| `JKKCommonConst.OP_TRAN_DIV_DSL` | `"04"` | Dismantle — cancel service |
| `JKKCommonConst.OP_TRAN_DIV_KAIHK` | `"05"` | Restore — reinstate service |
| `JKKCommonConst.OP_TRAN_DIV_RSV_CL` | `"06"` | Reservation Cancel — cancel scheduled reservation |
| `JKPCModelConstant.FUNC_CD_1` | `"1"` | Function code passed to set helpers (standard function identifier) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (implicit `this`) | `KKW02510SFLogic` | The logic instance for the Multi-Section Information Update screen |
| - | `trans_div` (derived) | `String` | Processing division code obtained from the DataBean via `KKW02510SFConst.TRAN_DIV`. Determines which service workflow route to take. Can be `"03"` (Update), `"04"` (Dismantle), `"05"` (Restore), or `"06"` (Reservation Cancel). |
| - | `bean` (derived) | `X31SDataBeanAccess` | Service form DataBean obtained from `super.getServiceFormBean()`. Holds the screen's data state including `trans_div` and `RTN_MSG_ID`. |
| - | `commoninfoBean` (derived) | `X31SDataBeanAccess` | Common form DataBean from `super.getCommonInfoBean()`. Used to set the next screen ID for navigation. |
| - | `inputMap` / `outputMap` | `HashMap` | Service call input/output containers passed to `doService()`. |
| - | `msgInfo` | `String[]` | One-element array holding the info message to display after successful service processing. |
| - | `rtn_msgId` (derived) | `String` | Return message ID from DataBean via `KKW02510SFConst.RTN_MSG_ID`. If present, indicates the service call returned an error condition. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `KKW02510SFLogic.setDslsrv` | KKW02510SFLogic | - | Prepares input map for dismantle (cancellation) service |
| - | `KKW02510SFLogic.setChgesrv` | KKW02510SFLogic | - | Prepares input map for update (modification) service |
| - | `KKW02510SFLogic.setKaihksrv` | KKW02510SFLogic | - | Prepares input map for restore (reinstatement) service |
| - | `KKW02510SFLogic.setRsvclsrv` | KKW02510SFLogic | - | Prepares input map for reservation cancel service |
| - | `KKW02510SFLogic.storeDataBeanDslsrv` | KKW02510SFLogic | - | Maps service output back to DataBean for dismantle |
| - | `KKW02510SFLogic.storeDataBeanChgesrv` | KKW02510SFLogic | - | Maps service output back to DataBean for update |
| - | `KKW02510SFLogic.storeDataBeanKaihksrv` | KKW02510SFLogic | - | Maps service output back to DataBean for restore |
| - | `KKW02510SFLogic.storeDataBeanRsvclsrv` | KKW02510SFLogic | - | Maps service output back to DataBean for reservation cancel |
| R/U | `KKW02510SFLogic.doService` | KKSV0073 | N/A (CBS) | Calls dismantle CBS — executes service cancellation |
| R/U | `KKW02510SFLogic.doService` | KKSV0072 | N/A (CBS) | Calls update CBS — executes service detail modification |
| R/U | `KKW02510SFLogic.doService` | KKSV0074 | N/A (CBS) | Calls restore CBS — executes service reinstatement |
| R/U | `KKW02510SFLogic.doService` | KKSV0075 | N/A (CBS) | Calls reservation cancel CBS — cancels a scheduled reservation |
| - | `JCCWebCommon.setMessageInfo` | JCCWebCommon | - | Sets info message (EKB4390__I) for display on next screen |
| - | `KKW02510SFLogic.displayGyomuErrorMsg` | KKW02510SFLogic | - | Displays error message using returned message ID |

**How to classify:**
- **R/U** (Read/Update): `doService()` calls are CBS invocations that both read current service state and perform the requested update. The exact DB tables depend on the CBS implementation (KKSV0072-0075).
- **SET**: Variable assignments, field writes, and map population.
- **CALL**: All delegate method calls (set*/storeDataBean*/doService/displayGyomuErrorMsg).
- **EXEC**: `sendMessageString`/`sendMessageBoolean` calls on DataBean objects to get/set values.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW02510 | `KKW02510 actionConfirm` -> `actionFix()` | `KKSV0072-KKSV0075 CBS [R/U] SOD/OPSVKEI/ServiceContract` |
| 2 | Screen:KKW02512 | `KKW02512 screen load` <- (navigation target set by `actionFix` via commonInfoBean) | N/A (target screen, not a caller) |

**Navigation Flow:** `actionFix()` does not have external callers invoking it directly from other screens in this codebase — it is the entry point for the KKW02510 screen's "Confirm" action. After processing, it navigates to **KKW02512** (Multi-Section Information Update Completion screen) by setting `NEXT_SCREEN_ID` and `NEXT_SCREEN_NAME` in the common info DataBean.

**Call Chain Detail:**
- KKW02510 screen (Multi-Section Information Update/Confirmation) dispatches to `actionFix()` when the user presses the "Confirm" button.
- `actionFix()` routes to one of KKSV0072–KKSV0075 CBS based on `trans_div`.
- The CBS layer maps to database operations via KKSV007[2-5]OPDBMapper (found in `source/koptWebB/src/eo/web/webview/mapping/`).
- The mappers reference the following DataBean keys: `SYSID`, `IDO_DIV`, `SVC_KEI_NO`, `SVC_KEI_UCWK_NO`, `OP_SVC_KEI_NO`, `GENE_ADD_DTM`, `KOTEI_GIP_OP_ON_FLG` — indicating interactions with SOD (Service Order Data), OPSVKEI (Operation Service), and service contract entities.

## 6. Per-Branch Detail Blocks

**Block 1** — [LOCAL_VARS] Initialization (L324)

> Initialize local variables, obtain DataBean accessors, prepare input/output maps.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inputMap = null` // Input map for service call |
| 2 | SET | `outputMap = null` // Output map for service result |
| 3 | SET | `msgInfo = null` // Message display array |
| 4 | CALL | `commoninfoBean = super.getCommonInfoBean()` // Get shared common form DataBean |
| 5 | CALL | `bean = super.getServiceFormBean()` // Get service form DataBean |
| 6 | SET | `paramBean = {bean}` // Wrapper array for helper methods |
| 7 | EXEC | `inputMap = new HashMap<String, Object>()` // Create input map |
| 8 | EXEC | `outputMap = new HashMap<String, Object>()` // Create output map |

**Block 2** — [EXTRACT] Get processing division code (L338)

> Read the `trans_div` value from the DataBean to determine which service workflow to execute.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `trans_div = bean.sendMessageString(KKW02510SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE)` |

**Block 3** — [IF] `JKKCommonConst.OP_TRAN_DIV_DSL.equals(trans_div)` — Dismantle branch (L340) `[OP_TRAN_DIV_DSL="04"]` (L340)

> Handle service cancellation (解約). Prepare dismantle-specific input data, call the dismantle CBS, map output back, and set the dismantled info message.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setDslsrv(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // Prepare dismantle input data |
| 2 | CALL | `doService("KKSV0073", "KKSV0073OP", inputMap, outputMap)` // Execute dismantle CBS |
| 3 | CALL | `storeDataBeanDslsrv(paramBean, outputMap)` // Map CBS output to DataBean |
| 4 | SET | `msgInfo = new String[1]` // Allocate message array |
| 5 | SET | `msgInfo[0] = INFO_MSGSTRING[1]` // "[MULTI] Service information dismantled" (マルチセッショニング情報の解約) |

**Block 4** — [ELSE-IF] `JKKCommonConst.OP_TRAN_DIV_CHGE.equals(trans_div)` — Update branch (L355) `[OP_TRAN_DIV_CHGE="03"]` (L355)

> Handle service detail modification (変更). Prepare update-specific input data, call the update CBS, map output back, and set the updated info message.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setChgesrv(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // Prepare update input data |
| 2 | CALL | `doService("KKSV0072", "KKSV0072OP", inputMap, outputMap)` // Execute update CBS |
| 3 | CALL | `storeDataBeanChgesrv(paramBean, outputMap)` // Map CBS output to DataBean |
| 4 | SET | `msgInfo = new String[1]` // Allocate message array |
| 5 | SET | `msgInfo[0] = INFO_MSGSTRING[0]` // "[MULTI] Service information updated" (マルチセッショニング情報の変更) |

**Block 5** — [ELSE-IF] `JKKCommonConst.OP_TRAN_DIV_KAIHK.equals(trans_div)` — Restore branch (L370) `[OP_TRAN_DIV_KAIHK="05"]` (L370)

> Handle service reinstatement (復帰). Prepare restore-specific input data, call the restore CBS, map output back, and set the restored info message.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setKaihksrv(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // Prepare restore input data |
| 2 | CALL | `doService("KKSV0074", "KKSV0074OP", inputMap, outputMap)` // Execute restore CBS |
| 3 | CALL | `storeDataBeanKaihksrv(paramBean, outputMap)` // Map CBS output to DataBean |
| 4 | SET | `msgInfo = new String[1]` // Allocate message array |
| 5 | SET | `msgInfo[0] = INFO_MSGSTRING[2]` // "[MULTI] Service information restored" (マルチセッショニング情報の復帰) |

**Block 6** — [ELSE-IF] `JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(trans_div)` — Reservation Cancel branch (L386) `[OP_TRAN_DIV_RSV_CL="06"]` (L386)

> Handle scheduled reservation cancellation (予約取消). Prepare cancel-specific input data, call the reservation cancel CBS, map output back, and set the cancelled info message.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setRsvclsrv(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // Prepare cancel input data |
| 2 | CALL | `doService("KKSV0075", "KKSV0075OP", inputMap, outputMap)` // Execute reservation cancel CBS |
| 3 | CALL | `storeDataBeanRsvclsrv(paramBean, outputMap)` // Map CBS output to DataBean |
| 4 | SET | `msgInfo = new String[1]` // Allocate message array |
| 5 | SET | `msgInfo[0] = INFO_MSGSTRING[3]` // "[MULTI] Service information reservation cancelled" (マルチセッショニング情報の予約取消) |

**Block 7** — [EXTRACT] Get return message ID (L406)

> Read the return message ID from the DataBean. This is used to determine whether an error occurred during service processing.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `rtn_msgId = bean.sendMessageString(KKW02510SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_GET_VALUE)` |

**Block 8** — [IF] `rtn_msgId == null || "".equals(rtn_msgId)` — Success/No-error branch (L409)

> The return message ID is absent, meaning the service call succeeded. Navigate to the completion screen (KKW02512) and set the info message.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02512)` // Set next screen ID to KKW02512 |
| 2 | SET | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW02512)` // Set next screen name to KKW02512 |
| 3 | CALL | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, msgInfo)` // Display success info message |

**Block 9** — [ELSE] Error branch (L421)

> The return message ID exists, indicating an error from the service call. Display the error message and do NOT navigate to the next screen (the user stays on the current confirmation screen).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `displayGyomuErrorMsg(rtn_msgId, trans_div)` // Display error message using returned message ID and processing division |

**Block 10** — [EXEC] Logging (L426)

> Dump the DataBean state to the log for debugging purposes.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null)` // Dump DataBean state to log |

**Block 11** — [RETURN] (L428)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // Always returns true (normal end) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|-----------------|
| `KKW02510SF` | Screen | Multi-Section Information Update/Confirmation screen — the screen where users review and confirm changes to their multi-service contract details |
| `KKW02512` | Screen | Multi-Section Information Update Completion screen — the target screen navigated to after successful confirmation |
| `trans_div` | Field | Processing division code — determines the type of service operation (update, dismantle, restore, or reservation cancel) |
| `RTN_MSG_ID` | Constant | Return message ID — a DataBean key that holds an error message ID returned by the CBS if processing failed |
| `TRAN_DIV` | Constant | "Processing division" — the DataBean key used to store and retrieve the `trans_div` value |
| `INFO_MSGSTRING` | Constant | Info message array — contains four localized Japanese messages for each operation type (update, dismantle, restore, reservation cancel) |
| OP_TRAN_DIV_CHGE | Constant | `"03"` — Update operation division code |
| OP_TRAN_DIV_DSL | Constant | `"04"` — Dismantle (cancellation) operation division code |
| OP_TRAN_DIV_KAIHK | Constant | `"05"` — Restore (reinstatement) operation division code |
| OP_TRAN_DIV_RSV_CL | Constant | `"06"` — Reservation cancel operation division code |
| FUNC_CD_1 | Constant | Function code `1` — passed to helper methods as a standard function identifier |
| `EKB4390__I` | Constant | Info message constant — message key displayed on the completion screen after successful service processing |
| KKSV0072 | CBS | Update service CBS — handles service detail modification requests |
| KKSV0073 | CBS | Dismantle service CBS — handles service cancellation requests |
| KKSV0074 | CBS | Restore service CBS — handles service reinstatement requests |
| KKSV0075 | CBS | Reservation cancel service CBS — handles scheduled reservation cancellation requests |
| SOD | Acronym | Service Order Data — the core entity for telecom service orders, referenced by KKSV007[2-5]OPDBMapper (fields: `sysid`, `ido_div`, `svc_kei_no`, `svc_kei_ucwk_no`) |
| OPSVKEI | Acronym | Operation Service — the entity tracking operation/service contract state (referenced via `op_svc_kei_no`, `gene_add_dtm`) |
| SVC_KEI_NO | Field | Service contract number — unique identifier for a service contract line |
| SVC_KEI_UCWK_NO | Field | Service contract detail number — internal tracking ID for service contract sub-lines |
| IDO_DIV | Field | Displacement/exception division — indicates the type of service change or exception |
| GENE_ADD_DTM | Field | Generation add date-time — timestamp for when a service contract generation record was created |
| KOTEI_GIP_OP_ON_FLG | Constant | Confirm-give operation on flag — used by KKSV0071 mapper to indicate a confirmation was given |
| CHG_KAHI_FLG | Constant | Update exclusion flag — set to `false` in each set*Dslsrv helper to indicate the service is eligible for updates |
| CHGE | Japanese term | "変更" (Henkou) — Update/Modification |
| DSL | Japanese term | "解約" (Kaiya) — Dismantle/Cancellation |
| KAIHK | Japanese term | "復帰" (Haikoku) — Restore/Reinstatement |
| RSV_CLK | Japanese term | "予約取消" (Yoyaku Torikeshi) — Reservation Cancellation |
| Multi-Section (マルチセッショニング) | Business term | Multi-section information — refers to bundled telecom services (FTTH, cable, mail, etc.) under a single customer contract that can be managed together |
| `doService` | Method | Core delegation method that invokes a CBS (Call-by-Service) with input/output maps |
| `set*Dslsrv` | Helper method | Type-specific preparatory methods that populate the input map with parameters for the corresponding CBS |
| `storeDataBean*Dslsrv` | Helper method | Type-specific mapping methods that extract CBS results and write them back to the DataBean |
| X31SDataBeanAccess | Type | DataBean access wrapper — the framework class used to read/write screen data fields |
| JCCWebBusinessLogic | Base class | Base logic class for web screen business logic — provides `getCommonInfoBean()` and `getServiceFormBean()` |
