# Business Logic — FUW02701SFLogic.getCommoninfoBeanInfo() [127 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW02701SF.FUW02701SFLogic` |
| Layer | Service (Web-view business logic layer) |
| Module | `FUW02701SF` (Package: `eo.web.webview.FUW02701SF`) |

## 1. Role

### FUW02701SFLogic.getCommoninfoBeanInfo()

This method is a **common information extraction and consolidation utility** used across multiple entry points (cfm(), init(), mskm()) within the FUW02701SF web screen logic. It extracts, validates, and assembles the complete business information tree from a hierarchical data bean structure (`X31SDataBeanAccess`) into a flat key-value `Map<String, Object>` that other methods in the screen can consume directly.

The method traverses a nested bean hierarchy representing **Single Sign-On (SSO) user identity**, **existing customer contract information**, **service contract details**, **service contract line items**, **billing contract information**, and **optional service contracts**. For optional service contracts, it performs a **filter-and-select dispatch**: it iterates over an array of optional service contract lines, matches them by web ID and service code (specifically `B002` — "My Homepage"), and resolves their status using CD00037 codes. If a matching optional service contract is found, it further drills into **sub-optional service contracts**, skipping any that have been terminated (status 910) or cancelled (status 920), and identifies the specific sub-contract that matches the optional service contract number and carries code `D04` — "Home page capacity addition".

The method implements a **routing/dispatch design pattern** through its conditional branches: it validates the SSO WebID first (throwing a system error if absent), then conditionally resolves optional and sub-optional service contracts only if a matching primary optional contract exists. All extracted beans and scalar values are placed into a `resultMap` and returned as a unified view. Its role in the larger system is that of a **shared data aggregator** — it does not perform any persistence operations; it only reads from the incoming bean structure and returns a consolidated snapshot.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["getCommoninfoBeanInfo"])
    
    START --> INIT["Create resultMap HashMap"]
    INIT --> GET_WEB_CHG["Get WEB_CHG_INFO from commoninfoBean"]
    GET_WEB_CHG --> GET_SSO["Get SSO_INFO from webChgInfoBean"]
    GET_SSO --> GET_SSO_SYSID["Extract ssoInfoSysid"]
    GET_SSO_SYSID --> GET_SSO_WEBID["Extract ssoInfoWebid"]
    
    GET_SSO_WEBID --> CHECK_WEBID{ssoInfoWebid isNull?}
    CHECK_WEBID -->|true| THROW_WEBID["Throw ERROR_CODE_0002"]
    CHECK_WEBID -->|false| GET_SSO_POPID["Extract ssoInfoPopid"]
    
    GET_SSO_POPID --> GET_GEN_CUST["Get GEN_CUST_KEI_INFO bean"]
    GET_GEN_CUST --> GET_SVC_KEI["Get SVC_KEI_INFO bean"]
    GET_SVC_KEI --> GET_SVC_UCWK["Get SVC_KEI_UCWK_INFO bean"]
    GET_SVC_UCWK --> GET_SEIKY["Get SEIKY_KEI_INFO bean"]
    
    GET_SEIKY --> OPSVC_LOOP{Loop opSvcKeiInfoArray}
    OPSVC_LOOP -->|m < count| OPSVC_EXTRACT["Extract webid, opSvCd, opSvcKeiStat"]
    OPSVC_EXTRACT --> OPSVC_STATUS{opSvcKeiStat in 020,030,100?}
    
    OPSVC_STATUS -->|false| OPSVC_INC["Increment m"]
    OPSVC_INC --> OPSVC_LOOP
    
    OPSVC_STATUS -->|true| OPSVC_MATCH{webid match AND opSvCd=B002?}
    OPSVC_MATCH -->|true| SET_OPSVC["Set opSvcKeiInfoBean"]
    OPSVC_MATCH -->|false| OPSVC_INC2["Increment m"]
    SET_OPSVC --> OPSVC_INC3["Increment m"]
    OPSVC_INC2 --> OPSVC_LOOP
    OPSVC_INC3 --> OPSVC_LOOP
    
    OPSVC_LOOP -->|m >= count| CHECK_OPSVC{opSvcKeiInfoBean != null?}
    CHECK_OPSVC -->|false| MAP_DATA["Map all data into resultMap"]
    
    CHECK_OPSVC -->|true| GET_OP_NO["Extract opInfoOpSvcKeiNo"]
    GET_OP_NO --> CHECK_OP_NO{opInfoOpSvcKeiNo isNull?}
    CHECK_OP_NO -->|true| THROW_OP_NO["Throw ERROR_CODE_0002"]
    
    CHECK_OP_NO -->|false| GET_SBOP_ARRAY["Get SBOP_SVC_KEI_INFO array"]
    GET_SBOP_ARRAY --> SBOP_LOOP{Loop sbopSvcKeiInfoArray}
    SBOP_LOOP -->|n < count| SBOP_EXTRACT["Extract opSvcKeiNo, sbopSvcKeiStat, sbopSvCd"]
    SBOP_EXTRACT --> SBOP_STAT_CHECK{sbopSvcKeiStat in 910,920?}
    
    SBOP_STAT_CHECK -->|true| SBOP_SKIP["Skip (continue)"]
    SBOP_SKIP --> SBOP_INC["Increment n"]
    SBOP_INC --> SBOP_LOOP
    
    SBOP_STAT_CHECK -->|false| SBOP_MATCH{opSvcKeiNo match AND sbopSvCd=D04?}
    SBOP_MATCH -->|true| SET_SBOP["Set sbopSvcKeiInfoBean"]
    SBOP_MATCH -->|false| SBOP_INC2["Increment n"]
    SET_SBOP --> SBOP_INC3["Increment n"]
    SBOP_INC2 --> SBOP_LOOP
    SBOP_INC3 --> SBOP_LOOP
    
    SBOP_LOOP -->|n >= count| MAP_DATA
    THROW_WEBID --> MAP_DATA
    THROW_OP_NO --> MAP_DATA
    
    MAP_DATA --> RETURN(["Return resultMap"])
