# Business Logic — JKKOpSvcHktgiUpdCC.rsvOpHktgi() [131 LOC]

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

## 1. Role

### JKKOpSvcHktgiUpdCC.rsvOpHktgi()

This method implements the **Option Transfer Reservation Processing** (オプション引継予約処理), which is a core step in the service contract transfer (option transfer) workflow. In the larger system, a customer migrating their service to a different provider ("transfer") requires the original (transfer-source) option service contracts to be properly terminated with correct end dates. The `rsvOpHktgi` method performs exactly that: it iterates over all option service contracts associated with the transfer, validates their current status, computes the service and charge end dates, determines whether any non-billing (termination) charges apply, and then executes a two-phase cancellation — first a soft cancellation (EKK0351C240) and then a hard cancellation confirmation (EKK0351C250) — for each eligible option service contract.

The method acts as a **delegation router**: it relies on several helper methods (`callEKK0081A010`, `getOpSvcKeiInfo`, `runHiChrgJdgUtil`, `editInMsgEKK0351C240`, `editInMsgEKK0351C250`, `runSc`) to perform the actual data access, business rule evaluation, and CBS (Central Business System) invocations. It implements a **batch update pattern** — iterating over a list of service contracts and processing each one in sequence.

The method has one conditional branch: it checks whether the transfer-source option service contract is in a valid status (030 = Contract Completed, 100 = Service In Progress, or 210 = Suspended/Interrupted). If the status is invalid, the method throws an error indicating the transfer reservation registration is not possible. The three valid statuses are noted in comments as states that "do not actually occur in live data" for 030 and 210, suggesting the branch may serve as a defensive guard.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["rsvOpHktgi(params)"])

    START --> GetUser["Get userData from param.getData(fixedText)"]

    GetUser --> GetRetHiki["Call callEKK0081A010 - Transfer source service agreement"]

    GetRetHiki --> SetMotoLastDtm["Set motoLastUpdDtm from userData<br>(USER_DATA_KEY_HIKIMOTO_LAST_UPD_DTM)"]

    SetMotoLastDtm --> SetOpList["Set opSvcKeiList from userData<br>(OP_SVC_KEI_LIST)"]

    SetOpList --> LoopStart{"For each opSvcKei in opSvcKeiList"}

    LoopStart --> LoopBody["Get opSvcKei by index"]

    LoopBody --> GetOpSvcNo["Get hikiMotoOpSvcKeiNo"]

    GetOpSvcNo --> GetInfo["Call getOpSvcKeiInfo<br>(Transfer source option service info)"]

    GetInfo --> GetMsgs["Get msgsEKK0351A010 from infoMap<br>(MAP_KEY_OP_SVC)"]

    GetMsgs --> GetStat["Get hikiMotoOpSvcKeiStat"]

    GetStat --> CheckStat{"Status check:<br>SVC_KEI_STAT_030 = \"030\"<br>OR<br>SVC_KEI_STAT_100 = \"100\"<br>OR<br>SVC_KEI_STAT_210 = \"210\""}

    CheckStat --> Yes["Yes: Valid status"]

    CheckStat --> No["No: Invalid status"]

    Yes --> CalcDates["Calculate aplyYmd, svcEndYmd, svcChrgEndYmd<br>(aplyYmd minus 1 for svcChrgEndYmd)"]

    CalcDates --> InitInMap["Create inMap with svc_chrg_endymd, svc_endymd"]

    InitInMap --> RunJdg["Call runHiChrgJdgUtil<br>(Non-billing judgment for option)<br>DSL_SBT_FLG_OP_SVC_KEI_DSL = \"2\""]

    RunJdg --> Edit240["Call editInMsgEKK0351C240<br>(Option service contract cancellation prep)"]

    Edit240 --> SetHikisakiNo["Set op_hktgi_sk_svc_kei_no<br>(Next party service number)"]

    SetHikisakiNo --> RunSc240["Call runSc EKK0351C240<br>(Execute cancellation)"]

    RunSc240 --> UpdateDtm["Update motoLastUpdDtm from retMsg"]

    UpdateDtm --> Edit250["Call editInMsgEKK0351C250<br>(Option service contract cancellation confirmation)"]

    Edit250 --> RunSc250["Call runSc EKK0351C250<br>(Execute cancellation confirmation)"]

    RunSc250 --> UpdateDtm2["Update motoLastUpdDtm from retMsg"]

    UpdateDtm2 --> LoopBack{"More items?"}

    LoopBack --> Yes2["Yes"]

    LoopBack --> Done["No"]

    No --> ThrowError["Build errMsg and throw CCException<br>(SCCode=9051, ErrorCode=8011)"]

    Done --> END_NODE(["Return / Next"])

    LoopBack --> LoopBody

    LoopBody --> LoopStart
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Session handle containing session management context (e.g., database connection, transaction context). Passed to all called CBS and service methods. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the model group and control map for the current screen request. Used to retrieve user data (`getData`) and to build input maps for CBS invocations. |
| 3 | `fixedText` | `String` | User-defined arbitrary string used as a key to retrieve user data from the request parameter. Specifically, `param.getData(this.fixedText)` returns a `Map<String, Object>` containing all pre-populated transfer reservation data. |
| 4 | `mskmDtlNo` | `String` | Application detail number (申込明細番号) — identifies the specific line item within the application record. Used when building the cancellation preparation input map (EKK0351C240) to trace the cancellation to its originating application. |
| 5 | `workMap` | `HashMap<String, Object>` | Work map carrying state across method calls within the broader transfer processing flow. Contains the `ido_div` (ID division flag, key: `USER_DATA_KEY_IDO_DIV = "ido_div"`) which is extracted and passed to the mapper methods. |

