# Business Logic — JFUAddSvcKeiTelCC.editRetEZM0321A010() [211 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JFUAddSvcKeiTelCC` |
| Layer | CC/Common Component (Controller-Component layer — shared business logic component within `com.fujitsu.futurity.bp.custom.common`) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JFUAddSvcKeiTelCC.editRetEZM0321A010()

This method performs the **downstream mapping (下りマッピング処理)** for the "Business Parameter Management Unique Inquiry" (業務パラメータ管理一意照会) service component `EZM0321A010`. It is the **downstream mapping handler** called immediately after a CBS (Component-Based Service) invocation that queries business parameter master data. The method translates raw `CAANMsg` template data returned from the SC layer into the application's internal data structures (`HashMap` entries stored within the request parameter's work area and data map), enabling screens to display and operate on business parameter management records. It implements a **routing/dispatch pattern** — iterating over a template array and mapping each template's 14 fields into a structured child map, with null-safety guards ensuring missing template fields produce empty strings rather than nulls. The method also handles **error information setup** by delegating to `editErrInfoEZM0321A010` and integrating error list data via `TemplateErrorUtil.getErrorInfo`. It is a **shared utility** called by multiple screens that use the EZM0321A010 service component, and is always invoked as part of a three-step sequence: `editIn*` (upstream mapping) → SC call → `editRet*` (downstream mapping). This method is the third and final step in that sequence for the EZM0321A010 service.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editRetEZM0321A010 start"])
    START --> EXTRACT["Extract templates & returnCode from msgList"]
    EXTRACT --> GET_WORKMAP["Get or create workMap from param"]
    GET_WORKMAP --> GET_WORKDATA["Get or create workDataMap (CC_WORK_AREA_NAME)"]
    GET_WORKDATA --> GET_DATAMAP["Get or create dataMap from param.getData(fixedText)"]
    GET_DATAMAP --> GET_TEMPLATE_ARRAY["Get templateArray from template.getCAANMsgList(EZM0321A010CBSMSG1LIST)"]
    GET_TEMPLATE_ARRAY --> GET_DATALIST["Get dataList from dataMap"]
    GET_DATALIST --> INIT_DATALIST{"dataList is null?"}
    INIT_DATALIST -->|Yes| CREATE_DL["Create new ArrayList"]
    INIT_DATALIST -->|No| CHK_TPL
    CREATE_DL --> CHK_TPL{"templateArray is null?"}
    CHK_TPL -->|No| LOOP_START["Loop: for each template in templateArray"]
    CHK_TPL -->|Yes| FINAL_PUT
    LOOP_START --> LOOP_IDX{"i >= dataList.size?"}
    LOOP_IDX -->|Yes| ADD_ENTRY["dataList.add(new HashMap())"]
    LOOP_IDX -->|No| GET_CHILD
    ADD_ENTRY --> GET_CHILD["Get childMap from dataList.get(i)"]
    LOOP_IDX -->|No| GET_CHILD
    GET_CHILD --> MAP_FIELDS["Map 14 template fields to childMap"]
    MAP_FIELDS --> NEXT_ITER["i++"]
    NEXT_ITER --> CHK_TPL
    CHK_TPL -->|No| END_LOOP["End loop"]
    END_LOOP --> FINAL_PUT["dataMap.put(EZM0321A010CBSMsg1List, dataList)"]
    FINAL_PUT --> EDIT_ERR["Call editErrInfoEZM0321A010 for error info"]
    EDIT_ERR --> GET_ERRLIST["Get or create errList from controlMapData(ERROR_INFO)"]
    GET_ERRLIST --> SET_ERR["Set error info via TemplateErrorUtil.getErrorInfo"]
    SET_ERR --> RETURN["Return param"]
    RETURN --> END_NODE(["editRetEZM0321A010 end"])
