# Business Logic — JKKMltiseInfoAddCfmCC.editEKK0361D010ErrorInfo() [303 LOC]

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

## 1. Role

### JKKMltiseInfoAddCfmCC.editEKK0361D010ErrorInfo()

This method serves as an error field mapping dispatcher for the **Option Subscriber Business Contract (ISP) Registration** service (JKKMltiseInfoAddCfmCC). It is invoked after a Screen-IF (S-IF) executes a service contract line item inquiry (services契約回線内訳一覧照会), translating CBS-layer error messages back into a structured error map that the presentation layer can render. Specifically, it extracts error data from the first element of a `CAANMsg[]` template array -- where each field represents the validation result of one specific contract attribute -- and writes those values into a `HashMap` attached to the `IRequestParameterReadWrite` business data parameter. The method implements a **repeated guard-and-map pattern**: for each of approximately 47 error fields (ranging from service codes, pricing, trial dates, authentication credentials, IP configuration, URL/domain settings, mailing list settings, and firewall/security settings), it checks whether the source field carries a non-null error, then writes to the destination map only if the key has not already been populated (defensive overwrite protection). Its role in the larger system is that of a **response-side error transformer**: it sits between CBS execution (which returns structured error messages via `EKK0361D010CBSMsg`) and screen rendering (which reads the populated map to display field-level validation errors). No database or SC calls are made; the method is purely an in-memory data transfer and presentation-shaping utility.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editEKK0361D010ErrorInfo"])
    S1["Extract template from templates[0]"]
    S2["setControlMap for error status display"]
    S3{"inHash == null?"}
    S4["inHash = new HashMap()"]
    S5["param.setData(fixedText, inHash)"]
    S6["Process error fields from template"]
    S7["Iterate error field"]
    S8{"template.isNull(errorField)?"}
    S9{"inHash.containsKey(key)?"}
    S10["inHash.put(key, template.getString(field))"]
    S11["Return param"]

    START --> S1 --> S2 --> S3
    S3 -- Yes --> S4 --> S5 --> S6
    S3 -- No --> S6
    S6 --> S7 --> S8
    S8 -- Not null --> S9
    S8 -- Null --> S7
    S9 -- Not contains --> S10 --> S7
    S9 -- Contains --> S7
    S7 -- All done --> S11
```

**Processing detail:**

The method follows a linear sequential pattern with a repeated conditional guard block executed for each of ~47 error fields. The flow is:

1. **Template extraction**: Retrieve the first element from the `CAANMsg[] templates` array. This is the CBS response message populated by the `EKK0361D010CBS` service component.
2. **Control map setup**: Call `setControlMap(param, templates, returnCode, EKK0361D010CBSMsg.STATUS)` to wire up UI error status indicators. The constant `EKK0361D010CBSMsg.STATUS` corresponds to the `"status"` schema field used for error display toggling.
3. **HashMap initialization**: Attempt to read a HashMap from `param` keyed by `fixedText`. If null, create a new HashMap and store it.
4. **Error field mapping loop** (repeated for each field): For each of the ~47 error template fields, check `!template.isNull(fieldConstant)`. If the field is not null (i.e., an error exists), check `!inHash.containsKey(mappedKey)` to avoid overwriting a previously set value, then write the error value via `inHash.put(mappedKey, template.getString(fieldConstant))`.
5. **Return**: Return the enriched `param` object containing the error map.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request/response parameter object carrying business data between screen and CBS layers. Specifically, it holds the error map under the `fixedText` key. The method populates this map with error details read from the CBS template, which the calling screen later renders as field-level validation messages. |
| 2 | `templates` | `CAANMsg[]` | An array of CBS response message objects. The method reads only `templates[0]`, which is the `EKK0361D010CBSMsg` schema containing error field values from the Option Subscriber Business Contract (ISP) Registration CBS execution. Each field in this schema (e.g., `OP_SVC_CD_ERR`, `PCRS_CD_ERR`) corresponds to a specific contract attribute's validation result. |
| 3 | `returnCode` | `int` | The CBS return code indicating the result of the previous CBS/S-IF execution. It is passed through to `setControlMap` to determine error display status. A non-zero return code typically signals a CBS-level error requiring field-level detail mapping. |
| 4 | `fixedText` | `String` | The map key used to store and retrieve the error HashMap within `param`. This key acts as the namespace identifier -- the same key is used both to read (via `param.getData(fixedText)`) and write (via `param.setData(fixedText, inHash)`) the error data. It ties the error map to a specific screen context or data section. |

**External state read:**

| Source | Field/Method | Business Description |
|--------|-------------|---------------------|
| `EKK0361D010CBSMsg.STATUS` | Constant | Schema field name `"status"` used for error display status in `setControlMap`. |
| `JACBatCommon.isNull` | Utility method | Null-safety check called within `setControlMap`. |
| `JKKMltiseInfoAddCfmCC.setControlMap` | Instance method | Wires error status, templates, and return code into the parameter for UI error handling. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JACBatCommon.isNull` | - | - | Null-safety utility called within `setControlMap` |
| - | `JACbatRknBusinessUtil.isNull` | - | - | Null-safety utility called within `setControlMap` |
| - | `JCHbatSeikyKaknoBusinessUtil.isNull` | - | - | Null-safety utility called within `setControlMap` |
| - | `JBSbatACInsentetivePrcInfoSaksei.isNull` | - | - | Null-safety utility called within `setControlMap` |
| - | `JBSbatAKCHSeikyYsoInfMake.isNull` | - | - | Null-safety utility called within `setControlMap` |
| - | `JBSbatAKKshkmRsltInfoTukiawsday.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatAKKshkmRsltInfoTukiaws.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatAKKshkmRsltInfoTukiawsRealSkh.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatAKKshkmRsltInfTkCvsNCnsl.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatDKNyukaFinAdd.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatFUCaseFileRnkData.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatFUMoveNaviData.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatKKGetCTITelno.setData` | - | - | Data setter called within `setControlMap` |
| - | `JBSbatZMAdDataSet.setData` | - | - | Data setter called within `setControlMap` |
| - | `JFUeoTelOpTransferCC.setData` | - | - | Data setter called within `setControlMap` |
| - | `JFUTransferCC.setData` | - | - | Data setter called within `setControlMap` |
| - | `JFUTransferListToListCC.setData` | - | - | Data setter called within `setControlMap` |
| - | `JKKMltiseInfoAddCfmCC.setControlMap` | - | - | Internal method: sets error display control map from templates and return code |
| - | `JESC0101B010TPMA.setData` | - | - | Data setter called within `setControlMap` |
| - | `JESC0101B020TPMA.setData` | - | - | Data setter called within `setControlMap` |
| - | `KKW12701SFLogic.setData` | - | - | Data setter called within `setControlMap` |

