# Business Logic — JKKOrsjgsUseStpRunCC.kktkSvcKei_UseStp() [150 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKOrsjgsUseStpRunCC` |
| Layer | CC/Common Component |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKOrsjgsUseStpRunCC.kktkSvcKei_UseStp()

This method implements the **Equipment Provisioning Service Contract Suspension Processing** (機器提供サービス契約利用停止処理) for the NTT East business system. It is a central coordination routine that orchestrates the lifecycle transition of equipment-provisioned service contracts (e.g., V-ONU, Multi-Function Router, Home Gateway) from active service to suspended state.

The method handles **two primary business paths**: (1) Equipment Option Service Contract Suspension, which applies when the equipment code indicates a multi-function router or home gateway paired with specific service types (Net/Tel) and price groups (Home, Maison, Mansion), and (2) Standard Service Contract Suspension, which applies when the equipment service contract status is in "Service Provisioning" (100) or "Suspended/Interrupted" (210) state. It uses a **dispatch/routing pattern**, evaluating the parent contract classification code (`oya_kei_skbt_cd`), the equipment service code (`kktk_svc_cd`), and the underlying service type (`svc_cd`) to determine which sub-path to execute.

The method also implements **pre-computed short-circuit logic**: when `chkTarget=true` it delegates to `isKktkSvcKeiTargetData()` to filter out non-target data; when paired services (e.g., eo Hikari TV with V-ONU) are detected, it returns early to avoid redundant processing; and when another contract for the same equipment is already in use at the same location, it skips suspension to preserve service continuity. This method is a **shared utility** called by `kktkSvcKei_UseStp2()` and `runUseStpProc()` within `JKKOrsjgsUseStpRunCC`, making it the core business logic entry point for all equipment provisioning suspension workflows.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["kktkSvcKei_UseStp call"])
    CALL_SC["CALL callEKK0341A010SC - Equipment Provisioning Service Contract Agreement Inquiry"]
    CHK_ERR1{"statusCode != 0?"}
    GET_HASH["GET eKK0341A010Hash from resultHash"]
    GET_STAT["GET kktk_svc_kei_stat"]
    GET_SVC_CD["GET kktk_svc_cd"]
    GET_OYA["GET oya_kei_skbt_cd"]

    CHK_TARGET{"chkTarget == true?"}
    CHK_TARGET_DATA{"isKktkSvcKeiTargetData returns false?"}

    CHK_OYA{"OYA_KEI_SKBT_CD_KAISEN = 02?"}
    GET_SVC_LIST["GET eKK0081A010Hash - Service Contract Inquiry"]
    GET_SVC_NO["GET svc_kei_no"]
    GET_SVC_CD2["GET svc_cd"]
    GET_PRC["GET prc_grp_cd"]

    CHK_SKIP{"Skip condition: VONU+NET/TEL or NonVONU+TV?"}
    SKIP_RETURN["Return 0 - Skip"]

    CHK_MFR{"MFR=C024 or HGW=C025?"}
    CHK_GRP{"NET + prc_grp_cd in HOME/MAISON/MANSION?"}
    CHK_TEL{"svc_cd = TEL?"}

    SET_WORK["SET workKey and CREATE outMap"]
    POPULATE["POPULATE kkopKeiUpdInfo map"]
    ADD_LIST["ADD kkopKeiUpdInfo to trgtDataList"]
    CALL_UPDATE["CALL updateKkopSvcKeiTran - Equipment Contract Update"]
    UPDATE_RETURN["Return 0"]

    CALL_SVC_LIST["CALL callEKK0081B009SC - Same Location Contract List"]
    CHK_ERR2{"statusCode != 0?"}
    GET_ANOTHER["GET ekk0081b009List"]
    CHK_ANOTHER{"isAnotherSvckeiUsing returns true?"}
    ANOTHER_RETURN["Return 0 - Skip"]

    CHK_PAUSE{"STKC=100 or STP_PAUSE=210?"}
    CALL_USE_STP_SC["CALL callEKK0341C120SC - Service Contract Suspension"]
    CHK_ERR3{"statusCode != 0?"}
    CALL_KKOP_STP["CALL kkopSvcKei_UseStp - Equipment Contract Suspension"]
    FINAL_RETURN["Return 0"]

    START --> CALL_SC --> CHK_ERR1
    CHK_ERR1 -- No --> GET_HASH --> GET_STAT --> GET_SVC_CD --> GET_OYA --> CHK_TARGET
    CHK_TARGET -- No --> CHK_OYA
    CHK_TARGET -- Yes --> CHK_TARGET_DATA
    CHK_TARGET_DATA -- No --> CHK_OYA
    CHK_TARGET_DATA -- Yes --> SKIP_RETURN
    CHK_OYA -- No --> CHK_PAUSE
    CHK_OYA -- Yes --> GET_SVC_LIST --> GET_SVC_NO --> GET_SVC_CD2 --> GET_PRC --> CHK_SKIP
    CHK_SKIP -- Yes --> SKIP_RETURN
    CHK_SKIP -- No --> CHK_MFR
    CHK_MFR -- Yes --> CHK_GRP
    CHK_GRP -- Yes --> SET_WORK --> POPULATE --> ADD_LIST --> CALL_UPDATE --> UPDATE_RETURN
    CHK_GRP -- No --> CHK_TEL
    CHK_TEL -- Yes --> SET_WORK
    CHK_TEL -- No --> CALL_SVC_LIST
    CHK_MFR -- No --> CALL_SVC_LIST
    CALL_SVC_LIST --> CHK_ERR2
    CHK_ERR2 -- No --> GET_ANOTHER --> CHK_ANOTHER
    CHK_ANOTHER -- No --> CHK_PAUSE
    CHK_ANOTHER -- Yes --> ANOTHER_RETURN
    CHK_ERR2 -- Yes --> SKIP_RETURN
    CHK_PAUSE -- Yes --> CALL_USE_STP_SC --> CHK_ERR3
    CHK_ERR3 -- No --> CALL_KKOP_STP --> FINAL_RETURN
    CHK_ERR3 -- Yes --> FINAL_RETURN
    CHK_PAUSE -- No --> FINAL_RETURN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Session management handle containing the database connection and session context used throughout the business process. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object containing the model group data and control maps; carries input data and holds work maps set during processing (e.g., the update data key for equipment contract updates). |
