# Business Logic — JFUMkmInfoAddFrontiaMapper.setFUSV016033CC() [246 LOC]

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

## 1. Role

### JFUMkmInfoAddFrontiaMapper.setFUSV016033CC()

This method serves as the **discount service code registration cross-cutting (CC) mapping** entry point for the Fujitsu Frontier (Frontia) broadband and multimedia subscription registration flow. Its primary business responsibility is to construct a structured list of discount service code objects — each encoding a specific discount, campaign, or promotional service to be attached to a customer subscription — and inject that list into the request parameter object for downstream processing by the discount auto-application screen (CCSV016033).

The method implements a **conditional dispatch (routing) pattern**, branching by two orthogonal dimensions: the **service type** (standard/home vs. mansion/compound building) and the **Eonet flag** (network/TV application presence). For non-mansion services with Eonet enabled, it builds instant-discount and long-term-discount code maps, selecting between two instant-discount service codes (`W00000021` for immediate net discount or `W00000011` for standard net discount) based on the `net_sokuwari` flag. For mansion services with Eonet, it reads campaign lists for network and TV channels respectively, extracting per-campaign discount service codes. A final loop processes the general campaign list for discount-type campaigns (`campaign_sbt_cd = "2"`, Discount Campaign), adding service contract numbers and line item detail numbers when the service code appears in the caller-provided `camp_chk_list_netsvc` filter array.

