# Business Logic — KKW01030SF02DBean.storeModelData() [284 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA15101SF.KKW01030SF02DBean` |
| Layer | Data Bean / View Model (Web Presentation Layer — Data Bean) |
| Module | `KKA15101SF` (Package: `eo.web.webview.KKA15101SF`) |

## 1. Role

### KKW01030SF02DBean.storeModelData()

This method is the central dispatch point for setting the state of a telecom service-contract data bean. It accepts a Japanese-language key that identifies one of 24 display fields (such as "Number / Item Count" or "Penalty Code") and a subkey that identifies which attribute — `value`, `enable`, or `state` — should receive the provided object. The method implements a **dispatch/routing pattern**, branching on the key to determine which setter chain to invoke (`setXxx_value`, `setXxx_enabled`, and/or `setXxx_state`) and performs the appropriate type cast on `in_value` before delegating.

The method's primary business role is to **model data from external inputs onto the screen data bean** (DBean) that drives the service contract maintenance screen (KKA15101SF). This screen allows telecom operators to view and modify service contract details, including campaign codes, submission dates, penalty codes, and various flag fields controlling UI interactivity. The `isSetAsString` parameter is accepted for future extensibility but is currently unused — all value setters cast to `String` or `Boolean` directly.

Each of the 24 key branches corresponds to a distinct business entity attribute: record identifiers, fee-related flags, campaign metadata, dates (submission, start, end), service codes, and early termination / penalty indicators.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData(key, subkey, in_value, isSetAsString)"])
    CHECK_NULL{key or subkey<br>== null?}
    SEP["int separaterPoint = key.indexOf('/')"]
    ROUTE{Match key<br>to field<br>category}
    SUBKEY_MATCH{subkey match?}
    SET_VALUE["Call setXxx_value<br>((String) in_value)"]
    SET_ENABLE["Call setXxx_enabled<br>((Boolean) in_value)"]
    SET_STATE["Call setXxx_state<br>((String) in_value)"]
    END_NODE(["Return / Next"])

    START --> CHECK_NULL
    CHECK_NULL -->|true| END_NODE
    CHECK_NULL -->|false| SEP
    SEP --> ROUTE
    ROUTE -->|numberCount| SUBKEY_MATCH
    ROUTE -->|choice| SUBKEY_MATCH
    ROUTE -->|kakinYohi| SUBKEY_MATCH
    ROUTE -->|kakinYohiNm| SUBKEY_MATCH
    ROUTE -->|no| SUBKEY_MATCH
    ROUTE -->|keiKind| SUBKEY_MATCH
    ROUTE -->|updDtmBf| SUBKEY_MATCH
    ROUTE -->|campaignCd| SUBKEY_MATCH
    ROUTE -->|campaignNm| SUBKEY_MATCH
    ROUTE -->|stat| SUBKEY_MATCH
    ROUTE -->|statNm| SUBKEY_MATCH
    ROUTE -->|typeCd| SUBKEY_MATCH
    ROUTE -->|typeCdNm| SUBKEY_MATCH
    ROUTE -->|aplyJun| SUBKEY_MATCH
    ROUTE -->|aplyJunNm| SUBKEY_MATCH
    ROUTE -->|mskmYmd| SUBKEY_MATCH
    ROUTE -->|staymd| SUBKEY_MATCH
    ROUTE -->|endymd| SUBKEY_MATCH
    ROUTE -->|wribSvcCd| SUBKEY_MATCH
    ROUTE -->|pnltyCd| SUBKEY_MATCH
    ROUTE -->|wribSvcKeiZengiKaiyaku| SUBKEY_MATCH
    ROUTE -->|wribSvcKeiZengiKaiyakuFlg| SUBKEY_MATCH
    ROUTE -->|sameKaisenFlg| SUBKEY_MATCH
    ROUTE -->|no match| END_NODE
    SUBKEY_MATCH -->|value| SET_VALUE
    SUBKEY_MATCH -->|enable| SET_ENABLE
    SUBKEY_MATCH -->|state| SET_STATE
    SUBKEY_MATCH -->|no match| END_NODE
    SET_VALUE --> END_NODE
    SET_ENABLE --> END_NODE
    SET_STATE --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | Japanese-language field identifier that selects which of 24 screen display attributes to populate. Examples: `番号／件数` (Number / Item Count — `no_cnt`), `割引サービスコード` (Discount Service Code — `wrib_svc_cd`), `違約金コード` (Penalty Code — `pnlty_cd`). Determines the setter routing branch. |
