# Business Logic — FUW05401SFLogic.runVariTranForTrgtKeiRec() [173 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW05401SF.FUW05401SFLogic` |
| Layer | Service / Business Logic (Web presentation tier logic, part of the K-Opticom eo Customer Backbone System) |
| Module | `FUW05401SF` (Package: `eo.web.webview.FUW05401SF`) |

## 1. Role

### FUW05401SFLogic.runVariTranForTrgtKeiRec()

This method executes various processing steps for target contract records within the eo Light Telephone Option Service Application/Cancellation business logic. It serves as the central contract-state router in the `FUW05401SF` (split telephone service application/cancellation) workflow, operating within the eo Customer Backbone System's verification batch.

The method performs three core business operations: **(1) Contract Status Judgment** — it iterates over an array of option/sub-option service contract records and categorizes each into one of three mutually exclusive counts: "reservation processing" (records whose option service status is "010" / order received but not yet fulfilled), "in-contract" (records whose status is "020" / inquiry completed, "030" / concluded, or "100" / service in progress), or "same-month cancellation" (records whose status is "910" / cancellation completed, whose reservation effective date is before the operation date, and whose effective date month matches the operation date month). **(2) Telephone Option Discrepancy-Reservation Check** — it independently checks whether any record in the service contract information list has a pending discrepancy reservation, which would prevent further processing. **(3) Processing Classification** — based on the computed counts and the discrepancy-check flag, it invokes `judgeTranDiv` to determine whether the batch should proceed with registration (申込, process division "1"), cancellation (解約, process division "2"), or modification (変更, process division "3").

If any reservation-processing records exist (count > 0) or a discrepancy-reservation flag is set, the method throws a `JCCBusinessException` with error code "0203" (Contract Change in Progress Error), preventing the application from modifying a contract that is already in-flight. For processing divisions of "1" (Registration) or "3" (Modification), it additionally runs a promotional incentive check via `checkTokusokuStat`.