Each constructed discount map shares a common template of metadata fields: sysid, immediate-applied flag, diversion section code, max search count, registration opportunity code, empty pricing code, and empty pricing plan code. The method is a **shared utility mapper** called from both the pre-transaction CC logic (`JFUMkmInfoAddFrontiaPreTrnCC.execute()`) and the final screen processing logic (`FUW00116SFLogic.finMskm()`), making it a central data-preparation node in the subscription registration workflow.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setFUSV016033CC"])
    INIT1["Initialize parentMap, addWribSvcCdList"]
    COND_SBT{"SERVICE_SBT_MT"}
    BRANCH_HT["Non-Mansion branch"]
    BRANCH_MT["Mansion branch"]
    COND_EONET1{"workArea.getEonet"}
    COND_SIMPLE{"isSimpleNet AND isTypeN"}
    COND_NET_SOKUWARI{"net_sokuwari"}
    BUILD_INSTANT["Build instant discount map"]
    ADD_INSTANT["addWribSvcCdList.add(wribSvcMap)"]
    COND_CHOWARI{"net_chowari"}
    BUILD_LONGTERM["Build long-term discount map"]
    BUILD_LONGTERM_ADDKIZOKU["Add wrib_svc_kei_at_keizk_skcd"]
    ADD_LONGTERM["addWribSvcCdList.add(wribSvcMap)"]
    GET_NET_MANS{"netMansCampaignList != null"}
    LOOP_NET["Loop netMansCampaignList"]
    GET_NET_CD["Get net_mans_wrib_svc_cd"]
    CHECK_NET_CD{"net_mans_wrib_svc_cd != null"}
    BUILD_NET_MANS["Build net mansion campaign map"]
    ADD_NET_MANS["addWribSvcCdList.add(wribSvcMap)"]
    GET_TV_MANS{"tvMansCampaignList != null"}
    LOOP_TV["Loop tvMansCampaignList"]
    GET_TV_CD["Get tv_mans_wrib_svc_cd"]
    CHECK_TV_CD{"tv_mans_wrib_svc_cd != null"}
    BUILD_TV_MANS["Build TV mansion campaign map"]
    ADD_TV_MANS["addWribSvcCdList.add(wribSvcMap)"]
    LOOP_CAMP["Loop campaign_cd_list"]
    CHECK_CAM_SBT{"campaign_sbt_cd"}
    BUILD_WARI["Build discount campaign map"]
    CHECK_CAMP_SVC{"camp_chk_list_netsvc contains campaign_svc_cd"}
    SET_SVC_PARAMS["Set svc_kei_no, mskm_dtl_no, upd_dtm"]
    ADD_CAMP["addWribSvcCdList.add(wariMap)"]
    SET_PARENT["parentMap.put(addWribSvcCdlst)"]
    SET_DATA["param.setData(JFUADDWRIBSVCCCMAP, parentMap)"]
    RETURN(["Return param"])

    START --> INIT1 --> COND_SBT
    COND_SBT -- "SERVICE_SBT_MT" --> BRANCH_MT
    COND_SBT -- "NOT SERVICE_SBT_MT" --> BRANCH_HT
    BRANCH_HT --> COND_EONET1
    COND_EONET1 -- "true" --> COND_SIMPLE
    COND_SIMPLE -- "false" --> BUILD_INSTANT
    COND_SIMPLE -- "true" --> SKIP_INSTANT["Skip instant"]
    BUILD_INSTANT --> COND_NET_SOKUWARI
    COND_NET_SOKUWARI -- "net_sokuwari = 1" --> INST_W00021["wribSvcMap.addWribSvcCd = W00000021"]
    COND_NET_SOKUWARI -- "net_sokuwari != 1" --> INST_W00011["wribSvcMap.addWribSvcCd = W00000011"]
    INST_W00021 --> ADD_INSTANT
    INST_W00011 --> ADD_INSTANT
    ADD_INSTANT --> COND_CHOWARI
    COND_CHOWARI -- "net_chowari = 1" --> BUILD_LONGTERM
    COND_CHOWARI -- "net_chowari != 1" --> END_HT["End non-mansion"]
    BUILD_LONGTERM --> BUILD_LONGTERM_ADDKIZOKU
    BUILD_LONGTERM_ADDKIZOKU --> ADD_LONGTERM
    ADD_LONGTERM --> END_HT
    SKIP_INSTANT --> END_HT
    END_HT --> GET_NET_MANS
    GET_NET_MANS -- "true" --> LOOP_NET
    GET_NET_MANS -- "false" --> GET_TV_MANS
    LOOP_NET --> GET_NET_CD --> CHECK_NET_CD
    CHECK_NET_CD -- "NOT null" --> BUILD_NET_MANS
    CHECK_NET_CD -- "null" --> END_NET["End net loop"]
    BUILD_NET_MANS --> ADD_NET_MANS --> END_NET
    END_NET --> GET_TV_MANS
    GET_TV_MANS -- "true" --> LOOP_TV
    GET_TV_MANS -- "false" --> LOOP_CAMP
    LOOP_TV --> GET_TV_CD --> CHECK_TV_CD
    CHECK_TV_CD -- "NOT null" --> BUILD_TV_MANS
    CHECK_TV_CD -- "null" --> END_TV["End TV loop"]
    BUILD_TV_MANS --> ADD_TV_MANS --> END_TV
    END_TV --> LOOP_CAMP
    LOOP_CAMP --> CHECK_CAM_SBT
    CHECK_CAM_SBT -- "campaign_sbt_cd = 2" --> BUILD_WARI
    CHECK_CAM_SBT -- "campaign_sbt_cd != 2" --> END_CAMP["End camp loop"]
    BUILD_WARI --> CHECK_CAMP_SVC
    CHECK_CAMP_SVC -- "true" --> SET_SVC_PARAMS --> END_CAMP
    CHECK_CAMP_SVC -- "false" --> END_CAMP
    ADD_CAMP --> END_CAMP
    END_CAMP --> SET_PARENT --> SET_DATA --> RETURN
