# (DD45) Business Logic — JDKCommon08CC.checkTkniKikiSbtCd() [34 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JDKCommon08CC` |
| Layer | CC / Common Component (Shared utility class within the business processing layer) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JDKCommon08CC.checkTkniKikiSbtCd()

This method serves as a **return SOD eligibility gatekeeper** for indoor equipment. In the telecom order fulfillment domain, when a customer returns or exchanges a piece of customer-premises equipment (宅内機器 — indoor/indoor-mounted equipment), the system must determine whether a **Return Service Order Data (返品SOD)** document needs to be generated. The method checks whether the incoming "Indoor Equipment Type Code" (宅内機器種別コード — `tkniKikiSbtCd`) identifies a device category that requires return SOD issuance.

The method implements a **simple whitelist/allowlist pattern**: it defines a fixed set of equipment type codes that are eligible for return SOD processing. If the code matches any of the five eligible types, it returns `true`; otherwise, it returns `false` and the caller skips return SOD processing for that device.

The five eligible equipment categories are: **VA (光電話VA — Fiber Phone Voice Adapter, code "50")**, **BBR (BBR router, code "F0")**, **US (光電話US — Fiber Phone Unit Set, code "J0")**, **Takinort (多機能ルーター — Multi-function Router, code "R0")**, and **HGW (HGW — Home Gateway, code "S0")**. These represent consumer-facing network devices that Fujitsu's telecommunications business needs to track through the return/recovery workflow for inventory, warranty, or recycling purposes.

