# (DD37) Business Logic — JDKCommon08CC.setValueOdrInfSksiWk() [162 LOC]

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

## 1. Role

### JDKCommon08CC.setValueOdrInfSksiWk()

This method populates the **Order Information Creation Work Registration Data** (オーダ情報作成ワーク登録情報) by assembling a comprehensive HashMap (`inMap`) of order contract fields sourced from pre-executed Business Server (BS) lookups stored in the SOD (Service Order Data) work area. It is a **data routing/dispatch method** — it does not invoke any database calls itself; instead, it reads from pre-populated maps that were populated by prior BS mapper calls and writes the assembled result back into the SOD work map. The method handles **four service type categories**: (1) Standard Service Contract (always processed), (2) Equipment-Provided Service Contract (always processed), (3) Multi-function Router / Home Gateway Option Services (conditionally, only when the premises equipment type is TAKINORT or HGW), and (4) UQ WiMAX Inner Contract Numbers (conditionally, only when the premises equipment type code is "J0"). The design follows a **delegation + builder pattern** — it builds the `inMap` incrementally through sequential reads and `put` operations, with conditional branching for optional service layers. It is called from `insertOdrInfSksiWk` which subsequently passes the assembled map to `EKK1551D010BS` for order information creation work registration.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setValueOdrInfSksiWk(odrNaiyoCd, param)"])
    S1["Get SOD work map from getSodWorkMap"]
    S2["Get ekk1081D010Map from sodWorkMap.TEMPLATEID"]
    S3["Create new inMap HashMap"]
    S4["Put ODR_HAKKO_JOKEN_NO into inMap from ekk1081D010Map"]
    S5["Put ODR_NAIYO_CD into inMap from odrNaiyoCd parameter"]
    S6["Get ekk0081A010OutMap from sodWorkMap TEMPLATE_ID"]
    S7["Get ekk0081A010CbsMsg1List from ekk0081A010OutMap"]
    S8{"List size > 0?"}
    S9["Get first ekk0081A010CbsMsg from list"]
    S10["Put SVC_KEI_NO into inMap"]
    S11["Put SVKEI_GADTM into inMap"]
    S12["Get ekk0341A010_02OutMap from sodWorkMap.TEMPLATEID"]
    S13["Get ekk0341A010CbsMsg1List from ekk0341A010OutMap"]
    S14["Get first ekk0341A010CbsMsg from list"]
    S15["Put KKTK_SVC_KEI_NO into inMap"]
    S16["Put KKTSVKEI_GADTM into inMap"]
    S17["Get ezm0411A010OutMap from sodWorkMap.TEMPLATEID"]
    S18["Get ezm0411A010CbsMsg1List from ezm0411A010OutMap"]
    S19["Get first ezm0411A010CbsMsg from list"]
    S20["Get tkniKikiSbtCd from ezm0411A010CbsMsg"]
    S21{"tkniKikiSbtCd is TAKINORT or HGW?"}
    S22["Get ekk2811B010OutMap from sodWorkMap.TEMPLATEID"]
    S23["Get ekk2811B010CbsMsg1List from ekk2811B010OutMap"]
    S24["Create iterator for ekk2811B010CbsMsg1List"]
    S25{"Iterator has more?"}
    S26["Get next ekk2811B010CbsMsg"]
    S27["Get kkopSvcCd from ekk2811B010CbsMsg"]
    S28{"kkopSvcCd == KKOP_YUSEN G01?"}
    S29["Put KKOP_SVC_KEI_NO_1 into inMap"]
    S30["Put KKOSVKEI_GADTM_1 into inMap"]
    S31{"kkopSvcCd == KKOP_MUSEN G02?"}
    S32["Put KKOP_SVC_KEI_NO_2 into inMap"]
    S33["Put KKOSVKEI_GADTM_2 into inMap"]
    S34{"tkniKikiSbtCd == J0 UQ?"}
    S35["Get ekk0161B004Map from sodWorkMap.TEMPLATEID"]
    S36["Get ekk0161B004CbsMsg1List from ekk0161B004Map"]
    S37{"List size > 0?"}
    S38["Create iterator for ekk0161B004CbsMsg1List"]
    S39{"Iterator has more?"}
    S40["Get next ekk0161B004CbsMsg"]
    S41["Get pcrsCd from ekk0161B004CbsMsg"]
    S42{"pcrsCd == WIMAX A46?"}
    S43["Put SVC_KEI_UCWK_NO into inMap"]
    S44["Put SVKEIUW_GADTM into inMap"]
    S45["Break from loop"]
    S46["Put inMap into sodWorkMap.TEMPLATEID"]
    END(["Return void"])

    START --> S1 --> S2 --> S3 --> S4 --> S5 --> S6 --> S7 --> S8
    S8 -->|Yes| S9 --> S10 --> S11
    S8 -->|No| S12
    S9 --> S12
    S10 --> S12
    S11 --> S12
    S12 --> S13 --> S14 --> S15 --> S16 --> S17 --> S18 --> S19 --> S20 --> S21
    S21 -->|Yes TAKINORT or HGW| S22 --> S23 --> S24 --> S25
    S21 -->|No| S34
    S25 -->|Yes| S26 --> S27 --> S28
    S28 -->|Yes G01 YUSEN| S29 --> S30 --> S25
    S28 -->|No| S31
    S31 -->|Yes G02 MUSEN| S32 --> S33 --> S25
    S31 -->|No| S25
    S25 -->|No| S34
    S34 -->|Yes J0| S35 --> S36 --> S37
    S34 -->|No| S46
    S37 -->|Yes| S38 --> S39
    S37 -->|No| S46
    S39 -->|Yes| S40 --> S41 --> S42
    S42 -->|Yes WIMAX| S43 --> S44 --> S45
    S42 -->|No| S39
    S45 --> S39
    S39 -->|No| S46
    S46 --> END
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `odrNaiyoCd` | `String` | Order Content Code — classifies the type of order being processed (e.g., "215" for Tel (NTT) cancellation, "216" for Tel (NTT) deletion, "149"/"150" for NTT/FTTH registration, "309" for IP telephone, "423"/"424" for FTTH/MBM registration). This code is stored directly into the output map as `ODR_NAIYO_CD` and is used by downstream CBS to determine which service category the order belongs to. |
| 2 | `param` | `IRequestParameterReadWrite` | Request/Response parameter object that carries the SOD work map (`sodWorkMap`) via `getSodWorkMap()`. The method reads pre-populated BS lookup results from this parameter's work area and writes the final assembled `inMap` back into the SOD work map using `sodWorkMap.put(TemplateID, inMap)`. |