```

**Constant Resolution Reference:**

| Constant Expression | Resolved Value | Business Meaning |
|---------------------|---------------|------------------|
| `SERVICE_SBT_MT` | `"3"` | Service type: Mansion (compound building) |
| `net_sokuwari = "1"` | `"1"` | Immediate net discount flag: active |
| `W00000021` | `"W00000021"` | Instant net discount service code (immediate) |
| `W00000011` | `"W00000011"` | Instant net discount service code (standard) |
| `net_chowari = "1"` | `"1"` | Long-term net discount flag: active |
| `W00000041` | `"W00000041"` | Long-term discount service code |
| `NET_MANS_WRIB_SVC_CD` | `"net_mans_wrib_svc_cd"` | Map key: Network mansion discount service code |
| `TV_MANS_WRIB_SVC_CD` | `"tv_mans_wrib_svc_cd"` | Map key: TV mansion discount service code |
| `campaign_sbt_cd = "2"` | `"2"` | Campaign type: Discount campaign |
| `JFUStrConst.CD00403_1` | (framework constant) | Immediate application flag: applied |
| `JFUStrConst.CD00576_00001` | (framework constant) | Diversion section code: value |
| `JFUStrConst.MAX_SEARCH_NUM` | (framework constant) | Max search count |
| `JFUStrConst.CD00874_2` | (framework constant) | Registration opportunity code |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `workArea` | `JFUMkmInfoAddFrontiaWorkArea` | Work area object holding all business state for the Frontier broadband/multimedia subscription registration session. Contains service type, Eonet/TV flags, discount flags (`net_sokuwari`, `net_chowari`), auto-continuation code, service contract numbers, campaign lists, and system ID. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object used for data transfer between processing layers. This method populates it with a map containing the `addWribSvcCdlst` key, whose value is the list of discount service code maps built during execution. |
| 3 | `camp_chk_list_netsvc` | `String[]` | Array of service codes used to filter which discount campaigns from `campaign_cd_list` should have service contract parameters set. Only campaigns whose `campaign_svc_cd` is present in this array will have `svc_kei_no`, `mskm_dtl_no`, and `upd_dtm` populated in their discount map. |

**Read instance fields / external state:**
- No instance fields on `JFUMkmInfoAddFrontiaMapper` are read by this method.
- External state is accessed exclusively through the `workArea` parameter's getter methods.

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JFUMkmInfoAddFrontiaWorkArea.getService_sbt` | - | - | Reads service type code from work area to determine branch (mansion vs non-mansion) |
| R | `JFUMkmInfoAddFrontiaWorkArea.getEonet` | - | - | Reads network/TV application flag |
| R | `JFUMkmInfoAddFrontiaUtil.getPcrsCdNet` | - | - | Reads net pricing code for simple network type check |
| R | `JFUMkmInfoAddFrontiaUtil.isTypeN` | - | - | Reads whether the service is Type N (fiber service tier) |
| R | `JFUMkmInfoAddFrontiaWorkArea.getNet_sokuwari` | - | - | Reads immediate net discount flag |
| R | `JFUMkmInfoAddFrontiaWorkArea.getNet_chowari` | - | - | Reads long-term net discount flag |
| R | `JFUMkmInfoAddFrontiaWorkArea.getAuto_keizoku` | - | - | Reads discount service contract auto-continuation code |
| R | `JFUMkmInfoAddFrontiaWorkArea.getSysid` | - | - | Reads system ID |
| R | `JFUMkmInfoAddFrontiaWorkArea.getSvc_kei_no_net` | - | - | Reads service contract number for net subscriptions |
| R | `JFUMkmInfoAddFrontiaWorkArea.getMskm_dtl_no_net` | - | - | Reads application detail number for net subscriptions |
| R | `JFUMkmInfoAddFrontiaWorkArea.getW_net_mans_campaign_list` | - | - | Reads list of network mansion campaign data maps |
| R | `JFUMkmInfoAddFrontiaWorkArea.getW_tv_mans_campaign_list` | - | - | Reads list of TV mansion campaign data maps |
| R | `JFUMkmInfoAddFrontiaWorkArea.getCampaign_cd_list` | - | - | Reads general campaign code list |
| - | `JFUBPCommon.isNull` | - | - | Null-check utility on string values extracted from campaign maps |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | JFUMkmInfoAddFrontiaPreTrnCC | `execute()` -> `setFUSV016033CC(workArea, param, camp_chk_list_netsvc)` | `setData [-]`, `addWribSvcCdList [-]` |
| 2 | FUW00116SFLogic | `finMskm()` -> `setFUSV016033CC(workArea, param, camp_chk_list_netsvc)` | `setData [-]`, `addWribSvcCdList [-]` |

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `!SERVICE_SBT_MT.equals(workArea.getService_sbt())` (non-mansion branch) (L9012)

