---
title: JBSbatKKBandWidthOverLmtDtTst.getTikLitYksScmList() Detailed Design
description: Business logic analysis of getTikLitYksScmList — retrieves band-width-over-limit control exemption customer scheme provider codes from work parameters.
---

# Business Logic — JBSbatKKBandWidthOverLmtDtTst.getTikLitYksScmList() [28 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.business.service.JBSbatKKBandWidthOverLmtDtTst` |
| Layer | Service (Batch) |
| Module | `service` (Package: `eo.business.service`) |

## 1. Role

### JBSbatKKBandWidthOverLmtDtTst.getTikLitYksScmList()

This method retrieves the list of **scheme provider company codes** (`スキーム事業者コード`) for customers who are **exempt from bandwidth control over-limit processing** (`帯域制御抑止対象`). It performs a database query against the work parameter management table using the parameter key `T_C_Y_SCM_JGS_CD` to locate the stored configuration value, which contains a comma-separated list of provider codes. The method implements a **query-and-delegate** pattern: it prepares a bind parameter, delegates the SQL SELECT to `executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019`, reads the result via `db_ZM_M_WORK_PARAM_KNRI.selectNext()`, and then materializes the result as a `List<String>` by splitting the returned value on commas. This method serves as a shared utility within the batch processing pipeline, called by the parent class's `execute()` method to determine which scheme providers should be excluded from over-limit bandwidth enforcement during batch execution. The Javadoc describes it as: "業務パラメータ管理より帯域制御抑止対象の お客様スキーム事業者コードを取得します" (Retrieves the customer scheme provider codes for bandwidth control suppression exemption targets from the business parameter management).

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["getTikLitYksScmList"])
    INIT["Initialize: workScmJgsCd, result, resultList = null"]
    SETUP["Setup param array: param[0] = T_C_Y_SCM_JGS_CD, param[1] = opeDate, param[2] = opeDate"]
    EXEC_QUERY["executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019(param)"]
    FETCH["result = db_ZM_M_WORK_PARAM_KNRI.selectNext()"]
    CHECK_RESULT{"result != null?"}
    CHECK_VALUE{"result.getValue(WORK_PARAM_SETTE_VALUE) != null?"}
    GET_VALUE["workScmJgsCd = result.getString(WORK_PARAM_SETTE_VALUE)"]
    SPLIT_LIST["resultList = Arrays.asList(workScmJgsCd.split(CONMA)]"]
    SET_NULL["result = null"]
    RETURN_LIST["Return resultList"]
    RETURN_NULL["Return null"]
    EARLY_END(["End"])

    START --> INIT --> SETUP --> EXEC_QUERY --> FETCH --> CHECK_RESULT
    CHECK_RESULT -->|true| CHECK_VALUE
    CHECK_RESULT -->|false| SET_NULL --> RETURN_LIST
    CHECK_VALUE -->|true| GET_VALUE --> SPLIT_LIST --> SET_NULL --> RETURN_LIST
    CHECK_VALUE -->|false| RETURN_NULL
