# Business Logic — KKW02701SFLogic.forwardRsvClCfm() [187 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW02701SF.KKW02701SFLogic` |
| Layer | Controller (Web Logic) |
| Module | `KKW02701SF` (Package: `eo.web.webview.KKW02701SF`) |

## 1. Role

### KKW02701SFLogic.forwardRsvClCfm()

This method implements the **Reservation Cancellation Confirmation** business operation. When a user clicks the "Forward Cancellation Confirmation" button on the reservation cancellation screen (KKW02702), this logic orchestrates the full confirmation workflow to determine whether a service reservation can be safely cancelled.

The method performs four primary responsibilities in sequence: (1) it invokes the appropriate service-side cancellation validation by dynamically routing to either the NET or TV cancellation service based on the service code; (2) it enforces a battery of post-service-check results to ensure no downstream conflicts exist — including CAS number linkage status, system error states, CS operation flags, and equipment-related reservations; (3) it applies service-type-specific verification rules, where e-hikari TV and e-hikari NET each have distinct work linkage checks (construction survey registration confirmation); and (4) for specific pricing groups (e.g., eo Mobile 3G) or NET services, it triggers additional business rule verifications such as course change linkage, credit equipment existence, ongoing service provision status, temporary cancellation confirmation, router speed checks, and multi-function router exchange checks.

The method uses a **routing/dispatch design pattern**: it reads the service code from the form bean and branches its verification logic based on whether the service is TV (`SVC_CD_TV`) or NET (`SVC_CD_NET`). For NET services, it performs the most extensive set of checks. The method acts as a **shared entry point** — it is called both directly from the same-class screen controller (KKW02701SF) and from the one-stop API integration logic in KKA16701SFLogic, making it a critical coordination point for both standalone and integrated cancellation flows.

