# Business Logic — CRW02702SF01DBean.listKoumokuIds() [17 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.CRW02702SF.CRW02702SF01DBean` |
| Layer | Webview / Data Bean (Controller-adjacent presentation layer) |
| Module | `CRW02702SF` (Package: `eo.web.webview.CRW02702SF`) |

## 1. Role

### CRW02702SF01DBean.listKoumokuIds()

This method provides the list of column field names (項目名) used to define the column headers and data bindings for a UI list grid that displays **Option Service Contract List Confirmation Details** (オプションサービス契約一覧照会詳細). It acts as a declarative schema provider — returning a fixed, ordered `ArrayList<String>` of 13 Japanese-language field identifiers that the web framework uses to render table headers, bind data cells, and manage display properties for the screen.

The method follows a **static factory pattern**: it is `public static`, so it can be invoked from the parent bean (`CRW02702SFBean`) without instantiating the data bean first. This is a common design in this codebase where data type beans (データタイプビーン) expose metadata — such as column names and type info — as class-level static methods so that parent screens or dispatch beans can query them generically.

It serves as a **shared metadata provider** consumed by multiple screens across the webview module. It does not perform any CRUD operations, does not read from any external state, and has no conditional branches — its sole responsibility is returning a constant list of column labels that correspond to the 13 protected fields defined in `CRW02702SF01DBean`.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    INIT["Initialize ArrayList<String> koumokuList"]
    ADD1["Add: 明細インデックス (Detail Index)"]
    ADD2["Add: オプションサービス名 (Option Service Name)"]
    ADD3["Add: オプション内容 (Option Content)"]
    ADD4["Add: サブオプション内容 (Sub-Option Content)"]
    ADD5["Add: 利用状態 (Usage Status)"]
    ADD6["Add: 利用開始日 (Usage Start Date)"]
    ADD7["Add: 解約予定日 (Cancellation Planned Date)"]
    ADD8["Add: 利用終了日 (Usage End Date)"]
    ADD9["Add: オプションサービス契約番号 (Option Service Contract Number)"]
    ADD10["Add: オプションサービスコード (Option Service Code)"]
    ADD11["Add: オプション内容リンク表示フラグ (Option Content Link Display Flag)"]
    ADD12["Add: 行スタイルクラス (Row Style Class)"]
    ADD13["Add: 行スタイルID (Row Style ID)"]
    RETURN["Return koumokuList"]

    START --> INIT
    INIT --> ADD1
    ADD1 --> ADD2
    ADD2 --> ADD3
    ADD3 --> ADD4
    ADD4 --> ADD5
    ADD5 --> ADD6
    ADD6 --> ADD7
    ADD7 --> ADD8
    ADD8 --> ADD9
    ADD9 --> ADD10
    ADD10 --> ADD11
    ADD11 --> ADD12
    ADD12 --> ADD13
    ADD13 --> RETURN
