# Business Logic — JBSbatKKKojiKnrnInfToroku.createKikiInfNet() [367 LOC]

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

## 1. Role

### JBSbatKKKojiKnrnInfToroku.createKikiInfNet()

This method performs **device information (Network) registration processing** (機器情報（ネット）登録処理). It reads a CSV intermediate file containing network device details — covering ONU, Voice Adapter (VA), router (router / ルーター), multi-function router (多機能ルーター), PLCs 1 through 8, removed router (撤去ルーター), and multi-function removed router — and inserts the structured device data into the temporary device table `T_KOJI_TG_KIKI_WK` via primary key insert. The method acts as a **data extraction and bulk-insert dispatch** step within the broader batch job `execute()`: it reads raw comma-delimited lines, maps each line into a 107-element parameter array that aligns with entity columns, resolves optional multi-function router fields with a fallback strategy (regular router first, then multi-function router, then half-width space), and delegates to `executeKK_T_KOJI_TG_KIKI_WK_PKINSERT` to persist each record. The file is identified by the constant `KIKI_INF_NET_FILE_ID = "KKIFM063003"` with suffix `.csv`. The work table `T_KOJI_TG_KIKI_WK` is a job-step staging area; downstream CBS/SC components consume this table for actual device registration into production tables.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["createKikiInfNet mid_dir_kk"])
    DEBUG1["printDebugLog START"]
    SYS_DATE["Get system datetime stamp"]
    FILE_PATH["Build file path from mid_dir_kk and constants"]
    READ_FILE["Read CSV file via getInputFile"]
    FOR_START["For each row in data_list"]
    ROW_GET["Get row data_work from list"]
    SPLIT["Split row by comma into data array"]
    PARAM_INIT["Create param_add ArrayList"]
    BASIC["Set basic fields: SVC_KEI_NO to RNKI_SEQ"]
    NEW_CHGE["Handle NEW_CHGE_CD or HAFU_SPACE"]
    KOJIAK_SBT_CD_H["Handle KOJIAK_SBT_CD or HAFU_SPACE"]
    KOJIAK_NO_H["Handle KOJIAK_NO or HAFU_SPACE"]
    SVC_SBT_SET["Set KOJIAK_SVC_SBT_CD = 01"]
    KOJI_COMP_H["Handle KOJI_COMP_CD or HAFU_SPACE"]
    ONU_FIELDS["Set ONU fields: model, MAC, SVC number"]
    VA_FIELDS["Set VA fields: model, serial, SVC number"]
    ROUTER_CHECK["data[12] not empty?"]
    ROUTER_DATA["Set Router fields from data"]
    MT_ROUTER_CHECK["data[52] not empty?"]
    MT_ROUTER_DATA["Set Multi-Function Router fields from data"]
    ROUTER_ELSE["Set Router fields to HAFU_SPACE"]
    PLC_FIELDS["Set PLC1 through PLC8 fields"]
    TK_ROUTER_CHECK["data[50] not empty?"]
    TK_ROUTER_DATA["Set Removed Router fields from data"]
    MT_TK_CHECK["data[56] not empty?"]
    MT_TK_DATA["Set Multi-Function Removed Router fields from data"]
    TK_ELSE["Set Removed Router fields to HAFU_SPACE"]
    STB_FIELDS["Set STB and V-ONU fields to empty"]
    AUDIT_FIELDS["Set audit fields: dates, batch user, etc."]
    INSERT["executeKK_T_KOJI_TG_KIKI_WK_PKINSERT"]
    FOR_END["End loop iteration"]
    DEBUG2["printDebugLog END"]
    END_NODE(["Return void"])

    START --> DEBUG1
    DEBUG1 --> SYS_DATE
    SYS_DATE --> FILE_PATH
    FILE_PATH --> READ_FILE
    READ_FILE --> FOR_START
    FOR_START --> ROW_GET
    ROW_GET --> SPLIT
    SPLIT --> PARAM_INIT
    PARAM_INIT --> BASIC
    BASIC --> NEW_CHGE
    NEW_CHGE --> KOJIAK_SBT_CD_H
    KOJIAK_SBT_CD_H --> KOJIAK_NO_H
    KOJIAK_NO_H --> SVC_SBT_SET
    SVC_SBT_SET --> KOJI_COMP_H
    KOJI_COMP_H --> ONU_FIELDS
    ONU_FIELDS --> VA_FIELDS
    VA_FIELDS --> ROUTER_CHECK
    ROUTER_CHECK -->|true| ROUTER_DATA
    ROUTER_CHECK -->|false| MT_ROUTER_CHECK
    MT_ROUTER_CHECK -->|true| MT_ROUTER_DATA
    MT_ROUTER_CHECK -->|false| ROUTER_ELSE
    ROUTER_DATA --> PLC_FIELDS
    MT_ROUTER_DATA --> PLC_FIELDS
    ROUTER_ELSE --> PLC_FIELDS
    PLC_FIELDS --> TK_ROUTER_CHECK
    TK_ROUTER_CHECK -->|true| TK_ROUTER_DATA
    TK_ROUTER_CHECK -->|false| MT_TK_CHECK
    MT_TK_CHECK -->|true| MT_TK_DATA
    MT_TK_CHECK -->|false| TK_ELSE
    TK_ROUTER_DATA --> STB_FIELDS
    MT_TK_DATA --> STB_FIELDS
    TK_ELSE --> STB_FIELDS
    STB_FIELDS --> AUDIT_FIELDS
    AUDIT_FIELDS --> INSERT
    INSERT --> FOR_END
    FOR_END -->|more rows| ROW_GET
    FOR_END -->|end| DEBUG2
    DEBUG2 --> END_NODE