| 2 | `subkey` | `String` | Attribute selector within the chosen field. Must be one of: `value` (sets the field's data value), `enable` (sets UI enabled/disabled state for Boolean-type fields), or `state` (sets the field's UI state — e.g., readonly vs. editable). Comparison is case-insensitive (`equalsIgnoreCase`). |
| 3 | `in_value` | `Object` | The raw data to store. Type depends on the target field: `String` for most fields (campaign codes, dates, names), `Boolean` for flag-type fields (`choice`, `wrib_svc_kei_zengetu_kaiyaku`, `no_cnt_enabled`, etc.). The method performs a direct cast to the expected type. |
| 4 | `isSetAsString` | `boolean` | Reserved for future use. Currently unused in the implementation — all value setter calls cast `in_value` directly to `String` or `Boolean` regardless of this flag. Likely intended for a future mode where Long-type fields are set as String values. |

**Instance/External State Read:**
- None — this method reads no instance fields and has no side effects beyond setter calls on `this` (the bean itself). It is a pure state mutation method.

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis graph:

This method performs **no database or SC (Service Component) calls**. It exclusively mutates its own bean instance through setter method invocations, making it a pure in-memory data-modeling operation. The table below lists the setter categories grouped by data type.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `KKW01030SF02DBean.setXxx_value` | - | - | Sets the data value attribute of a display field (String cast) |
| U | `KKW01030SF02DBean.setXxx_enabled` | - | - | Sets the UI enabled/disabled flag (Boolean cast) — only available for specific fields |
| U | `KKW01030SF02DBean.setXxx_state` | - | - | Sets the UI state attribute (e.g., readonly) (String cast) |

### Detailed setter inventory by field:

| Field (Japanese) | Field ID | Value Setter | Enable Setter | State Setter | Value Type |
|-----------------|----------|-------------|--------------|-------------|-----------|
| `番号／件数` (Number / Item Count) | `no_cnt` | `setNo_cnt_value` | `setNo_cnt_enabled` | `setNo_cnt_state` | String |
| `選択` (Choice) | `choice` | `setChoice_value` | `setChoice_enabled` | `setChoice_state` | Boolean |
| `課金要否フラグ` (Billing Flag) | `kakin_yohi` | `setKakin_yohi_value` | — | `setKakin_yohi_state` | String |
| `課金要否フラグ名称` (Billing Flag Name) | `kakin_yohi_nm` | `setKakin_yohi_nm_value` | `setKakin_yohi_nm_enabled` | `setKakin_yohi_nm_state` | String |
| `番号` (Number) | `no` | `setNo_value` | — | `setNo_state` | String |
| `契約種別` (Contract Type) | `kei_kind` | `setKei_kind_value` | — | `setKei_kind_state` | String |
| `更新年月日時刻更新前` (Pre-update Timestamp) | `upd_dtm_bf` | `setUpd_dtm_bf_value` | — | `setUpd_dtm_bf_state` | String |
| `キャンペーンコード` (Campaign Code) | `campaign_cd` | `setCampaign_cd_value` | `setCampaign_cd_enabled` | `setCampaign_cd_state` | String |
| `キャンペーン名` (Campaign Name) | `campaign_nm` | `setCampaign_nm_value` | `setCampaign_nm_enabled` | `setCampaign_nm_state` | String |
| `ステータス` (Status) | `stat` | `setStat_value` | — | `setStat_state` | String |
| `ステータス名称` (Status Name) | `stat_nm` | `setStat_nm_value` | `setStat_nm_enabled` | `setStat_nm_state` | String |
| `タイプコード` (Type Code) | `type_cd` | `setType_cd_value` | — | `setType_cd_state` | String |
| `タイプコード名称` (Type Code Name) | `type_cd_nm` | `setType_cd_nm_value` | `setType_cd_nm_enabled` | `setType_cd_nm_state` | String |
| `即時適用フラグ` (Immediate Application Flag) | `aply_jun` | `setAply_jun_value` | — | `setAply_jun_state` | String |
| `即時適用フラグ名称` (Immediate Application Flag Name) | `aply_jun_nm` | `setAply_jun_nm_value` | `setAply_jun_nm_enabled` | `setAply_jun_nm_state` | String |
| `申込年月日` (Application Date) | `mskm_ymd` | `setMskm_ymd_value` | `setMskm_ymd_enabled` | `setMskm_ymd_state` | String |
| `開始年月日` (Start Date) | `staymd` | `setStaymd_value` | `setStaymd_enabled` | `setStaymd_state` | String |
| `終了年月日` (End Date) | `endymd` | `setEndymd_value` | `setEndymd_enabled` | `setEndymd_state` | String |
| `割引サービスコード` (Discount Service Code) | `wrib_svc_cd` | `setWrib_svc_cd_value` | `setWrib_svc_cd_enabled` | `setWrib_svc_cd_state` | String |
| `違約金コード` (Penalty Code) | `pnlty_cd` | `setPnlty_cd_value` | `setPnlty_cd_enabled` | `setPnlty_cd_state` | Boolean |
| `前月解約` (Previous Month Cancellation) | `wrib_svc_kei_zengetu_kaiyaku` | `setWrib_svc_kei_zengetu_kaiyaku_value` | `setWrib_svc_kei_zengetu_kaiyaku_enabled` | `setWrib_svc_kei_zengetu_kaiyaku_state` | Boolean |
| `前月解約フラグ` (Previous Month Cancellation Flag) | `wrib_svc_kei_zengetu_kaiyaku_flg` | `setWrib_svc_kei_zengetu_kaiyaku_flg_value` | — | `setWrib_svc_kei_zengetu_kaiyaku_flg_state` | String |
| `同一回線フラグ` (Same-Line Flag) | `same_kaisen_flg` | `setSame_kaisen_flg_value` | — | `setSame_kaisen_flg_state` | String |