> This block handles non-mansion (standard/home) service types. When the service type is NOT a mansion service, it processes discount service codes for standard broadband subscriptions.

| # | Type | Code |
|---|------|------|
| 1 | SET | `parentMap = new HashMap<>()` |
| 2 | SET | `addWribSvcCdList = new ArrayList<>()` |
| 3 | IF | `workArea.getEonet()` (L9017) |

**Block 1.1** — [IF] `workArea.getEonet()` (non-mansion with Eonet) (L9018)

> When Eonet (network application) is present in non-mansion processing, build discount service code maps.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap = new HashMap<>()` |
| 2 | IF | `!isSimpleNet AND !isTypeN` (L9022) — skip simple plans and Type N |
| 3 | IF | `net_sokuwari = "1"` (L9026) — instant discount flag |

**Block 1.1.1** — [IF] `net_sokuwari = "1"` (immediate net discount) (L9026)

> Immediate net discount service code: `W00000021`

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap.put("addWribSvcCd", "W00000021")` — immediate net discount |
| 2 | SET | `wribSvcMap.put("sysid", "")` — empty sysid placeholder |
| 3 | SET | `wribSvcMap.put("aply_jun", JFUStrConst.CD00403_1)` — immediate application flag |
| 4 | SET | `wribSvcMap.put(IDO_DIV, JFUStrConst.CD00576_00001)` — diversion section |
| 5 | SET | `wribSvcMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM)` — max search count |
| 6 | SET | `wribSvcMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2)` — registration opportunity |
| 7 | SET | `wribSvcMap.put("pcrs_cd", "")` — empty pricing code |
| 8 | SET | `wribSvcMap.put("pplan_cd", "")` — empty pricing plan code |
| 9 | EXEC | `addWribSvcCdList.add(wribSvcMap)` |

**Block 1.1.2** — [ELSE] `net_sokuwari != "1"` (standard net discount) (L9028)

> Standard net discount service code: `W00000011`

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap.put("addWribSvcCd", "W00000011")` — standard net discount |
| 2 | SET | `wribSvcMap.put("sysid", "")` |
| 3 | SET | `wribSvcMap.put("aply_jun", JFUStrConst.CD00403_1)` |
| 4 | SET | `wribSvcMap.put(IDO_DIV, JFUStrConst.CD00576_00001)` |
| 5 | SET | `wribSvcMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM)` |
| 6 | SET | `wribSvcMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2)` |
| 7 | SET | `wribSvcMap.put("pcrs_cd", "")` |
| 8 | SET | `wribSvcMap.put("pplan_cd", "")` |
| 9 | EXEC | `addWribSvcCdList.add(wribSvcMap)` |

**Block 1.2** — [IF] `net_chowari = "1"` (long-term net discount) (L9061)

> Long-term discount service code: `W00000041`. Builds a separate map for long-term (split-payment) discount registration.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap = new HashMap<>()` |
| 2 | SET | `wribSvcMap.put("addWribSvcCd", "W00000041")` — long-term discount |
| 3 | SET | `wribSvcMap.put("sysid", "")` |
| 4 | SET | `wribSvcMap.put("aply_jun", JFUStrConst.CD00403_1)` |
| 5 | SET | `wribSvcMap.put(IDO_DIV, JFUStrConst.CD00576_00001)` |
| 6 | SET | `wribSvcMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM)` |
| 7 | SET | `wribSvcMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2)` — No388 Otsuka 2013/02/18 |
| 8 | SET | `wribSvcMap.put("pcrs_cd", "")` |
| 9 | SET | `wribSvcMap.put("pplan_cd", "")` |
| 10 | SET | `wribSvcMap.put("wrib_svc_kei_at_keizk_skcd", workArea.getAuto_keizoku())` — auto-continuation code |
| 11 | EXEC | `addWribSvcCdList.add(wribSvcMap)` |

