# Business Logic — FUW02101SFLogic.cfm() [150 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02101SF.FUW02101SFLogic` |
| Layer | Controller / WebView Business Logic (extends `JCCWebBusinessLogic`) |
| Module | `FUW02101SF` (Package: `eo.web.webview.FUW02101SF`) |

## 1. Role

### FUW02101SFLogic.cfm()

This method implements the **confirmation-screen processing** for the subscription (order) screen. It is invoked when the user presses the "Confirm" button on the order input screen and serves as the central orchestration point that prepares data, resolves capacity and pricing conditions, and invokes the downstream service framework (`FUSV0052`) to handle all service contract registrations and updates.

Specifically, the method performs three business responsibilities: **(1) Capacity and pricing determination** — it calculates total added capacity, free capacity, and subscription capacity, then sets flags for whether the plan exceeds free allowances (yuryo) and whether the customer qualifies for a mansion-type arrangement. **(2) Service contract orchestration** — it dispatches the order to the `FUSV0052` service framework via `FUSV0052_FUSV0052OPDBMapper`, sequentially calling SC (Service Component) methods for order content registration, option/sub-option service contract changes, progress registration, and detail inquiry, followed by CC (Cross-Component / business logic) methods for agreement review, service IF data transfer, and service order issuance. **(3) State finalization and navigation** — it sets the option service contract status for email billing and navigates to the next screen (`FUW02102`).

The method follows a **delegation pattern**, where it reads form data from data beans, prepares a unified parameter map, and delegates all actual service logic to the `FUSV0052` BPM service. It acts as the screen entry point for the subscription confirmation flow and is the final processing stage before the next-screen transition.

Conditional branches handle two distinct business scenarios: (a) Mansion division detection when the pricing group is "04" (eo Light Net Management type) with the specified payment method code and a pay flag — this determines whether the total capacity exceeds the free allowance and sets a mansion flag accordingly. (b) Paid service flag — when the pay flag is true, it computes whether the total added capacity exceeds the free capacity and sets the yuryo (paid) flag to drive conditional UI rendering on the next screen.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["cfm()"])
    START --> GET_COMMON["Get Common Info Bean"]
    GET_COMMON --> GET_INFO["Extract Common Info Beans (SSO, Service, Billing, Option, Sub-Option)"]
    GET_INFO --> GET_FORM["Get Service Form Bean"]
    GET_FORM --> CAPA["Extract Capacity Data (Total, Free, Add)"]
    CAPA --> SET_CAPA["Set Total/Subscription Capacity on Bean"]
    SET_CAPA --> PRG_CHECK["Check prcGrpCd=\"04\" && kanyuPayHos=\"加入契約\" && payFlag"]
    PRG_CHECK --> MANSION["Mansion Division Branch"]
    MANSION --> M_False["mansionDiv = false (gokei_capa <= mryCapa)"]
    MANSION --> M_True["mansionDiv = true (gokei_capa > mryCapa)"]
    M_False --> M_SET["Set mansionDiv on Bean"]
    M_True --> M_SET
    M_SET --> SET_SHK["Set SHK_ADD_CAPA (gokei - SHK_CAPA)"]
    SET_SHK --> PAY_CHECK["Check payFlag"]
    PAY_CHECK --> P_False["yuryo = false (mryCapa >= gokei_capa)"]
    PAY_CHECK --> P_True["yuryo = true (mryCapa < gokei_capa)"]
    P_False --> P_SET["Set PAY_FLG (yuryo) on Bean"]
    P_True --> P_SET
    P_SET --> BUILD_MAP["Build paramMap with USECASE_ID_FUSV0052"]
    BUILD_MAP --> MAPPER["Create FUSV0052_FUSV0052OPDBMapper"]
    MAPPER --> SC1["setFUSV005201SC - Order Content Registration"]
    SC1 --> SC2["setFUSV005202SC - Option Service Contract ISP Info"]
    SC2 --> SC3["setFUSV005203SC - Sub-Option Service Contract ISP Register"]
    SC3 --> SC9["setFUSV005209SC - Sub-Option Service Contract ISP Inquiry"]
    SC9 --> SC4["setFUSV005204SC - Sub-Option Service Contract ISP Conclusion"]
    SC4 --> SC5["setFUSV005205SC - Sub-Option Service Contract ISP Start Use"]
    SC5 --> SC6["setFUSV005206SC - Sub-Option Service Contract ISP Change"]
    SC6 --> SC7["setFUSV005207SC - Progress Registration"]
    SC7 --> SC8["setFUSV005208SC - Order Detail Inquiry / Follow-up Request"]
    SC8 --> CC1["setFUSV005201CC - Option Service Contract ISP Agreement Review"]
    CC1 --> CC2["setFUSV005202CC - Sub-Option Agreement Review"]
    CC2 --> CC3["setFUSV005203CC - Service IF Data Transfer"]
    CC3 --> CC4["setFUSV005204CC - Service Order Issuance"]
    CC4 --> CC5["setFUSV005205CC - Service IF Data Transfer"]
    CC5 --> SET_STAT["setOpSvcKeiStatMail on dataMap"]
    SET_STAT --> BUILD_OUTPUT["Build outputMap"]
    BUILD_OUTPUT --> INVOK["Invoke Service (invokeService)"]
    INVOK --> CATCH["Catch JCCWebServiceException"]
    CATCH --> NEXT["Set Next Screen (FUW02102)"]
    NEXT --> RETURN["Return true"]
