# Business Logic — JKKPauseChgRsvClCC.pauseChgTranBat() [189 LOC]

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

## 1. Role

### JKKPauseChgRsvClCC.pauseChgTranBat()

This method performs **batch-driven service contract suspension change processing** for the K-Opticom customer backbone system. It orchestrates the end-to-end workflow of changing a service contract from "active" to "paused" status when invoked in batch mode (as opposed to online/screen mode, which is handled by the caller `pauseChgRsvClCtrlTran`). The method routes processing into one of three mutually exclusive date-based branches depending on the relationship between the requested pause start date (`svc_pause_ymd`), the operation date (`tmpOpeDate`), and the pause release date (`svc_pause_rls_ymd`). In all branches it dispatches to CBS (Call By) modules: it calls the Netflix premium option cancellation CBS (`dsleOpSvcKeiNetflix`), the service contract pause change CBS (`callEKK0081C080`), the progress registration CBS (`makeProgress`), and the fault cell anomaly info registration (`executeFmtcelIdoInf`). For the "pause date equals operation date" branch it additionally registers smart buffer anomaly info (`executeAddSmtvlIdoInf`). If the service code indicates Netflix (`"01"`), it registers Netflix-related contract anomaly info (`executeNetflixTajgsKeiIdInf`). If the service code indicates TV (`"03"`), it calls the smart key info pause CBS (`executeSptvKeyInfPause`). The method implements a **conditional dispatch pattern**, where service type (Netflix vs. TV) and temporal context determine which auxiliary processing steps execute. Its role in the larger system is as the central batch executor for the "pause change with reservation" business process, serving as the bridge between screen-level orchestration and CBS-level data mutation.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["pauseChgTranBat start"])
    EXTRACT_PARAM["Extract request parameters<br/>svc_pause_ymd, svc_pause_rls_ymd, mskm_dtl_no, tmpOpeDate"]
    SET_FUNC["Set FUNC_CODE_KEY = FUNC_CD_1"]
    GET_AGREEMENT["Get service contract agreement CAANMsg from resultHash"]
    EXTRACT_FIELDS["Extract: pcrs_cd, svc_cd, tmpSvcKeiStat, tmpUpdDtm"]

    START --> EXTRACT_PARAM --> SET_FUNC --> GET_AGREEMENT --> EXTRACT_FIELDS

    COND1{"svc_pause_ymd == tmpOpeDate"}
    EXTRACT_FIELDS --> COND1

    COND1_TRUE["Branch: Pause date equals operation date"]
    COND1_TRUE --> NETFLIX_DSLE_1["Call dsleOpSvcKeiNetflix for premium option cancellation"]
    NETFLIX_DSLE_1 --> UPDATE_TMP_UPD["Update tmpUpdDtm if dsleOpSvcKeiNetflix returns value"]
    UPDATE_TMP_UPD --> CALL_EKK0081C080_1["Call callEKK0081C080 - Service contract pause change"]
    CALL_EKK0081C080_1 --> STORE_RESULT_1["Store result to resultHash EKK0081C080"]
    STORE_RESULT_1 --> CALL_MAKE_PROGRESS_1["Call makeProgress - Progress registration"]
    CALL_MAKE_PROGRESS_1 --> CALL_FMTCEL_1["Call executeFmtcelIdoInf - Fault cell anomaly info registration"]
    CALL_FMTCEL_1 --> CALL_SMTVL_1["Call executeAddSmtvlIdoInf - Smart buffer anomaly info registration"]
    CALL_SMTVL_1 --> CHECK_SVC_CD_NET{"svc_cd == 01 (Netflix)"}
    CALL_SMTVL_1 --> CHECK_SVC_CD_TV{"svc_cd == 03 (TV)"}

    CHECK_SVC_CD_NET_TRUE["Yes: Netflix"]
    CHECK_SVC_CD_NET_TRUE --> CALL_NETFLIX_IDO["Call executeNetflixTajgsKeiIdInf - Netflix contract anomaly registration"]
    CHECK_SVC_CD_NET_FALSE["No: skip"]

    CHECK_SVC_CD_TV_TRUE["Yes: TV"]
    CHECK_SVC_CD_TV_TRUE --> CALL_SPTV["Call executeSptvKeyInfPause - Smart key info pause"]
    CHECK_SVC_CD_TV_FALSE["No: skip"]

    COND1_FALSE["Branch: svc_pause_ymd < tmpOpeDate AND tmpOpeDate < svc_pause_rls_ymd"]
    COND1_FALSE --> NETFLIX_DSLE_2["Call dsleOpSvcKeiNetflix for premium option cancellation"]
    NETFLIX_DSLE_2 --> UPDATE_TMP_UPD_2["Update tmpUpdDtm if dsleOpSvcKeiNetflix returns value"]
    UPDATE_TMP_UPD_2 --> CALL_EKK0081C080_2["Call callEKK0081C080 - Service contract pause change"]
    CALL_EKK0081C080_2 --> STORE_RESULT_2["Store result to resultHash EKK0081C080"]
    STORE_RESULT_2 --> CALL_MAKE_PROGRESS_2["Call makeProgress - Progress registration"]
    CALL_MAKE_PROGRESS_2 --> CALL_FMTCEL_2["Call executeFmtcelIdoInf - Fault cell anomaly info registration"]
    CALL_FMTCEL_2 --> CHECK_SVC_CD_NET_2{"svc_cd == 01 (Netflix)"}
    CHECK_SVC_CD_NET_2_TRUE["Yes: Netflix"]
    CHECK_SVC_CD_NET_2_TRUE --> CALL_NETFLIX_IDO_2["Call executeNetflixTajgsKeiIdInf"]
    CHECK_SVC_CD_NET_2_FALSE["No: skip"]

    COND2_TRUE["Branch: svc_pause_rls_ymd <= tmpOpeDate"]
    COND2_TRUE --> CHECK_STAT{"tmpSvcKeiStat == 210 (Pause/Cancelled)"}
    CHECK_STAT_TRUE["Yes"]
    CHECK_STAT_TRUE --> CALL_PAUSE_RLS["Call executePauseRls - Pause release processing"]
    CHECK_STAT_FALSE["No: another status"]
    CHECK_STAT_FALSE --> CALL_EKK0081C080_3["Call callEKK0081C080 - Service contract pause change"]
    CALL_EKK0081C080_3 --> STORE_RESULT_3["Store result to resultHash EKK0081C080"]
    STORE_RESULT_3 --> CALL_MAKE_PROGRESS_3["Call makeProgress - Progress registration"]
    CALL_MAKE_PROGRESS_3 --> CALL_FMTCEL_3["Call executeFmtcelIdoInf - Fault cell anomaly info registration"]

    COND_INVALID["Else: Invalid date relationship"]
    COND_INVALID --> THROW_EXCEPTION["Throw SCCallException - INVALID_RETURN_MESSAGE"]

    CALL_NETFLIX_IDO --> END_NODE(["End"])
    CALL_SPTV --> END_NODE
    CHECK_SVC_CD_NET_FALSE --> END_NODE
    CALL_NETFLIX_IDO_2 --> END_NODE
    CHECK_SVC_CD_NET_2_FALSE --> END_NODE
    CALL_PAUSE_RLS --> END_NODE
    CALL_FMTCEL_3 --> END_NODE
    THROW_EXCEPTION --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle carrying transaction context and connection state for the current batch processing unit. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object wrapping the model group and control map. Contains the pause reception data map (key: `pause_recept_map`) with fields like `svc_pause_ymd`, `svc_pause_rls_ymd`, and `mskm_dtl_no`. Also holds control keys such as `FUNC_CODE_KEY`. |
