# Business Logic — KKW01033SF02DBean.listKoumokuIds() [50 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW01033SF.KKW01033SF02DBean` |
| Layer | Bean (Data Bean / D-Bean, WebB layer) |
| Module | `KKW01033SF` (Package: `eo.web.webview.KKW01033SF`) |

## 1. Role

### KKW01033SF02DBean.listKoumokuIds()

This method returns a static list of **34 UI column label strings** used as display headings for the "Customer" (お客様) data cluster in the Customer Contract Handover List screen (KKW01033SF). It implements the **data bean metadata factory pattern** — the bean class exposes a static method that the surrounding screen framework consults to determine what columns to render in a data table.

The method is registered as the item name list provider for the "Customer" (お客様, item ID: `CUST`) data type within the `KKW01033SFBean.listKoumokuIds(String key)` routing logic. When the screen framework resolves the data bean for the customer cluster, it delegates to this method to build the column header labels.

The returned list includes labels covering customer contract status, discontinuity/division information, property (mansion) identifiers, customer personal data (name, phone, full Japanese address), billing details (group code, cost code), promotional and routing indicators, and — per version increments v26.00.00 through ANK-4075-00-00 — added fields for rank name, remaining count, carrier business name, fixed service contract flag, skill type name, and skill business name. The method performs no external I/O, no database access, and no conditional branching; it is a pure factory that constructs and returns a constant list of display strings.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    CREATE["Create: ArrayList<String> koumokuList"]
    ADD1["Add: 'Service Contract Status'"]
    ADD2["Add: 'Service Contract Status Name'"]
    ADD3["Add: 'Discontinuity Division'"]
    ADD4["Add: 'Discontinuity Division Name'"]
    ADD5["Add: 'Mansion ID'"]
    ADD6["Add: 'Mansion Name'"]
    ADD7["Add: 'Customer Name'"]
    ADD8["Add: 'Contractor Phone Number'"]
    ADD9["Add: 'Contractor Prefecture Name'"]
    ADD10["Add: 'Contractor City/Town/Village Name'"]
    ADD11["Add: 'Contractor Oaztsu Street Name'"]
    ADD12["Add: 'Contractor Chome Name'"]
    ADD13["Add: 'Contractor Lot Number'"]
    ADD14["Add: 'Contractor Address Note - Building Name'"]
    ADD15["Add: 'Contractor Address Note - Room Number'"]
    ADD16["Add: 'Service Contract Number'"]
    ADD17["Add: 'Billing Contract Number'"]
    ADD18["Add: 'SSSID'"]
    ADD19["Add: 'EOIID'"]
    ADD20["Add: 'Pricing Group Code'"]
    ADD21["Add: 'Pricing Group Name'"]
    ADD22["Add: 'Pricing Cost Code'"]
    ADD23["Add: 'Pricing Cost Name'"]
    ADD24["Add: 'Device Provisioning Service Contract Number'"]
    ADD25["Add: 'Famili Pack Availability'"]
    ADD26["Add: 'Promotional Status'"]
    ADD27["Add: 'Routing Availability'"]
    ADD28["Add: 'TID'"]
    ADD29["Add: 'CATID'"]
    ADD30["Add: 'Reservation Status'"]
    ADD31["Add: 'Rank Name' v26.00.00"]
    ADD32["Add: 'Remaining Count' ANK-3034"]
    ADD33["Add: 'Carrier Business Name' ANK-3366"]
    ADD34["Add: 'Fixed Service Contract Availability' ANK-3840"]
    ADD35["Add: 'Skill Type Name' ANK-4075"]
    ADD36["Add: 'Skill Business Name' ANK-4075"]
    RETURN["Return koumokuList"]

    START --> CREATE
    CREATE --> ADD1
    ADD1 --> ADD2
    ADD2 --> ADD3
    ADD3 --> ADD4
    ADD4 --> ADD5
    ADD5 --> ADD6
    ADD6 --> ADD7
    ADD7 --> ADD8
    ADD8 --> ADD9
    ADD9 --> ADD10
    ADD10 --> ADD11
    ADD11 --> ADD12
    ADD12 --> ADD13
    ADD13 --> ADD14
    ADD14 --> ADD15
    ADD15 --> ADD16
    ADD16 --> ADD17
    ADD17 --> ADD18
    ADD18 --> ADD19
    ADD19 --> ADD20
    ADD20 --> ADD21
    ADD21 --> ADD22
    ADD22 --> ADD23
    ADD23 --> ADD24
    ADD24 --> ADD25
    ADD25 --> ADD26
    ADD26 --> ADD27
    ADD27 --> ADD28
    ADD28 --> ADD29
    ADD29 --> ADD30
    ADD30 --> ADD31
    ADD31 --> ADD32
    ADD32 --> ADD33
    ADD33 --> ADD34
    ADD34 --> ADD35
    ADD35 --> ADD36
    ADD36 --> RETURN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a static factory method invoked by name by the screen framework when the "Customer" data type cluster is rendered. |