```

**Key processing steps:**

1. **Extract template list and return code** — Retrieves the `CAANMsg[]` template array and an Integer return code from the `msgList` map using `JCMConstants.TEMPLATE_LIST_KEY` and `JCMConstants.RET_CD_INT_KEY`.
2. **Initialize work area** — Gets or creates a `HashMap` as the work mapping area from `param.getMappingWorkArea()`, then gets or creates a nested `workDataMap` keyed by `CC_WORK_AREA_NAME`.
3. **Initialize data map** — Gets or creates a `dataMap` from `param.getData(fixedText)` — this is the primary data store for this method's output.
4. **Prepare template iteration** — Retrieves `templateArray` from the first template's `EZM0321A010CBSMSG1LIST` list, and `dataList` from `dataMap`. If `dataList` is null, creates a new `ArrayList`.
5. **Field-by-field mapping loop** — For each template in the array (if `templateArray` is not null):
   - Ensures a `HashMap` entry exists for the current index in `dataList`.
   - Extracts each of 14 fields from the template using `isNull()` guards — if the template field is null, stores an empty `String()`; otherwise stores `template.getString(field)`.
6. **Persist mapped data** — Writes the completed `dataList` back into `dataMap` with key `"EZM0321A010CBSMsg1List"`.
7. **Error info processing** — Calls `editErrInfoEZM0321A010` to set error information, then retrieves or creates the error list from `param.getControlMapData(SCControlMapKeys.ERROR_INFO)` and sets the final error info via `TemplateErrorUtil.getErrorInfo`.
8. **Return** — Returns `param` for the caller to continue the pipeline.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `msgList` | `Map<?, ?>` | The CBS response message map containing the template list (`CAANMsg[]`) and return code from the EZM0321A010 service component invocation. The templates carry the business parameter master data returned from the SC layer (fields such as work_param_id, effective start/end dates, parameter names, setting values, timestamps, operator accounts, and invalidation flags). The return code indicates SC-level status (whether an error condition was reached). |
| 2 | `param` | `IRequestParameterReadWrite` | The request parameter object used to pass data through the entire screen processing pipeline. This method reads from and writes to the param's data areas, work mapping area, and control map. It serves as the central data container for the request lifecycle. |
| 3 | `fixedText` | `String` | The fixed key string (e.g., `"EZM0321A010"`) used to identify this method's data area within the param object. It determines the key under which the output `dataMap` is stored via `param.getData(fixedText)` and `param.setData(fixedText, dataMap)`. |

**Instance fields / external state:**
- No instance fields are directly read by this method. All state is accessed through the `param` parameter and the `msgList` input map.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `editErrInfoEZM0321A010` | (Inferred: EZM0321A010CBS) | - | Updates error information in the param object by delegating to `editErrInfoEZM0321A010` — modifies control map data and error message templates |
| R | `TemplateErrorUtil.getErrorInfo` | - | - | Reads error info from the msgList and existing error list to produce the final error info collection |
| R | `param.getMappingWorkArea` | - | - | Reads the work mapping area HashMap from the param object |
| R | `param.getData` | - | - | Reads the data map associated with the fixedText key from param |
| R | `param.getControlMapData` | - | - | Reads the error info list from the param's control map |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 1 methods.
Terminal operations from this method: `editErrInfoEZM0321A010` [U], `getErrorInfo` [R].

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Method: JFUAddSvcKeiTelCC.addTelTrk | `addTelTrk` → `scCall.run(...)` (EZM0321A010) → `editRetEZM0321A010` | `editErrInfoEZM0321A010 [U]`, `getErrorInfo [R]` |

**Caller details:**
- **`JFUAddSvcKeiTelCC.addTelTrk()`** (line 298) — This is the EO光電話 (EO Hikari Phone) registration method that registers telecom service contracts. It executes a sequence of CBS invocations: EKK0111D010 (service contract registration) → EKK0191D010 loop (service detail registration) → **EZM0321A010** (business parameter management unique inquiry) → EKK0371D010 (option service contract registration). After each SC invocation, the corresponding `editRet*` downstream mapping method is called. `editRetEZM0321A010` is the downstream mapping handler for the EZM0321A010 SC call.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Extract template list and return code (L3853-L3856)

> Retrieves the CAANMsg template array and return code from the msgList map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY)` // Extract template array from msgList [-> TEMPLATE_LIST_KEY] |
| 2 | SET | `template = templates[0]` // Use first template as the root template |
| 3 | SET | `templateArray = null` // Initialize templateArray for later extraction |
| 4 | SET | `returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY)` // Extract return code for error handling [-> RET_CD_INT_KEY] |

**Block 2** — [SET] Get work mapping area (L3859-L3864)

> Retrieves the work mapping area HashMap from param, or creates a new one if null.

| # | Type | Code |
|---|------|------|
| 1 | SET | `workMap = param.getMappingWorkArea()` // Get work mapping area from param |
| 2 | IF | `workMap == null` (L3860) |

**Block 2.1** — [nested: else branch] workMap is null — create new (L3861-L3863)

| # | Type | Code |
|---|------|------|
| 1 | SET | `workMap = new HashMap()` |
| 2 | EXEC | `param.setMappingWorkArea(workMap)` |

**Block 3** — [SET] Get work data area (L3867-L3873)