```

**Constant Resolution:**
- `JFUStrConst.CD00133_04 = "04"` — Pricing group code representing "eo Light Net Management Type" (eo光ネットマネジメントタイプ).
- `CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_23 = "加入契約支払い方式コード"` — Subscription contract payment method code (for payment method classification).
- `USECASE_ID_FUSV0052 = "FUSV0052"` — Use case ID identifying the service orchestration use case.
- `JPCModelConstant.FUNC_CD_2 = 2` — Function code indicating order screen processing mode.
- `JFUScreenConst.SCREEN_ID_FUW02102` / `SCREEN_NAME_FUW02102` — Next screen identifier and name for navigation.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no explicit parameters. All input data is extracted from instance-level form beans and common info beans set up by the framework. |
| - | `commoninfoBean` (via `getCommonInfoBean()`) | `X31SDataBeanAccess` | Shared form bean containing common system information across the session, including SSO identity, service contract details, billing contract data, and option/sub-option service data. |
| - | `bean` (via `getServiceFormBean()`) | `X31SDataBeanAccess` | Service form bean containing the subscription input data entered by the user on the order screen — capacity selections, pay flags, etc. |
| - | `super` (extends `JCCWebBusinessLogic`) | `JCCWebBusinessLogic` | Parent class providing framework methods like `invokeService`, `checkException`, `getCommonInfoBean()`, and `getServiceFormBean()`. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `OneStopDataBeanAccessArray.getDataBean` | - | - | Calls `getDataBean` in `OneStopDataBeanAccessArray` |
| R | `OneStopDataBeanAccess.getDataBeanArray` | - | - | Calls `getDataBeanArray` in `OneStopDataBeanAccess` |
| - | `OneStopDataBeanAccess.sendMessageString` | - | - | Calls `sendMessageString` in `OneStopDataBeanAccess` |
| - | `JFUWebCommon.setOpSvcKeiStatMail` | JFUWebCommon | - | Calls `setOpSvcKeiStatMail` in `JFUWebCommon` |
| - | `JFUWebCommon.formatNumber` | JFUWebCommon | - | Calls `formatNumber` in `JFUWebCommon` |
| - | `JPCFomatString.formatNumber` | JPCFomatString | - | Calls `formatNumber` in `JPCFomatString` |
| R | `FUSV0277_FUSV0277OPDBMapper.getDataBean` | - | - | Calls `getDataBean` in `FUSV0277_FUSV0277OPDBMapper` |
| C | `FUSV0052_FUSV0052OPDBMapper.setFUSV005201SC` | FUSV005201SC | - | Order content acceptance registration — registers the subscription order content |
| U | `FUSV0052_FUSV0052OPDBMapper.setFUSV005202SC` | FUSV005202SC | - | Option service contract (ISP) information change — updates option ISP service details |
| C | `FUSV0052_FUSV0052OPDBMapper.setFUSV005203SC` | FUSV005203SC | - | Sub-option service contract (ISP) registration — registers new sub-option ISP services |
| R | `FUSV0052_FUSV0052OPDBMapper.setFUSV005209SC` | FUSV005209SC | - | Sub-option service contract (ISP) inquiry — looks up existing sub-option contract data |
| U | `FUSV0052_FUSV0052OPDBMapper.setFUSV005204SC` | FUSV005204SC | - | Sub-option service contract (ISP) conclusion — finalizes the contract agreement |
| C | `FUSV0052_FUSV0052OPDBMapper.setFUSV005205SC` | FUSV005205SC | - | Sub-option service contract (ISP) start use — activates the service for use |
| U | `FUSV0052_FUSV0052OPDBMapper.setFUSV005206SC` | FUSV005206SC | - | Sub-option service contract (ISP) change — modifies existing contract terms |
| C | `FUSV0052_FUSV0052OPDBMapper.setFUSV005207SC` | FUSV005207SC | - | Progress registration — registers processing progress/status |
| R | `FUSV0052_FUSV0052OPDBMapper.setFUSV005208SC` | FUSV005208SC | - | Order detail inquiry / follow-up task request — retrieves order details and delegates follow-up |
| - | `FUSV0052_FUSV0052OPDBMapper.setFUSV005201CC` | FUSV005201CC | - | Option service contract (ISP) agreement review CC — cross-component agreement validation |
| - | `FUSV0052_FUSV0052OPDBMapper.setFUSV005202CC` | FUSV005202CC | - | Sub-option service contract agreement review CC — cross-component sub-option agreement validation |
| - | `FUSV0052_FUSV0052OPDBMapper.setFUSV005203CC` | FUSV005203CC | - | Service IF result data transfer CC — transfers service interface result data |
| - | `FUSV0052_FUSV0052OPDBMapper.setFUSV005204CC` | FUSV005204CC | - | Service order issuance CC — issues service orders |
| - | `FUSV0052_FUSV0052OPDBMapper.setFUSV005205CC` | FUSV005205CC | - | Service IF result data transfer CC — transfers additional service interface results |
| - | `JFUStrConst.CD00133_04` | - | - | Used for pricing group code comparison ("04" — eo Light Net Management) |
| - | `CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_23` | - | - | Used for subscription payment method code comparison |
| C | `JCCBatCommon.invokeService` | JCCBatCommon | - | Invokes the FUSV0052 service framework (BPM service call) |
| - | `X31CWebConst.DATABEAN_GET_VALUE` | - | - | Constant for data bean value retrieval |
| - | `X31CWebConst.DATABEAN_SET_VALUE` | - | - | Constant for data bean value setting |

**How to classify (applied):**
- SC Code is derived from the method names: `setFUSV0052xxSC` maps to `FUSV0052xxSC`.
- CRUD classification follows the naming convention: `set*01SC` (order registration) = C, `set*02SC` (info change) = U, `set*03SC` (register) = C, `set*09SC` (inquiry) = R, `set*04SC` (conclusion) = U, `set*05SC` (start use) = C, `set*06SC` (change) = U, `set*07SC` (progress registration) = C, `set*08SC` (inquiry) = R.
- CC methods handle business logic (agreement review, data transfer, service order issuance) and do not directly perform CRUD on entities.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUW02101 | `FUW02101SFLogic.cfm()` | `setFUSV005201SC [C] Order Content`, `setFUSV005202SC [U] Option ISP`, `setFUSV005203SC [C] Sub-Option ISP Reg`, `setFUSV005209SC [R] Sub-Option ISP Inquiry`, `setFUSV005204SC [U] Sub-Option ISP Conclusion`, `setFUSV005205SC [C] Sub-Option ISP Start`, `setFUSV005206SC [U] Sub-Option ISP Change`, `setFUSV005207SC [C] Progress Reg`, `setFUSV005208SC [R] Order Detail`, `invokeService [C/R] FUSV0052 BPM` |

**Notes:**
- The `cfm()` method is called as part of the FUW02101 screen flow. Based on the naming convention, this is the confirmation-screen logic for the subscription order screen (FUW02101 — likely "Web Subscription Order" where FUW = Fujitsu Utility Web).
- The checker class `FUW02101SFChecker` references `FUW02101SFLogic` for validation context, but the actual invocation to `cfm()` flows through the screen controller framework.
- The method navigates to `FUW02102` as the next screen after successful confirmation.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Shared Form Bean Access (L271)

> Extracts the shared/common info form bean and retrieves customer contract information.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commoninfoBean = super.getCommonInfoBean()` // Shared form bean access |
| 2 | EXEC | `resultMap = getCommoninfoBeanInfo(commoninfoBean)` // Extracts common info map |
| 3 | SET | `ssoInfoBean = resultMap.get(CommonInfoCFConst.SSO_INFO)` // SSO authentication info |
| 4 | SET | `svcKeiInfoBean = resultMap.get(CommonInfoCFConst.SVC_KEI_INFO)` // Service contract info |
| 5 | SET | `seikyKeiInfoBean = resultMap.get(CommonInfoCFConst.SEIKY_KEI_INFO)` // Billing contract info |
| 6 | SET | `opSvcKeiInfoBean = resultMap.get(CommonInfoCFConst.OP_SVC_KEI_INFO)` // Option service contract info |
| 7 | SET | `sbopSvcKeiInfoBean = resultMap.get(CommonInfoCFConst.SBOP_SVC_KEI_INFO)` // Sub-option service contract info |

