# Business Logic — JBSbatKKDelKhChk.isSingleCheckKKIFM160_INF1() [569 LOC]

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

## 1. Role

### JBSbatKKDelKhChk.isSingleCheckKKIFM160_INF1()

This method performs **single-item validation** (単項目チェック) for deletion-eligibility-check data (消去対象データ - 可否チェック前) on the KKIFM160 INF1 screen — a batch operation in the e-Okoku (eo Customer Base System) that determines whether customer data records qualify for deletion. The method accepts a `HashMap` of input data containing 20 distinct fields representing various customer identifiers and service contract details, then validates each field individually against rules for **null/blank checks**, **length validation**, and **character attribute validation** (e.g., alphanumeric, email format, telephone format). The routing/dispatch pattern is sequential: the method iterates through each field one-by-one, and the first validation failure immediately returns `false` with a logged business error. If all 20 fields pass, the method returns `true`, indicating no errors were found. This method plays the role of a **shared validation utility** within the deletion eligibility check subsystem, called by the parent `execute()` method of the same class — it does not perform any database reads or writes, operating entirely in memory.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["isSingleCheckKKIFM160_INF1(rsMap, itemvalueMap)"])
    START --> CHECK_DEL_TRAN["DEL_TRAN_SBT 消去処理種別"]
    CHECK_DEL_TRAN --> IS_NULL_1{"DEL_TRAN_SBT
required check"}
    IS_NULL_1 -->|null or empty| LOG_ERR_1["printBusinessErrorLog EKKB0580TW"]
    LOG_ERR_1 --> RET_FALSE_1[return false]
    IS_NULL_1 -->|has value| LEN_CHK_1{"JBSbatCheckUtil
ketasuu2 0-1"}
    LEN_CHK_1 -->|fail| LOG_ERR_2["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_2 --> RET_FALSE_2[return false]
    LEN_CHK_1 -->|pass| ATTR_CHK_1{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_1 -->|fail| LOG_ERR_3["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_3 --> RET_FALSE_3[return false]
    ATTR_CHK_1 -->|pass| CHECK_DEL_TRGT["DEL_TRGT_SBT 消去対象種別"]
    CHECK_DEL_TRGT --> IS_NULL_2{"DEL_TRGT_SBT
required check"}
    IS_NULL_2 -->|null or empty| LOG_ERR_4["printBusinessErrorLog EKKB0580TW"]
    LOG_ERR_4 --> RET_FALSE_4[return false]
    IS_NULL_2 -->|has value| LEN_CHK_2{"JBSbatCheckUtil
ketasuu2 0-2"}
    LEN_CHK_2 -->|fail| LOG_ERR_5["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_5 --> RET_FALSE_5[return false]
    LEN_CHK_2 -->|pass| ATTR_CHK_2{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_2 -->|fail| LOG_ERR_6["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_6 --> RET_FALSE_6[return false]
    ATTR_CHK_2 -->|pass| CHECK_SVKEI_NO["SVKEI_NO サービス契約番号
10 chars, hannkakuesuuji1"]
    CHECK_SVKEI_NO --> LEN_CHK_3{"JBSbatCheckUtil
ketasuu2 0-10"}
    LEN_CHK_3 -->|fail| LOG_ERR_7["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_7 --> RET_FALSE_7[return false]
    LEN_CHK_3 -->|pass| ATTR_CHK_3{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_3 -->|fail| LOG_ERR_8["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_8 --> RET_FALSE_8[return false]
    ATTR_CHK_3 -->|pass| CHECK_SVKEI_GADTM["SVKEI_GADTM サービス契約世代登録
17 chars, day_hour1"]
    CHECK_SVKEI_GADTM --> LEN_CHK_4{"JBSbatCheckUtil
ketasuu2 0-17"}
    LEN_CHK_4 -->|fail| LOG_ERR_9["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_9 --> RET_FALSE_9[return false]
    LEN_CHK_4 -->|pass| ATTR_CHK_4{"JBSbatCheckUtil
day_hour1"}
    ATTR_CHK_4 -->|fail| LOG_ERR_10["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_10 --> RET_FALSE_10[return false]
    ATTR_CHK_4 -->|pass| CHECK_SVKEIUW_NO["SVKEIUW_NO サービス契約内訳番号
12 chars, hannkakuesuuji1"]
    CHECK_SVKEIUW_NO --> LEN_CHK_5{"JBSbatCheckUtil
ketasuu2 0-12"}
    LEN_CHK_5 -->|fail| LOG_ERR_11["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_11 --> RET_FALSE_11[return false]
    LEN_CHK_5 -->|pass| ATTR_CHK_5{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_5 -->|fail| LOG_ERR_12["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_12 --> RET_FALSE_12[return false]
    ATTR_CHK_5 -->|pass| CHECK_SVKEIUW_GADTM["SVKEIUW_GADTM サービス契約内訳世代登録
17 chars, day_hour1"]
    CHECK_SVKEIUW_GADTM --> LEN_CHK_6{"JBSbatCheckUtil
ketasuu2 0-17"}
    LEN_CHK_6 -->|fail| LOG_ERR_13["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_13 --> RET_FALSE_13[return false]
    LEN_CHK_6 -->|pass| ATTR_CHK_6{"JBSbatCheckUtil
day_hour1"}
    ATTR_CHK_6 -->|fail| LOG_ERR_14["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_14 --> RET_FALSE_14[return false]
    ATTR_CHK_6 -->|pass| CHECK_OPSVKEI_NO["OPSVKEI_NO オプションサービス契約番号
12 chars, hannkakuesuuji1"]
    CHECK_OPSVKEI_NO --> LEN_CHK_7{"JBSbatCheckUtil
ketasuu2 0-12"}
    LEN_CHK_7 -->|fail| LOG_ERR_15["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_15 --> RET_FALSE_15[return false]
    LEN_CHK_7 -->|pass| ATTR_CHK_7{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_7 -->|fail| LOG_ERR_16["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_16 --> RET_FALSE_16[return false]
    ATTR_CHK_7 -->|pass| CHECK_OPSVKEI_GADTM["OPSVKEI_GADTM オプションサービス契約世代登録
17 chars, day_hour1"]
    CHECK_OPSVKEI_GADTM --> LEN_CHK_8{"JBSbatCheckUtil
ketasuu2 0-17"}
    LEN_CHK_8 -->|fail| LOG_ERR_17["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_17 --> RET_FALSE_17[return false]
    LEN_CHK_8 -->|pass| ATTR_CHK_8{"JBSbatCheckUtil
day_hour1"}
    ATTR_CHK_8 -->|fail| LOG_ERR_18["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_18 --> RET_FALSE_18[return false]
    ATTR_CHK_8 -->|pass| CHECK_SYSID["SYSID ＳＹＳＩＤ
10 chars, hannkakuesuuji1"]
    CHECK_SYSID --> LEN_CHK_9{"JBSbatCheckUtil
ketasuu2 0-10"}
    LEN_CHK_9 -->|fail| LOG_ERR_19["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_19 --> RET_FALSE_19[return false]
    LEN_CHK_9 -->|pass| ATTR_CHK_9{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_9 -->|fail| LOG_ERR_20["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_20 --> RET_FALSE_20[return false]
    ATTR_CHK_9 -->|pass| CHECK_ISP_NINSHO["ISP_NINSHO_ID ＩＳＰ認証ＩＤ
64 chars, hannkakuesuuji2"]
    CHECK_ISP_NINSHO --> LEN_CHK_10{"JBSbatCheckUtil
ketasuu2 0-64"}
    LEN_CHK_10 -->|fail| LOG_ERR_21["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_21 --> RET_FALSE_21[return false]
    LEN_CHK_10 -->|pass| ATTR_CHK_10{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_10 -->|fail| LOG_ERR_22["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_22 --> RET_FALSE_22[return false]
    ATTR_CHK_10 -->|pass| CHECK_MLAD["MLAD メールアドレス
256 chars, e-mail4"]
    CHECK_MLAD --> LEN_CHK_11{"JBSbatCheckUtil
ketasuu2 0-256"}
    LEN_CHK_11 -->|fail| LOG_ERR_23["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_23 --> RET_FALSE_23[return false]
    LEN_CHK_11 -->|pass| ATTR_CHK_11{"JBSbatCheckUtil
e-mail4"}
    ATTR_CHK_11 -->|fail| LOG_ERR_24["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_24 --> RET_FALSE_24[return false]
    ATTR_CHK_11 -->|pass| CHECK_MAILALIAS["MAILALIAS メールエイリアス
36 chars, mailaccount"]
    CHECK_MAILALIAS --> LEN_CHK_12{"JBSbatCheckUtil
ketasuu2 0-36"}
    LEN_CHK_12 -->|fail| LOG_ERR_25["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_25 --> RET_FALSE_25[return false]
    LEN_CHK_12 -->|pass| ATTR_CHK_12{"JBSbatCheckUtil
mailaccount"}
    ATTR_CHK_12 -->|fail| LOG_ERR_26["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_26 --> RET_FALSE_26[return false]
    ATTR_CHK_12 -->|pass| CHECK_MLLIST_NM["MLLIST_NM メーリングリスト名
144 chars IT2-2012-0001135"]
    CHECK_MLLIST_NM --> LEN_CHK_13{"JBSbatCheckUtil
ketasuu2 0-144"}
    LEN_CHK_13 -->|fail| LOG_ERR_27["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_27 --> RET_FALSE_27[return false]
    LEN_CHK_13 -->|pass| ATTR_NO_CHECK["no attribute check IT2-2012-0001135 DEL"]
    ATTR_NO_CHECK -->|pass| CHECK_PPP_NINSHO["PPP_NINSHO_ID ＰＰＰ認証ＩＤ
14 chars, hannkakuesuuji2"]
    CHECK_PPP_NINSHO --> LEN_CHK_14{"JBSbatCheckUtil
ketasuu2 0-14"}
    LEN_CHK_14 -->|fail| LOG_ERR_28["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_28 --> RET_FALSE_28[return false]
    LEN_CHK_14 -->|pass| ATTR_CHK_14{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_14 -->|fail| LOG_ERR_29["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_29 --> RET_FALSE_29[return false]
    ATTR_CHK_14 -->|pass| CHECK_URL["URL ＵＲＬ
64 chars, hannkakuesuuji2"]
    CHECK_URL --> LEN_CHK_15{"JBSbatCheckUtil
ketasuu2 0-64"}
    LEN_CHK_15 -->|fail| LOG_ERR_30["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_30 --> RET_FALSE_30[return false]
    LEN_CHK_15 -->|pass| ATTR_CHK_15{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_15 -->|fail| LOG_ERR_31["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_31 --> RET_FALSE_31[return false]
    ATTR_CHK_15 -->|pass| CHECK_FIXIPAD["FIXIPAD 固定ＩＰアドレス
19 chars, hannkakuesuuji2"]
    CHECK_FIXIPAD --> LEN_CHK_16{"JBSbatCheckUtil
ketasuu2 0-19"}
    LEN_CHK_16 -->|fail| LOG_ERR_32["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_32 --> RET_FALSE_32[return false]
    LEN_CHK_16 -->|pass| ATTR_CHK_16{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_16 -->|fail| LOG_ERR_33["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_33 --> RET_FALSE_33[return false]
    ATTR_CHK_16 -->|pass| CHECK_OABJ_TELNO["OABJ_TELNO ＯＡＢＪ電話番号
11 chars, tel2"]
    CHECK_OABJ_TELNO --> LEN_CHK_17{"JBSbatCheckUtil
ketasuu2 0-11"}
    LEN_CHK_17 -->|fail| LOG_ERR_34["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_34 --> RET_FALSE_34[return false]
    LEN_CHK_17 -->|pass| ATTR_CHK_17{"JBSbatCheckUtil
tel2"}
    ATTR_CHK_17 -->|fail| LOG_ERR_35["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_35 --> RET_FALSE_35[return false]
    ATTR_CHK_17 -->|pass| CHECK_TELNO_050["TELNO_050 ０５０電話番号
11 chars, tel2"]
    CHECK_TELNO_050 --> LEN_CHK_18{"JBSbatCheckUtil
ketasuu2 0-11"}
    LEN_CHK_18 -->|fail| LOG_ERR_36["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_36 --> RET_FALSE_36[return false]
    LEN_CHK_18 -->|pass| ATTR_CHK_18{"JBSbatCheckUtil
tel2"}
    ATTR_CHK_18 -->|fail| LOG_ERR_37["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_37 --> RET_FALSE_37[return false]
    ATTR_CHK_18 -->|pass| CHECK_EOID["EOID ｅｏＩＤ
80 chars, hannkakuesuuji2"]
    CHECK_EOID --> LEN_CHK_19{"JBSbatCheckUtil
ketasuu2 0-80"}
    LEN_CHK_19 -->|fail| LOG_ERR_38["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_38 --> RET_FALSE_38[return false]
    LEN_CHK_19 -->|pass| ATTR_CHK_19{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_19 -->|fail| LOG_ERR_39["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_39 --> RET_FALSE_39[return false]
    ATTR_CHK_19 -->|pass| CHECK_NKNAME["NKNAME ニックネーム
256 chars, mix2"]
    CHECK_NKNAME --> LEN_CHK_20{"JBSbatCheckUtil
ketasuu2 0-256"}
    LEN_CHK_20 -->|fail| LOG_ERR_40["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_40 --> RET_FALSE_40[return false]
    LEN_CHK_20 -->|pass| ATTR_CHK_20{"JBSbatCheckUtil
mix2"}
    ATTR_CHK_20 -->|fail| LOG_ERR_41["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_41 --> RET_FALSE_41[return false]
    ATTR_CHK_20 -->|pass| CHECK_AGING_NO["AGING_NO エイジング番号
12 chars, hannkakuesuuji1"]
    CHECK_AGING_NO --> LEN_CHK_21{"JBSbatCheckUtil
ketasuu2 0-12"}
    LEN_CHK_21 -->|fail| LOG_ERR_42["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_42 --> RET_FALSE_42[return false]
    LEN_CHK_21 -->|pass| ATTR_CHK_21{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_21 -->|fail| LOG_ERR_43["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_43 --> RET_FALSE_43[return false]
    ATTR_CHK_21 -->|pass| CHECK_WEB_ID["WEB_ID ＷｅｂＩＤ
10 chars, hannkakuesuuji1"]
    CHECK_WEB_ID --> LEN_CHK_22{"JBSbatCheckUtil
ketasuu2 0-10"}
    LEN_CHK_22 -->|fail| LOG_ERR_44["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_44 --> RET_FALSE_44[return false]
    LEN_CHK_22 -->|pass| ATTR_CHK_22{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_22 -->|fail| LOG_ERR_45["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_45 --> RET_FALSE_45[return false]
    ATTR_CHK_22 -->|pass| CHECK_POP_ID["POP_ID ＰＯＰＩＤ
64 chars, hannkakuesuuji2"]
    CHECK_POP_ID --> LEN_CHK_23{"JBSbatCheckUtil
ketasuu2 0-64"}
    LEN_CHK_23 -->|fail| LOG_ERR_46["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_46 --> RET_FALSE_46[return false]
    LEN_CHK_23 -->|pass| ATTR_CHK_23{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_23 -->|fail| LOG_ERR_47["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_47 --> RET_FALSE_47[return false]
    ATTR_CHK_23 -->|pass| CHECK_ADSL_NINSHO["ADSL_NINSHO_ID ＡＤＳＬ認証ＩＤ
63 chars, hannkakuesuuji2"]
    CHECK_ADSL_NINSHO --> LEN_CHK_24{"JBSbatCheckUtil
ketasuu2 0-63"}
    LEN_CHK_24 -->|fail| LOG_ERR_48["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_48 --> RET_FALSE_48[return false]
    LEN_CHK_24 -->|pass| ATTR_CHK_24{"JBSbatCheckUtil
hannkakuesuuji2"}
    ATTR_CHK_24 -->|fail| LOG_ERR_49["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_49 --> RET_FALSE_49[return false]
    ATTR_CHK_24 -->|pass| CHECK_SIP_USER["SIP_USER_ID ＳＩＰユーザーＩＤ
36 chars, hannkakuesuuji1"]
    CHECK_SIP_USER --> LEN_CHK_25{"JBSbatCheckUtil
ketasuu2 0-36"}
    LEN_CHK_25 -->|fail| LOG_ERR_50["printBusinessErrorLog EKKB0590TW"]
    LOG_ERR_50 --> RET_FALSE_50[return false]
    LEN_CHK_25 -->|pass| ATTR_CHK_25{"JBSbatCheckUtil
hannkakuesuuji1"}
    ATTR_CHK_25 -->|fail| LOG_ERR_51["printBusinessErrorLog EKKB0600TW"]
    LOG_ERR_51 --> RET_FALSE_51[return false]
    ATTR_CHK_25 -->|pass| ALL_PASS["All 20 fields validated successfully"]
    ALL_PASS --> RET_TRUE[return true]
    RET_TRUE --> END(["End"])
    RET_FALSE_1 --> END
    RET_FALSE_2 --> END
    RET_FALSE_3 --> END
    RET_FALSE_4 --> END
    RET_FALSE_5 --> END
    RET_FALSE_6 --> END
    RET_FALSE_7 --> END
    RET_FALSE_8 --> END
    RET_FALSE_9 --> END
    RET_FALSE_10 --> END
    RET_FALSE_11 --> END
    RET_FALSE_12 --> END
    RET_FALSE_13 --> END
    RET_FALSE_14 --> END
    RET_FALSE_15 --> END
    RET_FALSE_16 --> END
    RET_FALSE_17 --> END
    RET_FALSE_18 --> END
    RET_FALSE_19 --> END
    RET_FALSE_20 --> END
    RET_FALSE_21 --> END
    RET_FALSE_22 --> END
    RET_FALSE_23 --> END
    RET_FALSE_24 --> END
    RET_FALSE_25 --> END
    RET_FALSE_26 --> END
    RET_FALSE_27 --> END
    RET_FALSE_28 --> END
    RET_FALSE_29 --> END
    RET_FALSE_30 --> END
    RET_FALSE_31 --> END
    RET_FALSE_32 --> END
    RET_FALSE_33 --> END
    RET_FALSE_34 --> END
    RET_FALSE_35 --> END
    RET_FALSE_36 --> END
    RET_FALSE_37 --> END
    RET_FALSE_38 --> END
    RET_FALSE_39 --> END
    RET_FALSE_40 --> END
    RET_FALSE_41 --> END
    RET_FALSE_42 --> END
    RET_FALSE_43 --> END
    RET_FALSE_44 --> END
    RET_FALSE_45 --> END
    RET_FALSE_46 --> END
    RET_FALSE_47 --> END
    RET_FALSE_48 --> END
    RET_FALSE_49 --> END
    RET_FALSE_50 --> END
    RET_FALSE_51 --> END
```

**Processing Summary:** The method executes a sequential chain of 20 field validations. Each field follows the same 3-step pattern:

1. **Required/Null Check** — For the first two fields (`DEL_TRAN_SBT`, `DEL_TRGT_SBT`), the method verifies the value is not null or empty. If missing, it logs error `EKKB0580TW` with the input count and item label, then returns `false`.

2. **Length Check** — For every field, `JBSbatCheckUtil.invoke()` is called with the `ketasuu2` rule specifying a minimum of 0 characters and a maximum per-field (e.g., `0-1`, `0-10`, `0-256`, etc.). A failure logs `EKKB0590TW`.

3. **Attribute Check** — For every field, `JBSbatCheckUtil.invoke()` is called with a character-set rule (`hannkakuesuuji1`, `hannkakuesuuji2`, `day_hour1`, `e-mail4`, `mailaccount`, `tel2`, `mix2`). A failure logs `EKKB0600TW`.

**Key design observations:**
- Error codes `EKKB0580TW`, `EKKB0590TW`, `EKKB0600TW` replaced older codes (`EKKB0060TE`, `EKKB0070TE`, `EKKB0080TE`) which are now commented out — indicating a migration to a new error logging format that includes input count tracking.
- The method uses early-return-on-error semantics: no loop structure, no accumulation — the first failing check terminates the method.
- No CRUD operations are performed; all validation is purely in-memory.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `rsMap` | `HashMap` | Input data map (from TXT or DB source) containing 20 keyed values representing deletion-eligibility-check data (消去対象データ - 可否チェック前). Keys are field identifiers (e.g., `"DEL_TRAN_SBT"`, `"SVKEI_NO"`, `"MLAD"`, `"EOID"`) that correspond to fields on the KKIFM160 INF1 batch screen. Values are `String` objects. The map represents raw user input that must be validated before deletion eligibility processing proceeds. |
| 2 | `itemvalueMap` | `HashMap<String, String>` | Error message parameter map containing display labels for fields (e.g., `"TXT-KKIFM160-INF1.DEL_TRAN_SBT"` → "消去処理種別"). Used by `printBusinessErrorLog()` to generate user-friendly error messages. The values are the human-readable Japanese field labels shown to operators when validation errors occur. |

**Instance fields used:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `commonItem` | `JKKBatCommon` | Shared batch processing context; provides `getLogPrint()` for error logging and `getInputCount()` for the input line number counter. The input count is embedded in error log messages to trace which input record triggered the failure. |

## 4. CRUD Operations / Called Services

This method performs **no direct CRUD** database operations. All work is in-memory validation. However, it calls logging infrastructure that records errors.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKBatOneTimeLogWriter.printBusinessErrorLog` | JKKBatOneTimeLogWriter | - | Writes error log entries (business error log output) |
| - | `JKKHttpCommunicator.printBusinessErrorLog` | JKKHttpCommunicator | - | Writes error log entries (HTTP communication path) |
| - | `JBSbatKKEMoneyTktnIraiRnk.printBusinessErrorLog` | JBSbatKKEMoneyTktnIraiRnk | - | Writes error log entries (money transfer/ranking context) |
| - | `JBSbatKKEMoneyTktnTkyoTchMailSksi.printBusinessErrorLog` | JBSbatKKEMoneyTktnTkyoTchMailSksi | - | Writes error log entries (money transfer/Tokyo match/mail context) |
| - | `JKKBatOneTimeLogWriter.printBusinessErrorLog` | JKKBatOneTimeLogWriter | - | Called for `DEL_TRAN_SBT` null check failure (EKKB0580TW) |
| - | `JKKBatOneTimeLogWriter.printBusinessErrorLog` | JKKBatOneTimeLogWriter | - | Called for length check failures (EKKB0590TW) across all 20 fields |
| - | `JKKBatOneTimeLogWriter.printBusinessErrorLog` | JKKBatOneTimeLogWriter | - | Called for attribute check failures (EKKB0600TW) across all 20 fields |

**Validation utility method calls (in-memory, no DB):**

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JBSbatCheckUtil.invoke(String val, String[] rules)` | JBSbatCheckUtil | - | Validates a single string value against character rules. Returns `false` if the value violates any of the specified rules (length, character type, format). |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | JBSbatKKDelKhChk.execute() | `JBSbatKKDelKhChk.execute()` -> `isSingleCheckKKIFM160_INF1()` | `printBusinessErrorLog []` (error logging only) |

**Trace notes:**
- This method is called only from `JBSbatKKDelKhChk.execute()`, which is the main batch entry point for the deletion eligibility check batch job.
- No external screen entry points (KKSV*) were found calling this method within 8 hops.
- The method is a leaf validation node — it does not call any service components (SC/CBS) that access databases. Its only side effect is writing error log entries via `printBusinessErrorLog`.
- Terminal operations: all terminal calls are `printBusinessErrorLog` calls with error codes `EKKB0580TW`, `EKKB0590TW`, or `EKKB0600TW`. No database reads or writes are performed.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] (DEL_TRAN_SBT null/blank required check) (L1552)

> Retrieves `DEL_TRAN_SBT` (消去処理種別 / Delete Processing Type) from rsMap and checks if it is required (non-null, non-empty).

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("DEL_TRAN_SBT")` // retrieve delete processing type |
| 2 | IF | `strValue == null || "".equals(strValue)` // required field check |
| 3 | EXEC | `commonItem.getLogPrint().printBusinessErrorLog("EKKB0580TW", ...)` // log required field missing |
| 4 | RETURN | `return false` |
| 5 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"})` // length check: 0-1 char |
| 6 | IF | length check fails → log `EKKB0590TW`, return false |
| 7 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 8 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 2** — [IF] (DEL_TRGT_SBT null/blank required check) (L1580)

> Retrieves `DEL_TRGT_SBT` (消去対象種別 / Delete Target Type) from rsMap and checks if it is required.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("DEL_TRGT_SBT")` // retrieve delete target type |
| 2 | IF | `strValue == null || "".equals(strValue)` // required field check |
| 3 | EXEC | `printBusinessErrorLog("EKKB0580TW", ...)` // log required field missing |
| 4 | RETURN | `return false` |
| 5 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"})` // length check: 0-2 chars |
| 6 | IF | length check fails → log `EKKB0590TW`, return false |
| 7 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 8 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 3** — [IF] (SVKEI_NO サービス契約番号 check) (L1605)

> Retrieves `SVKEI_NO` (Service Contract Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SVKEI_NO")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"})` // length: 0-10 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 4** — [IF] (SVKEI_GADTM サービス契約世代登録 check) (L1630)

> Retrieves `SVKEI_GADTM` (Service Contract Registration Generation Date/Time) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SVKEI_GADTM")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "17"})` // length: 0-17 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"day_hour1"})` // date/time format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 5** — [IF] (SVKEIUW_NO サービス契約内訳番号 check) (L1655)

> Retrieves `SVKEIUW_NO` (Service Contract Detail Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SVKEIUW_NO")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"})` // length: 0-12 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 6** — [IF] (SVKEIUW_GADTM サービス契約内訳世代登録 check) (L1680)

> Retrieves `SVKEIUW_GADTM` (Service Contract Detail Registration Generation Date/Time) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SVKEIUW_GADTM")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "17"})` // length: 0-17 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"day_hour1"})` // date/time format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 7** — [IF] (OPSVKEI_NO オプションサービス契約番号 check) (L1705)

> Retrieves `OPSVKEI_NO` (Option Service Contract Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("OPSVKEI_NO")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"})` // length: 0-12 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 8** — [IF] (OPSVKEI_GADTM オプションサービス契約世代登録 check) (L1730)

> Retrieves `OPSVKEI_GADTM` (Option Service Contract Registration Generation Date/Time) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("OPSVKEI_GADTM")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "17"})` // length: 0-17 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"day_hour1"})` // date/time format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 9** — [IF] (SYSID ＳＹＳＩＤ check) (L1755)

> Retrieves `SYSID` (System ID) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SYSID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"})` // length: 0-10 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 10** — [IF] (ISP_NINSHO_ID ＩＳＰ認証ＩＤ check) (L1780)

> Retrieves `ISP_NINSHO_ID` (ISP Authentication ID) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("ISP_NINSHO_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "64"})` // length: 0-64 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 11** — [IF] (MLAD メールアドレス check) (L1805)

> Retrieves `MLAD` (Email Address) from rsMap. Character format changed from `e-mail2` to `e-mail4` by ticket KT1-2013-0000228 (2013/02/20).

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("MLAD")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "256"})` // length: 0-256 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"e-mail4"})` // email format 4 |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 12** — [IF] (MAILALIAS メールエイリアス check) (L1827)

> Retrieves `MAILALIAS` (Mail Alias) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("MAILALIAS")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "36"})` // length: 0-36 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"mailaccount"})` // mail account format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 13** — [IF] (MLLIST_NM メーリングリスト名 check) (L1847)

> Retrieves `MLLIST_NM` (Mailing List Name) from rsMap. Max length expanded from 16 to 144 by ticket IT2-2012-0001135 (2012/07/05). Attribute check for `hannkakuesuuji5` was removed in the same change.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("MLLIST_NM")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "144"})` // length: 0-144 (expanded from 16) |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | (no attribute check — removed by IT2-2012-0001135) |

**Block 14** — [IF] (PPP_NINSHO_ID ＰＰＰ認証ＩＤ check) (L1873)

> Retrieves `PPP_NINSHO_ID` (PPP Authentication ID) from rsMap. Attribute check changed from `hannkakuesuuji1` to `hannkakuesuuji2` by ticket ST2-2012-0001626 (2012/09/06) because PPP Auth ID is in "Auth ID TEL" format.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("PPP_NINSHO_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "14"})` // length: 0-14 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 15** — [IF] (URL ＵＲＬ check) (L1898)

> Retrieves `URL` from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("URL")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "64"})` // length: 0-64 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 16** — [IF] (FIXIPAD 固定ＩＰアドレス check) (L1921)

> Retrieves `FIXIPAD` (Fixed IP Address) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("FIXIPAD")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "19"})` // length: 0-19 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 17** — [IF] (OABJ_TELNO ＯＡＢＪ電話番号 check) (L1944)

> Retrieves `OABJ_TELNO` (OABJ Telephone Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("OABJ_TELNO")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"})` // length: 0-11 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"})` // telephone number format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 18** — [IF] (TELNO_050 ０５０電話番号 check) (L1967)

> Retrieves `TELNO_050` (050 Telephone Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("TELNO_050")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"})` // length: 0-11 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"})` // telephone number format |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 19** — [IF] (EOID ｅｏＩＤ check) (L1990)

> Retrieves `EOID` (eo ID) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("EOID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "80"})` // length: 0-80 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 20** — [IF] (NKNAME ニックネーム check) (L2013)

> Retrieves `NKNAME` (Nickname) from rsMap. Character format changed from `mix` to `mix2` by ticket ANK-1528-00-00 (2013/06/07).

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("NKNAME")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "256"})` // length: 0-256 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"mix2"})` // mixed character format 2 |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 21** — [IF] (AGING_NO エイジング番号 check) (L2036)

> Retrieves `AGING_NO` (Aging Number) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("AGING_NO")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"})` // length: 0-12 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 22** — [IF] (WEB_ID ＷｅｂＩＤ check) (L2059)

> Retrieves `WEB_ID` (Web ID) from rsMap. Part of IT1-2013-0000285 aging skew state change (2013/02/18).

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("WEB_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"})` // length: 0-10 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 23** — [IF] (POP_ID ＰＯＰＩＤ check) (L2081)

> Retrieves `POP_ID` (POP ID) from rsMap.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("POP_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "64"})` // length: 0-64 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 24** — [IF] (ADSL_NINSHO_ID ＡＤＳＬ認証ＩＤ check) (L2101)

> Retrieves `ADSL_NINSHO_ID` (ADSL Authentication ID) from rsMap. Attribute check changed from `hannkakuesuuji1` to `hannkakuesuuji2` by ticket IKK-2013-0000754 (2013/04/02) to fix single-item check errors in deletion eligibility checking.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("ADSL_NINSHO_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "63"})` // length: 0-63 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"})` // full-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 25** — [IF] (SIP_USER_ID ＳＩＰユーザーＩＤ check) (L2121)

> Retrieves `SIP_USER_ID` (SIP User ID) from rsMap. Part of IT1-2013-0000285 aging skew state change.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strValue = (String)rsMap.get("SIP_USER_ID")` |
| 2 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "36"})` // length: 0-36 |
| 3 | IF | length check fails → log `EKKB0590TW`, return false |
| 4 | EXEC | `JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"})` // half-width alphanumeric |
| 5 | IF | attribute check fails → log `EKKB0600TW`, return false |

**Block 26** — [RETURN] (All validations passed) (L2115)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true` // all 20 fields passed validation |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `DEL_TRAN_SBT` | Field | Delete Processing Type — identifies the type of deletion processing (e.g., full delete, partial delete). Single character, half-width alphanumeric. |
| `DEL_TRGT_SBT` | Field | Delete Target Type — identifies what type of data is being targeted for deletion. Maximum 2 characters, half-width alphanumeric. |
| `SVKEI_NO` | Field | Service Contract Number — the unique identifier for a service contract. Maximum 10 characters, half-width alphanumeric. |
| `SVKEI_GADTM` | Field | Service Contract Registration Generation Date/Time — timestamp of when the service contract was registered. Maximum 17 characters, date/time format. |
| `SVKEIUW_NO` | Field | Service Contract Detail Number — the unique identifier for a line item within a service contract. Maximum 12 characters, half-width alphanumeric. |
| `SVKEIUW_GADTM` | Field | Service Contract Detail Registration Generation Date/Time — timestamp of when the service contract detail was registered. Maximum 17 characters, date/time format. |
| `OPSVKEI_NO` | Field | Option Service Contract Number — the unique identifier for an optional service add-on contract. Maximum 12 characters, half-width alphanumeric. |
| `OPSVKEI_GADTM` | Field | Option Service Contract Registration Generation Date/Time — timestamp of when the option service contract was registered. Maximum 17 characters, date/time format. |
| `SYSID` | Field | System ID — internal system identifier. Maximum 10 characters, half-width alphanumeric. |
| `ISP_NINSHO_ID` | Field | ISP Authentication ID — authentication identifier for Internet Service Provider login. Maximum 64 characters, full-width alphanumeric. |
| `MLAD` | Field | Email Address — customer's primary email address. Maximum 256 characters, email format (e-mail4). |
| `MAILALIAS` | Field | Mail Alias — an alternate email address for the customer. Maximum 36 characters, mail account format. |
| `MLLIST_NM` | Field | Mailing List Name — the name of a mailing list the customer subscribes to. Maximum 144 characters (expanded from 16 by IT2-2012-0001135). |
| `PPP_NINSHO_ID` | Field | PPP Authentication ID — authentication identifier for PPP (Point-to-Point Protocol) login. Maximum 14 characters, full-width alphanumeric. |
| `URL` | Field | URL — a web address associated with the customer. Maximum 64 characters, full-width alphanumeric. |
| `FIXIPAD` | Field | Fixed IP Address — the customer's static/dedicated IP address. Maximum 19 characters, full-width alphanumeric. |
| `OABJ_TELNO` | Field | OABJ Telephone Number — telephone number for OABJ (business objective) service. Maximum 11 characters, telephone format (tel2). |
| `TELNO_050` | Field | 050 Telephone Number — a telephone number using the 050 prefix (VoIP service). Maximum 11 characters, telephone format (tel2). |
| `EOID` | Field | eo ID — the customer's primary account identifier in the e-Okoku system. Maximum 80 characters, full-width alphanumeric. |
| `NKNAME` | Field | Nickname — the customer's display name/nickname. Maximum 256 characters, mixed character format (mix2). |
| `AGING_NO` | Field | Aging Number — a tracking number for aging-related customer data. Maximum 12 characters, half-width alphanumeric. |
| `WEB_ID` | Field | Web ID — the customer's web login identifier. Maximum 10 characters, half-width alphanumeric. |
| `POP_ID` | Field | POP ID — the customer's POP3 mail server login identifier. Maximum 64 characters, full-width alphanumeric. |
| `ADSL_NINSHO_ID` | Field | ADSL Authentication ID — authentication identifier for ADSL broadband service login. Maximum 63 characters, full-width alphanumeric. |
| `SIP_USER_ID` | Field | SIP User ID — the customer's SIP (Session Initiation Protocol) VoIP user identifier. Maximum 36 characters, half-width alphanumeric. |
| KKIFM160 | Screen | Batch input screen for deletion eligibility check (消去対象データ可否チェック). |
| 消去対象データ - 可否チェック前 | Domain term | Deletion-eligibility-check data — customer records in the pre-eligibility check stage, being validated before actual deletion processing. |
| 単項目チェック | Domain term | Single-item check — field-level validation (null, length, character format) performed on individual input fields. |
| 消去処理種別 | Domain term | Delete Processing Type — categorizes what kind of deletion is being performed (e.g., contract deletion, customer deletion). |
| 消去対象種別 | Domain term | Delete Target Type — categorizes what entity is being deleted (e.g., service contract, option contract). |
| JBSbatCheckUtil.invoke | Utility method | In-memory validation utility that checks a string value against character set rules (length, alphanumeric, email, telephone, etc.). |
| hannkakuesuuji1 | Validation rule | Half-width alphanumeric only (ASCII letters, digits). |
| hannkakuesuuji2 | Validation rule | Full-width alphanumeric allowed (includes full-width Japanese characters, full-width letters/digits). |
| day_hour1 | Validation rule | Date/time format validator (YYYYMMDDHH24MISS format, 17 chars max). |
| e-mail4 | Validation rule | Email format validator (supports extended email character set). |
| mailaccount | Validation rule | Mail account format validator (local part + @ + domain format). |
| tel2 | Validation rule | Telephone number format validator (digits and hyphens). |
| mix2 | Validation rule | Mixed character format validator (allows full-width, half-width, kanji, hiragana, katakana). |
| EKKB0580TW | Error code | Required field missing — field value is null or empty. |
| EKKB0590TW | Error code | Length validation failed — field value exceeds maximum or is below minimum character count. |
| EKKB0600TW | Error code | Attribute validation failed — field value contains characters not allowed by the specified character set rule. |
| 可否チェック | Domain term | Eligibility check — determines whether a record qualifies for deletion processing. |
| JKKBatCommon | Framework class | Shared batch processing context class providing logging, input count tracking, and batch lifecycle management. |