The design pattern also incorporates a **guard clause pattern**: early returns (both true and false) are used throughout the method to short-circuit processing when any check fails, avoiding deep nesting and making the error paths explicit. The method always returns `true` on success (navigating to the next screen KKW02702) and `false` when an error or warning message is set and processing must halt.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> A["Initialize inputMap, outputMap, paramMap"]
    A --> B["Get svcFormBean from super.getServiceFormBean"]
    B --> C["Set UNYO_DTM in svcFormBean"]
    C --> D["Set UNYO_YMD in svcFormBean"]
    D --> E["setInMsg svcFormBean inputMap FUNC_CODE_2"]
    E --> F["invokeService paramMap inputMap outputMap"]
    F --> G["Get kksv039552ccMap from outputMap"]
    G --> H{"kksv039552ccMap not null and contains kikiOpRsvFlg"}
    H -->|Yes| I["Get kikiOpRsvFlg value"]
    I --> J["kikiOpRsvFlg equals 1"]
    J -->|Yes| K["setMessageInfo EKBF750_KW"]
    K --> RET1["Return false"]
    J -->|No| RET1
    H -->|No| L["isSptvStatCheckResult"]
    L --> L2{"sptvStat check passed"}
    L2 -->|No| L3["setErrorInfo EKBG220_JW - CAS linkage in progress"]
    L3 --> RET2["Return false"]
    L2 -->|Yes| M["isErrCdCheckResult"]
    M --> M2{"error code check passed"}
    M2 -->|No| M3["setErrorInfo EKB5440_JW - system error"]
    M3 --> RET3["Return false"]
    M2 -->|Yes| N["isCSOpCheckResult"]
    N --> N2{"CS operation check passed"}
    N2 -->|No| N3["setMessageInfo EKBG200_KW"]
    N3 --> RET4["Return false"]
    N2 -->|Yes| O{"msgResult not null"}
    O -->|Yes| P["setMessageInfo msgResult"]
    P --> RET5["Return false"]
    O -->|No| Q["Get svcCd from svcFormBean"]
    Q --> R["svcCd equals SVC_CD_TV or SVC_CD_NET"]
    R -->|No| S["Get prcGrpCd from svcFormBean"]
    R -->|Yes| T["Get kojiUmFlg from svcFormBean"]
    T --> U{"kojiUmFlg is not blank"}
    U -->|No| S
    U -->|Yes| V["kojiUmFlg equals UM_U"]
    V -->|No| S
    V -->|Yes| W["svcCd equals SVC_CD_TV"]
    W -->|Yes| X["isKojiRnkiCheckResult"]
    W -->|No| Y["svcCd equals SVC_CD_NET"]
    Y -->|Yes| Z["isNetKojiRnkiCheckResult"]
    Y -->|No| S
    X --> X2{"koji rnki check passed"}
    X2 -->|No| X3["setMessageInfo EKBA160_KW"]
    X3 --> RT1["Return true"]
    X2 -->|Yes| S
    Z --> Z2{"net koji rnki check passed"}
    Z2 -->|No| Z3["setMessageInfo EKBA160_KW"]
    Z3 --> RT2["Return true"]
    Z2 -->|Yes| S
    S --> AA["prcGrpCd equals PRC_GRP_CD_08"]
    AA -->|Yes| AB["isCouseRkRnkiCheckResult"]
    AA -->|No| AC["svcCd equals SVC_CD_NET"]
    AB --> AB2{"course link check passed"}
    AB2 -->|No| AB3["setMessageInfo EKB9460_KW"]
    AB3 --> AC
    AB2 -->|Yes| AE["isKkSonzaiCheckResult"]
    AE --> AE2{"kk sonzai check passed"}
    AE2 -->|No| AE3["setMessageInfo EKB9470_KW"]
    AE3 --> AC
    AE2 -->|Yes| AC
    AC -->|Yes| AF["isKktksvTkchuCheckResult"]
    AF --> AF2{"ktksv tkchu check passed"}
    AF2 -->|No| AF3["setMessageInfo EKB5950__I"]
    AF3 --> AG
    AF2 -->|Yes| AG["isIcjkn"]
    AG --> AG2{"icjkn check passed"}
    AG2 -->|No| AG3["setMessageInfo EKB5960__Q"]
    AG3 --> AH
    AG2 -->|Yes| AH["isRouterSpeedCheckResult"]
    AH --> AH2{"router speed check passed"}
    AH2 -->|No| AH3["setMessageInfo EKB8820__Q"]
    AH3 --> AI
    AH2 -->|Yes| AI["isFatRouterExchangeCheckResult"]
    AI --> AI2{"fat router exchange check passed"}
    AI2 -->|No| AI3["setMessageInfo EKBF290--I"]
    AI3 --> AJ
    AI2 -->|Yes| AJ["setCourseRk"]
    S --> AJ
    AC -->|No| AJ
    AJ --> AK["setMessageInfo EKB0370__I - Reservation cancellation"]
    AK --> AL["setForwardInfo KKW02702"]
    AL --> END_NODE["Return true"]
    RET1 --> END_NODE
    RET2 --> END_NODE
    RET3 --> END_NODE
    RET4 --> END_NODE
    RET5 --> END_NODE
    RT1 --> END_NODE
    RT2 --> END_NODE
    AI --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. All input data is obtained from the service form bean (`X31SDataBeanAccess`) via `super.getServiceFormBean()`, which carries the current screen state including service code, pricing group code, work existence flag, and other contextual data submitted by the user. |

### Instance Fields / External State Read