**Instance/external fields read by this method:**

| Field | Constant | Resolved Value | Business Meaning |
|-------|----------|---------------|-----------------|
| `this.fixedText` (referenced as `this.fixedText` in `param.getData`) | — | — | Field on the class; used to key into `param.getData()` |
| — | `USER_DATA_KEY_HIKIMOTO_SVC_KEI_NO` | `"hikimoto_svc_kei_no"` | Transfer-source service contract number key |
| — | `USER_DATA_KEY_HIKIMOTO_LAST_UPD_DTM` | `"last_upd_dtm"` | Transfer-source last update datetime key |
| — | `USER_DATA_KEY_HIKISAKI_APLY_YMD` | `"hikisaki_aply_ymd"` | Next party (transferee) application date key |
| — | `USER_DATA_KEY_HIKISAKI_SVC_KEI_NO` | `"hikisaki_svc_kei_no"` | Next party service contract number key |
| — | `OP_SVC_KEI_LIST` | (key in userData map) | List of option service contracts to process for transfer |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callEKK0081A010` | EKK0081A010SC | `KK_T_OPSVKEI_ISP` (Option Service Contract ISP) | Retrieves transfer-source service agreement data via CBS EKK0081A010 — queries the original ISP option service contract record to get its current state. |
| R | `getOpSvcKeiInfo` | EKK0351A010SC | `KK_T_OPSVKEI_ISP` | Calls `getOpSvcKeiInfo` internally to obtain detailed option service contract information via CBS EKK0351A010 (Option Service Contract Agreement Inquiry). |
| R | `msgsEKK0351A010[0].getString` | EKK0351A010CBSMsg1List | N/A | Extracts the `OP_SVC_KEI_STAT` field from the agreement inquiry result to determine current service status. |
| R | `retMsgEKK0351C240.getString` | EKK0351C240CBSMsg | N/A | Extracts the `UPD_DTM` (update datetime) from the cancellation response after execution. |
| R | `retMsgEKK0351C250.getString` | EKK0351C250CBSMsg | N/A | Extracts the `UPD_DTM` from the cancellation confirmation response after execution. |
| R | `getIdoDiv` | — | N/A | Retrieves the `ido_div` (ID division flag) value from workMap to determine which database partition to access. |
| U | `runHiChrgJdgUtil` | — | N/A | Executes non-billing judgment utility for option service — determines if termination charges apply based on the discontinuation flag and service state. |
| C | `editInMsgEKK0351C240` | EKK0351C240 | `KK_T_OPSVKEI_ISP` | Option Service Contract Cancellation (soft cancellation / preparation) — CBS EKK0351C240 prepares the cancellation by updating service end dates and charge end dates. |
| C | `runSc(handle, param, EKK0351C240, mapEKK0351C240)` | EKK0351C240SC | `KK_T_OPSVKEI_ISP` | Executes the CBS EKK0351C240 service component to commit the cancellation update to the database. |
| C | `editInMsgEKK0351C250` | EKK0351C250 | `KK_T_OPSVKEI_ISP` | Option Service Contract Cancellation Confirmation (hard cancellation / final confirmation) — CBS EKK0351C250 finalizes the cancellation by setting the contract status to terminated. |
| C | `runSc(handle, param, EKK0351C250, mapEKK0351C250)` | EKK0351C250SC | `KK_T_OPSVKEI_ISP` | Executes the CBS EKK0351C250 service component to commit the cancellation confirmation to the database. |

**How to classify:**
- **C** (Create/Update via CBS): The `editInMsgEKK0351C240` and `editInMsgEKK0351C250` methods are mapper methods that prepare input message objects for CBS invocations. These correspond to CBS codes EKK0351C240 (Option Service Contract Cancellation) and EKK0351C250 (Option Service Contract Cancellation Confirmation) respectively. Both result in updates to the `KK_T_OPSVKEI_ISP` table (or equivalent option service contract entity).

**SC Codes:**
- `EKK0351C240SC` — Option Service Contract Cancellation
- `EKK0351C250SC` — Option Service Contract Cancellation Confirmation
- `EKK0351A010SC` — Option Service Contract Agreement Inquiry
- `EKK0081A010SC` — Transfer Source Service Agreement

## 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: `getString` [R], `getString` [R], `getString` [R], `runHiChrgJdgUtil` [-], `editInMsgEKK0351C240` [C], `runSc` [C], `editInMsgEKK0351C250` [C], `runSc` [C], `getString` [R]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `opSvcHktgiUpd` (JKKOpSvcHktgiUpdCC) | `JKKOpSvcHktgiUpdCC.opSvcHktgiUpd()` -> `JKKOpSvcHktgiUpdCC.rsvOpHktgi()` | `callEKK0081A010 [R] KK_T_OPSVKEI_ISP`, `getOpSvcKeiInfo [R] KK_T_OPSVKEI_ISP`, `editInMsgEKK0351C240 [C] KK_T_OPSVKEI_ISP`, `runSc(EKK0351C240) [C] KK_T_OPSVKEI_ISP`, `editInMsgEKK0351C250 [C] KK_T_OPSVKEI_ISP`, `runSc(EKK0351C250) [C] KK_T_OPSVKEI_ISP` |

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Get user data from param (L6626)

Retrieves the user data map from the request parameter using `this.fixedText` as the key. This map contains all pre-populated transfer reservation data set by prior processing steps.

| # | Type | Code |
|---|------|------|
| 1 | SET | `userData = param.getData(this.fixedText)` // User data map (HashMap<String, Object>) |

**Block 2** — [CALL] Retrieve transfer-source service agreement (L6629)

Calls `callEKK0081A010` to obtain the transfer-source service agreement data. The method passes the transfer-source service contract number extracted from `userData`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `retHikiMotoEKK0081A010 = callEKK0081A010(handle, param, userData.get(USER_DATA_KEY_HIKIMOTO_SVC_KEI_NO))` // Transfer source service agreement inquiry. USER_DATA_KEY_HIKIMOTO_SVC_KEI_NO = "hikimoto_svc_kei_no" |
| 2 | RETURN | `retHikiMotoEKK0081A010` as `CAANMsg[]` |

**Block 3** — [SET] Set last update datetime and option service list (L6632–6635)

Extracts the transfer-source last update datetime and the list of option service contracts to process from the user data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `motoLastUpdDtm = userData.get(USER_DATA_KEY_HIKIMOTO_LAST_UPD_DTM)` // Transfer source last update datetime. USER_DATA_KEY_HIKIMOTO_LAST_UPD_DTM = "last_upd_dtm" |
| 2 | SET | `opSvcKeiList = userData.get(OP_SVC_KEI_LIST)` // List of option service contracts for transfer |

**Block 4** — [FOR] Iterate over option service contracts (L6637–6743)

Main processing loop. Iterates over each option service contract in the transfer target list and processes the cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `opIdx` from 0 to `opSvcKeiList.size() - 1` |

**Block 4.1** — [SET] Get individual option service contract (L6639)

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKei = opSvcKeiList.get(opIdx)` |

