# Business Logic — JFUMkmInfoAddFrontiaPreTrnCC.execute() [583 LOC]

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

## 1. Role

### JFUMkmInfoAddFrontiaPreTrnCC.execute()

This method performs the **pre-processing for Frontier order registration** (申込情報登録(フロンティア)事前処理) — the central orchestrator in the K-Opticom eo customer backbone system that handles new service subscription orders submitted via the general Web portal (一般Webサービス申込機能). It is a shared Common Component (CC) class that extends `AbstractCommonComponent`, reused exclusively by the `FUSV0356Operation` BPM operation for the comprehensive one-shot registration screen.

The method implements a **gate-and-route design pattern**: first it validates the processing division code (`func_code`) to confirm this is a real submission (not a draft save), then it fetches the web order data from the EFU0381A010 service component, validates the order content against multiple check layers (unit parameter, code value, cross-parameter, date), and finally delegates to 50+ mapper methods that populate the request parameter with data for a cascade of downstream Service Component (SC) registrations.

Conditional branches handle: (1) **business type routing** — Individual (KOJIN) vs Corporate (HOJIN) customer registration, (2) **service type routing** — eo Hikari Net (eonet), eo Hikari Tel (eotel), eo Hikari TV (eotv), and Type N (non-standard NTT-exchange) variants, (3) **billing routing** — Credit card (payway="2") vs bank transfer, (4) **address resolution** — contractor address same as vs different from usage location, and number portability service location configurations for 1st and 2nd phone lines, (5) **campaign routing** — referral agreement and coupon code registration for existing customers.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute() Start"])
    STEP1["Get ccMsg from param
Get func_code"]
    COND1{"func_code equals FUNC_CODE_CONF"}
    ERR2["Add error 1002
Return param"]
    STEP2["checkNode(ccMsg)"]
    COND2{"checkNode returns true"}
    ERR6["Add error 1006
Return param"]
    STEP3["Get opeDate, opeDateTimeStamp
Create ServiceComponentRequestInvoker"]
    STEP4["Get mskmsho_no"]
    COND3{"mskmsho_no is null"}
    ERR1["Add error 1001
Return param"]
    STEP5["execEFU0381A010Merge"]
    STEP6["Extract mskmNaiyo, upd_dtm_bf, mskmStat"]
    COND4{"mskmStat equals 010"}
    ERR11["Add error 1101
Return param"]
    STEP7["jsonToMap"]
    STEP8["Validation checks:
checkUnitParam, checkCodeParam,
checkAllFuncCode, checkKnrnParam,
checkDate, checkCodeToMaster"]
    COND5{"All validations pass"}
    ERRVAL["Return param
Validation error"]
    STEP9["Fetch shelf_cd, smp_model_no,
smp_buy_uk_tntsha_nm, mesh_wifi_min_cnt"]
    COND9{"plc_mskm or mesh_wifi equals 1"}
    STEP10["execEKK2041B501
Get indoor device model"]
    COND11{"payway equals 2"}
    STEP12["callJCCCrecardNmChgeCC"]
    STEP13["Address processing:
splitAddressInfo, addressEdit"]
    COND13{"kshadd_cmf equals 1"}
    STEP14["Set contractor address
same as usage location"]
    STEP15["Set separate
contractor address"]
    COND15{"use_bmp_1 equals 1"}
    COND15A{"bmp_stc_place_ad_choice_1"}
    COND15B{"use_bmp_2 equals 1"}
    COND15C{"bmp_stc_place_ad_choice_2"}
    STEP16["setJFUCustCC
setECK0021D010/0031D010
setECK0201D010
setMskmshoDtlSibnCC
setMskmDmenXmlMap
setEKK0011D020
setJFUAddSeikyKozaCC
setEKK0491D010
setEKK0531B501
setJFUAuthCheckCCWork
setEKK0521D020
setEKK0521D010
setEKK1031D010"]
    COND16{"eonet true"}
    STEP17["setEKK0091D010
setEKK0171D010
setEKK0361D010"]
    COND17{"eotel true"}
    STEP18["setEKK0111D010 through
setEKK0451D01002"]
    COND18{"eotelTypeN true"}
    STEP19["setFUSV016008TypeNCC
setJKKNttorsNetTelInfOperateCC
setFUSV035689CC"]
    COND19{"eonet or eotel"}
    STEP20["setEKK0341D01005
setEKK0341D01001"]
    COND20{"eotv true"}
    STEP21["setEKK0101D010
setEKK0341D01006
setEKK0181D010
setEKK0341D01003"]
    STEP22["setEKK0341C330
setJKKWrisvcAutoAplyCC
setEKK0341D010Tkn
setEKK2811D010Net02
setEKK2811D010Tel02
setEKK2811B50302
setEKK0341B00202
setEKK0391D010
setEKK0091A010"]
    COND22{"not isTypeN"}
    STEP23["setEKK0191C012
setEKK0431D010
setEKK0251D010
setEKK0241D010
setEKK2961D010
setFUSV015233SC
setFUSV015233ReqChk
setFUSV015229CC
setFUSV015229ReqChk
setFUSV015230CC
setFUSV015230ReqChk
setFUSV015232CC
setEKK0341D010
setJFUVaKikiCancelCC
setFUSV016040SC
setJKKSecurityPackOperateCC
setTransferCC
setJFUBmpTelNoAddChkCC
setJKKChkDobanitenPsbAreaCC
setJFUMstTelNoUpdCC
setEZM0121D010
setEZM0111D010
setEKK0371D010_2"]
    STEP24["setEKK0381D010
setFUSV016034CC
setFUSV016033CC
setEKK1091D010
setJFUAddAgntCC
setEKK2201D010"]
    COND24{"compensation conditions"}
    STEP25["setJKKTmcpOperateCC"]
    COND25{"eonet and
red_introduce valid"}
    STEP26["setFUSV016044SC
setFUSV016043SC"]
    COND26{"eonet and
coupon_cd valid"}
    STEP27["setFUSV015216SC
setFUSV015218SC"]
    STEP28["setEFU0381C020"]
    RETURN(["Return param"])

    START --> STEP1 --> COND1
    COND1 -- "No" --> ERR2
    COND1 -- "Yes" --> STEP2
    STEP2 --> COND2
    COND2 -- "No" --> ERR6
    COND2 -- "Yes" --> STEP3 --> STEP4 --> COND3
    COND3 -- "Yes" --> ERR1
    COND3 -- "No" --> STEP5 --> STEP6 --> COND4
    COND4 -- "No" --> ERR11
    COND4 -- "Yes" --> STEP7 --> STEP8 --> COND5
    COND5 -- "No" --> ERRVAL
    COND5 -- "Yes" --> STEP9 --> COND9
    COND9 -- "Yes" --> STEP10
    COND9 -- "No" --> COND11
    STEP10 --> COND11
    COND11 -- "Yes" --> STEP12 --> STEP13
    COND11 -- "No" --> STEP13
    STEP13 --> COND13
    COND13 -- "Yes" --> STEP14 --> COND15
    COND13 -- "No" --> STEP15 --> COND15
    COND15 -- "Yes" --> COND15A --> COND15B
    COND15 -- "No" --> COND15B
    COND15A --> COND15B
    COND15B -- "Yes" --> COND15C --> STEP16
    COND15B -- "No" --> STEP16
    COND15C --> STEP16
    STEP16 --> COND16
    COND16 -- "Yes" --> STEP17 --> COND17
    COND16 -- "No" --> COND17
    COND17 -- "Yes" --> STEP18 --> COND18
    COND17 -- "No" --> COND18
    COND18 -- "Yes" --> STEP19 --> COND19
    COND18 -- "No" --> COND19
    COND19 -- "Yes" --> STEP20 --> COND20
    COND19 -- "No" --> COND20
    COND20 -- "Yes" --> STEP21 --> STEP22
    COND20 -- "No" --> STEP22
    STEP22 --> COND22
    COND22 -- "Yes" --> STEP23 --> STEP24
    COND22 -- "No" --> STEP24
    STEP24 --> COND24
    COND24 -- "Yes" --> STEP25 --> COND25
    COND24 -- "No" --> COND25
    COND25 -- "Yes" --> STEP26 --> COND26
    COND25 -- "No" --> COND26
    COND26 -- "Yes" --> STEP27 --> STEP28 --> RETURN
    COND26 -- "No" --> STEP28 --> RETURN
    STEP26 --> STEP27 --> RETURN
    STEP25 --> STEP26 --> RETURN
    STEP23 --> STEP24 --> RETURN
    STEP21 --> STEP22 --> RETURN
    STEP20 --> STEP21 --> RETURN
    STEP19 --> STEP20 --> RETURN
    STEP18 --> STEP19 --> RETURN
    STEP17 --> COND17 --> RETURN
```

**Critical constant resolutions in flow:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|-----------------|
| `FUNC_CODE_CONF` | `"3"` | Processing division — main submission (not temporary save) |
| `FUNC_CODE` | `"func_code"` | Key in ccMsg map |
| `RES_KEY_ERROR_CODE_1002` | `"1002"` | Attribute check error — invalid func_code |
| `RES_KEY_ERROR_CODE_1006` | `"1006"` | Registration content already set — duplicate registration |
| `RES_KEY_ERROR_CODE_1001` | `"1001"` | Required field error — missing order number |
| `RES_KEY_ERROR_CODE_1101` | `"1101"` | Order number does not exist |
| `RES_KEY_ERROR_CODE_3001` | `"3001"` | Model code does not exist |
| `KEI_SBT_KOJINCD` | `"1"` | Business type — individual customer |
| `KEI_SBT_HOJINCD` | `"2"` | Business type — corporate customer |
| `FUNC_CODE_INS` | `"1"` | Processing division — temporary save (new) |
| `FUNC_CODE_UPD` | `"2"` | Processing division — temporary save (update) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle providing transaction and connection context for SC calls |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the order data map (keyed by `fixedText`), error list, and inter-CC communication data. Modified in-place with mapped data for downstream CC/SC processing. |
| 3 | `fixedText` | `String` | User-defined string used as a map key to retrieve the order data from the request parameter. Typically identifies the CC target (e.g., "JFUMkmInfoAddFrontiaPreTrnCC"). |

**Instance fields / external state:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `workArea` | `JFUMkmInfoAddFrontiaWorkArea` | Local work area object storing all order data fields (address, service options, billing info, phone settings). Shared across the method for data accumulation. |
| `chkUtil` | `JFUMkmInfoAddFrontiaUtil` | Validation utility providing parameter checks, EFU0381A010 merge execution, and work area population. |
| `mapper` | `JFUMkmInfoAddFrontiaMapper` | Mapper object with 50+ `set*` methods that populate the request parameter for downstream CC/SC processing. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JCCBPCommon.getOpeDate` | JCCBPCommon | - | Gets current operation date |
| R | `JCCBPCommon.getOpeDateTimeStamp` | JCCBPCommon | - | Gets current operation date-time stamp |
| R | `chkUtil.execEFU0381A010Merge` | EFU0381A010 | - | Merged EFU0381A010 service call to fetch web order info (order status, order number) |
| R | `execEDK0451A010` | EDK0451A010 | - | Fetches shelf code (product catalog look-up) |
| R | `execEZM0321A010` | EZM0321A010 | - | Fetches SMP model number, buyer indicator, mesh Wi-Fi config, campaign check list |
| R | `execEKK2041B501` | EKK2041B501 | - | Looks up indoor device model code for PLC or Mesh Wi-Fi |
| - | `callJCCCrecardNmChgeCC` | JCCCrecardNmChgeCC | - | Credit card cardholder name conversion CC for payment method |
| - | `chkUtil.checkUnitParam` | JFUMkmInfoAddFrontiaUtil | - | Validates single-field parameter constraints |
| - | `chkUtil.checkCodeParam` | JFUMkmInfoAddFrontiaUtil | - | Validates code value constraints |
| - | `chkUtil.checkAllFuncCode` | JFUMkmInfoAddFrontiaUtil | - | Validates all processing division codes |
| - | `chkUtil.checkKnrnParam` | JFUMkmInfoAddFrontiaUtil | - | Validates related parameter consistency |
| - | `chkUtil.checkDate` | JFUMkmInfoAddFrontiaUtil | - | Validates date field constraints |
| - | `checkCodeToMaster` | - | - | Validates code values against master data |
| - | `JFUMkmInfoAddUtil.jsonToMap` | - | - | Converts JSON string to Map for order content |
| R | `JFUEohDnBknSearchBaseCC` | - | - | Property data search (for Mansion/Meson types) |
| - | `JFUSplitAddressInfoChomeCC.splitAddressInfo` | FUSV016006CC | - | Splits address info (mansion/room) |
| - | `JKKBpCommon.editAd` | - | - | Edits address data |
| - | `addressEdit` | FUSV015211/12/08/09CC | - | Processes address edit for various address types |
| - | `isUpdAbleCouponCd` | - | - | Checks if coupon code can be updated |
| - | `mapper.setJFUCustCC` | JFUCustCC | - | Customer registration mapper |
| - | `mapper.setECK0021D010` | ECK0021D010 | KK_T_CUSTOMER (Individual) | Individual customer registration |
| - | `mapper.setECK0031D010` | ECK0031D010 | KK_T_CUSTOMER (Corporate) | Corporate customer registration |
| - | `mapper.setECK0201D010` | EKK0201D010 | - | Customer additional info |
| - | `mapper.setJFUMskmshoDtlSibnCC` | JFUMskmshoDtlSibnCC | - | Order number allocation CC |
| - | `mapper.setMskmDmenXmlMap` | - | - | Order page XML map registration |
| - | `mapper.setEKK0011D020` | EKK0011D020 | KK_T_ORDER | Order content acceptance registration |
| - | `mapper.setJFUAddSeikyKozaCC` | JFUAddSeikyKozaCC | - | Billing account additional CC |
| - | `mapper.setEKK0491D010` | EKK0491D010 | - | Billing contract registration |
| - | `mapper.setEKK0531B501` | EKK0531B501 | - | Credit company list match |
| - | `mapper.setJFUAuthCheckCCWork` | JFUAuthCheckCCWork | - | Authorization check registration |
| - | `mapper.setEKK0521D020` | EKK0521D020 | KK_T_CREDIT_CARD | Post-review credit card registration |
| - | `mapper.setEKK0521D010` | EKK0521D010 | KK_T_CREDIT_CARD | Credit card registration |
| - | `mapper.setEKK1031D010` | EKK1031D010 | - | Account management info |
| - | `mapper.setEKK0091D010` | EKK0091D010 | KK_T_SERVICE_CONTRACT | eo Hikari Net service contract |
| - | `mapper.setEKK0171D010` | EKK0171D010 | KK_T_SERVICE_DETAIL | eo Hikari Net service detail |
| - | `mapper.setEKK0361D010` | EKK0361D010 | KK_T_ISP_SUBSCRIPTION | ISP subscription registration |
| - | `mapper.setEKK0111D010` | EKK0111D010 | KK_T_SERVICE_CONTRACT | eo Hikari Tel service contract |
| - | `mapper.setEKK0191D010` | EKK0191D010 | KK_T_SERVICE_DETAIL | eo Hikari Tel service detail |
| - | `mapper.setEKK2811B503` | EKK2811B503 | KK_T_EQUIPMENT_SERVICE | Equipment service contract list match (front) |
| - | `mapper.setEKK0341B002` | EKK0341B002 | KK_T_EQUIPMENT_SERVICE | Equipment service contract list |
| - | `mapper.setEKK0341D01002` | EKK0341D01002 | KK_T_EQUIPMENT_SERVICE | Equipment service registration (eo Hikari Tel) |
| - | `mapper.setEKK2811D010` | EKK2811D010 | KK_T_EQUIPMENT_SERVICE | Equipment operation service contract (eo Hikari Tel) |
| - | `mapper.setEKK2811D01002` | EKK2811D01002 | KK_T_EQUIPMENT_SERVICE | Equipment operation service contract (eo Hikari Net) |
| - | `mapper.setEZM0321A010` | EZM0321A010 | - | Business parameter management match |
| - | `mapper.setEKK0371D010_1` | EKK0371D010 | KK_T_OPTION_SERVICE | Option service contract (eo Hikari Tel) |
| - | `mapper.setEKK0451D01001` | EKK0451D010 | KK_T_DISCOUNT_SERVICE | Discount service contract (eo Hikari Tel package) |
| - | `mapper.setEKK0451D01002` | EKK0451D010 | KK_T_DISCOUNT_SERVICE | Discount service contract (course 2) |
| - | `mapper.setFUSV016008TypeNCC` | FUSV016008TypeNCC | - | Number portability address split (Type N) |
| - | `mapper.setJKKNttorsNetTelInfOperateCC` | - | - | NTT resale net/tel info operation CC |
| - | `mapper.setFUSV035689CC` | FUSV035689CC | - | Data transfer CC Type N update |
| - | `mapper.setEKK0341D01005` | EKK0341D01005 | KK_T_EQUIPMENT_SERVICE | Equipment service registration CC |
| - | `mapper.setEKK0341D01001` | EKK0341D01001 | KK_T_EQUIPMENT_SERVICE | Equipment service registration |
| - | `mapper.setEKK0101D010` | EKK0101D010 | KK_T_SERVICE_CONTRACT | eo Hikari TV service contract |
| - | `mapper.setEKK0341D01006` | EKK0341D01006 | KK_T_EQUIPMENT_SERVICE | VONU (eo Hikari TV) |
| - | `mapper.setEKK0181D010` | EKK0181D010 | KK_T_SERVICE_DETAIL | eo Hikari TV service detail |
| - | `mapper.setEKK0341D01003` | EKK0341D01003 | KK_T_EQUIPMENT_SERVICE | Equipment service (eo Hikari TV) |
| - | `mapper.setEKK0341C330` | EKK0341C330 | KK_T_EQUIPMENT_SERVICE | Equipment service contract channel |
| - | `mapper.setJKKWrisvcAutoAplyCC` | - | KK_T_DISCOUNT_SERVICE | Discount service auto-apply CC |
| - | `mapper.setEKK0341D010Tkn` | EKK0341D010 | KK_T_EQUIPMENT_SERVICE | Multi-function router registration |
| - | `mapper.setEKK2811D010Net02` | EKK2811D010 | KK_T_EQUIPMENT_SERVICE | Equipment operation service (eo Hikari Net) |
| - | `mapper.setEKK2811D010Tel02` | EKK2811D010 | KK_T_EQUIPMENT_SERVICE | Equipment operation service (eo Hikari Tel) |
| - | `mapper.setEKK2811B50302` | EKK2811B503 | KK_T_EQUIPMENT_SERVICE | Equipment service contract list match |
| - | `mapper.setEKK0341B00202` | EKK0341B002 | KK_T_EQUIPMENT_SERVICE | Equipment service contract list |
| - | `mapper.setEKK0391D010` | EKK0391D010 | - | Support service contract |
| - | `mapper.setEKK0091A010` | EKK0091A010 | KK_T_SERVICE_CONTRACT | Service contract match |
| - | `mapper.setEKK0191C012` | EKK0191C012 | KK_T_SERVICE_DETAIL | Service detail update (eo Hikari Tel) |
| - | `mapper.setEKK0431D010` | EKK0431D010 | KK_T_OPTION_SERVICE | Option service contract (Phone) |
| - | `mapper.setEKK0251D010` | EKK0251D010 | KK_T_USE_LOCATION | Usage location registration |
| - | `mapper.setEKK0241D010` | EKK0241D010 | KK_T_SERVICE_CONTRACT | Line-target service contract |
| - | `mapper.setEKK2961D010` | EKK2961D010 | - | Service contract group setting |
| - | `mapper.setFUSV015233SC` | FUSV015233SC | - | Construction fee discount contract |
| - | `mapper.setFUSV015233ReqChk` | FUSV015233SC | - | Construction fee discount execution judgment |
| - | `mapper.setFUSV015229CC` | FUSV015229CC | - | Star discount CC |
| - | `mapper.setFUSV015229ReqChk` | FUSV015229CC | - | Star discount execution judgment |
| - | `mapper.setFUSV015230CC` | FUSV015230CC | - | Submission-time non-contract reservation |
| - | `mapper.setFUSV015230ReqChk` | FUSV015230CC | - | Submission-time non-contract execution judgment |
| - | `mapper.setFUSV015232CC` | FUSV015232CC | - | Opt-in email reception setting |
| - | `mapper.setEKK0341D010` | EKK0341D010 | KK_T_EQUIPMENT_SERVICE | eo Hikari Net operation registration |
| - | `mapper.setJFUVaKikiCancelCC` | JFUVaKikiCancelCC | - | Equipment operation service contract flow CC |
| - | `mapper.setFUSV016040SC` | FUSV016040SC | - | Service contract (eo Hikari Net) match |
| - | `mapper.setJKKSecurityPackOperateCC` | JKKSecurityPackOperateCC | - | Security pack operation CC |
| - | `mapper.setTransferCC` | TransferCC | - | Service IF result data transfer |
| - | `mapper.setJFUBmpTelNoAddChkCC` | JFUBmpTelNoAddChkCC | - | Phone number registration cancellation check |
| - | `mapper.setJKKChkDobanitenPsbAreaCC` | JKKChkDobanitenPsbAreaCC | - | Same number transfer possible area check |
| - | `mapper.setJFUMstTelNoUpdCC` | JFUMstTelNoUpdCC | KK_M_PHONE_NUMBER | Phone number master update |
| - | `mapper.setEZM0121D010` | EZM0121D010 | KK_T_OPTION_SERVICE | eo Hikari Tel operation registration |
| - | `mapper.setEZM0111D010` | EZM0111D010 | KK_T_E_JING | E-jing target registration |
| - | `mapper.setEKK0371D010_2` | EKK0371D010 | KK_T_OPTION_SERVICE | Option service contract (Phone) |
| - | `mapper.setEKK0381D010` | EKK0381D010 | KK_T_OPTION_SERVICE | eo Hikari TV operation registration |
| - | `mapper.setFUSV016034CC` | FUSV016034CC | - | Data extraction item code registration |
| - | `mapper.setFUSV016033CC` | FUSV016033CC | KK_T_DISCOUNT_SERVICE | Discount service code registration |
| - | `mapper.setEKK1091D010` | EKK1091D010 | KK_T_PROGRESS | Progress registration |
| - | `mapper.setJFUAddAgntCC` | JFUAddAgntCC | - | Dealer registration |
| - | `mapper.setEKK2201D010` | EKK2201D010 | - | Submission screen entry support work |
| - | `mapper.setJKKTmcpOperateCC` | JKKTmcpOperateCC | - | Machine compensation service registration |
| - | `mapper.setFUSV016044SC` | FUSV016044SC | - | Referral agreement |
| - | `mapper.setFUSV016043SC` | FUSV016043SC | - | Referral update |
| - | `mapper.setFUSV015216SC` | FUSV015216SC | - | Coupon code registration |
| - | `mapper.setFUSV015218SC` | FUSV015218SC | - | Coupon update |
| - | `mapper.setEFU0381C020` | EFU0381C020 | KK_T_WEB_ORDER | Update web order status |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUSV0356 | `FUSV0356Operation.target1` -> `CCRequestBroker.invoke` -> `JFUMkmInfoAddFrontiaPreTrnCC.execute` | 50+ SCs: KK_T_SERVICE_CONTRACT, KK_T_CUSTOMER, KK_T_EQUIPMENT_SERVICE, KK_T_DISCOUNT_SERVICE, KK_T_ISP_SUBSCRIPTION, KK_T_PROGRESS |

**Notes:** The sole caller is `FUSV0356Operation`, a BPM operation class generated by the template system. It is invoked by the FUSV0356 screen for comprehensive one-shot service registration. The method is not called directly from other Java classes — all entry points flow through the BPM framework's `CCRequestBroker`.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (func_code validation) (L139)

> Validates that the processing division code equals `"3"` (main submission). If not, returns immediately with error 1002.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `ccMsg = (Map) param.getData(fixedText)` // Get order data map |
| 2 | SET | `funcCode = ccMsg.get(JFUMkmInfoAddFrontiaConstCC.FUNC_CODE)` |
| 3 | SET | `errorList = new ArrayList()` // Initialize error list |
| 4 | IF | `!FUNC_CODE_CONF.equals(funcCode)` [FUNC_CODE_CONF="3"] |
| 4.1 | EXEC | `errorList.add(chkUtil.getItemErrInfMap(ccMsg, FUNC_CODE, RES_KEY_ERROR_CODE_1002))` // Add attribute check error |
| 4.2 | EXEC | `ccMsg.put(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO, errorList)` |
| 4.3 | RETURN | `return param` // Early return |

**Block 2** — IF (checkNode validation) (L153)

> Verifies registration content is not already set. If the node check fails, returns error 1006.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!checkNode(ccMsg)` |
| 1.1 | EXEC | `errorList.add(chkUtil.getItemErrInfMap(ccMsg, FUNC_CODE, RES_KEY_ERROR_CODE_1006))` // Registration content already set |
| 1.2 | EXEC | `ccMsg.put(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO, errorList)` |
| 1.3 | RETURN | `return param` |

**Block 3** — Processing setup (L164)

> Gets the current operation date and timestamp, and creates the service component request invoker instance.

| # | Type | Code |
|---|------|------|
| 1 | SET | `opeDate = JCCBPCommon.getOpeDate(null)` |
| 2 | SET | `opeDateTimeStamp = JCCBPCommon.getOpeDateTimeStamp(null)` |
| 3 | SET | `scCall = new ServiceComponentRequestInvoker()` // SC call instrument with class name for logging |

**Block 4** — IF (mskmsho_no null check) (L172)

> Validates the order number is present. If null, returns error 1001.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmsho_no = ccMsg.get(MSKMSHO_NO)` // Extract order number |
| 2 | IF | `JFUBPCommon.isNull(mskmsho_no)` |
| 2.1 | EXEC | `errorList.add(chkUtil.setErrInfMap(MSKMSHO_NO, RES_KEY_ERROR_CODE_1001))` // Required field error |
| 2.2 | EXEC | `ccMsg.put(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO, errorList)` |
| 2.3 | RETURN | `return param` |

**Block 5** — EFU0381A010 merge fetch (L178)

> Executes the merged EFU0381A010 SC call to fetch web order data. Extracts order details and validates order status is "010" (received).

| # | Type | Code |
|---|------|------|
| 1 | SET | `efu0381a010Msg = chkUtil.execEFU0381A010Merge(handle, scCall, param, fixedText, mskmsho_no)` |
| 2 | SET | `mskmNaiyo = efu0381a010Msg.getString(EFU0381A010CBSMsg1List.MSKM_NAIYO)` // Order content |
| 3 | SET | `upd_dtm_bf = efu0381a010Msg.getString(EFU0381A010CBSMsg1List.UPD_DTM)` |
| 4 | SET | `mskmStat = efu0381a010Msg.getString(EFU0381A010CBSMsg1List.WEBMK_STAT)` // Order status |
| 5 | IF | `efu0381a010Msg == null` |
| 5.1 | EXEC | `errorList.add(chkUtil.setErrInfMap(MSKMSHO_NO, RES_KEY_ERROR_CODE_1101))` // Order number does not exist |
| 5.2 | RETURN | `return param` |
| 6 | IF | `!"010".equals(mskmStat)` |
| 6.1 | EXEC | `errorList.add(chkUtil.setErrInfMap(MSKMSHO_NO, RES_KEY_ERROR_CODE_1101))` // Order status is not "received" |
| 6.2 | RETURN | `return param` |

**Block 6** — JSON conversion and validation (L190)

> Converts order content JSON to Map, runs all validation layers.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mapMskmNaiyo = JFUMkmInfoAddUtil.jsonToMap(mskmNaiyo)` // JSON to Map conversion |
| 2 | SET | `chkResult1 = chkUtil.checkUnitParam(mapMskmNaiyo)` // Single-field validation |
| 3 | SET | `chkResult2 = chkUtil.checkCodeParam(mapMskmNaiyo)` // Code value validation |
| 4 | SET | `chkResult6 = chkUtil.checkAllFuncCode(handle, scCall, param, fixedText, mapMskmNaiyo)` // All-processing-division validation |
| 5 | SET | `workArea.setMskmsho_no(mskmsho_no)` |
| 6 | EXEC | `chkUtil.setWorkArea(workArea, mapMskmNaiyo)` // Populate work area |

**Block 7** — IF (Type MT/MZ mansion/meson detection) (L198)

> For non-home types (Mansion/Meson), searches property data.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JFUMkmInfoAddFrontiaUtil.isTypeMTMZ(workArea)` [SERVICE_SBT_MT="3" or SERVICE_SBT_MZ="2"] |
| 1.1 | EXEC | `searchEohDnBkn(handle, param, fixedText, workArea)` // Search property data |

**Block 8** — Remaining validations (L206)

> Related parameter check, date check, code-to-master check. If any fail, return with error.

| # | Type | Code |
|---|------|------|
| 1 | SET | `chkResult3 = chkUtil.checkKnrnParam(ccMsg, workArea)` // Related parameter check |
| 2 | SET | `chkResult4 = chkUtil.checkDate(ccMsg, workArea)` // Date check |
| 3 | SET | `chkResult5 = checkCodeToMaster(handle, scCall, param, fixedText, ccMsg)` // Code-to-master check |
| 4 | IF | `!chkResult1 \|\| !chkResult2 \|\| !chkResult3 \|\| !chkResult4 \|\| !chkResult5 \|\| !chkResult6` |
| 4.1 | RETURN | `return param` // Validation error |

**Block 9** — Data fetch (L215)

> Fetches shelf code, SMP model number, buyer indicator, and mesh Wi-Fi config. Conditionally fetches indoor device model code for PLC or Mesh Wi-Fi.

| # | Type | Code |
|---|------|------|
| 1 | SET | `shelf_cd = execEDK0451A010(handle, scCall, param, fixedText, opeDate)` |
| 2 | SET | `workArea.setShelf_cd(shelf_cd)` |
| 3 | SET | `smp_model_no = execEZM0321A010(handle, scCall, param, fixedText, "SMP_MODEL_NO")` |
| 4 | SET | `workArea.setSmp_model_no(smp_model_no)` |
| 5 | SET | `smp_buy_uk_tntsha_nm = execEZM0321A010(handle, scCall, param, fixedText, "KK_TNMT_BUY_UK_WEB")` |
| 6 | SET | `workArea.setSmp_buy_uk_tntsha_nm(smp_buy_uk_tntsha_nm)` |
| 7 | SET | `mesh_wifi_min_cnt = execEZM0321A010(handle, scCall, param, fixedText, "MESH_WIFI_INFO")` |
| 8 | SET | `camp_chk_list_netsvc = execEZM0321A010(..., "CAMP_CHK_LIST_NETSVC").split(",")` |

**Block 10** — IF (Indoor device model code for PLC/Mesh Wi-Fi) (L228)

> If PLC or Mesh Wi-Fi is ordered ("1"), fetches the indoor device model code. Errors if not found.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1".equals(workArea.plc_mskm) \|\| "1".equals(workArea.mesh_wifi)` |
| 1.1 | SET | `taknkiki_model_cd = execEKK2041B501(handle, scCall, param, fixedText, workArea.plc_mskm, workArea.mesh_wifi)` |
| 1.2 | IF | `JFUCommonUtil.isNull(taknkiki_model_cd)` |
| 1.2.1 | IF | `"1".equals(workArea.plc_mskm)` |
| 1.2.2 | EXEC | `errorList.add(chkUtil.setErrInfMap(PLC_MSKM, RES_KEY_ERROR_CODE_3001))` |
| 1.2.3 | ELSE | `errorList.add(chkUtil.setErrInfMap(MESH_WIFI, RES_KEY_ERROR_CODE_3001))` // Model code does not exist |
| 1.2.4 | EXEC | `ccMsg.put(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO, errorList)` |
| 1.2.5 | RETURN | `return param` |

**Block 11** — IF (Credit card payment handling) (L245)

> If payway is "2" (credit card), invokes the card name conversion CC and validates the result.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"2".equals(workArea.getPayway())` [payway="2" means Credit Card] |
| 1.1 | EXEC | `callJCCCrecardNmChgeCC(handle, param)` // Credit card name conversion CC |
| 1.2 | SET | `creCardNmChgeMap = (HashMap) param.getData("JCCCrecardNmChgeCC")` |
| 1.3 | IF | `creCardNmChgeMap != null && creCardNmChgeMap.get("out_kana") != null` |
| 1.4 | IF | `creCardNmChgeMap.containsKey(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO)` |
| 1.4.1 | EXEC | `errorList.add(chkUtil.setErrInfMap(CR_CARDNMKANA, errorInfo))` // Attribute error |
| 1.4.2 | EXEC | `errorList.add(chkUtil.setErrInfMap(CRECARD_NM_ROMAJI, errorInfo))` // Romaji error |
| 1.4.3 | EXEC | `ccMsg.put(JFUMkmInfoAddFrontiaConstCC.ERROR_INFO, errorList)` |
| 1.4.4 | RETURN | `return param` |
| 1.5 | SET | `workArea.setCr_cardNmKana(creCardNmChgeMap.get("out_kana"))` |

**Block 12** — Address processing (L258)

> Splits address info, edits addresses for usage location, contractor, and number portability (1st and 2nd lines).

| # | Type | Code |
|---|------|------|
| 1 | SET | `inUsePlaceAddress = new HashMap()` |
| 2 | SET | `inUsePlaceAddress.put("func_code", JPCModelConstant.FUNC_CD_1)` |
| 3 | SET | `inUsePlaceAddress.put("state_city", workArea.getAdd1())` |
| 4 | SET | `inUsePlaceAddress.put("aza_chome", workArea.getAdd2())` |
| 5 | SET | `inUsePlaceAddress.put("bnchi", workArea.getAdd3())` |
| 6 | EXEC | `param.setData("FUSV016006CC", inUsePlaceAddress)` |
| 7 | SET | `editAddress = new JFUSplitAddressInfoChomeCC()` |
| 8 | EXEC | `editAddress.splitAddressInfo(handle, param, "FUSV016006CC")` |
| 9 | SET | `outUsePlaceAddress = (HashMap) param.getData("FUSV016006CC")` |
| 10 | SET | `outUsePlaceAddress.put("bnchigo", outUsePlaceAddress.get("after_bnchi"))` |
| 11 | SET | `outUsePlaceAddress.put("pcd", workArea.getZip())` |
| 12 | SET | `outUsePlaceAddress.put("adrttm", workArea.getAdd4())` |
| 13 | SET | `outUsePlaceAddress.put("adrrm", workArea.getAdd5())` |
| 14 | EXEC | `addressEdit(param, "FUSV015211CC", outUsePlaceAddress)` |
| 15 | EXEC | `addressEdit(param, "FUSV016006CC", outUsePlaceAddress)` |

**Block 12.1** — IF (Contractor address same as usage location) (L293)

> If contractor chooses the same address as usage location (kshadd_cmf="1"), sets the usage address directly.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1".equals(workArea.getKshadd_cmf())` [kshadd_cmf="1" means same address] |
| 1.1 | EXEC | `addressEdit(param, "FUSV015212CC", outUsePlaceAddress)` |
| 1.2 | ELSE | Creates separate contractor address with ksh_pcd, ksh_Address1, etc. |
| 1.2.1 | SET | `contractorAddress.put("edit_mode", "1")` |
| 1.2.2 | SET | `contractorAddress.put("pcd", workArea.getKsh_pcd())` |
| 1.2.3 | SET | `contractorAddress.put("bnchigo", workArea.getKsh_Address1() + workArea.getKsh_Address1_bnchigo())` |
| 1.2.4 | EXEC | `editedContractorAddress = JKKBpCommon.editAd(handle, param, contractorAddress, fixedText)` |
| 1.2.5 | EXEC | `addressEdit(param, "FUSV015212CC", editedContractorAddress)` |

**Block 12.2** — IF (Number portability 1st line) (L310)

> Validates use_bmp_1 and routes to the correct address based on bmp_stc_place_ad_choice_1 (1=same usage, 2=same contractor, 3=other).

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1".equals(workArea.getUse_bmp_1())` |
| 1.1 | SET | `bmpStcPlaceAdChoice = workArea.getBmp_stc_place_ad_choice_1()` |
| 1.2 | IF | `"1".equals(bmpStcPlaceAdChoice)` -> `addressEdit(param, "FUSV016008CC", outUsePlaceAddress)` |
| 1.3 | IF | `"2".equals(bmpStcPlaceAdChoice)` -> routes to usage or contractor address based on kshadd_cmf |
| 1.4 | ELSE | `"3"` -> Creates bmpAddress with bmp_pcd_1, bmp_Address1_1, etc. -> `JKKBpCommon.editAd` -> `addressEdit(param, "FUSV016008CC", editedBmpAddress)` |

**Block 12.3** — IF (Number portability 2nd line) (L371)

> Same logic as Block 12.2 but for use_bmp_2 and FUSV016009CC.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1".equals(workArea.getUse_bmp_2())` |
| 1.1-1.4 | Same routing logic as Block 12.2 but with bmp_pcd_2, bmp_Address1_2_*, FUSV016009CC |

**Block 13** — Customer and order registration mapping (L435)

> Sets customer data, order details, acceptance, billing, and credit info via mapper methods.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `mapper.setJFUCustCC(workArea, param)` |
| 2 | IF | `KEI_SBT_KOJINCD.equals(workArea.getKei_sbt())` [KOJINCD="1"] |
| 2.1 | EXEC | `mapper.setECK0021D010(workArea, param, opeDate)` // Individual customer |
| 3 | ELSE IF | `KEI_SBT_HOJINCD.equals(workArea.getKei_sbt())` [HOJINCD="2"] |
| 3.1 | EXEC | `mapper.setECK0031D010(workArea, param, opeDate)` // Corporate customer |
| 4 | EXEC | `mapper.setECK0201D010(workArea, param)` |
| 5 | EXEC | `mapper.setJFUMskmshoDtlSibnCC(workArea, param)` |
| 6 | EXEC | `mapper.setMskmDmenXmlMap(workArea, param)` |
| 7 | EXEC | `mapper.setEKK0011D020(workArea, param, opeDateTimeStamp, opeDate)` |
| 8 | EXEC | `mapper.setJFUAddSeikyKozaCC(workArea, param)` |
| 9 | EXEC | `mapper.setEKK0491D010(workArea, param, opeDate)` |
| 10 | EXEC | `mapper.setEKK0531B501(workArea, param)` |
| 11 | EXEC | `mapper.setJFUAuthCheckCCWork(workArea, param)` |
| 12 | EXEC | `mapper.setEKK0521D020(workArea, param, opeDateTimeStamp)` |
| 13 | EXEC | `mapper.setEKK0521D010(workArea, param)` |
| 14 | EXEC | `mapper.setEKK1031D010(workArea, param)` |

**Block 14** — IF (eo Hikari Net) (L449)

> Registers eo Hikari Net service contract, service detail, and ISP subscription.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEonet()` |
| 1.1 | EXEC | `mapper.setEKK0091D010(workArea, param, opeDate)` // Service contract |
| 1.2 | EXEC | `mapper.setEKK0171D010(workArea, param)` // Service detail |
| 1.3 | EXEC | `mapper.setEKK0361D010(workArea, param)` // ISP registration |

**Block 15** — IF (eo Hikari Tel) (L458)

> Registers eo Hikari Tel: service contract, service detail, equipment service, option service, discount service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEotel()` |
| 1.1 | EXEC | `mapper.setEKK0111D010(workArea, param)` // Service contract |
| 1.2 | EXEC | `mapper.setEKK0191D010(workArea, param)` // Service detail |
| 1.3 | EXEC | `mapper.setEKK2811B503(workArea, param)` // Equipment service contract list |
| 1.4 | EXEC | `mapper.setEKK0341B002(workArea, param)` // Equipment service contract |
| 1.5 | EXEC | `mapper.setEKK0341D01002(workArea, param)` // Equipment service registration |
| 1.6 | EXEC | `mapper.setEKK2811D010(workArea, param)` // Equipment operation service (Tel) |
| 1.7 | EXEC | `mapper.setEKK2811D01002(workArea, param)` // Equipment operation service (Net) |
| 1.8 | EXEC | `mapper.setEZM0321A010(workArea, param)` // Business parameter management |
| 1.9 | EXEC | `mapper.setEKK0371D010_1(workArea, param)` // Option service contract |
| 1.10 | EXEC | `mapper.setEKK0451D01001(workArea, param, opeDate)` // Discount service (Tel package) |
| 1.11 | IF | `"2".equals(workArea.getEotel_course())` |
| 1.11.1 | EXEC | `mapper.setEKK0451D01002(workArea, param, opeDate)` // Discount service (course 2) |

**Block 16** — IF (eo Hikari Tel Type N) (L473)

> Type N specific processing for non-standard NTT exchange customers.

| # | Type | Code |
|---|------|------|
| 1 | ELSE IF | `workArea.getEotelTypeN()` |
| 1.1 | EXEC | `mapper.setFUSV016008TypeNCC(workArea, param)` // Number portability address split (Type N) |
| 1.2 | EXEC | `mapper.setJKKNttorsNetTelInfOperateCC(workArea, param)` // NTT resale operation |
| 1.3 | EXEC | `mapper.setFUSV035689CC(workArea, param)` // Data transfer CC (Type N update) |

**Block 17** — IF (ONU/Model registration) (L482)

> If eo Hikari Net or Tel is active, registers ONU and models.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEonet() \|\| workArea.getEotel()` |
| 1.1 | EXEC | `mapper.setEKK0341D01005(workArea, param)` // Equipment service registration CC |
| 1.2 | EXEC | `mapper.setEKK0341D01001(workArea, param)` // Equipment service registration |

**Block 18** — IF (eo Hikari TV) (L487)

> Registers eo Hikari TV: service contract, VONU, service detail, equipment service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEotv()` |
| 1.1 | EXEC | `mapper.setEKK0101D010(workArea, param)` // Service contract |
| 1.2 | EXEC | `mapper.setEKK0341D01006(workArea, param)` // VONU |
| 1.3 | IF | `"2".equals(workArea.getEo_tv_course())` |
| 1.3.1 | EXEC | `mapper.setEKK0181D010(workArea, param)` // Service detail |
| 1.3.2 | EXEC | `mapper.setEKK0341D01003(workArea, param)` // Equipment service (TV) |

**Block 19** — Post-service registrations (L503)

> Registers equipment service contract channel, discount auto-apply, multi-function router, option services, star discount, construction fee, opt-in, and security pack.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `mapper.setEKK0341C330(workArea, param)` // Equipment service contract channel |
| 2 | EXEC | `mapper.setJKKWrisvcAutoAplyCC(workArea, param)` // Discount auto-apply |
| 3 | EXEC | `mapper.setEKK0341D010Tkn(workArea, param)` // Multi-function router |
| 4 | EXEC | `mapper.setEKK2811D010Net02(workArea, param)` // Equipment operation (Net) |
| 5 | EXEC | `mapper.setEKK2811D010Tel02(workArea, param)` // Equipment operation (Tel) |
| 6 | EXEC | `mapper.setEKK2811B50302(workArea, param)` // Equipment service list match |
| 7 | EXEC | `mapper.setEKK0341B00202(workArea, param)` // Equipment service list |
| 8 | EXEC | `mapper.setEKK0391D010(workArea, param)` // Support service |
| 9 | EXEC | `mapper.setEKK0091A010(workArea, param)` // Service contract match |

**Block 20** — IF (Not Type N) (L515)

> Non-Type N specific processing: service detail update, option service, usage location, line-target, service group, construction fee, star discount, non-contract reservation, opt-in, equipment registration, transfer CC, phone number checks, master update, E-jing registration.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JFUMkmInfoAddFrontiaUtil.isTypeN(workArea)` |
| 1.1 | EXEC | `mapper.setEKK0191C012(workArea, param)` // Service detail update (Tel) |
| 1.2 | EXEC | `mapper.setEKK0431D010(workArea, param)` // Option service (Phone) |
| 1.3 | EXEC | `mapper.setEKK0251D010(workArea, param)` // Usage location registration |
| 1.4 | EXEC | `mapper.setEKK0241D010(workArea, param)` // Line-target service contract |
| 1.5 | EXEC | `mapper.setEKK2961D010(workArea, param)` // Service contract group setting |
| 1.6 | EXEC | `mapper.setFUSV015233SC(workArea, param)` // Construction fee discount |
| 1.7 | EXEC | `mapper.setFUSV015233ReqChk(workArea, param)` // Construction fee judgment |
| 1.8 | EXEC | `mapper.setFUSV015229CC(workArea, param, opeDate)` // Star discount CC |
| 1.9 | EXEC | `mapper.setFUSV015229ReqChk(workArea, param)` // Star discount judgment |
| 1.10 | EXEC | `mapper.setFUSV015230CC(workArea, param, opeDate)` // Non-contract reservation |
| 1.11 | EXEC | `mapper.setFUSV015230ReqChk(workArea, param)` // Non-contract judgment |
| 1.12 | EXEC | `mapper.setFUSV015232CC(workArea, param)` // Opt-in email reception |
| 1.13 | EXEC | `mapper.setEKK0341D010(workArea, param, mesh_wifi_min_cnt, taknkiki_model_cd)` // Net operation registration |
| 1.14 | EXEC | `mapper.setJFUVaKikiCancelCC(workArea, param)` // Equipment operation flow CC |
| 1.15 | EXEC | `mapper.setFUSV016040SC(workArea, param)` // Service contract (Net) match |
| 1.16 | EXEC | `mapper.setJKKSecurityPackOperateCC(workArea, param)` // Security pack |
| 1.17 | EXEC | `mapper.setTransferCC(workArea, param)` // Service IF data transfer |
| 1.18 | EXEC | `mapper.setJFUBmpTelNoAddChkCC(workArea, param)` // Phone number cancellation check |
| 1.19 | EXEC | `mapper.setJKKChkDobanitenPsbAreaCC(workArea, param)` // Same number transfer area check |
| 1.20 | EXEC | `mapper.setJFUMstTelNoUpdCC(workArea, param)` // Phone number master update |
| 1.21 | EXEC | `mapper.setEZM0121D010(workArea, param)` // Tel operation registration |
| 1.22 | EXEC | `mapper.setEZM0111D010(workArea, param)` // E-jing target registration |
| 1.23 | EXEC | `mapper.setEKK0371D010_2(workArea, param)` // Option service (Phone) |

**Block 21** — TV operation, data extraction, discount code, progress, dealer, entry support (L540)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `mapper.setEKK0381D010(workArea, param)` // TV operation registration |
| 2 | EXEC | `mapper.setFUSV016034CC(workArea, param)` // Data extraction item code |
| 3 | EXEC | `mapper.setFUSV016033CC(workArea, param, camp_chk_list_netsvc)` // Discount service code |
| 4 | EXEC | `mapper.setEKK1091D010(workArea, param)` // Progress registration |
| 5 | EXEC | `mapper.setJFUAddAgntCC(workArea, param)` // Dealer registration |
| 6 | EXEC | `mapper.setEKK2201D010(workArea, param)` // Entry support work |

**Block 22** — IF (Machine compensation service) (L552)

> If any of kk_comp_pc_mskm, kk_comp_pcw_mskm, or kk_comp_tv_mskm equals "1", registers the machine compensation service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `"1".equals(workArea.getKk_comp_pc_mskm()) \|\| "1".equals(workArea.getKk_comp_pcw_mskm()) \|\| "1".equals(workArea.getKk_comp_tv_mskm())` |
| 1.1 | EXEC | `mapper.setJKKTmcpOperateCC(workArea, param, opeDate)` // Machine compensation service |

**Block 23** — IF (Referral agreement for eo Hikari Net) (L558)

> If eo Hikari Net is active and red_introduce matches pattern `[A-Z][0-9]{9}`, registers referral agreement and updates it.

| # | Type | Code |
|---|------|------|
| 1 | IF | `workArea.getEonet()` |
| 1.1 | IF | `red_introduce != null && red_introduce.matches("[A-Z][0-9]{9}")` |
| 1.1.1 | EXEC | `mapper.setFUSV016044SC(workArea, param)` // Referral agreement |
| 1.1.2 | EXEC | `mapper.setFUSV016043SC(workArea, param)` // Referral update |
| 1.2 | IF | `coupon_cd != null && isUpdAbleCouponCd(handle, scCall, param, fixedText)` |
| 1.2.1 | EXEC | `mapper.setFUSV015216SC(workArea, param)` // Coupon registration |
| 1.2.2 | EXEC | `mapper.setFUSV015218SC(workArea, param)` // Coupon update |

**Block 24** — Final update and return (L568)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `mapper.setEFU0381C020(workArea, param, upd_dtm_bf, opeDateTimeStamp)` // Update web order |
| 2 | RETURN | `return param` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `func_code` | Field | Processing division code — classifies processing type: "1"=temporary save (new), "2"=temporary save (update), "3"=main submission |
| `mskmsho_no` | Field | Order number (受領番号) — unique identifier for the web subscription order |
| `mskm_stat` | Field | Web order status — "010" means order has been received (受領済み) |
| `mskm_naiyo` | Field | Order content — JSON string containing all subscription parameters |
| `kei_sbt` | Field | Business type (種別) — "1"=Individual (個人), "2"=Corporate (法人) |
| `eonet` | Field | eo Hikari Net service flag (eo光ネット) — true if FTTH internet subscription requested |
| `eotel` | Field | eo Hikari Tel service flag (eo光電話) — true if VoIP telephone subscription requested |
| `eotv` | Field | eo Hikari TV service flag (eo光テレビ) — true if TV subscription requested |
| `eotelTypeN` | Field | eo Hikari Tel Type N flag — non-standard NTT exchange customer |
| `eotel_course` | Field | eo Hikari Tel course — "2" indicates course 2 (discount package) |
| `eo_tv_course` | Field | eo Hikari TV course — "2" indicates course 2 (premium package) |
| `payway` | Field | Payment method — "2"=Credit Card, other=Bank Transfer |
| `kshadd_cmf` | Field | Contractor address choice — "1"=Same as usage location, "2"=Different |
| `use_bmp_1` | Field | Number portability 1st line usage — "1"=Use number portability |
| `use_bmp_2` | Field | Number portability 2nd line usage — "1"=Use number portability |
| `bmp_stc_place_ad_choice_1` | Field | 1st line installation address choice — "1"=Same as usage, "2"=Same as contractor, "3"=Other |
| `bmp_stc_place_ad_choice_2` | Field | 2nd line installation address choice — "1"=Same as usage, "2"=Same as contractor, "3"=Other |
| `plc_mskm` | Field | PLC (Power Line Communication) mesh service flag |
| `mesh_wifi` | Field | Mesh Wi-Fi service flag |
| `taknkiki_model_cd` | Field | Indoor device model code (宅内機器モデルコード) |
| `kk_comp_pc_mskm` | Field | PC compensation service flag (PC補償) |
| `kk_comp_pcw_mskm` | Field | PC+Wi-Fi compensation service flag |
| `kk_comp_tv_mskm` | Field | TV compensation service flag |
| `red_introduce` | Field | Referral ID (紹介ID) — matches pattern `[A-Z][0-9]{9}` for valid referral |
| `coupon_cd` | Field | Coupon code for existing customer discounts |
| `shelf_cd` | Field | Shelf code — product catalog classification code |
| `smp_model_no` | Field | SMP model number — standard equipment model identifier |
| `smp_buy_uk_tntsha_nm` | Field | SMP buyer indicator name — who purchases the standard equipment |
| `camp_chk_list_netsvc` | Field | Campaign check list for network services — comma-separated list |
| `trats_cd_1_1` / `trats_cd_1_2` | Field | Handling code 1-1 / 1-2 — service handling classification codes |
| `trats_cd_2_1` / `trats_cd_2_2` | Field | Handling code 2-1 / 2-2 — secondary handling classification codes |
| `K-Opticom` | Business term | K-Opticom — a Japanese FTTH (fiber-optic) ISP operated by KDDI and its partners |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| eo光 (eo Hikari) | Business term | K-Opticom's FTTH broadband service brand |
| eo光電話 (eo Hikari Tel) | Business term | K-Opticom's VoIP telephone service bundled with FTTH |
| eo光テレビ (eo Hikari TV) | Business term | K-Opticom's digital TV service bundled with FTTH |
| Type N | Business term | Non-standard NTT exchange — customers not served by standard NTT infrastructure |
| Mansion (マンション) | Business term | Multi-unit apartment building — special address and infrastructure handling required |
| Meson (メゾン) | Business term | Small multi-unit residential building (typically 2-15 units) |
| 番号ポータビリティ | Business term | Number Portability — service allowing customers to keep their phone number when switching ISPs |
| SC | Technical term | Service Component — a backend business logic unit in the K-Opticom architecture |
| CC | Technical term | Common Component — a reusable shared component in the controller-component layer |
| BPM | Technical term | Business Process Management — workflow orchestration framework |
| KK_T_* | Technical term | K-Opticom database table prefix (e.g., KK_T_SERVICE_CONTRACT) |
| SOD | Technical term | Service Order Data — telecom order fulfillment entity |
| INFO | Technical term | Information — used in field naming (e.g., WORK_AREA, USEPLACE_INFO) |
| NETFLIX_CAMPAIGN | Field | Campaign code list for Netflix bundle promotions |
| MESH_WIFI_CAMPAIGN | Field | Campaign code list for Mesh Wi-Fi promotions |
| SMP_CAMPAIGN | Field | Campaign code list for SMP equipment promotions |
| GETUWARI_CAMPAIGN | Field | Campaign code list for special service promotions |