> Gets or creates the nested workDataMap under `CC_WORK_AREA_NAME` within workMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME)` // Get work data map by area name [-> CC_WORK_AREA_NAME] |
| 2 | IF | `workDataMap == null` (L3869) |

**Block 3.1** — [nested: else branch] workDataMap is null — create new (L3870-L3872)

| # | Type | Code |
|---|------|------|
| 1 | SET | `workDataMap = new HashMap()` |
| 2 | SET | `workMap.put(CC_WORK_AREA_NAME, workDataMap)` |

**Block 4** — [SET] Get or create dataMap (L3876-L3881)

> Retrieves the data map associated with `fixedText` key from param, or creates a new HashMap and stores it. This is the primary output container for this method.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap = (HashMap)param.getData(fixedText)` // Get data map for this method's key |
| 2 | IF | `dataMap == null` (L3877) |

**Block 4.1** — [nested: else branch] dataMap is null — create new (L3878-L3880)

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap = new HashMap()` |
| 2 | EXEC | `param.setData(fixedText, dataMap)` // Store newly created dataMap in param |

**Block 5** — [SET] Get template array and dataList (L3883-L3886)

> Extracts the child template array from the root template using the EZM0321A010CBSMSG1LIST key, and gets the corresponding dataList from the dataMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `templateArray = template.getCAANMsgList(EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST)` // Get child template list [-> EZM0321A010CBSMSG1LIST] |
| 2 | SET | `dataList = (ArrayList)dataMap.get("EZM0321A010CBSMsg1List")` // Get existing data list |

**Block 6** — [IF] dataList initialization (L3888-L3891)

> If dataList is null (no previous data exists), create a new ArrayList to hold the mapped entries.

| # | Type | Code |
|---|------|------|
| 1 | IF | `dataList == null` (L3888) |

**Block 6.1** — [nested: else branch] dataList is null (L3889-L3890)

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataList = new ArrayList()` |

**Block 7** — [IF + FOR] Template array iteration with field mapping (L3893-L4041)

> The core mapping loop. For each CAANMsg template child (representing one business parameter master record), maps 14 fields into the corresponding childMap. Each field uses a null-safety pattern: if the template field is null, store an empty String(); otherwise store the template's string value.

| # | Type | Code |
|---|------|------|
| 1 | IF | `templateArray != null` (L3893) |

**Block 7.1** — [nested: FOR loop] Iterate over template children (L3895-L4039)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = templateArray[i]` // Current child template representing one business parameter record |
| 2 | IF | `i >= dataList.size()` (L3897) — ensure dataList has an entry for this index |

**Block 7.1.1** — [nested: else branch] Create new HashMap entry if index out of range (L3898-L3899)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataList.add(new HashMap())` |

**Block 7.1.2** — [nested: GET] Get childMap for current index (L3901)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap = (HashMap)dataList.get(i)` |

**Block 7.2** — [nested: Field-by-field mapping] 14 fields mapped per template record

> Each field follows the same pattern: check if the template field is null via `childTemplate.isNull()`, then either store an empty `String()` or the template's string value.

| # | Type | Code |
|---|------|------|
| 1 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_ID)` (L3905) [業務パラメータ管理一意照会明細.業務パラメータID] |

**Block 7.2.1** — [else branch] Store empty string when null (L3906-L3907)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_id", new String())` |

**Block 7.2.2** — [else branch] Store template value (L3909-L3910)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_id", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_ID))` |

| # | Type | Code |
|---|------|------|
| 2 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_TSTAYMD)` (L3915) [業務パラメータ適用開始年月日] |

**Block 7.2.2.1** — [else branch] null → empty string (L3916-L3917)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_tstaymd", new String())` |

**Block 7.2.2.2** — [else branch] Store value (L3919-L3920)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_tstaymd", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_TSTAYMD))` |

| # | Type | Code |
|---|------|------|
| 3 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_TENDYMD)` (L3925) [業務パラメータ適用終了年月日] |

**Block 7.2.3.1** — [else branch] null → empty string (L3926-L3927)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_tendymd", new String())` |

**Block 7.2.3.2** — [else branch] Store value (L3929-L3930)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_tendymd", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_TENDYMD))` |

| # | Type | Code |
|---|------|------|
| 4 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_NM)` (L3935) [業務パラメータ名] |

**Block 7.2.4.1** — [else branch] null → empty string (L3936-L3937)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_nm", new String())` |

**Block 7.2.4.2** — [else branch] Store value (L3939-L3940)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_nm", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_NM))` |

| # | Type | Code |
|---|------|------|
| 5 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_SETMEI)` (L3945) [業務パラメータ説明] |

**Block 7.2.5.1** — [else branch] null → empty string (L3946-L3947)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_setmei", new String())` |

