---
title: "Business Logic — JBSbatKKDelRun.isDelOpsvkei()"
entityType: "method"
---

# Business Logic — JBSbatKKDelRun.isDelOpsvkei() [81 LOC]

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

## 1. Role

### JBSbatKKDelRun.isDelOpsvkei()

This method serves as a **business eligibility gatekeeper** for deleting optional service contract items (`オプションサービス契約の消去可否チェック` — Optional Service Contract Deletion Eligibility Check) within the eo broadband ISP service deletion batch processing pipeline. In the Japanese telecom service domain, customers who cancel their primary ISP contract may also hold various optional add-on services (such as mail aliases, fixed IP addresses, mailing list memberships, VoIP phone numbers, and authentication IDs). This method determines whether a given deletion target subtype qualifies as an **optional service** item, as opposed to a core ISP contract item, a customer cancellation item, or an invalid type.

The method implements a **pure discriminator/routing pattern** — it contains no business rules beyond membership testing. It evaluates the incoming `delTrgtSbt` parameter against nine recognized optional-service constant values. If the value matches any of the nine predefined subtypes, it returns `true`, signaling to the caller that the deletion target belongs to the "optional service contract" category and should be routed to the optional-service-specific deletion handler (`updateDelTrnJssiDtmOpsvkei`). If no match is found, it returns `false`.

Within the larger system, this method plays a critical role in the **delete routing dispatch logic** of `JBSbatKKDelRun`. The parent batch method (`updateDelTrnJssiDtm`) groups deletion targets by their business category: (1) customer deletion targets (nickname, etc.), (2) core service contract deletion targets (PPP auth ID, ISP auth ID, ADSL auth ID), (3) service detail deletion targets (SIP user ID, old ISP auth ID, OABJ phone number), and (4) optional service contract deletion targets (mail address, URL, fixed IP, etc.). The `isDelOpsvkei` method is the fourth category gate. Any subtype that falls through all nine checks is treated as an **unrecognized type**, triggering a business error (`EKKB0130CE`) and halting the batch job.

**Design patterns:** Discriminator/Routing Gate, Pure Predicate.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["isDelOpsvkei delTrgtSbt"])
    INIT["SET isDel equals false"]

    C1{equals DEL_TRGT_SBT_MLAD 03 Mail Address}
    C2{equals DEL_TRGT_SBT_MAILALIAS 04 Mail Alias}
    C3{equals DEL_TRGT_SBT_POP_ID 15 POP ID}
    C4{equals DEL_TRGT_SBT_URL 07 URL}
    C5{equals DEL_TRGT_SBT_WEB_ID 14 WebID}
    C6{equals DEL_TRGT_SBT_MLLIST_NM 05 Mailing List Name}
    C7{equals DEL_TRGT_SBT_FIXIPAD 08 Fixed IP Address}
    C8{equals DEL_TRGT_SBT_050_TELNO 10 050 Phone Number}
    C9{equals DEL_TRGT_SBT_MLTISE_NINSHO_ID 18 Multiseccion Auth ID}

    START --> INIT
    INIT --> C1
    C1 -->|true| T1["SET isDel equals true"]
    C1 -->|false| C2
    T1 --> END_R
    C2 -->|true| T2["SET isDel equals true"]
    C2 -->|false| C3
    T2 --> END_R
    C3 -->|true| T3["SET isDel equals true"]
    C3 -->|false| C4
    T3 --> END_R
    C4 -->|true| T4["SET isDel equals true"]
    C4 -->|false| C5
    T4 --> END_R
    C5 -->|true| T5["SET isDel equals true"]
    C5 -->|false| C6
    T5 --> END_R
    C6 -->|true| T6["SET isDel equals true"]
    C6 -->|false| C7
    T6 --> END_R
    C7 -->|true| T7["SET isDel equals true"]
    C7 -->|false| C8
    T7 --> END_R
    C8 -->|true| T8["SET isDel equals true"]
    C8 -->|false| C9
    T8 --> END_R
    C9 -->|true| T9["SET isDel equals true"]
    C9 -->|false| F1["SET isDel equals false"]
    T9 --> END_R
    F1 --> END_R

    END_R(["Return isDel"])