| 3 | `requestParam` | `HashMap<String, Object>` | Generic request parameter map passed to service component calls; carries structured data to/from SC-level inquiries and updates. |
| 4 | `resultHash` | `HashMap<String, Object>` | Output result map populated by service component calls with inquiry results keyed by template IDs (e.g., `EKK0341A010`, `EKK0081A010`, `EKK0081B009`). |
| 5 | `prm_svc_kei_no` | `String` | Service contract number — the top-level service contract identifier that identifies the customer's service contract line item. |
| 6 | `chkTarget` | `boolean` | Target check flag — when `true`, the method delegates to `isKktkSvcKeiTargetData()` to validate whether the equipment contract is a valid suspension target; when `false`, this validation is bypassed. |

**Instance fields read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `oPE_DATE` | `String` | Current operating date — populated via `JCCBPCommon.getOpeDate(null)`; used as the service stop date when creating the equipment contract update record. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callEKK0341A010SC` | EKK0341A010SC | KK_T_KKTK_SVC_KEI | Equipment Provisioning Service Contract Agreement Inquiry — reads the equipment service contract details including status, service code, parent contract classification, and last update timestamp. |
| R | `callEKK0081A010SC` (via EKK0081A010 template) | EKK0081A010SC | KK_T_SVC_KEI | Service Contract Inquiry — reads the top-level service contract details (service number, service code, price group code) when the parent contract classification is "kaizen" (02). |
| U | `updateKkopSvcKeiTran` | EKK2811C080CBS | KK_T_KKOP_SVC_KEI | Equipment Option Service Contract Update — updates the equipment option service contract record with suspension difference classification, service stop date, and pre-update timestamp. |
| R | `callEKK0081B009SC` | EKK0081B009SC | KK_T_SVC_KEI_ISH | Same Location Service Contract List Inquiry — reads all service contracts at the same location to check for coexisting contracts that might be using the same equipment. |
| R | `callEKK0341C120SC` | EKK0341C120SC | KK_T_KKTK_SVC_KEI | Equipment Provisioning Service Contract Suspension — performs the database update to suspend the equipment provisioning service contract. |

**Internal method calls (CRUD classification):**

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `createUserData` | - | - | Creates a user data work map in `param` for the equipment contract update operation. |
| R | `isAnotherSvckeiUsing` | - | - | Checks whether another service contract is already using the same equipment at the same location (read-only logic). |
| R | `isKktkSvcKeiTargetData` | - | - | Validates whether the equipment service contract is a valid target for suspension processing. |
| U | `kkopSvcKei_UseStp` | EKK2811C080CBS | KK_T_KKOP_SVC_KEI | Equipment Option Service Contract Suspension — performs the suspension of the equipment option service contract (same equipment-provisioned contract update as `updateKkopSvcKeiTran`). |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Method: `JKKOrsjgsUseStpRunCC.kktkSvcKei_UseStp2()` | `kktkSvcKei_UseStp2()` -> `kktkSvcKei_UseStp()` | `callEKK0341A010SC [R] KK_T_KKTK_SVC_KEI`, `updateKkopSvcKeiTran [U] KK_T_KKOP_SVC_KEI`, `callEKK0341C120SC [R] KK_T_KKTK_SVC_KEI`, `kkopSvcKei_UseStp [U] KK_T_KKOP_SVC_KEI` |
| 2 | Method: `JKKOrsjgsUseStpRunCC.runUseStpProc()` | `runUseStpProc()` -> `kktkSvcKei_UseStp()` | `callEKK0341A010SC [R] KK_T_KKTK_SVC_KEI`, `updateKkopSvcKeiTran [U] KK_T_KKOP_SVC_KEI`, `callEKK0341C120SC [R] KK_T_KKTK_SVC_KEI`, `kkopSvcKei_UseStp [U] KK_T_KKOP_SVC_KEI` |

**No screen/batch entry points (KKSV\d{4}) found within the caller chain.** This method is called exclusively by internal coordination methods within the same class, suggesting it is a shared processing subroutine invoked from different workflow entry points.

## 6. Per-Branch Detail Blocks

### Block 1 — [CALCULATION] (L1437)

> Initialize the status code variable to 0 (success default).

| # | Type | Code |
|---|------|------|
| 1 | SET | `statusCode = 0` // Initialize return code |

### Block 2 — [CALCULATION] (L1443)

> Call the Equipment Provisioning Service Contract Agreement Inquiry service component to fetch the current state of the equipment service contract. This is the first data retrieval step.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callEKK0341A010SC(param, handle, requestParam, resultHash)` // 機器提供サービス契約同意照会 (Equipment Provisioning Service Contract Agreement Inquiry) |