| 3 | `fixedText` | `String` | User-defined arbitrary string used as a map key to extract the target data from the request parameter (`param.getData(fixedText)`). Acts as the logical grouping identifier for the batch request payload. |
| 4 | `resultHash` | `HashMap<String, Object>` | Result hash used as a shared buffer between CBS calls. Contains the prior step's output: the EKK0081A010 service contract agreement message (`RESULT_KEY_EKK0081A010`), the operation date (`OPEDATE_KEY`), and serves as the output carrier for results from `callEKK0081C080` (`RESULT_HASH_KEY_EKK0081C080`). |

**External state / constants referenced:**

| Name | Type | Business Description |
|------|------|---------------------|
| `PAUSE_RECEPT_MAP` | Constant | Map key `"pause_recept_map"` — extracts the pause reception data sub-map from the target map. [-> `PAUSE_RECEPT_MAP = "pause_recept_map"` (JKKPauseChgRsvClConstCC.java:114)] |
| `SVC_PAUSE_YMD` | Constant | Key `"svc_pause_ymd"` — service contract pause start date in YYYYMMDD format. [-> `SVC_PAUSE_YMD = "svc_pause_ymd"` (JKKPauseChgRsvClConstCC.java:120)] |
| `SVC_PAUSE_RLS_YMD` | Constant | Key `"svc_pause_rls_ymd"` — service contract pause release date in YYYYMMDD format. [-> `SVC_PAUSE_RLS_YMD = "svc_pause_rls_ymd"` (JKKPauseChgRsvClConstCC.java:123)] |
| `MSKM_DTL_NO` | Constant | Key `"mskm_dtl_no"` — application detail number (subscription detail number). [-> `MSKM_DTL_NO = "mskm_dtl_no"` (JKKPauseChgRsvClConstCC.java:134)] |
| `OPEDATE_KEY` | Constant | Key `"OPEDATE"` — operation date (business date for batch processing). [-> `OPEDATE_KEY = "OPEDATE" (JKKPauseChgRsvClCC.java:141)`] |
| `RESULT_KEY_EKK0081A010` | Constant | Key `"EKK0081A010"` — result buffer key for the service contract agreement message. [-> `RESULT_KEY_EKK0081A010 = "EKK0081A010" (JKKPauseChgRsvClCC.java:144)`] |
| `RESULT_HASH_KEY_EKK0081C080` | Constant | Key `"EKK0081C080"` — result buffer key for the pause change execution result. [-> `RESULT_HASH_KEY_EKK0081C080 = "EKK0081C080" (JKKPauseChgRsvClCC.java:130)`] |
| `SVC_KEI_STAT_KYUS` | Constant | Status code `"210"` — service contract status: "Pause/Cancelled" (休止・中止中). [-> `SVC_KEI_STAT_KYUS = "210" (JKKPauseChgRsvClCC.java:92)`] |
| `SVC_KEI_STAT_STP` | Constant | Status code `"220"` — service contract status: "Suspended" (停止中). [-> `SVC_KEI_STAT_STP = "220" (JKKPauseChgRsvClCC.java:95)`] |
| `SVC_CD_NET` | Constant | Service code `"01"` — Internet/Netflix service. [-> `SVC_CD_NET = "01" (JKKPauseChgRsvClCC.java:84)`] |
| `SVC_CD_TV` | Constant | Service code `"03"` — TV service. [-> `SVC_CD_TV = "03" (JKKPauseChgRsvClCC.java:88)`] |
| `SVC_KEI_STAT_TKC` | Constant | Status code `"100"` — service contract status: "Service in progress" (サービス提供中). |
| `SVC_KEI_STAT_DSL` | Constant | Status code `"910"` — service contract status: "Terminated" (解消済). |
| `SVC_KEI_STAT_CANCEL` | Constant | Status code `"920"` — service contract status: "Cancelled" (キャンセル済). |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `dsleOpSvcKeiNetflix` | EKK0161B004SC | KK_T_OPSVKEI_ISP, KK_T_OPSVKEI_NETFLW | Netflix premium option cancellation — reads service contract agreement to determine cancellation eligibility and prepares cancellation data |
| C | `callEKK0081C080` | EKK0081C080SC | KK_T_OPSVKEI, KK_T_OPSVKEI_HIST | Service contract pause change — updates the service contract status to paused and records the pause effective date |
| C | `makeProgress` | EKK1091D010CBS | KK_T_PRG_SVC, KK_T_PRG_INF | Progress registration — registers processing progress records for the batch job |
| C | `executeFmtcelIdoInf` | EKK0351C220CBS | KK_T_FTMCEL_IDO_INF | Fault cell anomaly info registration — registers fault cell anomaly data detected during pause processing |
| C | `executeAddSmtvlIdoInf` | EKK0351C240CBS | KK_T_SMTVL_IDO_INF | Smart buffer anomaly info registration — registers smart buffer anomaly data for pause start reservations |
| C | `executeNetflixTajgsKeiIdInf` | EKK0191B005SC | KK_T_NETFLW_TAJGS_ID_INF | Netflix other business contract anomaly registration — registers anomaly data for Netflix-related third-party contract changes |
| C | `executeSptvKeyInfPause` | EKK0351B012CBS | KK_T_SPTV_KEY_INF | Smart key info pause — handles smart TV key information suspension for TV service contracts |
| R | `getWorkCAANMsg` | - | - | Extracts work CAAN (correlation) message from call result for storage in resultHash |
| C | `executePauseRls` | EKK0351B002CBS | KK_T_OPSVKEI, KK_T_OPSVKEI_HIST | Pause release processing — releases a suspended service contract back to active status |
| - | `JKKStringUtil.isNullEmpty` | - | - | Utility null/empty check on string values |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 1 method.
Terminal operations from this method: `executeFmtcelIdoInf` [-], `makeProgress` [-], `getWorkCAANMsg` [R], `callEKK0081C080` [-], `executePauseRls` [-], `executeNetflixTajgsKeiIdInf` [-], `dsleOpSvcKeiNetflix` [-], `executeSptvKeyInfPause` [-], `executeAddSmtvlIdoInf` [C]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CC: JKKPauseChgRsvClCC.pauseChgRsvClCtrlTran() | `pauseChgRsvClCtrlTran` -> `pauseChgTranBat` | `callEKK0081C080 [C] KK_T_OPSVKEI`, `makeProgress [C] KK_T_PRG_SVC`, `executeFmtcelIdoInf [C] KK_T_FTMCEL_IDO_INF`, `executeAddSmtvlIdoInf [C] KK_T_SMTVL_IDO_INF`, `executeNetflixTajgsKeiIdInf [C] KK_T_NETFLW_TAJGS_ID_INF`, `executeSptvKeyInfPause [C] KK_T_SPTV_KEY_INF`, `executePauseRls [C] KK_T_OPSVKEI`, `dsleOpSvcKeiNetflix [R] KK_T_OPSVKEI_ISP` |