| No | Dependency | Type | Business Description |
|----|-----------|------|---------------------|
| 1 | `super.getServiceFormBean()` | `X31SDataBeanAccess` | The service form bean containing the current screen's form data, including service code, pricing group code, course history list, and other user-submitted values. |
| 2 | `KKW02701SFConst.UNYO_DTM` | `String` constant | Key for setting operation date-time stamp in the data bean. |
| 3 | `KKW02701SFConst.UNYO_YMD` | `String` constant | Key for setting operation date in the data bean. |
| 4 | `KKW02701SFConst.KOJI_UM_FLG` | `String` constant | Key for the construction work existence flag in the data bean. |
| 5 | `JKKCommonConst.FUNC_CODE_2` | `String` constant | Function code "2" — indicates cancellation confirmation operation (vs. "1" for confirmation/fix). |
| 6 | `JKKCommonConst.SVC_CD_TV` | `String` constant | Service code for e-hikari TV (cable/satellite bundled service). |
| 7 | `JKKCommonConst.SVC_CD_NET` | `String` constant | Service code for e-hikari NET (fiber internet-only service). |
| 8 | `JKKCommonConst.UM_U` | `String` constant | Work existence flag value "U" meaning "Work exists" (工事有). |
| 9 | `JKKCommonConst.PRC_GRP_CD_08` | `String` constant | Pricing group code "08" — identifies eo Mobile 3G service for special verification rules. |
| 10 | `X31CWebConst.DATABEAN_SET_VALUE` | `String` constant | Data bean operation: set value. |
| 11 | `X31CWebConst.DATABEAN_GET_VALUE` | `String` constant | Data bean operation: get value. |
| 12 | `JPCOnlineMessageConstant.EKBF750_KW` | `String` constant | Warning message key: equipment operation reservation in progress. |
| 13 | `JPCOnlineMessageConstant.EKBG220_JW` | `String` constant | Error message key: CAS number linkage in progress. |
| 14 | `JPCOnlineMessageConstant.EKB5440_JW` | `String` constant | Error message key: system error — reservation cancelled. |
| 15 | `JPCOnlineMessageConstant.EKBG200_KW` | `String` constant | Warning message key: CS operation. |
| 16 | `JPCOnlineMessageConstant.EKBA160_KW` | `String` constant | Error message key: work linkage (construction survey registration) conflict. |
| 17 | `JPCOnlineMessageConstant.EKB9460_KW` | `String` constant | Warning message key: course change linkage. |
| 18 | `JPCOnlineMessageConstant.EKB9470_KW` | `String` constant | Warning message key: credit equipment non-existence check. |
| 19 | `JPCOnlineMessageConstant.EKB5950__I` | `String` constant | Warning message key: equipment provision service in progress. |
| 20 | `JPCOnlineMessageConstant.EKB5960__Q` | `String` constant | Warning message key: temporary cancellation confirmation. |
| 21 | `JPCOnlineMessageConstant.EKB8820__Q` | `String` constant | Warning message key: router speed confirmation. |
| 22 | `JPCOnlineMessageConstant.EKBF290--I` | `String` constant | Warning message key: multi-function router exchange. |
| 23 | `JPCOnlineMessageConstant.EKB0370__I` | `String` constant | Info message key: reservation cancellation (予約取消). |
| 24 | `KKKScreenConst.SCREEN_ID_KKW02702` | `String` constant | Destination screen ID after successful cancellation confirmation. |
| 25 | `KKKScreenConst.SCREEN_NAME_KKW02702` | `String` constant | Destination screen name. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `KKW02701SFLogic.setInMsg` | - | - | Routes to NET or TV cancellation service setup based on service code (sets up service header parameters for invokeService) |
| - | `KKW02701SFLogic.invokeService` | - | - | Invokes the actual service component for cancellation confirmation (parametrized by setInMsg output) |
| - | `KKW02701SFLogic.isSptvStatCheckResult` | - | - | Checks spare/external linkage status (CAS number linkage) |
| - | `KKW02701SFLogic.isErrCdCheckResult` | - | - | Checks for system error codes that would prevent cancellation |
| - | `KKW02701SFLogic.isCSOpCheckResult` | - | - | Checks CS (Customer Service) operation flags |
| - | `KKW02701SFLogic.isKojiRnkiCheckResult` | - | - | Checks construction survey registration linkage for TV services |
| - | `KKW02701SFLogic.isNetKojiRnkiCheckResult` | - | - | Checks construction survey registration linkage for NET services |
| - | `KKW02701SFLogic.isCouseRkRnkiCheckResult` | - | - | Checks course change linkage status (eo Mobile 3G) |
| - | `KKW02701SFLogic.isKkSonzaiCheckResult` | - | - | Checks credit equipment existence (eo Mobile 3G) |
| - | `KKW02701SFLogic.isKktksvTkchuCheckResult` | - | - | Checks equipment provision service in-progress status (NET) |
| - | `KKW02701SFLogic.isIcjkn` | - | - | Checks temporary cancellation confirmation status (NET) |
| - | `KKW02701SFLogic.isRouterSpeedCheckResult` | - | - | Checks router speed confirmation (NET) |
| - | `KKW02701SFLogic.isFatRouterExchangeCheckResult` | - | - | Checks multi-function router exchange status (NET) |
| - | `KKW02701SFLogic.setCourseRk` | - | - | Cleans up course history list by removing duplicate entries (line 1 of course history) |
| R | `JCCWebCommon.getOpeDateTimeStamp` | JCCWebCommon | - | Retrieves current operation date-time stamp for audit trail |
| R | `JCCWebCommon.getOpeDate` | JCCWebCommon | - | Retrieves current operation date for audit trail |
| - | `JCCWebCommon.setMessageInfo` | JCCWebCommon | - | Sets UI message for display (used for error, warning, and info messages) |
| - | `KKW02701SFLogic.setErrorInfo` | KKW02701SFLogic | - | Sets error message with contextual placeholders |