## 5. Dependency Trace

### Pre-computed evidence from code analysis graph:

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods — both internal invocations within `KKW01030SF02DBean` itself (self-referencing calls, likely from the `typeModelData` method or other DBean methods in the same class).

No external Screen (KKSV*), Batch, or CBS entry points call this method directly at the top level. This method operates as an **internal DBean utility** — it is called by other methods within the same `KKW01030SF02DBean` class to populate field values during screen data initialization or user input processing.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Internal: `KKW01030SF02DBean` | `KKW01030SF02DBean.storeModelData` | — (pure in-memory bean mutation) |

**Terminal operations from this method** (all pure setter calls, no external I/O):

`setSame_kaisen_flg_state`, `setSame_kaisen_flg_value`, `setWrib_svc_kei_zengetu_kaiyaku_state`, `setWrib_svc_kei_zengetu_kaiyaku_value`, `setWrib_svc_kei_zengetu_kaiyaku_enabled`, `setPnlty_cd_state`, `setPnlty_cd_enabled`, `setPnlty_cd_value`, `setWrib_svc_cd_state`, `setWrib_svc_cd_enabled`, `setWrib_svc_cd_value`, `setEndymd_state`, `setEndymd_enabled`, `setEndymd_value`, `setStaymd_state`, `setStaymd_enabled`, `setStaymd_value`, `setMskm_ymd_state`, `setMskm_ymd_enabled`, `setMskm_ymd_value`, `setNo_cnt_enabled`, `setNo_cnt_state`, `setNo_cnt_value`, `setChoice_enabled`, `setChoice_state`, `setChoice_value`, `setKakin_yohi_nm_enabled`, `setKakin_yohi_nm_state`, `setKakin_yohi_nm_value`, `setKakin_yohi_state`, `setKakin_yohi_value`, `setKei_kind_state`, `setKei_kind_value`, `setCampaign_cd_enabled`, `setCampaign_cd_state`, `setCampaign_cd_value`, `setCampaign_nm_enabled`, `setCampaign_nm_state`, `setCampaign_nm_value`, `setAply_jun_nm_enabled`, `setAply_jun_nm_state`, `setAply_jun_nm_value`, `setAply_jun_state`, `setAply_jun_value`

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] Null guard (L1145)

Early-exit guard: if either `key` or `subkey` is null, the method returns immediately without performing any processing.