**Instance Fields / External State:**

| Field / External | Access Pattern | Description |
|-----------------|----------------|-------------|
| `getSodWorkMap(param)` | READ | Retrieves the SOD (Service Order Data) work map from the parameter object. This map contains pre-populated BS lookup results from prior mapper calls (EKK1081D010, EKK0081A010, EKK0341A010_02, EZM0411A010, EKK2811B010, EKK0161B004). |

## 4. CRUD Operations / Called Services

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

The method reads data exclusively from maps that were previously populated by BS (Business Server) mapper calls. It does not make any direct database calls. The data it consumes came from the following BS mappers (referenced by `TEMPLATEID`/`TEMPLATE_ID` keys in `sodWorkMap`):

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `DKSV0081_DKSV0081OP_EKK1081D010BSMapper` | EKK1081D010 | Order Issuance Conditions (オーダ発行条件) | Reads order issuance condition number (`ODR_HAKKO_JOKEN_NO`) from pre-populated work map. |
| R | `DKSV0081_DKSV0081OP_EKK0081A010BSMapper` | EKK0081A010 | Service Contract Agreement (サービス契約合意書) | Reads service contract number (`SVC_KEI_NO`) and generation/addition timestamp (`SVKEI_GADTM`) from service contract agreement record. |
| R | `DKSV0081_DKSV0081OP_EKK0341A010_02BSMapper` | EKK0341A010_02 | Equipment-Provided Service Contract (機器提供サービス契約) | Reads equipment-provided service contract number (`KKTK_SVC_KEI_NO`) and generation/addition timestamp (`KKTSVKEI_GADTM`). |
| R | `DKSV0081_DKSV0081OP_EZM0411A010BSMapper` | EZM0411A010 | Premises Equipment Model Agreement (宅内機器型式合意書) | Reads premises equipment type code (`TAKNKIKI_SBT_CD`) to determine branching logic (router vs non-router). |
| R | `DKSV0081_DKSV0081OP_EKK2811B010BSMapper` | EKK2811B010 | Equipment Option Service Contract List (機器オプションサービス契約一覧) | Reads equipment option service codes (`KKOP_SVC_CD`) to branch between Router Function (G01) and VA Function (G02). |
| R | `DKSV0081_DKSV0081OP_EKK0161B004BSMapper` | EKK0161B004 | Service Contract Inner Contract Number List (サービス契約内訳番号一覧) | When device type is UQ ("J0"), reads inner contract number (`SVC_KEI_UCWK_NO`) and timestamp for WiMAX-prefixed service codes. |
| W | `sodWorkMap.put` | N/A | SOD Work Area (SOD作業領域) | Writes the final assembled `inMap` back to the SOD work map under the `EKK1551D010BSMapper.TEMPLATEID` key for downstream CBS consumption. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CC: JDKCommon08CC | `insertOdrInfSksiWk` -> `setValueOdrInfSksiWk` | `sodWorkMap.put [W] SOD Work Area` |
| 2 | CC: JDKCommon48CC | `insertOdrInfSksiWk` -> `setValueOdrInfSksiWk` | `sodWorkMap.put [W] SOD Work Area` |
| 3 | CC: JDKCommon08CC (caller context) | `insertOdrHakkoJoken` calls `insertOdrInfSksiWk("215"/"216")` -> `setValueOdrInfSksiWk` | `EKK1551D010BS [C] Order Info Creation Work` |
| 4 | CC: JDKCommon48CC (caller context) | `insertOdrHakkoJoken` calls `insertOdrInfSksiWk("215"/"216"/"149"/"150"/"309"/"423"/"424")` -> `setValueOdrInfSksiWk` | `EKK1551D010BS [C] Order Info Creation Work` |
| 5 | Batch: JBSbatKKDelRun | `insertOdrInfSksiWk` (batch version) -> (different method signature) | N/A — different method overload |
| 6 | Batch: JBSbatKKRsvTokiHak | `insertOdrInfSksiWk` (batch version) -> (different method signature) | N/A — different method overload |