**Block 2** — [ELSE] mansion service type branch (SERVICE_SBT_MT = "3") (L9073)

> This block handles mansion (compound building) services. It processes campaign-based discount service codes for network and TV channels separately.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEonet()` (network application present) (L9076) |

**Block 2.1** — [IF] `workArea.getEonet()` — network mansion campaigns (L9077)

> Retrieve network mansion campaign list and build discount maps for each campaign.

| # | Type | Code |
|---|------|------|
| 1 | SET | `netMansCampaignList = workArea.getW_net_mans_campaign_list()` |
| 2 | IF | `netMansCampaignList != null && size > 0` (L9081) |
| 3 | FOR | `int i = 0; i < netMansCampaignList.size(); i++` (L9082) |

**Block 2.1.1** — [FOR] network mansion campaign loop iteration (L9083)

> For each network mansion campaign, extract the discount service code and build a map if non-null.

| # | Type | Code |
|---|------|------|
| 1 | SET | `netMansCampaignMap = netMansCampaignList.get(i)` |
| 2 | SET | `netMansWribSvcCd = netMansCampaignMap.get(NET_MANS_WRIB_SVC_CD)` |
| 3 | IF | `!JFUBPCommon.isNull(netMansWribSvcCd)` (L9088) |

**Block 2.1.1.1** — [IF] non-null net mansion WribSvcCd (L9091)

> Build a discount service map with the campaign's service code and standard metadata.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap = new HashMap<>()` |
| 2 | SET | `wribSvcMap.put("addWribSvcCd", netMansWribSvcCd)` |
| 3 | SET | `wribSvcMap.put("sysid", workArea.getSysid())` |
| 4 | SET | `wribSvcMap.put("aply_jun", JFUStrConst.CD00403_1)` |
| 5 | SET | `wribSvcMap.put("ido_div", JFUStrConst.CD00576_00001)` |
| 6 | SET | `wribSvcMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM)` |
| 7 | SET | `wribSvcMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2)` |
| 8 | SET | `wribSvcMap.put("pcrs_cd", "")` |
| 9 | SET | `wribSvcMap.put("pplan_cd", "")` |
| 10 | EXEC | `addWribSvcCdList.add(wribSvcMap)` |

**Block 2.2** — [IF] `workArea.getEotv()` — TV mansion campaigns (L9116)

> Retrieve TV mansion campaign list and build discount maps for each campaign.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tvMansCampaignList = workArea.getW_tv_mans_campaign_list()` |
| 2 | IF | `tvMansCampaignList != null && size > 0` (L9121) |
| 3 | FOR | `int i = 0; i < tvMansCampaignList.size(); i++` (L9122) |

**Block 2.2.1** — [FOR] TV mansion campaign loop iteration (L9123)

> For each TV mansion campaign, extract the discount service code and build a map if non-null.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tvMansCampaignMap = tvMansCampaignList.get(i)` |
| 2 | SET | `tvMansWribSvcCd = tvMansCampaignMap.get(TV_MANS_WRIB_SVC_CD)` |
| 3 | IF | `!JFUBPCommon.isNull(tvMansWribSvcCd)` (L9128) |

**Block 2.2.1.1** — [IF] non-null TV mansion WribSvcCd (L9131)