**Note:** This method performs **no direct database reads, writes, or SC calls**. All listed operations are transitive calls through `setControlMap` and are null-safety checks and data setters within the control map infrastructure. The method's own logic consists solely of in-memory HashMap operations (`put`, `containsKey`, `getData`, `setData`) and `CAANMsg` template reads (`getString`, `isNull`). The actual CBS execution that populates `templates[0]` is performed by a prior S-IF call in the caller method.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKMltiseInfoAddCfmCC.editEKK0361D010ResultRP()` | `JKKMltiseInfoAddCfmCC.editEKK0361D010ResultRP()` -> `JKKMltiseInfoAddCfmCC.editEKK0361D010ErrorInfo` | `template.getString[field]` [R] (repeated for ~47 error fields), `param.getData` [R] |
| 2 | `JKKAddIpv6Info` (custom component) | `JKKAddIpv6Info.*` -> `editEKK0361D010ErrorInfo` (inherited call from parent) | `template.isNull[field]` [-], `template.getString[field]` [R] |

**Call chain detail for primary caller `editEKK0361D010ResultRP`:**
This caller method handles the result page processing for the Option Subscriber Business Contract (ISP) Registration inquiry screen. It invokes the CBS/S-IF first, which populates `templates[0]` with validation results, then passes those templates to `editEKK0361D010ErrorInfo` to extract error fields into the error map for screen rendering.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Template extraction (L3327)

> Extract the CBS response message from the templates array.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = templates[0]` // Get CBS response from first template element |

**Block 2** — [EXEC] Error status control setup (L3329)

> Wire up error display control map using templates, return code, and STATUS constant.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setControlMap(param, templates, returnCode, EKK0361D010CBSMsg.STATUS)` // EKK0361D010CBSMsg.STATUS = "status" - sets error display status |

**Block 3** — [SET] HashMap initialization (L3331)

> Declare inHash variable.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHash = null` // Local HashMap for error data storage |

**Block 4** — [EXEC] Data retrieval (L3334)

> Attempt to read existing error HashMap from param.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHash = (HashMap)param.getData(fixedText)` // Read error map using fixedText as key |

**Block 5** — [IF] Null check on inHash (L3335)

> If no existing error map is found, create and store a new one.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHash = new HashMap()` // Create new HashMap for error data |
| 2 | EXEC | `param.setData(fixedText, inHash)` // Store new map in param under fixedText key |

**Block 6** — [IF] op_svc_cd_err [OP_SVC_CD_ERR] (L3340)

> Option Subscriber Business Contract (ISP) Registration - Option Service Code -> Error information return (オプショナルサービス契約<ISP>登録.オプションサービスコード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.OP_SVC_CD_ERR)` // Check if option service code error exists |
| 2 | IF | `!inHash.containsKey("op_svc_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("op_svc_cd_err", template.getString(EKK0361D010CBSMsg.OP_SVC_CD_ERR))` // Map option service code error |

**Block 7** — [IF] pcrs_cd_err [PCRS_CD_ERR] (L3346)