**Block 4.2** — [SET] Get transfer-source option service number (L6642)

| # | Type | Code |
|---|------|------|
| 1 | SET | `hikiMotoOpSvcKeiNo = opSvcKei.get("op_svc_kei_no")` // Transfer-source option service contract number |

**Block 4.3** — [CALL] Get transfer-source option service info (L6645)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `infoMap = getOpSvcKeiInfo(handle, param, hikiMotoOpSvcKeiNo)` // Retrieves detailed service contract info. Returns HashMap containing msgsEKK0351A010 array. |

**Block 4.4** — [SET] Extract agreement messages (L6648)

| # | Type | Code |
|---|------|------|
| 1 | SET | `msgsEKK0351A010 = infoMap.get(MAP_KEY_OP_SVC)` // MAP_KEY_OP_SVC = "OP_SVC" — Agreement messages from inquiry result |

**Block 4.5** — [SET] Get transfer-source service status (L6651)

| # | Type | Code |
|---|------|------|
| 1 | SET | `hikiMotoOpSvcKeiStat = msgsEKK0351A010[0].getString(EKK0351A010CBSMsg1List.OP_SVC_KEI_STAT)` // Current service contract status code |

**Block 5** — [IF] Status check (L6654–6658)

Checks whether the transfer-source option service contract status is one of the three valid states for cancellation: 030 (Contract Completed), 100 (Service In Progress), or 210 (Suspended/Interrupted).

