# Business Logic — KKW00147SFLogic.actionForceUseExit() [141 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00147SF.KKW00147SFLogic` |
| Layer | Controller (Web View Logic — `eo.web.webview` package) |
| Module | `KKW00147SF` (Package: `eo.web.webview.KKW00147SF`) |

## 1. Role

### KKW00147SFLogic.actionForceUseExit()

This method implements the "Forced Use End" button press processing for the optical phone forced use termination screen (`KKW00147SF`). In K-Opticom's telecommunications service management system, when an optical phone line undergoes "forced use termination" (強制利用終了) — typically during customer migration, service cancellation, or number portability transitions — the system must securely process the termination request and coordinate multiple downstream service components. The method acts as an entry-point controller for this business operation: it gathers screen-state data (inherited service info, displacement reason codes), maps it via `KKSV0212_KKSV0212OPDBMapper` into a structured input payload, dispatches the work through a centralized service invocation (`invokeService`) using the `KKSV0212` use-case and operation IDs, and then interprets the return code to determine success (return code `0000`) or specific error conditions (return code `1100` with sub-types `E002`, `E004`, `E005`, `E006`, `E008`, `E010`, `E012`). It also enforces a screen-type guard: if the calling screen is of type B (`SCM_TYPE_CD_B`), meaning it is an MT/MZ deregistration screen handling optical phone anomalies, processing is blocked with error `EKB0930-NW` to prevent invalid cross-screen interactions. The method follows a standard controller pattern — data gathering, mapping, delegation to business logic via `invokeService`, and result interpretation — and returns a boolean success flag (`true` for success, `false` for error).

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["actionForceUseExit"])

    START --> INIT["Initialize: paramMap, inputMap, outputMap, errFlg=true"]

    INIT --> GET_BEAN["Get serviceFormBean"]

    GET_BEAN --> GET_TYPE["Get screen type code from ECK0011A010DATA"]

    GET_TYPE --> CHECK_TYPE{"SCM_TYPE_CD_B check"}

    CHECK_TYPE -->|Is B| BLOCK_B["setMessageInfo: MT_MZ deregistration abnormality for optical phone, errFlg=false, return"]

    BLOCK_B --> END_RETURN(["Return errFlg"])

    CHECK_TYPE -->|Not B| CREATE_MAPPER["Create KKSV0212_KKSV0212OPDBMapper"]

    CREATE_MAPPER --> GET_HKTGI["Get inherited data from CUST_KEI_HKTGI_LIST"]

    GET_HKTGI --> GET_IDO_RSN["Get displacement reason code from IDO_RSN_CD_22"]

    GET_IDO_RSN --> CHECK_ENUM["Check HIDE_ENUM_KRKE_DOUJI flag"]

    CHECK_ENUM --> ENUM_TRUE{"enumKrkeDoujiFlg true?"}

    ENUM_TRUE -->|Yes| COPY_ENUM["Copy ENUM_KRKE_DOUJI flag value"]

    ENUM_TRUE -->|No| BUILD_BEAN["Build paramBean array with svcFormBean"]

    COPY_ENUM --> BUILD_BEAN

    BUILD_BEAN --> MAP_BEAN["mapper.setKKSV021201SC paramBean, inputMap, ido_rsn_cd"]

    MAP_BEAN --> SET_PARAMS["Set UC_ID and OP_ID constants"]

    SET_PARAMS --> INVOKE["invokeService param, input, output"]

    INVOKE --> EXTRACT["Extract execute_info, return_cd, err_cd from outputMap"]

    EXTRACT --> CHECK_RETURN{"return_cd 1100?"}

    CHECK_RETURN -->|Yes| CHECK_ERR_TYPES["Check err_cd variants"]

    CHECK_RETURN -->|No 0000| MSG_SUCCESS["setMessageInfo: EKB4390--I success"]

    MSG_SUCCESS --> END_SUCCESS(["Return true"])

    CHECK_RETURN -->|Other| ERR_CLEAR["errFlg=false unclear error"]

    ERR_CLEAR --> END_SUCCESS