```

**Processing Description:**

The method performs a simple sequential population of an `ArrayList<String>`:

1. **Initialize** — Creates a new `ArrayList<String>` named `koumokuList` (項目リスト, column name list).
2. **Append 13 field name strings** — Each `add()` call appends one column label in Japanese, representing a display column for the Option Service Contract list. The order is significant: the framework uses positional binding to associate each list element with a corresponding field on the bean.
3. **Return** — Returns the populated list. No transformation, filtering, or conditional branching is applied.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a parameterless static accessor that returns a fixed schema. |

**Fields referenced:** None. This method does not read any instance fields or external state.

## 4. CRUD Operations / Called Services

This method performs no database or service component calls. It is a pure data provider with no I/O side effects.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | — | — | — | No CRUD operations. Pure metadata provider returning a static list of column field names. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:CRW02702SF (via CRW02702SFBean) | `CRW02702SFBean.listKoumokuIds(key)` -> `CRW02702SF01DBean.listKoumokuIds()` (when `key == "オプションサービス契約一覧照会詳細"`) | — |

**Caller Analysis:**

The sole direct caller is the parent bean `CRW02702SFBean`, which dispatches to `CRW02702SF01DBean.listKoumokuIds()` when the `key` parameter matches the data type item name **"オプションサービス契約一覧照会詳細"** (Option Service Contract List Confirmation Detail). This dispatch pattern is used by the X33V web framework to support multiple data type beans within a single screen, each providing its own column metadata.

The `key` string corresponds to the UI list item ID `ekk0351b002cbsmsg1list`. No other classes in the codebase directly invoke `CRW02702SF01DBean.listKoumokuIds()` — all access routes through `CRW02702SFBean`.

## 6. Per-Branch Detail Blocks

This method contains no conditional branches, loops, or exception handling. It is a flat, linear method consisting of a single block.

> **Block 1** — [LINEAR] `(no condition)` (L866)

> Create and populate a fixed list of 13 column field names for the Option Service Contract list display.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Initialize new empty list |
| 2 | EXEC | `koumokuList.add("明細インデックス");` // Add Detail Index column label [-> corresponds to field `l_detail_index_*`] |
| 3 | EXEC | `koumokuList.add("オプションサービス名");` // Add Option Service Name column label [-> corresponds to field `l_op_svc_cd_nm_*`] |
| 4 | EXEC | `koumokuList.add("オプション内容");` // Add Option Content column label [-> corresponds to field `l_op_svc_niy_*`] |
| 5 | EXEC | `koumokuList.add("サブオプション内容");` // Add Sub-Option Content column label [-> corresponds to field `l_sbop_svc_niy_*`] |
| 6 | EXEC | `koumokuList.add("利用状態");` // Add Usage Status column label [-> corresponds to field `l_op_svc_kei_stat_nm_*`] |
| 7 | EXEC | `koumokuList.add("利用開始日");` // Add Usage Start Date column label [-> corresponds to field `l_svc_staymd_*`] |
| 8 | EXEC | `koumokuList.add("解約予定日");` // Add Cancellation Planned Date column label [-> corresponds to field `l_rsv_tsta_kibo_ymd_*`] |
| 9 | EXEC | `koumokuList.add("利用終了日");` // Add Usage End Date column label [-> corresponds to field `l_svc_endymd_*`] |
| 10 | EXEC | `koumokuList.add("オプションサービス契約番号");` // Add Option Service Contract Number column label [-> corresponds to field `l_op_svc_kei_no_*`] |
| 11 | EXEC | `koumokuList.add("オプションサービスコード");` // Add Option Service Code column label [-> corresponds to field `l_op_svc_cd_*`] |
| 12 | EXEC | `koumokuList.add("オプション内容リンク表示フラグ");` // Add Option Content Link Display Flag column label [-> corresponds to field `l_op_svc_niy_link_dsp_flg_*`] |
| 13 | EXEC | `koumokuList.add("行スタイルクラス");` // Add Row Style Class column label [-> corresponds to field `l_line_style_class_*`] |
| 14 | EXEC | `koumokuList.add("行スタイルID");` // Add Row Style ID column label [-> corresponds to field `l_line_style_id_*`] |
| 15 | RETURN | `return koumokuList;` // Return the 13-element list |

**Field Correlation:**

Each list index maps positionally to the bean's protected field groups:

| Index | Field Label (Japanese) | Corresponding Bean Fields |
|-------|----------------------|--------------------------|
| 0 | 明細インデックス | `l_detail_index_update`, `l_detail_index_value`, `l_detail_index_enabled`, `l_detail_index_state` |
| 1 | オプションサービス名 | `l_op_svc_cd_nm_update`, `l_op_svc_cd_nm_value`, `l_op_svc_cd_nm_enabled`, `l_op_svc_cd_nm_state` |
| 2 | オプション内容 | `l_op_svc_niy_update`, `l_op_svc_niy_value`, `l_op_svc_niy_enabled`, `l_op_svc_niy_state` |
| 3 | サブオプション内容 | `l_sbop_svc_niy_update`, `l_sbop_svc_niy_value`, `l_sbop_svc_niy_enabled`, `l_sbop_svc_niy_state` |
| 4 | 利用状態 | `l_op_svc_kei_stat_nm_update`, `l_op_svc_kei_stat_nm_value`, `l_op_svc_kei_stat_nm_enabled`, `l_op_svc_kei_stat_nm_state` |
| 5 | 利用開始日 | `l_svc_staymd_update`, `l_svc_staymd_value`, `l_svc_staymd_enabled`, `l_svc_staymd_state` |
| 6 | 解約予定日 | `l_rsv_tsta_kibo_ymd_update`, `l_rsv_tsta_kibo_ymd_value`, `l_rsv_tsta_kibo_ymd_enabled`, `l_rsv_tsta_kibo_ymd_state` |
| 7 | 利用終了日 | `l_svc_endymd_update`, `l_svc_endymd_value`, `l_svc_endymd_enabled`, `l_svc_endymd_state` |
| 8 | オプションサービス契約番号 | `l_op_svc_kei_no_update`, `l_op_svc_kei_no_value`, `l_op_svc_kei_no_state` |
| 9 | オプションサービスコード | `l_op_svc_cd_update`, `l_op_svc_cd_value`, `l_op_svc_cd_state` |
| 10 | オプション内容リンク表示フラグ | `l_op_svc_niy_link_dsp_flg_update`, `l_op_svc_niy_link_dsp_flg_value`, `l_op_svc_niy_link_dsp_flg_state` |
| 11 | 行スタイルクラス | `l_line_style_class_update`, `l_line_style_class_value`, `l_line_style_class_state` |
| 12 | 行スタイルID | `l_line_style_id_update`, `l_line_style_id_value`, `l_line_style_id_state` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `listKoumokuIds` | Method | Column name list getter — returns the ordered list of Japanese field labels used as grid column headers |
| 項目名 (koumoku-me) | Field | Column name / field name — the Japanese label displayed as a table header in the web UI |
| データタイプビーン (data taipu biin) | Concept | Data type bean — a presentation-layer bean that defines the structure (fields, types, metadata) of data displayed in a screen component |
| オプションサービス契約一覧照会詳細 | Field | Option Service Contract List Confirmation Detail — the specific screen view whose column layout this method defines |
| 明細インデックス (meisai index) | Field | Detail Index — a positional or row index used to uniquely identify rows within a data grid |
| オプションサービス名 (opushon saabisu me) | Field | Option Service Name — the human-readable name of an optional service attached to a contract |
| オプション内容 (opushon naiyo) | Field | Option Content — the descriptive content or type of an optional service |
| サブオプション内容 (sabu opushon naiyo) | Field | Sub-Option Content — content for a sub-tier optional service nested under a parent option |
| 利用状態 (riyou joutai) | Field | Usage Status — the current operational status of an option service (active, suspended, etc.) |
| 利用開始日 (riyou kaishi-bi) | Field | Usage Start Date — the date when the option service began being provided |
| 解約予定日 (kaiyaku yotei-bi) | Field | Cancellation Planned Date — the scheduled date for terminating the option service |
| 利用終了日 (riyou shuuryou-bi) | Field | Usage End Date — the actual date the option service ended (completed or terminated) |
| オプションサービス契約番号 (opushon saabisu keiyaku bangou) | Field | Option Service Contract Number — the unique identifier for an option service contract line item |
| オプションサービスコード (opushon saabisu koodo) | Field | Option Service Code — the system code identifying the type of option service |
| オプション内容リンク表示フラグ (opushon naiyo linku hyouji furagu) | Field | Option Content Link Display Flag — a boolean flag controlling whether the option content is rendered as a clickable hyperlink |
| 行スタイルクラス (gyou sutairu kuris) | Field | Row Style Class — the CSS class name applied to a grid row for visual styling |
| 行スタイルID (gyou sutairu ID) | Field | Row Style ID — a DOM-style identifier applied to a grid row for targeted styling |
| CRW02702SF | Module | Option Service Contract List — the screen module handling option service contract confirmation and display |
| X33VDataTypeBeanInterface | Interface | Fujitsu X33V framework interface marking a bean as a data type definition bean |
| X33VListedBeanInterface | Interface | Fujitsu X33V framework interface marking a bean as supporting list/grid data display |