> Option Subscriber Business Contract (ISP) Registration - Price Cost Code -> Error information return (オプショナルサービス契約<ISP>登録.料金コースコード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.PCRS_CD_ERR)` // Check if price cost code error exists |
| 2 | IF | `!inHash.containsKey("pcrs_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("pcrs_cd_err", template.getString(EKK0361D010CBSMsg.PCRS_CD_ERR))` // Map price cost code error |

**Block 8** — [IF] pplan_cd_err [PPLAN_CD_ERR] (L3352)

> Option Subscriber Business Contract (ISP) Registration - Price Plan Code -> Error information return (オプショナルサービス契約<ISP>登録.料金プランコード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.PPLAN_CD_ERR)` // Check if price plan code error exists |
| 2 | IF | `!inHash.containsKey("pplan_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("pplan_cd_err", template.getString(EKK0361D010CBSMsg.PPLAN_CD_ERR))` // Map price plan code error |

**Block 9** — [IF] oya_kei_skbt_cd_err [OYA_KEI_SKBT_CD_ERR] (L3358)

> Option Subscriber Business Contract (ISP) Registration - Parent Contract ID Code -> Error information return (オプショナルサービス契約<ISP>登録.親契約識別コード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR)` // Check if parent contract ID code error exists |
| 2 | IF | `!inHash.containsKey("oya_kei_skbt_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("oya_kei_skbt_cd_err", template.getString(EKK0361D010CBSMsg.OYA_KEI_SKBT_CD_ERR))` // Map parent contract ID code error |

**Block 10** — [IF] svc_kei_no_err [SVC_KEI_NO_ERR] (L3364)

> Option Subscriber Business Contract (ISP) Registration - Service Contract Number -> Error information return (オプショナルサービス契約<ISP>登録.サービス契約番号)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SVC_KEI_NO_ERR)` // Check if service contract number error exists |
| 2 | IF | `!inHash.containsKey("svc_kei_no_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("svc_kei_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_NO_ERR))` // Map service contract number error |

**Block 11** — [IF] svc_kei_ucwk_no_err [SVC_KEI_UCWK_NO_ERR] (L3370)

> Option Subscriber Business Contract (ISP) Registration - Service Contract Line Item Number -> Error information return (オプショナルサービス契約<ISP>登録.サービス契約内訳番号)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR)` // Check if service contract line item number error exists |
| 2 | IF | `!inHash.containsKey("svc_kei_ucwk_no_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("svc_kei_ucwk_no_err", template.getString(EKK0361D010CBSMsg.SVC_KEI_UCWK_NO_ERR))` // Map service contract line item number error |

**Block 12** — [IF] sysid_err [SYSID_ERR] (L3376)

> Option Subscriber Business Contract (ISP) Registration - SYSID -> Error information return (オプショナルサービス契約<ISP>登録.SYSID)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SYSID_ERR)` // Check if SYSID error exists |
| 2 | IF | `!inHash.containsKey("sysid_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("sysid_err", template.getString(EKK0361D010CBSMsg.SYSID_ERR))` // Map SYSID error |

**Block 13** — [IF] mskm_dtl_no_err [MSKM_DTL_NO_ERR] (L3382)

> Option Subscriber Business Contract (ISP) Registration - Application Detail Number -> Error information return (オプショナルサービス契約<ISP>登録.申込明細番号)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR)` // Check if application detail number error exists |
| 2 | IF | `!inHash.containsKey("mskm_dtl_no_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mskm_dtl_no_err", template.getString(EKK0361D010CBSMsg.MSKM_DTL_NO_ERR))` // Map application detail number error |

**Block 14** — [IF] ftrial_kanyu_ymd_err [FTRIAL_KANYU_YMD_ERR] (L3388)

> Option Subscriber Business Contract (ISP) Registration - Trial Addition Date -> Error information return (オプショナルサービス契約<ISP>登録.試添加年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR)` // Check if trial addition date error exists |
| 2 | IF | `!inHash.containsKey("ftrial_kanyu_ymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("ftrial_kanyu_ymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_KANYU_YMD_ERR))` // Map trial addition date error |

**Block 15** — [IF] ftrial_prd_endymd_err [FTRIAL_PRD_ENDYMD_ERR] (L3394)

> Option Subscriber Business Contract (ISP) Registration - Trial Period End Date -> Error information return (オプショナルサービス契約<ISP>登録.試用期間終了年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR)` // Check if trial period end date error exists |
| 2 | IF | `!inHash.containsKey("ftrial_prd_endymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("ftrial_prd_endymd_err", template.getString(EKK0361D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR))` // Map trial period end date error |

**Block 16** — [IF] honkanyu_ymd_err [HONKANYU_YMD_ERR] (L3400)

> Option Subscriber Business Contract (ISP) Registration - Actual Addition Date -> Error information return (オプショナルサービス契約<ISP>登録.本加入年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.HONKANYU_YMD_ERR)` // Check if actual addition date error exists |
| 2 | IF | `!inHash.containsKey("honkanyu_ymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("honkanyu_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_YMD_ERR))` // Map actual addition date error |

**Block 17** — [IF] honkanyu_iko_kigen_ymd_err [HONKANYU_IKO_KIGEN_YMD_ERR] (L3406)

> Option Subscriber Business Contract (ISP) Registration - Actual Addition Transfer Deadline Date -> Error information return (オプショナルサービス契約<ISP>登録.本加入移行期限年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR)` // Check if actual addition transfer deadline date error exists |
| 2 | IF | `!inHash.containsKey("honkanyu_iko_kigen_ymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("honkanyu_iko_kigen_ymd_err", template.getString(EKK0361D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR))` // Map actual addition transfer deadline date error |

**Block 18** — [IF] svc_use_sta_kibo_ymd_err [SVC_USE_STA_KIBO_YMD_ERR] (L3412)