> Comment: "For '030: Contract Completed', '100: Service In Progress', '210: Suspended/Interrupted'. Note: '030: Contract Completed' and '210: Suspended/Interrupted' do not actually occur in live data." (「030: 締結済」「100: サービス提供中」「210: 休止・中断中」の場合。但し「030: 締結済」「210: 休止・中断中」は現仕様上発生しない)

| # | Type | Code |
|---|------|------|
| 1 | COND | `SVC_KEI_STAT_030.equals(hikiMotoOpSvcKeiStat)` // SVC_KEI_STAT_030 = "030" (Contract Completed / 締結済) |
| 2 | COND | `SVC_KEI_STAT_100.equals(hikiMotoOpSvcKeiStat)` // SVC_KEI_STAT_100 = "100" (Service In Progress / サービス提供中) |
| 3 | COND | `SVC_KEI_STAT_210.equals(hikiMotoOpSvcKeiStat)` // SVC_KEI_STAT_210 = "210" (Suspended/Interrupted / 休止・中断中) |
| 4 | OR | All three conditions OR'd together |

**Block 5.1** — [IF TRUE: Valid status] Process cancellation (L6661–6739)

When the service contract status is valid, the method proceeds with the cancellation workflow.

**Block 5.1.1** — [SET] Calculate application and end dates (L6663–6668)

| # | Type | Code |
|---|------|------|
| 1 | SET | `aplyYmd = userData.get(USER_DATA_KEY_HIKISAKI_APLY_YMD)` // Next party application date. USER_DATA_KEY_HIKISAKI_APLY_YMD = "hikisaki_aply_ymd" |
| 2 | SET | `svcEndYmd = aplyYmd` // Service end date = application date |
| 3 | SET | `svcChrgEndYmd = addYYYYMMDD(aplyYmd, -1)` // Service charge end date = application date minus 1 day |

**Block 5.1.2** — [SET] Initialize charge end date map (L6670–6672)

| # | Type | Code |
|---|------|------|
| 1 | SET | `inMap = new HashMap<String, Object>()` |
| 2 | SET | `inMap.put("svc_chrg_endymd", svcChrgEndYmd)` // Service charge end year-month-day |
| 3 | SET | `inMap.put("svc_endymd", svcEndYmd)` // Service end year-month-day |

**Block 5.1.3** — [CALL] Non-billing judgment for option (L6676–6687)

Executes the termination charge judgment utility. The method determines whether any non-billing (termination) charges apply based on the discontinuation flag `DSL_SBT_FLG_OP_SVC_KEI_DSL = "2"` (Discontinuation flag: Option service contract discontinuation / 解約種別フラグ（オプションサービス契約解約）).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `jdgHiChrgMapOpSvcKei = runHiChrgJdgUtil(handle, param, inMap, retHikiMotoEKK0081A010[0], null, msgsEKK0351A010[0], null, DSL_SBT_FLG_OP_SVC_KEI_DSL)` // Non-billing judgment utility. DSL_SBT_FLG_OP_SVC_KEI_DSL = "2" (Option service contract discontinuation). Returns judgment result map. |

**Block 5.1.4** — [CALL] Option service contract cancellation preparation (L6693–6703)

