# Business Logic — JKKSvkeiShosaClCC.editMapShosaClHNet() [190 LOC]

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

## 1. Role

### JKKSvkeiShosaClCC.editMapShosaClHNet()

This method performs the **mapping processing for cancellation of view/inquiry (照査取消)** when dealing with **EO Light Internet (eo光ネット)** service contracts. It is the core shosa (processing/survey) method dedicated to the EO Light Net service type — a fiber-optic broadband internet service offered in Japan.

The method reads pre-queried contract data from the `rsltShokai` result map (which contains the outcomes of consent inquiry and list inquiry operations), and for each of the five contract types — **Service Contract EO Light Net**, **Service Contract Details EO Light Net**, **Option Service Contract ISP**, **Sub-Option Service Contract ISP**, and **Machine Option Service Contract** — it iterates through the data, applies template-based message editing via the shosa mapper layer, and normalizes each record into a standardized result map.

The method implements a **routing/dispatch pattern**: it processes each contract type through a dedicated mapper method (`editInMsgEKK0091C070`, `editInMsgEKK0171C080`, etc.), delegates result normalization to `editInMsgCmn`, and collects results into typed arrays. It also captures auxiliary data (service detail work numbers, POP IDs, Web IDs) for downstream linkage processing via `putAxMRenkeiDataKbn`.

For the **Machine Option Service Contract** block (added in AMK-1578-00-00, 2013-12-03), the method applies an additional filter: only records whose `KKOP_SVC_KEI_STAT` passes the status check and whose service code matches the incoming `svcCd` parameter (EO Light Net = "01" with service code "G01", or telephone = "02" with "G02") are processed. This ensures service-type-specific routing.