> Option Subscriber Business Contract (ISP) Registration - Service Usage Start Desired Date -> Error information return (オプショナルサービス契約<ISP>登録.サービス利用開始希望年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR)` // Check if service usage start desired date error exists |
| 2 | IF | `!inHash.containsKey("svc_use_sta_kibo_ymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("svc_use_sta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR))` // Map service usage start desired date error |

**Block 19** — [IF] rsv_tsta_kibo_ymd_err [RSV_TSTA_KIBO_YMD_ERR] (L3418)

> Option Subscriber Business Contract (ISP) Registration - Reservation Application Start Desired Date -> Error information return (オプショナルサービス契約<ISP>登録.予約適用開始希望年月日)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR)` // Check if reservation application start desired date error exists |
| 2 | IF | `!inHash.containsKey("rsv_tsta_kibo_ymd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("rsv_tsta_kibo_ymd_err", template.getString(EKK0361D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR))` // Map reservation application start desired date error |

**Block 20** — [IF] pnlty_hassei_cd_err [PNLTY_HASSEI_CD_ERR] (L3424)

> Option Subscriber Business Contract (ISP) Registration - Penalty Occurrence Code -> Error information return (オプショナルサービス契約<ISP>登録.違約金発生コード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR)` // Check if penalty occurrence code error exists |
| 2 | IF | `!inHash.containsKey("pnlty_hassei_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("pnlty_hassei_cd_err", template.getString(EKK0361D010CBSMsg.PNLTY_HASSEI_CD_ERR))` // Map penalty occurrence code error |

**Block 21** — [IF] ido_div_err [IDO_DIV_ERR] (L3430)

> Option Subscriber Business Contract (ISP) Registration - Transfer Classification -> Error information return (オプショナルサービス契約<ISP>登録.異動区分)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.IDO_DIV_ERR)` // Check if transfer classification error exists |
| 2 | IF | `!inHash.containsKey("ido_div_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("ido_div_err", template.getString(EKK0361D010CBSMsg.IDO_DIV_ERR))` // Map transfer classification error |

**Block 22** — [IF] kibo_ml_account_1_err [KIBO_ML_ACCOUNT_1_ERR] (L3436)

> Option Subscriber Business Contract (ISP) Registration - Desired Mail Account 1 -> Error information return (オプショナルサービス契約<ISP>登録.希望メールアカウント1)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR)` // Check if desired mail account 1 error exists |
| 2 | IF | `!inHash.containsKey("kibo_ml_account_1_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("kibo_ml_account_1_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_1_ERR))` // Map desired mail account 1 error |

**Block 23** — [IF] kibo_ml_account_2_err [KIBO_ML_ACCOUNT_2_ERR] (L3442)

> Option Subscriber Business Contract (ISP) Registration - Desired Mail Account 2 -> Error information return (オプショナルサービス契約<ISP>登録.希望メールアカウント2)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR)` // Check if desired mail account 2 error exists |
| 2 | IF | `!inHash.containsKey("kibo_ml_account_2_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("kibo_ml_account_2_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_2_ERR))` // Map desired mail account 2 error |

**Block 24** — [IF] kibo_ml_account_3_err [KIBO_ML_ACCOUNT_3_ERR] (L3448)

> Option Subscriber Business Contract (ISP) Registration - Desired Mail Account 3 -> Error information return (オプショナルサービス契約<ISP>登録.希望メールアカウント3)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR)` // Check if desired mail account 3 error exists |
| 2 | IF | `!inHash.containsKey("kibo_ml_account_3_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("kibo_ml_account_3_err", template.getString(EKK0361D010CBSMsg.KIBO_ML_ACCOUNT_3_ERR))` // Map desired mail account 3 error |

**Block 25** — [IF] mltise_session_cnt_err [MLTISE_SESSION_CNT_ERR] (L3454)

> Option Subscriber Business Contract (ISP) Registration - Multi-Session Count -> Error information return (オプショナルサービス契約<ISP>登録.マルチセッション用セッション数)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR)` // Check if multi-session count error exists |
| 2 | IF | `!inHash.containsKey("mltise_session_cnt_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mltise_session_cnt_err", template.getString(EKK0361D010CBSMsg.MLTISE_SESSION_CNT_ERR))` // Map multi-session count error |

**Block 26** — [IF] mltise_shk_ninsho_id_pwd_err [MLTISE_SHK_NINSHO_ID_PWD_ERR] (L3460)

> Option Subscriber Business Contract (ISP) Registration - Multi-Session Initial Authentication ID Password -> Error information return (オプショナルサービス契約<ISP>登録.マルチセッション用初期認証IDパスワード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR)` // Check if multi-session initial auth ID password error exists |
| 2 | IF | `!inHash.containsKey("mltise_shk_ninsho_id_pwd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mltise_shk_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_SHK_NINSHO_ID_PWD_ERR))` // Map multi-session initial auth ID password error |

**Block 27** — [IF] mltise_ninsho_id_err [MLTISE_NINSHO_ID_ERR] (L3466)