> Japanese comment: key,subkeyがnullの場合、処理を中止 (If key and subkey are null, stop processing)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key == null || subkey == null) { return; }` |

**Block 2** — [EXEC] Separator detection (L1148)

Parses the key string to locate the position of the "/" delimiter. The result is stored in `separaterPoint` (note: original variable name contains a typo — "separater" instead of "separator"). This value is computed but never used within this method (it appears to be leftover from a prior design).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `int separaterPoint = key.indexOf("/");` |

**Block 3** — [ELSE-IF] Field: `番号／件数` (Number / Item Count — `no_cnt`) (L1151)

> Japanese comment: データタイプがStringの項目"番号／件数"(アイテムID:no_cnt) (Item whose data type is String: "Number / Item Count" (item ID: no_cnt))

This is the only field where the key itself contains a "/" character ("番号／件数"). It supports all three subkey operations: `value` → `setNo_cnt_value`, `enable` → `setNo_cnt_enabled`, `state` → `setNo_cnt_state`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("番号／件数")` — [-> FIELD_LABEL="Number / Item Count", FIELD_ID="no_cnt"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 3.1** — [ELSE-IF-VALUE] subkey = "value" (L1152)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setNo_cnt_value((String)in_value);` |

**Block 3.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1154)

> Japanese comment: subkeyが"enable"の場合、no_cnt_enabled setterを実行する。 (When subkey is "enable", execute the no_cnt_enabled setter.)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setNo_cnt_enabled((Boolean)in_value);` |

**Block 3.3** — [ELSE-IF-STATE] subkey = "state" (L1156)

> Japanese comment: subkeyが"state"の場合、ステータスを返す。 (When subkey is "state", return the status.)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setNo_cnt_state((String)in_value);` |

**Block 4** — [ELSE-IF] Field: `選択` (Choice — `choice`) (L1160)

> Japanese comment: データタイプがBooleanの項目"選択"(アイテムID:choice) (Item whose data type is Boolean: "Choice" (item ID: choice))

Supports all three subkey operations. Note: the value setter casts to `Boolean` (not `String`), consistent with the field being a Boolean type.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("選択")` — [-> FIELD_LABEL="Choice", FIELD_ID="choice", DATA_TYPE="Boolean"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 4.1** — [ELSE-IF-VALUE] subkey = "value" (L1161)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setChoice_value((Boolean)in_value);` |

**Block 4.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1163)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setChoice_enabled((Boolean)in_value);` |

**Block 4.3** — [ELSE-IF-STATE] subkey = "state" (L1165)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setChoice_state((String)in_value);` |

**Block 5** — [ELSE-IF] Field: `課金要否フラグ` (Billing Flag — `kakin_yohi`) (L1169)

> Japanese comment: データタイプがStringの項目"課金要否フラグ"(アイテムID:kakin_yohi) (Item whose data type is String: "Billing Flag" (item ID: kakin_yohi))

Supports only `value` and `state` subkeys — no `enable` setter exists for this field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("課金要否フラグ")` — [-> FIELD_LABEL="Billing Flag", FIELD_ID="kakin_yohi", DATA_TYPE="String", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` (no enable branch) |

**Block 5.1** — [ELSE-IF-VALUE] subkey = "value" (L1170)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKakin_yohi_value((String)in_value);` |

**Block 5.2** — [ELSE-IF-STATE] subkey = "state" (L1172)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKakin_yohi_state((String)in_value);` |

**Block 6** — [ELSE-IF] Field: `課金要否フラグ名称` (Billing Flag Name — `kakin_yohi_nm`) (L1176)

> Japanese comment: データタイプがStringの項目"課金要否フラグ名称"(アイテムID:kakin_yohi_nm) (Item whose data type is String: "Billing Flag Name" (item ID: kakin_yohi_nm))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("課金要否フラグ名称")` — [-> FIELD_LABEL="Billing Flag Name", FIELD_ID="kakin_yohi_nm"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 6.1** — [ELSE-IF-VALUE] subkey = "value" (L1177)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKakin_yohi_nm_value((String)in_value);` |

**Block 6.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1179)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKakin_yohi_nm_enabled((Boolean)in_value);` |

**Block 6.3** — [ELSE-IF-STATE] subkey = "state" (L1181)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKakin_yohi_nm_state((String)in_value);` |

**Block 7** — [ELSE-IF] Field: `番号` (Number — `no`) (L1185)

> Japanese comment: データタイプがStringの項目"番号"(アイテムID:no) (Item whose data type is String: "Number" (item ID: no))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("番号")` — [-> FIELD_LABEL="Number", FIELD_ID="no", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 7.1** — [ELSE-IF-VALUE] subkey = "value" (L1186)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setNo_value((String)in_value);` |

**Block 7.2** — [ELSE-IF-STATE] subkey = "state" (L1188)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setNo_state((String)in_value);` |

**Block 8** — [ELSE-IF] Field: `契約種別` (Contract Type — `kei_kind`) (L1192)

> Japanese comment: データタイプがStringの項目"契約種別"(アイテムID:kei_kind) (Item whose data type is String: "Contract Type" (item ID: kei_kind))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("契約種別")` — [-> FIELD_LABEL="Contract Type", FIELD_ID="kei_kind", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 8.1** — [ELSE-IF-VALUE] subkey = "value" (L1193)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKei_kind_value((String)in_value);` |

**Block 8.2** — [ELSE-IF-STATE] subkey = "state" (L1195)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setKei_kind_state((String)in_value);` |

**Block 9** — [ELSE-IF] Field: `更新年月日時刻更新前` (Pre-update Timestamp — `upd_dtm_bf`) (L1199)

> Japanese comment: データタイプがStringの項目"更新年月日時刻更新前"(アイテムID:upd_dtm_bf) (Item whose data type is String: "Pre-update Timestamp" (item ID: upd_dtm_bf))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("更新年月日時刻更新前")` — [-> FIELD_LABEL="Pre-update Timestamp", FIELD_ID="upd_dtm_bf", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 9.1** — [ELSE-IF-VALUE] subkey = "value" (L1200)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setUpd_dtm_bf_value((String)in_value);` |

**Block 9.2** — [ELSE-IF-STATE] subkey = "state" (L1202)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setUpd_dtm_bf_state((String)in_value);` |

**Block 10** — [ELSE-IF] Field: `キャンペーンコード` (Campaign Code — `campaign_cd`) (L1206)

> Japanese comment: データタイプがStringの項目"キャンペーンコード"(アイテムID:campaign_cd) (Item whose data type is String: "Campaign Code" (item ID: campaign_cd))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("キャンペーンコード")` — [-> FIELD_LABEL="Campaign Code", FIELD_ID="campaign_cd"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 10.1** — [ELSE-IF-VALUE] subkey = "value" (L1207)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_cd_value((String)in_value);` |

**Block 10.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1209)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_cd_enabled((Boolean)in_value);` |

**Block 10.3** — [ELSE-IF-STATE] subkey = "state" (L1211)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_cd_state((String)in_value);` |

**Block 11** — [ELSE-IF] Field: `キャンペーン名` (Campaign Name — `campaign_nm`) (L1215)

> Japanese comment: データタイプがStringの項目"キャンペーン名"(アイテムID:campaign_nm) (Item whose data type is String: "Campaign Name" (item ID: campaign_nm))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("キャンペーン名")` — [-> FIELD_LABEL="Campaign Name", FIELD_ID="campaign_nm"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 11.1** — [ELSE-IF-VALUE] subkey = "value" (L1216)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_nm_value((String)in_value);` |

**Block 11.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1218)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_nm_enabled((Boolean)in_value);` |

**Block 11.3** — [ELSE-IF-STATE] subkey = "state" (L1220)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setCampaign_nm_state((String)in_value);` |

**Block 12** — [ELSE-IF] Field: `ステータス` (Status — `stat`) (L1224)

> Japanese comment: データタイプがStringの項目"ステータス"(アイテムID:stat) (Item whose data type is String: "Status" (item ID: stat))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("ステータス")` — [-> FIELD_LABEL="Status", FIELD_ID="stat", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 12.1** — [ELSE-IF-VALUE] subkey = "value" (L1225)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStat_value((String)in_value);` |

**Block 12.2** — [ELSE-IF-STATE] subkey = "state" (L1227)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStat_state((String)in_value);` |

**Block 13** — [ELSE-IF] Field: `ステータス名称` (Status Name — `stat_nm`) (L1231)

> Japanese comment: データタイプがStringの項目"ステータス名称"(アイテムID:stat_nm) (Item whose data type is String: "Status Name" (item ID: stat_nm))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("ステータス名称")` — [-> FIELD_LABEL="Status Name", FIELD_ID="stat_nm"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 13.1** — [ELSE-IF-VALUE] subkey = "value" (L1232)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStat_nm_value((String)in_value);` |

**Block 13.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1234)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStat_nm_enabled((Boolean)in_value);` |

**Block 13.3** — [ELSE-IF-STATE] subkey = "state" (L1236)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStat_nm_state((String)in_value);` |

**Block 14** — [ELSE-IF] Field: `タイプコード` (Type Code — `type_cd`) (L1240)

> Japanese comment: データタイプがStringの項目"タイプコード"(アイテムID:type_cd) (Item whose data type is String: "Type Code" (item ID: type_cd))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("タイプコード")` — [-> FIELD_LABEL="Type Code", FIELD_ID="type_cd", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 14.1** — [ELSE-IF-VALUE] subkey = "value" (L1241)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setType_cd_value((String)in_value);` |

**Block 14.2** — [ELSE-IF-STATE] subkey = "state" (L1243)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setType_cd_state((String)in_value);` |

**Block 15** — [ELSE-IF] Field: `タイプコード名称` (Type Code Name — `type_cd_nm`) (L1247)

> Japanese comment: データタイプがStringの項目"タイプコード名称"(アイテムID:type_cd_nm) (Item whose data type is String: "Type Code Name" (item ID: type_cd_nm))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("タイプコード名称")` — [-> FIELD_LABEL="Type Code Name", FIELD_ID="type_cd_nm"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 15.1** — [ELSE-IF-VALUE] subkey = "value" (L1248)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setType_cd_nm_value((String)in_value);` |

**Block 15.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1250)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setType_cd_nm_enabled((Boolean)in_value);` |

**Block 15.3** — [ELSE-IF-STATE] subkey = "state" (L1252)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setType_cd_nm_state((String)in_value);` |

**Block 16** — [ELSE-IF] Field: `即時適用フラグ` (Immediate Application Flag — `aply_jun`) (L1256)

> Japanese comment: データタイプがStringの項目"即時適用フラグ"(アイテムID:aply_jun) (Item whose data type is String: "Immediate Application Flag" (item ID: aply_jun))

Supports only `value` and `state` subkeys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("即時適用フラグ")` — [-> FIELD_LABEL="Immediate Application Flag", FIELD_ID="aply_jun", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 16.1** — [ELSE-IF-VALUE] subkey = "value" (L1257)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setAply_jun_value((String)in_value);` |

**Block 16.2** — [ELSE-IF-STATE] subkey = "state" (L1259)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setAply_jun_state((String)in_value);` |

**Block 17** — [ELSE-IF] Field: `即時適用フラグ名称` (Immediate Application Flag Name — `aply_jun_nm`) (L1263)

> Japanese comment: データタイプがStringの項目"即時適用フラグ名称"(アイテムID:aply_jun_nm) (Item whose data type is String: "Immediate Application Flag Name" (item ID: aply_jun_nm))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("即時適用フラグ名称")` — [-> FIELD_LABEL="Immediate Application Flag Name", FIELD_ID="aply_jun_nm"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 17.1** — [ELSE-IF-VALUE] subkey = "value" (L1264)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setAply_jun_nm_value((String)in_value);` |

**Block 17.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1266)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setAply_jun_nm_enabled((Boolean)in_value);` |

**Block 17.3** — [ELSE-IF-STATE] subkey = "state" (L1268)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setAply_jun_nm_state((String)in_value);` |

**Block 18** — [ELSE-IF] Field: `申込年月日` (Application Date — `mskm_ymd`) (L1272)

> Japanese comment: データタイプがStringの項目"申込年月日"(アイテムID:mskm_ymd) (Item whose data type is String: "Application Date" (item ID: mskm_ymd))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("申込年月日")` — [-> FIELD_LABEL="Application Date", FIELD_ID="mskm_ymd"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 18.1** — [ELSE-IF-VALUE] subkey = "value" (L1273)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setMskm_ymd_value((String)in_value);` |

**Block 18.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1275)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setMskm_ymd_enabled((Boolean)in_value);` |

**Block 18.3** — [ELSE-IF-STATE] subkey = "state" (L1277)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setMskm_ymd_state((String)in_value);` |

**Block 19** — [ELSE-IF] Field: `開始年月日` (Start Date — `staymd`) (L1281)

> Japanese comment: データタイプがStringの項目"開始年月日"(アイテムID:staymd) (Item whose data type is String: "Start Date" (item ID: staymd))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("開始年月日")` — [-> FIELD_LABEL="Start Date", FIELD_ID="staymd"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 19.1** — [ELSE-IF-VALUE] subkey = "value" (L1282)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStaymd_value((String)in_value);` |

**Block 19.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1284)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStaymd_enabled((Boolean)in_value);` |

**Block 19.3** — [ELSE-IF-STATE] subkey = "state" (L1286)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setStaymd_state((String)in_value);` |

**Block 20** — [ELSE-IF] Field: `終了年月日` (End Date — `endymd`) (L1290)

> Japanese comment: データタイプがStringの項目"終了年月日"(アイテムID:endymd) (Item whose data type is String: "End Date" (item ID: endymd))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("終了年月日")` — [-> FIELD_LABEL="End Date", FIELD_ID="endymd"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 20.1** — [ELSE-IF-VALUE] subkey = "value" (L1291)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setEndymd_value((String)in_value);` |

**Block 20.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1293)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setEndymd_enabled((Boolean)in_value);` |

**Block 20.3** — [ELSE-IF-STATE] subkey = "state" (L1295)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setEndymd_state((String)in_value);` |

**Block 21** — [ELSE-IF] Field: `割引サービスコード` (Discount Service Code — `wrib_svc_cd`) (L1299)

> Japanese comment: データタイプがStringの項目"割引サービスコード"(アイテムID:wrib_svc_cd) (Item whose data type is String: "Discount Service Code" (item ID: wrib_svc_cd))

Supports all three subkey operations.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("割引サービスコード")` — [-> FIELD_LABEL="Discount Service Code", FIELD_ID="wrib_svc_cd"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 21.1** — [ELSE-IF-VALUE] subkey = "value" (L1300)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_cd_value((String)in_value);` |

**Block 21.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1302)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_cd_enabled((Boolean)in_value);` |

**Block 21.3** — [ELSE-IF-STATE] subkey = "state" (L1304)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_cd_state((String)in_value);` |

**Block 22** — [ELSE-IF] Field: `違約金コード` (Penalty Code — `pnlty_cd`) (L1308)

> Japanese comment: データタイプがStringの項目"違約金コード"(アイテムID:pnlty_cd) (Item whose data type is String: "Penalty Code" (item ID: pnlty_cd))

Supports all three subkey operations. **Notably**, despite the comment stating the data type is String, the `value` setter casts `in_value` to `Boolean` (not `String`), indicating the comment may be outdated — the field's actual runtime type is Boolean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("違約金コード")` — [-> FIELD_LABEL="Penalty Code", FIELD_ID="pnlty_cd", ACTUAL_VALUE_TYPE="Boolean"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 22.1** — [ELSE-IF-VALUE] subkey = "value" (L1309)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setPnlty_cd_value((Boolean)in_value);` |

**Block 22.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1311)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setPnlty_cd_enabled((Boolean)in_value);` |

**Block 22.3** — [ELSE-IF-STATE] subkey = "state" (L1313)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setPnlty_cd_state((String)in_value);` |

**Block 23** — [ELSE-IF] Field: `前月解約` (Previous Month Cancellation — `wrib_svc_kei_zengetu_kaiyaku`) (L1317)

> Japanese comment: データタイプがBooleanの項目"前月解約"(アイテムID:wrib_svc_kei_zengetu_kaiyaku) (Item whose data type is Boolean: "Previous Month Cancellation" (item ID: wrib_svc_kei_zengetu_kaiyaku))

Supports all three subkey operations. The value setter casts to `Boolean`, consistent with the field being Boolean-typed.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("前月解約")` — [-> FIELD_LABEL="Previous Month Cancellation", FIELD_ID="wrib_svc_kei_zengetu_kaiyaku", DATA_TYPE="Boolean"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `enable` \| `state` |

**Block 23.1** — [ELSE-IF-VALUE] subkey = "value" (L1318)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_kei_zengetu_kaiyaku_value((Boolean)in_value);` |

**Block 23.2** — [ELSE-IF-ENABLE] subkey = "enable" (L1320)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_kei_zengetu_kaiyaku_enabled((Boolean)in_value);` |

**Block 23.3** — [ELSE-IF-STATE] subkey = "state" (L1322)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_kei_zengetu_kaiyaku_state((String)in_value);` |

**Block 24** — [ELSE-IF] Field: `前月解約フラグ` (Previous Month Cancellation Flag — `wrib_svc_kei_zengetu_kaiyaku_flg`) (L1326)

> Japanese comment: データタイプがStringの項目"前月解約フラグ"(アイテムID:wrib_svc_kei_zengetu_kaiyaku_flg) (Item whose data type is String: "Previous Month Cancellation Flag" (item ID: wrib_svc_kei_zengetu_kaiyaku_flg))

Supports only `value` and `state` subkeys — no `enable` setter exists.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("前月解約フラグ")` — [-> FIELD_LABEL="Previous Month Cancellation Flag", FIELD_ID="wrib_svc_kei_zengetu_kaiyaku_flg", NO_ENABLE=true] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 24.1** — [ELSE-IF-VALUE] subkey = "value" (L1327)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_kei_zengetu_kaiyaku_flg_value((String)in_value);` |

**Block 24.2** — [ELSE-IF-STATE] subkey = "state" (L1329)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setWrib_svc_kei_zengetu_kaiyaku_flg_state((String)in_value);` |

**Block 25** — [ELSE-IF] Field: `同一回線フラグ` (Same-Line Flag — `same_kaisen_flg`) (L1333)

> Japanese comment: データタイプがStringの項目"同一回線フラグ"(アイテムID:same_kaisen_flg) (Item whose data type is String: "Same-Line Flag" (item ID: same_kaisen_flg))

Supports only `value` and `state` subkeys. Added per change ticket **IT1-2018-0000125**. No `enable` setter exists.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key.equals("同一回線フラグ")` — [-> FIELD_LABEL="Same-Line Flag", FIELD_ID="same_kaisen_flg", NO_ENABLE=true, CHANGE_TICKET="IT1-2018-0000125"] |
| 2 | IF-ELSE | subkey dispatch: `value` \| `state` |

**Block 25.1** — [ELSE-IF-VALUE] subkey = "value" (L1334)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setSame_kaisen_flg_value((String)in_value);` |

**Block 25.2** — [ELSE-IF-STATE] subkey = "state" (L1336)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `setSame_kaisen_flg_state((String)in_value);` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `番号／件数` | Field | Number / Item Count — internal tracking ID for the record; item ID: `no_cnt`; data type: String |
| `選択` | Field | Choice — user selection flag; item ID: `choice`; data type: Boolean |
| `課金要否フラグ` | Field | Billing Flag — indicates whether billing is required for a line item; item ID: `kakin_yohi`; data type: String |
| `課金要否フラグ名称` | Field | Billing Flag Name — human-readable label for the billing flag; item ID: `kakin_yohi_nm`; data type: String |
| `番号` | Field | Number — general record number identifier; item ID: `no`; data type: String |
| `契約種別` | Field | Contract Type — classification of the service contract type (e.g., new, renewal, change); item ID: `kei_kind`; data type: String |
| `更新年月日時刻更新前` | Field | Pre-update Timestamp — the date/time value before the current update was applied; item ID: `upd_dtm_bf`; data type: String |
| `キャンペーンコード` | Field | Campaign Code — identifier for a promotional campaign associated with the service contract; item ID: `campaign_cd`; data type: String |
| `キャンペーン名` | Field | Campaign Name — human-readable name of the associated promotional campaign; item ID: `campaign_nm`; data type: String |
| `ステータス` | Field | Status — current processing status of the contract record; item ID: `stat`; data type: String |
| `ステータス名称` | Field | Status Name — human-readable description of the current status; item ID: `stat_nm`; data type: String |
| `タイプコード` | Field | Type Code — classification code for the service type (e.g., FTTH, DSL, Mail); item ID: `type_cd`; data type: String |
| `タイプコード名称` | Field | Type Code Name — human-readable label for the service type code; item ID: `type_cd_nm`; data type: String |
| `即時適用フラグ` | Field | Immediate Application Flag — indicates whether contract changes take effect immediately; item ID: `aply_jun`; data type: String |
| `即時適用フラグ名称` | Field | Immediate Application Flag Name — label for the immediate application flag; item ID: `aply_jun_nm`; data type: String |
| `申込年月日` | Field | Application Date — the date the service application was submitted; item ID: `mskm_ymd`; data type: String |
| `開始年月日` | Field | Start Date — the date the service becomes active; item ID: `staymd`; data type: String |
| `終了年月日` | Field | End Date — the date the service contract expires or terminates; item ID: `endymd`; data type: String |
| `割引サービスコード` | Field | Discount Service Code — identifier for a discount service (e.g., standard work fee division discount for municipal customers); item ID: `wrib_svc_cd`; data type: String |
| `違約金コード` | Field | Penalty Code — identifier for early termination penalty conditions; item ID: `pnlty_cd`; data type: Boolean |
| `前月解約` | Field | Previous Month Cancellation — Boolean flag indicating whether the customer cancelled in the previous month; item ID: `wrib_svc_kei_zengetu_kaiyaku`; data type: Boolean |
| `前月解約フラグ` | Field | Previous Month Cancellation Flag — String representation of the previous month cancellation status; item ID: `wrib_svc_kei_zengetu_kaiyaku_flg`; data type: String |
| `同一回線フラグ` | Field | Same-Line Flag — indicates whether this contract share the same phone line as another; item ID: `same_kaisen_flg`; data type: String; added per IT1-2018-0000125 |
| `value` | Subkey | Attribute selector — sets the actual data value of a field |
| `enable` | Subkey | Attribute selector — sets the UI enabled/disabled state (Boolean) for a field |
| `state` | Subkey | Attribute selector — sets the UI state attribute (e.g., readonly vs. editable) as a String |
| DBean | Acronym | Data Bean — a presentation-layer Java object that holds screen data and provides getters/setters for each display field |
| KKA15101SF | Screen ID | Service contract maintenance screen in the K-Opticom telecom operations system |
| IT1-2018-0000125 | Change Ticket | Work order that added the `same_kaisen_flg` (Same-Line Flag) field to support the koptWebA/koptWebB asset synchronization initiative (July 2018) |
