# Business Logic — KKW01027SF03DBean.listKoumokuIds() [32 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA15001SF.KKW01027SF03DBean` |
| Layer | Web View Bean (Controller / View Component — part of the Fujitsu Futurity X33 web framework) |
| Module | `KKA15001SF` (Package: `eo.web.webview.KKA15001SF`) |

## 1. Role

### KKW01027SF03DBean.listKoumokuIds()

This method provides the canonical list of 29 UI field labels (display names in Japanese) for the **Campaign List** data type bean used in K-Opticom's campaign management screens. It serves as a metadata factory for the Futurity X33 framework's data type viewer — the view framework consults this list to know which fields to render in a table or form for the campaign-related detail screen (KKW01027SF03D). The labels cover contract metadata (contract type, campaign code, type code, service code, service contract number), date fields (desired start date with year/month/day components, application month), display/operation conditions for conditional UI elements (radio buttons), and router information (EO multifunction router replacement flag, owned router). The method is static and parameterless, returning a fresh `ArrayList<String>` each time — it is purely a read-only descriptor with no side effects, no database access, and no conditional logic. It is the data type bean equivalent of a schema or column definition list, telling the X33VViewBaseBean framework which columns to display and in what order.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    STEP1(["Create empty ArrayList<String> koumokuList"])
    STEP2(["Add 29 Japanese display labels to koumokuList in fixed order"])
    STEP3(["Return koumokuList"])
    END(["Return ArrayList<String>"])

    START --> STEP1 --> STEP2 --> STEP3 --> END