The method is called by `runSvkeiShosaCl()` — the main service contract processing orchestrator — making it a critical component in the EO Light Net service cancellation workflow.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editMapShosaClHNet"])
    INIT["Initialize rsltShosaMap, work arrays"]
    EXTRACT["Extract arrays from rsltShokai by MAP_KEY"]
    COND0091{"workEKK0091A010Array != null"}
    LOOP0091["Loop each service contract EO net record"]
    PROC0091["Get templates via getWorkData"]
    LC0091["Loop each child template"]
    MAP0091["editInMsgEKK0091C070"]
    CMN0091["editInMsgCmn"]
    ADD0091["Add to wkMapArray"]
    PUT0091["rsltShosaMap.put EKK0091C070"]
    COND0171{"workEKK0171A010Array != null"}
    LOOP0171["Loop each service contract details EO net record"]
    PROC0171["Get templates via getWorkData"]
    LC0171["Loop each child template"]
    MAP0171["editInMsgEKK0171C080"]
    CMN0171["editInMsgCmn"]
    ADD0171["Add to wkMapArray"]
    STORE0171["svcKeiUcwkNo pos++ from SVC_KEI_UCWK_NO"]
    PUT0171["rsltShosaMap.put EKK0171C080"]
    COND0361{"workEKK0361A010Array != null"}
    LOOP0361["Loop each option service contract ISP record"]
    PROC0361["Get templates via getWorkData"]
    LC0361["Loop each child template"]
    MAP0361["editInMsgEKK0361C130"]
    CMN0361["editInMsgCmn"]
    ADD0361["Add to wkMapArray"]
    GET_OPT["getValuableData to get op_svc_cd"]
    COND_EMAIL{op_svc_cd equals B001 Email}
    STORE_EMAIL["opSvcKeiNoB001 posB001++"]
    COND_MYHOME{op_svc_cd equals B002 MyHomePage}
    STORE_MYHOME["opSvcKeiNoB002 posB002++"]
    PUT0361["rsltShosaMap.put EKK0361C130"]
    COND0411{"workEKK0411A010Array != null"}
    LOOP0411["Loop each sub-option service contract ISP record"]
    PROC0411["Get templates via getWorkData"]
    LC0411["Loop each child template"]
    MAP0411["editInMsgEKK0411C080"]
    CMN0411["editInMsgCmn"]
    ADD0411["Add to wkMapArray"]
    PUT0411["rsltShosaMap.put EKK0411C080"]
    COND2811{"workEKK2811A010Array != null"}
    LOOP2811["Loop each machine option service contract record"]
    PROC2811["Get templates via getWorkData"]
    LC2811["Loop each child template"]
    CHECK_STAT{"isChkSvcKeiStat KKSVC stat check"}
    SVC_NET_MATCH{"svcCd equals 01 NET and KKOP_SVC_CD equals G01"}
    SVC_TEL_MATCH{"svcCd equals 02 TEL and KKOP_SVC_CD equals G02"}
    MAP2811["editInMsgEKK2811C060"]
    CMN2811["editInMsgCmn"]
    ADD2811["Add to wkMapArray"]
    PUT2811["rsltShosaMap.put EKK2811C060"]
    LINK05["JKKBpCommon.putAxMRenkeiDataKbn RENKEI 05 Auth IT"]
    LINK03["JKKBpCommon.putAxMRenkeiDataKbn RENKEI 03 POP ID"]
    LINK04["JKKBpCommon.putAxMRenkeiDataKbn RENKEI 04 WEB ID"]
    RETURN["Return rsltShosaMap"]
    END_NODE(["End"])

    START --> INIT --> EXTRACT --> COND0091
    COND0091 --> LOOP0091 --> PROC0091 --> LC0091 --> MAP0091 --> CMN0091 --> ADD0091 --> LC0091
    ADD0091 --> PUT0091
    COND0091 --> PUT0091
    PUT0091 --> COND0171
    COND0171 --> LOOP0171 --> PROC0171 --> LC0171 --> MAP0171 --> CMN0171 --> ADD0171 --> STORE0171 --> LC0171
    ADD0171 --> PUT0171
    COND0171 --> PUT0171
    PUT0171 --> COND0361
    COND0361 --> LOOP0361 --> PROC0361 --> LC0361 --> MAP0361 --> CMN0361 --> ADD0361 --> GET_OPT --> COND_EMAIL
    COND_EMAIL --> STORE_EMAIL --> COND_MYHOME
    COND_EMAIL --> COND_MYHOME
    COND_MYHOME --> STORE_MYHOME --> PUT0361
    STORE_EMAIL --> PUT0361
    PUT0361 --> COND0411
    COND0411 --> LOOP0411 --> PROC0411 --> LC0411 --> MAP0411 --> CMN0411 --> ADD0411 --> LC0411
    ADD0411 --> PUT0411
    COND0411 --> PUT0411
    PUT0411 --> COND2811
    COND2811 --> LOOP2811 --> PROC2811 --> LC2811 --> CHECK_STAT
    CHECK_STAT --> SVC_NET_MATCH
    SVC_NET_MATCH --> SVC_TEL_MATCH
    SVC_NET_MATCH --> PUT2811
    SVC_TEL_MATCH --> MAP2811 --> CMN2811 --> ADD2811 --> PUT2811
    SVC_TEL_MATCH --> PUT2811
    ADD2811 --> PUT2811
    CHECK_STAT --> PUT2811
    PUT2811 --> LINK05 --> LINK03 --> LINK04 --> RETURN --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying the model group, control map, and all form-bound business data submitted from the screen. It is both read from and written to during processing — template lookups, input message mapping, and linkage data population all target this object. |
| 2 | `fixedText` | `String` | User-defined arbitrary string passed through to template processing. Typically used for traceability or as a fixed label within message templates. |
| 3 | `userDataIndex` | `int` | Index within `param` that identifies which business data segment to operate on. Allows the method to process multiple data sets in a single request. |
| 4 | `rsltShokai` | `HashMap<String, Object>` | The result data map from prior consent inquiry (一意照会) and list inquiry (一覧照会) operations. Contains typed arrays keyed by `MAP_KEY_*` constants — each key maps to an `ArrayList<HashMap>` of contract records to be cancelled. |
| 5 | `svcCd` | `String` | Service code that determines which service type is being processed. Value `"01"` indicates EO Light Net (インターネット/インターネット), and `"02"` indicates Telephone (電話). This code filters Machine Option Service Contract records (Block 5) to ensure only the correct service type is cancelled. |

