---

# Business Logic — FUW05401SFLogic.callSvcFUSV0031() [85 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW05401SF.FUW05401SFLogic` |
| Layer | Controller (Web Logic Layer — `eo.web.webview.*`) |
| Module | `FUW05401SF` (Package: `eo.web.webview.FUW05401SF`) |

## 1. Role

### FUW05401SFLogic.callSvcFUSV0031()

This method performs the **initial screen display service invocation** for the "NTT Light Phone Option Service Subscription/Cancellation" screen (`FUSV0031` — eo Light Phone Option Service Subscription/Cancellation (Initial Display)). It serves as the sole service-call orchestrator for the FUW05401SF screen logic, executing a batch of eight SC (Service Component) calls that aggregate contract information, pricing, and option service data required to render the initial subscription/cancellation page.

The method implements a **delegation + mapper dispatch pattern**: it prepares input parameters by populating an `inputMap` via an `FUSV0031_FUSV0031OPDBMapper` instance, invokes the backend service layer through `invokeService()`, then extracts returned data back into the screen's output map. After the service call, it validates whether the customer is restricted from subscribing to option services (the "option application mask check"), throwing a business exception (`ERROR_CODE_0102`) if the customer is ineligible.

It retrieves the current operation date (`opeDate`) and performs a final mapper extraction for the phone option package data before returning the fully populated `outputMap` — which is subsequently consumed by the UI layer to display pricing details, contract lists, and option availability status.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["callSvcFUSV0031(params)"])
    INIT_LOG["Log Start"]
    PARAM_CREATE["Create paramBean array"]
    MAP_INIT["Create paramMap, set SVC_ID_INIT"]
    MAP_GEN["Create inputMap, outputMap"]
    MAPPER_NEW["Create FUSV0031_FUSV0031OPDBMapper"]

    SET1["setFUSV003101SC: SVC contract info summary (FUNC_CD_2)"]
    SET2["setFUSV003102SC: Service contract no. list (FUNC_CD_1)"]
    SET3["setFUSV003103SC: Fee option svc agreement (FUNC_CD_2)"]
    SET4["setFUSV003104SC: Price plan fixed rate list (FUNC_CD_1)"]
    SET5["setFUSV003105SC: Price plan fixed rate list (FUNC_CD_1)"]
    SET6["setFUSV003106SC: Business param management list (FUNC_CD_1)"]
    SET7["setFUSV003107SC: Svc option contract list (front) (FUNC_CD_1)"]
    SET8["setFUSV003108SC: Svc option contract list (combo search) (FUNC_CD_1 + opeDate)"]
    SETTEL["setJKKTelSelectOpPackOperateCC: Phone select option pack"]
    SETJFU["setJFUTelOpMskmCheckCC: Option app mask check"]

    TRY_START["try invokeService"]
    CATCH_BLOCK["catch JCCWebServiceException: handleInitException"]

    GET1["getFUSV003101SC: Extract SVC contract output"]
    GET2["getFUSV003102SC: Extract svc contract no output"]
    GET3["getFUSV003103SC: Extract fee option output"]
    GET4["getFUSV003104SC: Extract price plan output"]
    GET5["getFUSV003105SC: Extract price plan output"]
    GET6["getFUSV003106SC: Extract business param output"]
    GET7["getFUSV003107SC: Extract option contract output"]
    GET8["getFUSV003108SC: Extract combo search output"]

    CHECK_KEY["outputMap contains TEL_OP_MSKM_CHECK_KEY?"]
    GET_MAP["Get parentMap from outputMap"]
    CHECK_NULL["parentMap != null?"]
    CHECK_FLG["mskmKhFlg equals CD00002_1"]
    THROW_ERR["throw JCCBusinessException ERROR_CODE_0102"]
    SKIP_CHECK["Skip - no mask issue"]

    OPE_DATE["Get opeDate via JFUWebCommon"]
    GETTEL["getJKKTelSelectOpPackOperateCC with opeDate"]
    END_LOG["Log End"]
    RETURN["Return outputMap"]

    START --> INIT_LOG --> PARAM_CREATE --> MAP_INIT --> MAP_GEN --> MAPPER_NEW
    MAPPER_NEW --> SET1 --> SET2 --> SET3 --> SET4 --> SET5 --> SET6 --> SET7 --> SET8
    SET8 --> SETTEL --> SETJFU --> TRY_START
    TRY_START --> CATCH_BLOCK
    CATCH_BLOCK --> GET1 --> GET2 --> GET3 --> GET4 --> GET5 --> GET6 --> GET7 --> GET8
    GET8 --> CHECK_KEY
    CHECK_KEY --> |true| GET_MAP
    CHECK_KEY --> |false| OPE_DATE
    GET_MAP --> CHECK_NULL
    CHECK_NULL --> |true| CHECK_FLG
    CHECK_NULL --> |false| SKIP_CHECK
    CHECK_FLG --> |true| THROW_ERR
    CHECK_FLG --> |false| SKIP_CHECK
    THROW_ERR --> OPE_DATE
    SKIP_CHECK --> OPE_DATE
    OPE_DATE --> GETTEL --> END_LOG --> RETURN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `bean` | `X31SDataBeanAccess` | The screen form bean carrying the customer's current context for the "NTT Light Phone Option Service Subscription/Cancellation" screen. Contains customer ID, contract account information, and screen state needed to query the backend for option service data. Used as both input (service parameter) and output (data extraction target) during the service call cycle. |
