# Business Logic — JKKMalwareBlockingNonFlgChengeOverCC.editInMsgEKK0091C040() [133 LOC]

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

## 1. Role

### JKKMalwareBlockingNonFlgChengeOverCC.editInMsgEKK0091C040()

This method is the **message factory** for the **eo Hikari Net service contract information change** service interface. Its business purpose is to construct a properly structured CBS (Component-Based Service) inbound message (`CAANMsg`) that carries all fields required to update a subscriber's eo Hikari Net service contract record — specifically enabling the "malware blocking non-flag" (i.e., opt-out of or no-enrollment in the malware blocking feature) when a user modifies their service details.

The method implements a **delegation and assembly pattern**: it extracts header-level and user-context data from the incoming `IRequestParameterReadWrite` object, retrieves the field-level schema from the `EKK0091C040CBSMsg` template definition, and then populates each field by resolving values from three input maps (`inMap`, `svcKeiMap`, `svcKeiNetMap`) in priority order. Fields are populated from `inMap` first, then `svcKeiMap`, then `svcKeiNetMap`, with `setNull()` applied as a fallback when a value is absent or empty in all sources.

Its role in the larger system is that of a **shared utility within the common component layer**, called by both `svcKeiHikariUpd()` (the main service contract update flow for eo Hikari Net) and `updSkekkaEohnt()` (the approval result update flow). This method sits between the business processing layer and the CBS invocation layer — it does not itself execute any database or SC operation; rather, it prepares the message payload that the caller will then send to the CBS framework for processing.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editInMsgEKK0091C040"])
    STEP1["Create paramMap (HashMap)"]
    STEP2["Extract header from param: telegramID, usecaseID, operationID, callType"]
    STEP3["Extract user context: hostname, IP, screenID, operatorID"]
    STEP4["Create CAANMsg template with EKK0091C040CBSMsg schema"]
    STEP5["Set templateID = EKK0091C040"]
    STEP6["Get func_code from inMap"]
    COND_FUNC{funcCode null/empty?}
    STEP7["Set FUNC_CODE = funcCode value"]
    STEP8["Set FUNC_CODE = JPCModelConstant.FUNC_CD_1"]
    STEP9["Load fieldMatrix from EKK0091C040CBSMsg.getContents()"]
    STEP10["For each field in fieldMatrix"]
    STEP11["Read field name from fieldMatrix[i][0]"]
    COND_INMAP{inMap contains field?}
    COND_SVC{svcKeiMap contains field?}
    COND_NET{svcKeiNetMap contains field?}
    STEP_INMAP{inMap value null/empty?}
    STEP_SVC{svcKeiMap value null/empty?}
    STEP_NET{svcKeiNetMap value null/empty?}
    STEP_SET_INMAP["template.set(field, inMap value)"]
    STEP_NUL_INMAP["template.setNull(field)"]
    STEP_SET_SVC["template.set(field, svcKeiMap value)"]
    STEP_SET_NET["template.set(field, svcKeiNetMap value)"]
    STEP_NUL_NET["template.setNull(field)"]
    STEP_NUL_FALL["template.setNull(field)"]
    STEP12["Set operatorID, operateDate, operateDateTime on template"]
    STEP13["Set SVC_KEI_NO from inMap"]
    STEP14["Set MSKM_DTL_NO from inMap"]
    STEP15["Set UPD_DTM_BF from svcKeiNetMap LAST_UPD_DTM"]
    STEP16["Set IDO_DIV = 00033 (Service Info Correction)"]
    STEP17["Set MALWARE_BLOCKING_NON_FLG = 1 (fixed constant)"]
    STEP18["Wrap template into CAANMsg[] array"]
    STEP19["Put template list into paramMap"]
    END_NODE["Return paramMap"]

    START --> STEP1 --> STEP2 --> STEP3 --> STEP4 --> STEP5 --> STEP6 --> COND_FUNC
    COND_FUNC -->|true| STEP7 --> STEP9
    COND_FUNC -->|false| STEP8 --> STEP9
    STEP9 --> STEP10 --> STEP11 --> COND_INMAP
    COND_INMAP -->|true| STEP_INMAP
    COND_INMAP -->|false| COND_SVC
    STEP_INMAP -->|true| STEP_NUL_INMAP
    STEP_INMAP -->|false| STEP_SET_INMAP
    STEP_SET_INMAP --> STEP10
    STEP_NUL_INMAP --> COND_SVC
    COND_SVC -->|true| STEP_SVC
    COND_SVC -->|false| COND_NET
    STEP_SVC -->|true| STEP_SET_SVC
    STEP_SVC -->|false| STEP_NUL_FALL
    STEP_SET_SVC --> STEP10
    STEP_NUL_FALL --> COND_NET
    COND_NET -->|true| STEP_NET
    COND_NET -->|false| STEP_NUL_FALL
    STEP_NET -->|true| STEP_SET_NET
    STEP_NET -->|false| STEP_NUL_NET
    STEP_SET_NET --> STEP10
    STEP_NUL_NET --> STEP10
    STEP10 -->|done| STEP12 --> STEP13 --> STEP14 --> STEP15 --> STEP16 --> STEP17 --> STEP18 --> STEP19 --> END_NODE