**Instance fields / external state read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `shosaClMapper` | `JKKSvkeiShosaShosaClMapperCC` | The mapper component performing template-based input message editing for each contract type. |
| `currentSysid` | `String` | Current system ID used as context when populating linked data (AxM linkage data classification). |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `getWorkData(EKK0091A010CBSMsg.EKK0091A010CBSMSG1LIST, ...)` | EKK0091A010CBS | - | Reads service contract EO Light Net consent inquiry data from `rsltShokai` and extracts child message templates. |
| R | `getWorkData(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST, ...)` | EKK0171A010CBS | - | Reads service contract details EO Light Net consent inquiry data and extracts child templates. |
| R | `getWorkData(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST, ...)` | EKK0361A010CBS | - | Reads option service contract (ISP) consent inquiry data and extracts child templates. |
| R | `getWorkData(EKK0411A010CBSMsg.EKK0411A010CBSMSG1LIST, ...)` | EKK0411A010CBS | - | Reads sub-option service contract (ISP) consent inquiry data and extracts child templates. |
| R | `getWorkData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, ...)` | EKK2811A010CBS | - | Reads machine option service contract consent inquiry data and extracts child templates. |
| R | `getValuableData(rsltShokai, MAP_KEY_EKK0351B002, ...)` | EKK0351B002CBS | - | Retrieves option service detail number and option service code (B001/B002) from the EKK0351B002 result data for categorization. |
| U | `editInMsgEKK0091C070(param, fixedText, userDataIndex, childTemplate)` | EKK0091C070SC | - | Updates input message map for service contract EO Light Net cancellation — applies template-based field mapping. |
| U | `editInMsgEKK0171C080(param, fixedText, userDataIndex, childTemplate)` | EKK0171C080SC | - | Updates input message map for service contract details EO Light Net cancellation. |
| U | `editInMsgEKK0361C130(param, fixedText, userDataIndex, childTemplate)` | EKK0361C130SC | - | Updates input message map for option service contract ISP cancellation. |
| U | `editInMsgEKK0411C080(param, fixedText, userDataIndex, childTemplate)` | EKK0411C080SC | - | Updates input message map for sub-option service contract ISP cancellation. |
| U | `editInMsgEKK2811C060(param, fixedText, userDataIndex, childTemplate)` | EKK2811C060SC | - | Updates input message map for machine option service contract cancellation (filtered by service type). |
| U | `editInMsgCmn(param, result)` | - | - | Common input message editing — normalizes the result from each mapper into a standardized `HashMap<String, Object>` for the result array. |
| R | `isChkSvcKeiStat(kkopSvcKeiStat)` | - | - | Reads and validates the service detail work status (KKSVC) to determine if the machine option service contract record is eligible for cancellation. |
| U | `JKKBpCommon.putAxMRenkeiDataKbn(param, SJISHO_MAP, RENKEI_DATA_KBN_NINSHO_ID, TRN_KBN_DEL, svcKeiUcwkNo, currentSysid)` | - | - | Populates the AxM (Axcess Management?) linkage data classification area "05" (Authentication IT information) with service detail work numbers, marked for deletion (TRN_KBN_DEL = "03"). |
| U | `JKKBpCommon.putAxMRenkeiDataKbn(param, SJISHO_MAP, RENKEI_DATA_KBN_POPID, TRN_KBN_DEL, opSvcKeiNoB001, currentSysid)` | - | - | Populates linkage data area "03" (POP ID information) with option service codes for email (B001) records, marked for deletion. |
| U | `JKKBpCommon.putAxMRenkeiDataKbn(param, SJISHO_MAP, RENKEI_DATA_KBN_WEBID, TRN_KBN_DEL, opSvcKeiNoB002, currentSysid)` | - | - | Populates linkage data area "04" (WEB ID information) with option service codes for MyHomePage (B002) records, marked for deletion. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CBS: `runSvkeiShosaCl()` (JKKSvkeiShosaClCC) | `runSvkeiShosaCl()` → `editMapShosaClHNet(param, fixedText, userDataIndex, rsltShokai, svcCd)` | `editInMsgEKK0091C070 [U] -`, `editInMsgEKK0171C080 [U] -`, `editInMsgEKK0361C130 [U] -`, `editInMsgEKK0411C080 [U] -`, `editInMsgEKK2811C060 [U] -`, `putAxMRenkeiDataKbn [U] -`, `editInMsgCmn [U] -` |