**Block 2** — [SET] Service Form Bean Access (L284)

> Extracts the service form bean containing user-entered order data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `bean = super.getServiceFormBean()` // Service form bean |

**Block 3** — [SET] Capacity Data Extraction (L287)

> Extracts selected capacity data type, total added capacity after addition, and formats numbers.

| # | Type | Code |
|---|------|------|
| 1 | SET | `addCapaBean = bean.getDataBeanArray(FUW02101SFConst.ADD_CAPA_LIST).getDataBean(0)` // Selected capacity type bean |
| 2 | SET | `selectValue = addCapaBean.sendMessageLong(FUW02101SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE, 0).intValue()` // Selected capacity type code |
| 3 | SET | `gokei_capa = addCapaBean.sendMessageString(FUW02101SFConst.GOKEI_CAPA_01, X31CWebConst.DATABEAN_GET_VALUE, selectValue)` // Total capacity after addition |
| 4 | EXEC | `bean.sendMessageString(FUW02101SFConst.GOKEI_CAPA, X31CWebConst.DATABEAN_SET_VALUE, gokei_capa)` // Sets total capacity on bean |
| 5 | EXEC | `bean.sendMessageString(FUW02101SFConst.MSKM_CAPA, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.formatNumber(addCapaBean.sendMessageString(FUW02101SFConst.ADD_CAPA_01, ...)))` // Sets subscription capacity (formatted) |
| 6 | SET | `prcGrpCd = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE)` // Pricing group code |
| 7 | SET | `kanyuKeiPayHoshikiCd = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_23, X31CWebConst.DATABEAN_GET_VALUE)` // Subscription contract payment method code |
| 8 | SET | `mryCapa = bean.sendMessageLong(FUW02101SFConst.MRYO_CAPA, X31CWebConst.DATABEAN_GET_VALUE).intValue()` // Free capacity |
| 9 | SET | `payFlag = bean.sendMessageBoolean(FUW02101SFConst.PAY_FLG, X31CWebConst.DATABEAN_GET_VALUE)` // Paid service flag |