```

**Processing flow summary:**

1. **Parameter map initialization** — Creates a new `HashMap` (`paramMap`) to serve as the outbound message container.
2. **Header extraction (电文ヘッダ / Telegram Header)** — Pulls the telegram ID, use case ID, operation ID, and call type from the `param` request object and stores them in `paramMap` under their respective `JCMConstants` keys.
3. **User context extraction (ユーザエリア / User Area)** — Extracts the client hostname, IP address, screen ID, and operator ID from the parameter's control map and stores them in `paramMap`.
4. **Template creation** — Instantiates a `CAANMsg` object using the `EKK0091C040CBSMsg` schema class, which defines all 110+ fields (data and error fields) that the CBS message structure requires.
5. **Template ID assignment** — Sets the template ID to `"EKK0091C040"`, matching the service interface identifier.
6. **Function code resolution** — Retrieves `func_code` from `inMap`. If present and non-empty, uses that value; otherwise defaults to `JPCModelConstant.FUNC_CD_1` (function code "1").
7. **Bulk field population loop** — Iterates over all fields defined in `EKK0091C040CBSMsg.getContents()`. For each field name (column 0 of the field matrix), the method checks `inMap` → `svcKeiMap` → `svcKeiNetMap` in priority order. If the resolved value is null or empty, it calls `template.setNull(field)`; otherwise it calls `template.set(field, value)`. If the field is absent from all three maps, it defaults to `setNull()`.
8. **Post-loop field population** — Explicitly sets `operatorID`, `operateDate`, and `operateDateTime` from the control map (these may differ from the earlier header extraction).
9. **Service contract number and detail number** — Sets `SVC_KEI_NO` (service contract number) and `MSKM_DTL_NO` (application detail number) from `inMap` with null/empty protection.
10. **Pre-update timestamp** — Sets `UPD_DTM_BF` (update datetime before) from `svcKeiNetMap` using the `LAST_UPD_DTM` field key from `EKK0091A010CBSMsg1List`.
11. **Business-specific fixed fields** — Sets `IDO_DIV` (change classification) to the fixed value `"00033"` (Service Information Correction) and `MALWARE_BLOCKING_NON_FLG` to `"1"` (Malware Blocking Non-Flag, a constant).
12. **Return** — Wraps the single template into a `CAANMsg[]` array, stores it in `paramMap` under the template list key, and returns the fully assembled parameter map.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object containing the telegram header (ID, use case, operation, call type) and user context area (hostname, IP, screen ID, operator ID). This is the primary entry point for request-level metadata. |
| 2 | `inMap` | `HashMap<String, Object>` | Input data map from the calling business method. Contains field values originating from the user's input or the service agreement consent data (e.g., `func_code`, `svc_kei_no`, `mskm_dtl_no`). Fields here take highest priority during field resolution. |
| 3 | `svcKeiMap` | `HashMap<String, Object>` | Service contract data map containing data from the **service contract agreement master** (サービス契約同意会). Represents the base service agreement record for standard (non-net) service lines. Priority is second to `inMap`. |
| 4 | `svcKeiNetMap` | `HashMap<String, Object>` | Service contract data map for **eo Hikari Net** (eo光ネット) specific data. Contains the updated service contract line item data and metadata like the last update timestamp (`LAST_UPD_DTM`). Priority is third (lowest). |

**External state / fields read:**
- `JCMConstants.*` — Static constants defining keys for the parameter map (transaction ID, use case ID, operation ID, call type, client hostname, client IP, screen ID, operator ID, template list key).
- `SCControlMapKeys.*` — Static constants for control map entry keys (request hostname, request IP, request view ID, operator ID, operation date, operation time).
- `EKK0091C040CBSMsg.*` — Static field key constants from the CBS message schema (e.g., `TEMPLATEID`, `FUNC_CODE`, `SVC_KEI_NO`, `IDO_DIV`, `MALWARE_BLOCKING_NON_FLG`).
- `EKK0091A010CBSMsg1List.LAST_UPD_DTM` — Constant for the last update datetime field key (`"last_upd_dtm"`).
- `JPCModelConstant.FUNC_CD_1` — Default function code constant, value `"1"`.
- `TEMPLATE_ID_EKK0091C040` — Instance file constant, value `"EKK0091C040"`.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JACBatCommon.isNull` | - | - | Calls `isNull` in `JACBatCommon` for null-check utility |
| - | `JKKCommonUtil.isNull` | - | - | Calls `isNull` in `JKKCommonUtil` to check if `funcCode` is null or empty |
| R | `EKK0091C040CBSMsg.getContents` | - | EKK0091C040CBSMsg Schema | Calls `getContents()` to load the field matrix (column definitions and types) for the CBS message schema |
| R | `EKK0091A010CBSMsg1List.LAST_UPD_DTM` | - | - | Reads the constant string `"last_upd_dtm"` used as a key into `svcKeiNetMap` to retrieve the pre-update datetime |
| - | `CAANMsg.set` | - | - | Sets a field value on the CBS message template object |
| - | `CAANMsg.setNull` | - | - | Sets a field to null on the CBS message template object |
| - | `JCMConstants.*` references | - | - | Static constant access for parameter map keys |
| - | `SCControlMapKeys.*` references | - | - | Static constant access for control map data keys |