### Block 3 — [IF] `(statusCode != 0)` (L1444)

> Early return if the agreement inquiry fails.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return statusCode` // Propagate error from agreement inquiry |

### Block 4 — [CALCULATION] (L1448)

> Extract the inquiry result hash from the result map using the template ID.

| # | Type | Code |
|---|------|------|
| 1 | SET | `eKK0341A010Hash = (HashMap)resultHash.get(TEMPLATE_ID_EKK0341A010)` // [-> TEMPLATE_ID_EKK0341A010="EKK0341A010"] |

### Block 5 — [IF] `(chkTarget)` (L1453)

> If the target check flag is true, validate that this equipment contract is a valid suspension target.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `isKktkSvcKeiTargetData(param, handle, requestParam, resultHash, prm_svc_kei_no, eKK0341A010Hash)` // 利用停止対象サービス契約番号か判定する (Determine if target service contract number) |

### Block 5.1 — [IF] `!isKktkSvcKeiTargetData(...) == true` (L1454-1457)

> The equipment contract is not a valid suspension target; return early with success (statusCode 0).

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return statusCode` // Not a target, exit with success |

### Block 6 — [CALCULATION] (L1460-1466)

> Extract key fields from the inquiry result hash. These fields determine the subsequent processing branches.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktk_svc_kei_stat = (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT)` // 機器提供サービス契約ステータス (Equipment provisioning service contract status) |
| 2 | SET | `kktk_svc_cd = (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.KKTK_SVC_CD)` // 機器提供サービスコード (Equipment provisioning service code) |
| 3 | SET | `oya_kei_skbt_cd = (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.OYA_KEI_SKBT_CD)` // 親契約識別コード (Parent contract identification code) |

### Block 7 — [IF] `(OYA_KEI_SKBT_CD_KAISEN.equals(oya_kei_skbt_cd))` (L1469)

> Check if the parent contract classification code is "02" — meaning the equipment is attached within a service contract line. Only enter the equipment option processing path when the parent contract is "kaizen" (revised/attached).

| # | Type | Code |
|---|------|------|
| 1 | SET | `OYA_KEI_SKBT_CD_KAISEN = "02"` [-> OYA_KEI_SKBT_CD_KAISEN="02" (JKKOrsjgsUseStpRunCC.java:233)] // サービス契約回線内Attachedの機器 (Equipment attached within service contract line) |

### Block 7.1 — [CALCULATION] (L1473)

> Fetch the service contract details from the inquiry result using the template ID.

| # | Type | Code |
|---|------|------|
| 1 | SET | `eKK0081A010Hash = (HashMap)resultHash.get(TEMPLATE_ID_EKK0081A010)` [-> TEMPLATE_ID_EKK0081A010="EKK0081A010"] (L1474) // サービス契約番号 (Service contract number) |

### Block 7.2 — [CALCULATION] (L1477-1480)

> Extract service code, service number, and price group code from the service contract hash.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svc_kei_no = (String)eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_KEI_NO)` (L1478) |
| 2 | SET | `svc_cd = (String)eKK0081A010Hash.get(EKK0081A010CBSMsg1List.SVC_CD)` (L1480) |
| 3 | SET | `prc_grp_cd = (String)eKK0081A010Hash.get(EKK0081A010CBSMsg1List.PRC_GRP_CD)` (L1481) |