## 6. Per-Branch Detail Blocks

### Block 1 — Parameter Extraction and Setup (L763)

> Extracts request parameters, sets the function code for batch mode (fix for IT2-2012-0001632: function code cannot be obtained when started from batch), and reads the service contract agreement message.

| # | Type | Code |
|---|------|------|
| 1 | SET | `trgtMap = param.getData(fixedText)` |
| 2 | SET | `inMap = trgtMap.get(PAUSE_RECEPT_MAP)` [-> `PAUSE_RECEPT_MAP = "pause_recept_map"` (JKKPauseChgRsvClConstCC.java:114)] |
| 3 | SET | `svc_pause_ymd = inMap.get(SVC_PAUSE_YMD)` [-> `SVC_PAUSE_YMD = "svc_pause_ymd"` (JKKPauseChgRsvClConstCC.java:120)] // Service contract pause date |
| 4 | SET | `svc_pause_rls_ymd = inMap.get(SVC_PAUSE_RLS_YMD)` [-> `SVC_PAUSE_RLS_YMD = "svc_pause_rls_ymd"` (JKKPauseChgRsvClConstCC.java:123)] // Service contract pause release date |
| 5 | SET | `mskm_dtl_no = inMap.get(MSKM_DTL_NO)` [-> `MSKM_DTL_NO = "mskm_dtl_no"` (JKKPauseChgRsvClConstCC.java:134)] // Application detail number |
| 6 | SET | `tmpOpeDate = resultHash.get(OPEDATE_KEY)` [-> `OPEDATE_KEY = "OPEDATE"` (JKKPauseChgRsvClCC.java:141)] // Operation date |
| 7 | SET | `trgtMap.put(FUNC_CODE_KEY, FUNC_CD_1)` // Set function code to 1 for batch mode [-> `JPCModelConstant.FUNC_CD_1` (IT2-2012-0001632)] |
| 8 | SET | `msgEKK0081A010 = resultHash.get(RESULT_KEY_EKK0081A010)` [-> `RESULT_KEY_EKK0081A010 = "EKK0081A010"` (JKKPauseChgRsvClCC.java:144)] // Service contract agreement message |
| 9 | SET | `pcrs_cd = msgEKK0081A010.getString(PCRS_CD)` // ANK-3987-00-00 ADD: Price code |
| 10 | SET | `svc_cd = msgEKK0081A010.getString(SVC_CD)` // ANK-3987-00-00 ADD: Service code |
| 11 | SET | `tmpSvcKeiStat = msgEKK0081A010.getString(SVC_KEI_STAT)` // Service contract status |
| 12 | SET | `tmpUpdDtm = msgEKK0081A010.getString(LAST_UPD_DTM)` // Last update datetime |

