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

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA16801SF.KKW02516SF01DBean` |
| Layer | Component — Data Bean (Webview, K-Opticom framework) |
| Module | `KKA16801SF` (Package: `eo.web.webview.KKA16801SF`) |

## 1. Role

### KKW02516SF01DBean.listKoumokuIds()

This method is a static factory that returns a fixed, ordered list of field name strings used as column identifiers in the KKA16801SF screen's data type bean. It serves as a shared lookup utility that supplies the canonical set of displayable field labels for the **Customer Contract History Screen** (顧客契約引継リスト — Customer Contract Inheritance List), which is part of K-Opticom's telecom order fulfillment system for managing service contract transfers and changes. The method implements the **builder pattern** in its simplest form: it constructs an immutable (at runtime, via fixed calls) `ArrayList<String>` and returns it by value, with no conditional branching or external dependencies. As a static method, it functions as a shared utility callable from any class within the `KKA16801SF` package, providing a single source of truth for the field ordering and naming convention used across the screen's data grid, dropdowns, and export views.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    CREATE["Create ArrayList<String> koumokuList"]
    ADD1["Add: SYSID"]
    ADD2["Add: サービス契約番号 (SVC_KEI_NO)"]
    ADD3["Add: 異動区分 (IDO_DIV)"]
    ADD4["Add: 異動理由コード"]
    ADD5["Add: 異動理由メモ"]
    ADD6["Add: オプションサービス契約番号 (OP_SVC_KEI_NO)"]
    ADD7["Add: 処理区分 (TRAN_DIV)"]
    ADD8["Add: 申込番号 (MSKM_NO)"]
    ADD9["Add: 申込明細番号 (MSKM_DTL_NO)"]
    RETURN["Return koumokuList"]
    END(["Return / Next"])

    START --> CREATE
    CREATE --> ADD1
    ADD1 --> ADD2
    ADD2 --> ADD3
    ADD3 --> ADD4
    ADD4 --> ADD5
    ADD5 --> ADD6
    ADD6 --> ADD7
    ADD7 --> ADD8
    ADD8 --> ADD9
    ADD9 --> RETURN
    RETURN --> END
```

This method has no conditional branches, no loops, and no method calls beyond `ArrayList`'s own constructor and `add()`. It executes a linear sequence of 11 operations: create the list, add 9 string literals (each a Japanese field name defined as a constant in `KKW02516SFConst`), and return the list.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a stateless factory that always returns the same ordered list. |

## 4. CRUD Operations / Called Services

This method performs no database operations, no service component calls, and no CRUD operations. It constructs a simple in-memory `ArrayList` and returns it.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | `ArrayList.<init>()` | — | — | In-memory list construction |
| — | `ArrayList.add()` | — | — | 9 sequential adds of Japanese field name literals |

No SC Codes or DB tables are involved.

## 5. Dependency Trace

No callers were found for `KKW02516SF01DBean.listKoumokuIds()` across the entire codebase. This method appears to be a public API intended for consumption by classes within the `KKA16801SF` module that may be generated or invoked at runtime through the K-Opticom X33 web framework's reflection-based bean metadata system.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | (none found) | — | — |

## 6. Per-Branch Detail Blocks

**Block 1** — [STATEMENT] `(L606)`

> Create a new ArrayList and populate it with 9 field name literals.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Instantiate an empty list |
| 2 | EXEC | `koumokuList.add("SYSID");` // SYSID — system identifier column name [-> CONSTANT: SYSID="SYSID"] |
| 3 | EXEC | `koumokuList.add("サービス契約番号");` // Service contract number [-> CONSTANT: SVC_KEI_NO="サービス契約番号"] |
| 4 | EXEC | `koumokuList.add("異動区分");` // Change classification (e.g., addition, deletion, modification) [-> CONSTANT: IDO_DIV="異動区分"] |
| 5 | EXEC | `koumokuList.add("異動理由コード");` // Change reason code [-> CONSTANT: IDO_RSN_CD (part of IDO_RSN_LIST)] |
| 6 | EXEC | `koumokuList.add("異動理由メモ");` // Change reason memo/note [-> CONSTANT: (part of IDO_RSN_LIST)] |
| 7 | EXEC | `koumokuList.add("オプションサービス契約番号");` // Option service contract number [-> CONSTANT: OP_SVC_KEI_NO="オプションサービス契約番号"] |
| 8 | EXEC | `koumokuList.add("処理区分");` // Processing classification [-> CONSTANT: TRAN_DIV="処理区分"] |
| 9 | EXEC | `koumokuList.add("申込番号");` // Application number [-> CONSTANT: MSKM_NO="申込番号"] |
| 10 | EXEC | `koumokuList.add("申込明細番号");` // Application detail number [-> CONSTANT: MSKM_DTL_NO="申込明細番号"] |

**Block 2** — [STATEMENT] `(L615)`

> Return the fully populated list.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return koumokuList;` // Return the 9-field list to the caller |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SYSID` | Field | System ID — the fixed system identifier column used as a primary key or routing token in the data bean |
| `サービス契約番号` | Field | Service Contract Number — unique identifier for a customer's telecom service agreement (SVC_KEI_NO) |
| `異動区分` | Field | Change Classification — categorizes the type of contract change (e.g., addition, deletion, modification); maps to IDO_DIV constant |
| `異動理由コード` | Field | Change Reason Code — codes the specific reason for a contract modification; part of the IDO_RSN_LIST constant group |
| `異動理由メモ` | Field | Change Reason Memo — free-text notes explaining why a contract change was made |
| `オプションサービス契約番号` | Field | Option Service Contract Number — secondary service contract ID for add-on/option services (OP_SVC_KEI_NO) |
| `処理区分` | Field | Processing Classification — categorizes the processing stage or type of the contract operation (TRAN_DIV) |
| `申込番号` | Field | Application Number — the primary reference ID for a customer's application/request (MSKM_NO) |
| `申込明細番号` | Field | Application Detail Number — the sub-line item ID within an application (MSKM_DTL_NO) |
| KKW02516SF | Module | K-Opticom screen module for Customer Contract History (顧客契約引継リスト), supporting contract transfer and modification operations |
| DBean | Technical term | Data Bean — a K-Opticom framework class holding screen-level data structures, constants, and lookup methods; distinct from the main view Bean |
| X33 | Technical term | Fujitsu Futurity X33 — the web framework providing the bean infrastructure (X33VViewBaseBean, X33VListedBeanInterface) |
| 顧客契約引継リスト | Field | Customer Contract Inheritance List — the screen/business object that displays historical contract transfer records |
| WO7 | Business term | Work Order 7 — internal K-Opticom project code for the WansuTOP Step 2 migration from koptWebB to koptWebA |
| IDO_RSN_LIST | Constant | Change Reason List — a constant holding the list of field names for change reasons (異動理由コード, 異動理由メモ) |
