# Business Logic — JKKCmpMalwareBlockingApiCC.updateMalwareBlockingInfo() [122 LOC]

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

## 1. Role

### JKKCmpMalwareBlockingApiCC.updateMalwareBlockingInfo()

This method implements the core business logic for updating malware blocking status on a service contract within the K-Opticom eo customer backbone system. It coordinates three major sub-operations in sequence: (1) registering a new application record (MSKM: 申請, *application*) for malware blocking modification via the `insertMskm` helper method, (2) calling the EKK0091C040 service component to persist the malware blocking non-flag update to the upstream service interface (EKK0091C040) so downstream systems are notified of the blocking decision change, and (3) issuing an FTTH authentication Service Order Data (SOD) through `JKKHakkoSODCC.hakkoSOD` to trigger the FTTH (Fiber To The Home) authentication order flow, followed by (4) registering a progress entry via the EKK1091D010 service component to audit the blocking change in the system's progress tracking table. The method serves as a shared utility component called from the screen controller `malwareBlockingMain()`, and follows a sequential pipeline design pattern — each step depends on the prior step's output (the `mskmDtlNo` application detail number and the `malwareBlockingNashiF` flag) — and delegates to external service components via the `callSC` wrapper.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["updateMalwareBlockingInfo"])

    START --> GET_CC_MSG["Get ccMsg from param.getData"]
    GET_CC_MSG --> NEW_INVOKER["Create ServiceComponentRequestInvoker scCall"]
    NEW_INVOKER --> CALL_INSERT["Call insertMskm with SYSID"]
    CALL_INSERT --> CHECK_NULL{mskmDtlNo is null}
    CHECK_NULL -->|Yes| FALLBACK_GET["mskmDtlNo from ekk0081a010"]
    CHECK_NULL -->|No| EVAL_BLOCKING["Evaluate malware blocking flag"]
    FALLBACK_GET --> EVAL_BLOCKING

    EVAL_BLOCKING --> CHECK_BLOCKING{REVISED_BLOCKING equals NON_BLOCKING}
    CHECK_BLOCKING -->|Yes| SET_BLOCK["malwareBlockingNashiF set to 1"]
    CHECK_BLOCKING -->|No| SET_NULL["malwareBlockingNashiF set to null"]
    SET_BLOCK --> BUILD_INPUT["Build ekk0091C040In 2D array with 26 fields"]
    SET_NULL --> BUILD_INPUT

    BUILD_INPUT --> CALL_EKK0091["callSC EKK0091C040CBSMsg Update"]
    CALL_EKK0091 --> NEW_SOD["Create JKKHakkoSODCC sodCC"]
    NEW_SOD --> BUILD_MAP["Build workMap funcCode 1 SOD structure"]
    BUILD_MAP --> BUILD_SOD_INFO["Build sod_map with SYSID and INFO_MALWARE_BLOCKING_DIV"]
    BUILD_SOD_INFO --> BUILD_SVC_INFO["Build svc_kei_info with svc_kei_no"]
    BUILD_SVC_INFO --> BUILD_TARGET["Build targetList with sod_map into workMap"]
    BUILD_TARGET --> SET_PARAM["param.setData wkFixedText workMap"]
    SET_PARAM --> CALL_HAKKOSOD["sodCC.hakkoSOD FTTH Auth SOD issuance"]
    CALL_HAKKOSOD --> CHECK_NONFLG{Malware non flag equals 1}
    CHECK_NONFLG -->|Yes| SET_NON["blockingNm set to No"]
    CHECK_NONFLG -->|No| SET_YES["blockingNm set to Yes"]
    SET_NON --> BUILD_PROGRESS["Build ekk1091D010In 2D array"]
    SET_YES --> BUILD_PROGRESS
    BUILD_PROGRESS --> CALL_PROGRESS["callSC EKK1091D010CBSMsg Register progress"]
    CALL_PROGRESS --> END_NODE(["Return Next"])