```

**Branch Summary with Constant Resolution:**

| Branch | Condition | Constant | Resolved Value | Business Meaning |
|--------|-----------|----------|----------------|-----------------|
| WebID validation | `isNull(ssoInfoWebid)` | — | — | Throws ERROR_CODE_0002 if SSO WebID not set |
| Optional svc status filter | `opSvcKeiStat in [CD00037_020, CD00037_030, CD00037_100]` | `CD00037_020` | `"020"` | Optional service contract: consultation completed |
| | | `CD00037_030` | `"030"` | Optional service contract: contract concluded |
| | | `CD00037_100` | `"100"` | Optional service contract: service in progress |
| Optional svc matching | `opSvCd == CD00136_B002` | `CD00136_B002` | `"B002"` | My Homepage page type |
| Sub-optional skip | `sbopSvcKeiStat in [CD00037_910, CD00037_920]` | `CD00037_910` | `"910"` | Sub-optional service: terminated |
| | | `CD00037_920` | `"920"` | Sub-optional service: cancelled |
| Sub-optional matching | `sbopSvCd == CD00137_D04` | `CD00137_D04` | `"D04"` | Home page capacity addition |
| OpSvcKeiNo validation | `isNull(opInfoOpSvcKeiNo)` | — | — | Throws ERROR_CODE_0002 if optional service contract number not set |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `commoninfoBean` | `X31SDataBeanAccess` | The root data bean carrying the full common information context for the current screen session. It contains a nested hierarchy of sub-beans: WEB_CHG_INFO (WEB change info) containing SSO_INFO, GEN_CUST_KEI_INFO (existing customer contract info), SVC_KEI_INFO (service contract info) which in turn contains SVC_KEI_UCWK_INFO (service contract detail info) and SEIKY_KEI_INFO (billing contract info). The bean is used purely for read — its data is extracted and re-packed into a flat result map. |

No instance fields or external state is directly read by this method. All data flows through the `commoninfoBean` parameter.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `OneStopDataBeanAccessArray.getCount` | - | - | Reads array count of optional service contract bean array |
| R | `OneStopDataBeanAccess.getDataBeanArray` | - | - | Extracts nested bean arrays (WEB_CHG_INFO, SSO_INFO, GEN_CUST_KEI_INFO, SVC_KEI_INFO, SVC_KEI_UCWK_INFO, SEIKY_KEI_INFO, OP_SVC_KEI_INFO, SBOP_SVC_KEI_INFO) from the data bean hierarchy |
| R | `OneStopDataBeanAccess.getDataBean` | - | - | Retrieves individual bean elements from array containers |
| R | `OneStopDataBeanAccess.sendMessageString(String, String)` | - | - | Extracts scalar values (webid, service codes, statuses, sysid, popid) from bean nodes |
| R | `JACBatCommon.isNull` | - | - | Null-check utility for validating extracted string fields (ssoInfoWebid, opInfoOpSvcKeiNo) |

**Analysis Notes:**
- This method performs **zero Create, Update, or Delete** operations. It is a pure **Read-only** extraction method.
- No direct database or SC (Service Component) calls are made. All data originates from the `commoninfoBean` parameter, which was populated by earlier screen processing steps.
- The `sendMessageString` calls with `DATABEAN_GET_VALUE` command are the mechanism by which scalar data is read from `X31SDataBeanAccess` nodes.
- Null checks use `JACBatCommon.isNull`, a common utility for validating string fields.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | FUW02701SFLogic.cfm() | `FUW02701SFLogic.cfm()` → `getCommoninfoBeanInfo(commoninfoBean)` | `sendMessageString [R]`, `getDataBeanArray [R]`, `getDataBean [R]` |
| 2 | FUW02701SFLogic.init() | `FUW02701SFLogic.init()` → `getCommoninfoBeanInfo(commoninfoBean)` | `sendMessageString [R]`, `getDataBeanArray [R]`, `getDataBean [R]` |
| 3 | FUW02701SFLogic.mskm() | `FUW02701SFLogic.mskm()` → `getCommoninfoBeanInfo(commoninfoBean)` | `sendMessageString [R]`, `getDataBeanArray [R]`, `getDataBean [R]` |

**Notes:**
- No external screen entry points (KKSV*) or batch entry points are directly linked within 8 hops. All callers are within the same `FUW02701SFLogic` class.
- This method serves as a **shared data aggregation hub** for three key screen lifecycle methods: `cfm()` (likely a confirmation/formatting step), `init()` (initialization), and `mskm()` (likely a mask or masking-related step).
- Terminal operations are all **read operations** on the in-memory data bean structure — no database writes.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] `(L707)` Initialize result map

| # | Type | Code |
|---|------|------|
| 1 | SET | `resultMap = new HashMap<String, Object>()` |

**Block 2** — [CALL] `(L710-711)` Extract WEB_CHG_INFO and SSO_INFO from bean hierarchy

| # | Type | Code |
|---|------|------|
| 1 | CALL | `webChgInfoBean = commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO)` | // WEB change info — nested bean array |
| 2 | CALL | `ssoInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.SSO_INFO).getDataBean(0)` | // SSO info — first element |

**Block 3** — [CALL] `(L714-715)` Extract SSO scalar values

| # | Type | Code |
|---|------|------|
| 1 | CALL | `ssoInfoSysid = ssoInfoBean.sendMessageString(CommonInfoCFConst.SYSID_21, X31CWebConst.DATABEAN_GET_VALUE)` | // System ID |
| 2 | CALL | `ssoInfoWebid = ssoInfoBean.sendMessageString(CommonInfoCFConst.WEB_ID_21, X31CWebConst.DATABEAN_GET_VALUE)` | // Web ID |

**Block 4** — [IF] `(isNull(ssoInfoWebid))` [WEB ID not set] (L716)

> The SSO WebID is mandatory. If missing, logs an error message "【SSO WebID not set error】" and throws a system-level business exception.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `X31SWebLog.DEBUG_LOG.debug("【SSO WebID not set error】")` // English: "[SSO WebID not set error]" |
| 2 | CALL | `throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002)` |

**Block 5** — [CALL] `(L719)` Extract SSO POP ID

| # | Type | Code |
|---|------|------|
| 1 | CALL | `ssoInfoPopid = ssoInfoBean.sendMessageString(CommonInfoCFConst.POP_ID_21, X31CWebConst.DATABEAN_GET_VALUE)` | // POP ID (Point of Presence) |

**Block 6** — [CALL] `(L722-726)` Extract customer and contract bean hierarchy

| # | Type | Code |
|---|------|------|
| 1 | CALL | `genCustKeiInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO).getDataBean(0)` | // Existing customer contract info |
| 2 | CALL | `svcKeiInfoBean = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO).getDataBean(0)` | // Service contract info |
| 3 | CALL | `svcKeiUcwkInfoBean = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_UCWK_INFO).getDataBean(0)` | // Service contract detail info |
| 4 | CALL | `seikyKeiInfoBean = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SEIKY_KEI_INFO).getDataBean(0)` | // Billing contract info |

**Block 7** — [SET] `(L729-730)` Initialize optional service contract variables

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKeiInfoBean = null` | // Optional service contract (confirmed) |
| 2 | SET | `sbopSvcKeiInfoBean = null` | // Sub-optional service contract (confirmed) |

