# Business Logic — CRW03407SF01DBean.loadModelData() [107 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.CRW03407SF.CRW03407SF01DBean` |
| Layer | Data Binding / View Bean (MVC View component, part of the Futurity X33 web framework) |
| Module | `CRW03407SF` (Package: `eo.web.webview.CRW03407SF`) |

## 1. Role

### CRW03407SF01DBean.loadModelData()

This method implements the **data routing and dispatch mechanism** for the `CRW03407SF01DBean` view bean, which manages external connection URL data (対応履歴 — response history) in a telecom order fulfillment screen. The method acts as a **string-keyed property resolver**: it receives a composite `key` string that identifies both a data type and, optionally, an index into a collection, and returns the corresponding `Object` value.

The method supports **four data categories**: (1) a single-row URL number index field with sub-properties for `value`, `enable` (enabled/disabled state), and `state` (validation status); (2) a list of URL numbers (URL番号リスト); (3) a list of URL strings (URLリスト); and (4) a list of URL names (URL名リスト). This pattern mirrors the standard X33 framework `X33VDataTypeBeanInterface.loadModelData` contract, enabling the framework to bind dynamic view data through a uniform string-key interface.

The method implements a **routing/dispatch design pattern** — it branches on the `key` parameter and delegates index-based list lookups to the nested `X33VDataTypeStringBean.loadModelData` of each list item. It is a **shared utility within the bean** (called internally by the no-arg overload of `loadModelData()`), enabling the framework to resolve any data property by its string path rather than through direct getter method calls. Its role is central to the screen's data binding infrastructure, allowing JSP view templates and the X33 framework to access individual list elements and their sub-properties without compile-time type knowledge.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData key, subkey"])

    CHECK_NULL["key, subkey null?"]
    STEP1["Parse key with indexOf"]

    CHECK_TYPE1["key equals対応履歴外部接続URL番号インデックス?"]

    CHECK_SUB1["subkey value?"]
    RET_VALUE["return getValue()"]

    CHECK_SUB_ENABLE["subkey enable?"]
    RET_ENABLED["return getEnabled()"]

    CHECK_SUB_STATE["subkey state?"]
    RET_STATE["return getState()"]

    SKIP1["key extract subkey"]

    CHECK_TYPE2["key equals対応履歴外部接続URL番号リスト?"]
    CHECK_ASTERISK1["key equals *?"]
    RET_COUNT1["return urlNoList size()"]

    PARSE_IDX1["parse index from key"]
    CATCH_IDX1["catch exception - return null"]
    CHECK_BOUNDS1["index valid?"]
    RET_LIST_ITEM1["return item.loadModelData subkey"]

    SKIP2["key extract subkey"]

    CHECK_TYPE3["key equals対応履歴外部接続URLリスト?"]
    CHECK_ASTERISK2["key equals *?"]
    RET_COUNT2["return urlList size()"]

    PARSE_IDX2["parse index from key"]
    CATCH_IDX2["catch exception - return null"]
    CHECK_BOUNDS2["index valid?"]
    RET_LIST_ITEM2["return item.loadModelData subkey"]

    SKIP3["key extract subkey"]

    CHECK_TYPE4["key equals対応履歴外部接続URL名リスト?"]
    CHECK_ASTERISK3["key equals *?"]
    RET_COUNT3["return urlNmList size()"]

    PARSE_IDX3["parse index from key"]
    CATCH_IDX3["catch exception - return null"]
    CHECK_BOUNDS3["index valid?"]
    RET_LIST_ITEM3["return item.loadModelData subkey"]

    RET_NULL["return null"]
    END(["End"])

    START --> CHECK_NULL
    CHECK_NULL -- Yes --> RET_NULL --> END
    CHECK_NULL -- No --> STEP1
    STEP1 --> CHECK_TYPE1
    CHECK_TYPE1 -- Yes --> CHECK_SUB1
    CHECK_TYPE1 -- No --> CHECK_TYPE2
    CHECK_SUB1 -- Yes --> RET_VALUE --> END
    CHECK_SUB1 -- No --> CHECK_SUB_ENABLE
    CHECK_SUB_ENABLE -- Yes --> RET_ENABLED --> END
    CHECK_SUB_ENABLE -- No --> CHECK_SUB_STATE
    CHECK_SUB_STATE -- Yes --> RET_STATE --> END
    CHECK_SUB_STATE -- No --> SKIP1
    SKIP1 --> CHECK_TYPE2
    CHECK_TYPE2 -- Yes --> CHECK_ASTERISK1
    CHECK_TYPE2 -- No --> SKIP2
    CHECK_ASTERISK1 -- Yes --> RET_COUNT1 --> END
    CHECK_ASTERISK1 -- No --> PARSE_IDX1
    PARSE_IDX1 --> CATCH_IDX1
    CATCH_IDX1 --> RET_NULL
    PARSE_IDX1 --> CHECK_BOUNDS1
    CHECK_BOUNDS1 -- Valid --> RET_LIST_ITEM1 --> END
    CHECK_BOUNDS1 -- Invalid --> RET_NULL
    SKIP2 --> CHECK_TYPE3
    CHECK_TYPE3 -- Yes --> CHECK_ASTERISK2
    CHECK_TYPE3 -- No --> SKIP3
    CHECK_ASTERISK2 -- Yes --> RET_COUNT2 --> END
    CHECK_ASTERISK2 -- No --> PARSE_IDX2
    PARSE_IDX2 --> CATCH_IDX2
    CATCH_IDX2 --> RET_NULL
    PARSE_IDX2 --> CHECK_BOUNDS2
    CHECK_BOUNDS2 -- Valid --> RET_LIST_ITEM2 --> END
    CHECK_BOUNDS2 -- Invalid --> RET_NULL
    SKIP3 --> CHECK_TYPE4
    CHECK_TYPE4 -- Yes --> CHECK_ASTERISK3
    CHECK_TYPE4 -- No --> RET_NULL
    CHECK_ASTERISK3 -- Yes --> RET_COUNT3 --> END
    CHECK_ASTERISK3 -- No --> PARSE_IDX3
    PARSE_IDX3 --> CATCH_IDX3
    CATCH_IDX3 --> RET_NULL
    PARSE_IDX3 --> CHECK_BOUNDS3
    CHECK_BOUNDS3 -- Valid --> RET_LIST_ITEM3 --> END
    CHECK_BOUNDS3 -- Invalid --> RET_NULL
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The **item identifier** used to select which data property to return. It carries one of four possible values: "対応履歴外部接続URL番号インデックス" (response history external connection URL number index), "対応履歴外部接続URL番号リスト" (URL number list), "対応履歴外部接続URLリスト" (URL list), or "対応履歴外部接続URL名リスト" (URL name list). For list types, a `/` separator followed by an index or `*` is appended to identify the specific element or request the count. |
| 2 | `subkey` | `String` | A **sub-property selector** used within the index-type branch. Accepts `"value"` (to retrieve the actual data value), `"enable"` (to retrieve the enabled/disabled state), or `"state"` (to retrieve the validation/status indicator). For list-type branches, this carries the property name on the child `X33VDataTypeStringBean` item. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `l0_taiorrk_out_url_no_list` | `X33VDataTypeList` | List of URL number items (String type) — each element is an `X33VDataTypeStringBean` representing one external connection URL number in the response history. |
| `l0_taiorrk_out_url_list` | `X33VDataTypeList` | List of URL string items (String type) — each element is an `X33VDataTypeStringBean` representing one external connection URL in the response history. |
| `l0_taiorrk_out_url_nm_list` | `X33VDataTypeList` | List of URL name items (String type) — each element is an `X33VDataTypeStringBean` representing one external connection URL name in the response history. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `CRW03407SF01DBean.getL0_taiorrk_out_url_no_idx_value` | CRW03407SF01DBean | - | Reads the current value of the URL number index field (single-row data) |
| R | `CRW03407SF01DBean.getL0_taiorrk_out_url_no_idx_enabled` | CRW03407SF01DBean | - | Reads the enabled/disabled boolean state of the URL number index field |
| R | `CRW03407SF01DBean.getL0_taiorrk_out_url_no_idx_state` | CRW03407SF01DBean | - | Reads the status/flag string of the URL number index field |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_no_list.size` | CRW03407SF01DBean | - | Returns the count of items in the URL number list |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_list.size` | CRW03407SF01DBean | - | Returns the count of items in the URL list |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_nm_list.size` | CRW03407SF01DBean | - | Returns the count of items in the URL name list |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_no_list.get` | CRW03407SF01DBean | - | Retrieves a URL number item at the specified index from the list |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_list.get` | CRW03407SF01DBean | - | Retrieves a URL item at the specified index from the list |
| R | `CRW03407SF01DBean.l0_taiorrk_out_url_nm_list.get` | CRW03407SF01DBean | - | Retrieves a URL name item at the specified index from the list |
| R | `X33VDataTypeStringBean.loadModelData` | (Framework) | - | Delegates property resolution to a child String-type bean item |

This method performs **pure reads** (R) against in-memory data — it does not create, update, or delete any records. It acts as a **data accessor** that routes property requests to the appropriate internal field or list element. There are no direct Entity or DB table operations; data is sourced from bean instance fields populated earlier by the screen's data-loading flow.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:CRW03407SF | `CRW03407SF01DBean.loadModelData()` (no-arg overload) -> `CRW03407SF01DBean.loadModelData(key, subkey)` | `getL0_taiorrk_out_url_no_idx_value [R]`, `getL0_taiorrk_out_url_no_idx_enabled [R]`, `getL0_taiorrk_out_url_no_idx_state [R]`, `list.get [R]`, `X33VDataTypeStringBean.loadModelData [R]` |

**Notes:**
- The sole direct caller is the **no-argument overload** of `loadModelData()` within the same bean (`CRW03407SF01DBean.loadModelData()`). This overload serves as the framework entry point, populating the list fields and then delegating to the keyed overload for individual property resolution.
- No external screens, batches, or service components directly invoke this method. It is an **internal bean dispatcher** within the X33 view data binding layer.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null check) `(key == null || subkey == null)` (L182)

> If either parameter is null, return null immediately. This prevents NullPointerException during subsequent processing.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key == null || subkey == null)` // null check: key, subkeyがnullの場合、nullを返す (if key/subkey is null, return null) |
| 2 | RETURN | `return null;` |