No instance fields or external state are read. The method produces no side effects; it is a pure function returning a fresh list instance on every call.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations**. It contains no calls to service components (SC), callbacks (CBS), or database-accessing methods. It is a pure in-memory factory that constructs and returns a static list of display labels.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | — | — | — | No database or service interactions. This method is a pure metadata factory. |

## 5. Dependency Trace

This method is invoked exclusively from `KKW01033SFBean.listKoumokuIds(String key)` when the routing key equals `"お客様"` (Customer, i.e., the `CUST` constant from `KKW01033SFConst`). The screen framework calls the bean's `listKoumokuIds` method to resolve column headers.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Bean:KKW01033SFBean | `KKW01033SFBean.listKoumokuIds("お客様")` -> `KKW01033SF02DBean.listKoumokuIds()` | (none — no downstream calls) |

The method is not called directly by any screen (KKSV) class or mapper. Screen mappers (e.g., `KKSV0229_KKSV0229OPDBMapper`, `KKSV0240_KKSV0240OPDBMapper`) reference `KKW01033SFConst` constants for field mapping, but they do not call `listKoumokuIds` directly.

## 6. Per-Branch Detail Blocks

The method contains no conditional branches, loops, or try/catch blocks. It is a sequential linear construction.

**Block 1** — SEQUENTIAL `(straight-line code)` (L2396–L2445)