```

**Processing flow summary:**

1. **Initialize** local variables (`workScmJgsCd`, `result`, `resultList`) to `null`.
2. **Setup bind parameters**: Create a 3-element string array. `param[0]` is set to the parameter key `T_C_Y_SCM_JGS_CD` (`[-> T_C_Y_SCM_JGS_CD="T_C_Y_SCM_JGS_CD" (JBSbatKKBandWidthOverLmtDtTst.java:173)]`), while `param[1]` and `param[2]` are both set to the operation date (`super.opeDate`).
3. **Execute database query**: Delegates to `executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019(param)` which performs an SQL SELECT using SQLKEY `KK_SELECT_019` against the work parameter management table.
4. **Fetch result**: Calls `db_ZM_M_WORK_PARAM_KNRI.selectNext()` to retrieve the next row from the query result.
5. **Null-check result**: If `result` is `null` (no matching row found), set `result` to `null` (no-op) and return `null`.
6. **Null-check value**: If the `WORK_PARAM_SETTE_VALUE` column is null, return `null` (exemption codes are not configured).
7. **Extract and split**: Retrieve the string value and split it by comma (`JZMBatConst.CONMA`, `[-> CONMA="," (JZMBatConst.java:114)]`) to produce a `List<String>` of individual scheme provider codes.
8. **Cleanup and return**: Set `result` to `null` and return the populated list.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no external parameters. It operates entirely on internal state and configuration. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `super.opeDate` | `String` | The operation date used as a bind variable for the work parameter query. Represents the processing date context for the batch job. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019` | (Self) | `ZM_M_WORK_PARAM_KNRI` | Executes a SELECT query (SQLKEY `KK_SELECT_019`) to read the work parameter record keyed by `T_C_Y_SCM_JGS_CD` from the work parameter management table. |
| R | `db_ZM_M_WORK_PARAM_KNRI.selectNext` | (Self) | `ZM_M_WORK_PARAM_KNRI` | Fetches the next row from the pre-executed SELECT result set, retrieving the bandwidth control exemption scheme provider code configuration. |
| R | `JBSbatZM_M_WORK_PARAM_KNRI.getString` | (Self) | `ZM_M_WORK_PARAM_KNRI` | Extracts the string value of the `WORK_PARAM_SETTE_VALUE` field from the result row. |
| R | `JBSbatZM_M_WORK_PARAM_KNRI.getValue` | (Self) | `ZM_M_WORK_PARAM_KNRI` | Checks for null on the `WORK_PARAM_SETTE_VALUE` field before extracting its value. |
| - | `Arrays.asList` | Java Core | - | Converts a comma-split string array into an immutable `List<String>`. |
| - | `String.split` | Java Core | - | Splits the scheme provider code string by comma delimiter (`[-> CONMA="," (JZMBatConst.java:114)]`). |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: `JBSbatKKBandWidthOverLmtDtTst` | `execute()` -> `getTikLitYksScmList()` | `selectNext [R] ZM_M_WORK_PARAM_KNRI` |

**Notes:**
- The only direct caller is `JBSbatKKBandWidthOverLmtDtTst.execute()`, which is the batch job's main execution entry point. This method is an internal private helper invoked during batch processing.
- No screen/batch entry points (`KKSV*`) were found within 8 hops; this is a batch-only utility method.

## 6. Per-Branch Detail Blocks

**Block 1** — [LOCAL VARIABLE DECLARATION] `(Initialization)` (L913-L916)

> Initialize all local variables to `null` to prepare for the query workflow.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String workScmJgsCd = null;` // Storage for the comma-separated scheme provider code string |
| 2 | SET | `JBSbatCommonDBInterface result = null;` // Database result holder |
| 3 | SET | `List<String> resultList = null;` // Final return value |

**Block 2** — [BIND VARIABLE SETUP] `(Parameter preparation)` (L918-L922)

> Prepare the three-element bind parameter array for the work parameter query. The first element specifies the parameter key to look up, and the date elements provide the processing context.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String[] param = new String[3];` // Bind parameter array |
| 2 | SET | `param[0] = T_C_Y_SCM_JGS_CD;` // `[-> T_C_Y_SCM_JGS_CD="T_C_Y_SCM_JGS_CD" (JBSbatKKBandWidthOverLmtDtTst.java:173)]` — Parameter key for scheme provider codes |
| 3 | SET | `param[1] = super.opeDate;` // Operation date (start context) |
| 4 | SET | `param[2] = super.opeDate;` // Operation date (end context) |

**Block 3** — [METHOD CALL: DATABASE QUERY] `(Execute SELECT)` (L924)

