# Business Logic — JKKSecurityPackOperateCC.chkInMap() [176 LOC]

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

## 1. Role

### JKKSecurityPackOperateCC.chkInMap()

The `chkInMap` method serves as the **input data validation and initialization** stage of the security pack operation processing pipeline. Its primary business responsibility is to extract, normalize, and populate the internal working map (`ccWorkMap`) with all add (registration) and cancel (termination) service information from the incoming request parameters, while simultaneously establishing mandatory default values for system-level control fields.

This method operates as a **delegation-based data extraction and normalization** pattern. It reads structured lists of add and cancel info from the input map (`inMap`), transforms them through null-safe extraction via `getNullToStr`, and stores the results into `ccWorkMap` using a flat key naming scheme (e.g., `"sysid_add"`, `"sysid_cancel"`). The method also initializes critical control flags — including function code, penalty occurrence code, inheritance indicator, and movement type classification — all of which are consumed by downstream processing stages.

The method handles two distinct service operation types: **add** (new registration of security pack services) and **cancel** (termination/cancellation of existing security pack services). Each operation type is processed through the same extraction pattern: retrieve the list from `inMap`, check for null, then either extract field-by-field or set all fields to blank defaults. This ensures that downstream components can always rely on the presence of these keys in `ccWorkMap`, regardless of whether the input contained data.