**Terminal operations from this method:**

| Terminal Method | Type | Description |
|----------------|------|-------------|
| `editInMsgEKK0091C070` | U | Service contract EO Light Net message mapping (cancel) |
| `editInMsgEKK0171C080` | U | Service contract details EO Light Net message mapping (cancel) |
| `editInMsgEKK0361C130` | U | Option service contract ISP message mapping (cancel) |
| `editInMsgEKK0411C080` | U | Sub-option service contract ISP message mapping (cancel) |
| `editInMsgEKK2811C060` | U | Machine option service contract message mapping (cancel) |
| `editInMsgCmn` | U | Common input message normalization |
| `putAxMRenkeiDataKbn` (x3) | U | AxM linkage data classification (Auth IT, POP ID, WEB ID) |

## 6. Per-Branch Detail Blocks

### Block 1 — INIT (L4851)

Initialize local variables and work arrays for all five contract types.

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap = new HashMap()` |
| 2 | SET | `rslt = null` |
| 3 | SET | `workEKK0091A010Array = null` — Service Contract EO Light Net consent inquiry |
| 4 | SET | `workEKK0171A010Array = null` — Service Contract Details EO Light Net consent inquiry |
| 5 | SET | `workEKK0361A010Array = null` — Option Service Contract ISP consent inquiry |
| 6 | SET | `workEKK0411A010Array = null` — Sub-Option Service Contract ISP consent inquiry |
| 7 | SET | `workEKK2811A010Array = null` — Machine Option Service Contract consent inquiry [AMK-1578-00-00 2013-12-03] |
| 8 | SET | `wkCaanMsgList = null` |
| 9 | SET | `wkMapArray = null` |

### Block 2 — EXTRACT (L4863–L4870)

Extract arrays from `rsltShokai` using MAP_KEY constants.

| # | Type | Code |
|---|------|------|
| 1 | SET | `workEKK0091A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0091A010)` [MAP_KEY_EKK0091A010 = "EKK0091A010"] |
| 2 | SET | `workEKK0171A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0171A010)` [MAP_KEY_EKK0171A010 = "EKK0171A010"] |
| 3 | SET | `workEKK0361A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0361A010)` [MAP_KEY_EKK0361A010 = "EKK0361A010"] |
| 4 | SET | `workEKK0411A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0411A010)` [MAP_KEY_EKK0411A010 = "EKK0411A010"] |
| 5 | SET | `workEKK2811A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK2811A010)` [MAP_KEY_EKK2811A010 = "EKK2811A010"] [AMK-1578-00-00 2013-12-03] |

### Block 3 — AUXILIARY ARRAYS (L4872–L4878)

Prepare arrays for collecting service detail work numbers and option service codes.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiUcwkNo = new String[workEKK0171A010Array.size()]` — Collects service detail work numbers from contract details |
| 2 | SET | `pos = 0` |
| 3 | SET | `opSvcKeiNoB001 = new String[workEKK0171A010Array.size() * 5]` — Option service codes for Email (B001) |
| 4 | SET | `posB001 = 0` |
| 5 | SET | `opSvcKeiNoB002 = new String[workEKK0171A010Array.size() * 5]` — Option service codes for MyHomePage (B002) |
| 6 | SET | `posB002 = 0` |