**Block 4** — [IF] Mansion Division Branch (L304)

> When pricing group code is "04" (eo Light Net Management Type) AND the payment method code matches AND the pay flag is true, determine whether the customer qualifies for mansion-type arrangement based on whether total capacity exceeds free capacity.

| # | Type | Code |
|---|------|------|
| 1 | COND | `JFUStrConst.CD00133_04.equals(prcGrpCd) && JFUStrConst.CD01216_003.equals(kanyuKeiPayHoshikiCd) && payFlag` [CD00133_04="04" (eo Net Mgmt Type)] |

**Block 4.1** — [SET] Mansion division initialization (L307)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mansionDiv = false` // Initialize mansion division flag |

**Block 4.2** — [IF] Capacity comparison for mansionDiv (L309)

| # | Type | Code |
|---|------|------|
| 1 | COND | `Integer.parseInt(gokei_capa) <= mryCapa` |

**Block 4.2.1** — [SET] Free capacity sufficient (L310)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mansionDiv = false` // No mansion flag when within free capacity |

**Block 4.2.2** — [SET] Exceeds free capacity (L313)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mansionDiv = true` // Mansion flag when exceeds free capacity (free display setting) |

**Block 4.3** — [EXEC] Set mansion division flag (L316)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageBoolean(FUW02101SFConst.MANSION_DIV, X31CWebConst.DATABEAN_SET_VALUE, mansionDiv)` // Sets mansionDiv on form |