```

**Key processing flow:**

1. **Initialize maps and flag** — Create `paramMap` (user case ID container), `inputMap` (mapping cross-class results), `outputMap` (service call return results), and set `errFlg = true` (default success).
2. **Get screen type guard** — Retrieve the screen type code from `ECK0011A010DATA` bean. If the screen type is `SCM_TYPE_CD_B` (MT/MZ deregistration screen type), block processing with error message `EKB0930-NW` ("MT/MZ deregistration screen abnormality for optical phone") and return `false` immediately.
3. **Map data preparation** — Create `KKSV0212_KKSV0212OPDBMapper`, extract inherited service data from `CUST_KEI_HKTGI_LIST`, and retrieve the displacement reason code (`IDO_RSN_CD_22`). If the `HIDE_ENUM_KRKE_DOUJI` flag is set, propagate the `ENUM_KRKE_DOUJI` flag value to preserve ENUM simultaneous switch state.
4. **Service invocation** — Set up `paramBean` array, call `mapper.setKKSV021201SC()` to map screen data into the service payload, set the use-case ID (`UCID_KKSV0212`) and operation ID (`OPID_KKSV0212OP`), then invoke `invokeService()`.
5. **Result interpretation** — Extract the return code and error type from the output. If return code is `0000`, display success message `EKB4390--I`. If return code is `1100`, dispatch to specific error message handlers based on error type (`E002`, `E004`, `E005/E006`, `E008`, `E010`, `E012`). If return code is anything else, set `errFlg = false`.
6. **Return** — Return the `errFlg` boolean.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no explicit parameters. All input data is sourced from the service form bean obtained via `super.getServiceFormBean()`. |
| - | `svcFormBean` | `X31SDataBeanAccess` | The screen form bean containing all user-entered and inherited data for the optical phone forced use termination screen. Retrieved from the base class via `getServiceFormBean()`. |
| - | `errFlg` | `boolean` | Internal error flag. Initialized to `true` (success). Set to `false` when processing encounters any error condition. |
| - | `map paramMap` | `HashMap<String, Object>` | Service invocation parameter map. Stores use-case ID and operation ID for the `invokeService` dispatch. |
| - | `HashMap inputMap` | `HashMap<String, Object>` | Mapping cross-class input container. Populated by `setKKSV021201SC` with extracted screen data (service contract number, service contract detail number, phone number, displacement division, displacement reason code). |
| - | `HashMap outputMap` | `HashMap<String, Object>` | Service invocation output container. Receives the result of `invokeService`, including the `trgt_data` map with `err_cd` (return code) and `err_type` (error subtype). |
| - | `scmCdDiv` | `String` | Screen type division code. Retrieved from `ECK0011A010DATA` bean. Value `SCM_TYPE_CD_B` triggers early exit with error (MT/MZ deregistration screen type guard). |
| - | `ido_rsn_cd` | `String` | Displacement reason code. Extracted from inherited data bean using `KKW00147SFConst.IDO_RSN_CD_22`. Represents the reason for service displacement/transfer during forced termination. |
| - | `enumKrkeDoujiFlg` | `Boolean` | ENUM simultaneous switch flag. Indicates whether ENUM simultaneous switching is active. If `HIDE_ENUM_KRKE_DOUJI` is true, this flag is propagated to maintain consistency. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `KKSV0212_KKSV0212OPDBMapper.setKKSV021201SC` | KKSV0212 | - | Maps screen form data into service payload — extracts service contract number, service contract detail number, phone number, displacement division, displacement reason code, update timestamps, and ENUM simultaneous switch flag |
| R | `OneStopDataBeanAccessArray.getDataBeanArray` | - | - | Reads data bean arrays from service form bean (ECK0011A010DATA, CUST_KEI_HKTGI_LIST) |
| R | `X31SDataBeanAccess.getDataBean` | - | - | Reads individual data bean at index 0 from data bean arrays |
| R | `X31SDataBeanAccess.sendMessageString` | - | - | Retrieves string values from data beans (screen type code, displacement reason code) |
| R | `X31SDataBeanAccess.sendMessageBoolean` | - | - | Retrieves boolean values from data beans (HIDE_ENUM_KRKE_DOUJI flag) |
| - | `X31SDataBeanAccess.sendMessageBoolean` | - | - | Sets ENUM_KRKE_DOUJI flag value back to the service form bean |
| - | `JCCWebCommon.setMessageInfo` | - | - | Displays error or success messages to the user via message IDs (EKB0930-NW, EKB1510-KW, EKB4180-KW, EKBE220-KW, EKBE240-KW, EKB0780-KW, EKB1040-JW, EKB4390--I) |
| - | `KKW00147SFLogic.invokeService` | KKSV0212 | - | Centralized service invocation dispatch. Sets UC_ID=KKSV0212, OP_ID=KKSV0212OP. Forwards param, input, output maps to the service framework for downstream CBS execution |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW00147SF | `KKW00147SFLogic.actionForceUseExit` [entry point — called directly from screen button action] | `KKSV0212_KKSV0212OPDBMapper.setKKSV021201SC` [R] KKSV0212 screen data mapping |
| 2 | Screen:KKA15701 | `KKA15701SFLogic` (base view logic that extends/uses KKW00147SFLogic as base) | `KKSV0212_KKSV0212OPDBMapper.setKKSV021201SC` [R] KKSV0212 screen data mapping |
| 3 | Screen:KKSV0212 | Screen handler invokes the logic via `KKSV0212_KKSV0212OPDBMapper` mapping | `KKSV0212` [R] Service contract data extraction, displacement info |

**Notes:**
- `KKW00147SF` is the primary screen module where `actionForceUseExit()` is defined. It serves as the "Pro-rated Service Registration" screen where the "Forced Use End" button triggers this method.
- `KKA15701SFLogic` is a base view logic class that uses `KKW00147SFLogic` as its base. The `actionForceUseExit()` method is duplicated/copied into both classes (source lines 3658 in `KKA15701SFLogic` and lines 2670 in `KKW00147SFLogic`).
- The screen `KKSV0212` is the operation screen that performs the actual data mapping for this use case. The `setKKSV021201SC` method extracts service contract info, phone number, displacement reason, and update timestamps from the form bean and passes them to the service framework.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Local variable initialization (L2679)

> Initialize all working maps and the error flag before any business processing begins.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = null;` // User case ID container HashMap |
| 2 | SET | `inputMap = null;` // Mapping cross-class results HashMap |
| 3 | SET | `outputMap = null;` // Service call return results HashMap |
| 4 | SET | `paramMap = new HashMap<String, Object>();` // Parameter map generation [-> paramMap] |
| 5 | SET | `inputMap = new HashMap<String, Object>();` // Input map generation [-> inputMap] |
| 6 | SET | `outputMap = new HashMap<String, Object>();` // Output map generation [-> outputMap] |
| 7 | SET | `boolean errFlg = true;` // ANK-4075-00-00 ADD — error flag defaulting to true (success) |