---

### Block 2 — IF Branch: `svc_pause_ymd == tmpOpeDate` (L780)

> Service contract pause date equals operation date. This is the "immediate pause" branch. Processing: Netflix premium option cancellation -> service contract pause change -> progress registration -> fault cell anomaly info registration -> smart buffer anomaly info registration -> (conditional Netflix/TV specific processing).

**Block 2.1 — Netflix premium option cancellation** (L807)

> ANK-3987-00-00: Calls Netflix premium option cancellation CBS to handle the Netflix contract side effects of a pause operation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `opLastUpdDtm = dsleOpSvcKeiNetflix(handle, param, fixedText, resultHash, tmpUpdDtm, mskm_dtl_no)` // Netflix premium option cancellation |
| 2 | SET | `tmpUpdDtm = opLastUpdDtm` // Update last update datetime if Netflix CBS returned a new value |

**Block 2.2 — Service contract pause change** (L818)

> Core CBS call: updates the service contract's pause information in the database.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rsltEKK0081C080 = callEKK0081C080(handle, param, fixedText, tmpUpdDtm, mskm_dtl_no)` // Service contract pause change |
| 2 | EXEC | `resultHash.put(RESULT_HASH_KEY_EKK0081C080, getWorkCAANMsg(rsltEKK0081C080))` [-> `RESULT_HASH_KEY_EKK0081C080 = "EKK0081C080"` (JKKPauseChgRsvClCC.java:130)] // Store result for caller |