**Block 2** — SET (parse separator) `(key.indexOf("/"))` (L187)

> Extract the position of the `/` separator in the key string. This position is used in later list-type branches to skip past the key prefix and access the index portion.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/");` // find position of "/" separator |

**Block 3** — IF (type branch: index field) `key.equals("対応履歴外部接続URL番号インデックス")` (L191)

> Handle the single-row URL number index data type. This is the only non-list data type — it returns individual sub-properties based on the `subkey` parameter. The Japanese text "対応履歴外部接続URL番号インデックス" translates to "Response History External Connection URL Number Index".

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key.equals("対応履歴外部接続URL番号インデックス"))` // 項目ごとに処理を入れる (process logic per item type) |

**Block 3.1** — IF-ELSE (subkey: value) `subkey.equalsIgnoreCase("value")` (L192)

> When `subkey` is "value", return the current data value of the URL number index field.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `return getL0_taiorrk_out_url_no_idx_value();` |

**Block 3.2** — ELSE-IF (subkey: enable) `subkey.equalsIgnoreCase("enable")` (L194)

> When `subkey` is "enable", return whether the URL number index field is enabled. Japanese comment: subkeyが"enable"の場合、l0_taiorrk_out_url_no_idx_enableのgetterの戻り値を返す (when subkey is "enable", return the getter value of l0_taiorrk_out_url_no_idx_enabled).

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `return getL0_taiorrk_out_url_no_idx_enabled();` |

**Block 3.3** — ELSE-IF (subkey: state) `subkey.equalsIgnoreCase("state")` (L197)

> When `subkey` is "state", return the validation/status of the URL number index field. Japanese comment: subkeyが"state"の場合、ステータスを返す (when subkey is "state", return the status).

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `return getL0_taiorrk_out_url_no_idx_state();` |

**Block 4** — ELSE-IF (list: URL number list) `key.equals("対応履歴外部接続URL番号リスト")` (L203)

> Handle the URL number list data type. The Japanese text "対応履歴外部接続URL番号リスト" translates to "Response History External Connection URL Number List". The list contains `X33VDataTypeStringBean` items representing individual URL number entries.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if(key.equals("対応履歴外部接続URL番号リスト"))` // 配列項目 (array item) |
| 2 | SET | `key = key.substring(separaterPoint + 1);` // keyの次の要素を取得 (get next element of key) |