```

This method has no conditional branches, no loops beyond the implicit iteration of 29 sequential `add()` calls, and no external dependencies. It constructs the list in a fixed, deterministic order that dictates the column order of the Campaign List data type viewer. The flow is strictly linear: create, populate, return.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method is static and parameterless. It returns a complete, fixed set of 29 UI field labels for the Campaign List screen. |

## 4. CRUD Operations / Called Services

This method performs no CRUD operations, makes no service component (SC) calls, no CBS (Common Business Service) calls, and no database queries. It constructs and returns an in-memory list of string literals only.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | — | — | — | No data access operations. Pure metadata list construction. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW01027SF | `KKW01027SFBean.typeModelData("キャンペーン一覧")` -> `KKW01027SF03DBean.listKoumokuIds()` | (none — metadata only) |

**Caller Details:**

- **`KKW01027SFBean`** (koptWebA: `eo.web.webview.KKA15001SF.KKW01027SFBean`, koptWebB: `eo.web.webview.KKW01027SF.KKW01027SFBean`): The parent screen bean's `typeModelData()` method dispatches to `KKW01027SF03DBean.listKoumokuIds()` when the incoming `key` parameter is `"キャンペーン一覧"` (Campaign List). This is the standard X33VListedBeanInterface data type router pattern — when a listed screen encounters a data-type-viewer-type field, it delegates to the named data type bean to discover the field names.
- **`CCW00203SFBean`** (koptWebB): Also references `listKoumokuIds()` in a variant that overrides with a `key` parameter, delegating to `super.listKoumokuIds(key)`.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] `(L1718)` Create and populate the result list

> Initializes the output list and adds all 29 Japanese display labels. Each `add()` call appends one column label in the fixed order that determines the column rendering sequence in the Campaign List data type viewer.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Create empty result list |
| 2 | SET | `koumokuList.add("登録選択")` // [L1719] Registration Selection (checkbox for row selection) |
| 3 | SET | `koumokuList.add("登録選択文字列")` // [L1720] Registration Selection String (display text for the selection checkbox) |
| 4 | SET | `koumokuList.add("SYSID")` // [L1721] System ID — unique record identifier |
| 5 | SET | `koumokuList.add("契約種別")` // [L1722] Contract Type — classification of the service contract |
| 6 | SET | `koumokuList.add("キャンペーンコード")` // [L1723] Campaign Code — unique code identifying the promotional campaign |
| 7 | SET | `koumokuList.add("キャンペーンコード名称")` // [L1724] Campaign Code Name — human-readable name of the campaign |
| 8 | SET | `koumokuList.add("タイプコード")` // [L1725] Type Code — subtype classification within the campaign |
| 9 | SET | `koumokuList.add("タイプコード名称")` // [L1726] Type Code Name — human-readable name of the type code |
| 10 | SET | `koumokuList.add("サービスコード")` // [L1727] Service Code — identifier for the offered service (e.g., FTTH, Mail) |
| 11 | SET | `koumokuList.add("サービス契約番号")` // [L1728] Service Contract Number — the contract reference for this service |
| 12 | SET | `koumokuList.add("即時適用フラグ")` // [L1729] Immediate Application Flag — indicates if the campaign applies immediately |
| 13 | SET | `koumokuList.add("適用月")` // [L1730] Application Month — the month the campaign becomes effective |
| 14 | SET | `koumokuList.add("適用月名称")` // [L1731] Application Month Name — human-readable month label |
| 15 | SET | `koumokuList.add("利用開始希望日")` // [L1732] Desired Start Date — customer-requested service start date |
| 16 | SET | `koumokuList.add("利用開始希望日[年]")` // [L1733] Desired Start Date [Year] — year component of start date |
| 17 | SET | `koumokuList.add("利用開始希望日[月]")` // [L1734] Desired Start Date [Month] — month component of start date |
| 18 | SET | `koumokuList.add("利用開始希望日[日]")` // [L1735] Desired Start Date [Day] — day component of start date |
| 19 | SET | `koumokuList.add("表示条件1")` // [L1736] Display Condition 1 — first conditional rendering rule |
| 20 | SET | `koumokuList.add("表示条件2")` // [L1737] Display Condition 2 — second conditional rendering rule |
| 21 | SET | `koumokuList.add("表示条件利用開始希望日")` // [L1738] Display Condition Desired Start Date — start date governed by display condition |
| 22 | SET | `koumokuList.add("適用月名称ラジオボタン1")` // [L1739] Application Month Name Radio Button 1 — first radio button option |
| 23 | SET | `koumokuList.add("適用月名称ラジオボタン2")` // [L1740] Application Month Name Radio Button 2 — second radio button option |
| 24 | SET | `koumokuList.add("EO光多機能ルーター交換有無")` // [L1741] EO Multifunction Router Replacement — flag for router exchange |
| 25 | SET | `koumokuList.add("EO光多機能ルーター交換有無ラジオボタン1名称")` // [L1742] EO Multifunction Router Replacement Radio Button 1 Name |
| 26 | SET | `koumokuList.add("EO光多機能ルーター交換有無ラジオボタン2名称")` // [L1743] EO Multifunction Router Replacement Radio Button 2 Name |
| 27 | SET | `koumokuList.add("EO光多機能ルーター交換有無ラジオボタン表示条件")` // [L1744] EO Multifunction Router Replacement Radio Button Display Condition |
| 28 | SET | `koumokuList.add("EO光多機能ルーター交換有無ラジオボタン操作条件")` // [L1745] EO Multifunction Router Replacement Radio Button Operation Condition |
| 29 | SET | `koumokuList.add("所有ルーター")` // [L1746] Owned Router — indicates customer-owned router status |
| 30 | RETURN | `return koumokuList;` // [L1748] Return the populated list of 29 field labels |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `add_choice` | Field | Registration selection — checkbox for selecting rows in a data type viewer table |
| `add_choice_value` | Field | Registration selection string — the text displayed for the selection checkbox |
| KKW01027SF03D | Screen | Campaign List data type bean — handles the Campaign List view for screen KKW01027SF |
| KKW01027SF | Screen | K-Opticom campaign management screen — screen managing campaign configuration |
| KKA15001SF | Module | WebView module — web presentation layer module handling campaign and contract views |
| SYSID | Field | System ID — unique database record identifier |
| 契約種別 (kei_kind) | Field | Contract Type — classification of the service contract line |
| キャンペーンコード | Field | Campaign Code — unique code identifying a promotional campaign |
| タイプコード | Field | Type Code — subtype code within a campaign offering |
| サービスコード (svc_cd) | Field | Service Code — identifier for the telecom service type (e.g., FTTH fiber, Mail) |
| サービス契約番号 (svc_kei_no) | Field | Service Contract Number — contract reference number for the service |
| 即時適用フラグ (aply_jun) | Field | Immediate Application Flag — whether the campaign applies immediately upon registration |
| 適用月 (tekiyo_ymd) | Field | Application Month — the effective month when the campaign starts |
| 利用開始希望日 (riyo_sta_ymd) | Field | Desired Start Date — the date from which the customer wishes to begin using the service |
| 表示条件 (disp_jkn) | Field | Display Condition — rules governing whether a UI field is visible |
| ラジオボタン | Field | Radio Button — mutually selectable UI control for campaign options |
| EO光多機能ルーター交換有無 | Field | EO Multifunction Router Replacement — flag indicating whether to replace the EO-brand multi-function router |
| 所有ルーター (use_rtr) | Field | Owned Router — indicates whether the customer already owns a router |
| Futurity X33 | Framework | Fujitsu Futurity X33 — the enterprise Java web application framework used to build K-Opticom's customer-facing screens |
| X33VListedBeanInterface | Interface | X33 Framework listed bean contract — requires implementing `listKoumokuIds()` to define the visible fields for a listed screen |
| X33VDataTypeBeanInterface | Interface | X33 Framework data type bean contract — requires implementing `typeModelData()` for runtime type introspection |
| データタイプビューン (Data Type Bean) | Pattern | A X33 framework pattern where a bean declares its own field schema (names, types, enabling rules) for rendering in data type viewer UI components |
| キャンペーン一覧 (Campaign List) | Field Key | The X33 framework key that triggers `listKoumokuIds()` — used by the parent bean to delegate field name discovery |
| koptWebA | Deployment | K-Opticom web application module A — the primary web module (migrated from koptWebB in 2015 per ANK-2631) |
| koptWebB | Deployment | K-Opticom web application module B — the legacy web module, superseded by koptWebA |