Builds the input map for CBS EKK0351C240 (Option Service Contract Cancellation / オプションサービス契約解約) via the mapper.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapEKK0351C240 = mapper.editInMsgEKK0351C240(param, hikiMotoOpSvcKeiNo, msgsEKK0351A010[0], mskmDtlNo, aplyYmd, svcEndYmd, svcChrgEndYmd, motoLastUpdDtm, getIdoDiv(workMap), SVC_DLRE_CD_HKTG, jdgHiChrgMapOpSvcKei)` // Prepare cancellation message. SVC_DLRE_CD_HKTG = "04" (Transfer reason / 引継事由) |
| 2 | SET | `mapEKK0351C240.put("op_hktgi_sk_svc_kei_no", userData.get(USER_DATA_KEY_HIKISAKI_SVC_KEI_NO))` // Set next party service number. USER_DATA_KEY_HIKISAKI_SVC_KEI_NO = "hikisaki_svc_kei_no" |

**Block 5.1.5** — [CALL] Execute cancellation (L6704)

Executes the CBS EKK0351C240 service component.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `retMsgEKK0351C240 = (CAANMsg)runSc(handle, param, EKK0351C240, mapEKK0351C240)` // Execute option service contract cancellation. EKK0351C240 = "EKK0351C240" |
| 2 | RETURN | `retMsgEKK0351C240` as `CAANMsg` |

**Block 5.1.6** — [SET] Update last update datetime (L6707)

| # | Type | Code |
|---|------|------|
| 1 | SET | `motoLastUpdDtm = retMsgEKK0351C240.getString(EKK0351C240CBSMsg.UPD_DTM)` // Update last update datetime after cancellation |

**Block 5.1.7** — [CALL] Option service contract cancellation confirmation preparation (L6715–6725)

Builds the input map for CBS EKK0351C250 (Option Service Contract Cancellation Confirmation / オプションサービス契約解約確定) via the mapper. This is the second phase — confirming the cancellation permanently.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapEKK0351C250 = mapper.editInMsgEKK0351C250(param, hikiMotoOpSvcKeiNo, msgsEKK0351A010[0], svcEndYmd, svcChrgEndYmd, motoLastUpdDtm, getIdoDiv(workMap), SVC_DLRE_CD_HKTG, jdgHiChrgMapOpSvcKei)` // Prepare cancellation confirmation message. SVC_DLRE_CD_HKTG = "04" (Transfer reason) |

**Block 5.1.8** — [CALL] Execute cancellation confirmation (L6726)

Executes the CBS EKK0351C250 service component.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `retMsgEKK0351C250 = (CAANMsg)runSc(handle, param, EKK0351C250, mapEKK0351C250)` // Execute option service contract cancellation confirmation. EKK0351C250 = "EKK0351C250" |
| 2 | RETURN | `retMsgEKK0351C250` as `CAANMsg` |

**Block 5.1.9** — [SET] Update last update datetime (L6729)

| # | Type | Code |
|---|------|------|
| 1 | SET | `motoLastUpdDtm = retMsgEKK0351C250.getString(EKK0351C250CBSMsg.UPD_DTM)` // Update last update datetime after cancellation confirmation |

**Block 6** — [ELSE-IF FALSE: Invalid status] Error handling (L6734–6737)

If the transfer-source option service contract status is not one of the valid statuses, the method throws an error.

> Comment: "For anything other than the above, the reservation registration is not possible, so throw an error." (上記以外は、予約登録不可のため、エラーとする。)