```

**CRITICAL — Constant Resolution:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|------------------|
| `NON_BLOCKING` | `"2"` | Post-revision blocking setting: No blocking (customer chooses NOT to enable malware blocking) |
| `BLOCKING` | `"1"` | Post-revision blocking setting: Blocking (customer enables malware blocking) |
| `REVISED_BLOCKING` | `"revised_blocking"` | CC parameter key for post-revision blocking configuration |
| `MALWARE_BLOCKING_NON_FLG_ON` | `"1"` | Malware blocking non-flag ON — indicates blocking is NOT applied |
| `UPDATE_IDO_DIV` | `"00033"` | Transfer division code for update operations |
| `UPDATE_PRG_STATE` | `"1001"` | Progress status code — active progress |
| `JPCModelConstant.FUNC_CD_1` | `"1"` | Function code: Check and Register |
| `TEMPLATE_ID_EKK0091C040` | `"EKK0091C040"` | Template ID for malware blocking update service |
| `TEMPLATE_ID_EKK1091D010` | `"EKK1091D010"` | Template ID for progress registration service |
| `JKKHakkoSODConstCC.INFO_MALWARE_BLOCKING_DIV` | `"1"` | SOD information division: Malware blocking |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle for the current transaction context. Used to establish database connections for all SC calls within this method. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying screen input data and CC messages. Provides `getData(fixedText)` to retrieve the malware blocking configuration map, and `setData(wkFixedText, workMap)` to pass SOD issuance parameters downstream. |
| 3 | `fixedText` | `String` | Parameter acquisition string — a prefix key used to retrieve structured data from `param`. Used as `param.getData(fixedText)` and `param.setData(fixedText + "01", workMap)`. |
| 4 | `ekk0081a010` | `CAANMsg` | EKK0081A010 message object — carries the main application detail data for the service contract being modified, including SYSID, service contract number, order number, review result codes, payment continuation flag, trial period dates, and other service-specific fields. Extracted to populate the EKK0091C040 update input. |
| 5 | `ekk0091a010` | `CAANMsg` | EKK0091A010 message object — carries supplementary data such as fixed IP address continuation, PC pack status, and the malware blocking non-flag. Used to determine the blocking display name for progress registration. |

**External State / Instance Fields:**
- `TEMPLATE_ID_EKK0091C040` — Static template ID for the EKK0091C040 CBS message.
- `TEMPLATE_ID_EKK1091D010` — Static template ID for the EKK1091D010 CBS message.
- `UPDATE_IDO_DIV` — Static "00033" update transfer division.
- `UPDATE_PRG_STATE` — Static "1001" progress status code.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `JKKCmpMalwareBlockingApiCC.insertMskm` | — | — | Registers a new application (申請/MSKM) for malware blocking modification via EKK0011D020CBSMsg; delegates to callSC(EKK0011D020) |
| R | `JKKCmpMalwareBlockingApiCC.callSC` | EKK0011D020 | (Application detail entity) | Calls SC to insert the application record and returns MSKM_DTL_NO (application detail number) |
| R | `JKKCmpMalwareBlockingApiCC.callSC` | EKK0021C060 | — | Follow-up work request SC called from insertMskm for application detail confirmation |
| U | `JKKCmpMalwareBlockingApiCC.callSC` | EKK0091C040 | — | Update malware blocking info via service interface — persists the malware blocking non-flag change and propagates to the external system. Input includes 26 fields: template ID, function code, service contract number, application detail number, order number, start date, ID rapid report flag, review result codes, payment continuation flag, trial period dates, letter dispatch settings, change-origin EO service contract number, penalty code, transfer division, introduction code, work remark, auto investigation status, update datetime (before), fixed IP address, PC pack, and malware blocking non-flag. |
| C | `JKKHakkoSODCC.hakkoSOD` | — | SOD table | Issues FTTH authentication Service Order Data — creates a new SOD record for the malware blocking modification workflow with function code "1" (check and register) and SOD basic info marking this as a malware blocking operation (INFO_MALWARE_BLOCKING_DIV = "1") |
| C | `JKKCmpMalwareBlockingApiCC.callSC` | EKK1091D010 | Progress tracking table | Registers a progress entry for the malware blocking modification, including the application detail number, service contract number, transfer division, system timestamp, progress status "1001", and a progress remark indicating whether malware blocking is "Yes" or "No" |

**How each SC call is derived:**

| SC Code | Entity/DB Evidence | Method Source |
|---------|-------------------|---------------|
| `EKK0011D020` | `EKK0011D020CBSMsg`, `EKK0011D020CBSMsg1List` | `insertMskm` method (line ~569) — calls `callSC` with `EKK0011D020In` array containing MSKM_SBT_CD="00027" (application type code), MSKM_UK_DTM (application received timestamp), MSKM_YMD (application date), CONSMBSN_MSKM_STAT_SKBT_CD="04" |
| `EKK0021C060` | `EKK0021C060CBSMsg` | `insertMskm` method (line ~602) — follow-up work request with MSKM_DTL_NO from prior SC response |
| `EKK0091C040` | `EKK0091C040CBSMsg` | `updateMalwareBlockingInfo` method (line ~468) — update malware blocking info with 26 input fields |
| `EKK1091D010` | `EKK1091D010CBSMsg`, `EKK1091D010CBSMsg1List` | `updateMalwareBlockingInfo` method (line ~539) — progress registration with PRG_STAT="1001", PRG_TKJK_1=malware blocking change memo |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `malwareBlockingMain` | `malwareBlockingMain` → `updateMalwareBlockingInfo` | `callSC(EKK0091C040) [U]`, `hakkoSOD [C] SOD`, `callSC(EKK1091D010) [C] progress`, `callSC(EKK0011D020) [C]`, `callSC(EKK0021C060) [R]` |

**Terminal operations from this method:**
- `callSC(EKK0091C040)` — Update: Modifies malware blocking non-flag in service interface
- `hakkoSOD` — Create: Issues FTTH authentication SOD (Service Order Data)
- `callSC(EKK1091D010)` — Create: Registers progress tracking entry
- `callSC(EKK0011D020)` — Create: Registers application (MSKM) record
- `callSC(EKK0021C060)` — Read: Follow-up work request confirmation

## 6. Per-Branch Detail Blocks

### Block 1 — Method Entry (L437)

> Extract CC message map from request parameter and create service component invoker.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `ccMsg = (Map<String, Object>)param.getData(fixedText)` // Retrieve CC message map keyed by fixedText |
| 2 | SET | `scCall = new ServiceComponentRequestInvoker()` // Create SC invocation instance [-> passes class name to log] |

### Block 2 — Application Registration (L444)

> Insert a new application (申請/MSKM) record for malware blocking and obtain the application detail number.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mskmDtlNo = insertMskm(handle, param, fixedText, ekk0081a010.getString(EKK0081A010CBSMsg1List.SYSID))` // Registers application, returns MSKM_DTL_NO |