In the larger system, `chkInMap` is invoked at the beginning of the `execute()` method in `JKKSecurityPackOperateCC`, serving as the **first data preparation step** after initial setup. It does not perform CRUD operations itself — it is a pure data transformation and initialization routine.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["chkInMap(handle, param)"])
    START --> LOG["printlnEjbLog start"]
    LOG --> SETFUNC["Set func_code = 0 [-> KEY_FUNC_CD=func_code]"]
    SETFUNC --> PENALTY["Set pnlty_div = 0"]
    PENALTY --> SETHIKI["Set hikitugi_um via setterWorkParam [-> KEY_HIKITUGI_UM=hikitugi_um]"]
    SETHIKI --> SETIDO["Set ido_div via setterWorkParam [-> KEY_IDO_DIV=ido_div]"]
    SETIDO --> GETADD["Get add_info_list from inMap [-> KEY_ADD_INFO_LIST=add_info_list]"]
    GETADD --> CHKADD{"add_info_list != null?"}
    CHKADD -->|true| FETCHADD["Fetch childMap = add_info_list.get(0)"]
    CHKADD -->|false| CLEARADD["Clear all add fields to empty strings"]
    FETCHADD --> EXTRACTADD["Extract 11 add fields via getNullToStr: sysid_add, svc_kei_no_add, mskm_dtl_no_add, upd_dtm_bf_add, security_pack_tg_flg_add, premium_pack_tg_flg_add, inetsgwl_tg_flg_add, inetsgwl_start_ymd_add, ntfmlprm_tg_flg_add, ntfmlprm_start_ymd_add, rmtsprt_tg_flg_add"]
    EXTRACTADD --> SETUPDAT["Set childMap upd_dtm_af=empty and tran_result_list=new ArrayList"]
    CLEARADD --> GETCANCEL["Get cancel_info_list from inMap [-> KEY_CANCEL_INFO_LIST=cancel_info_list]"]
    SETUPDAT --> GETCANCEL
    GETCANCEL --> CHKCAN{"cancel_info_list != null?"}
    CHKCAN -->|true| FETCHCAN["Fetch childMap = cancel_info_list.get(0)"]
    CHKCAN -->|false| CANCELFIELD["Clear all cancel fields to empty strings"]
    FETCHCAN --> EXTRACTCAN["Extract 17 cancel fields via getNullToStr: sysid_cancel, svc_kei_no_cancel, mskm_dtl_no_cancel, upd_dtm_bf_cancel, security_pack_tg_flg_cancel, security_pack_chrg_hichrg_cd_cancel, premium_pack_tg_flg_cancel, premium_pack_chrg_hichrg_cd_cancel, mcafee_op_svc_kei_no, inetsgwl_tg_flg_cancel, inetsgwl_chrg_hichrg_cd_cancel, inetsgwl_op_svc_kei_no, ntfmlprm_tg_flg_cancel, ntfmlprm_chrg_hichrg_cd_cancel, ntfmlprm_op_svc_kei_no, rmtsprt_tg_flg_cancel"]
    EXTRACTCAN --> SETUPDATCAN["Set childMap upd_dtm_af=empty and tran_result_list=new ArrayList"]
    CANCELFIELD --> CREATEHIKI["Create empty hikiSakiOpSvcKeiList and store in ccWorkMap"]
    SETUPDATCAN --> CREATEHIKI
    CREATEHIKI --> END(["Return void"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | The session handle carrying the user's session context. It is passed through to called methods (e.g., `setterWorkParam`) but is not directly accessed within `chkInMap` itself. |
| 2 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying incoming request data. Its internal `inMap` is read directly to retrieve the add and cancel info lists. |

**Instance Fields Read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `this.inMap` | `Map` (inherited internal map) | The input data map containing structured lists of add and cancel service operation information. Accessed via `inMap.get(KEY_ADD_INFO_LIST)` and `inMap.get(KEY_CANCEL_INFO_LIST)`. |
| `this.ccWorkMap` | `Map` (internal working map) | The working data store where all extracted and initialized values are persisted for downstream consumption. Written to via `ccWorkMap.put()` throughout this method. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKSecurityPackOperateCC.printlnEjbLog` | - | - | Logs method entry via `printlnEjbLog` |
| - | `JKKSecurityPackOperateCC.setterWorkParam` | - | - | Retrieves a value from `inMap` via key and stores it in `ccWorkMap` (with null-handling). Called for `hikitugi_um` and `ido_div`. [-> `setterWorkParam` at JKKSecurityPackOperateCC.java:1447] |
| - | `JKKSecurityPackOperateCC.getNullToStr` | - | - | Null-safe string extraction utility. Called 28 times to safely extract string values from childMaps before storing in `ccWorkMap`. |

**Classification:** This method performs **no database or SC-level operations**. It is a pure in-memory data transformation routine that reads from the request's `inMap`, applies null-safety normalization via `getNullToStr`, and writes normalized values into `ccWorkMap`.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKSecurityPackOperateCC.execute(handle, param, fixedText)` | `execute()` -> `chkInMap(handle, param)` | `getNullToStr [R]`, `setterWorkParam [R]`, `printlnEjbLog [R]` |

**Caller Details:**
- `JKKSecurityPackOperateCC.execute(SessionHandle, IRequestParameterReadWrite, String)` — The primary entry point method (line 321) that orchestrates the entire security pack discount cancellation/new registration process. `chkInMap` is invoked as the third step, immediately after `initSetUp()` and before the main processing logic.

## 6. Per-Branch Detail Blocks

**Block 1** — EXEC `(method entry)` (L1272)

> Log method entry and initialize system control fields.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `printlnEjbLog("JKKSecurityPackOperateCC.chkInMap start")` // Log entry point |
| 2 | CALL | `setterWorkParam(JKKSecurityPackOperateCC.KEY_FUNC_CD, "0")` // Set function code to "0" [-> KEY_FUNC_CD="func_code"] |

**Block 2** — EXEC `(mandatory field initialization)` (L1282)

> Initialize penalty/divergence/inheritance default values. These are mandatory check fields that must have a value.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.ccWorkMap.put("pnlty_div", "0")` // Penalty occurrence code default = no penalty [-> `pnlty_div` set to "0"] |
| 2 | CALL | `setterWorkParam(JKKSecurityPackOperateCC.KEY_HIKITUGI_UM, "0")` // Inheritance indicator default = no inheritance [-> KEY_HIKITUGI_UM="hikitugi_um"] |
| 3 | CALL | `setterWorkParam(JKKSecurityPackOperateCC.KEY_IDO_DIV, "0")` // Movement type default = not a movement [-> KEY_IDO_DIV="ido_div"] |
| 4 | SET | `ArrayList inList = null` // Declare list variable for reuse |

**Block 3** — IF (`inList != null` — add info processing) (L1291)

> Process the add (registration) info list. This block handles new service registration data: security pack, premium pack, internet gateway, notification mail premium, and remote support flags and details.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inList = (ArrayList)this.inMap.get(JKKSecurityPackOperateCC.KEY_ADD_INFO_LIST)` // Retrieve add_info_list [-> KEY_ADD_INFO_LIST="add_info_list"] |
| 2 | COND | `if (inList != null)` |

**Block 3.1** — IF-BRANCH (add_info_list != null) (L1292)

> Extract all add-field values from the first element of the add list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap childMap = (HashMap)inList.get(0)` // Get first element as child map |
| 2 | SET | `this.ccWorkMap.put("sysid_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SYSID_ADD)))` // SYSID [-> KEY_SYSID_ADD="sysid"] |
| 3 | SET | `this.ccWorkMap.put("svc_kei_no_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SVC_KEI_NO_ADD)))` // Service contract number [-> KEY_SVC_KEI_NO_ADD="svc_kei_no"] |
| 4 | SET | `this.ccWorkMap.put("mskm_dtl_no_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_MSKM_DTL_NO_ADD)))` // Application detail number [-> KEY_MSKM_DTL_NO_ADD="mskm_dtl_no"] |
| 5 | SET | `this.ccWorkMap.put("upd_dtm_bf_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_UPD_DTM_BF_ADD)))` // Update date-time before (service contract) [-> KEY_UPD_DTM_BF_ADD="upd_dtm_bf"] |
| 6 | SET | `this.ccWorkMap.put("security_pack_tg_flg_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SECURITY_PACK_TG_FLG_ADD)))` // Security pack target flag [-> KEY_SECURITY_PACK_TG_FLG_ADD="security_pack_tg_flg"] |
| 7 | SET | `this.ccWorkMap.put("premium_pack_tg_flg_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_PREMIUM_PACK_TG_FLG_ADD)))` // Premium pack target flag [-> KEY_PREMIUM_PACK_TG_FLG_ADD="premium_pack_tg_flg"] |
| 8 | SET | `this.ccWorkMap.put("inetsgwl_tg_flg_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_INETSGWL_TG_FLG_ADD)))` // Internet gateway target flag [-> KEY_INETSGWL_TG_FLG_ADD="inetsgwl_tg_flg"] |
| 9 | SET | `this.ccWorkMap.put("inetsgwl_start_ymd_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_INETSGWL_START_YMD_ADD)))` // Internet gateway desired start date [-> KEY_INETSGWL_START_YMD_ADD="inetsgwl_start_ymd"] |
| 10 | SET | `this.ccWorkMap.put("ntfmlprm_tg_flg_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_NTFMLPRM_TG_FLG_ADD)))` // Notification mail premium target flag [-> KEY_NTFMLPRM_TG_FLG_ADD="ntfmlprm_tg_flg"] |
| 11 | SET | `this.ccWorkMap.put("ntfmlprm_start_ymd_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_NTFMLPRM_START_YMD_ADD)))` // Notification mail premium desired start date [-> KEY_NTFMLPRM_START_YMD_ADD="ntfmlprm_start_ymd"] |
| 12 | SET | `this.ccWorkMap.put("rmtsprt_tg_flg_add", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_RMTSPRT_TG_FLG_ADD)))` // Remote support process target flag (ANK-4577-00-00 ADD) [-> KEY_RMTSPRT_TG_FLG_ADD="rmtsprt_tg_flg"] |
| 13 | SET | `childMap.put("upd_dtm_af", "")` // Set post-update date/time (blank) |
| 14 | SET | `ArrayList addOutList = new ArrayList()` // Create output result list |
| 15 | SET | `childMap.put("tran_result_list", addOutList)` // Attach empty transaction result list |

**Block 3.2** — ELSE-BRANCH (add_info_list == null) (L1318)

> When no add info list is present, set all add-field values in `ccWorkMap` to empty strings to ensure downstream code always finds these keys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.ccWorkMap.put("sysid_add", "")` // SYSID |
| 2 | SET | `this.ccWorkMap.put("svc_kei_no_add", "")` // Service contract number |
| 3 | SET | `this.ccWorkMap.put("mskm_dtl_no_add", "")` // Application detail number |
| 4 | SET | `this.ccWorkMap.put("upd_dtm_bf_add", "")` // Update date-time before |
| 5 | SET | `this.ccWorkMap.put("security_pack_tg_flg_add", "")` // Security pack target flag |
| 6 | SET | `this.ccWorkMap.put("premium_pack_tg_flg_add", "")` // Premium pack target flag |
| 7 | SET | `this.ccWorkMap.put("inetsgwl_tg_flg_add", "")` // Internet gateway target flag |
| 8 | SET | `this.ccWorkMap.put("inetsgwl_start_ymd_add", "")` // Internet gateway desired start date |
| 9 | SET | `this.ccWorkMap.put("ntfmlprm_tg_flg_add", "")` // Notification mail premium target flag |
| 10 | SET | `this.ccWorkMap.put("ntfmlprm_start_ymd_add", "")` // Notification mail premium desired start date |
| 11 | SET | `this.ccWorkMap.put("rmtsprt_tg_flg_add", "")` // Remote support process target flag (ANK-4577-00-00 ADD) |

**Block 4** — IF (`inList != null` — cancel info processing) (L1334)

> Process the cancel (termination) info list. This block handles service cancellation data including security pack, premium pack, internet gateway, notification mail premium, and remote support, with address-change-specific override contract numbers.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inList = (ArrayList)this.inMap.get(JKKSecurityPackOperateCC.KEY_CANCEL_INFO_LIST)` // Retrieve cancel_info_list [-> KEY_CANCEL_INFO_LIST="cancel_info_list"] |
| 2 | COND | `if (inList != null)` |

**Block 4.1** — IF-BRANCH (cancel_info_list != null) (L1335)

> Extract all cancel-field values from the first element of the cancel list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `HashMap childMap = (HashMap)inList.get(0)` // Get first element as child map |
| 2 | SET | `this.ccWorkMap.put("sysid_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SYSID_CANCEL)))` // SYSID [-> KEY_SYSID_CANCEL="sysid"] |
| 3 | SET | `this.ccWorkMap.put("svc_kei_no_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SVC_KEI_NO_CANCEL)))` // Service contract number [-> KEY_SVC_KEI_NO_CANCEL="svc_kei_no"] |
| 4 | SET | `this.ccWorkMap.put("mskm_dtl_no_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_MSKM_DTL_NO_CANCEL)))` // Application detail number [-> KEY_MSKM_DTL_NO_CANCEL="mskm_dtl_no"] |
| 5 | SET | `this.ccWorkMap.put("upd_dtm_bf_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_UPD_DTM_BF_CANCEL)))` // Update date-time before (service contract) [-> KEY_UPD_DTM_BF_CANCEL="upd_dtm_bf"] |
| 6 | SET | `this.ccWorkMap.put("security_pack_tg_flg_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SECURITY_PACK_TG_FLG_CANCEL)))` // Security pack target flag [-> KEY_SECURITY_PACK_TG_FLG_CANCEL="security_pack_tg_flg"] |
| 7 | SET | `this.ccWorkMap.put("security_pack_chrg_hichrg_cd_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_SECURITY_PACK_CHRG_HICHRG_CD_CANCEL)))` // Security pack charge/non-charge code [-> KEY_SECURITY_PACK_CHRG_HICHRG_CD_CANCEL="security_pack_chrg_hichrg_cd"] |
| 8 | SET | `this.ccWorkMap.put("premium_pack_tg_flg_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_PREMIUM_PACK_TG_FLG_CANCEL)))` // Premium pack target flag [-> KEY_PREMIUM_PACK_TG_FLG_CANCEL="premium_pack_tg_flg"] |
| 9 | SET | `this.ccWorkMap.put("premium_pack_chrg_hichrg_cd_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_PREMIUM_PACK_CHRG_HICHRG_CD_CANCEL)))` // Premium pack charge/non-charge code [-> KEY_PREMIUM_PACK_CHRG_HICHRG_CD_CANCEL="premium_pack_chrg_hichrg_cd"] |
| 10 | SET | `this.ccWorkMap.put("mcafee_op_svc_kei_no", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_MCAFEE_OP_SVC_KEI_NO_CANCEL)))` // Address change - McAfee target operation service contract number (ANK-3149-04-00 ADD) [-> KEY_MCAFEE_OP_SVC_KEI_NO_CANCEL="mcafee_op_svc_kei_no"] |
| 11 | SET | `this.ccWorkMap.put("inetsgwl_tg_flg_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_INETSGWL_TG_FLG_CANCEL)))` // Internet gateway target flag [-> KEY_INETSGWL_TG_FLG_CANCEL="inetsgwl_tg_flg"] |
| 12 | SET | `this.ccWorkMap.put("inetsgwl_chrg_hichrg_cd_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_INETSGWL_CHRG_HICHRG_CD_CANCEL)))` // Internet gateway charge/non-charge code [-> KEY_INETSGWL_CHRG_HICHRG_CD_CANCEL="inetsgwl_chrg_hichrg_cd"] |
| 13 | SET | `this.ccWorkMap.put("inetsgwl_op_svc_kei_no", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_INETSGWL_OP_SVC_KEI_NO_CANCEL)))` // Address change - Internet gateway target operation service contract number (ANK-3149-04-00 ADD) [-> KEY_INETSGWL_OP_SVC_KEI_NO_CANCEL="inetsgwl_op_svc_kei_no"] |
| 14 | SET | `this.ccWorkMap.put("ntfmlprm_tg_flg_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_NTFMLPRM_TG_FLG_CANCEL)))` // Notification mail premium target flag [-> KEY_NTFMLPRM_TG_FLG_CANCEL="ntfmlprm_tg_flg"] |
| 15 | SET | `this.ccWorkMap.put("ntfmlprm_chrg_hichrg_cd_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_NTFMLPRM_CHRG_HICHRG_CD_CANCEL)))` // Notification mail premium charge/non-charge code [-> KEY_NTFMLPRM_CHRG_HICHRG_CD_CANCEL="ntfmlprm_chrg_hichrg_cd"] |
| 16 | SET | `this.ccWorkMap.put("ntfmlprm_op_svc_kei_no", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_NTFMLPRM_OP_SVC_KEI_NO_CANCEL)))` // Address change - Notification mail premium target operation service contract number (ANK-3149-04-00 ADD) [-> KEY_NTFMLPRM_OP_SVC_KEI_NO_CANCEL="ntfmlprm_op_svc_kei_no"] |
| 17 | SET | `this.ccWorkMap.put("rmtsprt_tg_flg_cancel", getNullToStr((String)childMap.get(JKKSecurityPackOperateCC.KEY_RMTSPRT_TG_FLG_CANCEL)))` // Remote support process target flag (ANK-4577-00-00 ADD) [-> KEY_RMTSPRT_TG_FLG_CANCEL="rmtsprt_tg_flg"] |
| 18 | SET | `childMap.put("upd_dtm_af", "")` // Set post-update date/time (blank) |
| 19 | SET | `ArrayList cancelOutList = new ArrayList()` // Create output result list |
| 20 | SET | `childMap.put("tran_result_list", cancelOutList)` // Attach empty transaction result list |

**Block 4.2** — ELSE-BRANCH (cancel_info_list == null) (L1383)

> When no cancel info list is present, set all cancel-field values in `ccWorkMap` to empty strings.

| # | Type | Code |
|---|------|------|
| 1 | SET | `this.ccWorkMap.put("sysid_cancel", "")` // SYSID |
| 2 | SET | `this.ccWorkMap.put("svc_kei_no_cancel", "")` // Service contract number |
| 3 | SET | `this.ccWorkMap.put("mskm_dtl_no_cancel", "")` // Application detail number |
| 4 | SET | `this.ccWorkMap.put("upd_dtm_bf_cancel", "")` // Update date-time before |
| 5 | SET | `this.ccWorkMap.put("security_pack_tg_flg_cancel", "")` // Security pack target flag |
| 6 | SET | `this.ccWorkMap.put("security_pack_chrg_hichrg_cd_cancel", "")` // Security pack charge/non-charge code |
| 7 | SET | `this.ccWorkMap.put("premium_pack_tg_flg_cancel", "")` // Premium pack target flag |
| 8 | SET | `this.ccWorkMap.put("premium_pack_chrg_hichrg_cd_cancel", "")` // Premium pack charge/non-charge code |
| 9 | SET | `this.ccWorkMap.put("mcafee_op_svc_kei_no", "")` // Address change - McAfee target operation service contract number (ANK-3149-04-00 ADD) |
| 10 | SET | `this.ccWorkMap.put("inetsgwl_tg_flg_cancel", "")` // Internet gateway target flag |
| 11 | SET | `this.ccWorkMap.put("inetsgwl_chrg_hichrg_cd_cancel", "")` // Internet gateway charge/non-charge code |
| 12 | SET | `this.ccWorkMap.put("inetsgwl_op_svc_kei_no", "")` // Address change - Internet gateway target operation service contract number (ANK-3149-04-00 ADD) |
| 13 | SET | `this.ccWorkMap.put("ntfmlprm_tg_flg_cancel", "")` // Notification mail premium target flag |
| 14 | SET | `this.ccWorkMap.put("ntfmlprm_chrg_hichrg_cd_cancel", "")` // Notification mail premium charge/non-charge code |
| 15 | SET | `this.ccWorkMap.put("ntfmlprm_op_svc_kei_no", "")` // Address change - Notification mail premium target operation service contract number (ANK-3149-04-00 ADD) |
| 16 | SET | `this.ccWorkMap.put("rmtsprt_tg_flg_cancel", "")` // Remote support process target flag (ANK-4577-00-00 ADD) |

**Block 5** — EXEC `(inheritance operations list initialization)` (L1421)

> Prepare an empty list for inheritance destination override service contract numbers. This list is used when an inheritance operation is indicated (hikitugi_um = "1"), but the actual population logic resides in a subsequent processing stage.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<CAANMsg> hikiSakiOpSvcKeiList = new ArrayList<CAANMsg>()` // Create empty inheritance operations service contract number list |
| 2 | SET | `this.ccWorkMap.put("hikiSakiOpSvcKeiList", hikiSakiOpSvcKeiList)` // Store in working map |
| 3 | RETURN | (implicit void return) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `pnlty_div` | Field | Penalty occurrence code — indicates whether a penalty/charge applies to this operation (0 = no penalty) |
| `hikitugi_um` | Field | Inheritance existence indicator — whether service contract inheritance is in effect (UM = unified mode) |
| `ido_div` | Field | Movement type classification — determines if this is a transfer/movement operation (ido = "movement/transfer") |
| `add_info_list` | Field | Add info list — the input list containing new service registration details for security pack services |
| `cancel_info_list` | Field | Cancel info list — the input list containing termination/cancellation service details |
| `sysid_add` / `sysid_cancel` | Field | System ID for add/cancel — unique system identifier for the service contract record |
| `svc_kei_no` | Field | Service detail number — internal tracking number for a service contract line item (svc_kei = service detail) |
| `mskm_dtl_no` | Field | Application detail number — the detail number of the application/order (mskm = application details) |
| `upd_dtm_bf` | Field | Update date-time before — the timestamp of the last update to the service contract before this operation |
| `upd_dtm_af` | Field | Update date-time after — post-update timestamp, initialized to empty string for downstream population |
| `security_pack_tg_flg` | Field | Security pack target flag — whether the security pack service is included in this operation (tg = target) |
| `premium_pack_tg_flg` | Field | Premium pack target flag — whether the premium (enhanced) pack service is included |
| `security_pack_chrg_hichrg_cd` | Field | Security pack charge/non-charge code — billing classification code for the security pack |
| `premium_pack_chrg_hichrg_cd` | Field | Premium pack charge/non-charge code — billing classification code for the premium pack |
| `inetsgwl_tg_flg` | Field | Internet gateway target flag — whether internet gateway service is included (inetsgwl = internet service gateway) |
| `inetsgwl_start_ymd` | Field | Internet gateway desired start date — the date from which the internet gateway service should commence (ymd = year-month-day) |
| `inetsgwl_chrg_hichrg_cd` | Field | Internet gateway charge/non-charge code — billing classification code for internet gateway service |
| `ntfmlprm_tg_flg` | Field | Notification mail premium target flag — whether notification mail premium service is included (ntfmlprm = notification mail premium) |
| `ntfmlprm_start_ymd` | Field | Notification mail premium desired start date — the date from which notification mail premium should commence |
| `ntfmlprm_chrg_hichrg_cd` | Field | Notification mail premium charge/non-charge code — billing classification code |
| `rmtsprt_tg_flg` | Field | Remote support process target flag — whether remote support service is included (rmtsprt = remote support, added via ANK-4577-00-00) |
| `mcafee_op_svc_kei_no` | Field | Address change - McAfee target operation service contract number — McAfee-specific override contract number for address-change scenarios (added via ANK-3149-04-00) |
| `inetsgwl_op_svc_kei_no` | Field | Address change - Internet gateway target operation service contract number — override contract number for internet gateway during address change (added via ANK-3149-04-00) |
| `ntfmlprm_op_svc_kei_no` | Field | Address change - Notification mail premium target operation service contract number — override contract number for notification mail premium during address change (added via ANK-3149-04-00) |
| `hikiSakiOpSvcKeiList` | Field | Inheritance destination operation service contract number list — list of override contract numbers for inheritance scenarios |
| `tran_result_list` | Field | Transaction result list — output list for storing transaction processing results attached to each child map |
| `func_code` | Field | Function code — identifies the processing mode; value "0" indicates initial/default mode, "1" indicates check-only mode |
| `inMap` | Field | Input data map — internal instance map containing request data organized by key |
| `ccWorkMap` | Field | Common component working map — internal instance map used to pass processed data between processing stages |
| ANK-3149-04-00 | Change ID | Address-change-related feature enhancement adding McAfee, internet gateway, and notification mail premium override service contract numbers |
| ANK-4577-00-00 | Change ID | Remote support service feature enhancement adding remote support process target flags for both add and cancel operations |
| getNullToStr | Utility Method | Null-safe string conversion — returns the string value if non-null, or an empty string otherwise |
| setterWorkParam | Instance Method | Retrieves a value from `inMap` using the given key and stores it in `ccWorkMap`; throws CCException if the value is null (unless nullDiv is "1") |
| printlnEjbLog | Instance Method | Enterprise log output — writes log messages for EJB-layer tracing |