| # | Type | Code |
|---|------|------|
| 1 | SET | `errMsg = "オプション引継予約登録不可エラー。引継元サービス契約ステータス[" + hikiMotoOpSvcKeiStat + "]"` // "Option transfer reservation registration error. Transfer-source service contract status[" + actualStatus + "]" |
| 2 | THROW | `throw new CCException("", new SCCallException(errMsg, "9051", 8011))` // Throws CCException wrapping SCCallException with SCCode=9051, ErrorCode=8011 |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `rsvOpHktgi` | Method | Option Transfer Reservation Processing — processes cancellation of transfer-source option service contracts during a service migration/transfer. |
| `hikiMoto` | Field (Japanese) | Transfer source — the original service contract being transferred away from (引継元). |
| `hikisaki` | Field (Japanese) | Transfer destination / next party — the new service contract being transferred to (引継先). |
| `opSvcKei` | Field (Japanese) | Option service contract — a specific contracted service line item (オプションサービス契約). |
| `op_svc_kei_no` | Field | Option service contract number — unique identifier for the service contract line item. |
| `svc_kei_stat` | Field | Service contract status code — indicates current state of the service contract. |
| `030` | Constant | Contract Completed (締結済) — the service contract has been fully signed/completed. |
| `100` | Constant | Service In Progress (サービス提供中) — the service is actively being provided. |
| `210` | Constant | Suspended/Interrupted (休止・中断中) — the service is temporarily paused. |
| `aplyYmd` | Field | Application year-month-day (適用年月日) — the date the transfer takes effect. |
| `svcEndYmd` | Field | Service end year-month-day (サービス終了年月日) — the date the service ceases. Set equal to `aplyYmd`. |
| `svcChrgEndYmd` | Field | Service charge end year-month-day (サービス課金終了年月日) — the date billing stops. Set to `aplyYmd - 1` day. |
| `SVC_DLRE_CD_HKTG` | Constant | Service discontinuation reason code: "04" = Transfer (引継事由 — Transfer/Port-in-Service). |
| `DSL_SBT_FLG_OP_SVC_KEI_DSL` | Constant | Discontinuation type flag for option service contract: "2" = Option service contract discontinuation (解約種別フラグ（オプションサービス契約解約）). |
| `ido_div` | Field | ID division flag — determines which database partition or instance to access, extracted from `workMap`. |
| `EKK0351C240` | CBS Code | Option Service Contract Cancellation — CBS for initiating the cancellation of an option service contract. |
| `EKK0351C250` | CBS Code | Option Service Contract Cancellation Confirmation — CBS for confirming and finalizing the cancellation. |
| `EKK0351A010` | CBS Code | Option Service Contract Agreement Inquiry — CBS for querying service contract agreement details. |
| `EKK0081A010` | CBS Code | Transfer Source Service Agreement — CBS for retrieving transfer-source service agreement data. |
| `CAANMsg` | Class | Central Application ANd Message — Fujitsu's standard message wrapper class used for CBS request/response data exchange. |
| `SCCode = 9051` | Error Code | Service Component error code — indicates an option transfer reservation registration error. |
| `ErrorCode = 8011` | Error Code | Internal error code — paired with SCCode 9051 for the transfer status validation failure. |
| `KK_T_OPSVKEI_ISP` | Table | Option Service Contract ISP table — database table storing ISP option service contract records. |
| `runHiChrgJdgUtil` | Method | Non-billing judgment utility — determines whether termination/early cancellation charges apply. |
| `editInMsgEKK0351C240` | Method | Mapper method that prepares the input message for CBS EKK0351C240 (cancellation preparation). |
| `editInMsgEKK0351C250` | Method | Mapper method that prepares the input message for CBS EKK0351C250 (cancellation confirmation). |
| `runSc` | Method | Service Component runner — invokes a CBS by template ID (e.g., EKK0351C240) with the prepared input map. |
| `callEKK0081A010` | Method | Wrapper for calling CBS EKK0081A010 (transfer source service agreement inquiry). |
| `getOpSvcKeiInfo` | Method | Retrieves detailed option service contract information for a given contract number. |
| `addYYYYMMDD` | Method | Utility method to add/subtract days from a YYYYMMDD formatted date string. |
| CCException | Exception | Common Component Exception — wrapper exception used in the CC (Common Component) layer. |
| SCCallException | Exception | Service Component Call Exception — carries SC error codes for CBS call failures. |
| IRequestParameterReadWrite | Interface | Request parameter interface — carries screen data, model groups, and control maps for the current request. |
| SessionHandle | Class | Session handle — contains database connections, transaction context, and session state. |
| `op_hktgi_sk_svc_kei_no` | Field | Option transfer key service contract number — the next party's service contract number, set into the cancellation input map. |
| `last_upd_dtm` | Field | Last update datetime — tracks the most recent modification timestamp, used for optimistic concurrency. |
| `USER_DATA_KEY_HIKIMOTO_SVC_KEI_NO` | Constant | "hikimoto_svc_kei_no" — key to retrieve transfer-source service contract number from userData. |
| `USER_DATA_KEY_HIKISAKI_APLY_YMD` | Constant | "hikisaki_aply_ymd" — key to retrieve next party application date from userData. |
| `USER_DATA_KEY_HIKISAKI_SVC_KEI_NO` | Constant | "hikisaki_svc_kei_no" — key to retrieve next party service contract number from userData. |
| `USER_DATA_KEY_HIKIMOTO_LAST_UPD_DTM` | Constant | "last_upd_dtm" — key to retrieve transfer-source last update datetime from userData. |