> Option Subscriber Business Contract (ISP) Registration - Multi-Session Authentication ID -> Error information return (オプショナルサービス契約<ISP>登録.マルチセッション用認証ID)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR)` // Check if multi-session auth ID error exists |
| 2 | IF | `!inHash.containsKey("mltise_ninsho_id_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mltise_ninsho_id_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_ERR))` // Map multi-session auth ID error |

**Block 28** — [IF] mltise_ninsho_id_pwd_err [MLTISE_NINSHO_ID_PWD_ERR] (L3472)

> Option Subscriber Business Contract (ISP) Registration - Multi-Session Authentication ID Password -> Error information return (オプショナルサービス契約<ISP>登録.マルチセッション用認証IDパスワード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR)` // Check if multi-session auth ID password error exists |
| 2 | IF | `!inHash.containsKey("mltise_ninsho_id_pwd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mltise_ninsho_id_pwd_err", template.getString(EKK0361D010CBSMsg.MLTISE_NINSHO_ID_PWD_ERR))` // Map multi-session auth ID password error |

**Block 29** — [IF] ipv6_ad_ifid_err [IPV6_AD_IFID_ERR] (L3478)

> Option Subscriber Business Contract (ISP) Registration - IPv6 Address -> Error information return (オプショナルサービス契約<ISP>登録.IPv6アドレス)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR)` // Check if IPv6 address error exists |
| 2 | IF | `!inHash.containsKey("ipv6_ad_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("ipv6_ad_err", template.getString(EKK0361D010CBSMsg.IPV6_AD_IFID_ERR))` // Map IPv6 address error |

**Block 30** — [IF] kotei_ip_ad_err [KOTEI_IP_AD_ERR] (L3484)

> Option Subscriber Business Contract (ISP) Registration - Fixed IP Address -> Error information return (オプショナルサービス契約<ISP>登録.固定IPアドレス)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR)` // Check if fixed IP address error exists |
| 2 | IF | `!inHash.containsKey("kotei_ip_ad_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("kotei_ip_ad_err", template.getString(EKK0361D010CBSMsg.KOTEI_IP_AD_ERR))` // Map fixed IP address error |

**Block 31** — [IF] netmask_err [NETMASK_ERR] (L3490)

> Option Subscriber Business Contract (ISP) Registration - Netmask -> Error information return (オプショナルサービス契約<ISP>登録.ネットマスク)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.NETMASK_ERR)` // Check if netmask error exists |
| 2 | IF | `!inHash.containsKey("netmask_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("netmask_err", template.getString(EKK0361D010CBSMsg.NETMASK_ERR))` // Map netmask error |

**Block 32** — [IF] capa_err [CAPA_ERR] (L3496)

> Option Subscriber Business Contract (ISP) Registration - Capacity -> Error information return (オプショナルサービス契約<ISP>登録.容量)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.CAPA_ERR)` // Check if capacity error exists |
| 2 | IF | `!inHash.containsKey("capa_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("capa_err", template.getString(EKK0361D010CBSMsg.CAPA_ERR))` // Map capacity error |

**Block 33** — [IF] url_domain_err [URL_DOMAIN_ERR] (L3502)

> Option Subscriber Business Contract (ISP) Registration - URL (Domain) -> Error information return (オプショナルサービス契約<ISP>登録.URL(ドメイン))

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.URL_DOMAIN_ERR)` // Check if URL (domain) error exists |
| 2 | IF | `!inHash.containsKey("url_domain_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("url_domain_err", template.getString(EKK0361D010CBSMsg.URL_DOMAIN_ERR))` // Map URL (domain) error |

**Block 34** — [IF] url_account_err [URL_ACCOUNT_ERR] (L3508)

> Option Subscriber Business Contract (ISP) Registration - URL (Account) -> Error information return (オプショナルサービス契約<ISP>登録.URL(アカウント))

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.URL_ACCOUNT_ERR)` // Check if URL (account) error exists |
| 2 | IF | `!inHash.containsKey("url_account_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("url_account_err", template.getString(EKK0361D010CBSMsg.URL_ACCOUNT_ERR))` // Map URL (account) error |

**Block 35** — [IF] mllist_nm_err [MLLIST_NM_ERR] (L3514)

> Option Subscriber Business Contract (ISP) Registration - Mailing List Name -> Error information return (オプショナルサービス契約<ISP>登録.メーリングリスト名)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLLIST_NM_ERR)` // Check if mailing list name error exists |
| 2 | IF | `!inHash.containsKey("mllist_nm_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mllist_nm_err", template.getString(EKK0361D010CBSMsg.MLLIST_NM_ERR))` // Map mailing list name error |

**Block 36** — [IF] mllist_kosho_err [MLLIST_KOSHO_ERR] (L3520)

> Option Subscriber Business Contract (ISP) Registration - Mailing List Display Name -> Error information return (オプショナルサービス契約<ISP>登録.メーリングリスト呼称)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR)` // Check if mailing list display name error exists |
| 2 | IF | `!inHash.containsKey("mllist_kosho_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mllist_kosho_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOSHO_ERR))` // Map mailing list display name error |

**Block 37** — [IF] mllist_kokai_yh_err [MLLIST_KOKAI_YH_ERR] (L3526)

> Option Subscriber Business Contract (ISP) Registration - Mailing List Publication Yes/No -> Error information return (オプショナルサービス契約<ISP>登録.メーリングリスト公開要否)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR)` // Check if mailing list publication yes/no error exists |
| 2 | IF | `!inHash.containsKey("mllist_kokai_yh_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mllist_kokai_yh_err", template.getString(EKK0361D010CBSMsg.MLLIST_KOKAI_YH_ERR))` // Map mailing list publication yes/no error |

**Block 38** — [IF] mllist_max_user_cnt_err [MLLIST_MAX_USER_CNT_ERR] (L3532)

> Option Subscriber Business Contract (ISP) Registration - Mailing List Max User Count -> Error information return (オプショナルサービス契約<ISP>登録.メーリングリスト最大ユーザ数)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR)` // Check if mailing list max user count error exists |
| 2 | IF | `!inHash.containsKey("mllist_max_user_cnt_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mllist_max_user_cnt_err", template.getString(EKK0361D010CBSMsg.MLLIST_MAX_USER_CNT_ERR))` // Map mailing list max user count error |