> Creates an `ArrayList` and populates it with 34 hardcoded Japanese column labels, then returns the list. These labels become the display headers for the "Customer" data cluster in the KKW01033SF screen's result table.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` | Initialize empty list for column labels |
| 2 | EXEC | `koumokuList.add("サービス契約ステータス");` | Add: Service Contract Status |
| 3 | EXEC | `koumokuList.add("サービス契約ステータス名称");` | Add: Service Contract Status Name |
| 4 | EXEC | `koumokuList.add("異動区分");` | Add: Discontinuity Division (relocation/disconnect category) |
| 5 | EXEC | `koumokuList.add("異動区分名称");` | Add: Discontinuity Division Name |
| 6 | EXEC | `koumokuList.add("マンションID");` | Add: Mansion (apartment/condominium) ID |
| 7 | EXEC | `koumokuList.add("マンション名");` | Add: Mansion (apartment/condominium) Name |
| 8 | EXEC | `koumokuList.add("お客様名");` | Add: Customer Name |
| 9 | EXEC | `koumokuList.add("契約者電話番号");` | Add: Contractor Phone Number |
| 10 | EXEC | `koumokuList.add("契約者都道府県名");` | Add: Contractor Prefecture Name |
| 11 | EXEC | `koumokuList.add("契約者市区町村名");` | Add: Contractor City/Town/Village Name |
| 12 | EXEC | `koumokuList.add("契約者大字通名称");` | Add: Contractor Oaztsu (major district) Street Name |
| 13 | EXEC | `koumokuList.add("契約者丁目名");` | Add: Contractor Chome (sub-district) Name |
| 14 | EXEC | `koumokuList.add("契約者番地号");` | Add: Contractor Lot Number |
| 15 | EXEC | `koumokuList.add("契約者住所補記・建物名");` | Add: Contractor Address Note — Building Name |
| 16 | EXEC | `koumokuList.add("契約者住所補記・部屋番号");` | Add: Contractor Address Note — Room Number |
| 17 | EXEC | `koumokuList.add("サービス契約番号");` | Add: Service Contract Number |
| 18 | EXEC | `koumokuList.add("請求契約番号");` | Add: Billing Contract Number |
| 19 | EXEC | `koumokuList.add("SSSID");` | Add: SSSID (Subscriber Service Identifier) |
| 20 | EXEC | `koumokuList.add("EOIID");` | Add: EOIID (Entity/Equipment Identifier) |
| 21 | EXEC | `koumokuList.add("料金グループコード");` | Add: Pricing Group Code |
| 22 | EXEC | `koumokuList.add("料金グループ名");` | Add: Pricing Group Name |
| 23 | EXEC | `koumokuList.add("料金コースコード");` | Add: Pricing Cost (rate plan) Code |
| 24 | EXEC | `koumokuList.add("料金コース名");` | Add: Pricing Cost (rate plan) Name |
| 25 | EXEC | `koumokuList.add("機器提供サービス契約番号");` | Add: Device Provisioning Service Contract Number |
| 26 | EXEC | `koumokuList.add("ファミリーパック有無");` | Add: Famili Pack Availability (bundle package flag) |
| 27 | EXEC | `koumokuList.add("促進状態");` | Add: Promotional Status (marketing incentive state) |
| 28 | EXEC | `koumokuList.add("ルータ有無");` | Add: Routing Availability (router equipment flag) |
| 29 | EXEC | `koumokuList.add("TID");` | Add: TID (Terminal/Transmission Identifier) |
| 30 | EXEC | `koumokuList.add("CATID");` | Add: CATID (Category Identifier) |
| 31 | EXEC | `koumokuList.add("予約状況");` | Add: Reservation Status |
| 32 | EXEC | `koumokuList.add("ランク名称");` | Add: Rank Name [v26.00.00 ADD] |
| 33 | EXEC | `koumokuList.add("チケット残数");` | Add: Remaining Count (ticket quota) [ANK-3034-00-00 ADD] |
| 34 | EXEC | `koumokuList.add("卸事業者名");` | Add: Carrier Business Name (wholesale operator) [ANK-3366-00-00 ADD] |
| 35 | EXEC | `koumokuList.add("定額サービス契約有無");` | Add: Fixed Service Contract Availability [ANK-3840-00-00 ADD] |
| 36 | EXEC | `koumokuList.add("スキームタイプ名");` | Add: Skill/Schema Type Name [ANK-4075-00-00 ADD] |
| 37 | EXEC | `koumokuList.add("スキーム事業者名");` | Add: Skill/Schema Business Name [ANK-4075-00-00 ADD] |
| 38 | RETURN | `return koumokuList;` | Return the completed list of 34 column labels |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `koumokuList` | Field | Item/field name list — the ArrayList of Japanese column headers returned to the UI framework |
| KKW01033SF | Module | Customer Contract Handover List — a screen module for displaying and managing customer contract line items during service handover processes |
| DBean | Pattern | Data Bean — a presentation-layer class that holds metadata (column names, display labels) for UI rendering; distinct from entity beans that map to DB tables |
| `CUST` | Constant | Customer — the data type cluster key used to route the correct item name list from `KKW01033SFBean.listKoumokuIds(String key)` |
| サービス契約ステータス | Japanese | Service Contract Status — the current lifecycle state of a service contract (e.g., active, suspended, terminated) |
| 異動区分 | Japanese | Discontinuity Division — a classification code indicating the type of contract change event (e.g., reconnection, disconnection, transfer) |
| マンション | Japanese | Mansion — Japanese real estate term for apartment buildings or condominiums; used here as a property identifier field |
| お客様 | Japanese | Customer — the data cluster key; represents the customer personal information section of the handover list |
| 契約者都道府県名 | Japanese | Contractor Prefecture Name — the prefecture (prefectural-level administrative division) of the contractor's address |
| 契約者市区町村名 | Japanese | Contractor City/Town/Village Name — the municipal-level address component |
| 契約者大字通名称 | Japanese | Contractor Oaztsu Street Name — "Oaztsu" (大字) is a traditional Japanese rural district subdivision; this field stores the major district plus street name |
| 契約者丁目名 | Japanese | Contractor Chome Name — "Chome" (丁目) is a Japanese urban address block; the sub-district name within a city ward |
| 契約者番地号 | Japanese | Contractor Lot Number — the parcel/block number in a Japanese address |
| SSSID | Acronym | Subscriber Service Identifier — a telecom identifier for a subscriber's service account |
| EOIID | Acronym | Entity/Equipment Identifier — a telecom identifier for network equipment or service endpoints |
| TID | Acronym | Terminal/Transmission Identifier — an identifier for terminal equipment or transmission lines |
| CATID | Acronym | Category Identifier — an identifier for service category classification |
| ファミリーパック | Japanese | Famili Pack — a bundled service package (e.g., internet + phone + TV bundle offered by K-Opticom) |
| 促進状態 | Japanese | Promotional Status — the current state of any marketing promotions or incentives applied to the contract |
| ルータ有無 | Japanese | Router Availability — a flag indicating whether router equipment is provided with the service |
| チケット残数 | Japanese | Remaining Count — the remaining quota of tickets (support/service requests) available for the contract |
| 卸事業者名 | Japanese | Carrier Business Name (Wholesale) — the name of the wholesale operator (carrier) that provides underlying infrastructure |
| 定額サービス契約 | Japanese | Fixed Service Contract — a contract with a fixed monthly fee structure (as opposed to usage-based billing) |
| スキームタイプ名 | Japanese | Schema/Service Plan Type Name — the classification name of a service plan or configuration schema |
| スキーム事業者名 | Japanese | Schema/Service Plan Business Name — the operator or provider associated with a specific service plan schema |
| ANK-3034 | Ticket | Version/work item tag — the JIRA/ticket identifier for the "Remaining Count" field addition |
| ANK-3366 | Ticket | Version/work item tag — the JIRA/ticket identifier for the "Carrier Business Name" field addition |
| ANK-3840 | Ticket | Version/work item tag — the JIRA/ticket identifier for the "Fixed Service Contract Availability" field addition |
| ANK-4075 | Ticket | Version/work item tag — the JIRA/ticket identifier for the "Skill Type Name" and "Skill Business Name" field additions |
| v26.00.00 | Version | Release tag — the version identifier marking the addition of the "Rank Name" field |