This is a **shared utility method** called by multiple screen-processing CCs (JDKCommon08CC in screen DKSV0081 and JDKCommon48CC in screen DKSV0050) as part of the return SOD issuance flow. It operates within a device iteration loop — for each device in the customer's service contract lineup, this check determines whether that specific device triggers a return SOD path.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["checkTkniKikiSbtCd(tkniKikiSbtCd)"])
    COND1{"tkniKikiSbtCd == \"50\"
(光電話VA)"}
    RET_TRUE_1(["return true"])
    COND2{"tkniKikiSbtCd == \"F0\"
(BBR)"}
    RET_TRUE_2(["return true"])
    COND3{"tkniKikiSbtCd == \"J0\"
(光電話US)"}
    RET_TRUE_3(["return true"])
    COND4{"tkniKikiSbtCd == \"R0\"
(多機能ルーター)"}
    RET_TRUE_4(["return true"])
    COND5{"tkniKikiSbtCd == \"S0\"
(HGW)"}
    RET_TRUE_5(["return true"])
    RET_FALSE(["return false"])

    START --> COND1
    COND1 -->|true| RET_TRUE_1
    COND1 -->|false| COND2
    COND2 -->|true| RET_TRUE_2
    COND2 -->|false| COND3
    COND3 -->|true| RET_TRUE_3
    COND3 -->|false| COND4
    COND4 -->|true| RET_TRUE_4
    COND4 -->|false| COND5
    COND5 -->|true| RET_TRUE_5
    COND5 -->|false| RET_FALSE
```

The method executes a linear series of equality checks against five permitted equipment type codes. Each check is an independent branch that short-circuits to `true` on match. If none of the five codes match, the final `else` branch returns `false`, indicating the device is not subject to return SOD issuance.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `tkniKikiSbtCd` | `String` | Indoor Equipment Type Code (宅内機器種別コード) — identifies the category of customer-premises network equipment being evaluated for return SOD eligibility. Possible values that pass: `"50"` (光電話VA), `"F0"` (BBR), `"J0"` (光電話US), `"R0"` (多機能ルーター, [-> TAKNKIKI_SBT_CD_TAKINORT="R0" (JKKStrConst.java:2980)]), `"S0"` (HGW, [-> TAKNKIKI_SBT_CD_HGW="S0" (JKKStrConst.java:2616)]). Any other value (or `null`) causes the method to return `false`. |

No instance fields or external state is read by this method. It is a pure function that evaluates only its input parameter.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations, no SC/CBS calls, and no database access**. It is a self-contained conditional evaluation that reads only its input parameter and returns a boolean result.

| Note | Description |
|------|-------------|
| No external dependencies | `checkTkniKikiSbtCd` contains no method calls, no map access, no SC/CBS invocations, and no database interactions. It is a pure boolean predicate. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:DKSV0081 | `DKSV0081OPOperation` -> `JDKCommon08CC` (screen CC) -> iteration loop over equipment list -> `checkTkniKikiSbtCd` | No terminal SC/CRUD — acts as a gate within the loop; on `false`, processing `continue`s to next device. On `true`, proceeds to `EKK0341B034BSMapper` (machine-provided service contract lineup lookup for return SOD). |
| 2 | Screen:DKSV0050 | `DKSV0050OPOperation` -> `JDKCommon48CC` (screen CC) -> `checkTkniKikiSbtCd` | No terminal SC/CRUD — acts as a gate within the return SOD issuance flow; on `false`, returns early skipping return SOD processing. On `true`, proceeds to `EKK0341B034BSMapper` for contract lineup lookup. |

**Call chain details:**

- **DKSV0081 → JDKCommon08CC**: The method is invoked inside a `while` loop that iterates over a list of equipment items obtained from a device type conformity agreement CBS (`EZM0411A010CBS`). For each device, the indoor equipment type code is extracted. If `checkTkniKikiSbtCd` returns `false`, the loop `continue`s to the next device. If `true`, it proceeds to query the machine-provided service contract lineup (`EKK0341B034BSMapper`) for return SOD issuance.

- **DKSV0050 → JDKCommon48CC**: The method is invoked earlier in the return SOD issuance flow after the device type conformity agreement CBS (`EZM0411A010CBS`) returns equipment records. If `checkTkniKikiSbtCd` returns `false`, the method returns early (skipping return SOD processing for this device). If `true`, it proceeds to `EKK0341B034BSMapper` for contract lineup lookup.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `( "50".equals(tkniKikiSbtCd) )` (L2482)

> Check if the equipment type code is "50" (光電話VA — Fiber Phone Voice Adapter). This is the first eligible return SOD device type.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // 光電話VA is eligible for return SOD |

**Block 2** — [ELSE-IF] `( "F0".equals(tkniKikiSbtCd) )` (L2487)

> Check if the equipment type code is "F0" (BBR — broadband router). This is the second eligible return SOD device type.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // BBR is eligible for return SOD |

**Block 3** — [ELSE-IF] `( "J0".equals(tkniKikiSbtCd) )` (L2492)

> Check if the equipment type code is "J0" (光電話US — Fiber Phone Unit Set). This is the third eligible return SOD device type.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` // 光電話US is eligible for return SOD |

**Block 4** — [ELSE-IF] `( JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd) )` (L2497)

> Check if the equipment type code matches the multi-function router constant. Resolves to: `TAKNKIKI_SBT_CD_TAKINORT = "R0"` (多機能ルーター — Multi-function Router).

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `"R0"` [-> TAKNKIKI_SBT_CD_TAKINORT="R0" (JKKStrConst.java:2980)] |
| 2 | RETURN | `return true;` // Multi-function router is eligible for return SOD |

**Block 5** — [ELSE-IF] `( JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd) )` (L2503)

> Check if the equipment type code matches the Home Gateway constant. This was added via ANK-4315-00-00. Resolves to: `TAKNKIKI_SBT_CD_HGW = "S0"` (HGW — Home Gateway).

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `"S0"` [-> TAKNKIKI_SBT_CD_HGW="S0" (JKKStrConst.java:2616)] |
| 2 | RETURN | `return true;` // HGW is eligible for return SOD |

**Block 6** — [ELSE] (L2508)

> Default case: the equipment type code does not match any eligible return SOD device type. Return `false` to skip return SOD processing for this device.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return false;` // Not eligible for return SOD |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `tkniKikiSbtCd` | Field | Indoor Equipment Type Code (宅内機器種別コード) — alphanumeric code identifying the category of customer-premises network equipment |
| SOD | Acronym | Service Order Data (SOD発行) — a work order/document generated in the telecom system for service provisioning, modification, or return processing |
| 返品SOD | Business term | Return SOD (返品SOD発行対象) — a Service Order Data document specifically for equipment return/recovery processing |
| 宅内機器 | Business term | Indoor Equipment / Customer Premises Equipment (宅内機器) — network devices installed at the customer's premises, such as routers, modems, gateways, and set-top boxes |
| 50 | Constant | 光電話VA (Kodeno Denwa VA — Fiber Phone Voice Adapter) — a voice adapter device for fiber-optic telephone service |
| F0 | Constant | BBR — a broadband router device |
| J0 | Constant | 光電話US (Kodeno Denwa US — Fiber Phone Unit Set) — a complete fiber telephone unit set |
| R0 | Constant | 多機能ルーター (Takunoru — Multi-function Router) — a multi-feature router device for home networking |
| S0 | Constant | HGW (Home Gateway) — a home gateway device combining modem and router functions |
| TAKNKIKI_SBT_CD_TAKINORT | Constant | Equipment type code constant for Multi-function Router ("R0") |
| TAKNKIKI_SBT_CD_HGW | Constant | Equipment type code constant for Home Gateway ("S0") |
| DKSV0081 | Screen | Screen operation class for equipment return SOD processing (iteration-based device loop) |
| DKSV0050 | Screen | Screen operation class for equipment service contract lineup processing |
| EZM0411A010CBS | CBS | Device Type Conformity Agreement CBS — retrieves device model/type information from the database |
| EKK0341B034BSMapper | CBS Mapper | Machine-provided Service Contract Lineup CBS Mapper — looks up service contract details for return SOD processing |