### Block 7.3 — [IF] `(Skip condition for V-ONU with NET/TEL, or non-V-ONU with TV)` (L1484-1492)

> **Skip processing** for certain equipment-service type combinations where suspension is not required:
> - **Case A**: V-ONU (C013) with Net (01) or Tel (02) underlying service, OR
> - **Case B**: Non-V-ONU with TV (03) underlying service

| # | Type | Code |
|---|------|------|
| 1 | SET | `KKTK_SVC_CD_VONU = "C013"` [-> KKTK_SVC_CD_VONU="C013" (JKKSvcConst.java:245)] (L1486) // V-ONU |
| 2 | SET | `SVC_CD_NET = "01"` [-> SVC_CD_NET="01" (JKKSvcConst.java:58)] (L1487) |
| 3 | SET | `SVC_CD_TEL = "02"` [-> SVC_CD_TEL="02" (JKKSvcConst.java:60)] (L1487) |
| 4 | SET | `SVC_CD_TV = "03"` [-> SVC_CD_TV="03" (JKKSvcConst.java:62)] (L1490) |
| 5 | RETURN | `return 0` // Skip — V-ONU + (NET or TEL), or non-V-ONU + TV |

### Block 7.4 — [IF] `(Multi-function Router/Home Gateway with Net in Home/Maison/Mansion, or with Tel)` (L1496-1524)

> When the equipment is a Multi-Function Router (C024) or Home Gateway (C025), AND the underlying service is either Net with a residential price group (Home=02, Maison=03, Mansion=04) or Tel, this path performs the **Equipment Option Service Contract Suspension** update. This is a key update path that modifies the equipment option service contract records.