### Block 4 — IF: Service Contract EO Light Net Cancellation (L4882–L4899) [IF-ELSE] (workEKK0091A010Array != null)

Process service contract EO Light Net consent cancellation. Iterates each record, extracts templates, and applies message mapping.

**Block 4 — Loop over workEKK0091A010Array (L4883)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = new ArrayList()` |
| 2 | SET | `i = 0;` loop counter |
| 3 | EXEC | `getWorkData(EKK0091A010CBSMsg.EKK0091A010CBSMSG1LIST, ...)` — Extracts child templates from the contract record |

**Block 4.1 — Nested Loop over child templates (L4887)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = wkTenplates[j]` |
| 2 | CALL | `shosaClMapper.editInMsgEKK0091C070(param, fixedText, userDataIndex, childTemplate)` — Edit input message map for EKK0091C070 (Service Contract EO Net cancel) |
| 3 | CALL | `editInMsgCmn(param, wkCaanMsgList.get(0))` — Normalize the result |
| 4 | EXEC | `wkMapArray.add(rslt)` — Collect mapped result |

**Block 4.2 — Post-loop (L4899)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap.put(MAP_KEY_EKK0091C070, wkMapArray)` [MAP_KEY_EKK0091C070 = "EKK0091C070"] |

### Block 5 — IF: Service Contract Details EO Light Net Cancellation (L4902–L4927) [IF-ELSE] (workEKK0171A010Array != null)

Process service contract details EO Light Net consent cancellation. Same pattern as Block 4, but additionally captures `SVC_KEI_UCWK_NO` into the `svcKeiUcwkNo` array for downstream linkage.

**Block 5 — Loop over workEKK0171A010Array (L4903)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = new ArrayList()` |
| 2 | EXEC | `getWorkData(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST, ...)` — Extract templates |

**Block 5.1 — Nested Loop over child templates (L4907)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = wkTenplates[j]` |
| 2 | CALL | `shosaClMapper.editInMsgEKK0171C080(param, fixedText, userDataIndex, childTemplate)` — Edit input message map for EKK0171C080 (Service Contract Details EO Net cancel) |
| 3 | CALL | `editInMsgCmn(param, wkCaanMsgList.get(0))` |
| 4 | EXEC | `wkMapArray.add(rslt)` |
| 5 | SET | `svcKeiUcwkNo[pos++] = wkTenplates[j].getString(EKK0171A010CBSMsg1List.SVC_KEI_UCWK_NO)` — Captures service detail work number for linkage [-> SVC_KEI_UCWK_NO field] |

**Block 5.2 — Post-loop (L4927)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap.put(MAP_KEY_EKK0171C080, wkMapArray)` [MAP_KEY_EKK0171C080 = "EKK0171C080"] |

### Block 6 — IF: Option Service Contract ISP Cancellation (L4930–L4960) [IF-ELSE] (workEKK0361A010Array != null)

Process option service contract (ISP) consent cancellation. After mapping, retrieves the option service code via `getValuableData` and categorizes it into Email (B001) or MyHomePage (B002) arrays.

**Block 6 — Loop over workEKK0361A010Array (L4931)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = new ArrayList()` |
| 2 | EXEC | `getWorkData(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST, ...)` — Extract templates |

**Block 6.1 — Nested Loop over child templates (L4935)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = wkTenplates[j]` |
| 2 | CALL | `shosaClMapper.editInMsgEKK0361C130(param, fixedText, userDataIndex, childTemplate)` — Edit input message map for EKK0361C130 (Option Service Contract ISP cancel) |
| 3 | CALL | `editInMsgCmn(param, wkCaanMsgList.get(0))` |
| 4 | EXEC | `wkMapArray.add(rslt)` |