**Block 4.1** — IF (asterisk: return count) `key.equals("*")` (L206)

> When `key` is `"*"` (after the `/` separator), return the total count of items in the list. Japanese comment: インデックス値の代わりに"*"が指定されていたら、リストの要素数を返す (if "*" is specified instead of an index value, return the number of list elements).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key.equals("*"))` // インデックス値の代わりに"*"が指定されていたら、リストの要素数を返す (if "*" specified instead of index value, return list element count) |
| 2 | RETURN | `return Integer.valueOf(l0_taiorrk_out_url_no_list.size());` |

**Block 4.2** — TRY-CATCH (parse index) (L210)

> Attempt to parse the key as an integer index. If parsing fails, return null. Japanese comment: インデックス値が数値文字列でない場合は、ここでnullを返す (if the index value is not a numeric string, return null here).

| # | Type | Code |
|---|------|------|
| 1 | TRY | `Integer tmpIndexInt = null;` |
| 2 | EXEC | `tmpIndexInt = Integer.valueOf(key);` // parse key as index |
| 3 | CATCH | `catch(NumberFormatException e){ return null; }` // インデックス値が数値文字列でない場合はnullを返す (if index is not numeric, return null) |

**Block 4.3** — IF (null check on index) `tmpIndexInt == null` (L216)

> If the index is null (should not normally occur given the catch block, but defensive check).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndexInt == null)` |
| 2 | RETURN | `return null;` |