**Block 8** — [CALL] `(L733)` Get optional service contract array

| # | Type | Code |
|---|------|------|
| 1 | CALL | `opSvcKeiInfoArray = svcKeiUcwkInfoBean.getDataBeanArray(CommonInfoCFConst.OP_SVC_KEI_INFO)` | // Optional service contract array |

**Block 9** — [FOR] `(int m = 0; m < opSvcKeiInfoArray.getCount())` — Iterate optional service contracts (L735)

**Block 9.1** — [CALL] `(L738-741)` Extract fields from current optional service contract

| # | Type | Code |
|---|------|------|
| 1 | CALL | `tmpOpSvcKeiInfoBean = opSvcKeiInfoArray.getDataBean(m)` | // Current op service contract (work use) |
| 2 | CALL | `opSvcKeiInfoWebid = tmpOpSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.WEB_ID_28, X31CWebConst.DATABEAN_GET_VALUE)` | // WEB ID |
| 3 | CALL | `opSvCd = tmpOpSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.OP_SVC_CD_28, X31CWebConst.DATABEAN_GET_VALUE)` | // Optional service code |
| 4 | CALL | `opSvcKeiStat = tmpOpSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_STAT_28, X31CWebConst.DATABEAN_GET_VALUE)` | // Optional service contract status |