```

**Flow description:**

1. **Initialization (L925):** Set the local flag `isDel` to `false`, representing the default assumption that the deletion target is NOT an optional service item.
2. **Sequential membership checks (L928–L984):** Each `else if` branch tests whether `delTrgtSbt` equals one of the nine recognized optional service subtype constants. If a match is found, `isDel` is set to `true`.
3. **Fall-through (L987):** If none of the nine constants match, `isDel` remains `false`.
4. **Return (L989):** The method returns the boolean flag to the caller, indicating whether the subtype qualifies as an optional service item.

**CRITICAL — Constant Resolution:**

All nine branch conditions are resolved from `JKKBatDelRunConst`:

| Constant | Value | Business Meaning |
|----------|-------|------------------|
| `DEL_TRGT_SBT_MLAD` | `"03"` | Mail Address (メールアドレス) |
| `DEL_TRGT_SBT_MAILALIAS` | `"04"` | Mail Alias (メールエイリアス) |
| `DEL_TRGT_SBT_POP_ID` | `"15"` | POP ID (POPID) |
| `DEL_TRGT_SBT_URL` | `"07"` | URL (URL) |
| `DEL_TRGT_SBT_WEB_ID` | `"14"` | WebID (WebID) |
| `DEL_TRGT_SBT_MLLIST_NM` | `"05"` | Mailing List Name (メイリングリスト名) |
| `DEL_TRGT_SBT_FIXIPAD` | `"08"` | Fixed IP Address (固定IPアドレス) |
| `DEL_TRGT_SBT_050_TELNO` | `"10"` | 050 Phone Number (050電話番号) |
| `DEL_TRGT_SBT_MLTISE_NINSHO_ID` | `"18"` | Multiseccion Auth ID (マルチセccion用認証ID) |

Note: `DEL_TRGT_SBT_IPV6` (value `"13"`) is commented out / disabled since IT1-2013-0000285 (IPv6 address deletion support was removed).

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `delTrgtSbt` | `String` | Deletion target subtype — a code that identifies which category of optional service contract item is being deleted. It is a two-character string value (e.g., `"03"`, `"04"`) that matches constants defined in `JKKBatDelRunConst`. The value determines whether the target is one of nine recognized optional service types (mail address, mail alias, POP ID, URL, WebID, mailing list name, fixed IP address, 050 phone number, or multiseccion authentication ID). If the value does not match any recognized optional service subtype, it falls through and the method returns `false`. |

**External/instance state:** This method does not read any instance fields or external state. It is a pure predicate with no side effects.

## 4. CRUD Operations / Called Services

This method contains **no method calls** to other services, CBS, or SC components. It performs a pure in-memory comparison chain with no database or service interactions.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | — | — | — | No CRUD operations — pure predicate with no external calls |

**Called methods summary:**

| Method | Notes |
|--------|-------|
| — | No service, CBS, or SC calls — all comparisons are direct `String.equals()` against constant values |

## 5. Dependency Trace

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

Direct callers found: 1 method.

This method is called exclusively from within its own class (`JBSbatKKDelRun`), specifically from the **delete transaction date/time update dispatch method** (`updateDelTrnJssiDtm` — referenced in the code graph as `JBSbatKKDelRun.updateDelTrnJssiDtmJssiDtm`).

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: JBSbatKKDelRun.updateDelTrnJssiDtm | `updateDelTrnJssiDtm(inMap)` → `isDelOpsvkei(delTrgtSbt)` | `updateDelTrnJssiDtmOpsvkei(inMap)` [U] ops service contract |

**Call chain detail:**

The parent method `updateDelTrnJssiDtm` (line ~860) processes deletion targets for service contracts. It branches on `delTrgtSbt`:
- If the target is a **customer deletion** item → calls `updateDelTrnJssiDtmCust`
- If the target is a **core service contract deletion** item → calls `updateDelTrnJssiDtmSvcKei`
- If the target is a **service detail deletion** item → calls `updateDelTrnJssiDtmSvkeiuw`
- **If `isDelOpsvkei(delTrgtSbt)` returns true** → calls `updateDelTrnJssiDtmOpsvkei(inMap)` (L900–L902)
- **Else** → logs error `EKKB0130CE` with "Deletion Target Subtype" and throws `JBSbatBusinessError`

The `updateDelTrnJssiDtmOpsvkei` method (the terminal operation) would handle the actual deletion of optional service contract items by updating the transaction date/time fields in the relevant database tables.

## 6. Per-Branch Detail Blocks

**Block 1** — [LOCAL VARIABLE] `(initialization)` (L925)

> Initialize the result flag to the default "not eligible" state.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isDel = false` // Default: deletion target is not an optional service item |