**Block 2.3 — Progress registration** (L824)

> Registers batch processing progress.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rsltEKK1091D010 = makeProgress(handle, param, fixedText, mskm_dtl_no, resultHash)` |

**Block 2.4 — Fault cell anomaly info registration** (L831)

> ANK-0035-00-0007: Registers fault cell anomaly information.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeFmtcelIdoInf(handle, param, inMap, fixedText, rsltEKK1091D010)` |

**Block 2.5 — Smart buffer anomaly info registration** (L838)

> KT1-2013-0000795: Registers smart buffer anomaly data to link pause reservation with smart buffer cancellation correlation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeAddSmtvlIdoInf(handle, param, inMap, fixedText, rsltEKK1091D010)` |

**Block 2.6 — Conditional: Netflix service** (L844)

> ANK-3987-00-00: For Netflix service contracts only, registers Netflix other business contract anomaly info.

| # | Type | Code |
|---|------|------|
| 1 | COND | `"01".equals(svc_cd)` [-> `SVC_CD_NET = "01"` (JKKPauseChgRsvClCC.java:84)] // Service code equals Netflix |
| 2 | CALL | `executeNetflixTajgsKeiIdInf(handle, param, inMap, pcrs_cd)` // Netflix other business contract anomaly registration |

**Block 2.7 — Conditional: TV service** (L852)

> ANK-4592-00-00: For TV service contracts, calls smart key info pause CBS.

| # | Type | Code |
|---|------|------|
| 1 | COND | `"03".equals(svc_cd)` [-> `SVC_CD_TV = "03"` (JKKPauseChgRsvClCC.java:88)] // Service code equals TV |
| 2 | CALL | `executeSptvKeyInfPause(handle, param, inMap, svc_pause_ymd)` // Smart key info pause for TV |

---

### Block 3 — ELSE-IF Branch: `svc_pause_ymd < tmpOpeDate && tmpOpeDate < svc_pause_rls_ymd` (L861)

> The pause date is in the past (already passed) but the operation date is before the release date — meaning the service is currently in a paused state and this is a batch re-processing or correction. Processing: Netflix premium option cancellation -> service contract pause change -> progress registration -> fault cell anomaly info registration -> (conditional Netflix processing). Note: smart buffer anomaly info is NOT registered in this branch (it is exclusive to the immediate pause path).

**Block 3.1 — Netflix premium option cancellation** (L868)

> IT1-2021-0000025 v52.00.02: Netflix premium option cancellation for re-processing.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `opLastUpdDtm = dsleOpSvcKeiNetflix(handle, param, fixedText, resultHash, tmpUpdDtm, mskm_dtl_no)` |
| 2 | SET | `tmpUpdDtm = opLastUpdDtm` // Update last update datetime if Netflix CBS returned a new value |

**Block 3.2 — Service contract pause change** (L879)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rsltEKK0081C080 = callEKK0081C080(handle, param, fixedText, tmpUpdDtm, mskm_dtl_no)` |
| 2 | EXEC | `resultHash.put(RESULT_HASH_KEY_EKK0081C080, getWorkCAANMsg(rsltEKK0081C080))` |