**Block 4.4** — SET (extract primitive index) (L219)

> Convert Integer to primitive int for bounds comparison.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int tmpIndex = tmpIndexInt.intValue();` |

**Block 4.5** — IF (bounds check) `tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_no_list.size()` (L220)

> Validate that the index is within the valid range of the list. Japanese comment: インデックス値がリスト個数-1を超えると、ここでnullを返す (if the index value exceeds list size - 1, return null here).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_no_list.size())` // インデックス値がリスト個数-1を超えるとnullを返す (if index exceeds list size-1, return null) |
| 2 | RETURN | `return null;` |

**Block 4.6** — RETURN (delegate to child bean) (L222)

> Cast the list item to `X33VDataTypeStringBean` and delegate its `loadModelData` method to resolve the subkey. This enables nested property resolution within each list item.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return ((X33VDataTypeStringBean)l0_taiorrk_out_url_no_list.get(tmpIndex)).loadModelData(subkey);` // list element access and delegation |

**Block 5** — ELSE-IF (list: URL list) `key.equals("対応履歴外部接続URLリスト")` (L228)

> Handle the URL list data type. The Japanese text "対応履歴外部接続URLリスト" translates to "Response History External Connection URL List". Identical processing pattern to Block 4 but operates on `l0_taiorrk_out_url_list`. The field ID is `l0_taiorrk_out_url`.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if(key.equals("対応履歴外部接続URLリスト"))` // 配列項目 (array item) |
| 2 | SET | `key = key.substring(separaterPoint + 1);` // keyの次の要素を取得 (get next element of key) |

**Block 5.1** — IF (asterisk: return count) `key.equals("*")` (L231)

> Return the count of items in the URL list.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key.equals("*"))` // インデックス値の代わりに"*"が指定されていたら、リストの要素数を返す (if "*" specified instead of index, return list element count) |
| 2 | RETURN | `return Integer.valueOf(l0_taiorrk_out_url_list.size());` |

**Block 5.2** — TRY-CATCH (parse index) (L235)

> Parse key as integer index for URL list. Same pattern as Block 4.2.

| # | Type | Code |
|---|------|------|
| 1 | TRY | `Integer tmpIndexInt = null;` |
| 2 | EXEC | `tmpIndexInt = Integer.valueOf(key);` |
| 3 | CATCH | `catch(NumberFormatException e){ return null; }` // インデックス値が数値文字列でない場合はnullを返す (if index is not numeric string, return null here) |

**Block 5.3** — IF (null check on index) `tmpIndexInt == null` (L241)

> Defensive null check on parsed index.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndexInt == null)` |
| 2 | RETURN | `return null;` |

**Block 5.4** — SET (extract primitive index) (L244)

| # | Type | Code |
|---|------|------|
| 1 | SET | `int tmpIndex = tmpIndexInt.intValue();` |

**Block 5.5** — IF (bounds check) `tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_list.size()` (L245)

> Validate index against URL list size. Japanese comment: インデックス値がリスト個数-1を超えると、ここでnullを返す (if index exceeds list size - 1, return null here).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_list.size())` // インデックス値がリスト個数-1を超えるとnullを返す (if index exceeds list size-1, return null here) |
| 2 | RETURN | `return null;` |

**Block 5.6** — RETURN (delegate to child bean) (L247)

> Cast list item to `X33VDataTypeStringBean` and delegate property resolution.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return ((X33VDataTypeStringBean)l0_taiorrk_out_url_list.get(tmpIndex)).loadModelData(subkey);` |

**Block 6** — ELSE-IF (list: URL name list) `key.equals("対応履歴外部接続URL名リスト")` (L253)

> Handle the URL name list data type. The Japanese text "対応履歴外部接続URL名リスト" translates to "Response History External Connection URL Name List". Identical processing pattern to Blocks 4 and 5 but operates on `l0_taiorrk_out_url_nm_list`. The field ID is `l0_taiorrk_out_url_nm`.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if(key.equals("対応履歴外部接続URL名リスト"))` // 配列項目 (array item) |
| 2 | SET | `key = key.substring(separaterPoint + 1);` // keyの次の要素を取得 (get next element of key) |

**Block 6.1** — IF (asterisk: return count) `key.equals("*")` (L256)

> Return the count of items in the URL name list.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key.equals("*"))` // インデックス値の代わりに"*"が指定されていたら、リストの要素数を返す (if "*" specified instead of index, return list element count) |
| 2 | RETURN | `return Integer.valueOf(l0_taiorrk_out_url_nm_list.size());` |