**Block 5** — [SET] Subtract original capacity (L318)

> Calculates and sets the difference between total capacity and short original capacity (SHK_CAPA).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageString(FUW02101SFConst.SHK_ADD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(Long.valueOf(gokei_capa).intValue() - bean.sendMessageLong(FUW02101SFConst.SHK_CAPA, X31CWebConst.DATABEAN_GET_VALUE).intValue()))` // Sets short added capacity |

**Block 6** — [IF] Paid service flag determination (L320)

> When the pay flag is true, determine whether the total capacity exceeds the free capacity and set the yuryo (paid) flag.

| # | Type | Code |
|---|------|------|
| 1 | COND | `payFlag` |

**Block 6.1** — [SET] Yuryo initialization (L322)

| # | Type | Code |
|---|------|------|
| 1 | SET | `yuryo = false` // Initialize paid flag |

**Block 6.2** — [IF] Capacity comparison for yuryo (L324)

| # | Type | Code |
|---|------|------|
| 1 | COND | `mryCapa >= Integer.parseInt(gokei_capa)` |

**Block 6.2.1** — [SET] Free capacity sufficient (L325)

| # | Type | Code |
|---|------|------|
| 1 | SET | `yuryo = false` // Not a paid service when within free capacity |

**Block 6.2.2** — [SET] Exceeds free capacity (L328)

| # | Type | Code |
|---|------|------|
| 1 | SET | `yuryo = true` // Is a paid service when exceeds free capacity |

**Block 6.3** — [EXEC] Set paid flag (L330)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `bean.sendMessageBoolean(FUW02101SFConst.PAY_FLG, X31CWebConst.DATABEAN_SET_VALUE, yuryo)` // Sets yuryo (paid flag) on form |

**Block 7** — [SET] Build service invocation parameters (L335)

> Initializes the parameter map for the service framework call with the FUSV0052 use case ID, creates the mapper, and prepares the data map with all relevant beans.

| # | Type | Code |
|---|------|------|
| 1 | SET | `paramMap = new HashMap<String, String>(16)` // Message box map for service invocation |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0052)` // Use case ID = "FUSV0052" |
| 3 | SET | `mapper = new FUSV0052_FUSV0052OPDBMapper()` // Creates mapper instance |
| 4 | SET | `dataMap = new HashMap<String, Object>()` // Data map for SC/CC calls |
| 5 | SET | `paramBean = { bean, ssoInfoBean, svcKeiInfoBean, seikyKeiInfoBean, opSvcKeiInfoBean, sbopSvcKeiInfoBean }` // All beans bundled for service calls |