**Block 7.2.5.2** — [else branch] Store value (L3949-L3950)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_setmei", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_SETMEI))` |

| # | Type | Code |
|---|------|------|
| 6 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE)` (L3955) [業務パラメータ設定値] |

**Block 7.2.6.1** — [else branch] null → empty string (L3956-L3957)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_sette_value", new String())` |

**Block 7.2.6.2** — [else branch] Store value (L3959-L3960)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("work_param_sette_value", childTemplate.getString(EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE))` |

| # | Type | Code |
|---|------|------|
| 7 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.ADD_DTM)` (L3965) [登録年月日時刻] |

**Block 7.2.7.1** — [else branch] null → empty string (L3966-L3967)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("add_dtm", new String())` |

**Block 7.2.7.2** — [else branch] Store value (L3969-L3970)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("add_dtm", childTemplate.getString(EZM0321A010CBSMsg1List.ADD_DTM))` |

| # | Type | Code |
|---|------|------|
| 8 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.ADD_OPEACNT)` (L3975) [登録オペレータアカウント] |

**Block 7.2.8.1** — [else branch] null → empty string (L3976-L3977)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("add_opeacnt", new String())` |

**Block 7.2.8.2** — [else branch] Store value (L3979-L3980)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("add_opeacnt", childTemplate.getString(EZM0321A010CBSMsg1List.ADD_OPEACNT))` |

| # | Type | Code |
|---|------|------|
| 9 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.UPD_DTM)` (L3985) [更新年月日時刻] |

**Block 7.2.9.1** — [else branch] null → empty string (L3986-L3987)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("upd_dtm", new String())` |

**Block 7.2.9.2** — [else branch] Store value (L3989-L3990)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("upd_dtm", childTemplate.getString(EZM0321A010CBSMsg1List.UPD_DTM))` |

| # | Type | Code |
|---|------|------|
| 10 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.UPD_OPEACNT)` (L3995) [更新オペレータアカウント] |

**Block 7.2.10.1** — [else branch] null → empty string (L3996-L3997)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("upd_opeacnt", new String())` |

**Block 7.2.10.2** — [else branch] Store value (L3999-L4000)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("upd_opeacnt", childTemplate.getString(EZM0321A010CBSMsg1List.UPD_OPEACNT))` |

| # | Type | Code |
|---|------|------|
| 11 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.DEL_DTM)` (L4005) [削除年月日時刻] |

**Block 7.2.11.1** — [else branch] null → empty string (L4006-L4007)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("del_dtm", new String())` |

**Block 7.2.11.2** — [else branch] Store value (L4009-L4010)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("del_dtm", childTemplate.getString(EZM0321A010CBSMsg1List.DEL_DTM))` |

| # | Type | Code |
|---|------|------|
| 12 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.DEL_OPEACNT)` (L4015) [削除オペレータアカウント] |

**Block 7.2.12.1** — [else branch] null → empty string (L4016-L4017)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("del_opeacnt", new String())` |

**Block 7.2.12.2** — [else branch] Store value (L4019-L4020)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("del_opeacnt", childTemplate.getString(EZM0321A010CBSMsg1List.DEL_OPEACNT))` |

| # | Type | Code |
|---|------|------|
| 13 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.MK_FLG)` (L4025) [無効フラグ] |

**Block 7.2.13.1** — [else branch] null → empty string (L4026-L4027)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("mk_flg", new String())` |

**Block 7.2.13.2** — [else branch] Store value (L4029-L4030)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("mk_flg", childTemplate.getString(EZM0321A010CBSMsg1List.MK_FLG))` |

| # | Type | Code |
|---|------|------|
| 14 | IF | `childTemplate.isNull(EZM0321A010CBSMsg1List.MK_FLG_NM)` (L4035) [無効フラグ名称] |

**Block 7.2.14.1** — [else branch] null → empty string (L4036-L4037)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("mk_flg_nm", new String())` |

**Block 7.2.14.2** — [else branch] Store value (L4039-L4040)

| # | Type | Code |
|---|------|------|
| 1 | SET | `childMap.put("mk_flg_nm", childTemplate.getString(EZM0321A010CBSMsg1List.MK_FLG_NM))` |

**Block 8** — [EXEC] Persist dataList to dataMap (L4043)

> Writes the completed dataList (containing all mapped business parameter records) back into dataMap under the key `"EZM0321A010CBSMsg1List"`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dataMap.put("EZM0321A010CBSMsg1List", dataList)` |