**Block 2** — [SET] Get service form bean (L2693)

> Retrieves the service form bean from the base class, which holds all screen data.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `X31SDataBeanAccess svcFormBean = super.getServiceFormBean();` // Get service form bean data bean access |

**Block 3** — [IF] Screen type guard — MT/MZ deregistration screen block (L2698)

> Critical guard: if the current screen type is `SCM_TYPE_CD_B` (MT/MZ deregistration), block forced use termination and display an abnormality error. The method `sendMessageString` is called with the literal key "スクタイプコード" (screen type code) to retrieve the screen type. `JCKCommonConst.SCM_TYPE_CD_B` represents screen type "B".

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svcFormBean.getDataBeanArray(KKW00147SFConst.ECK0011A010DATA)` // Get ECK0011A010DATA bean array |
| 2 | CALL | `.getDataBean(0)` // Get first data bean from array |
| 3 | CALL | `.sendMessageString("スクタイプコード", X31CWebConst.DATABEAN_GET_VALUE)` // Get screen type code — literal key "screen type code" |
| 4 | SET | `String scmCdDiv = ...;` // Screen type division code |
| 5 | IF | `JCKCommonConst.SCM_TYPE_CD_B.equals(scmCdDiv)` [SCM_TYPE_CD_B="B"] |

**Block 3.1** — [IF-TRUE] Screen type is B — block processing (L2702)

> MT/MZ deregistration screen detected. Display error "MT/MZ deregistration screen abnormality for optical phone" and return `false`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"MT・MZ卸スキームの", "光電話に関する異動"})` // Error: MT/MZ deregistration screen abnormality for optical phone |
| 2 | SET | `errFlg = false;` // Mark as error |
| 3 | RETURN | `return errFlg;` // Return false — early exit |