**Block 8** — [SEQ] SC (Service Component) Invocations (L340–L357)

> Sequentially calls 8 Service Component methods to handle order content registration, option/sub-option service contract changes, progress registration, and order detail inquiry.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataMap = mapper.setFUSV005201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Order content acceptance registration [C] |
| 2 | CALL | `dataMap = mapper.setFUSV005202SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Option service contract (ISP) info change [U] |
| 3 | CALL | `dataMap = mapper.setFUSV005203SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract (ISP) registration [C] |
| 4 | CALL | `dataMap = mapper.setFUSV005209SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract (ISP) inquiry [R] |
| 5 | CALL | `dataMap = mapper.setFUSV005204SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract (ISP) conclusion [U] |
| 6 | CALL | `dataMap = mapper.setFUSV005205SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract (ISP) start use [C] |
| 7 | CALL | `dataMap = mapper.setFUSV005206SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Sub-option service contract (ISP) change [U] |
| 8 | CALL | `dataMap = mapper.setFUSV005207SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Progress registration [C] |
| 9 | CALL | `dataMap = mapper.setFUSV005208SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Order detail inquiry / follow-up request [R] |

**Block 9** — [SEQ] CC (Cross-Component) Invocations (L361–L375)

> Calls 5 Cross-Component methods for agreement review, service IF data transfer, and service order issuance.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dataMap = mapper.setFUSV005201CC(paramBean, dataMap)` // Option service contract (ISP) agreement review CC |
| 2 | CALL | `dataMap = mapper.setFUSV005202CC(paramBean, dataMap)` // Sub-option service contract agreement review CC |
| 3 | CALL | `dataMap = mapper.setFUSV005203CC(paramBean, dataMap, this)` // Service IF result data transfer CC |
| 4 | CALL | `dataMap = mapper.setFUSV005204CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2)` // Service order issuance CC |
| 5 | CALL | `dataMap = mapper.setFUSV005205CC(paramBean, dataMap)` // Service IF result data transfer CC |

**Block 10** — [EXEC] Set option service contract status (L378)

> Sets the option service contract status to "Mail" for billing purposes.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `JFUWebCommon.setOpSvcKeiStatMail(this, dataMap)` // Sets option service contract status to email billing |

**Block 11** — [TRY-CATCH] Service invocation (L382)

> Invokes the FUSV0052 BPM service with the prepared parameter and data maps, catching web service exceptions.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outputMap = new HashMap<Object, Object>()` // Output result map |
| 2 | CALL | `invokeService(paramMap, dataMap, outputMap)` // Invokes FUSV0052 BPM service |
| 3 | CATCH | `catch (JCCWebServiceException se) { checkException(se); }` // Handles web service exception |

**Block 12** — [SET] Next screen navigation (L389)

> Sets the next screen ID and name for post-confirmation navigation to FUW02102.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW02102)` // Sets next screen ID |
| 2 | EXEC | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW02102)` // Sets next screen name |