**Block 6.2 — IF-ELSE: Option Service Code Classification (L4942–L4956)** [IF-ELSE]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `getValuableData(rsltShokai, MAP_KEY_EKK0351B002, EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, EKK0351B002CBSMsg1List.OP_SVC_KEI_NO, childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO), EKK0351B002CBSMsg1List.OP_SVC_CD)` — Resolves option service code (op_svc_cd) |
| 2 | SET | `op_svc_cd` = result of `getValuableData` |

**Block 6.2.1 — IF: Email option (L4946)** [CONST: JKKStrConst.OP_SVC_CD_EMAIL = "B001"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKeiNoB001[posB001++] = childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO)` — Collect Email option service number |

**Block 6.2.2 — ELSE-IF: MyHomePage option (L4950)** [CONST: JKKStrConst.OP_SVC_CD_MYHOMEPAGE = "B002"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKeiNoB002[posB002++] = childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO)` — Collect MyHomePage option service number |

**Block 6.3 — Post-loop (L4960)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap.put(MAP_KEY_EKK0361C130, wkMapArray)` [MAP_KEY_EKK0361C130 = "EKK0361C130"] |

### Block 7 — IF: Sub-Option Service Contract ISP Cancellation (L4964–L4981) [IF-ELSE] (workEKK0411A010Array != null)

Process sub-option service contract (ISP) consent cancellation. Same pattern as Block 4, no additional data collection.

**Block 7 — Loop over workEKK0411A010Array (L4965)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = new ArrayList()` |
| 2 | EXEC | `getWorkData(EKK0411A010CBSMsg.EKK0411A010CBSMSG1LIST, ...)` — Extract templates |

**Block 7.1 — Nested Loop over child templates (L4969)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = wkTenplates[j]` |
| 2 | CALL | `shosaClMapper.editInMsgEKK0411C080(param, fixedText, userDataIndex, childTemplate)` — Edit input message map for EKK0411C080 (Sub-Option Service Contract ISP cancel) |
| 3 | CALL | `editInMsgCmn(param, wkCaanMsgList.get(0))` |
| 4 | EXEC | `wkMapArray.add(rslt)` |

**Block 7.2 — Post-loop (L4981)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap.put(MAP_KEY_EKK0411C080, wkMapArray)` [MAP_KEY_EKK0411C080 = "EKK0411C080"] |

### Block 8 — IF: Machine Option Service Contract Cancellation (L4985–L5013) [IF-ELSE] (workEKK2811A010Array != null) [AMK-1578-00-00 2013-12-03]

Process machine option service contract consent cancellation with additional filtering by service detail status and service code.

**Block 8 — Loop over workEKK2811A010Array (L4986)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = new ArrayList()` |
| 2 | EXEC | `getWorkData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, ...)` — Extract templates |

**Block 8.1 — Nested Loop over child templates (L4990)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `childTemplate = wkTenplates[j]` |

**Block 8.2 — IF: Service Status Check (L4993)** [IF] (isChkSvcKeiStat check)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isChkSvcKeiStat(childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_KEI_STAT))` — Check if the service detail work status permits cancellation |

**Block 8.2.1 — IF: Service Code Match (L4994)** [IF-ELSE]

| # | Type | Code |
|---|------|------|
| 1 | SET | Condition: `(svcCd.equals(SVC_CD_NET) && childTemplate.getString(KKOP_SVC_CD).equals("G01")) || (svcCd.equals(SVC_CD_TEL) && childTemplate.getString(KKOP_SVC_CD).equals("G02"))` |
| 2 | SET | [CONST: SVC_CD_NET = "01"] [CONST: SVC_CD_TEL = "02"] — Service code: "01" = EO Light Net, "02" = Telephone |
| 3 | SET | KKOP_SVC_CD "G01" matches EO Light Net (net) |
| 4 | SET | KKOP_SVC_CD "G02" matches Telephone (tel) |

**Block 8.2.1.1 — IF: Service Code Matched (L4997)**