All business validation checks (`is*CheckResult`) are internal helper methods within `KKW02701SFLogic` that inspect the `outputMap` populated by `invokeService`. They perform data validation by checking response flags and status codes from the service layer, but do not directly access database tables — the actual CRUD operations occur within the invoked service component (the SC layer called by `invokeService`).

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW02701 | `KKW02701SFLogic.forwardRsvClCfm()` (entry point — invoked directly from the KKW02701 cancellation confirmation screen button handler) | `invokeService [C/R] Reservation cancellation service` → Various `is*CheckResult` validations → `setCourseRk [R] Course history` |
| 2 | Screen:KKA16701 | `KKA16701SFLogic.executeOdrHakkoJokenAdd()` → `this.forwardRsvClCfm()` (one-stop API integration flow) | Same as above — invokes the same reservation cancellation confirmation logic within an integrated order issuance flow |

The method `forwardRsvClCfm` is a shared confirmation logic that serves two callers:
- **KKW02701SF**: The standalone reservation cancellation confirmation screen. The user navigates here to confirm and execute a reservation cancellation.
- **KKA16701SF**: The one-stop API order issuance screen. After completing the one-stop order issuance processing and course history screen display, the method is called to perform the same cancellation confirmation step as part of the integrated workflow.

## 6. Per-Branch Detail Blocks

### Block 1 — Initialization and Service Invocation (L217)

The method begins by initializing data structures and setting operational metadata on the form bean before invoking the service.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `inputMap = new HashMap<>()` | Initialize input parameter map for service invocation |
| 2 | SET | `outputMap = new HashMap<>()` | Initialize output parameter map to receive service results |
| 3 | SET | `paramMap = null` | Initialize parameter map (set by setInMsg) |
| 4 | SET | `svcFormBean = super.getServiceFormBean()` | Get the current form bean (inheritance information acquisition — 引継情報の取得) |
| 5 | SET | `svcFormBean.sendMessageString(UNYO_DTM, SET_VALUE, JCCWebCommon.getOpeDateTimeStamp(this, null))` | Set operation date-time stamp (運用力年月日時分秒の設定) |
| 6 | SET | `svcFormBean.sendMessageString(UNYO_YMD, SET_VALUE, JCCWebCommon.getOpeDate(this, null))` | Set operation date (運用力年月日の設定) |
| 7 | CALL | `paramMap = setInMsg(svcFormBean, inputMap, FUNC_CODE_2)` | Set up service header parameters based on service code (上り項目の設定). Routes to `setKKSV0395` for NET or `setKKSV0396` for TV |
| 8 | CALL | `msgResult = invokeService(paramMap, inputMap, outputMap)` | Invoke the actual service component for cancellation confirmation (サービス呼び出し) |

### Block 2 — Equipment Operation Reservation Flag Check (ANK-4287) (L237)

After service invocation, check if there is a conflicting equipment operation reservation.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `kksv039552ccMap = (HashMap) outputMap.get("KKSV039552SC")` | Extract the equipment operation reservation SC response map |
| 2 | IF | `kksv039552ccMap != null && kksv039552ccMap.containsKey("kikiOpRsvFlg")` | Check if response exists and contains equipment operation reservation flag |