**Block 13** — [RETURN] (L393)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // Always returns true as per Javadoc contract |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `prcGrpCd` | Field | Pricing group code — classifies the pricing plan type (e.g., "04" for eo Light Net Management Type) |
| `kanyuKeiPayHoshikiCd` | Field | Subscription contract payment method code — identifies how the subscription payment is processed |
| `mryCapa` | Field | Free capacity (無効容量) — the amount of data capacity included free of charge |
| `gokei_capa` | Field | Total capacity after addition (追加後合計容量) — the sum of original capacity plus any added capacity |
| `mskm_capa` | Field | Subscription capacity (お申し込み容量) — the capacity amount the customer applied for |
| `payFlag` | Field | Paid service flag — indicates whether the service involves additional charges |
| `yuryo` | Field | Paid/chargeable (有料) — true when total capacity exceeds free capacity |
| `mansionDiv` | Field | Mansion division flag — determines if the customer qualifies for mansion-type service arrangement |
| `shk_add_capa` | Field | Short added capacity (追加容量) — the difference between total capacity and original short capacity |
| `shk_capa` | Field | Original short capacity — the base capacity before additions |
| `add_capa_list` | Field | Added capacity list — the list of capacity options available for selection |
| `select_value_01` | Field | Selected value code — the user's selected capacity type code |
| `gokei_capa_01` | Field | Total capacity field for capacity type 1 |
| `add_capa_01` | Field | Added capacity field for capacity type 1 |
| `svc_kei_ucwk_no` | Field | Service detail work number — internal tracking ID for service contract line items |
| `svc_kei_info` | Field | Service contract information — main service contract data from the common info bean |
| `sso_info` | Field | SSO (Single Sign-On) authentication information |
| `seiky_kei_info` | Field | Billing contract information (請求契約情報) — customer billing/contract data |
| `op_svc_kei_info` | Field | Option service contract information — data for optional services attached to the main service |
| `sbop_svc_kei_info` | Field | Sub-option service contract information — data for sub-option services under option services |
| `op_svc_kei_stat_mail` | Field | Option service contract status (email) — billing status indicator for email-based service contracts |
| `next_screen_id` | Field | Next screen identifier — the screen ID to navigate to after processing completes |
| `next_screen_name` | Field | Next screen name — the display name of the next screen |
| FUSV0052 | Use Case | Service orchestration use case — the central BPM service that handles all option/sub-option service contract operations for the subscription flow |
| FUW02101 | Screen | Subscription order confirmation screen — the screen where users confirm their service order details before submission |
| FUW02102 | Screen | Post-confirmation screen — the next screen after successful confirmation processing |
| SC | Technical | Service Component — the data access/service layer that performs CRUD operations on service entities |
| CC | Technical | Cross-Component — the business logic layer that handles inter-component operations like agreement review and data transfer |
| BPM | Technical | Business Process Management — the workflow engine (Fujitsu Futurity) that orchestrates the FUSV0052 service |
| ISP | Business term | Internet Service Provider — refers to ISP-related service contracts in the option/sub-option service chain |
| SETTE (設営) | Business term | Installation/setup — the process of setting up or provisioning telecom services |
| SWCH (切替) | Business term | Switch/swap — changing between service plans or configurations |
| KRK (繰越) | Business term | Rollover — carrying over unused capacity or credits |
| KJINF (切出情報) | Business term | Switching-out information — data about services being switched out or deactivated |
| SAKSI (起動) | Business term | Activation/launch — the process of starting or activating a service |
| JOKEN (制限) | Technical | Restriction — service restrictions or limitations applied to customer accounts |
| NAIYO_CD (内容コード) | Field | Content code — classifies the type of service order or content |
| FUNC_CD_2 | Constant | Function code 2 — indicates order screen processing mode in the service framework |
| USECASE_ID | Field | Use case identifier — identifies which BPM use case to invoke for service orchestration |
| JCCBatCommon | Class | Common batch processing utility — provides the `invokeService` method for calling BPM services |
| JCCWebServiceException | Exception | Web service exception class — thrown when a remote service invocation fails |
| JPCModelConstant | Class | Model constant definitions — provides constant values for function codes and other model-level settings |
