# Business Logic — KKW22101SF01DBean.listKoumokuIds() [27 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW22101SF.KKW22101SF01DBean` |
| Layer | View Bean / Web Component (Package: `eo.web.webview.KKW22101SF`) |
| Module | `KKW22101SF` (Package: `eo.web.webview.KKW22101SF`) |

## 1. Role

### KKW22101SF01DBean.listKoumokuIds()

This method serves as the **field-name registry** for a data-type bean used within the KKW22101SF screen module, which handles customer contract succession operations in K-Opticom's telecom service management system. The method implements the **Factory/List-builder pattern** by constructing a predefined `ArrayList<String>` that enumerates all 24 field labels (item names) that the web screen renders for the Customer Contract Succession List data view. Each element in the returned list represents a column header or display label for a specific data item — such as Service Contract Number, Change Division, Price Plan Code, and Discount Auto-Apply Target External Flag — used when building SelectItem dropdowns and list display tables. Its role in the larger system is that of a **shared utility** within the X33 framework's data-type bean infrastructure: the parent bean (`KKW22101SFBean.listKoumokuIds(String key)`) dispatches to this method when the key matches the "Customer Contract Succession List" (顧客契約引継リスト) data type item, enabling dynamic UI field resolution without hardcoding field names at the screen level.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    STEP1["Create new ArrayList<String> koumokuList"]
    STEP2["Add 24 item names to list:
SSISD, Service Contract No,
Change Division, Change Reason Code,
Change Reason Memo, Change Division
Screen Transfer Pattern, Optional
Service Contract No, Process Division,
Application No, Application Detail No,
Specific ID Item Name, Specific ID
Item Value, Popup Mode, Service Code,
Price Group Code, Price Course Code,
Price Plan Code, Before Change
Service Code, Before Change Price
Group Code, Before Change Price
Course Code, Before Change Price
Plan Code, Discount Auto-Apply
Target External Flag, External System Code"]
    END(["Return koumokuList"])

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> END
```

**Processing summary:** This is a linear, sequential list-builder with no conditional branches. The method:

1. **Creates** a new `ArrayList<String>` instance called `koumokuList`.
2. **Appends** 24 hardcoded Japanese field labels (item names) in a fixed, business-defined order using `ArrayList.add()`. The first element `"SSISD"` serves as a unique identifier tag for this data-type bean's field set.
3. **Returns** the populated list, which the calling code then uses to populate UI field definitions (e.g., `SelectItem` dropdown options for screen column labels).

## 3. Parameter Analysis

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

This method takes no parameters. It produces a deterministic, fixed-length list of 24 field labels that maps to the Customer Contract Succession List view. The fixed order of elements is semantically significant — the index position of each label corresponds to a specific column/field position in the screen's data grid.

**Instance fields read:** None. This method reads no instance state; it is entirely self-contained and pure.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | (none) | — | — | This method performs no database reads, creates, updates, or deletes. It constructs an in-memory list and returns it. |

**Summary:** This method is a **pure data factory** — it has zero interaction with databases, service components, or external systems. It only builds and returns an in-memory `ArrayList<String>`.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Bean:KKW22101SFBean | `KKW22101SFBean.listKoumokuIds(String key)` → `KKW22101SF01DBean.listKoumokuIds()` | (none — pure in-memory factory) |

**Notes:** The sole known caller is `KKW22101SFBean.listKoumokuIds(String key)`, which dispatches to this method when the key equals `"顧客契約引継リスト"` (Customer Contract Succession List). The method is a leaf in the call tree with no downstream service or database dependencies.

## 6. Per-Branch Detail Blocks

> This method contains **no conditional branches** — it is a linear sequence. The blocks below represent each processing step in order.

---

**Block 1** — [SET] `(ArrayList instantiation)` (L1262)

This block creates the in-memory list that will hold the 24 field name strings.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Initialize empty list |

---

**Block 2** — [EXEC] `(add SSISD identifier)` (L1263)

The first element is a hardcoded tag `"SSISD"` that acts as a unique identifier for this data-type bean's field enumeration.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("SSISD");` // Unique data-type bean identifier tag |

---

**Block 3** — [EXEC] `(add Service Contract fields)` (L1264–L1265)

Adds core service contract identification fields.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("サービス契約番号");` // Service Contract Number |
| 2 | EXEC | `koumokuList.add("SSISD");` *(Note: second position is "サービス契約番号" — Service Contract Number, the primary business key)* |

> **Correction:** The second element added is `"サービス契約番号"` (Service Contract Number).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("サービス契約番号");` // Service Contract Number |

---

**Block 4** — [EXEC] `(add Change (異動) fields)` (L1265–L1266)

Adds fields related to contract change/division processing — the core "succession" (引継) workflow data items.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("異動区分");` // Change Division — type of contract change |
| 2 | EXEC | `koumokuList.add("異動理由コード");` // Change Reason Code |
| 3 | EXEC | `koumokuList.add("異動理由メモ");` // Change Reason Memo |
| 4 | EXEC | `koumokuList.add("異動区分選択画面遷移パターン");` // Change Division Selection Screen Transfer Pattern |

---

**Block 5** — [EXEC] `(add Optional and Process fields)` (L1267–L1268)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("オプションサービス契約番号");` // Optional Service Contract Number |
| 2 | EXEC | `koumokuList.add("処理区分");` // Process Division |

---

**Block 6** — [EXEC] `(add Application identification fields)` (L1269–L1270)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("申請番号");` // Application No. |
| 2 | EXEC | `koumokuList.add("申請明細番号");` // Application Detail No. |

---

**Block 7** — [EXEC] `(add Specific ID fields)` (L1271–L1272)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("特定ID項目名");` // Specific ID Item Name |
| 2 | EXEC | `koumokuList.add("特定ID項目値");` // Specific ID Item Value |

---

**Block 8** — [EXEC] `(add Popup Mode field)` (L1273)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("ポップアップモード");` // Popup Mode — indicates if the list is displayed in a popup context |

---

**Block 9** — [EXEC] `(add current service pricing fields)` (L1274–L1278)

Adds service identification and current pricing configuration fields.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("サービスコード");` // Service Code |
| 2 | EXEC | `koumokuList.add("料金グループコード");` // Price Group Code |
| 3 | EXEC | `koumokuList.add("料金コースコード");` // Price Course Code |
| 4 | EXEC | `koumokuList.add("料金プランコード");` // Price Plan Code |

---

**Block 10** — [EXEC] `(add before-change pricing fields)` (L1279–L1282)

These fields capture the **pre-change state** of service and pricing configuration, enabling comparison and audit trails during contract succession.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("変更前サービスコード");` // Before Change Service Code |
| 2 | EXEC | `koumokuList.add("変更前料金グループコード");` // Before Change Price Group Code |
| 3 | EXEC | `koumokuList.add("変更前料金コースコード");` // Before Change Price Course Code |
| 4 | EXEC | `koumokuList.add("変更前料金プランコード");` // Before Change Price Plan Code |

---

**Block 11** — [EXEC] `(add external system fields)` (L1283–L1284)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("割引自動適用対象外フラグ");` // Discount Auto-Apply Target External Flag — flag indicating whether discounts are excluded from auto-apply |
| 2 | EXEC | `koumokuList.add("外部システムコード");` // External System Code |

---

**Block 12** — [RETURN] `(return the list)` (L1285)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return koumokuList;` // Returns all 24 field names |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SSISD` | Field | Service Screen Item Source Design — unique data-type bean identifier tag that labels this specific field enumeration set |
| `サービス契約番号` | Field | Service Contract Number — the primary identifier for a customer's service contract line item |
| `異動区分` | Field | Change Division — classifies the type of contract change (e.g., new, modify, terminate) during succession processing |
| `異動理由コード` | Field | Change Reason Code — the coded reason for a contract change |
| `異動理由メモ` | Field | Change Reason Memo — free-text explanation for the contract change reason |
| `異動区分選択画面遷移パターン` | Field | Change Division Selection Screen Transfer Pattern — determines which screen to navigate to when selecting a change type |
| `オプションサービス契約番号` | Field | Optional Service Contract Number — identifies optional/add-on service contracts linked to the main contract |
| `処理区分` | Field | Process Division — categorizes the processing type (e.g., registration, amendment, cancellation) |
| `申請番号` | Field | Application Number — the unique identifier for a change application/registration request |
| `申請明細番号` | Field | Application Detail Number — sub-identifier for individual line items within an application |
| `特定ID項目名` | Field | Specific ID Item Name — name/label of a specific ID field used for targeted lookups |
| `特定ID項目値` | Field | Specific ID Item Value — the actual value of a specific ID field used for targeted lookups |
| `ポップアップモード` | Field | Popup Mode — indicates whether the list is displayed in a popup window context versus a full page |
| `サービスコード` | Field | Service Code — the code identifying the telecom service type (e.g., FTTH, Mail, ENUM) |
| `料金グループコード` | Field | Price Group Code — classifies the pricing tier or bundle group for the service |
| `料金コースコード` | Field | Price Course Code — identifies the specific pricing course/plan within a price group |
| `料金プランコード` | Field | Price Plan Code — identifies the exact price plan for billing purposes |
| `変更前サービスコード` | Field | Before Change Service Code — the service code **before** a contract succession change (pre-state) |
| `変更前料金グループコード` | Field | Before Change Price Group Code — the price group code before the change |
| `変更前料金コースコード` | Field | Before Change Price Course Code — the price course code before the change |
| `変更前料金プランコード` | Field | Before Change Price Plan Code — the price plan code before the change |
| `割引自動適用対象外フラグ` | Field | Discount Auto-Apply Target External Flag — indicates whether discounts should be excluded from automatic application |
| `外部システムコード` | Field | External System Code — identifies the external system involved in the contract operation |
| `顧客契約引継リスト` | Business term | Customer Contract Succession List — the data type item name that triggers this method's invocation; represents a screen view for managing contract handover/succession records |
| KKW22101SF | Module | K-Opticom Web Customer Contract Succession screen module — handles customer contract succession (transfer/amendment) operations |
| KKW22101SF01DBean | Class | Data-type bean class for the Customer Contract Succession screen — implements `X33VDataTypeBeanInterface` for field definition and data binding |
| X33 Framework | Technical | Fujitsu Futurity X33 web application framework — provides data-type bean infrastructure, view bean interfaces, and screen lifecycle management |
| X33VDataTypeBeanInterface | Interface | X33 interface for beans that manage typed data fields — this bean implements it to provide field metadata |
| X33VListedBeanInterface | Interface | X33 interface for beans that manage listed/repeatable data — supports list-based screen views |
| DBean | Abbreviation | Data Bean — a view-layer bean class that manages data-type fields and their display metadata for a specific screen |
| 引継 (Hikitsugi) | Japanese term | Contract Succession/Transfer — the business process of transferring or modifying customer contract details |