**Note:** The direct callers `JDKCommon08CC.insertOdrInfSksiWk` and `JDKCommon48CC.insertOdrInfSksiWk` are CBS-invoking methods that call `setValueOdrInfSksiWk` to assemble the work data before passing it to `EKK1551D010BS` (Order Information Creation Work Registration). These in turn are called from higher-level CC/BPM flow methods when processing Tel/NTT/FTTH order cancellation, deletion, or registration scenarios.

## 6. Per-Branch Detail Blocks

### Block 1 — SETUP: Retrieve SOD Work Map and Create inMap (L2230–L2243)

> Acquires the SOD work map from the request parameter and creates a new `inMap` to assemble order information.

| # | Type | Code |
|---|------|------|
| 1 | READ | `sodWorkMap = getSodWorkMap(param)` // Retrieve SOD work area from param [-> getSodWorkMap] |
| 2 | READ | `ekk1081D010Map = sodWorkMap.get(DKSV0081_DKSV0081OP_EKK1081D010BSMapper.TEMPLATEID)` // Get order issuance conditions data [-> TEMPLATEID key in sodWorkMap] |
| 3 | NEW | `inMap = new HashMap<String, String>()` // Create new HashMap for order info assembly |

### Block 2 — ORDER ISSUANCE CONDITIONS & ORDER CONTENT CODE (L2245–L2250)

> Populates the order issuance condition number and order content code into `inMap`.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `inMap.put(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO, ekk1081D010Map.get(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO))` // Extract order issuance condition number from prior BS result [-> EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO] |
| 2 | SET | `inMap.put(EKK1551D010CBSMsg.ODR_NAIYO_CD, odrNaiyoCd)` // Set order content code from method parameter [-> EKK1551D010CBSMsg.ODR_NAIYO_CD] |

### Block 3 — SERVICE CONTRACT AGREEMENT (L2252–L2271)

> Retrieves the service contract number and timestamp from the Service Contract Agreement BS lookup. Only sets fields if the record list is non-empty.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk0081A010OutMap = sodWorkMap.get(DKSV0081_DKSV0081OP_EKK0081A010BSMapper.TEMPLATE_ID)` // Get service contract agreement result [-> EKK0081A010BSMapper.TEMPLATE_ID] |
| 2 | READ | `ekk0081A010CbsMsg1List = ekk0081A010OutMap.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST)` // Extract detail list [-> EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST] |

### Block 3.1 — [IF] Service Contract Agreement Records Available (L2273–L2283)
> When the Service Contract Agreement list has records, extract the first record and set the service contract number and timestamp.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk0081A010CbsMsg = ekk0081A010CbsMsg1List.get(0)` // Get first agreement record |
| 2 | SET | `inMap.put(EKK1551D010CBSMsg.SVC_KEI_NO, ekk0081A010CbsMsg.get(EKK0081A010CBSMsg1List.SVC_KEI_NO))` // Set service contract number [-> EKK1551D010CBSMsg.SVC_KEI_NO, EKK0081A010CBSMsg1List.SVC_KEI_NO] |
| 3 | SET | `inMap.put(EKK1551D010CBSMsg.SVKEI_GADTM, ekk0081A010CbsMsg.get(EKK0081A010CBSMsg1List.GENE_ADD_DTM))` // Set service contract generation/addition timestamp [-> EKK1551D010CBSMsg.SVKEI_GADTM, EKK0081A010CBSMsg1List.GENE_ADD_DTM] |

