# Business Logic — KKW00844SF02DBean.listKoumokuIds() [6 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00844SF.KKW00844SF02DBean` |
| Layer | Web View Bean (Data Type Bean) — part of the presentation tier's data-binding layer |
| Module | `KKW00844SF` (Package: `eo.web.webview.KKW00844SF`) |

## 1. Role

### KKW00844SF02DBean.listKoumokuIds()

This method serves as the **item-name supplier** for the Data Type Bean view system. It defines the set of field identifiers (item names) that the framework uses as column headers and data keys when rendering a "Change Reason List" (`異動理由リスト`, item ID: `ido_rsn_list`) on the screen. Specifically, it returns an `ArrayList<String>` containing exactly two entries: `"異動理由コード"` (Change Reason Code) and `"異動理由メモ"` (Change Reason Memo). These strings function as the display labels for the two data columns in a repeating list view, where each row represents a single change event and its associated memo.

The method is called by the parent bean (`KKW00844SFBean`) during screen initialization when it needs to determine the column structure for the change reason repeating section. It acts as a **data definition endpoint** — not performing any business computation, but providing the static metadata required by the Data Type view framework to bind and display the `KKW00844SF02DBean` instances in a tabular list. This is a classic **Delegation pattern** where the top-level screen bean delegates item-name resolution to the specific Data Type Bean that owns the data structure.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    STEP1["Create ArrayList<String> koumokuList"]
    STEP2["Add Change Reason Code (異動理由コード)"]
    STEP3["Add Change Reason Memo (異動理由メモ)"]
    END_NODE["Return koumokuList"]

    START --> STEP1 --> STEP2 --> STEP3 --> END_NODE
```

The method has **no conditional branches** — it executes a linear, deterministic sequence: create a list, populate it with exactly two hardcoded Japanese item name strings, and return it. There are no parameter validations, no constant lookups, and no branching logic. The method is entirely stateless.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | - |

This method takes no parameters and performs no external state reads. It is a pure function returning a static definition list.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations** and calls **no external services**. It does not interact with databases, invoke SC/CBS components, or modify any persistent state. It is a pure data definition method returning hardcoded strings.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW00844SF | `KKW00844SFBean.listKoumokuIds(key)` -> `KKW00844SF02DBean.listKoumokuIds()` | N/A — returns item name list only |

**Caller detail:**

The caller is `KKW00844SFBean.listKoumokuIds(String key)` at line 1461 of `KKW00844SFBean.java`. The parent bean's `listKoumokuIds` method dispatches based on the `key` parameter — when `key.equals("異動理由リスト")` (Change Reason List), it delegates to `KKW00844SF02DBean.listKoumokuIds()` to obtain the item name list for that specific repeating data type section. The `KKW00844SFBean` is the top-level screen bean for the change reason screen, so this call chain is reached during the screen's data initialization phase.

## 6. Per-Branch Detail Blocks

### Block 1 — STATIC RETURN `listKoumokuIds()` (L226)

> Creates and returns a static list of two Japanese item name strings used as column identifiers for the Change Reason List repeating section.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Create empty list [L227] |
| 2 | EXEC | `koumokuList.add("異動理由コード");` // Add "Change Reason Code" (異動理由コード) [L228] |
| 3 | EXEC | `koumokuList.add("異動理由メモ");` // Add "Change Reason Memo" (異動理由メモ) [L229] |
| 4 | RETURN | `return koumokuList;` // Return the 2-element list [L230] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `異動理由コード` (ido_rsn_cd) | Field | Change Reason Code — a code identifying the type of change event (e.g., service suspension, termination, modification) |
| `異動理由メモ` (ido_rsn_memo) | Field | Change Reason Memo — free-text memo field explaining the details of the change event |
| `異動理由リスト` (ido_rsn_list) | Field | Change Reason List — item ID for a repeating list section on the screen that displays change event records |
| Data Type Bean | Pattern | A bean that represents a single row of repeating data in a list view; defined by its item names (`listKoumokuIds`) and data types (`typeModelData`) |
| KKW00844SF | Module | Screen module identifier for the change reason / service status inquiry screen |
| KKW00844SFBean | Class | Top-level screen bean that coordinates multiple Data Type Beans for the screen |
| KKW00844SF01DBean | Class | Data Type Bean for the "Customer Contract Succession List" (顧客契約引継リスト) — sibling of KKW00844SF02DBean |
| KKW00844SF02DBean | Class | Data Type Bean for the "Change Reason List" (異動理由リスト) — defines the structure of change reason rows |
| X33VDataTypeList | Class | Framework class representing a typed list container for repeating view data |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity (used across related modules such as KKW00844SF) |