#### Block 2.1 — Equipment Operation Reservation Flag Equals 1 (L240)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `kikiOpRsvFlg = (String) kksv039552ccMap.get("kikiOpRsvFlg")` | Get the flag value (equipment operation reservation flag — 機器操作予約フラグ) |
| 2 | IF | `"1".equals(kikiOpRsvFlg)` | Flag value "1" means an equipment operation reservation is in progress |
| 3 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF750_KW)` | Display warning: equipment operation reservation in progress |
| 4 | RETURN | `return false` | Halt processing — cannot cancel while equipment reservation exists |

### Block 3 — Post-Service Checks (ANK-4592) (L251)

A battery of three validation checks ensures no downstream conflicts exist before proceeding.

#### Block 3.1 — Spare/External Linkage Status Check (Related Check: Spare External Linkage State Check — 関連チェック（スカパー連携ステータスチェック）) (L251)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `!isSptvStatCheckResult(outputMap, svcFormBean)` | Check spare/external (SKYPERSKY) linkage status |
| 2 | SET | `setErrorInfo(EKBG220_JW, ["CAS number linkage in progress", "reservation", "cancellation"], "")` | Set error: CAS number linkage is in progress (CAS番号連携依存中) — CAS = Customer Account System |
| 3 | RETURN | `return false` | Cannot cancel while CAS linkage is pending |

#### Block 3.2 — Error Code Check (Related Check: Error Code Check — 関連チェック（エラーコードチェック）) (L259)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `!isErrCdCheckResult(outputMap, svcFormBean)` | Check for system error codes |
| 2 | SET | `setErrorInfo(EKB5440_JW, ["system error", "target reservation is cancelled"], "")` | Set error: system error — target reservation cancelled (システムエラー, 対象の予約は取消) |
| 3 | RETURN | `return false` | Cannot proceed with cancelled reservation |

#### Block 3.3 — CS Operation Check (Related Check: CS Operation Check — 関連チェック（CSオプションチェック）) (L267)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `!isCSOpCheckResult(outputMap, svcFormBean)` | Check CS (Customer Service) operation flags |
| 2 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBG200_KW)` | Display warning: CS operation |
| 3 | RETURN | `return false` | Cannot cancel while CS operation is in progress |

### Block 4 — Message Result Check (L275)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `msgResult != null` | Service returned an error/exception message |
| 2 | SET | `JCCWebCommon.setMessageInfo(this, msgResult)` | Display the service-level error message |
| 3 | RETURN | `return false` | Service invocation failed — halt processing |

### Block 5 — Service Code Extraction and Service-Type Branching (v7.00.00) (L281)

Extract the service code and branch verification logic based on service type.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `svcCd = svcFormBean.sendMessageString("サービスコード", GET_VALUE)` | Get service code (サービスコード) from form bean |
| 2 | IF | `svcCd equals SVC_CD_TV OR SVC_CD_NET` | v7.00.00 addition: check for e-hikari TV or e-hikari NET service (OM-2016-0000943 MOD). Note: Originally only TV, expanded to include NET |

#### Block 5.1 — Get Construction Work Existence Flag (L285)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `kojiUmFlg = svcFormBean.sendMessageString(KKW02701SFConst.KOJI_UM_FLG, GET_VALUE)` | Get construction work existence flag (工事有無フラグ) |
| 2 | IF | `isNotBlank(kojiUmFlg)` | Flag is present (工事有無フラグ) |

##### Block 5.1.1 — Work Exists (kojiUmFlg = UM_U) (L291)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `kojiUmFlg equals UM_U` | Work exists (工事有) — construction has been registered |

###### Block 5.1.1.1 — TV Service Work Linkage Check (L294)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `svcCd equals SVC_CD_TV` | e-hikari TV service branch (OM-2016-0000943 ADD) |
| 2 | IF | `!isKojiRnkiCheckResult(outputMap)` | Construction survey registration linkage check (工事連携確認チェック) |
| 3 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBA160_KW)` | Display error: work linkage conflict (工事連携) |
| 4 | RETURN | `return true` | Return true (allows the warning to display and lets the user decide — different from false returns which block) |

###### Block 5.1.1.2 — NET Service Work Linkage Check (L308)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `svcCd equals SVC_CD_NET` | e-hikari NET service branch (OM-2016-0000943 ADD) |
| 2 | IF | `!isNetKojiRnkiCheckResult(outputMap)` | Construction survey registration linkage check for NET (工事連携確認チェック) |
| 3 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBA160_KW)` | Display error: work linkage conflict (工事連携) |
| 4 | RETURN | `return true` | Return true (allows warning display) |

### Block 6 — Pricing Group / Secondary Service Type Branching (L326)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `prcGrpCd = svcFormBean.sendMessageString("料金グループコード", GET_VALUE)` | Get pricing group code (料金グループコード) from form bean |

#### Block 6.1 — eo Mobile 3G (PRC_GRP_CD_08) (L330)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `prcGrpCd equals PRC_GRP_CD_08` | Pricing group "08" — eo Mobile 3G (eoモバイル3G) |
| 2 | IF | `!isCouseRkRnkiCheckResult(outputMap)` | Course change linkage check (コース変更連携済チェック). If course change has not been linked, show warning |
| 3 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9460_KW)` | Display warning: course change linkage (コース変更連携) |
| 4 | IF | `!isKkSonzaiCheckResult(outputMap)` | Credit equipment existence check (クレジット機器存在チェック). Verifies the customer has the required equipment |
| 5 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9470_KW)` | Display warning: credit equipment non-existence (クレジット機器) |