### Block 4 — EQUIPMENT-PROVIDED SERVICE CONTRACT (L2299–L2314)

> Reads equipment-provided service contract number and timestamp from the BS lookup result. This is always processed (no conditional guard).

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk0341A010_02OutMap = sodWorkMap.get(DKSV0081_DKSV0081OP_EKK0341A010_02BSMapper.TEMPLATEID)` // Get equipment-provided service contract result [-> EKK0341A010_02BSMapper.TEMPLATEID] |
| 2 | READ | `ekk0341A010CbsMsg1List = ekk0341A010_02OutMap.get(EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST)` // Extract equipment contract detail list [-> EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST] |
| 3 | READ | `ekk0341A010CbsMsg = ekk0341A010CbsMsg1List.get(0)` // Get first equipment contract record |
| 4 | SET | `inMap.put(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO, ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO))` // Set equipment-provided service contract number [-> EKK1551D010CBSMsg.KKTK_SVC_KEI_NO, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO] |
| 5 | SET | `inMap.put(EKK1551D010CBSMsg.KKTSVKEI_GADTM, ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM))` // Set equipment-provided service contract generation/addition timestamp [-> EKK1551D010CBSMsg.KKTSVKEI_GADTM, EKK0341A010CBSMsg1List.GENE_ADD_DTM] |

### Block 5 — PREMISES EQUIPMENT TYPE CHECK (L2316–L2330)

> Retrieves the premises equipment type code to determine whether the device is a multi-function router, home gateway, or other type.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ezm0411A010OutMap = sodWorkMap.get(DKSV0081_DKSV0081OP_EZM0411A010BSMapper.TEMPLATEID)` // Get premises equipment model agreement result [-> EZM0411A010BSMapper.TEMPLATEID] |
| 2 | READ | `ezm0411A010CbsMsg1List = ezm0411A010OutMap.get(EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST)` // Extract detail list [-> EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST] |
| 3 | READ | `ezm0411A010CbsMsg = ezm0411A010CbsMsg1List.get(0)` // Get first premises equipment record |
| 4 | READ | `tkniKikiSbtCd = ezm0411A010CbsMsg.get(EZM0411A010CBSMsg1List.TAKNKIKI_SBT_CD)` // Get premises equipment type code [-> EZM0411A010CBSMsg1List.TAKNKIKI_SBT_CD] |

### Block 5.1 — [IF] Multi-Function Router or Home Gateway (L2332–L2358)
> Only when `tkniKikiSbtCd` is TAKINORT or HGW, process equipment option service contracts and branch by option service code.

**Condition:** `JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd) || JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd)` [-> ANK-4315-00-00 MOD]

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk2811B010OutMap = sodWorkMap.get(DKSV0081_DKSV0081OP_EKK2811B010BSMapper.TEMPLATEID)` // Get equipment option service contract list [-> EKK2811B010BSMapper.TEMPLATEID] |
| 2 | READ | `ekk2811B010CbsMsg1List = ekk2811B010OutMap.get(EKK2811B010CBSMsg.EKK2811B010CBSMSG1LIST)` // Extract option service detail list [-> EKK2811B010CBSMsg.EKK2811B010CBSMSG1LIST] |
| 3 | NEW | `ite = ekk2811B010CbsMsg1List.iterator()` // Create iterator for looping |

#### Block 5.1.1 — [WHILE] Iterate Over Equipment Option Service Contracts (L2342–L2358)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk2811B010CbsMsg = ite.next()` // Get next option service contract record |
| 2 | READ | `kkopSvcCd = ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_CD)` // Get equipment option service code [-> EKK2811B010CBSMsg1List.KKOP_SVC_CD] |