### Block 3 — IF (fallback logic) (L445)

> If the application registration returned null (failure), fall back to reading the existing application detail number from the input message.

| # | Type | Code |
|---|------|------|
| 1 | IF | `mskmDtlNo == null` [L445] |
| 2 | SET | `mskmDtlNo = ekk0081a010.getString(EKK0081A010CBSMsg1List.MSKM_DTL_NO)` // Fallback: reuse existing application detail number |

### Block 4 — Malware Blocking Flag Evaluation (L450)

> Determine the malware blocking non-flag based on the REVISED_BLOCKING configuration from the CC message map.

| # | Type | Code |
|---|------|------|
| 1 | SET | `malwareBlockingNashiF = null` // Initialize to null (blocking enabled, i.e., NOT "non-flag") |
| 2 | IF | `ccMsg.get(REVISED_BLOCKING) == NON_BLOCKING("2")` [L451] — When revised blocking is set to "2" (no blocking), the non-flag is turned ON |
| 3 | SET | `malwareBlockingNashiF = MALWARE_BLOCKING_NON_FLG_ON("1")` // Non-flag ON — blocking is NOT applied |

### Block 5 — Service Interface Update (L462–L496)

> Build a 26-field input array for the EKK0091C040 update service and call it. This is the primary update operation that propagates the malware blocking non-flag to the upstream service system.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0091C040In = new Object[26][]` // 2D array for SC input parameters |
| 2 | SET | `{EKK0091C040CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0091C040("EKK0091C040")}` // Template ID |
| 3 | SET | `{EKK0091C040CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1("1")}` // Check & Register |
| 4 | SET | `{EKK0091C040CBSMsg.SVC_KEI_NO, ekk0081a010.getString(EKK0081A010CBSMsg1List.SVC_KEI_NO)}` // Service contract number |
| 5 | SET | `{EKK0091C040CBSMsg.MSKM_DTL_NO, mskmDtlNo}` // Application detail number |
| 6 | SET | `{EKK0091C040CBSMsg.SEIRI_NO, ekk0081a010.getString(EKK0081A010CBSMsg1List.SEIRI_NO)}` // Order number |
| 7 | SET | `{EKK0091C040CBSMsg.MENKAIHAT_ANKEN_NO, ekk0081a010.getString(EKK0081A010CBSMsg1List.MENKAIHAT_ANKEN_NO)}` // Opening case number |
| 8 | SET | `{EKK0091C040CBSMsg.SVC_USE_STA_KIBO_YMD, ekk0081a010.getString(EKK0081A010CBSMsg1List.SVC_USE_STA_KIBO_YMD)}` // Service start desired date |
| 9 | SET | `{EKK0091C040CBSMsg.ID_SOKHOSHO_OUTPUT_YH, ekk0081a010.getString(EKK0081A010CBSMsg1List.ID_SOKHOSHO_OUTPUT_YH)}` // ID rapid report output flag |
| 10 | SET | `{EKK0091C040CBSMsg.SKEKKA_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.SKEKKA_CD)}` // Review result code |
| 11 | SET | `{EKK0091C040CBSMsg.SKEKKA_DTL_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.SKEKKA_DTL_CD)}` // Review result detail code |
| 12 | SET | `{EKK0091C040CBSMsg.SKEKKA_HOKI_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.SKEKKA_HOKI_CD)}` // Review result supplementary code |
| 13 | SET | `{EKK0091C040CBSMsg.SKEKKA_SEND_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.SKEKKA_SEND_CD)}` // Review result send code |
| 14 | SET | `{EKK0091C040CBSMsg.PAYWAY_KEIZOKU_FLG, ekk0081a010.getString(EKK0081A010CBSMsg1List.PAYWAY_KEIZOKU_FLG)}` // Payment continuation flag |
| 15 | SET | `{EKK0091C040CBSMsg.FTRIAL_KANYU_YMD, ekk0081a010.getString(EKK0081A010CBSMsg1List.FTRIAL_KANYU_YMD)}` // Trial period start date |
| 16 | SET | `{EKK0091C040CBSMsg.FTRIAL_PRD_ENDYMD, ekk0081a010.getString(EKK0081A010CBSMsg1List.FTRIAL_PRD_ENDYMD)}` // Trial period end date |
| 17 | SET | `{EKK0091C040CBSMsg.HONKANYU_YMD, ekk0081a010.getString(EKK0081A010CBSMsg1List.HONKANYU_YMD)}` // Actual enrollment date |
| 18 | SET | `{EKK0091C040CBSMsg.HONKANYU_IKO_KIGEN_YMD, ekk0081a010.getString(EKK0081A010CBSMsg1List.HONKANYU_IKO_KIGEN_YMD)}` // Actual enrollment transfer deadline date |
| 19 | SET | `{EKK0091C040CBSMsg.LETTER_HASSO_SHIWAKE_DIV, ekk0081a010.getString(EKK0081A010CBSMsg1List.LETTER_HASSO_SHIWAKE_DIV)}` // Letter dispatch split division |
| 20 | SET | `{EKK0091C040CBSMsg.THNX_LETTER_SHS_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.THNX_LETTER_SHS_CD)}` // Thank-you letter send code |
| 21 | SET | `{EKK0091C040CBSMsg.WEB_OP_ADD_FAIL_FLG, ekk0081a010.getString(EKK0081A010CBSMsg1List.WEB_OP_ADD_FAIL_FLG)}` // Web option addition failure flag |
| 22 | SET | `{EKK0091C040CBSMsg.CHMT_HJIN_EO_YKAE_SVKEI_NO, ekk0081a010.getString(EKK0081A010CBSMsg1List.CHMT_HJIN_EO_YKAE_SVKEI_NO)}` // Change-origin EO alternate service contract number |
| 23 | SET | `{EKK0091C040CBSMsg.PNLTY_HASSEI_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.PNLTY_HASSEI_CD)}` // Penalty occurrence code |
| 24 | SET | `{EKK0091C040CBSMsg.IDO_DIV, UPDATE_IDO_DIV("00033")}` // Transfer division |
| 25 | SET | `{EKK0091C040CBSMsg.INTR_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.INTR_CD)}` // Introduction code |
| 26 | SET | `{EKK0091C040CBSMsg.IDO_NG_STAT_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.IDO_NG_STAT_CD)}` // Transfer NG status code |
| 27 | SET | `{EKK0091C040CBSMsg.WORK_RRK_BIKO, ekk0081a010.getString(EKK0081A010CBSMsg1List.WORK_RRK_BIKO)}` // Work contact remarks |
| 28 | SET | `{EKK0091C040CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, ekk0081a010.getString(EKK0081A010CBSMsg1List.AUTO_SHOSA_TRAN_STAT_CD)}` // Auto investigation processing status code |
| 29 | SET | `{EKK0091C040CBSMsg.UPD_DTM_BF, ekk0081a010.getString(EKK0081A010CBSMsg1List.LAST_UPD_DTM)}` // Update timestamp (before update) |
| 30 | SET | `{EKK0091C040CBSMsg.KOTEI_IP_AD_HKTGI_UM, ekk0091a010.getString(EKK0091A010CBSMsg1List.KOTEI_IP_AD_HKTGI_UM)}` // Fixed IP address continuation |
| 31 | SET | `{EKK0091C040CBSMsg.PC_PACK_UM, ekk0091a010.getString(EKK0091A010CBSMsg1List.PC_PACK_UM)}` // PC pack presence |
| 32 | SET | `{EKK0091C040CBSMsg.MALWARE_BLOCKING_NON_FLG, malwareBlockingNashiF}` // Malware blocking non-flag (null or "1") |
| 33 | CALL | `ekk0091c040Msg = callSC(handle, scCall, param, fixedText, ekk0091C040In, new EKK0091C040CBSMsg().getContents())` // Execute service interface update |

### Block 6 — FTTH Authentication SOD Issuance (L499–L527)

> Build SOD parameters and issue an FTTH authentication Service Order Data (SOD) via `JKKHakkoSODCC.hakkoSOD`. This triggers the authentication order flow in the telecom fulfillment system.

| # | Type | Code |
|---|------|------|
| 1 | SET | `sodCC = new JKKHakkoSODCC()` // Create SOD issuance component |
| 2 | SET | `workMap = new HashMap<String, Object>()` |
| 3 | SET | `targetList = new ArrayList<Object>()` |
| 4 | SET | `sod_map = new HashMap<String, Object>()` |
| 5 | SET | `workMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1("1"))` // Function code: Check & Register |
| 6 | SET | `sod_kihon_info = new HashMap<String, Object>()` |
| 7 | SET | `sod_kihon_info.put("sysid", ekk0081a010.getString(EKK0081A010CBSMsg1List.SYSID))` // SYSID from input message |
| 8 | SET | `sod_kihon_info.put(JKKHakkoSODConstCC.INFO_MALWARE_BLOCKING_DIV("1"), "1")` // Information division: Malware blocking |
| 9 | SET | `svc_kei_info = new HashMap<String, Object>()` |
| 10 | SET | `svc_kei_info.put("svc_kei_no", ekk0081a010.getString(EKK0081A010CBSMsg1List.SVC_KEI_NO))` // Service contract number |
| 11 | SET | `sod_map.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sod_kihon_info)` // Nest basic info |
| 12 | SET | `sod_map.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svc_kei_info)` // Nest service contract info |
| 13 | SET | `targetList.add(sod_map)` // Add to target list |
| 14 | SET | `workMap.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, targetList)` // Nest target list in work map |
| 15 | SET | `wkFixedText = fixedText + "01"` // Derive parameter key for SOD data |
| 16 | EXEC | `param.setData(wkFixedText, workMap)` // Set SOD data into request parameter |
| 17 | CALL | `sodCC.hakkoSOD(handle, param, wkFixedText)` // Execute FTTH authentication SOD issuance |

### Block 7 — Progress Registration Name Decision (L530–L533)

> Determine whether the malware blocking status is "Yes" (blocking active) or "No" (not blocking) for the progress memo field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `blockingNm = "Yes"` // Default: malware blocking is active |
| 2 | IF | `MALWARE_BLOCKING_NON_FLG_ON("1") == ekk0091a010.getString(EKK0091A010CBSMsg1List.MALWARE_BLOCKING_NON_FLG)` [L532] |
| 3 | SET | `blockingNm = "No"` // Non-flag is ON — blocking is NOT active |

### Block 8 — Progress Entry Registration (L535–L555)

> Build a 10-field input array for the EKK1091D010 progress registration service and call it.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk1091D010In = new Object[10][]` // 2D array for SC input parameters |
| 2 | SET | `{EKK0091C040CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010("EKK1091D010")}` // Template ID |
| 3 | SET | `{EKK0091C040CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1("1")}` // Check & Register |
| 4 | SET | `{EKK1091D010CBSMsg.MSKM_DTL_NO, mskmDtlNo}` // Application detail number |
| 5 | SET | `{EKK1091D010CBSMsg.SVC_KEI_NO, ekk0081a010.getString(EKK0081A010CBSMsg1List.SVC_KEI_NO)}` // Service contract number |
| 6 | SET | `{EKK1091D010CBSMsg.IDO_DIV, UPDATE_IDO_DIV("00033")}` // Transfer division |
| 7 | SET | `{EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp()}` // Transfer timestamp |
| 8 | SET | `{EKK1091D010CBSMsg.PRG_STAT, UPDATE_PRG_STATE("1001")}` // Progress status: active |
| 9 | SET | `{EKK1091D010CBSMsg.PRG_MEMO, ""}` // Progress memo: empty |
| 10 | SET | `{EKK1091D010CBSMsg.PRG_TKJK_1, "Malware blocking change" + blockingNm}` // Progress remark with blocking status |
| 11 | SET | `{EKK1091D010CBSMsg.PRG_TKJK_2, ""}` // Progress remark 2: empty |
| 12 | CALL | `ekk1091d010Msg = callSC(handle, scCall, param, fixedText, ekk1091D010In, new EKK1091D010CBSMsg().getContents())` // Execute progress registration |