**Block 39** — [IF] mllist_krisha_mlad_err [MLLIST_KRISHA_MLAD_ERR] (L3538)

> Option Subscriber Business Contract (ISP) Registration - Mailing List Administrator Mail Address -> Error information return (オプショナルサービス契約<ISP>登録.メーリングリスト管理者メールアドレス)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR)` // Check if mailing list administrator mail address error exists |
| 2 | IF | `!inHash.containsKey("mllist_krisha_mlad_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("mllist_krisha_mlad_err", template.getString(EKK0361D010CBSMsg.MLLIST_KRISHA_MLAD_ERR))` // Map mailing list administrator mail address error |

**Block 40** — [IF] dokuji_domain_nm_err [DOKUJI_DOMAIN_NM_ERR] (L3544)

> Option Subscriber Business Contract (ISP) Registration - Unique Domain Name -> Error information return (オプショナルサービス契約<ISP>登録.独自ドメイン名)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR)` // Check if unique domain name error exists |
| 2 | IF | `!inHash.containsKey("dokuji_domain_nm_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("dokuji_domain_nm_err", template.getString(EKK0361D010CBSMsg.DOKUJI_DOMAIN_NM_ERR))` // Map unique domain name error |

**Block 41** — [IF] hosml_account_cnt_err [HOSML_ACCOUNT_CNT_ERR] (L3550)

> Option Subscriber Business Contract (ISP) Registration - Hosting Mail Account Count -> Error information return (オプショナルサービス契約<ISP>登録.ホスティングメールアカウント数)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR)` // Check if hosting mail account count error exists |
| 2 | IF | `!inHash.containsKey("hosml_account_cnt_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("hosml_account_cnt_err", template.getString(EKK0361D010CBSMsg.HOSML_ACCOUNT_CNT_ERR))` // Map hosting mail account count error |

**Block 42** — [IF] hosml_box_capa_err [HOSML_BOX_CAPA_ERR] (L3556)

> Option Subscriber Business Contract (ISP) Registration - Hosting Mail Box Total Capacity -> Error information return (オプショナルサービス契約<ISP>登録.ホスティングメールボックス総容量)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR)` // Check if hosting mail box total capacity error exists |
| 2 | IF | `!inHash.containsKey("hosml_box_capa_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("hosml_box_capa_err", template.getString(EKK0361D010CBSMsg.HOSML_BOX_CAPA_ERR))` // Map hosting mail box total capacity error |

**Block 43** — [IF] dpad_pin_err [DPAD_PIN_ERR] (L3562)

> Option Subscriber Business Contract (ISP) Registration - Dial Pad PIN -> Error information return (オプショナルサービス契約<ISP>登録.ダイアルパッドPIN)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.DPAD_PIN_ERR)` // Check if dial pad PIN error exists |
| 2 | IF | `!inHash.containsKey("dpad_pin_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("dpad_pin_err", template.getString(EKK0361D010CBSMsg.DPAD_PIN_ERR))` // Map dial pad PIN error |

**Block 44** — [IF] dpad_id_kokai_yh_err [DPAD_ID_KOKAI_YH_ERR] (L3568)

> Option Subscriber Business Contract (ISP) Registration - Dial Pad ID Publication Yes/No -> Error information return (オプショナルサービス契約<ISP>登録.ダイアルパッドID公開要否)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR)` // Check if dial pad ID publication yes/no error exists |
| 2 | IF | `!inHash.containsKey("dpad_id_kokai_yh_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("dpad_id_kokai_yh_err", template.getString(EKK0361D010CBSMsg.DPAD_ID_KOKAI_YH_ERR))` // Map dial pad ID publication yes/no error |

**Block 45** — [IF] dupcon_ninsho_id_err [DUPCON_NINSHO_ID_ERR] (L3574)

> Option Subscriber Business Contract (ISP) Registration - Dial-Up Connection Authentication ID -> Error information return (オプショナルサービス契約<ISP>登録.ダイアルアップ接続用認証ID)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR)` // Check if dial-up connection auth ID error exists |
| 2 | IF | `!inHash.containsKey("dupcon_ninsho_id_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("dupcon_ninsho_id_err", template.getString(EKK0361D010CBSMsg.DUPCON_NINSHO_ID_ERR))` // Map dial-up connection auth ID error |

**Block 46** — [IF] dns_sette_cd_err [DNS_SETTE_CD_ERR] (L3580)

> Option Subscriber Business Contract (ISP) Registration - DNS Setting Code -> Error information return (オプショナルサービス契約<ISP>登録.DNS設定コード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR)` // Check if DNS setting code error exists |
| 2 | IF | `!inHash.containsKey("dns_sette_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("dns_sette_cd_err", template.getString(EKK0361D010CBSMsg.DNS_SETTE_CD_ERR))` // Map DNS setting code error |

**Block 47** — [IF] spot_ygsiteblck_trgt_sysid_err [SPOT_YGSITEBLCK_TRGT_SYSID_ERR] (L3586)

> Option Subscriber Business Contract (ISP) Registration - Spot Malicious Site Block Target SYSID -> Error information return (オプショナルサービス契約<ISP>登録.スポット有害サイトブロック対象SYSID)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR)` // Check if spot malicious site block target SYSID error exists |
| 2 | IF | `!inHash.containsKey("spot_ygsiteblck_trgt_sysid_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("spot_ygsiteblck_trgt_sysid_err", template.getString(EKK0361D010CBSMsg.SPOT_YGSITEBLCK_TRGT_SYSID_ERR))` // Map spot malicious site block target SYSID error |

**Block 48** — [IF] svc_kbt_set_rrks_mlad_err [SVC_KBT_SET_RRKS_MLAD_ERR] (L3592)

> Option Subscriber Business Contract (ISP) Registration - Service Individual Setting Contact Mail Address -> Error information return (オプショナルサービス契約<ISP>登録.サービス個別設定連絡先メールアドレス)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR)` // Check if service individual setting contact mail address error exists |
| 2 | IF | `!inHash.containsKey("svc_kbt_set_rrks_mlad_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("svc_kbt_set_rrks_mlad_err", template.getString(EKK0361D010CBSMsg.SVC_KBT_SET_RRKS_MLAD_ERR))` // Map service individual setting contact mail address error |

**Block 49** — [IF] tuwa_dtl_kokai_yh_err [TUWA_DTL_KOKAI_YH_ERR] (L3598)

> Option Subscriber Business Contract (ISP) Registration - Call Detail Publication Yes/No -> Error information return (オプショナルサービス契約<ISP>登録.電話詳細公開要否)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR)` // Check if call detail publication yes/no error exists |
| 2 | IF | `!inHash.containsKey("tuwa_dtl_kokai_yh_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("tuwa_dtl_kokai_yh_err", template.getString(EKK0361D010CBSMsg.TUWA_DTL_KOKAI_YH_ERR))` // Map call detail publication yes/no error |

**Block 50** — [IF] seiky_kei_no_err [SEIKY_KEI_NO_ERR] (L3604)

> Option Subscriber Business Contract (ISP) Registration - Billing Contract Number -> Error information return (オプショナルサービス契約<ISP>登録.請求契約番号)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR)` // Check if billing contract number error exists |
| 2 | IF | `!inHash.containsKey("seiky_kei_no_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("seiky_kei_no_err", template.getString(EKK0361D010CBSMsg.SEIKY_KEI_NO_ERR))` // Map billing contract number error |

**Block 51** — [IF] prc_kmk_cd_err [PRC_KMK_CD_ERR] (L3610)

> Option Subscriber Business Contract (ISP) Registration - Price Item Code -> Error information return (オプショナルサービス契約<ISP>登録.料金項目コード)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.PRC_KMK_CD_ERR)` // Check if price item code error exists |
| 2 | IF | `!inHash.containsKey("prc_kmk_cd_err")` // Avoid overwriting |
| 3 | SET | `inHash.put("prc_kmk_cd_err", template.getString(EKK0361D010CBSMsg.PRC_KMK_CD_ERR))` // Map price item code error |

**Block 52** — [IF] upd_dtm_bf_err [UPD_DTM_BF_ERR] (L3616)

> Option Subscriber Business Contract (ISP) Registration - Update Date/Time (Before Update) -> Error information return (オプショナルサービス契約<ISP>登録.更新年月日时分秒 - 更新前のエラー情報)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!template.isNull(EKK0361D010CBSMsg.UPD_DTM_BF_ERR)` // Check if update date/time error exists |
| 2 | IF | `!inHash.containsKey("upd_dtm_err")` // Avoid overwriting (key uses "upd_dtm_err", not full field name) |
| 3 | SET | `inHash.put("upd_dtm_err", template.getString(EKK0361D010CBSMsg.UPD_DTM_BF_ERR))` // Map update date/time error |

**Block 53** — [RETURN] Return param (L3623)

> Return the parameter object containing the populated error map.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param;` // Return param with error map populated under fixedText key |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `op_svc_cd` | Field | Option Service Code -- identifies the option service type registered under the contract |
| `pcrs_cd` | Field | Price Cost Code -- billing cost classification code for the service |
| `pplan_cd` | Field | Price Plan Code -- pricing plan identifier for the subscription |
| `oya_kei_skbt_cd` | Field | Parent Contract ID Code -- identifier of the parent/master contract this sub-contract belongs to |
| `svc_kei_no` | Field | Service Contract Number -- the primary contract number for the service |
| `svc_kei_ucwk_no` | Field | Service Contract Line Item Number -- internal tracking ID for a line item within the service contract |
| `sysid` | Field | System ID -- unique system identifier for the service endpoint or configuration |
| `mskm_dtl_no` | Field | Application Detail Number -- sequential detail number for the application record |
| `ftrial_kanyu_ymd` | Field | Trial Addition Date -- date when the trial period service was activated (YMD = Year/Month/Day) |
| `ftrial_prd_endymd` | Field | Trial Period End Date -- date when the trial subscription period expires |
| `honkanyu_ymd` | Field | Actual Addition Date -- date when the full (non-trial) service was activated |
| `honkanyu_iko_kigen_ymd` | Field | Actual Addition Transfer Deadline Date -- deadline date for transferring to the actual service |
| `svc_use_sta_kibo_ymd` | Field | Service Usage Start Desired Date -- customer's requested service start date |
| `rsv_tsta_kibo_ymd` | Field | Reservation Application Start Desired Date -- customer's requested reservation application start date |
| `pnlty_hassei_cd` | Field | Penalty Occurrence Code -- code indicating whether a penalty was applied |
| `ido_div` | Field | Transfer Classification -- classification of service transfer type (e.g., MNP, internal transfer) |
| `kibo_ml_account_1` | Field | Desired Mail Account 1 -- first preferred email address for the subscriber |
| `kibo_ml_account_2` | Field | Desired Mail Account 2 -- second preferred email address |
| `kibo_ml_account_3` | Field | Desired Mail Account 3 -- third preferred email address |
| `mltise_session_cnt` | Field | Multi-Session Count -- number of concurrent sessions allowed |
| `mltise_shk_ninsho_id_pwd` | Field | Multi-Session Initial Authentication ID Password -- initial login credentials for multi-session access |
| `mltise_ninsho_id` | Field | Multi-Session Authentication ID -- login identifier for multi-session access |
| `mltise_ninsho_id_pwd` | Field | Multi-Session Authentication ID Password -- login password for multi-session access |
| `ipv6_ad_ifid` | Field | IPv6 Address (Interface ID) -- IPv6 address with interface identifier for the service |
| `kotei_ip_ad` | Field | Fixed IP Address -- statically assigned IP address for the subscriber |
| `netmask` | Field | Netmask -- subnet mask for the assigned IP address |
| `capa` | Field | Capacity -- service capacity/throughput specification |
| `url_domain` | Field | URL (Domain) -- domain name associated with the service |
| `url_account` | Field | URL (Account) -- account identifier within the URL/domain |
| `mllist_nm` | Field | Mailing List Name -- name of the mailing list service |
| `mllist_kosho` | Field | Mailing List Display Name -- publicly displayed name for the mailing list |
| `mllist_kokai_yh` | Field | Mailing List Publication Yes/No -- flag indicating whether the mailing list is publicly published |
| `mllist_max_user_cnt` | Field | Mailing List Max User Count -- maximum number of users allowed in the mailing list |
| `mllist_krisha_mlad` | Field | Mailing List Administrator Mail Address -- email of the mailing list administrator |
| `dokuji_domain_nm` | Field | Unique Domain Name -- custom/domain name assigned exclusively to this contract |
| `hosml_account_cnt` | Field | Hosting Mail Account Count -- number of hosted email accounts |
| `hosml_box_capa` | Field | Hosting Mail Box Total Capacity -- total storage capacity for hosted mailboxes |
| `dpad_pin` | Field | Dial Pad PIN -- personal identification number for dial-up authentication |
| `dpad_id_kokai_yh` | Field | Dial Pad ID Publication Yes/No -- flag for whether the dial-up ID is publicly visible |
| `dupcon_ninsho_id` | Field | Dial-Up Connection Authentication ID -- identifier for dial-up connection login |
| `dns_sette_cd` | Field | DNS Setting Code -- DNS configuration code for the service |
| `spot_ygsiteblck_trgt_sysid` | Field | Spot Malicious Site Block Target SYSID -- SYSID targeted by spot-based malicious site blocking |
| `svc_kbt_set_rrks_mlad` | Field | Service Individual Setting Contact Mail Address -- email for contacting about individual service settings |
| `tuwa_dtl_kokai_yh` | Field | Call Detail Publication Yes/No -- flag for whether call details are publicly visible |
| `seiky_kei_no` | Field | Billing Contract Number -- contract number associated with billing |
| `prc_kmk_cd` | Field | Price Item Code -- code for a specific billing/pricing item |
| `upd_dtm_bf` | Field | Update Date/Time (Before Update) -- timestamp of the record before the current update (for validation/optimistic locking) |
| CAANMsg | Class | Fujitsu message schema class -- a structured message container extending `CAANSchemaInfo`, used to pass field data between CBS and screens |
| CAANSchemaInfo | Class | Base class for schema-based message objects -- provides `getString()` and `isNull()` accessors for typed field access |
| IRequestParameterReadWrite | Interface | Request parameter read/write contract -- the object carrying business data between layers; supports `getData()` and `setData()` for key-value storage |
| CBS | Acronym | Contract Business System -- the backend service component layer that performs business logic and data access |
| EKK0361D010CBS | CBS | Option Subscriber Business Contract (ISP) Registration CBS -- the service component handling ISP contract registration validation |
| EKK0361D010CBSMsg | Class | CBS Message schema for EKK0361D010 -- defines field names and types for the CBS response, including error fields (suffixed with `_ERR`) |
| S-IF | Acronym | Screen Interface -- the interface between the presentation layer and CBS layer, executing CBS operations on behalf of the screen |
| ISP | Business term | Internet Service Provider -- the type of internet subscription service being registered (Option Subscriber Business Contract) |
| `_ERR` | Naming convention | Error field suffix -- fields ending in `_ERR` in the CBS message schema carry validation error values |