> Build a discount service map with the TV campaign's service code and standard metadata.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wribSvcMap = new HashMap<>()` |
| 2 | SET | `wribSvcMap.put("addWribSvcCd", tvMansWribSvcCd)` |
| 3 | SET | `wribSvcMap.put("sysid", workArea.getSysid())` |
| 4 | SET | `wribSvcMap.put("aply_jun", JFUStrConst.CD00403_1)` |
| 5 | SET | `wribSvcMap.put("ido_div", JFUStrConst.CD00576_00001)` |
| 6 | SET | `wribSvcMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM)` |
| 7 | SET | `wribSvcMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2)` |
| 8 | SET | `wribSvcMap.put("pcrs_cd", "")` |
| 9 | SET | `wribSvcMap.put("pplan_cd", "")` |
| 10 | EXEC | `addWribSvcCdList.add(wribSvcMap)` |

**Block 3** — [FOR] campaign_cd_list general loop (L9174)

> Iterates through all campaign entries and processes discount-type campaigns (campaign_sbt_cd = "2", Discount Campaign).

| # | Type | Code |
|---|------|------|
| 1 | FOR | `for (Map<String, Object> tmpMap : workArea.getCampaign_cd_list())` |
| 2 | SET | `campaign_shori_kbn = tmpMap.get(CAMPAIGN_SHORI_KBN)` |
| 3 | SET | `campaign_sbt_cd = tmpMap.get(CAMPAIGN_SBT_CD)` |
| 4 | SET | `campaign_svc_cd = tmpMap.get(CAMPAIGN_SVC_CD)` |
| 5 | IF | `campaign_sbt_cd = "2"` (Discount Campaign) (L9179) |

**Block 3.1** — [IF] `campaign_sbt_cd = "2"` (discount campaign type) (L9180)

> Process a discount campaign entry. Build a discount map with common metadata, then conditionally add service contract parameters.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wariMap = new HashMap<>()` |
| 2 | SET | `wariMap.put(CHK_TERM, JFUStrConst.CD00002_0)` — check term: no check (Japanese: 適用期間チェックしない) |
| 3 | SET | `wariMap.put(CHK_PRC_GRP_CD, "")` — check pricing group code (commented-out: チェック用料金グループコード) |
| 4 | SET | `wariMap.put(CHK_PCRS_CD, "")` — check pricing code (commented-out: チェック用料金コースコード) |
| 5 | SET | `wariMap.put(CHK_PPLAN_CD, "")` — check pricing plan code (commented-out: チェック用料金プランコード) |
| 6 | IF | `camp_chk_list_netsvc.contains(campaign_svc_cd)` (L9201) — filter by net service list |

**Block 3.1.1** — [IF] campaign_svc_cd is in the net service filter list (L9202)

> When the campaign service code is in the caller-provided filter, set service contract parameters. Japanese comments: 契約番号 (contract number), 申請明細番号 (application detail number), 更新日時 (update date/time).

| # | Type | Code |
|---|------|------|
| 1 | SET | `wariMap.put(SVC_KEI_NO, workArea.getSvc_kei_no_net())` — service contract number |
| 2 | SET | `wariMap.put(MSKM_DTL_NO, workArea.getMskm_dtl_no_net())` — application detail number |
| 3 | SET | `wariMap.put(UPD_DTM, "")` — update date/time (TODO) |

**Block 3.2** — [continued] Block 3.1 tail — add remaining fields to wariMap (regardless of Block 3.1.1)

> These fields are set for ALL discount campaign entries.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wariMap.put(SYSID, workArea.getSysid())` — system ID |
| 2 | SET | `wariMap.put(ADDWRIBSVCCD, campaign_svc_cd)` — discount service code |
| 3 | SET | `wariMap.put(APLY_JUN, JFUStrConst.CD00403_1)` — immediate application flag |
| 4 | SET | `wariMap.put(IDO_DIV, JFUStrConst.CD00576_00001)` — diversion section |
| 5 | SET | `wariMap.put(MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM)` — max search count |
| 6 | SET | `wariMap.put(WRIB_ADD_OPTY_CD, JFUStrConst.CD00874_2)` — registration opportunity |
| 7 | EXEC | `addWribSvcCdList.add(wariMap)` |

**Block 4** — [Final assignment] (L9230)