### Block 9 — Method End (L556)

> No post-registration checks are performed. Method returns void to caller.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `// void — method completes silently after progress registration` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| Malware Blocking | Business process | Network-level restriction that blocks communication with known malicious servers/addresses for a customer's line |
| Malware Blocking Non-Flag (マルウェアブロッキング無フラグ) | Field | Indicator that whether malware blocking is NOT applied: "1" = non-flag ON (blocking disabled), null/"0" = non-flag OFF (blocking enabled) |
| MSKM (申請) | Acronym | Application record — the formal registration entry for a service modification request |
| MSKM_DTL_NO | Field | Application detail number — unique identifier for an application record (申請明細番号) |
| MSKM_SBT_CD | Field | Application type code — classifies the kind of application (e.g., "00027" for malware blocking) |
| SOD | Acronym | Service Order Data — a telecom order fulfillment entity used in Fujitsu's Futurity platform |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| FTTH Auth SOD | Business term | FTTH Authentication Service Order Data — a specific SOD type for FTTH line authentication/activation |
| JKKHakkoSODCC | Component | SOD issuance common component — handles creation and dispatch of Service Order Data |
| EKK0081A010 | Service | Application detail inquiry service — retrieves service contract modification details |
| EKK0091C040 | Service | Malware blocking update service — updates malware blocking status and propagates to external systems |
| EKK1091D010 | Service | Progress registration service — records progress entries for audit trail |
| EKK0011D020 | Service | Application registration service — creates a new application (MSKM) record |
| EKK0021C060 | Service | Follow-up work request service — triggers post-application confirmation work |
| SVC_KEI_NO | Field | Service contract number — internal identifier for a service contract line |
| SEIRI_NO | Field | Order number — number assigned to the service order |
| MENKAIHAT_ANKEN_NO | Field | Opening case number — case identifier for the line opening/disconnection case |
| SVC_USE_STA_KIBO_YMD | Field | Service start desired date — customer's desired service activation date (YYMMDD format) |
| SKEKKA_CD | Field | Review result code — code representing the outcome of a service review |
| SKEKKA_DTL_CD | Field | Review result detail code — finer-grained review outcome classification |
| SKEKKA_HOKI_CD | Field | Review result supplementary code — additional review outcome classification |
| SKEKKA_SEND_CD | Field | Review result send code — code for review result notification dispatch |
| PAYWAY_KEIZOKU_FLG | Field | Payment continuation flag — indicates whether payment method continues |
| FTRIAL_KANYU_YMD | Field | Trial period start date (YYMMDD format) |
| FTRIAL_PRD_ENDYMD | Field | Trial period end date (YYMMDD format) |
| HONKANYU_YMD | Field | Actual enrollment date (YYMMDD format) |
| HONKANYU_IKO_KIGEN_YMD | Field | Actual enrollment transfer deadline date |
| LETTER_HASSO_SHIWAKE_DIV | Field | Letter dispatch split division — classification of thank-you letter dispatch |
| THNX_LETTER_SHS_CD | Field | Thank-you letter send code — code for thank-you letter dispatch destination |
| WEB_OP_ADD_FAIL_FLG | Field | Web option addition failure flag |
| CHMT_HJIN_EO_YKAE_SVKEI_NO | Field | Change-origin EO alternate service contract number — original EO service contract number before modification |
| PNLTY_HASSEI_CD | Field | Penalty occurrence code — code indicating whether a penalty applies |
| IDO_DIV | Field | Transfer division — classification code for data transfer type ("00033" = update) |
| IDO_NG_STAT_CD | Field | Transfer NG status code — code for transfer failure conditions |
| WORK_RRK_BIKO | Field | Work contact remarks — free-text field for operational notes |
| AUTO_SHOSA_TRAN_STAT_CD | Field | Auto investigation processing status code |
| UPD_DTM_BF | Field | Update datetime before — timestamp before the update operation (YYMMDDHHmmss format) |
| KOTEI_IP_AD_HKTGI_UM | Field | Fixed IP address continuation — whether fixed IP address continues after modification |
| PC_PACK_UM | Field | PC pack presence — whether PC software pack is included |
| FUNC_CD_1 | Constant | Function code "1" — represents "Check and Register" operation type |
| SC (Service Component) | Technical | Service Component — the fundamental unit of service orchestration in the Futurity platform |
| CBS (CBSMsg) | Technical | Business Standard — a message-type service component for data exchange |
| JCCBPCommon.getSysDateTimeStamp | Utility | System utility to obtain current system date-time in timestamp format |
| JCCBPCommon.getOpeDate | Utility | System utility to obtain the current operation date |
| REVISED_BLOCKING | Constant | "revised_blocking" — CC parameter key for post-revision blocking configuration |
| NON_BLOCKING | Constant | "2" — post-revision blocking setting indicating no blocking |
| BLOCKING | Constant | "1" — post-revision blocking setting indicating blocking enabled |
| MALWARE_BLOCKING_NON_FLG_ON | Constant | "1" — malware blocking non-flag ON value |
| UPDATE_IDO_DIV | Constant | "00033" — transfer division code for update operations |
| UPDATE_PRG_STATE | Constant | "1001" — progress status code for active progress |
| TEMPLATE_ID_EKK0091C040 | Constant | "EKK0091C040" — template identifier for the malware blocking update service |
| TEMPLATE_ID_EKK1091D010 | Constant | "EKK1091D010" — template identifier for the progress registration service |
| TEMPLATE_ID_EKK0011D020 | Constant | "EKK0011D020" — template identifier for the application registration service |
| JKKHakkoSODConstCC.INFO_MALWARE_BLOCKING_DIV | Constant | "1" — SOD information division type code for malware blocking |
| JKKHakkoSODConstCC.SOD_KIHON_INFO | Constant | Key name for SOD basic information map |
| JKKHakkoSODConstCC.SVC_KEI_INFO | Constant | Key name for service contract information map |
| JKKHakkoSODConstCC.TRGT_DATA_LIST | Constant | Key name for the target data list in SOD parameters |
| CAANMsg | Type | Common Abstract ANy Message — a generic message container for CBS/SC data exchange |
| SessionHandle | Type | Database session handle — maintains transaction context and database connections |
| IRequestParameterReadWrite | Type | Request parameter interface — provides getData/setData for screen input parameter access |