#### Block 6.2 — e-hikari NET Service (SVC_CD_NET) (L344)

This branch applies additional checks specific to NET services.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `svcCd equals SVC_CD_NET` | e-hikari NET service branch |
| 2 | IF | `!isKktksvTkchuCheckResult(outputMap)` | Equipment provision service in-progress check (機器提供サービス提供中確認チェック). Verifies no active equipment provision is pending |
| 3 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5950__I)` | Display warning: equipment provision service in progress |
| 4 | IF | `!isIcjkn(outputMap, "KKSV039527SC")` | Temporary cancellation confirmation check (一時取消確認). Calls KKSV039527SC for temporary cancellation lookup. Note: Original method `isIcjknClCheckResult` was replaced with `isIcjkn` (OM-2015-0002629 MOD) |
| 5 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5960__Q)` | Display warning: temporary cancellation (一時取消) |
| 6 | IF | `!isRouterSpeedCheckResult(outputMap, svcFormBean)` | Router speed check (ルータ速度確認チェック). Verifies the router type meets minimum speed requirements |
| 7 | SET | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB8820__Q)` | Display warning: router speed confirmation |
| 8 | IF | `!isFatRouterExchangeCheckResult(outputMap, svcFormBean)` | Multi-function router exchange check (多機能ルータ交換チェック). ANK-3412-14-00 ADD — checks for multi-function router exchange conflicts |
| 9 | SET | `JCCWebCommon.setMessageInfo(this, "EKBF290--I")` | Display warning: multi-function router exchange |

#### Block 6.3 — Else (Other Services) (L362)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | ELSE | (empty block) | Services that are neither TV, NET, nor pricing group 08 fall through without additional checks |

### Block 7 — Post-Check Processing (L367)

Final processing steps executed after all verification checks complete successfully.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `setCourseRk()` | Clean up course history list — removes duplicate entries at index 1 from the course history list (コース履歴一覧の編集). Iterates through the list and removes entries at position 1 |
| 2 | SET | `JCCWebCommon.setMessageInfo(this, EKB0370__I, ["reservation cancellation"])` | Display info message: reservation cancellation (予約取消) |
| 3 | SET | `setForwardInfo(KKWScreenConst.SCREEN_ID_KKW02702, KKWScreenConst.SCREEN_NAME_KKW02702)` | Set navigation to the next screen (KKW02702 — cancellation result screen) (遷移先画面情報の設定) |
| 4 | RETURN | `return true` | Processing succeeded — navigate to next screen |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `forwardRsvClCfm` | Method | Forward Reservation Cancellation Confirmation — the button action that processes a user's intent to cancel a service reservation |
| `svcCd` | Field | Service Code (サービスコード) — identifies the type of service (e.g., TV, NET) |
| `prcGrpCd` | Field | Pricing Group Code (料金グループコード) — classifies the pricing plan/service tier |
| `kojiUmFlg` | Field | Construction Work Existence Flag (工事有無フラグ) — indicates whether construction/survey work has been registered for the service |
| `UM_U` | Constant | Work Exists (工事有) — the value of kojiUmFlg when construction work is registered |
| `kikiOpRsvFlg` | Field | Equipment Operation Reservation Flag (機器操作予約フラグ) — indicates if an equipment-related operation is in progress |
| `sptvStat` | Field | Spare/SKYPERVSKY Linkage Status (スカパー連携ステータス) — status of SKYPERSKY satellite service linkage |
| `ICJKCN` | Acronym | Temporary Cancellation (一時取消) — a provisional/pending cancellation that may be in progress |
| `kkSonZai` | Acronym | K-K Sonzai (ケーケー存在) — credit equipment existence check |
| `KKTksvTkchu` | Acronym | K-K Tokushu Service In-Progress (K-K 特定サービス提供中) — equipment provision service currently active |
| `COURSE_RK` | Field | Course History (コース履歴) — record of course/service plan changes for the customer |
| `KOJI_RNKI` | Acronym | Construction Survey Registration Linkage (工事届出連携) — coordination with construction/survey registration systems |
| `NET_KOJI_RNKI` | Acronym | NET Construction Survey Registration Linkage — work linkage check specific to e-hikari NET services |
| `fatRouterExchange` | Field | Multi-function Router Exchange (多機能ルータ交換) — check for conflicts when exchanging routers for multi-function units |
| `UNYO_DTM` | Constant | Operation Date-Time (運用力年月日時分秒) — audit trail timestamp key in the data bean |
| `UNYO_YMD` | Constant | Operation Date (運用力年月日) — audit trail date key in the data bean |
| `FUNC_CODE_2` | Constant | Function Code "2" — indicates cancellation confirmation operation mode (vs. FUNC_CODE_1 for fix/confirmation) |
| `SVC_CD_TV` | Constant | Service Code for TV (eo光TV) — e-hikari TV bundled service (cable/satellite) |
| `SVC_CD_NET` | Constant | Service Code for NET (eo光ネット) — e-hikari NET fiber internet service |
| `PRC_GRP_CD_08` | Constant | Pricing Group Code "08" — identifies eo Mobile 3G service |
| `KKSV0395` | SC | NET service cancellation service setup (sets up service header for NET cancellation) |
| `KKSV0396` | SC | TV service cancellation service setup (sets up service header for TV cancellation) |
| `KKSV039552SC` | SC | Equipment operation reservation status check component |
| `KKSV039527SC` | SC | Temporary cancellation lookup service component |
| CAS | Acronym | Customer Account System — external account linkage system |
| CS | Acronym | Customer Service — customer service operations that may conflict with cancellation |
| e-hikari TV | Business term | Sonyo Hikari TV — NTT东 Japan's fiber-optic TV bundled internet service |
| e-hikari NET | Business term | Sonyo Hikari NET — NTT East's fiber-optic internet-only service |
| eo Mobile 3G | Business term | eo Mobile 3G — NTT East's mobile service (pricing group 08) with special equipment/credit checks |
| SKYPERSKY | Business term | SKY PerfecTV! — satellite broadcasting service that requires CAS number linkage |
| 工事 (Koji) | Japanese term | Construction/Installation work — physical installation or survey work for fiber service |
| 予約取消 (Yoyaku Torikeshi) | Japanese term | Reservation Cancellation — the overall business process this method supports |
| 料金グループ (Ryoukin Group) | Japanese term | Pricing Group — classification of service pricing tiers |
| 工事有無 (Koji Umun) | Japanese term | Construction Work Existence/Non-Existence — whether physical work has been scheduled |
| 機器操作 (Kiki Souri) | Japanese term | Equipment Operation — operations related to customer premises equipment |
| スカパー連携 (Skapaa Renkei) | Japanese term | SKYPERSKY Linkage — coordination with satellite broadcasting service |
| 一時取消 (Ichiji Torikeshi) | Japanese term | Temporary Cancellation — provisional/pending cancellation state |
| クレジット機器 (Kurejitto Kiki) | Japanese term | Credit Equipment — equipment provided on credit/lease to the customer |
| ルータ速度 (Ruta Sokudo) | Japanese term | Router Speed — minimum speed requirements for the connected router |
| 多機能ルータ交換 (Takino nou Ruta Koukan) | Japanese term | Multi-function Router Exchange — replacing a standard router with a multi-function unit |
| コース変更連携 (Koosu Henkou Renkei) | Japanese term | Course Change Linkage — coordination with course/service plan change systems |
| 工事連携確認 (Koji Renkei Kakunin) | Japanese term | Construction Linkage Confirmation — verifying construction/survey registration status |
| EKB0370__I | Message constant | Info: "Reservation Cancellation" — success confirmation message |
| EKBF750_KW | Message constant | Warning: Equipment operation reservation in progress |
| EKBG220_JW | Message constant | Error: CAS number linkage in progress |
| EKB5440_JW | Message constant | Error: System error — target reservation cancelled |
| EKBG200_KW | Message constant | Warning: CS operation in progress |
| EKBA160_KW | Message constant | Error: Construction linkage conflict |
| EKB9460_KW | Message constant | Warning: Course change linkage not complete |
| EKB9470_KW | Message constant | Warning: Credit equipment not found |
| EKB5950__I | Message constant | Warning: Equipment provision service in progress |
| EKB5960__Q | Message constant | Warning: Temporary cancellation in progress |
| EKB8820__Q | Message constant | Warning: Router speed confirmation required |
| EKBF290--I | Message constant | Warning: Multi-function router exchange required |