**Block 4** — [SET] Create mapper and extract inherited data (L2709)

> After the screen-type guard passes, create the KKSV0212 OPDB mapper and extract inherited service contract data including the displacement reason code.

| # | Type | Code |
|---|------|------|
| 1 | SET | `KKSV0212_KKSV0212OPDBMapper mapper = new KKSV0212_KKSV0212OPDBMapper();` // Create mapper instance |
| 2 | CALL | `svcFormBean.getDataBeanArray(KKW00147SFConst.CUST_KEI_HKTGI_LIST)` // Get inherited data list |
| 3 | CALL | `.getDataBean(0)` // Get first inherited data bean |
| 4 | SET | `X31SDataBeanAccess hktgiBean = ...;` // Inherited data bean — REAN |
| 5 | CALL | `hktgiBean.sendMessageString(KKW00147SFConst.IDO_RSN_CD_22, X31CWebConst.DATABEAN_GET_VALUE, 0)` // Get displacement reason code at index 0 |
| 6 | SET | `String ido_rsn_cd = ...;` // Displacement reason code |

**Block 5** — [IF] ENUM simultaneous switch flag propagation (L2714)

> If `HIDE_ENUM_KRKE_DOUJI` is true, propagate the ENUM simultaneous switch flag to ensure the state is carried forward through the processing chain.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svcFormBean.sendMessageBoolean(KKW00147SFConst.HIDE_ENUM_KRKE_DOUJI, X31CWebConst.DATABEAN_GET_VALUE)` // Check hide ENUM simultaneous switch flag |
| 2 | SET | `Boolean enumKrkeDoujiFlg = ...;` // ENUM simultaneous switch flag |
| 3 | IF | `enumKrkeDoujiFlg` (Boolean truthiness check) [HIDE_ENUM_KRKE_DOUJI flag set] |

**Block 5.1** — [IF-TRUE] Propagate ENUM flag (L2716)

> Copy the ENUM simultaneous switch flag value to the `ENUM_KRKE_DOUJI` key.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svcFormBean.sendMessageBoolean(KKW00147SFConst.ENUM_KRKE_DOUJI, X31CWebConst.DATABEAN_SET_VALUE, enumKrkeDoujiFlg)` // Set ENUM flag value |

**Block 6** — [SET] Build paramBean and map data (L2722)

> Construct the paramBean array containing the service form bean, then call `setKKSV021201SC` to map all screen data into the inputMap payload.

| # | Type | Code |
|---|------|------|
| 1 | SET | `X31SDataBeanAccess[] paramBean = { svcFormBean };` // Mapping bean array with svcFormBean |
| 2 | SET | `inputMap = mapper.setKKSV021201SC(paramBean, inputMap, ido_rsn_cd);` // Map screen data to service payload |

**Block 7** — [SET] Set UC and OP IDs (L2725)

> Set the use-case ID and operation ID in the parameter map for service dispatch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0212)` // UC ID for KKSV0212 use case |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0212OP)` // OP ID for KKSV0212OP operation |

**Block 8** — [CALL] Invoke service (L2728)