The method implements a **classification-and-dispatch** design pattern: it first classifies all target records into state buckets, validates a guard condition, then delegates to a separate method (`judgeTranDiv`) for processing-branch routing. It acts as a **shared utility** invoked by the parent logic method `init()`, which is the main entry point for the screen `KKSV0004` (Split Telephone Service Application/Cancellation).

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> GET_OPE_DATE["Get opeDate"]
    GET_OPE_DATE --> INIT_VARS["Initialize counters
rsvTtdkiCnt=0, keiyakuChuCnt=0, dougetuDslCnt=0"]
    INIT_VARS --> GET_SVC_LIST["Get svcKeiInfoList"]

    GET_SVC_LIST --> FOR_START["For each record in tranTrgtRecOpArray"]

    FOR_START --> GET_RSV_APLY_YMD["Get rsvAplyYmd"]
    GET_RSV_APLY_YMD --> OPT_FLG_CHECK{Option
processing?
flag = 1}

    OPT_FLG_CHECK -->|Yes| OP_STAT_010{OP status
= 010}
    OP_STAT_010 -->|Yes| INCR_RSV["rsvTtdkiCnt++"]
    OP_STAT_010 -->|No| SBOP_STAT_010{SBOP status
= 010}
    SBOP_STAT_010 -->|Yes| INCR_RSV1["rsvTtdkiCnt++"]
    SBOP_STAT_010 -->|No| OP_STAT_MULTI{OP status
= 020 or 030 or 100}
    OP_STAT_MULTI -->|Yes| INCR_KEI["keiyakuChuCnt++"]
    OP_STAT_MULTI -->|No| DOUGETU_CHECK{OP status
= 910 and
rsv date < ope
and same month?}
    DOUGETU_CHECK -->|Yes| INCR_DSL["dougetuDslCnt++"]
    DOUGETU_CHECK -->|No| FOR_NEXT1["Next iteration"]

    INCR_RSV --> FOR_NEXT1
    INCR_RSV1 --> FOR_NEXT1
    INCR_KEI --> FOR_NEXT1
    INCR_DSL --> FOR_NEXT1

    OPT_FLG_CHECK -->|No| SBOP_FLG_CHECK{SBOP
processing?
flag = 1}
    SBOP_FLG_CHECK -->|Yes| SBOP_STAT_010_A{SBOP status
= 010}
    SBOP_FLG_CHECK -->|No| FOR_NEXT2["Next iteration"]
    SBOP_STAT_010_A -->|Yes| INCR_RSV2["rsvTtdkiCnt++"]
    SBOP_STAT_010_A -->|No| SBOP_STAT_MULTI{SBOP status
= 020 or 030 or 100}
    SBOP_STAT_MULTI -->|Yes| INCR_KEI1["keiyakuChuCnt++"]
    SBOP_STAT_MULTI -->|No| FOR_NEXT2

    INCR_RSV2 --> FOR_NEXT2
    INCR_KEI1 --> FOR_NEXT2

    FOR_NEXT1 --> FOR_END{End of loop?}
    FOR_NEXT2 --> FOR_END
    FOR_END -->|No| FOR_START
    FOR_END -->|Yes| CHECK_RESERVE

    CHECK_RESERVE["Check reserveFlg != 1?"]
    CHECK_RESERVE -->|No| SKIP_RESERVE["Skip discrepancy check"]
    CHECK_RESERVE -->|Yes| SVC_FOR["For each svcKeiInfo"]

    SVC_FOR --> GET_CD_STAT["Get opSvcCd, sbopSvcCd,
opSvcStat, sbopSvcStat"]
    GET_CD_STAT --> PACK_CHECK{In TEL_PACK_OPT?}
    PACK_CHECK -->|No| SVC_NEXT["Next iteration"]
    PACK_CHECK -->|Yes| STAT_010_B{opSvcStat OR
sbopSvcStat = 010}
    STAT_010_B -->|Yes| SET_RESERVE_1["reserveFlg = 1
break"]
    STAT_010_B -->|No| IDO_RSV_CHECK{IDO_RSV_DTL_CD_01
NOT null?}
    IDO_RSV_CHECK -->|Yes| SET_RESERVE_2["reserveFlg = 1
break"]
    IDO_RSV_CHECK -->|No| SVC_NEXT

    SET_RESERVE_1 --> SVC_END{End of svc loop?}
    SET_RESERVE_2 --> SVC_END
    SVC_NEXT --> SVC_END
    SVC_END -->|No| SVC_FOR
    SVC_END -->|Yes| RSV_ERROR{rsvTtdkiCnt > 0
OR reserveFlg = 1?}
    SKIP_RESERVE --> RSV_ERROR

    RSV_ERROR -->|Yes| THROW["Throw JCCBusinessException
error 0203"]
    RSV_ERROR -->|No| BUILD_MAP["Build kensuMap
put all 3 counters"]

    THROW --> END_LOG["Log end marker"]
    BUILD_MAP --> CALL_JUDGE["judgeTranDiv"]
    CALL_JUDGE --> GET_TRAN_DIV["Get tran_div from bean"]
    GET_TRAN_DIV --> MSKM_CHG{tran_div = 1 or 3?}
    MSKM_CHG -->|Yes| CHECK_PROMO["checkTokusokuStat"]
    MSKM_CHG -->|No| SKIP_PROMO["Skip promo check"]
    CHECK_PROMO --> RETURN_MAP["Return kensuMap"]
    SKIP_PROMO --> RETURN_MAP
    RETURN_MAP --> END_METHOD(["Return kensuMap
End"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `commonInfoBean` | `X31SDataBeanAccess` | Shared form bean containing common system-wide information (SSO details, functional codes) used across the entire screen session. Passed to `checkTokusokuStat` when the processing division is Registration or Modification. |
| 2 | `bean` | `X31SDataBeanAccess` | Service form bean carrying the primary form data for the current request. Contains the option/sub-option processing flags (`op_tran_flg`, `sbop_tran_flg`), the service contract information list (`svc_kei_info_list`), the reservation flag (`reserve_flg`), and the processing division code (`tran_div`). |
| 3 | `tranTrgtRecOpArray` | `X31SDataBeanAccess[]` | Array of contract records to process. Each element represents a single option or sub-option service contract line item. Contains the option service status (`op_svc_kei_stat_01`), sub-option service status (`sbop_svc_kei_stat_01`), and reservation effective date (`kk0351_rsv_aply_ymd_01`) for each record. |

**Read instance fields (from this class):**

| Field | Type | Business Description |
|-------|------|---------------------|
| `TRAN_DIV_MSKM` | `String` (constant) | Processing division code "1" (Registration/Application) |
| `TRAN_DIV_CHG` | `String` (constant) | Processing division code "3" (Modification) |
| `IS_FUTURE_DATE_PARAM_TODAY_YES` | `String` (constant) | Parameter value "1" passed to future-date comparison, meaning "include today as future" |
| `DEBUG_LOG` | `Logger` | Debug log instance for structured logging |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JFUWebCommon.getOpeDate(this, null)` | — | — | Retrieves the current operation date (business date) from the system context. |
| R | `OneStopDataBeanAccess.getDataBeanArray("svc_kei_info_list")` | — | — | Retrieves the service contract information list array from the form bean. |
| R | `OneStopDataBeanAccessArray.getDataBean(i)` | — | — | Retrieves the i-th record from the service contract info list array. |
| R | `OneStopDataBeanAccessArray.getCount()` | — | — | Returns the count of records in the array. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(record, "kk0351_rsv_aply_ymd_01")` | — | — | Reads the reservation effective date (YYYYMMDD string) from a target contract record. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(bean, "op_tran_flg")` | — | — | Reads the option processing execution flag from the service form bean. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(record, "op_svc_kei_stat_01")` | — | — | Reads the option service contract status code from a target contract record. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(record, "sbop_svc_kei_stat_01")` | — | — | Reads the sub-option service contract status code from a target contract record. |
| R | `OneStopDataBeanAccess.sendMessageString("reserve_flg", GET)` | — | — | Reads the reservation flag value from the service form bean. |
| R | `OneStopDataBeanAccess.sendMessageString("op_svc_cd_01", GET)` | — | — | Reads the option service code from a service contract info record. |
| R | `OneStopDataBeanAccess.sendMessageString("sbop_svc_cd_01", GET)` | — | — | Reads the sub-option service code from a service contract info record. |
| R | `OneStopDataBeanAccess.sendMessageString("op_svc_kei_stat_01", GET)` | — | — | Reads the option service contract status from a service contract info record. |
| R | `OneStopDataBeanAccess.sendMessageString("sbop_svc_kei_stat_01", GET)` | — | — | Reads the sub-option service contract status from a service contract info record. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(info, "kk0351_ido_rsv_dtl_cd_01")` | — | — | Reads the discrepancy reservation detail code for option service from a contract info record. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(info, "kk0401_ido_rsv_dtl_cd_01")` | — | — | Reads the discrepancy reservation detail code for sub-option service from a contract info record. |
| R | `OneStopDataBeanAccess.getDataBeanItemByPath(bean, "tran_div")` | — | — | Reads the processing division code (1=Registration, 2=Cancellation, 3=Modification) from the form bean. |
| C | `HashMap<String, Integer>` constructor | — | — | Creates a new HashMap to accumulate processing result counts. |
| C | `HashMap.put("rsv_ttdki_cnt", value)` | — | — | Stores the reservation processing count in the result map. |
| C | `HashMap.put("keiyaku_chu_cnt", value)` | — | — | Stores the in-contract count in the result map. |
| C | `HashMap.put("dougetu_dsl_cnt", value)` | — | — | Stores the same-month cancellation count in the result map. |
| - | `JFUWebCommon.isFutureDate(opeDate, rsvAplyYmd, "1")` | — | — | Compares whether rsvAplyYmd is a future date relative to opeDate (including today as future). |
| - | `JFUWebCommon.isNull(value)` | — | — | Checks if a string value is null or empty. |
| - | `String.substring(0, 6)` | — | — | Extracts the YYYYMM portion of a date string for month-level comparison. |
| C | `judgeTranDiv(bean, kensuMap)` | — | — | Delegates to the processing classification method that sets tran_div on the bean based on computed counts. |
| C | `checkTokusokuStat(commonInfoBean)` | — | — | Executes the promotional incentive status check for Registration/Modification screens. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `FUW05401SFLogic.init()` | `init()` -> `runVariTranForTrgtKeiRec(bean, tranTrgtRecOpArray, commonInfoBean)` | `judgeTranDiv(bean, kensuMap)` [-], `checkTokusokuStat(commonInfoBean)` [-], `getDataBeanItemByPath` [R], `sendMessageString` [-], `isNull` [-] |

**Notes:**
- The only direct caller identified is `FUW05401SFLogic.init()`, which is the main initialization entry point for the split telephone service application/cancellation screen (`KKSV0004`).
- Terminal operations flow through `judgeTranDiv` (processing classification, further CRUD details are in that method) and `checkTokusokuStat` (promotional incentive check, further details in that method).
- No screen/batch entry points were found within 8 hops — the method operates deep within the service logic tier.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Get operation date and initialize counters (L1209)

> Sets the business date and initializes the three status counter variables.

| # | Type | Code |
|---|------|------|
| 1 | LOG | `DEBUG_LOG.info("----- FUW5401 runVariTranForTrgtKeiRec Start -----")` |
| 2 | CALL | `opeDate = JFUWebCommon.getOpeDate(this, null)` // Get current operation date [-> YYYYMMDD format] |
| 3 | SET | `rsvTtdkiCnt = 0` // Reservation processing count (予約手続件数) |
| 4 | SET | `keiyakuChuCnt = 0` // In-contract count (契約中件数) |
| 5 | SET | `dougetuDslCnt = 0` // Same-month cancellation count (同月解約件数) |
| 6 | CALL | `svcKeiInfoList = bean.getDataBeanArray("svc_kei_info_list")` // Get service contract info list array [-> SVC_KEI_INFO_LIST constant] |

**Block 2** — [FOR LOOP] Iterate over target contract records (L1213)

> Loops through each record in `tranTrgtRecOpArray`. Within the loop, reads reservation effective date and evaluates contract status.

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsvAplyYmd = JFUWebCommon.getDataBeanItemByPath(tranTrgtRecOpArray[i], "kk0351_rsv_aply_ymd_01")` // Reservation effective date (予約適用年月日) |
| 2 | IF | Check if `op_tran_flg` = "1" (option processing flag) — see Block 2.1 |

**Block 2.1** — [IF/ELSE-IF/ELSE] Option processing branch `[OP_TRAN_FLG = "1"]` (L1217)

> When the option processing flag is set, evaluate option and sub-option service status codes to classify the record.

| # | Type | Code |
|---|------|------|
| 1 | IF | `op_svc_kei_stat_01` = "010" (option service status = order received / 受注済) |
| 1.1 | SET | `rsvTtdkiCnt++` // Increment reservation processing count |
| 1.2 | ELSE-IF | `sbop_svc_kei_stat_01` = "010" (sub-option service status = order received / 受注済) |
| 1.2.1 | SET | `rsvTtdkiCnt++` // Increment reservation processing count |
| 1.3 | ELSE-IF | `op_svc_kei_stat_01` = "020" (inquiry completed) OR "030" (concluded) OR "100" (service in progress) |
| 1.3.1 | SET | `keiyakuChuCnt++` // Increment in-contract count |
| 1.4 | ELSE-IF | `op_svc_kei_stat_01` = "910" AND `rsvAplyYmd` < `opeDate` (reservation effective date before operation date) AND same month as `opeDate` |
| 1.4.1 | SET | `dougetuDslCnt++` // Increment same-month cancellation count |
| 1.4.2 | Condition Detail | `isFutureDate(opeDate, rsvAplyYmd, "1")` — checks that rsvAplyYmd is before opeDate (today included as future) |
| 1.4.3 | Condition Detail | `opeDate.substring(0,6)+"01"` = `rsvAplyYmd.substring(0,6)+"01"` — checks that both dates share the same YYYYMM |

**Block 2.2** — [ELSE / IF] Sub-option processing branch `[SBOP_TRAN_FLG = "1"]` (L1255)

> When the option processing flag is NOT set, check if sub-option processing is active. Only sub-option specific statuses are evaluated (no same-month cancellation check here).

| # | Type | Code |
|---|------|------|
| 1 | IF | `sbop_svc_kei_stat_01` = "010" (sub-option service status = order received) |
| 1.1 | SET | `rsvTtdkiCnt++` // Increment reservation processing count |
| 1.2 | ELSE-IF | `sbop_svc_kei_stat_01` = "020" OR "030" OR "100" (inquiry/completed/service active) |
| 1.2.1 | SET | `keiyakuChuCnt++` // Increment in-contract count |

**Block 3** — [IF] Telephone option discrepancy-reservation check (L1274)

> If the `reserve_flg` is NOT "1", iterate over the service contract information list to check for any pending discrepancy reservations on option pack services.

| # | Type | Code |
|---|------|------|
| 1 | SET | `reserveFlg = bean.sendMessageString("reserve_flg", GET)` // Read reservation flag from bean |
| 2 | IF | `reserveFlg` != "1" (no existing discrepancy reservation) — proceed with check |
| 2.1 | FOR | Iterate over `svcKeiInfoList` (service contract info records) |
| 2.1.1 | SET | `opSvcCd = svcKeiInfobean.sendMessageString("op_svc_cd_01", GET)` // Option service code |
| 2.1.2 | SET | `sbopSvcCd = svcKeiInfobean.sendMessageString("sbop_svc_cd_01", GET)` // Sub-option service code |
| 2.1.3 | SET | `opSvcStat = svcKeiInfobean.sendMessageString("op_svc_kei_stat_01", GET)` // Option service status |
| 2.1.4 | SET | `sbopSvcStat = svcKeiInfobean.sendMessageString("sbop_svc_kei_stat_01", GET)` // Sub-option service status |
| 2.1.5 | IF | Neither `opSvcCd` nor `sbopSvcCd` is in `TEL_PACK_OPT_LIST` → continue (not an option pack service, skip) |
| 2.1.6 | IF | `opSvcStat` = "010" OR `sbopSvcStat` = "010" (pending order for option pack service) |
| 2.1.6.1 | SET | `reserveFlg = "1"` // Mark as having discrepancy reservation |
| 2.1.6.2 | CALL | `bean.sendMessageString("reserve_flg", SET, "1")` // Update reserve flag in bean |
| 2.1.6.3 | EXEC | `break` // Exit loop early |
| 2.1.7 | IF | `kk0351_ido_rsv_dtl_cd_01` is NOT null OR `kk0401_ido_rsv_dtl_cd_01` is NOT null (discrepancy reservation detail code exists) |
| 2.1.7.1 | SET | `reserveFlg = "1"` // Mark as having discrepancy reservation |
| 2.1.7.2 | CALL | `bean.sendMessageString("reserve_flg", SET, "1")` // Update reserve flag in bean |
| 2.1.7.3 | EXEC | `break` // Exit loop early |

**Block 4** — [IF] Reservation error check (L1299)

> If any reservation-processing records exist or a discrepancy-reservation flag is set, throw a business exception preventing further processing.

| # | Type | Code |
|---|------|------|
| 1 | IF | `rsvTtdkiCnt > 0` OR `reserveFlg` = "1" |
| 1.1 | LOG | `DEBUG_LOG.info("◆◆◆FUW05401 (6)eo光電話オプションサービス申し込む解約：予約手続中エラー◆◆◆")` // "Reservation in progress error" |
| 1.2 | THROW | `new JCCBusinessException("0203")` // "0203" — Contract Change in Progress Error (契約変更手続中エラー) |

**Block 5** — [SET] Build result map and delegate (L1314)

> Creates the return HashMap with all three counters and delegates to `judgeTranDiv` for processing-classification decision logic.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kensuMap = new HashMap<String, Integer>()` |
| 2 | CALL | `kensuMap.put("rsv_ttdki_cnt", rsvTtdkiCnt)` // Reservation processing count |
| 3 | CALL | `kensuMap.put("keiyaku_chu_cnt", keiyakuChuCnt)` // In-contract count |
| 4 | CALL | `kensuMap.put("dougetu_dsl_cnt", dougetuDslCnt)` // Same-month cancellation count |
| 5 | CALL | `judgeTranDiv(bean, kensuMap)` // Delegate processing classification |

**Block 6** — [IF] Processing classification conditional branch — promotional check (L1321)

> If the processing division is Registration ("1") or Modification ("3"), execute the promotional incentive status check. For Cancellation ("2"), skip this check.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tran_div = JFUWebCommon.getDataBeanItemByPath(bean, "tran_div")` // Get processing division from bean |
| 2 | IF | `tran_div` = "1" (MSKM / Registration / 申込) OR `tran_div` = "3" (CHG / Modification / 変更) |
| 2.1 | CALL | `checkTokusokuStat(commonInfoBean)` // Check promotional incentive status (キャンペーン促促チェック) |
| 3 | ELSE | Processing division is "2" (DSL / Cancellation) — no promotional check needed |
| 4 | LOG | `DEBUG_LOG.info("----- FUW5401 runVariTranForTrgtKeiRec End -----")` |
| 5 | RETURN | `return kensuMap` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `opeDate` | Field | Operation date — the business date used as reference for date comparisons (YYYYMMDD format) |
| `rsvTtdkiCnt` | Field | Reservation processing count — number of contract records that are in the "order received" (受注済) state, meaning their processing is pending |
| `keiyakuChuCnt` | Field | In-contract count — number of contract records that are active (inquiry completed, concluded, or service in progress) |
| `dougetuDslCnt` | Field | Same-month cancellation count — number of records cancelled within the same calendar month as the operation date |
| `rsvAplyYmd` | Field | Reservation effective date — the date from which a reservation applies (kk0351_rsv_aply_ymd_01), stored as YYYYMMDD string |
| `op_tran_flg` | Field | Option processing flag — indicates whether this request involves option service processing ("1" = yes) |
| `sbop_tran_flg` | Field | Sub-option processing flag — indicates whether this request involves sub-option service processing ("1" = yes) |
| `svc_kei_info_list` | Field | Service contract information list — array of service contract records containing service codes and status codes |
| `op_svc_kei_stat_01` | Field | Option service contract status code — status of the option service contract |
| `sbop_svc_kei_stat_01` | Field | Sub-option service contract status code — status of the sub-option service contract |
| `op_svc_cd_01` | Field | Option service code — identifies the type of option service (e.g., FTTH, Mail, ENUM) |
| `sbop_svc_cd_01` | Field | Sub-option service code — identifies the type of sub-option service |
| `kk0351_ido_rsv_dtl_cd_01` | Field | Discrepancy reservation detail code for option service — indicates if there is a pending discrepancy reservation on the option service |
| `kk0401_ido_rsv_dtl_cd_01` | Field | Discrepancy reservation detail code for sub-option service — indicates if there is a pending discrepancy reservation on the sub-option service |
| `reserve_flg` | Field | Discrepancy reservation flag — "1" means a discrepancy reservation exists that prevents processing |
| `tran_div` | Field | Processing division code — "1" (Registration/申込), "2" (Cancellation/解約), "3" (Modification/変更) |
| `kensuMap` | Field | Result count map — HashMap containing the three category counts returned by this method |
| `TEL_PACK_OPT_LIST` | Constant | Option pack service code list — predefined set of service codes belonging to the telephone option package |
| CD00037_010 | Constant | Service status code "010" — order received (受注済), meaning the order has been received but not yet fulfilled |
| CD00037_020 | Constant | Service status code "020" — inquiry completed (照会済), meaning a service inquiry has been completed |
| CD00037_030 | Constant | Service status code "030" — concluded (結済), meaning the service contract has been concluded/activated |
| CD00037_100 | Constant | Service status code "100" — service in progress (サービス提供中), meaning the service is currently being provided to the customer |
| CD00037_910 | Constant | Service status code "910" — cancellation completed (解除済), meaning the service has been cancelled |
| CD00001_1 | Constant | String value "1" — used to indicate affirmative/active flag |
| S_ONE | Constant | String value "1" — used as the affirmative flag value in this codebase |
| FUW05401SF | Module | Split Telephone Service Application/Cancellation — the module handling application and cancellation of split telephone services (割込電話サービス) |
| JCCBusinessException | Class | Business common exception class — thrown when a business rule violation occurs (e.g., contract change in progress) |
| X31SDataBeanAccess | Class | Service-layer data bean access wrapper — provides typed access to form/screen data via path-based getters/setters |
| X31SDataBeanAccessArray | Class | Array wrapper for service data beans — provides array-style iteration and count operations |
| JFUWebCommon | Class | Web common utility class — provides shared web-tier helpers for date retrieval, data bean access, null checks, and string operations |
| 申込 (Mokumu) | Business term | Application/Registration — processing type "1", used for new service registration |
| 解約 (Kaiya) | Business term | Cancellation — processing type "2", used for service termination |
| 変更 (Henkou) | Business term | Modification — processing type "3", used for service plan changes |
| 受注済 (Juchu-zumi) | Business term | Order received — the order has been received by the operator and is awaiting fulfillment |
| 照会済 (Shoukai-zumi) | Business term | Inquiry completed — a service inquiry has been completed |
| 結済 (Musubi-zumi) | Business term | Concluded — the service contract has been concluded/activated |
| サービス提供中 | Business term | Service in progress — the service is actively being provided to the customer |
| 解除済 (Kaijo-zumi) | Business term | Cancellation completed — the service has been cancelled |
| 予約手続中 (Yoyoku tetsuduki-chu) | Business term | Reservation processing in progress — the contract record is awaiting final processing |
| 契約中 (Keiyaku-chu) | Business term | In-contract — the contract is active and not in a pending state |
| 同月解約 (Dougetu kaiya) | Business term | Same-month cancellation — a cancellation occurring within the same calendar month as the contract effective date |
| 割込電話サービス | Business term | Split Telephone Service — the overarching service domain handled by the FUW05401SF module |
| eo光電話オプションサービス | Business term | eo Light Telephone Option Service — the specific service offering (fiber-optic internet with optional add-on services) |
| キャンペーン (Kyanpee) | Business term | Campaign/Promotional incentive — marketing promotions checked for eligibility during Registration/Modification |
| 異動予約 (Idou yoyaku) | Business term | Discrepancy reservation — a pending record change/reservation that blocks concurrent modifications |