**Block 3.3 — Progress registration** (L885)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rsltEKK1091D010 = makeProgress(handle, param, fixedText, mskm_dtl_no, resultHash)` |

**Block 3.4 — Fault cell anomaly info registration** (L891)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeFmtcelIdoInf(handle, param, inMap, fixedText, rsltEKK1091D010)` |

**Block 3.5 — Conditional: Netflix service** (L896)

> IT1-2021-0000025 v52.00.03: Netflix-specific anomaly registration for re-processing.

| # | Type | Code |
|---|------|------|
| 1 | COND | `"01".equals(svc_cd)` [-> `SVC_CD_NET = "01"` (JKKPauseChgRsvClCC.java:84)] // Service code equals Netflix |
| 2 | CALL | `executeNetflixTajgsKeiIdInf(handle, param, inMap, pcrs_cd)` |

---

### Block 4 — ELSE-IF Branch: `svc_pause_rls_ymd <= tmpOpeDate` (L908)

> The pause release date is on or before the operation date — meaning the pause release has arrived or passed. This is the "pause release" branch.

**Block 4.1 — Inner IF: Service status is "Pause/Cancelled" (210)** (L912)

> SVC_KEI_STAT_KYUS = "210" — the service contract is in "pause/cancelled" state. Execute pause release.

| # | Type | Code |
|---|------|------|
| 1 | COND | `SVC_KEI_STAT_KYUS.equals(tmpSvcKeiStat)` [-> `SVC_KEI_STAT_KYUS = "210"` (JKKPauseChgRsvClCC.java:92)] // Status is Pause/Cancelled |
| 2 | CALL | `executePauseRls(handle, param, fixedText, resultHash, tmpUpdDtm, mskm_dtl_no, svc_cd)` // ANK-4592-00-00 MOD: Added svc_cd parameter for smart key info release |

**Block 4.2 — Inner ELSE: Another status (not 210)** (L925)