##### Block 5.1.1.1 — [IF] Router Function (G01)
> When `kkopSvcCd` equals the constant `CD00134_KKOP_YUSEN`, set the router function option service contract number and timestamp.

**Condition:** `JKKStrConst.CD00134_KKOP_YUSEN.equals(kkopSvcCd)` — Router Function (ルータ機能)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `inMap.put(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_1, ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_KEI_NO))` // Set router function option service number [-> EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_1] |
| 2 | SET | `inMap.put(EKK1551D010CBSMsg.KKOSVKEI_GADTM_1, ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.GENE_ADD_DTM))` // Set router function option service timestamp [-> EKK1551D010CBSMsg.KKOSVKEI_GADTM_1] |

##### Block 5.1.1.2 — [ELSE-IF] VA Function (G02)
> When `kkopSvcCd` equals the constant `CD00134_KKOP_MUSEN`, set the VA function option service contract number and timestamp.

**Condition:** `JKKStrConst.CD00134_KKOP_MUSEN.equals(kkopSvcCd)` — VA Function (VA機能)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `inMap.put(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_2, ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_KEI_NO))` // Set VA function option service number [-> EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_2] |
| 2 | SET | `inMap.put(EKK1551D010CBSMsg.KKOSVKEI_GADTM_2, ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.GENE_ADD_DTM))` // Set VA function option service timestamp [-> EKK1551D010CBSMsg.KKOSVKEI_GADTM_2] |

### Block 6 — [IF] UQ WiMAX Case (L2360–L2390)

> For UQ service cases (when premises equipment type code is "J0"), retrieves the service contract inner contract number by finding a WiMAX-prefixed service code.

**Condition:** `"J0".equals(tkniKikiSbtCd)` — UQ case

#### Block 6.1 — READ UQ Inner Contract Number List (L2366–L2372)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk0161B004Map = sodWorkMap.get(DKSV0081_DKSV0081OP_EKK0161B004BSMapper.TEMPLATEID)` // Get service contract inner contract number list [-> EKK0161B004BSMapper.TEMPLATEID] |
| 2 | READ | `ekk0161B004CbsMsg1List = ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST)` // Extract inner contract detail list [-> EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST] |

#### Block 6.2 — [IF] UQ Inner Contract List Has Records (L2374–L2388)

> Iterates through inner contract records to find one with a WiMAX-prefixed service code (A46), then sets the inner contract number and timestamp for that record.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | NEW | `ekk0161B004Ite = ekk0161B004CbsMsg1List.iterator()` // Create iterator for inner contracts |

##### Block 6.2.1 — [WHILE] Iterate Over Inner Contract Records (L2378–L2388)

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | READ | `ekk0161B004CbsMsg = ekk0161B004Ite.next()` // Get next inner contract record |
| 2 | READ | `pcrsCd = ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.PCRS_CD)` // Get price course code [-> EKK0161B004CBSMsg1List.PCRS_CD] |

###### Block 6.2.1.1 — [IF] WiMAX Service Code Match (A46)
> When the price course code matches the WiMAX constant (A46), set the inner contract number and timestamp, then break.

**Condition:** `JKKStrConst.CD00134_MOB_WIMAX.equals(pcrsCd)` — CD00134_MOB_WIMAX = "A46" (UQ WiMAX Authentication ID) [-> JKKStrConst.java:555]

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `inMap.put(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO))` // Set service contract inner contract number [-> EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO] |
| 2 | SET | `inMap.put(EKK1551D010CBSMsg.SVKEIUW_GADTM, ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.GENE_ADD_DTM))` // Set inner contract timestamp [-> EKK1551D010CBSMsg.SVKEIUW_GADTM, EKK0161B004CBSMsg1List.GENE_ADD_DTM] |
| 3 | EXEC | `break` // Exit loop after finding first WiMAX match |

### Block 7 — FINAL SET: Write inMap to SOD Work Map (L2390)