```

**CRITICAL — Constant Resolution:**
- `KIKI_INF_NET_FILE_ID = "KKIFM063003"` — File ID (Device Info Network) used to locate the intermediate CSV.
- `FILE_KEISHIKI = ".csv"` — File extension suffix appended to the file ID.
- `HAFU_SPACE = " "` — Half-width space, used as default value for null/empty optional fields.
- `SPACE = ""` — Empty string, used for STB/V-ONU/B-CAS placeholder fields.
- `KOJIAK_SBT_CD_NET_HOME = "01"` — Work item service type code: Net Home.
- `KOJIAK_SBT_CD_NEWESTA = "001"` — Work item type code: New installation.
- `KOJIAK_SBT_CD_TK = "002"` — Work item type code: Removal (cancellation).
- `KOJIAK_SBT_CD_AD_CHG_NEWESTA = "003"` — Work item type code: Address change (new).

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `mid_dir_kk` | `String` | Intermediate file storage directory path — the base directory where CSV files for this batch run are placed. The method appends the file ID `"KKIFM063003"` and suffix `".csv"` to form the full path to the network device intermediate file. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `super.batchUserId` | `String` | Batch job user ID — written to `ADD_OPEACNT`, `UPD_OPEACNT`, `DEL_OPEACNT` audit columns |
| `super.opeDate` | `String` | Operation date (YYYYMMDD) — written to `ADD_UNYO_YMD`, `UPD_UNYO_YMD`, `DEL_UNYO_YMD` operational date columns |
| `super.logPrint` | `JACBatLogPrint` (inherited) | Debug logging utility — used to emit START/END debug markers |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JACBatCommon.printDebugLog` | JACBatCommon | - | Calls `printDebugLog` in `JACBatCommon` for START marker |
| - | `JACbatDebugLogUtil.printDebugLog` | JACbatDebugLog | - | Calls `printDebugLog` in `JACbatDebugLogUtil` |
| R | `JBSbatInterface.getSystemDateTimeStamp` | JBSbatInterface | - | Calls `getSystemDateTimeStamp` in `JBSbatInterface` to retrieve system date/time stamp |
| - | `JCKLcsRenkeiUtil.printDebugLog` | JCKLcsRenkei | - | Calls `printDebugLog` in `JCKLcsRenkeiUtil` |
| - | `JKKHttpCommunicator.printDebugLog` | JKKHttpCommunicator | - | Calls `printDebugLog` in `JKKHttpCommunicator` |
| - | `JBSbatDKHmpinAdd.split` | JBSbatDKHmpinAdd | - | Calls `split` in `JBSbatDKHmpinAdd` (parameter method dispatch) |
| - | `JBSbatDKNyukaFinAdd.split` | JBSbatDKNyukaFinAdd | - | Calls `split` in `JBSbatDKNyukaFinAdd` (parameter method dispatch) |
| - | `JBSbatDKTanaMoveShkaCmpAdd.split` | JBSbatDKTanaMoveShkaCmpAdd | - | Calls `split` in `JBSbatDKTanaMoveShkaCmpAdd` (parameter method dispatch) |
| - | `JBSbatDKTkkikiGetReqHmpin.split` | JBSbatDKTkkikiGetReqHmpin | - | Calls `split` in `JBSbatDKTkkikiGetReqHmpin` (parameter method dispatch) |
| - | `JBSbatDKTkkikiGetReqNyuka.split` | JBSbatDKTkkikiGetReqNyuka | - | Calls `split` in `JBSbatDKTkkikiGetReqNyuka` (parameter method dispatch) |
| - | `JBSbatKKCashPostAddMail.printDebugLog` | JBSbatKKCashPostAddMail | - | Calls `printDebugLog` in `JBSbatKKCashPostAddMail` |
| C | `JBSbatKKKojiKnrnInfToroku.executeKK_T_KOJI_TG_KIKI_WK_PKINSERT` | EKK (inferred) | `T_KOJI_TG_KIKI_WK` | Primary key insert into temporary device work table `T_KOJI_TG_KIKI_WK`. Maps 107 parameters to entity fields and calls `db_KK_T_KOJI_TG_KIKI_WK.insertByPrimaryKeys(setMap)`. |
| R | `JBSbatKKKojiKnrnInfToroku.getInputFile` | (self) | - | Reads the intermediate CSV file from disk, returning an `ArrayList<String>` of lines |
| - | `JFUKyokaIpAdActionChkUtil.toArray` | JFUKyokaIpAdActionChk | - | Calls `toArray` in `JFUKyokaIpAdActionChkUtil` (parameter method dispatch) |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 1 methods.
Terminal operations from this method: `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-], `executeKK_T_KOJI_TG_KIKI_WK_PKINSERT` [C], `toArray` [-], `split` [-], `split` [-], `split` [-], `split` [-], `split` [-], `getInputFile` [R], `getSystemDateTimeStamp` [R], `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-], `printDebugLog` [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: JBSbatKKKojiKnrnInfToroku.execute() | `JBSbatKKKojiKnrnInfToroku.execute()` -> `createKikiInfNet(mid_dir_kk)` | `executeKK_T_KOJI_TG_KIKI_WK_PKINSERT [C] T_KOJI_TG_KIKI_WK` |

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Initialize locals and retrieve system time (L2305)

| # | Type | Code |
|---|------|------|
| 1 | SET | `data_work = ""` // Holds single-line CSV data (1行目を取得) |
| 2 | SET | `file_path = ""` // File path (ファイルパス保持) |
| 3 | CALL | `sysrtem_date = JBSbatDateUtil.getSystemDateTimeStamp()` // Get system date/time (システム日時取得) |
| 4 | SET | `file_path = mid_dir_kk + KIKI_INF_NET_FILE_ID + FILE_KEISHIKI` // Build file path [-> KIKI_INF_NET_FILE_ID="KKIFM063003"] [-> FILE_KEISHIKI=".csv"] |

**Block 2** — [CALL] Read intermediate CSV file (L2318)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `data_list = getInputFile(file_path, KIKI_INF_NET_FILE_ID)` // Read CSV file (マージされた機器情報(ネット)ファイルを読み込みます) |

**Block 3** — [FOR LOOP] Iterate over each CSV row (L2321)
Condition: `i < data_list.size()`

| # | Type | Code |
|---|------|------|
| 1 | SET | `data_work = data_list.get(i)` // Get one line (1行目を取得) |
| 2 | SET | `data = data_work.split(",", -1)` // Split by comma, -1 keeps trailing empty |

**Block 3.1** — [SET] Create parameter ArrayList (L2326)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add = new ArrayList<String>(data.length)` // Registration data container (登録用データ格納) |

**Block 3.2** — [SET] Set basic fields from CSV data (L2329–L2334)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(data[0])` // Service contract number (サービス契約番号 = SVC_KEI_NO) |
| 2 | SET | `param_add.add(data[1])` // Service contract line details number (サービス契約回線内訳番号 = SVC_KEI_KAISEN_UCWK_NO) |
| 3 | SET | `param_add.add(data[2])` // Link year/month/day (連携年月日 = RNKI_YMD) |
| 4 | SET | `param_add.add(data[3])` // Link sequence number (連携通番 = RNKI_SEQ) |

**Block 3.3** — [IF/ELSE] Handle NEW_CHGE_CD (data[4]) (L2335–L2340) [-> NEW_CHGE_CD]

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[4] != null && !"".equals(data[4])` // New/change code present? |
| 2 | SET | `param_add.add(data[4])` // Use raw value (新規変更コード = NEW_CHGE_CD) |
| 3 | ELSE | `data[4]` is null or empty |
| 4 | SET | `param_add.add(HAFU_SPACE)` // Default to half-width space [-> HAFU_SPACE=" "] |

**Block 3.4** — [IF/ELSE] Handle KOJIAK_SBT_CD (data[5]) (L2341–L2346) [-> KOJIAK_SBT_CD]

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[5] != null && !"".equals(data[5])` // Work item type code present? |
| 2 | SET | `param_add.add(data[5])` // Use raw value (工事案件種別コード = KOJIAK_SBT_CD) |
| 3 | ELSE | `data[5]` is null or empty |
| 4 | SET | `param_add.add(HAFU_SPACE)` // Default to half-width space [-> HAFU_SPACE=" "] |

**Block 3.5** — [IF/ELSE] Handle KOJIAK_NO (data[6]) (L2347–L2352) [-> KOJIAK_NO]

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[6] != null && !"".equals(data[6])` // Work item number present? |
| 2 | SET | `param_add.add(data[6])` // Use raw value (工事案件番号 = KOJIAK_NO) |
| 3 | ELSE | `data[6]` is null or empty |
| 4 | SET | `param_add.add(HAFU_SPACE)` // Default to half-width space [-> HAFU_SPACE=" "] |

**Block 3.6** — [SET] Set fixed service type code (L2354)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(KOJIAK_SBT_CD_NET_HOME)` // Work item service type code [-> KOJIAK_SBT_CD_NET_HOME="01"] (工事案件サービス種別コード 01: Net Home) |

**Block 3.7** — [IF/ELSE] Handle KOJI_COMP_CD (data[7]) (L2355–L2360) [-> KOJI_COMP_CD]

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[7] != null && !"".equals(data[7])` // Construction company code present? |
| 2 | SET | `param_add.add(data[7])` // Use raw value (工事会社コード = KOJI_COMP_CD) |
| 3 | ELSE | `data[7]` is null or empty |
| 4 | SET | `param_add.add(HAFU_SPACE)` // Default to half-width space [-> HAFU_SPACE=" "] |

**Block 3.8** — [SET] Set ONU device fields (L2361–L2365)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(data[8])` // Home device model code ONU ( домаш 機器型式コード ONU = TAKNKIKI_MODEL_CD_ONU) |
| 2 | SET | `param_add.add(data[9])` // MAC address ONU (MACアドレス ONU = MACAD_ONU) |
| 3 | SET | `param_add.add(data[30])` // Device provided service contract number ONU (機器提供サービス契約番号 ONU = KKTK_SVC_KEI_NO_ONU) |

**Block 3.9** — [SET] Set VA (Voice Adapter) device fields (L2366–L2370)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(data[10])` // Home device model code VA ( домаш 機器型式コード VA = TAKNKIKI_MODEL_CD_VA) |
| 2 | SET | `param_add.add(data[11])` // Device serial number VA ( 機器製造番号 VA = KIKI_SEIZO_NO_VA) |
| 3 | SET | `param_add.add(data[31])` // Device provided service contract number VA (機器提供サービス契約番号 VA = KKTK_SVC_KEI_NO_VA) |

**Block 3.10** — [IF/ELSE-IF/ELSE] Set Router fields with fallback (L2374–L2397)

> Multiple function router support: select router or multi-function router whichever has a value.

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[12] != null && !"".equals(data[12])` // Regular router model code present? [-> TAKNKIKI_MODEL_CD_ROUTER] |
| 2 | SET | `param_add.add(data[12])` // Home device model code Router ( домаш 機器型式コード ルーター) |
| 3 | ELSE-IF | `data[52] != null && !"".equals(data[52])` // Multi-function router model code present? [-> TAKNKIKI_MODEL_CD_MT_ROUTER] |
| 4 | SET | `param_add.add(data[52])` // Home device model code (Multi-function router) ( домаш 機器型式コード 多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.11** — [IF/ELSE-IF/ELSE] Set Router serial number with fallback (L2400–L2423)

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[13] != null && !"".equals(data[13])` // Router serial number present? [-> KIKI_SEIZO_NO_ROUTER] |
| 2 | SET | `param_add.add(data[13])` // Device serial number Router (機器製造番号 ルーター) |
| 3 | ELSE-IF | `data[53] != null && !"".equals(data[53])` // Multi-function router serial number present? [-> KIKI_SEIZO_NO_MT_ROUTER] |
| 4 | SET | `param_add.add(data[53])` // Device serial number (Multi-function router) (機器製造番号 多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.12** — [IF/ELSE-IF/ELSE] Set Router service contract number with fallback (L2426–L2449)

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[32] != null && !"".equals(data[32])` // Router SVC number present? [-> KKTK_SVC_KEI_NO_ROUTER] |
| 2 | SET | `param_add.add(data[32])` // Device provided service contract number Router (機器提供サービス契約番号 ルーター) |
| 3 | ELSE-IF | `data[54] != null && !"".equals(data[54])` // Multi-function router SVC number present? [-> KKTK_SVC_KEI_NO_MT_ROUTER] |
| 4 | SET | `param_add.add(data[54])` // Device provided service contract number (Multi-function router) (機器提供サービス契約番号 多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.13** — [IF/ELSE-IF/ELSE] Set Router I/O code with fallback (L2452–L2475)

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[41] != null && !"".equals(data[41])` // Router I/O code present? [-> TAKNKIKI_IDO_CD_ROUTER] |
| 2 | SET | `param_add.add(data[41])` // Home device I/O code Router ( домаш 機器異動コード ルーター) |
| 3 | ELSE-IF | `data[55] != null && !"".equals(data[55])` // Multi-function router I/O code present? [-> TAKNKIKI_IDO_CD_MT_ROUTER] |
| 4 | SET | `param_add.add(data[55])` // Home device I/O code (Multi-function router) ( домаш 機器異動コード 多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.14** — [SET] Set PLC1 through PLC8 fields (L2479–L2552)

> Each PLC has 4 fields: model code, serial number, service contract number, I/O code.
> Indices: PLC1=[14,15,33,42], PLC2=[16,17,34,43], PLC3=[18,19,35,44], PLC4=[20,21,36,45], PLC5=[22,23,37,46], PLC6=[24,25,38,47], PLC7=[26,27,39,48], PLC8=[28,29,40,49]

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(data[14..29])` // Model codes PLC1–PLC8 ( домаш 機器型式コード PLC1–PLC8 = TAKNKIKI_MODEL_CD_PLC_1–8) |
| 2 | SET | `param_add.add(data[15..30])` // Serial numbers PLC1–PLC8 (機器製造番号 PLC1–PLC8 = KIKI_SEIZO_NO_PLC_1–8) |
| 3 | SET | `param_add.add(data[33..40])` // Service contract numbers PLC1–PLC8 (機器提供サービス契約番号 PLC1–PLC8 = KKTK_SVC_KEI_NO_PLC_1–8) |
| 4 | SET | `param_add.add(data[42..49])` // I/O codes PLC1–PLC8 ( домаш 機器異動コード PLC1–PLC8 = TAKNKIKI_IDO_CD_PLC_1–8) |

**Block 3.15** — [IF/ELSE-IF/ELSE] Set Removed Router model code with fallback (L2558–L2571)

> Multiple function router support: select removed router or multi-function removed router whichever has a value.

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[50] != null && !"".equals(data[50])` // Removed router model code present? [-> TKKIKI_MDL_CD_TK_ROUTER] |
| 2 | SET | `param_add.add(data[50])` // Home device model code (Removed router) ( домаш 機器型式コード 撤去ルーター) |
| 3 | ELSE-IF | `data[56] != null && !"".equals(data[56])` // Multi-function removed router model code present? [-> TKKIKI_MDL_CD_MT_TK_ROUTER] |
| 4 | SET | `param_add.add(data[56])` // Home device model code (Multi-function removed router) ( домаш 機器型式コード 撤去多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.16** — [IF/ELSE-IF/ELSE] Set Removed Router serial number with fallback (L2574–L2593)

| # | Type | Code |
|---|------|------|
| 1 | IF | `data[51] != null && !"".equals(data[51])` // Removed router serial number present? [-> KIKI_SEIZO_NO_TK_ROUTER] |
| 2 | SET | `param_add.add(data[51])` // Device serial number (Removed router) (機器製造番号 撤去ルーター) |
| 3 | ELSE-IF | `data[57] != null && !"".equals(data[57])` // Multi-function removed router serial number present? [-> KIKI_SEIZO_NO_MT_TK_ROUTER] |
| 4 | SET | `param_add.add(data[57])` // Device serial number (Multi-function removed router) (機器製造番号 撤去多機能ルーター) |
| 5 | ELSE | |
| 6 | SET | `param_add.add(HAFU_SPACE)` // Default [-> HAFU_SPACE=" "] |

**Block 3.17** — [SET] Set V-ONU, STB, B-CAS, C-CAS placeholder fields (L2596–L2658)

> All STB (Set-Top Box) related fields are hardcoded to empty or half-width space since this is a **Network** device registration flow (not TV). V-ONU and all STB variants receive empty placeholders.

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(HAFU_SPACE)` // Model code V-ONU ( домаш 機器型式コード V-ONU) |
| 2 | SET | `param_add.add(HAFU_SPACE)` // Serial number V-ONU (機器製造番号 V-ONU) |
| 3 | SET | `param_add.add("")` // Service contract number V-ONU (機器提供サービス契約番号 V-ONU) |
| 4 | SET | `param_add.add("")` // I/O code V-ONU ( домаш 機器異動コード V-ONU) |
| 5–36 | SET | `param_add.add("")` for each STB ID (1–5), STB SVC numbers (1–5), STB I/O codes (1–5), B-CAS card numbers (1–5), B-CAS SVC numbers (1–5), C-CAS card numbers (1–5), C-CAS SVC numbers (1–5) |
| 37 | SET | `param_add.add(HAFU_SPACE)` // STB non-menu flag (STBなしメニューフラグ) |
| 38 | SET | `param_add.add("")` // Contract change memo (契約変更メモ = KEI_CHGE_MEMO) |

**Block 3.18** — [SET] Set audit fields (L2659–L2670)

| # | Type | Code |
|---|------|------|
| 1 | SET | `param_add.add(sysrtem_date)` // System date/time (システム日時 = ADD_DTM) |
| 2 | SET | `param_add.add(super.batchUserId)` // Batch user ID (バッチID = ADD_OPEACNT) |
| 3 | SET | `param_add.add(sysrtem_date)` // System date/time (システム日時 = UPD_DTM) |
| 4 | SET | `param_add.add(super.batchUserId)` // Batch user ID (バッチID = UPD_OPEACNT) |
| 5 | SET | `param_add.add(SPACE)` // System date/time (システム日時 = DEL_DTM) [-> SPACE=""] |
| 6 | SET | `param_add.add(SPACE)` // Batch user ID (バッチID = DEL_OPEACNT) [-> SPACE=""] |
| 7 | SET | `param_add.add("0")` // Mark flag (MK_FLG) |
| 8 | SET | `param_add.add(super.opeDate)` // Registration operational date (登録運用年月日 = ADD_UNYO_YMD) |
| 9 | SET | `param_add.add(SPACE)` // Registration process DB (登録処理DB = ADD_TRN_ID) [-> SPACE=""] |
| 10 | SET | `param_add.add(super.opeDate)` // Update operational date (更新運用年月日 = UPD_UNYO_YMD) |
| 11 | SET | `param_add.add(SPACE)` // Update process DB (更新処理DB = UPD_TRN_ID) [-> SPACE=""] |
| 12 | SET | `param_add.add(SPACE)` // Delete operational date (削除運用年月日 = DEL_UNYO_YMD) [-> SPACE=""] |
| 13 | SET | `param_add.add(SPACE)` // Delete process DB (削除処理DB = DEL_TRN_ID) [-> SPACE=""] |

**Block 4** — [CALL] Insert record into work table (L2666)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_KOJI_TG_KIKI_WK_PKINSERT(param_add.toArray())` // Execute primary key insert into T_KOJI_TG_KIKI_WK |

**Block 5** — [CALL] End marker logging (L2669)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `super.logPrint.printDebugLog("createKikiInfNet_END")` // End debug log (createKikiInfNet_END) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mid_dir_kk` | Field | Intermediate file storage directory — base path where batch intermediate CSV files are placed |
| `KIKI_INF_NET_FILE_ID` | Constant | File ID "KKIFM063003" — identifies the Network device information intermediate file |
| `FILE_KEISHIKI` | Constant | ".csv" — file extension suffix for intermediate files |
| `HAFU_SPACE` | Constant | " " — half-width space, used as default value for missing optional fields |
| `SPACE` | Constant | "" — empty string, used for placeholder fields |
| `KOJIAK_SBT_CD_NET_HOME` | Constant | "01" — work item service type code for Net Home |
| `KOJIAK_SBT_CD_TV` | Constant | "03" — work item service type code for TV |
| `KOJIAK_SBT_CD_NEWESTA` | Constant | "001" — work item type code for new installation |
| `KOJIAK_SBT_CD_TK` | Constant | "002" — work item type code for removal (cancellation) |
| `KOJIAK_SBT_CD_AD_CHG_NEWESTA` | Constant | "003" — work item type code for address change (new) |
| SVC_KEI_NO | Field | Service contract number — primary identifier for a customer service contract |
| SVC_KEI_KAISEN_UCWK_NO | Field | Service contract line details number — internal tracking ID for service contract line items |
| RNKI_YMD | Field | Link year/month/day — date of data synchronization between systems |
| RNKI_SEQ | Field | Link sequence number — sequencing identifier for linked records |
| NEW_CHGE_CD | Field | New/change code — classifies whether this is a new installation, change, or removal |
| KOJIAK_SBT_CD | Field | Work item type code — classifies the type of work order (new, removal, address change) |
| KOJIAK_NO | Field | Work item number — unique identifier for a work order |
| KOJIAK_SVC_SBT_CD | Field | Work item service subtype code — distinguishes service categories (e.g., Net Home, TV) |
| KOJI_COMP_CD | Field | Construction company code — identifier for the contractor |
| TAKNKIKI_MODEL_CD_ONU | Field | Home device model code ONU — model identifier for the Optical Network Unit |
| MACAD_ONU | Field | MAC address ONU — MAC address of the ONU device |
| KKTK_SVC_KEI_NO_ONU | Field | Device provided service contract number ONU — service contract number associated with the ONU |
| TAKNKIKI_MODEL_CD_VA | Field | Home device model code VA — model identifier for the Voice Adapter |
| KIKI_SEIZO_NO_VA | Field | Device serial number VA — serial number of the Voice Adapter |
| KKTK_SVC_KEI_NO_VA | Field | Device provided service contract number VA — service contract number associated with the VA |
| TAKNKIKI_MODEL_CD_ROUTER | Field | Home device model code Router — model identifier for the home router |
| KIKI_SEIZO_NO_ROUTER | Field | Device serial number Router — serial number of the home router |
| KKTK_SVC_KEI_NO_ROUTER | Field | Device provided service contract number Router — service contract number associated with the router |
| TAKNKIKI_IDO_CD_ROUTER | Field | Home device I/O code Router — movement code (installation/removal) for the router |
| TAKNKIKI_MODEL_CD_PLC_X | Field | Home device model code PLC X — model identifier for PLC X (X = 1..8), Power Line Communication devices |
| KIKI_SEIZO_NO_PLC_X | Field | Device serial number PLC X — serial number of PLC X |
| KKTK_SVC_KEI_NO_PLC_X | Field | Device provided service contract number PLC X — service contract number for PLC X |
| TAKNKIKI_IDO_CD_PLC_X | Field | Home device I/O code PLC X — movement code for PLC X |
| TKKIKI_MDL_CD_TK_ROUTER | Field | Home device model code (Removed Router) — model identifier for a removed router |
| KIKI_SEIZO_NO_TK_ROUTER | Field | Device serial number (Removed Router) — serial number of the removed router |
| TAKNKIKI_MODEL_CD_VONU | Field | Home device model code V-ONU — model identifier for virtual ONU |
| STB_ID_X | Field | Set-Top Box ID X — identifier for STB X (X = 1..5) |
| KKTK_SVC_KEI_NO_STB_X | Field | Device provided service contract number STB X — service contract number for STB X |
| TAKNKIKI_IDO_CD_STB_X | Field | Home device I/O code STB X — movement code for STB X |
| BCAS_CARD_NO_X | Field | B-CAS card number X — broadcast CAS card number for X |
| KKTK_SVC_KEI_NO_BCAS_X | Field | Device provided service contract number B-CAS X — service contract number for B-CAS X |
| CCAS_CARD_NO_X | Field | C-CAS card number X — conditional access card number for X |
| KKTK_SVC_KEI_NO_CCAS_X | Field | Device provided service contract number C-CAS X — service contract number for C-CAS X |
| STB_NON_MENU_FLG | Field | STB non-menu flag — indicates whether STB menu is not provided |
| KEI_CHGE_MEMO | Field | Contract change memo — free-text field for contract change notes |
| ADD_DTM / UPD_DTM / DEL_DTM | Field | Add/Update/Delete date-time stamp — audit timestamps |
| ADD_OPEACNT / UPD_OPEACNT / DEL_OPEACNT | Field | Add/Update/Delete operator account — batch user ID performing the operation |
| ADD_UNYO_YMD / UPD_UNYO_YMD / DEL_UNYO_YMD | Field | Add/Update/Delete operational date — YYYYMMDD date of operation |
| ADD_TRN_ID / UPD_TRN_ID / DEL_TRN_ID | Field | Add/Update/Delete transaction ID — transfer/process transaction identifier |
| MK_FLG | Field | Mark flag — record status flag (0 = active) |
| T_KOJI_TG_KIKI_WK | Table | Work item temporary device work table — staging table for device information before final registration |
| ONU | Business term | Optical Network Unit — fiber-optic terminal device at the customer premises |
| VA | Business term | Voice Adapter — device providing VoIP/telephony service over the network |
| STB | Business term | Set-Top Box — device for receiving and decoding broadcast/Digital TV signals |
| B-CAS | Business term | Broadcast Content Assurance System — Japanese digital broadcast content protection card system |
| C-CAS | Business term | Conditional Content Assurance System — cable/satellite broadcast CAS card |
| PLC | Business term | Power Line Communication — home networking technology using electrical wiring |
| V-ONU | Business term | Virtual Optical Network Unit — simulated/emulated ONU for non-fiber deployments |
| Router | Business term | Home router device providing NAT, DHCP, and wireless access |
| Multi-function Router | Business term | A combined device integrating router, ONU, and VA functionality |
| Removed Router | Business term | A router that has been removed/cancelled from the service |
| TELYO_VLAN_ODR_ADD | Business term | Telephone VLAN order addition — registration of VLAN configuration for telephone service |
| FMTCEL_IDO_INF_ADD | Business term | Fixed cell movement information addition — registration of mobile/fixed cell change data |
| KOJI_RSV_INF_TV | Business term | Work reservation info TV — work reservation information for TV devices |
| KOJI_CL_INF | Business term | Work cancellation info — information about cancelled work orders |
| TAKNI_KOJI_INF | Business term | Home work info — information about home installation work |
| KOJIHI_INF | Business term | Work cost info — information about work-related costs |
| TAKNI_CSKK_INF | Business term | Home inspection result info — information from home inspection results |
| SKKK_INF | Business term | Design result info — information from design/planning results |
| T_KOJI_TG_KIKI_WK | Table | Work item temporary device work table — staging/intermediate table holding device records before final production insertion |
| KIKI_INF_NET | Business term | Device information (Network) — network equipment registration data (ONU, router, PLC, etc.) |
| KIKI_INF_TV | Business term | Device information (TV) — TV equipment registration data |