**Note:** This method is a **message assembly** method — it does not directly invoke any Service Component (SC) or CBS (Component-Based Service) that performs database operations. Its terminal operations are all `template.set()` and `template.setNull()` calls on the `CAANMsg` object, which will later be consumed by the caller (e.g., `svcKeiHikariUpd()` or `updSkekkaEohnt()`) to actually execute the database update. The actual CRUD operations on the service contract tables occur in the calling methods that send this assembled message to the CBS layer.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKMalwareBlockingNonFlgChengeOverCC.svcKeiHikariUpd()` | `svcKeiHikariUpd()` → `editInMsgEKK0091C040()` | `CAANMsg.set()` [-], `CAANMsg.setNull()` [-] |
| 2 | `JKKSvkeiSkekkaUpdCC.updSkekkaEohnt()` | `updSkekkaEohnt()` → `editInMsgEKK0091C040()` | `CAANMsg.set()` [-], `CAANMsg.setNull()` [-] |

**Note:** No screen-level (`KKSV*`) or batch-level (`KKBV*`) entry points were found within 8 hops. The callers are both common component classes (CC), indicating this method is a shared utility within the business processing layer rather than a direct screen entry point. Both callers use the assembled parameter map to subsequently invoke CBS processing — the terminal operations are the `set()` and `setNull()` calls on the `CAANMsg` template, which serve as the input to the CBS framework.

## 6. Per-Branch Detail Blocks

### Block 1 — SET (L693)

> Initialize the parameter map that will hold all header, user context, and template data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = new HashMap<String, Object>()` // New HashMap to build outbound parameter data |

### Block 2 — EXEC (L696-702)