**Block 6.2** — TRY-CATCH (parse index) (L260)

> Parse key as integer index for URL name list. Same pattern as Block 4.2.

| # | Type | Code |
|---|------|------|
| 1 | TRY | `Integer tmpIndexInt = null;` |
| 2 | EXEC | `tmpIndexInt = Integer.valueOf(key);` |
| 3 | CATCH | `catch(NumberFormatException e){ return null; }` // インデックス値が数値文字列でない場合はnullを返す (if index is not numeric string, return null here) |

**Block 6.3** — IF (null check on index) `tmpIndexInt == null` (L266)

> Defensive null check on parsed index.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndexInt == null)` |
| 2 | RETURN | `return null;` |

**Block 6.4** — SET (extract primitive index) (L269)

| # | Type | Code |
|---|------|------|
| 1 | SET | `int tmpIndex = tmpIndexInt.intValue();` |

**Block 6.5** — IF (bounds check) `tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_nm_list.size()` (L270)

> Validate index against URL name list size. Japanese comment: インデックス値がリスト個数-1を超えると、ここでnullを返す (if index exceeds list size - 1, return null here).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndex < 0 || tmpIndex >= l0_taiorrk_out_url_nm_list.size())` // インデックス値がリスト個数-1を超えるとnullを返す (if index exceeds list size-1, return null here) |
| 2 | RETURN | `return null;` |

**Block 6.6** — RETURN (delegate to child bean) (L272)

> Cast list item to `X33VDataTypeStringBean` and delegate property resolution.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return ((X33VDataTypeStringBean)l0_taiorrk_out_url_nm_list.get(tmpIndex)).loadModelData(subkey);` |

**Block 7** — RETURN (fallback null) (L276)

> If no key matches any known type, return null. Japanese comment: 条件に合致するプロパティが存在しない場合は、nullを返す (if no property matches the condition, return null).

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // 条件に合致するプロパティが存在しない場合は、nullを返す (if no matching property exists, return null) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `l0_taiorrk_out_url_no_idx_value` | Field | URL number index value — the actual URL number string stored for the current (single-row) external connection record |
| `l0_taiorrk_out_url_no_idx_enabled` | Field | URL number index enabled flag — boolean indicating whether the URL number field is enabled (true) or disabled (false) in the UI |
| `l0_taiorrk_out_url_no_idx_state` | Field | URL number index state — a status string indicating the validation or input state of the URL number field |
| `l0_taiorrk_out_url_no_idx_update` | Field | URL number index update flag — tracks whether the URL number index field has been modified |
| `l0_taiorrk_out_url_no_list` | Field | URL number list — a list of `X33VDataTypeStringBean` items representing multiple external connection URL numbers in the response history |
| `l0_taiorrk_out_url_list` | Field | URL list — a list of `X33VDataTypeStringBean` items representing multiple external connection URLs in the response history |
| `l0_taiorrk_out_url_nm_list` | Field | URL name list — a list of `X33VDataTypeStringBean` items representing multiple external connection URL names in the response history |
| 対応履歴 (Taiorrk) | Field name | Response history — the business record of customer responses/interactions, used as the context prefix for external connection URL fields |
| 外部接続 (Gaibun Setsuzoku) | Field name | External connection — indicates this data represents connections to external systems or services |
| URL番号 (URL Bangou) | Field name | URL number — a numeric identifier for an external connection URL entry |
| URL名 (URL Mei) | Field name | URL name — a human-readable name label for an external connection URL entry |
| インデックス (Index) | Field qualifier | Index — refers to the single-row (non-list) variant of a field, holding individual property values rather than a collection |
| リスト (List) | Field qualifier | List — refers to the multi-row variant of a field, holding a collection of `X33VDataTypeStringBean` items |
| X33VDataTypeBeanInterface | Framework | The X33 framework interface that requires implementing `loadModelData` for string-keyed property resolution |
| X33VDataTypeStringBean | Framework | The X33 framework bean type for String data fields; used as the element type in the three URL-related lists |
| X33VDataTypeList | Framework | The X33 framework collection type that holds typed bean elements (used as the underlying type for all three list fields) |
| key | Parameter | The item identifier that selects which data property to resolve; can reference either a single-row field or a list |
| subkey | Parameter | A sub-property selector — for index fields it specifies `value`/`enable`/`state`; for list fields it specifies the property on the child bean item |