| # | Type | Code |
|---|------|------|
| 1 | SET | `KKTK_SVC_CD_MFR = "C024"` [-> KKTK_SVC_CD_MFR="C024" (JKKOrsjgsUseStpRunCC.java:247)] (L1502) // 多機能ルーター (Multi-Function Router) |
| 2 | SET | `KKTK_SVC_CD_HGW = "C025"` [-> KKTK_SVC_CD_HGW="C025" (JKKSvcConst.java:262)] (L1502) // HGW (Home Gateway) |
| 3 | SET | `SVC_CD_NET = "01"` [-> SVC_CD_NET="01" (JKKSvcConst.java:58)] (L1505) |
| 4 | SET | `PCRS_GRP_HOME = "02"` [-> PCRS_GRP_HOME="02" (JKKOrsjgsUseStpRunCC.java:253)] (L1506) |
| 5 | SET | `PCRS_GRP_MAISON = "03"` [-> PCRS_GRP_MAISON="03" (JKKOrsjgsUseStpRunCC.java:255)] (L1507) |
| 6 | SET | `PCRS_GRP_MANSION = "04"` [-> PCRS_GRP_MANSION="04" (JKKOrsjgsUseStpRunCC.java:257)] (L1508) |
| 7 | SET | `SVC_CD_TEL = "02"` [-> SVC_CD_TEL="02" (JKKSvcConst.java:60)] (L1515) |

### Block 7.4.1 — [CALCULATION] (L1514-1535)

> Prepare the update data for the Equipment Option Service Contract Update component. This creates a work map with all required fields for the contract suspension update.

| # | Type | Code |
|---|------|------|
| 1 | SET | `workKkopSvcUseKeiUpdDataKey = "JKKKkopSvcUseKeiUpdCC"` (L1517) // 機器オプション利用機器契約更新CC用のマップキー (Map key for equipment option service contract update CC) |
| 2 | CALL | `createUserData(param, workKkopSvcUseKeiUpdDataKey)` (L1518) // Create user data work map |
| 3 | SET | `outMap = (HashMap)param.getData(workKkopSvcUseKeiUpdDataKey)` (L1520) // Get work map from param |
| 4 | SET | `trgtDataList = new ArrayList<HashMap<String, Object>>()` (L1521) // Initialize target data list |
| 5 | SET | `kkopKeiUpdInfo = new HashMap<String, Object>()` (L1522) // Initialize update info map |

### Block 7.4.2 — [EXEC] (L1525-1535)

> Populate the update info map with all required fields for the equipment contract update.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kkopKeiUpdInfo.put(JKKKkopSvcUseKeiUpdCC.KEY_SVC_KEI_NO, svc_kei_no)` (L1525) // サービス契約番号 (Service contract number) |
| 2 | EXEC | `kkopKeiUpdInfo.put(JKKKkopSvcUseKeiUpdCC.KEY_KKTK_SVC_KEI_NO, (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO))` (L1527) // 機器提供サービス契約番号 (Equipment provisioning service contract number) |
| 3 | EXEC | `kkopKeiUpdInfo.put(JKKKkopSvcUseKeiUpdCC.KEY_IDO_DIV, IDO_DIV_USESTP)` (L1529) // 異動区分（利用停止）(Movement classification: Suspension) |
| 4 | SET | `IDO_DIV_USESTP = "00062"` [-> IDO_DIV_USESTP="00062" (JKKSvcConst.java:457)] |
| 5 | EXEC | `kkopKeiUpdInfo.put(JKKKkopSvcUseKeiUpdCC.KEY_SVC_STP_YMD, oPE_DATE)` (L1531) // サービス停止年月日（運用日）(Service stop date: operating date) |
| 6 | EXEC | `kkopKeiUpdInfo.put(JKKKkopSvcUseKeiUpdCC.KEY_UPD_DTM_BF, (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM))` (L1533) // 最終更新年月日时分秒（更新前）(Last update datetime before update) |
| 7 | EXEC | `trgtDataList.add(kkopKeiUpdInfo)` (L1535) // Add update info to target list |
| 8 | EXEC | `outMap.put(JKKKkopSvcUseKeiUpdCC.KEY_TRGT_DATA_LIST, trgtDataList)` (L1536) // Set target data list in work map |

### Block 7.4.3 — [CALCULATION] (L1539-1541)

> Instantiate and call the Equipment Option Service Contract Update main processing method.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kkopSvcUseKeiUpdCC = new JKKKkopSvcUseKeiUpdCC()` (L1539) |
| 2 | CALL | `kkopSvcUseKeiUpdCC.updateKkopSvcKeiTran(handle, param, workKkopSvcUseKeiUpdDataKey)` (L1540) // 機器オプションサービス利用機器契約更新メイン処理 (Equipment Option Service Contract Update main processing) |
| 3 | RETURN | `return 0` (L1541) // Update completed successfully |