**Block 9** — [CALL] Error information setup (L4046)

> Delegates to `editErrInfoEZM0321A010` to process and set error information using the template, return code, and fixedText.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `editErrInfoEZM0321A010(param, template, (Integer)returnCode, fixedText)` |

**Block 10** — [IF + EXEC] Error list retrieval and final error info setting (L4049-L4055)

> Retrieves the error list from the param's control map, creates a new list if null, then sets the final error info by calling `TemplateErrorUtil.getErrorInfo`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO)` // Get existing error list |
| 2 | IF | `errList == null` (L4050) |

**Block 10.1** — [nested: else branch] Create new error list (L4051-L4052)

| # | Type | Code |
|---|------|------|
| 1 | SET | `errList = new ArrayList<Object>()` |

**Block 10.2** — [nested: EXEC] Set final error info (L4054-L4055)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))` |

**Block 11** — [RETURN] Return param (L4057)

> Returns the fully processed param object to the caller (addTelTrk).

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

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `work_param_id` | Field | Business Parameter Management Unique Inquiry Detail — Business Parameter ID — the unique identifier for a business parameter management record |
| `work_param_tstaymd` | Field | Business Parameter Effective Start Date — the date from which a business parameter becomes effective (YYYYMMDD format) |
| `work_param_tendymd` | Field | Business Parameter Effective End Date — the date until which a business parameter remains valid (YYYYMMDD format) |
| `work_param_nm` | Field | Business Parameter Name — the display name of a business parameter |
| `work_param_setmei` | Field | Business Parameter Description — detailed description of the business parameter |
| `work_param_sette_value` | Field | Business Parameter Setting Value — the actual configured value for the business parameter |
| `add_dtm` | Field | Registration Date/Time — timestamp when the business parameter record was created |
| `add_opeacnt` | Field | Registration Operator Account — the operator account that created the record |
| `upd_dtm` | Field | Update Date/Time — timestamp when the business parameter record was last modified |
| `upd_opeacnt` | Field | Update Operator Account — the operator account that last modified the record |
| `del_dtm` | Field | Deletion Date/Time — timestamp when the business parameter record was soft-deleted |
| `del_opeacnt` | Field | Deletion Operator Account — the operator account that performed the deletion |
| `mk_flg` | Field | Invalidation Flag — flag indicating whether the record is invalidated/deactivated |
| `mk_flg_nm` | Field | Invalidation Flag Name — human-readable label for the invalidation status |
| CAANMsg | Technical | K-Opticom's custom message class for carrying structured data between SC layers and CC components |
| CBS | Acronym | Component-Based Service — the service component layer that handles data access and business rule execution |
| SC | Acronym | Service Component — the backend service layer invoked via the Service Component Request Invoker |
| CC | Acronym | Common Component — shared business logic components in the `com.fujitsu.futurity.bp.custom.common` package |
| editRet* | Pattern | Downstream mapping method naming convention — processes SC response data into application data structures |
| editIn* | Pattern | Upstream mapping method naming convention — converts application data into SC request templates |
| SCCode_EZM0321A010CBS | Service | Business Parameter Management Unique Inquiry — the SC responsible for querying business parameter master data |
| CC_WORK_AREA_NAME | Constant | `JFUAddKeishaServiceCCWork` — the key used to store and retrieve the work area HashMap within the mapping work area |
| TEMPLATE_LIST_KEY | Constant | The key in msgList that holds the CAANMsg[] template array returned from SC invocation |
| RET_CD_INT_KEY | Constant | The key in msgList that holds the Integer return code indicating SC execution status |
| EO光電話 (EO Hikari Phone) | Business term | EO Fiber Phone — K-Opticom's fiber-optic telecommunication service offering |
| 業務パラメータ管理一意照会 | Business term | Business Parameter Management Unique Inquiry — a CBS service that retrieves business parameter master records by their unique identifiers |
| 下りマッピング (Orimari Mapping) | Process term | Downstream mapping — the process of converting SC response data (templates) back into application-level data structures |
| 上りマッピング (Norimari Mapping) | Process term | Upstream mapping — the process of converting application data into SC request templates |
| 業務パラメータ (Gyumu Parameter) | Business term | Business Parameter — configurable system-level parameters that control business rules and behavior |
| TemplateErrorUtil | Technical | Utility class that extracts and aggregates error information from CBS response templates |
| SCControlMapKeys.ERROR_INFO | Constant | Control map key used to store and retrieve error information lists in the param object |
| IServiceComponentRequestInvoker / ServiceComponentRequestInvoker | Technical | K-Opticom's service invocation framework for calling CBS/SC methods |