**Block 9.2** — [IF] `(opSvcKeiStat in [CD00037_020, CD00037_030, CD00037_100])` [Active statuses only] `(CD00037_020="020", CD00037_030="030", CD00037_100="100")` (L744)

> Only optional service contracts with statuses "020: consultation completed", "030: contract concluded", or "100: service in progress" are eligible for matching.

**Block 9.2.1** — [IF] `(ssoInfoWebid equals opSvcKeiInfoWebid && opSvCd == CD00136_B002)` [Match on WebID and My Homepage] `(CD00136_B002="B002")` (L747)

> Matches the optional service contract whose web ID matches the current SSO user's WebID AND whose service code is "B002" (My Homepage).

| # | Type | Code |
|---|------|------|
| 1 | SET | `opSvcKeiInfoBean = tmpOpSvcKeiInfoBean` | // Optional service contract (confirmed) |

**Block 10** — [IF] `(opSvcKeiInfoBean != null)` — Sub-optional resolution only if matching optional contract found (L760)

> Only when an optional service contract was successfully matched does the method proceed to resolve sub-optional service contracts.

**Block 10.1** — [CALL] `(L763)` Extract optional service contract number

| # | Type | Code |
|---|------|------|
| 1 | CALL | `opInfoOpSvcKeiNo = opSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_NO_28, X31CWebConst.DATABEAN_GET_VALUE)` | // Optional service contract number |

**Block 10.2** — [IF] `(isNull(opInfoOpSvcKeiNo))` [Optional service contract number not set] (L764)

> If the matched optional service contract lacks a contract number, logs an error and throws system exception.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `X31SWebLog.DEBUG_LOG.debug("【Optional service contract number not set error】")` // English: "[Optional service contract number not set error]" |
| 2 | CALL | `throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002)` |