### Block 7.5 — [CALCULATION] (L1545)

> Same Location Service Contract List Inquiry — fetch all service contracts at the same location to check if the same equipment is used in another active contract.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callEKK0081B009SC(param, handle, svc_kei_no, resultHash)` (L1545) // 同一場所サービス契約一覧照会 (Same location service contract list inquiry) |

### Block 7.5.1 — [IF] `(statusCode != 0)` (L1546-1549)

> Return error if the same location contract list inquiry fails.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return statusCode` |

### Block 7.5.2 — [CALCULATION] (L1552)

> Extract the contract list from the result hash.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0081b009List = (ArrayList)resultHash.get(TEMPLATE_ID_EKK0081B009)` (L1552) // [-> TEMPLATE_ID_EKK0081B009="EKK0081B009"] |

### Block 7.5.3 — [IF] `(isAnotherSvckeiUsing(...))` (L1555-1558)

> Check whether another service contract is using the same equipment at the same location. If so, skip suspension to preserve service continuity.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isAnotherSvckeiUsing(kktk_svc_cd, prc_grp_cd, svc_kei_no, ekk0081b009List)` |
| 2 | RETURN | `return 0` // Another contract in use, skip suspension |

### Block 8 — [IF] `(SVC_KEI_STAT_TKC.equals(kktk_svc_kei_stat) || SVC_KEI_STAT_PAUSE.equals(kktk_svc_kei_stat))` (L1563)

> **Standard Service Contract Suspension Path** — When the equipment service contract status is "Service Provisioning" (100) or "Suspended/Interrupted" (210), perform the service contract suspension update and then call the equipment option service contract suspension processing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `SVC_KEI_STAT_TKC = "100"` [-> SVC_KEI_STAT_TKC="100" (JKKOrsjgsUseStpRunCC.java:147)] (L1563) // サービス提供中 (Service Provisioning) |
| 2 | SET | `SVC_KEI_STAT_PAUSE = "210"` [-> SVC_KEI_STAT_PAUSE="210" (JKKOrsjgsUseStpRunCC.java:149)] (L1563) // 休止・中断中 (Suspended/Interrupted) |

### Block 8.1 — [CALCULATION] (L1568)

> Call the Equipment Provisioning Service Contract Suspension service component to perform the suspension.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `statusCode = callEKK0341C120SC(param, handle, requestParam, resultHash)` (L1568) // 機器提供サービス契約停止 (Equipment Provisioning Service Contract Suspension) |

### Block 8.1.1 — [IF] `(statusCode != 0)` (L1569-1572)

> Return error if the suspension service component fails.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return statusCode` |

### Block 8.2 — [CALCULATION] (L1576-1577)

> Call the equipment option service contract suspension method with the equipment service contract number from the inquiry result.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kkopSvcKei_UseStp(handle, param, requestParam, resultHash, prm_svc_kei_no, (String)eKK0341A010Hash.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO))` (L1577) // 機器オプションサービス契約利用停止 (Equipment Option Service Contract Suspension) |

### Block 9 — [RETURN] (L1579)