| # | Type | Code |
|---|------|------|
| 1 | CALL | `shosaClMapper.editInMsgEKK2811C060(param, fixedText, userDataIndex, childTemplate)` — Edit input message map for EKK2811C060 (Machine Option Service Contract cancel) |
| 2 | CALL | `editInMsgCmn(param, wkCaanMsgList.get(0))` |
| 3 | EXEC | `wkMapArray.add(rslt)` |

**Block 8.3 — Post-loop (L5013)**

| # | Type | Code |
|---|------|------|
| 1 | SET | `rsltShosaMap.put(MAP_KEY_EKK2811C060, wkMapArray)` [MAP_KEY_EKK2811C060 = "EKK2811C060"] |

### Block 9 — LINKAGE DATA POPULATION (L5016–L5033)

Populate AxM linkage data classification areas with cancellation markers.

**Block 9.1 — AxM Linkage: Auth IT (L5016)** [RENKEI_DATA_KBN_NINSHO_ID = "05" (Authentication IT Info)]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JKKBpCommon.putAxMRenkeiDataKbn(param, JKKSvkeiShosaClConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_NINSHO_ID, JKKAddSjishoConst.TRN_KBN_DEL, svcKeiUcwkNo, currentSysid)` |
| 2 | SET | [CONST: RENKEI_DATA_KBN_NINSHO_ID = "05" — Authentication IT info category] |
| 3 | SET | [CONST: TRN_KBN_DEL = "03" — Deletion transaction category] |
| 4 | SET | [CONST: SJISHO_MAP = "KKSV040810CC" — Sjisho (view/inquiry) map key] |
| 5 | SET | `svcKeiUcwkNo` — Service detail work numbers from Block 5 (collected from EKK0171A010 contract details) |

**Block 9.2 — AxM Linkage: POP ID (L5024)** [RENKEI_DATA_KBN_POPID = "03" (POP ID Info)]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JKKBpCommon.putAxMRenkeiDataKbn(param, JKKSvkeiShosaClConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_POPID, JKKAddSjishoConst.TRN_KBN_DEL, opSvcKeiNoB001, currentSysid)` |
| 2 | SET | [CONST: RENKEI_DATA_KBN_POPID = "03" — POP ID info category] |
| 3 | SET | `opSvcKeiNoB001` — Option service codes for Email (B001) from Block 6 |