> Set the completed discount service code list into the parent map and inject it into the request parameter object.

| # | Type | Code |
|---|------|------|
| 1 | SET | `parentMap.put(ADDWRIBSVCLIST, addWribSvcCdList)` |
| 2 | EXEC | `param.setData(JFUADDWRIBSVCCCMAP, parentMap)` |
| 3 | RETURN | `return param` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `service_sbt` | Field | Service subtype — classifies the subscription as Home (1), Mansion (3), or Type N variants (4, 5). Drives branching between mansion and non-mansion discount processing. |
| `SERVICE_SBT_MT` | Constant | Service subtype: "3" = Mansion (compound building) — multi-unit residential service. |
| `net_sokuwari` | Field | Net (network) immediate discount flag — when "1", selects the instant net discount service code `W00000021` instead of standard `W00000011`. |
| `net_chowari` | Field | Net long-term discount flag — when "1", adds a long-term discount code `W00000041` map for split-payment discount registration. |
| `Eonet` | Field | Eonet network application flag — indicates whether network (broadband) service is being applied in this session. |
| `Eotv` | Field | Eonet TV application flag — indicates whether TV service is being applied in this session. |
| `wrib_svc_kei_at_keizk_skcd` | Field | Discount service contract auto-continuation code — controls whether discount service contracts automatically renew. |
| `svc_kei_no_net` | Field | Service contract number for net (network) subscriptions — internal Fujitsu contract tracking ID. |
| `mskm_dtl_no_net` | Field | Application detail number for net subscriptions — specific line item identifier within a service application. |
| `addWribSvcCd` | Map key | Discount service code — the core identifier of a discount/promotional service (e.g., `W00000021`, `W00000041`). |
| `aply_jun` | Map key | Applied/unapplied flag (適用フラグ) — when set to `CD00403_1`, indicates the discount is applied. |
| `ido_div` | Map key | Diversion section (異動区分) — code indicating the type of service change/diversion. |
| `wrib_add_opty_cd` | Map key | Registration opportunity code — classifies how/why the discount is being registered. |
| `pcrs_cd` | Map key | Pricing code (料金コード) — pricing plan association code (empty in this mapping). |
| `pplan_cd` | Map key | Pricing plan code (料金プランコード) — specific pricing plan (empty in this mapping). |
| `camp_chk_list_netsvc` | Parameter | Campaign check list for network services — filter array that determines which campaign service codes should have service contract parameters populated. |
| `campaign_sbt_cd` | Field | Campaign subtype code — when "2", the campaign is a discount campaign (割引キャンペーン). |
| `CHK_TERM` | Map key | Term check flag — when set to `CD00002_0`, the discount term is not checked. |
| `CHK_PRC_GRP_CD` | Map key | Pricing group code for discount check (currently unused, set to empty). |
| `ADDWRIBSVCLIST` | Map key | Key in the parent map holding the list of discount service code maps. |
| `JFUADDWRIBSVCCCMAP` | Map key | Key in the IRequestParameterReadWrite object for discount service code registration CC data. |
| CC | Acronym | Cross-cutting — a middleware processing layer between the screen controller and the service/data layer in this architecture. |
| Mansion | Business term | Multi-unit residential building (分譲マンション) — compound building with shared infrastructure. In this system, mansion services have different campaign and discount rules than individual home services. |
| Eonet | Business term | Fujitsu's integrated network and TV service brand/platform — used as both a product name and a flag indicating network/TV service application presence. |
| Frontia | Business term | Fujitsu Frontier — the broadband/multimedia subscription management system for which this mapper is built. |
| W00000021 | Business code | Instant net discount service code — immediate network discount registration. |
| W00000011 | Business code | Standard net discount service code — standard (non-immediate) network discount registration. |
| W00000041 | Business code | Long-term discount service code — split-payment/long-term discount registration. |
| Type N | Business term | A specific fiber service tier offered by the provider (e.g., 100M, 1G, 10G speeds). Treated differently from standard home/mansion services. |