> Return success status code 0.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return 0` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `kktkSvcKei_UseStp` | Method | Equipment Provisioning Service Contract Suspension Processing — the main method performing contract status transition to suspended. |
| `prm_svc_kei_no` | Field | Service contract number — the top-level service contract identifier for the customer's service line. |
| `chkTarget` | Field | Target check flag — when true, validates the equipment contract is a valid suspension target before proceeding. |
| `kktk_svc_kei_stat` | Field | Equipment provisioning service contract status — the current status code of the equipment service contract (e.g., 100=In Service, 210=Suspended). |
| `kktk_svc_cd` | Field | Equipment provisioning service code — identifies the type of equipment provided (V-ONU, Router, HGW, etc.). |
| `oya_kei_skbt_cd` | Field | Parent contract identification code — classifies whether the equipment is attached within a service contract line (02) or standalone. |
| `svc_kei_no` | Field | Service contract number — top-level contract identifier extracted from service contract inquiry result. |
| `svc_cd` | Field | Service code — identifies the underlying service type (Net=01, Tel=02, TV=03). |
| `prc_grp_cd` | Field | Price group code — classifies the pricing tier of the service (Home=02, Maison=03, Mansion=04). |
| `kkopKeiUpdInfo` | Field | Equipment option contract update information map — holds all fields required for the equipment option contract update. |
| `IDO_DIV_USESTP` | Constant | Movement classification code "00062" — indicates a suspension (utilization stop) movement type. |
| `oPE_DATE` | Field | Operating date — the current business date used as the service stop date in update records. |
| V-ONU | Business term | Virtual Ethernet Passive Optical Network — a type of ONT (optical network terminal) equipment provided by NTT East. |
| MFR | Business term | Multi-Function Router (多機能ルーター) — code C024, a router with integrated functions for Net and Tel services. |
| HGW | Business term | Home Gateway (ホームゲートウェイ) — code C025, a gateway device for home network services. |
| PCRS_GRP_HOME | Constant | Price group code "02" — residential Home pricing tier. |
| PCRS_GRP_MAISON | Constant | Price group code "03" — Maison (apartment) pricing tier. |
| PCRS_GRP_MANSION | Constant | Price group code "04" — Mansion (condominium) pricing tier. |
| OYA_KEI_SKBT_CD_KAISEN | Constant | Parent contract classification code "02" — indicates the equipment is attached within a service contract line (回線内の機器). |
| SVC_KEI_STAT_TKC | Constant | Service contract status "100" — Service Provisioning (サービス提供中). |
| SVC_KEI_STAT_PAUSE | Constant | Service contract status "210" — Suspended/Interrupted (休止・中断中). |
| `kkopSvcKei_UseStp` (internal) | Method | Equipment Option Service Contract Suspension — internal method that suspends the equipment option service contract record. |
| `updateKkopSvcKeiTran` | Method | Equipment Option Service Contract Update Main Processing — updates the equipment option contract with suspension data. |
| `callEKK0341A010SC` | Method | Equipment Provisioning Service Contract Agreement Inquiry SC — queries the current state of the equipment service contract. |
| `callEKK0341C120SC` | Method | Equipment Provisioning Service Contract Suspension SC — performs the database-level service contract suspension. |
| `callEKK0081B009SC` | Method | Same Location Service Contract List Inquiry SC — retrieves all service contracts at the same location. |
| `callEKK0081A010SC` | Method | Service Contract Inquiry SC — queries the top-level service contract details. |
| `isAnotherSvckeiUsing` | Method | Checks whether another service contract at the same location is using the same equipment. |
| `isKktkSvcKeiTargetData` | Method | Validates whether the equipment service contract is a valid target for suspension. |
| `createUserData` | Method | Creates a user data work map in the parameter object for intermediate data storage. |
| JKKKkopSvcUseKeiUpdCC | Class | Equipment Option Service Contract Update Common Component — handles equipment option service contract updates. |
| TEMPLATE_ID_EKK0341A010 | Constant | Template ID "EKK0341A010" — key for equipment provisioning service contract agreement inquiry results. |
| TEMPLATE_ID_EKK0081A010 | Constant | Template ID "EKK0081A010" — key for service contract inquiry results. |
| TEMPLATE_ID_EKK0081B009 | Constant | Template ID "EKK0081B009" — key for same location service contract list results. |
| SC Code Pattern | Convention | `EKK0341A010SC` — NTT East service component code pattern where EKK=equipment, 03=service contract, 41=inquiry/update, A010=specific operation. |
| KKTK | Abbreviation | 機器提供 (Equipment Provision) — prefix for equipment-provisioned service contract tables and objects. |
| KKOP | Abbreviation | 機器オプション (Equipment Option) — prefix for equipment option service contract tables and objects. |
| SVC_KEI | Abbreviation | サービス契約 (Service Contract) — service contract line item. |