**Block 11** — [CALL] `(L772)` Get sub-optional service contract array from the first element of the optional service array

| # | Type | Code |
|---|------|------|
| 1 | CALL | `sbopSvcKeiInfoArray = opSvcKeiInfoArray.getDataBean(0).getDataBeanArray(CommonInfoCFConst.SBOP_SVC_KEI_INFO)` | // Sub-optional service contract array — taken from the first element of the optional service array |

**Block 12** — [FOR] `(int n = 0; n < sbopSvcKeiInfoArray.getCount())` — Iterate sub-optional service contracts (L774)

**Block 12.1** — [CALL] `(L777-780)` Extract fields from current sub-optional contract

| # | Type | Code |
|---|------|------|
| 1 | CALL | `tmpSbopSvcKeiInfoBean = sbopSvcKeiInfoArray.getDataBean(n)` | // Current sub-optional (work use) |
| 2 | CALL | `opSvcKeiNo = tmpSbopSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_NO_29, X31CWebConst.DATABEAN_GET_VALUE)` | // Optional service contract number |
| 3 | CALL | `sbopSvcKeiStat = tmpSbopSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.SBOP_SVC_KEI_STAT_29, X31CWebConst.DATABEAN_GET_VALUE)` | // Sub-optional service contract status |
| 4 | CALL | `sbopSvCd = tmpSbopSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.SBOP_SVC_CD_29, X31CWebConst.DATABEAN_GET_VALUE)` | // Sub-optional service code |

**Block 12.2** — [IF] `(sbopSvcKeiStat in [CD00037_910, CD00037_920])` [Skip terminated/cancelled] `(CD00037_910="910", CD00037_920="920")` (L785)

> Sub-optional service contracts with status "910: terminated" or "920: cancelled" are skipped via continue — they cannot be the target of capacity addition.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `continue` | // Skip this sub-optional contract |

**Block 12.3** — [IF] `(opInfoOpSvcKeiNo equals opSvcKeiNo && sbopSvCd == CD00137_D04)` [Match on contract number and capacity addition] `(CD00137_D04="D04")` (L792)

> Matches the sub-optional contract whose optional service contract number matches the parent's number AND whose service code is "D04" (Home page capacity addition).

| # | Type | Code |
|---|------|------|
| 1 | SET | `sbopSvcKeiInfoBean = tmpSbopSvcKeiInfoBean` | // Sub-optional service contract (confirmed) |

**Block 13** — [EXEC] `(L799-824)` Map all extracted data into result map

> This block consolidates all scalar values and bean references into the flat `resultMap`. This is the final output assembly step.

| # | Type | Code |
|---|------|------|
| 1 | SET | `resultMap.put(CommonInfoCFConst.SYSID_21, ssoInfoSysid)` | // System ID |
| 2 | SET | `resultMap.put(CommonInfoCFConst.WEB_ID_21, ssoInfoWebid)` | // Web ID |
| 3 | SET | `resultMap.put(CommonInfoCFConst.POP_ID_21, ssoInfoPopid)` | // POP ID |
| 4 | SET | `resultMap.put(CommonInfoCFConst.SSO_INFO, ssoInfoBean)` | // SSO info |
| 5 | SET | `resultMap.put(CommonInfoCFConst.GEN_CUST_KEI_INFO, genCustKeiInfoBean)` | // Existing customer contract info |
| 6 | SET | `resultMap.put(CommonInfoCFConst.SVC_KEI_INFO, svcKeiInfoBean)` | // Service contract info |
| 7 | SET | `resultMap.put(CommonInfoCFConst.SVC_KEI_UCWK_INFO, svcKeiUcwkInfoBean)` | // Service contract detail info |
| 8 | SET | `resultMap.put(CommonInfoCFConst.SEIKY_KEI_INFO, seikyKeiInfoBean)` | // Billing contract info |
| 9 | SET | `resultMap.put(CommonInfoCFConst.OP_SVC_KEI_INFO, opSvcKeiInfoBean)` | // Optional service contract info (may be null) |
| 10 | SET | `resultMap.put(CommonInfoCFConst.SBOP_SVC_KEI_INFO, sbopSvcKeiInfoBean)` | // Sub-optional service contract info (may be null) |

