# Business Logic — KKW01034SF01DBean.listKoumokuIds() [13 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW01034SF.KKW01034SF01DBean` |
| Layer | Utility (Data Bean / DBean — shared data carrier in the web MVC layer) |
| Module | `KKW01034SF` (Package: `eo.web.webview.KKW01034SF`) |

## 1. Role

### KKW01034SF01DBean.listKoumokuIds()

This method serves as the **column ID definition provider** for the data type bean `KKW01034SF01DBean`. It returns a fixed ordered list of string identifiers (column IDs) that represent the fields exposed in the data binding layer for the "Customer Contract Continuation List" (`顧客契約引継リスト`) screen component. The method implements the **static factory pattern** — it is declared `public static`, meaning it can be invoked without instantiating the bean, making it a convenient utility for the framework to discover column metadata before populating list views.

The returned list is consumed by the parent bean `KKW01034SFBean` via its `listKoumokuIds(String key)` routing method, which dispatches to this static method when the screen requests column IDs for the key "顧客契約引継リスト" (Customer Contract Continuation List). The method plays a critical role in the **data binding / view model layer**, ensuring the frontend knows which columns to render in the customer contract continuation list table.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    CREATE["Create ArrayList<String> koumokuList"]
    ADD1["Add: SSPIID"]
    ADD2["Add: 顧客契約番号 (Customer Contract Number)"]
    ADD3["Add: 異動区分 (Change Type)"]
    ADD4["Add: 異動理由コード (Change Reason Code)"]
    ADD5["Add: 異動理由メモ (Change Reason Memo) ANK-2755"]
    ADD6["Add: 申込む番号 (Application Number) ANK-2755"]
    ADD7["Add: 申込む明細番号 (Application Detail Number) ANK-2755"]
    RETURN1["Return koumokuList (8 items)"]

    START --> CREATE --> ADD1 --> ADD2 --> ADD3 --> ADD4 --> ADD5 --> ADD6 --> ADD7 --> RETURN1
```

This method follows a strictly **linear sequential processing pattern** with no conditional branches, loops, or error handling. It creates an `ArrayList`, appends eight string literals representing column identifiers in a fixed order, and returns the list. The order of items is intentional — it reflects the display sequence of columns in the associated UI table.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This is a static method with no parameters. It operates purely as a factory that returns predefined column metadata. |

**Instance fields or external state:** This method does not read any instance fields or external state. It is a pure function of its own internal logic.

## 4. CRUD Operations / Called Services

This method performs **no database operations, no service calls, and no CRUD operations**. It is a pure data factory that assembles a static list of string identifiers in memory.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| (none) | — | — | — | No CRUD operations — returns a static ArrayList of column ID strings. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW01034SF | `KKW01034SFBean.listKoumokuIds(key)` -> `KKW01034SF01DBean.listKoumokuIds()` [when key="顧客契約引継リスト"] | `listKoumokuIds []` (static factory, no DB) |

The only known caller is the parent bean `KKW01034SFBean` in module `KKW01034SF`, which acts as a routing dispatcher. When the screen requests column IDs for the data type "顧客契約引継リスト" (Customer Contract Continuation List), it delegates to this static method.

## 6. Per-Branch Detail Blocks

**Block 1** — [PROCESSING] `(no condition — linear execution)` (L542)

> Create the ArrayList and populate it with column ID strings in fixed order.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Create new list for column IDs |
| 2 | EXEC | `koumokuList.add("SSPIID");` // Add system field: SSPIID (system-level identifier) |
| 3 | EXEC | `koumokuList.add("顧客契約番号");` // Add: Customer Contract Number |
| 4 | EXEC | `koumokuList.add("異動区分");` // Add: Change Type — distinguishes between different kinds of contract modifications |
| 5 | EXEC | `koumokuList.add("異動理由コード");` // Add: Change Reason Code — codified reason for the contract change |
| 6 | EXEC | `koumokuList.add("異動理由メモ");` // Add: Change Reason Memo (ANK-2755, 2016/08/10 ADD) |
| 7 | EXEC | `koumokuList.add("申込む番号");` // Add: Application Number (ANK-2755, 2016/08/10 ADD) |
| 8 | EXEC | `koumokuList.add("申込む明細番号");` // Add: Application Detail Number (ANK-2755, 2016/08/10 ADD) |
| 9 | RETURN | `return koumokuList;` // Return list containing 8 column ID strings |

**Block 1.1** — [CHANGE HISTORY: ANK-2755] `(fields added on 2016/08/10)` (L549–L551)

> Three additional columns were introduced: Change Reason Memo, Application Number, and Application Detail Number. These fields were appended to the end of the list via the `add()` calls above.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("異動理由メモ");` // Change Reason Memo — free-text field for change descriptions |
| 2 | EXEC | `koumokuList.add("申込む番号");` // Application Number — unique identifier for the application request |
| 3 | EXEC | `koumokuList.add("申込む明細番号");` // Application Detail Number — line-item identifier within an application |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SSPIID` | Field | System-level unique identifier — internal tracking ID assigned by the platform framework for each bean instance |
| `顧客契約番号` | Field | Customer Contract Number — the primary identifier for a customer's service contract |
| `異動区分` | Field | Change Type — classifies the kind of contract modification (e.g., new, cancel, suspend, resume) |
| `異動理由コード` | Field | Change Reason Code — a coded value explaining why the contract status was changed |
| `異動理由メモ` | Field | Change Reason Memo — free-text supplementary notes about the contract change (added 2016/08/10) |
| `申込む番号` | Field | Application Number — the ID of the service application request |
| `申込む明細番号` | Field | Application Detail Number — the line-item identifier within a service application |
| DBean | Acronym | Data Bean — a serializable data carrier class that holds form/list/view data for a specific screen; used in the web MVC layer |
| ANK-2755 | Reference | Internal ticket number for the enhancement that added the three new columns (Change Reason Memo, Application Number, Application Detail Number) on 2016/08/10 |
| data type bean | Concept | A bean class that defines the structure of list item data for a screen; each data type bean exposes its column IDs via `listKoumokuIds()` so the framework can generate dynamic table headers |
| KKW01034SF | Module | Screen module handling customer contract continuation/inheritance operations |