**Block 9.3 — AxM Linkage: WEB ID (L5032)** [RENKEI_DATA_KBN_WEBID = "04" (WEB ID Info)]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JKKBpCommon.putAxMRenkeiDataKbn(param, JKKSvkeiShosaClConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_WEBID, JKKAddSjishoConst.TRN_KBN_DEL, opSvcKeiNoB002, currentSysid)` |
| 2 | SET | [CONST: RENKEI_DATA_KBN_WEBID = "04" — WEB ID info category] |
| 3 | SET | `opSvcKeiNoB002` — Option service codes for MyHomePage (B002) from Block 6 |

### Block 10 — RETURN (L5036)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `rsltShosaMap` — The complete result map containing all five cancellation mapping results, each keyed by its `MAP_KEY_EKKxxxxCxxxx` identifier |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svcKeiUcwkNo` | Field | Service detail work number — internal tracking ID for service contract line items during processing |
| `odr_naiyo_cd` | Field | Order content code — classifies the type of service order (registration, change, cancellation) |
| `KKOP_SVC_KEI_STAT` | Field | Machine option service detail work status — indicates whether the machine option service contract is active, cancelled, or in progress |
| `KKOP_SVC_CD` | Field | Machine option service code — identifies the specific service type within a machine option contract (e.g., "G01" for EO Light Net, "G02" for Telephone) |
| `OP_SVC_KEI_NO` | Field | Option service detail number — identifies a specific option service within an option service contract |
| `OP_SVC_CD` | Field | Option service code — classifies the type of option service (e.g., B001 = Email, B002 = MyHomePage) |
| `SVC_KEI_UCWK_NO` | Field | Service detail work number — internal work number for a service contract line item |
| `SVC_KEI_NO` | Field | Service contract number — the primary identifier for a service contract |
| EO Light Net | Business term | "eo光ネット" — NTT's fiber-optic broadband internet service (FTTH — Fiber To The Home) |
| ISP | Business term | Internet Service Provider — the broadband internet access service component |
| EKK0091A010 | Entity/Code | Service Contract EO Light Net — the master service contract record for EO Light Net broadband |
| EKK0171A010 | Entity/Code | Service Contract Details EO Light Net — detailed line items within a service contract |
| EKK0361A010 | Entity/Code | Option Service Contract ISP — optional add-on services attached to the ISP broadband contract |
| EKK0411A010 | Entity/Code | Sub-Option Service Contract ISP — sub-level optional services under the option service contract |
| EKK2811A010 | Entity/Code | Machine Option Service Contract — optional services tied to physical equipment/hardware |
| EKK0351B002 | Entity/Code | Option Service Details — detailed configuration of option services including service codes and detail numbers |
| EKK0091C070 | SC Code | Service Component for editing service contract EO Light Net cancellation messages |
| EKK0171C080 | SC Code | Service Component for editing service contract details EO Light Net cancellation messages |
| EKK0361C130 | SC Code | Service Component for editing option service contract ISP cancellation messages |
| EKK0411C080 | SC Code | Service Component for editing sub-option service contract ISP cancellation messages |
| EKK2811C060 | SC Code | Service Component for editing machine option service contract cancellation messages |
| JKKStrConst.OP_SVC_CD_EMAIL | Constant | Option service code for Email service = "B001" — maps to option service codes B001 array |
| JKKStrConst.OP_SVC_CD_MYHOMEPAGE | Constant | Option service code for MyHomePage service = "B002" — maps to option service codes B002 array |
| SVC_CD_NET | Constant | Service code for Net (Internet/EO Light Net) = "01" |
| SVC_CD_TEL | Constant | Service code for Telephone = "02" |
| RENKEI_DATA_KBN_NINSHO_ID | Constant | AxM linkage data classification "05" — Authentication IT information category |
| RENKEI_DATA_KBN_POPID | Constant | AxM linkage data classification "03" — POP ID (Point of Presence) information category |
| RENKEI_DATA_KBN_WEBID | Constant | AxM linkage data classification "04" — WEB ID (Web identification) information category |
| TRN_KBN_DEL | Constant | Transaction category "03" — Deletion, indicating data should be removed/cancelled in linkage processing |
| SJISHO_MAP | Constant | Sjisho (view/inquiry) map key = "KKSV040810CC" — the identifier for the view/inquiry result map |
| MAP_KEY_EKK0091A010 | Constant | Map key for EKK0091A010 service contract data = "EKK0091A010" |
| MAP_KEY_EKK0171A010 | Constant | Map key for EKK0171A010 service contract details data = "EKK0171A010" |
| MAP_KEY_EKK0361A010 | Constant | Map key for EKK0361A010 option service contract data = "EKK0361A010" |
| MAP_KEY_EKK0411A010 | Constant | Map key for EKK0411A010 sub-option service contract data = "EKK0411A010" |
| MAP_KEY_EKK2811A010 | Constant | Map key for EKK2811A010 machine option service contract data = "EKK2811A010" |
| 照査取消 (Shosa Kekka) | Japanese term | Cancellation of view/inquiry — the business operation of cancelling previously confirmed contract data |
| 一意照会 (Ichi Shokai) | Japanese term | Unique inquiry — a database lookup that retrieves a single record by its unique key |
| 一覧照会 (Ichiran Shokai) | Japanese term | List inquiry — a database lookup that retrieves multiple records matching query criteria |
| マッピング処理 (Mapping Shori) | Japanese term | Mapping processing — the transformation of data between different structures/formats |
| AxM (Axcess Management) | Acronym | Fujitsu's application framework for managing linked business data across modules |
| CAANMsg | Class | Message template class — represents a structured message with typed fields used in template-based processing |
| IRequestParameterReadWrite | Interface | Parameter object interface — provides read/write access to form-bound business data in the request context |