> Extract telegram header fields (電文ヘッダ) from the request parameter object and store in paramMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID())` // 【取得元:電文ヘッダ(ヘッダ)】→ Transaction ID [→ JCMConstants.TRANZACTION_ID_KEY] |
| 2 | SET | `paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID())` // User case ID [→ JCMConstants.USECASE_ID_KEY] |
| 3 | SET | `paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID())` // Operation ID [→ JCMConstants.OPERATION_ID_KEY] |
| 4 | SET | `paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType())` // Service call type classification [→ JCMConstants.CALL_TYPE_KEY] |

### Block 3 — EXEC (L705-711)

> Extract user context area (ユーザエリア) from the control map and store in paramMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME))` // Request source hostname |
| 2 | SET | `paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP))` // Request source IP address |
| 3 | SET | `paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID))` // Request source screen ID |
| 4 | SET | `paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID))` // Operator ID |

### Block 4 — SET + EXEC (L714-716)

> Create the CBS message template using the EKK0091C040CBSMsg schema class and assign the template ID.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = new CAANMsg(EKK0091C040CBSMsg.class.getName())` // CAANMsg initialized with EKK0091C040CBSMsg schema |
| 2 | SET | `template.set(EKK0091C040CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0091C040)` // templateID = "EKK0091C040" [→ TEMPLATE_ID_EKK0091C040="EKK0091C040"] |

### Block 5 — IF / ELSE (L719-730)

> Function code (機能コード) assignment with fallback to default. If `func_code` is set in `inMap`, use it; otherwise apply the default function code.

| # | Type | Code |
|---|------|------|
| 1 | SET | `funcCode = (String) inMap.get("func_code")` // Extract function code from input map |
| 2 | IF | `!JKKCommonUtil.isNull(funcCode)` // **CONSTANT_CHECK**: funcCode is not null and not empty |
| 3 | EXEC | `template.set(EKK0091C040CBSMsg.FUNC_CODE, funcCode)` // Set FUNC_CODE with the provided value |
| 4 | ELSE | — |
| 5 | EXEC | `template.set(EKK0091C040CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1)` // Set FUNC_CODE to default value [→ JPCModelConstant.FUNC_CD_1="1"] |

### Block 6 — FOR LOOP (L734-764)

> Bulk field population loop. Iterates over all fields defined in the `EKK0091C040CBSMsg` schema and resolves values from `inMap` → `svcKeiMap` → `svcKeiNetMap` in priority order.

| # | Type | Code |
|---|------|------|
| 1 | SET | `fieldMatrix = new EKK0091C040CBSMsg().getContents()` // Load field matrix (name, type) from CBS message schema |
| 2 | SET | `i = 0` // Loop index initialization |
| 3 | FOR | `i < fieldMatrix.length` // Iterate over all schema fields |
| 4 | SET | `element = (String) fieldMatrix[i][0]` // Field name (first column of field matrix) |
| 5 | IF (nested) | `inMap != null && inMap.containsKey(element)` // inMap has this field? |
| 6 | IF (nested) | `inMap.get(element) == null || "".equals(inMap.get(element))` // Value is null/empty? |
| 7 | EXEC | `template.setNull(element)` // Set field to null |
| 8 | ELSE | — |
| 9 | EXEC | `template.set(element, (String) inMap.get(element))` // Set field from inMap |
| 10 | ELSE-IF | `svcKeiMap != null && svcKeiMap.containsKey(element)` // svcKeiMap has this field? |
| 11 | IF (nested) | `svcKeiMap.get(element) == null || "".equals(svcKeiMap.get(element))` // Value is null/empty? |
| 12 | EXEC | `template.setNull(element)` // Set field to null |
| 13 | ELSE | — |
| 14 | EXEC | `template.set(element, (String) svcKeiMap.get(element))` // Set field from svcKeiMap |
| 15 | ELSE-IF | `svcKeiNetMap != null && svcKeiNetMap.containsKey(element)` // svcKeiNetMap has this field? |
| 16 | IF (nested) | `svcKeiNetMap.get(element) == null || "".equals(svcKeiNetMap.get(element))` // Value is null/empty? |
| 17 | EXEC | `template.setNull(element)` // Set field to null |
| 18 | ELSE | — |
| 19 | EXEC | `template.set(element, (String) svcKeiNetMap.get(element))` // Set field from svcKeiNetMap |
| 20 | ELSE | — // Field not found in any of the three maps |
| 21 | EXEC | `template.setNull(element)` // Default to null |

### Block 7 — EXEC (L767-775)

> Set operator context fields on the template using control map data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID)` // Operator ID |
| 2 | EXEC | `template.set(JCMConstants.OPERATOR_ID_KEY, operatorId)` // Set operator ID on template |
| 3 | SET | `operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE)` // Operation date [→ SCControlMapKeys.OPE_DATE] |
| 4 | EXEC | `template.set(JCMConstants.OPERATE_DATE_KEY, operateDate)` // Set operate date [→ JCMConstants.OPERATE_DATE_KEY] |
| 5 | SET | `operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME)` // Operation time [→ SCControlMapKeys.OPE_TIME] |
| 6 | EXEC | `template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime)` // Set operate datetime [→ JCMConstants.OPERATE_DATETIME_KEY] |