> Invokes the work parameter SELECT method with SQLKEY `KK_SELECT_019`. This performs the database read to locate the band-width-over-limit control exemption configuration record.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019(param);` // Executes DB SELECT using SQLKEY KK_SELECT_019 |

**Block 4** — [METHOD CALL: RESULT FETCH] `(Fetch next row)` (L925)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `result = db_ZM_M_WORK_PARAM_KNRI.selectNext();` // Retrieves next row from the SELECT result |

**Block 5** — [IF] `(result != null)` (L926)

> Checks if the database query returned a matching work parameter record. If no record is found (bandwidth control exemption is not configured for this key), the method falls through to return `null`.

**Block 5.1** — [IF] `(result.getValue(WORK_PARAM_SETTE_VALUE) != null)` (L928)

> Checks if the `WORK_PARAM_SETTE_VALUE` column contains a non-null value. This column holds the comma-separated list of scheme provider company codes that are exempt from bandwidth over-limit control.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `result.getValue(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE)` // Null-check on the setting value field |
| 2 | SET | `workScmJgsCd = result.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE);` // `[-> WORK_PARAM_SETTE_VALUE]` — Extract the comma-separated scheme provider code string |
| 3 | SET | `resultList = Arrays.asList(workScmJgsCd.split(JZMBatConst.CONMA));` // `[-> CONMA="," (JZMBatConst.java:114)]` — Split by comma and convert to List<String> |

**Block 5.2** — [ELSE-IF] (empty body, implicit fallthrough to Block 6 returning `null`) (L930)

> When the work parameter record exists but `WORK_PARAM_SETTE_VALUE` is null (no exemption codes configured), the method returns `null`, indicating no scheme providers are exempt.

**Block 6** — [LOCAL VARIABLE CLEANUP] (L932)

| # | Type | Code |
|---|------|------|
| 1 | SET | `result = null;` // Release the DB result reference |

**Block 7** — [RETURN] `(Return resultList)` (L934)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return resultList;` // Returns null if no record found or value was null; otherwise returns List of scheme provider codes |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `T_C_Y_SCM_JGS_CD` | Field | Scheme Provider Company Code — the parameter key used to look up work parameter configuration records. "SCM JGS CD" stands for Scheme Business Provider Code (スキーム事業者コード). |
| `WORK_PARAM_SETTE_VALUE` | Field | Work Parameter Setting Value — the column that stores the actual configured value (comma-separated scheme provider codes) in the work parameter management table. |
| `opeDate` | Field | Operation Date — the processing date used as a bind variable in parameter queries. Represents the date context for batch operations. |
| `CONMA` | Constant | Comma — the string delimiter `","` used to separate multiple values. [-> `CONMA="," (JZMBatConst.java:114)`] |
| `ZM_M_WORK_PARAM_KNRI` | Entity | Work Parameter Management Table (Knari/設定管理) — the database table storing business parameter configuration records used by batch jobs. "Knari" means configuration/settings. |
| `KK_SELECT_019` | SQL Key | SQLKEY identifier for the SELECT query used to read work parameter records by key name. |
| `帯域制御抑止対象` | Business term | Bandwidth Control Suppression Target — customers whose bandwidth over-limit enforcement is suppressed (exempted). These customers are not subject to bandwidth throttling even when usage exceeds limits. |
| `スキーム事業者コード` | Business term | Scheme Provider Company Code — identifies the telecommunications service provider (scheme operator) for a customer. Used to determine which providers' customers are exempt from bandwidth over-limit processing. |
| `db_ZM_M_WORK_PARAM_KNRI` | Instance Field | Database interface for the work parameter management table — provides `selectNext()` and `getString()` methods for reading configuration records. |
| `executeZM_M_WORK_PARAM_KNRI_KK_SELECT_019` | Method | Work parameter query execution method — runs an SQL SELECT with SQLKEY `KK_SELECT_019` using the provided bind parameters. |
| `JBSbatCommonDBInterface` | Interface | Common database result interface — provides `getValue()` and `getString()` methods for accessing query result rows. |
| Batch | Layer | Batch processing — the method runs as part of a scheduled batch job, not a screen-based transaction. |