> The service is not in "Pause/Cancelled" status but the release date has arrived. Re-execute service contract pause change (possibly a re-processing or correction scenario).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rsltEKK0081C080 = callEKK0081C080(handle, param, fixedText, tmpUpdDtm, mskm_dtl_no)` // Service contract pause change |
| 2 | EXEC | `resultHash.put(RESULT_HASH_KEY_EKK0081C080, getWorkCAANMsg(rsltEKK0081C080))` |
| 3 | CALL | `rsltEKK1091D010 = makeProgress(handle, param, fixedText, mskm_dtl_no, resultHash)` |
| 4 | CALL | `executeFmtcelIdoInf(handle, param, inMap, fixedText, rsltEKK1091D010)` |

---

### Block 5 — ELSE (Invalid Date Relationship) (L935)

> None of the three date conditions are met: this represents a data inconsistency where `svc_pause_ymd > tmpOpeDate` and `svc_pause_rls_ymd > tmpOpeDate` but `svc_pause_ymd != tmpOpeDate`. Throw an exception.

| # | Type | Code |
|---|------|------|
| 1 | SET | `errMsg = "INVALID_RETURN_MESSAGE"` |
| 2 | RETURN | `throw new SCCallException(errMsg, "0", -1)` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_pause_ymd` | Field | Service contract pause start date — the date from which the service should be paused, in YYYYMMDD format |
| `svc_pause_rls_ymd` | Field | Service contract pause release date — the date after which the pause should be released and the service resumes |
| `mskm_dtl_no` | Field | Application detail number — unique identifier for the subscription detail line item |
| `tmpOpeDate` | Field | Operation date (business date) — the effective processing date for batch operations, typically the system date or job run date |
| `pcrs_cd` | Field | Price code — the pricing plan code associated with the service contract, used for Netflix-related processing |
| `svc_cd` | Field | Service code — identifies the service type: `"01"` = Internet (Netflix), `"02"` = Telephone, `"03"` = TV |
| `tmpSvcKeiStat` | Field | Service contract status — current state of the service contract as read from the agreement message |
| `tmpUpdDtm` | Field | Last update datetime — timestamp of the most recent database update, used for optimistic concurrency control |
| `SVC_KEI_STAT_TKC` | Constant | Service Contract Status: "Service in Progress" (サービス提供中) — code `"100"`, normal active state |
| `SVC_KEI_STAT_KYUS` | Constant | Service Contract Status: "Pause/Cancelled" (休止・中止中) — code `"210"`, service is suspended or in cancellation |
| `SVC_KEI_STAT_STP` | Constant | Service Contract Status: "Suspended" (停止中) — code `"220"`, service is under usage suspension |
| `SVC_KEI_STAT_DSL` | Constant | Service Contract Status: "Terminated" (解消済) — code `"910"`, service contract is fully terminated |
| `SVC_KEI_STAT_CANCEL` | Constant | Service Contract Status: "Cancelled" (キャンセル済) — code `"920"`, service contract was cancelled |
| `SVC_CD_NET` | Constant | Service Code for Internet/Netflix — code `"01"` |
| `SVC_CD_TV` | Constant | Service Code for TV — code `"03"` |
| EKK0081A010 | CBS | Service Contract Agreement Retrieve — retrieves the current service contract agreement details (status, dates, service codes) |
| EKK0081C080 | CBS | Service Contract Pause Change — updates the service contract to paused state with effective date |
| EKK0161B004 | CBS | Netflix Premium Option Cancellation — cancels Netflix premium option subscriptions as part of the overall pause workflow |
| EKK1091D010 | CBS | Progress Registration — registers batch processing progress records for monitoring and retryability |
| EKK0351C220 | CBS | Fault Cell Anomaly Info Registration — registers fault cell anomaly data detected during pause processing |
| EKK0351C240 | CBS | Smart Buffer Anomaly Info Registration — registers smart buffer anomaly data for pause start reservations |
| EKK0191B005 | CBS | Netflix Other Business Contract Anomaly Registration — registers anomaly data for Netflix-related third-party contract changes |
| EKK0351B002 | CBS | Pause Release Processing — releases a paused service contract back to active status |
| EKK0351B012 | CBS | Smart Key Info Pause — handles smart TV key information suspension for TV service contracts |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity for service registration/cancellation orders |
| Netflix | Business term | Over-the-top streaming service offered by K-Opticom as an add-on to Internet service contracts |
| Smart Buffer | Business term | Smart buffer buffer (スマートバッファ) — a service feature for data buffering, managed via smart buffer anomaly records |
| CBS | Acronym | Call By Service — Fujitsu Futurity pattern for remote service component calls (database-level operations) |
| CAANMsg | Acronym | Correlation Message — a message envelope used to carry request/response data between CBS modules |
| SC | Acronym | Service Component — the logical layer of remote callable business services |
| PAUSE_RECEPT_MAP | Constant | Map key `"pause_recept_map"` — the request parameter sub-map containing pause reception data |
| FUNC_CD_1 | Constant | Function code `1` — indicates batch execution mode |
| SCCallException | Exception | Custom exception for service component call failures, used to signal invalid state |
| `ido_div` | Field | Anomaly classification — distinguishes types of anomaly records |
| `sod_hakko_flg` | Field | SOD issuance flag — indicates whether a service order should be issued (`"0"` = not required, `"1"` = required) |