**Block 2** — [IF] `(delTrgtSbt equals DEL_TRGT_SBT_MLAD)` [DEL_TRGT_SBT_MLAD="03" (Mail Address)] (L928–L932)

> Check if the deletion target subtype corresponds to a standard mail address. If so, mark as eligible for optional service deletion.
> Javadoc: `メールアクセスの場合` (In case of mail access)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_MLAD)` [-> "03"] |
| 2 | SET | `isDel = true` |

**Block 3** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_MAILALIAS)` [DEL_TRGT_SBT_MAILALIAS="04" (Mail Alias)] (L933–L937)

> Check if the deletion target subtype corresponds to a mail alias. If so, mark as eligible.
> Javadoc: `メールエイリアスの場合` (In case of mail alias)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_MAILALIAS)` [-> "04"] |
| 2 | SET | `isDel = true` |

**Block 4** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_POP_ID)` [DEL_TRGT_SBT_POP_ID="15" (POP ID)] (L938–L942)

> Check if the deletion target subtype corresponds to a POP authentication ID. If so, mark as eligible.
> Javadoc: `POPIDの場合` (In case of POP ID)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_POP_ID)` [-> "15"] |
| 2 | SET | `isDel = true` |

**Block 5** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_URL)` [DEL_TRGT_SBT_URL="07" (URL)] (L943–L947)

> Check if the deletion target subtype corresponds to a URL registration. If so, mark as eligible.
> Javadoc: `URLの場合` (In case of URL)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_URL)` [-> "07"] |
| 2 | SET | `isDel = true` |

**Block 6** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_WEB_ID)` [DEL_TRGT_SBT_WEB_ID="14" (WebID)] (L948–L952)

> Check if the deletion target subtype corresponds to a WebID. If so, mark as eligible. This constant was migrated from the original encoding scheme per IT1-2013-0000285.
> Javadoc: `WebIDの場合` (In case of WebID)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_WEB_ID)` [-> "14"] |
| 2 | SET | `isDel = true` |

**Block 7** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_MLLIST_NM)` [DEL_TRGT_SBT_MLLIST_NM="05" (Mailing List Name)] (L953–L957)

> Check if the deletion target subtype corresponds to a mailing list name. If so, mark as eligible.
> Javadoc: `メイリングリスト名の場合` (In case of mailing list name)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_MLLIST_NM)` [-> "05"] |
| 2 | SET | `isDel = true` |

**Block 8** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_FIXIPAD)` [DEL_TRGT_SBT_FIXIPAD="08" (Fixed IP Address)] (L958–L962)

> Check if the deletion target subtype corresponds to a fixed IP address. If so, mark as eligible.
> Javadoc: `固定IPアクセスの場合` (In case of fixed IP access)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_FIXIPAD)` [-> "08"] |
| 2 | SET | `isDel = true` |

**Block 9** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_050_TELNO)` [DEL_TRGT_SBT_050_TELNO="10" (050 Phone Number)] (L963–L967)

> Check if the deletion target subtype corresponds to a 050 virtual phone number. If so, mark as eligible.
> Javadoc: `050電話番号の場合` (In case of 050 phone number)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_050_TELNO)` [-> "10"] |
| 2 | SET | `isDel = true` |

**Block 10** — [COMMENTED OUT] `(DEL_TRGT_SBT_IPV6)` [DEL_TRGT_SBT_IPV6="13" (IPv6 Address) — DISABLED] (L969–L974)

> IPv6 address deletion support was removed per IT1-2013-0000285. The code block is fully commented out with deletion markers (`削除 DEL START` / `削除 DEL END`).
> Javadoc: `IPv6アクセスの場合` (In case of IPv6 access)

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// IT1-2013-0000285 削除 DEL START` |
| 2 | COMMENT | `// else if(delTrgtSbt.equals(DEL_TRGT_SBT_IPV6))` |
| 3 | COMMENT | `// { // IPv6アクセスの場合` |
| 4 | COMMENT | `// isDel = true;` |
| 5 | COMMENT | `// }` |
| 6 | COMMENT | `// IT1-2013-0000285 削除 DEL END` |