| 2 | `commonInfoBean` | `X31SDataBeanAccess` | The shared/form bean containing common customer information (e.g., common customer code, account numbers) shared across multiple screens. Used as input for specific mappers (`setJFUTelOpMskmCheckCC`) and combined with `bean` into a single `paramBean` array for the service invocation. |

**Instance fields / external state read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `this` (implicit `FUW05401SFLogic`) | `FUW05401SFLogic` | Passed to `invokeService()` as the handler context, and to `JFUWebCommon.getOpeDate()` and `JFUStrConst.getOpeDate()` methods to resolve the current operation date. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003101SC` | EKK0081B508 | - | Populates input for SVC contract info summary view screen (eo Light Phone service contract info list matching) [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003102SC` | EKK0341B002 | - | Populates input for service contract number list view screen (service contract number) [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003103SC` | EKK0811A010 | - | Populates input for fee cost option service agreement view screen [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003104SC` | EKK0601B001 | - | Populates input for price plan fixed unit price (option subscription fee) list view screen [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003105SC` | EKK0601B001 | - | Populates input for price plan fixed unit price (option subscription fee) list view screen [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003106SC` | EKK0601B501 | - | Populates input for business parameter management list view screen [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003107SC` | EKK2811B503 | - | Populates input for device option service contract list view screen (front) [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setFUSV003108SC` | EKK2811B504 | - | Populates input for device option service contract list view screen (combo search) [機能コード:"1"] + operation date |
| R | `FUSV0031_FUSV0031OPDBMapper.setJKKTelSelectOpPackOperateCC` | - | - | Populates input for phone select option package view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.setJFUTelOpMskmCheckCC` | - | - | Populates input for option application mask check (whether customer can subscribe to option services) [機能コード:"1"] |
| R | `JCCBatCommon.invokeService` | - | - | Invokes the backend web service with assembled input parameters |
| R | `JFUEoTvCngAddStbCC.getOpeDate` | - | - | Gets current operation date [機能コード:"1"] |
| R | `JFUHikkosiNaviRelAddCC.getOpeDate` | - | - | Gets current operation date [機能コード:"1"] |
| R | `JKKCreditAddCC.getOpeDate` | - | - | Gets current operation date [機能コード:"1"] |
| R | `JKKModelCommon.getOpeDate` | - | - | Gets current operation date [機能コード:"1"] |
| R | `JCCBatKKCrsChgIktAdd.invokeService` | - | - | Invokes the backend web service |
| R | `JBSbatKKCrsChgSmtVLAdd.invokeService` | - | - | Invokes the backend web service |
| R | `JBSbatKKCrsChgWribSette.invokeService` | - | - | Invokes the backend web service |
| R | `JBSbatKKEponSwchKjInfSksi.invokeService` | - | - | Invokes the backend web service |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003101SC` | EKK0081B508 | - | Extracts output for SVC contract info summary view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003102SC` | EKK0341B002 | - | Extracts output for service contract number list view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003103SC` | EKK0811A010 | - | Extracts output for fee cost option service agreement view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003104SC` | EKK0601B001 | - | Extracts output for price plan fixed unit price list view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003105SC` | EKK0601B001 | - | Extracts output for price plan fixed unit price list view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003106SC` | EKK0601B501 | - | Extracts output for business parameter management list view [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003107SC` | EKK2811B503 | - | Extracts output for device option service contract list view (front) [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getFUSV003108SC` | EKK2811B504 | - | Extracts output for device option service contract list view (combo search) [機能コード:"1"] |
| R | `FUSV0031_FUSV0031OPDBMapper.getJKKTelSelectOpPackOperateCC` | - | - | Extracts output for phone select option package view with operation date |
| R | `JFUWebCommon.getOpeDate` | - | - | Gets the current operation date for the screen |
| - | `FUW05401SFLogic.handleInitException` | - | - | Handles initial display exceptions, converts to screen error messages |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `FUW05401SFLogic.init()` | `init()` -> `callSvcFUSV0031(bean, commonInfoBean)` | `invokeService [R]`, `getJKKTelSelectOpPackOperateCC [R]`, `getOpeDate [R]`, `getFUSV003101SC [R]`, `getFUSV003102SC [R]`, `getFUSV003103SC [R]`, `getFUSV003104SC [R]`, `getFUSV003105SC [R]`, `getFUSV003106SC [R]`, `getFUSV003107SC [R]`, `getFUSV003108SC [R]`, `handleInitException [-]`, `setFUSV003101SC [R]`, `setFUSV003102SC [R]`, `setFUSV003103SC [R]`, `setFUSV003104SC [R]`, `setFUSV003105SC [R]`, `setFUSV003106SC [R]`, `setFUSV003107SC [R]`, `setFUSV003108SC [R]`, `setJFUTelOpMskmCheckCC [R]`, `setJKKTelSelectOpPackOperateCC [R]` |

**Notes:**
- `callSvcFUSV0031` is a private method invoked exclusively from `FUW05401SFLogic.init()`, which is the initial display entry point for the FUW05401SF screen.
- The terminal operations consist primarily of read operations (R) — fetching service component data from the backend and operation dates from common utilities.
- The only write path is through `invokeService()` which communicates with the backend web service layer (class name: `JCCBatCommon.invokeService` and related CBS classes).

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] (L1487)

> Initialize debug log and prepare parameter beans.

| # | Type | Code |
|---|------|------|
| 1 | LOG | `DEBUG_LOG.info("----- FUW5401 callSvcFUSV0031 Start -----")` // Start debug logging |
| 2 | SET | `X31SDataBeanAccess[] paramBean = { commonInfoBean, bean }` // Combine common info and screen form into parameter bean array |

**Block 2** — [SET] (L1491-L1493)

> Initialize service invocation parameter map with the service ID.

| # | Type | Code |
|---|------|------|
| 1 | SET | `Map<String, String> paramMap = new HashMap<String, String>()` // Service invocation param map |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_INIT)` // `[-> SVC_ID_INIT="FUSV0031"]` — Set service ID: eo Light Phone Option Service Subscription/Cancellation (Initial Display) |

**Block 3** — [SET] (L1496-L1498)

> Create the input/output maps for the service call.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap<String, Object> inputMap = new HashMap<String, Object>()` // Service input value storage map |
| 2 | SET | `HashMap<String, Object> outputMap = new HashMap<String, Object>()` // SC return value storage map |

**Block 4** — [SET] (L1501)

> Instantiate the mapper for DataBean-BP (business process) mapping.

| # | Type | Code |
|---|------|------|
| 1 | SET | `FUSV0031_FUSV0031OPDBMapper mapper = new FUSV0031_FUSV0031OPDBMapper()` // DataBean-BP mapping instance |

**Block 5** — [CALL] (L1505-L1512)

> Populate inputMap with service entry points. Eight service components are configured to prepare input data for the backend service call.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setFUSV003101SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2)` // `[-> FUNC_CD_2="2"]` — SVC contract info summary view (eo Light Phone service contract info list matching) |
| 2 | CALL | `mapper.setFUSV003102SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Service contract no. list view (service contract number) |
| 3 | CALL | `mapper.setFUSV003103SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2)` // `[-> FUNC_CD_2="2"]` — Fee cost Option service agreement view |
| 4 | CALL | `mapper.setFUSV003104SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Price plan fixed unit price (option subscription fee) list view |
| 5 | CALL | `mapper.setFUSV003105SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Price plan fixed unit price (option subscription fee) list view |
| 6 | CALL | `mapper.setFUSV003106SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Business parameter management list view |
| 7 | CALL | `mapper.setFUSV003107SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Device option service contract list view (front) |
| 8 | CALL | `mapper.setFUSV003108SC(paramBean, inputMap, JFUWebCommon.getOpeDate(this, null), JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` + `opeDate` — Device option service contract list view (combo search) |

**Block 6** — [CALL] (L1515-L1516)

> Configure phone-related service endpoints.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setJKKTelSelectOpPackOperateCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Phone select option package view |
| 2 | CALL | `mapper.setJFUTelOpMskmCheckCC(commonInfoBean, bean, inputMap, JPCModelConstant.FUNC_CD_1)` // `[-> FUNC_CD_1="1"]` — Option application mask check (checks whether customer is eligible to subscribe to option services) |

**Block 7** — [TRY-CATCH] (L1518-L1527)

> Execute the backend service invocation. If a `JCCWebServiceException` occurs during initial display, it is handled by `handleInitException()`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `invokeService(paramMap, inputMap, outputMap)` // Invokes the backend web service with all prepared inputs |

**Block 7.1** — [CATCH] `JCCWebServiceException` (L1522-L1524)

> Initial display exception handling process (初期表示時例外ハンドリング処理).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `this.handleInitException(se)` // Initial display exception handler — converts WS exception to screen error display |

**Block 8** — [CALL] (L1529-L1536)

> Extract service return values back into the output map. Eight get methods mirror the eight set methods from Block 5.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.getFUSV003101SC(paramBean, outputMap)` // Extract SVC contract info summary output |
| 2 | CALL | `mapper.getFUSV003102SC(paramBean, outputMap)` // Extract service contract no. list output |
| 3 | CALL | `mapper.getFUSV003103SC(paramBean, outputMap)` // Extract fee cost option service output |
| 4 | CALL | `mapper.getFUSV003104SC(paramBean, outputMap)` // Extract price plan fixed rate list output |
| 5 | CALL | `mapper.getFUSV003105SC(paramBean, outputMap)` // Extract price plan fixed rate list output |
| 6 | CALL | `mapper.getFUSV003106SC(paramBean, outputMap)` // Extract business parameter management output |
| 7 | CALL | `mapper.getFUSV003107SC(paramBean, outputMap)` // Extract option service contract list (front) output |
| 8 | CALL | `mapper.getFUSV003108SC(paramBean, outputMap)` // Extract option service contract list (combo search) output |

**Block 9** — [IF-NESTED] `outputMap.containsKey(TEL_OP_MSKM_CHECK_KEY)` (L1539)

> Option subscription flag check (オプション申請フラグ: 0=applicable, 1=inapplicable). Verifies whether the customer is restricted from subscribing to option services.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap parentMap = (HashMap)outputMap.get(TEL_OP_MSKM_CHECK_KEY)` // `[-> TEL_OP_MSKM_CHECK_KEY="JFUTelOpMskmCheckCC"]` — Get the option mask check result map |

**Block 9.1** — [IF] `parentMap != null` (L1541)

| # | Type | Code |
|---|------|------|
| 1 | CALL | — (nested condition below) |

**Block 9.1.1** — [IF] `JFUStrConst.CD00002_1.equals((String)parentMap.get("mskmKhFlg"))` (L1543)

> `[-> CD00002_1="1"]` — When `mskmKhFlg` (mask customer flag) equals "1", the customer is NOT allowed to apply for option services.

| # | Type | Code |
|---|------|------|
| 1 | THROW | `throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102)` // `[-> ERROR_CODE_0102="0102"]` — Throw error: Subscription not allowed (申し込み不可) |

**Block 10** — [SET] (L1551-L1553)

> Retrieve the current operation date and perform final option package data extraction.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String opeDate = JFUWebCommon.getOpeDate(this, null)` // Obtain online operation date (yyyyMMDD format) — オンライン運用日付(yyyyMMDD)を取得 |
| 2 | CALL | `mapper.getJKKTelSelectOpPackOperateCC(paramBean, outputMap, opeDate)` // Fee cost Option service list view (fee cost code) SC sub-mapping — 料金コース_オプションサービス一覧照会(料金コースコード)SC下マッピング |

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

> Return the service result map for display of pricing information.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return outputMap` // Returns outputMap because the SC return value Map is needed for pricing information display — 料金額情報の設定でSC戻り値のMapが必要なため、outputMapを返す |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SVC_ID_INIT` | Constant | Service ID "FUSV0031" — Internal identifier for the eo Light Phone Option Service Subscription/Cancellation (Initial Display) screen |
| `TEL_OP_MSKM_CHECK_KEY` | Constant | "JFUTelOpMskmCheckCC" — Map key for the phone option application mask check result. Indicates whether the customer can subscribe to option services. |
| `FUNC_CD_1` | Constant | "1" — Standard function code used as a parameter for SC input mapping. Most service endpoints use FUNC_CD_1. |
| `FUNC_CD_2` | Constant | "2" — Alternate function code used for specific SC mappings (contract info summary, fee option agreement). |
| `CD00002_1` | Constant | "1" — Code representing "restricted/not allowed" (申し込み不可) — when `mskmKhFlg` equals this value, the customer cannot subscribe. |
| `ERROR_CODE_0102` | Constant | "0102" — Business error code indicating the customer is not eligible to apply for option services (申し込み不可エラー). |
| `mskmKhFlg` | Field | Mask customer flag — when set to "1", the customer is restricted from subscribing to option services. |
| `opeDate` | Field | Online operation date (yyyyMMDD) — the current business date used for data queries. |
| `paramBean` | Field | Array of `X31SDataBeanAccess` — combined parameter bean carrying both common customer info and screen form data to the backend service. |
| `inputMap` | Field | HashMap<String, Object> — container for service input values assembled before the service invocation. |
| `outputMap` | Field | HashMap<String, Object> — container for SC (Service Component) return values extracted after service execution. Populated with pricing data, contract lists, and option availability status. |
| `paramMap` | Field | HashMap<String, String> — service invocation parameters including the use case ID for routing the service call. |
| `mapper` | Field | `FUSV0031_FUSV0031OPDBMapper` — DataBean-BP mapper instance that maps between DataBean objects and business process input/output maps. |
| FUSV0031 | Service | eo Light Phone Option Service Subscription/Cancellation (Initial Display) — the business process for displaying the initial screen where customers can subscribe to or cancel NTT Light Phone option services. |
| eo Light Phone | Business term | NTT Light Phone (NTT光電話) — NTT's IP-based telephone service. The "eo" prefix indicates it is bundled with NTT's eo broadband internet services. |
| Option Service | Business term | オプションサービス — optional add-on services available for NTT Light Phone subscribers (e.g., caller ID, voicemail, call forwarding). |
| Subscription/Cancellation | Business term | 申込解約 — the process of subscribing to or canceling NTT Light Phone option services. This screen handles the initial display of both operations. |
| Initial Display | Business term | 初期表示 — the first screen render that aggregates all necessary data (contracts, pricing, options) for the customer to make subscription decisions. |
| SC (Service Component) | Acronym | Service Component — backend service endpoints (e.g., EKK0081B508, EKK0341B002) that provide specific data views or operations. |
| CBS | Acronym | CBS (CBS System) — backend system responsible for service invocation and data processing. |
| BP | Acronym | BP (Business Process) — the mapping between DataBean objects and the business process layer. |
| DataBean | Technical term | A Java bean class carrying form data between the screen and backend layers. Used as input/output for SC service calls. |
| JCCBatCommon | Class | Common batch service invocation handler — the class whose `invokeService` method performs the actual backend web service call. |
| JCCWebServiceException | Exception | Web service layer exception — thrown when the backend web service call fails. Handled specially for initial display by `handleInitException`. |
| JCCBusinessException | Exception | Business logic exception — thrown when business rules are violated (e.g., customer not eligible for option subscription). |
| Price Plan Fixed Unit Price | Business term | 料金プラン固定単価 — the fixed pricing for optional service subscription fees. |
| Device Option Service | Business term | 機器オプションサービス — hardware-related optional services for the NTT Light Phone equipment. |
| Combo Search | Business term | 複合検索 — a search that combines multiple search criteria (e.g., date + contract status) to find relevant service records. |

---