> Writes the assembled order information HashMap into the SOD work map for downstream CBS consumption.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `sodWorkMap.put(DKSV0081_DKSV0081OP_EKK1551D010BSMapper.TEMPLATEID, inMap)` // Store assembled order info in SOD work map [-> EKK1551D010BSMapper.TEMPLATEID] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `odrNaiyoCd` | Field | Order Content Code — classifies the type of order (e.g., FTTH registration, Tel cancellation, IP telephone, MBM registration) |
| SOD | Acronym | Service Order Data — in-memory work area carrying data between BS mapper calls and CBS invocations during order processing |
| `sodWorkMap` | Field | SOD Work Map — HashMap containing pre-populated BS lookup results, used as intermediate data carrier |
| BS | Acronym | Business Server — backend processing layer that executes business logic and data access |
| CBS | Acronym | Component-Based Service — service component that performs database CRUD operations |
| SC Code | Acronym | Service Component Code — e.g., `EKK1551D010SC`, follows pattern `EKK + 4 digits + D + 3 digits` |
| EKK1551D010BS | Entity | Order Information Creation Work Registration — CBS that creates work registration records for order information |
| EKK0081A010BS | Entity | Service Contract Agreement — BS that retrieves service contract agreement records |
| EKK0341A010_02BS | Entity | Equipment-Provided Service Contract — BS that retrieves equipment-provided service contract records |
| EZM0411A010BS | Entity | Premises Equipment Model Agreement — BS that retrieves premises equipment model information |
| EKK2811B010BS | Entity | Equipment Option Service Contract List — BS that retrieves equipment option service contracts (router function, VA function) |
| EKK0161B004BS | Entity | Service Contract Inner Contract Number List — BS that retrieves service contract breakdown/inner contract numbers |
| EKK1081D010BS | Entity | Order Issuance Conditions — BS that retrieves order issuance condition records |
| TKNI_KIKI_SBT_CD | Field | Premises Equipment Type Code — classifies the type of indoor premises equipment (router, HGW, UQ, etc.) |
| `tkniKikiSbtCd` | Field | Local variable holding the premises equipment type code extracted from EZM0411A010BS results |
| KKTK_SVC_KEI_NO | Field | Equipment-Provided Service Contract Number — the service contract number for equipment provided by the carrier |
| KKOP_SVC_CD | Field | Equipment Option Service Code — identifies the type of equipment option service (G01 = Router, G02 = VA) |
| CD00134_KKOP_YUSEN | Constant | Equipment Option Service Code "G01" — Router Function (ルータ機能) |
| CD00134_KKOP_MUSEN | Constant | Equipment Option Service Code "G02" — VA Function (VA機能) |
| CD00134_MOB_WIMAX | Constant | Price Course Code "A46" — UQ WiMAX Authentication ID |
| TAKINORT | Constant | Premises equipment type code for multi-function router |
| HGW | Constant | Premises equipment type code for Home Gateway |
| J0 | Literal | Equipment type code for UQ service devices |
| SVC_KEI_NO | Field | Service Contract Number — primary contract identifier |
| SVKEI_GADTM | Field | Service Contract Generation/Addition Timestamp — when the service contract was created |
| KKTK_SVC_KEI_NO | Field | Equipment-Provided Service Contract Number — carrier-provided equipment contract ID |
| KKOSVKEI_GADTM | Field | Equipment Option Service Contract Generation/Addition Timestamp |
| SVC_KEI_UCWK_NO | Field | Service Contract Inner Contract Number — sub-contract number for service breakdown |
| SVKEIUW_GADTM | Field | Service Contract Inner Contract Generation/Addition Timestamp |
| KKOP_SVC_KEI_NO_1 | Field | Option Service Contract Number 1 — for Router Function (G01) |
| KKOP_SVC_KEI_NO_2 | Field | Option Service Contract Number 2 — for VA Function (G02) |
| PCRS_CD | Field | Price Course Code — classifies billing plan/course (e.g., A46 = UQ WiMAX) |
| ODR_HAKKO_JOKEN_NO | Field | Order Issuance Condition Number — unique identifier for order issuance conditions |
| ODR_NAIYO_CD | Field | Order Content Code — classifies order type |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| UQ | Business term | UQ Communications — Japanese mobile/wireless telecommunications provider |
| WiMAX | Business term | Worldwide Interoperability for Microwave Access — wireless broadband standard used by UQ |
| VA | Business term | Value Added — value-added service feature in telecom equipment options |
| HGW | Acronym | Home Gateway — residential network gateway equipment |
| NT | Acronym | Nippon Telegraph — NTT (Japan's primary telecommunications provider) |
| Tel (NTT) | Business term | Telephone service provided through NTT infrastructure |
| MBM | Business term | Mitsubishi-Mitsui brand — product line for home equipment |
| EKK1551D010BSMapper | Entity | BS Mapper for EKK1551D010 — data transformation between param and CBS input/output |
| DKSV0081 | Module | DKSV0081 — service order processing module for contract work operations |