**Block 11** — [ELSE-IF] `(delTrgtSbt equals DEL_TRGT_SBT_MLTISE_NINSHO_ID)` [DEL_TRGT_SBT_MLTISE_NINSHO_ID="18" (Multiseccion Auth ID)] (L976–L982)

> Check if the deletion target subtype corresponds to a multiseccion authentication ID added per IT1-2013-0000927 (2013-04-16). If so, mark as eligible.
> Javadoc: `マルチセccion用認証IDの場合` (In case of multiseccion authentication ID)

| # | Type | Code |
|---|------|------|
| 1 | COMPARE | `delTrgtSbt.equals(DEL_TRGT_SBT_MLTISE_NINSHO_ID)` [-> "18"] |
| 2 | SET | `isDel = true` |

**Block 12** — [ELSE / FALL-THROUGH] `(no match)` (L984–L988)

> If none of the nine optional service subtype constants match, `isDel` remains `false`. The caller (`updateDelTrnJssiDtm`) will treat this as "not an optional service item" and route the deletion to a different handler, or throw a business error if no handler matches any category.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isDel` remains `false` (from Block 1) |
| 2 | RETURN | `return isDel` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `delTrgtSbt` | Field | Deletion target subtype — a two-character string code that categorizes which type of service item is being deleted. Values range from `"01"` to `"18"` and are defined as constants in `JKKBatDelRunConst`. |
| `isDel` | Variable | Deletion eligibility flag — local boolean that indicates whether the target subtype qualifies as an optional service item (`true`) or not (`false`). |
| `isDelOpsvkei` | Method | Optional service deletion eligibility check — determines if a deletion target belongs to the optional service contract category. |
| オプションサービス契約の消去可否チェック | Japanese comment | Optional service contract deletion eligibility check — the business purpose of this method. |
| メールアクセスの場合 | Japanese comment | In case of mail access — refers to deleting a customer's primary mail address associated with their ISP service. |
| メールエイリアス | Japanese term | Mail alias — a secondary email address that forwards to the primary email, offered as an optional add-on. |
| POPIP | Japanese term | POP ID — the authentication identifier used for POP3 email retrieval, an optional service add-on. |
| URL | Business term | URL forward registration — a URL forwarding service (e.g., `www.example.com` → actual server), offered as an optional service. |
| WebID | Business term | WebID — a unique web identifier for eo ISP customer accounts, migrated to a new encoding scheme (IT1-2013-0000285). |
| メイリングリスト名 | Japanese term | Mailing list name — a mailing list subscription associated with the customer's optional service package. |
| 固定IPアクセス | Japanese term | Fixed IP access — a static/fixed IP address assigned as an optional add-on to the ISP service contract. |
| 050電話番号 | Japanese term | 050 phone number — a VoIP virtual phone number using the Japanese 050 prefix, offered as an optional service. |
| マルチセccion用認証ID | Japanese term | Multiseccion authentication ID — an authentication credential for multiseccion (multi-section) service, added in IT1-2013-0000927. |
| IPv6アクセス | Japanese term | IPv6 access — IPv6 address assignment service (currently disabled/commented out since IT1-2013-0000285). |
| DEL_TRGT_SBT | Constant prefix | Deletion target subtype — the constant naming convention used across `JKKBatDelRunConst` for categorizing deletion target types. |
| opsvkei | Abbreviation | Optional service — short for "option service" (オプションサービス), referring to add-on services beyond the core ISP connection. |
| IT1-2013-0000285 | JIRA ticket | Engineering change ticket that migrated encoding scheme and removed IPv6 address deletion support (2013/02/18). |
| IT1-2013-0000927 | JIRA ticket | Feature addition ticket that added multiseccion authentication ID as a deletion target subtype (2013/04/16). |
| EKKB0130CE | Error code | Business error code logged when an unrecognized deletion target subtype is encountered (used by the caller `updateDelTrnJssiDtm`). |
| JBSbatBusinessError | Exception | Business error exception thrown when an invalid/unrecognized deletion target subtype is encountered. |