> Centralized service invocation that dispatches the mapped payload to the downstream service framework for business logic execution.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `invokeService(paramMap, inputMap, outputMap);` // Service call processing — dispatches to KKSV0212 CBS |

**Block 9** — [SET] Extract service result (L2731)

> Extract the execution info, return code, and error type from the service output.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap<String, Object> execute_info = new HashMap<String, Object>();` // Execute info container |
| 2 | SET | `execute_info = (HashMap<String, Object>) outputMap.get("trgt_data");` // Get target data from outputMap |
| 3 | SET | `String return_cd = (String) execute_info.get("err_cd");` // Return code from execute_info |
| 4 | SET | `String err_cd = (String) execute_info.get("err_type");` // Error type from execute_info |

**Block 10** — [IF] Return code 1100 — error handling dispatch (L2739)

> Return code "1100" indicates an error condition. The method then branches into specific error type checks, each displaying a unique error message to guide the operator.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1100".equals(return_cd)` [return_cd == "1100"] |

**Block 10.1** — [IF] Error type E002 (L2746)

> Phone number selection error during forced use termination. Displays `EKB1510-KW` with parameters "光電話・番ポ戻し（強制利用終了）" and "選択した電話番号の".

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E002".equals(err_cd)` [err_cd == "E002"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB1510-KW", new String[]{"光電話・番ポ戻し（強制利用終了）", "選択した電話番号の"})` // Phone number selection error |

**Block 10.2** — [IF] Error type E004 (L2751)

> General error during forced use termination. Displays `EKB4180-KW`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E004".equals(err_cd)` [err_cd == "E004"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB4180-KW")` // General error message |

**Block 10.3** — [IF] Error type E005 or E006 (L2756)

> Error types E005 and E006 are handled with the same message `EKBE220-KW`. Both indicate related service state errors.

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E005".equals(err_cd) \|\| err_cd != null && !"".equals(err_cd) && "E006".equals(err_cd)` [err_cd == "E005" or "E006"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKBE220-KW")` // Error E005/E006 message |

**Block 10.4** — [IF] Error type E008 (L2766)

> Error type E008 during forced use termination. Displays `EKBE240-KW`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E008".equals(err_cd)` [err_cd == "E008"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKBE240-KW")` // Error E008 message |

**Block 10.5** — [IF] Error type E010 (L2770)

> Port-out application not registered error. Displays `EKB0780-KW` with parameters "処理可能なポートアウト申請", "登録されていない", "強制利用終了".

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E010".equals(err_cd)` [err_cd == "E010"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB0780-KW", new String[]{"処理可能なポートアウト申請", "登録されていない", "強制利用終了"})` // Port-out not registered |

**Block 10.6** — [IF] Error type E011 (L2776)

> Number port suspension lift error. Displays `EKB1040-JW` with parameters "電話番号", "番ポ利用停止解除済み", "強制利用終了".

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E011".equals(err_cd)` [err_cd == "E011"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB1040-JW", new String[]{"電話番号", "番ポ利用停止解除済み", "強制利用終了"})` // Number port suspension already lifted |

**Block 10.7** — [IF] Error type E012 (L2782)

> ENUM switch not possible state. Displays `EKB1040-JW` with parameters "電話番号", "ENUM切替不可の状態", "同時ENUM切替".

| # | Type | Code |
|---|------|------|
| 1 | IF | `err_cd != null && !"".equals(err_cd) && "E012".equals(err_cd)` [err_cd == "E012"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB1040-JW", new String[]{"電話番号", "ENUM切替不可の状態", "同時ENUM切替"})` // ENUM switch not possible |

**Block 11** — [ELSE-IF] Return code 0000 — success (L2789)

> Return code "0000" indicates successful completion. Display success message `EKB4390--I`.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `"0000".equals(return_cd)` [return_cd == "0000"] |
| 2 | CALL | `JCCWebCommon.setMessageInfo(this, "EKB4390--I", new String[]{"処理"})` // Success: "Processing completed" |

**Block 12** — [ELSE] Unclear return code (L2792)

> Any return code other than "0000" or "1100" is treated as an error condition. Set `errFlg = false`.

| # | Type | Code |
|---|------|------|
| 1 | ELSE | `errFlg = false;` // Unclear return code treated as error |

**Block 13** — [RETURN] Final return (L2796)

> Return the error flag indicating success or failure.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return errFlg;` // true = success, false = error |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `actionForceUseExit` | Method | Forced use end processing — handles the "Forced Use End" button action on the optical phone service termination screen |
| 強制利用終了 | Japanese term | Forced use termination — a telecom operation where a service provider forcibly terminates an active service contract (e.g., during customer migration, number portability, or service cancellation) |
| `KKW00147SF` | Module | Pro-rated service registration screen module — handles service registration operations including forced use termination |
| `KKSV0212` | Screen ID | Service contract data mapping screen — maps form bean data into service payload for the KKSV0212 use case |
| `KKSV0212OPDBMapper` | Mapper | Database mapper for KKSV0212 — converts screen data to service input and service output to screen data |
| `CUST_KEI_HKTGI_LIST` | Constant | Inherited service contract list — contains inherited/forwarded service contract data from previous screens |
| `IDO_RSN_CD_22` | Constant | Displacement reason code — the reason code for service displacement/transfer during forced termination |
| `SCM_TYPE_CD_B` | Constant | Screen type code "B" — identifies MT/MZ deregistration screens, used as a guard condition |
| `HIDE_ENUM_KRKE_DOUJI` | Constant | Hide ENUM simultaneous switch flag — controls whether ENUM simultaneous switching is visible/active |
| `ENUM_KRKE_DOUJI` | Constant | ENUM simultaneous switch flag — indicates ENUM (number portability) simultaneous switching state |
| `ENUM` | Acronym | ENUM — ENUMeration, a number portability technology that allows phone number porting between telecom providers |
| `番ポ` | Japanese abbreviation | Number port (番号ポータビリティ) — telephone number portability, allowing customers to keep their phone number when switching providers |
| `MT・MZ卸` | Japanese term | MT/MZ wholesale — Mitsui/Market-type wholesale deregistration screen type for optical phone |
| `UCID_KKSV0212` | Constant | Use case ID for KKSV0212 — identifies the business use case in the service framework |
| `OPID_KKSV0212OP` | Constant | Operation ID for KKSV0212OP — identifies the specific operation within the use case |
| `EKB0930-NW` | Message ID | Error: MT/MZ deregistration screen abnormality for optical phone |
| `EKB1510-KW` | Message ID | Error: Phone number selection issue during forced use termination |
| `EKB4180-KW` | Message ID | Error: General error during forced use termination |
| `EKBE220-KW` | Message ID | Error: E005/E006 — service state error during forced use termination |
| `EKBE240-KW` | Message ID | Error: E008 — error during forced use termination |
| `EKB0780-KW` | Message ID | Error: Port-out application not registered for forced use termination |
| `EKB1040-JW` | Message ID | Error: Number port suspension already lifted or ENUM switch not possible |
| `EKB4390--I` | Message ID | Success: Processing completed |
| `err_cd` | Field | Return code from service — "0000" indicates success, "1100" indicates error, others indicate unclear status |
| `err_type` | Field | Error type subtype — "E002" through "E012" provide specific error categorization for display |
| `invokeService` | Method | Centralized service invocation — dispatches to the service framework with UC ID, OP ID, and data maps |
| `paramMap` | Variable | Service invocation parameter map — stores use case and operation IDs for service dispatch |
| `inputMap` | Variable | Mapping cross-class input — populated by OPDB mapper with extracted form data |
| `outputMap` | Variable | Service invocation output — receives results from `invokeService` including `trgt_data` |
| `svcFormBean` | Variable | Service form bean — holds all screen input data including customer info, service contract data, and phone numbers |
| `errFlg` | Variable | Error flag — `true` for success, `false` for error conditions |