**Block 14** — [RETURN] `(L826)` Return the consolidated map

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return resultMap` | |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `WEB_CHG_INFO` | Field | WEB change information — the bean namespace containing all WEB-level change data |
| `SSO_INFO` | Field | Single Sign-On information — user identity data (system ID, web ID, POP ID) |
| `SYSID_21` | Field | System ID (21-character length) — identifies the SSO system |
| `WEB_ID_21` | Field | Web ID (21-character length) — identifies the SSO web user |
| `POP_ID_21` | Field | POP ID (21-character length) — identifies the Point of Presence |
| `GEN_CUST_KEI_INFO` | Field | Existing customer contract information — customer's primary contract data |
| `SVC_KEI_INFO` | Field | Service contract information — the service-level contract details |
| `SVC_KEI_UCWK_INFO` | Field | Service contract detail information — line items / sub-contracts under the service |
| `SEIKY_KEI_INFO` | Field | Billing contract information — invoicing and payment contract data |
| `OP_SVC_KEI_INFO` | Field | Optional service contract information — optional/add-on service contracts |
| `SBOP_SVC_KEI_INFO` | Field | Sub-optional service contract information — sub-contracts of optional services |
| `WEB_ID_28` | Field | Web ID (28-character length) — identifies the web account for optional service contracts |
| `OP_SVC_CD_28` | Field | Optional service code (28-character length) — classifies the type of optional service |
| `OP_SVC_KEI_STAT_28` | Field | Optional service contract status (28-character length) — lifecycle state of the optional contract |
| `OP_SVC_KEI_NO_28` | Field | Optional service contract number (28-character length) — unique identifier of the optional service contract |
| `OP_SVC_CD_29` | Field | Sub-optional service code (29-character length) — classifies the type of sub-optional service |
| `SBOP_SVC_KEI_STAT_29` | Field | Sub-optional service contract status (29-character length) — lifecycle state of the sub-optional contract |
| `OP_SVC_KEI_NO_29` | Field | Optional service contract number for sub-optional (29-character length) — references parent optional contract |
| CD00037_020 | Constant | Status code "020" — optional service contract: consultation completed (照会済) |
| CD00037_030 | Constant | Status code "030" — optional service contract: contract concluded (締結済) |
| CD00037_100 | Constant | Status code "100" — optional service contract: service in progress (サービス提供中) |
| CD00037_910 | Constant | Status code "910" — sub-optional service contract: terminated (解消済) |
| CD00037_920 | Constant | Status code "920" — sub-optional service contract: cancelled (キャンセル済) |
| CD00136_B002 | Constant | Service code "B002" — My Homepage (B002 My Homepageページ) |
| CD00137_D04 | Constant | Service code "D04" — Home page capacity addition (ホームページ容量追加) |
| ERROR_CODE_0002 | Constant | System error code — thrown when mandatory SSO data is missing |
| X31SDataBeanAccess | Type | Hierarchical data bean container — holds nested bean arrays and scalar values |
| X31SDataBeanAccessArray | Type | Array wrapper for data bean collections — supports count-based iteration |
| X31CWebConst.DATABEAN_GET_VALUE | Constant | Command string for extracting scalar values from a data bean node |
| JACBatCommon.isNull | Method | Utility method for null/empty string validation |
| SSO | Acronym | Single Sign-On — user authentication identity system |
| POP | Acronym | Point of Presence — network access point identifier |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband service (contextual domain) |
| `sssid` | Field | System ID — the SSO system identifier for the current user session |
| WebID | Field | Web ID — the user's web login identifier within the SSO system |
| opSvcKeiNo | Field | Optional service contract number — unique identifier for an optional service contract line |
| opSvcKeiStat | Field | Optional service contract status — tracks the lifecycle stage of an optional contract |
| sbopSvcKeiStat | Field | Sub-optional service contract status — tracks the lifecycle of sub-optional contracts |