### Block 8 — IF / ELSE (L778-782)

> Service contract number (サービス契約番号) — set from `inMap` with null/empty protection. If the field is absent or empty, set it to null on the template.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("svc_kei_no") == null \|\| "".equals(inMap.get("svc_kei_no"))` // svc_kei_no is missing |
| 2 | EXEC | `template.setNull(EKK0091C040CBSMsg.SVC_KEI_NO)` // Set service contract number to null |
| 3 | ELSE | — |
| 4 | EXEC | `template.set(EKK0091C040CBSMsg.SVC_KEI_NO, (String) inMap.get("svc_kei_no"))` // Set service contract number from inMap |

### Block 9 — IF / ELSE (L785-789)

> Application detail number (申請明細番号) — set from `inMap` with null/empty protection.

| # | Type | Code |
|---|------|------|
| 1 | IF | `inMap == null \|\| inMap.get("mskm_dtl_no") == null \|\| "".equals(inMap.get("mskm_dtl_no"))` // mskm_dtl_no is missing |
| 2 | EXEC | `template.setNull(EKK0091C040CBSMsg.MSKM_DTL_NO)` // Set application detail number to null |
| 3 | ELSE | — |
| 4 | EXEC | `template.set(EKK0091C040CBSMsg.MSKM_DTL_NO, (String) inMap.get("mskm_dtl_no"))` // Set application detail number from inMap |

### Block 10 — SET (L792)

> Pre-update timestamp (更新年月日时分秒(更新前)) — taken from `svcKeiNetMap` using the `LAST_UPD_DTM` key from the EKK0091A010CBSMsg1List message class. This captures the last update datetime before the current change.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `template.set(EKK0091C040CBSMsg.UPD_DTM_BF, (String) svcKeiNetMap.get(EKK0091A010CBSMsg1List.LAST_UPD_DTM))` // UPD_DTM_BF = last_upd_dtm [→ EKK0091A010CBSMsg1List.LAST_UPD_DTM="last_upd_dtm"] |

### Block 11 — SET (L795)

> Change classification (異動区分) — set to a fixed business value indicating "Service Information Correction" (サービス情報是正).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `template.set(EKK0091C040CBSMsg.IDO_DIV, "00033")` // IDO_DIV = "00033" (Service Info Correction) [FIXED VALUE] |

### Block 12 — SET (L798)

> Malware blocking non-flag (マルウェアブロッキングなしフラグ) — set to a fixed business value indicating the malware blocking feature is not enrolled (opt-out).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `template.set(EKK0091C040CBSMsg.MALWARE_BLOCKING_NON_FLG, "1")` // MALWARE_BLOCKING_NON_FLG = "1" (Malware Blocking Non-Flag) [FIXED VALUE] |

### Block 13 — RETURN (L801-803)

> Finalize the parameter map by wrapping the single template into a `CAANMsg[]` array, placing it under the template list key, and returning.

| # | Type | Code |
|---|------|------|
| 1 | SET | `templates = new CAANMsg[1]` // Create array of size 1 |
| 2 | SET | `templates[0] = template` // Populate with the single assembled template |
| 3 | SET | `paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates)` // Set template list in paramMap [→ JCMConstants.TEMPLATE_LIST_KEY] |
| 4 | RETURN | `return paramMap` // Return fully assembled parameter map |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `TEMPLATE_ID_EKK0091C040` | Constant | Template identifier `"EKK0091C040"` — identifies the CBS message schema for eo Hikari Net service contract change |
| `FUNC_CD_1` | Constant | Default function code `"1"` — used when no `func_code` is provided in the input map |
| `EKK0091C040CBSMsg` | CBS Message Class | CBS message schema class defining 110+ fields for the eohikarinets service contract information change service interface |
| `EKK0091A010CBSMsg1List` | CBS Message Class | CBS message class providing reference keys such as `LAST_UPD_DTM` used to retrieve data from `svcKeiNetMap` |
| `CAANMsg` | Framework Class | Fujurity's CBS message assembly object that holds field-level values for service interface communication |
| `paramMap` | Variable | Outbound parameter map containing header data, user context, and the CBS template list — returned to the caller |
| `fieldMatrix` | Variable | 2D array from `getContents()` containing field names (col 0) and types (col 1) for all CBS message schema fields |
| `JCMConstants` | Constant Class | Framework constants for parameter map keys (TRANZACTION_ID_KEY, USECASE_ID_KEY, TEMPLATE_LIST_KEY, etc.) |
| `SCControlMapKeys` | Constant Class | Constants for control map data entry keys (REQ_HOSTNAME, REQ_HOSTIP, OPE_DATE, OPE_TIME, etc.) |
| JKKCommonUtil | Utility Class | Common utility class providing null-check methods (isNull) used in this method |
| `inMap` | Parameter | Input data map — highest priority source for field values during bulk field population |
| `svcKeiMap` | Parameter | Service contract agreement data map — second priority source; represents standard service contract consent data |
| `svcKeiNetMap` | Parameter | eo Hikari Net service contract data map — third priority source; represents net-specific service contract data including pre-update timestamps |
| `ido_div` | Field | Change classification (異動区分) — indicates the type of service data change. `"00033"` means "Service Information Correction" (サービス情報是正) |
| `malware_blocking_non_flg` | Field | Malware blocking non-flag (マルウェアブロッキングなしフラグ) — `"1"` indicates the subscriber has opted out of (does not enroll in) the malware blocking feature. This is the core business data of this method |
| `upd_dtm_bf` | Field | Update datetime before (更新年月日时分秒(更新前)) — timestamp of the last modification to the service contract record before the current change operation |
| `svc_kei_no` | Field | Service contract number (サービス契約番号) — unique identifier for a service contract line item |
| `mskm_dtl_no` | Field | Application detail number (申請明細番号) — unique identifier for an application detail record |
| `func_code` | Field | Function code — identifies the functional area calling this service interface; defaults to `"1"` if not provided |
| `last_upd_dtm` | Field | Last update datetime (最終更新年月日时分秒) — timestamp of the most recent modification to a service contract record |
| eo Hikari Net | Business term | A fiber-optic broadband internet service offered by SoftBank (formerly KDDI), branded as "eo光ネット" in Japanese. This method handles service contract changes for this service line. |
| eoa Hikari Net | Business term | The Japanese brand "eo光ネット" — Fiber To The Home (FTTH) service. Service contracts for this line are tracked separately from standard service contracts via `svcKeiNetMap`. |
| CAANSchemaInfo | Framework Class | Base class for CBS message schemas; provides the `getContents()` method returning the field matrix and the `set()` / `setNull()` methods for field population |
| IRequestParameterReadWrite | Framework Interface | Interface for request/response parameter objects used across the Fujurity platform; provides access to telegram headers, use case IDs, operation IDs, call types, and control map data |
