# Business Logic — KKW01033SF01DBean.listKoumokuIds() [16 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW01033SF.KKW01033SF01DBean` |
| Layer | Utility (Data Type Bean — `*DBean`) |
| Module | `KKW01033SF` (Package: `eo.web.webview.KKW01033SF`) |

## 1. Role

### KKW01033SF01DBean.listKoumokuIds()

This method serves as a **data type bean metadata provider** for the KKW01033SF screen module. It returns a predefined list of Japanese field names (項目名 — *koumoku-me*) that represent the column headers and data fields displayed on a service-contract management screen, likely used for generating dynamic table displays or form layouts at runtime.

The method implements the **static factory / metadata supplier pattern**: by being declared `public static`, it can be invoked from any context without requiring an instance of the DBean, making it a lightweight, shared data structure provider. This is consistent with the broader `*DBean` convention in this codebase, where DBean classes act as declarative metadata holders rather than logic carriers.

The returned field list covers core **service contract management** concepts: service contract number, sub-contract detail number, change classification (異動区分), change reason code, application number, application detail number, popup mode, screen transition pattern, and external system code. The last entry — external system code (`外部システムコード`) — was added under an Ordinance case (STEP2, ANK-2693-00-00) change request, indicating the method evolves alongside regulatory requirements.

This method has **no conditional branches** and **no external method calls**. It is a pure data builder. No direct callers were found in the codebase, suggesting it may be invoked indirectly through a reflection-based metadata scanning framework or a naming convention convention used by a screen generation utility.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])

    START --> L1["L1: Create ArrayList"]

    L1 --> L2["L2: add SSSID"]
    L2 --> L3["L3: add サービス契約番号
(Service Contract Number)"]
    L3 --> L4["L4: add サービス契約内訳番号
(Service Contract Sub-item Number)"]
    L4 --> L5["L5: add 異動区分
(Change Classification)"]
    L5 --> L6["L6: add 異動理由コード
(Change Reason Code)"]
    L6 --> L7["L7: add 申込番号
(Application Number)"]
    L7 --> L8["L8: add 申込詳細番号
(Application Detail Number)"]
    L8 --> L9["L9: add ポップアップモード
(Popup Mode)"]
    L9 --> L10["L10: add 異動区分選択画面遷移パターン
(Change Classification Selection
Screen Transition Pattern)"]
    L10 --> L11["L11: add 外部システムコード
(External System Code)
[ANK-2693-00-00 STEP2]"]
    L11 --> END(["Return ArrayList<String>"])
```

The method executes as a **linear, sequential sequence** of `ArrayList.add()` calls. There are no conditionals, loops, or branching logic. Each `add()` call appends one Japanese field name to the list in a fixed, domain-defined order. The final list is returned to the caller.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a parameterless static factory that returns a fixed list of field metadata. |

**Instance fields / external state:** None. This method reads no instance fields and depends on no external state. It is fully self-contained and deterministic.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations** and **calls no service components**. It is a pure in-memory data builder that constructs and returns an `ArrayList<String>` without interacting with any database, CBS, or SC layer.

## 5. Dependency Trace

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

**Note:** No direct callers were found across the full codebase (`koptWebB` and `koptWebR` search roots). The method is a `public static` utility and may be invoked by a runtime reflection-based metadata scanner, a code-generation framework, or a screen configuration system that resolves `*DBean.listKoumokuIds()` by convention. If used by a screen, the caller chain would likely follow a pattern such as `ScreenBean` → `DBean.listKoumokuIds()`.

## 6. Per-Branch Detail Blocks

The method contains no branching logic. The entire method body is a single linear block.

**Block 1** — [SEQUENTIAL] (L632–L647)

> Build an ArrayList of field name strings and return it. This is a flat, sequential block with no conditions or loops. Each `add()` call appends one domain-specific field name in display order.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList = new ArrayList<String>();` // Create empty list for field name metadata |
| 2 | ADD | `koumokuList.add("SSSID");` // Internal system identifier code |
| 3 | ADD | `koumokuList.add("サービス契約番号");` // Service Contract Number — the primary contract identifier |
| 4 | ADD | `koumokuList.add("サービス契約内訳番号");` // Service Contract Sub-item Number — line item within a contract |
| 5 | ADD | `koumokuList.add("異動区分");` // Change Classification — categorizes the type of contract modification (addition, cancellation, modification, etc.) |
| 6 | ADD | `koumokuList.add("異動理由コード");` // Change Reason Code — codes the reason for the contract change |
| 7 | ADD | `koumokuList.add("申込番号");` // Application Number — the customer application / order submission ID |
| 8 | ADD | `koumokuList.add("申込詳細番号");` // Application Detail Number — sub-detail within an application |
| 9 | ADD | `koumokuList.add("ポップアップモード");` // Popup Mode — flag indicating popup display mode for UI behavior |
| 10 | ADD | `koumokuList.add("異動区分選択画面遷移パターン");` // Change Classification Selection Screen Transition Pattern — navigation pattern for the change-type selection screen |
| 11 | ADD | `koumokuList.add("外部システムコード");` // External System Code — identifier for an external system; added under ANK-2693-00-00 Ordinance Case (STEP2) |
| 12 | RETURN | `return koumokuList;` // Return the completed list of field names |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SSSID` | Field | Internal system identifier code — a machine-readable system ID used as a primary key or routing key |
| `サービス契約番号` (Service Contract Number) | Field | The primary contract number assigned to a customer service agreement |
| `サービス契約内訳番号` (Service Contract Sub-item Number) | Field | The sub-detail / line item number within a service contract, allowing multiple service lines under one contract |
| 異動区分 (Change Classification) | Field | Categorizes the type of contract change: e.g., new connection, cancellation, modification, transfer |
| 異動理由コード (Change Reason Code) | Field | The coded reason explaining why a contract change was made |
| 申込番号 (Application Number) | Field | The customer application / order submission number — the primary reference for a service request |
| 申込詳細番号 (Application Detail Number) | Field | Sub-detail number within an application, corresponding to a specific item or option requested |
| ポップアップモード (Popup Mode) | Field | UI mode flag indicating whether the screen renders in a popup window or inline |
| 異動区分選択画面遷移パターン (Change Classification Selection Screen Transition Pattern) | Field | Navigation pattern definition determining how the user is routed to the change classification selection screen |
| 外部システムコード (External System Code) | Field | Code identifying an external system involved in the service process; added in the ANK-2693-00-00 Ordinance Case STEP2 change |
| DBean | Pattern | Data Bean — a `*DBean` class that holds metadata (field names, data types) for screen rendering, not business logic |
| *DBean (naming convention) | Convention | Classes named `XXX01DBean` in this codebase serve as declarative data type metadata holders, typically containing factory methods like `listKoumokuIds()` for dynamic UI generation |
| ANK-2693-00-00 | Change request ID | Ordinance Case (STEP2) — a regulatory compliance change request that added external system code to the field list |
| 項目名 (Koumoku-me) | Domain term | Field name / column name — the display label used for UI columns and form fields |
