# Business Logic — JBSBatKKKkOpDlRvAdd.execute() [583 LOC]

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

## 1. Role

### JBSBatKKKkOpDlRvAdd.execute()

This method is the **main batch processing entry point for terminating (canceling) machine-provided service contracts** — specifically handling the dissolution of device-linked service agreements including **optical network equipment OP (Operator) service contracts**, **telephone equipment OP service contracts**, **actual termination (contract cancellation)** for DSL/HonTai scenarios, and **IPv6 OP service contract cancellations**. It also handles **SOD (Service Order Data) issuance** for multi-function router and telephone adapter feature cancellations.

The method follows a **routing/dispatch design pattern**, reading input from `JBSbatServiceInterfaceMap`, extracting CSV-parsed data fields, and branching based on service type flags (network OP, telephone OP, actual termination, IPv6 OP). It coordinates multiple sub-processes: **internal schema updates** (inserting into contract tables), **change-order (SOD) issuance** (creating order records for downstream systems), **workflow progress tracking** (recording advancement status via `insertPrg`), and **external CC (Common Component) invocations** via an ESB interface.

When no cancellations are required (`isExec` remains false), it commits immediately and returns null. Otherwise, it executes all cancellation flows, optionally triggers secondary CC processing (address change details, work order modifications, delivery suspension, inventory updates, return device receipt), releases record locks, checks the CC invocation result, and either commits or rolls back the transaction accordingly. Its role in the larger system is that of the **central orchestration point for all equipment OP service contract termination batch jobs**.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute(inMap)"])
    CC_CHECK["CC Call判定値: isCallCc = false"]
    SYS_DATE["システム日付取得: sysDate = getSysDateTimeStamp()"]
    EXEXEC_CHECK["後続処理判定: isExec = false"]
    EXCLUDE["排他チェック: checkHaita x3 (ネットワーク/電話/TX)"]

    NET_IF["IF: ネットOP解約 IDO_RSV_NO_1非空"]
    NET_RSVAPLY["変動予約適用年月日取得"]
    NET_SVC_OFFER["IF: isSvcOffered(KKOP_SVC_KEI_STAT_1)"]
    NET_EXEC["後続処理実施判定: isExec = true"]
    NET_INSERT["insertKkopSvcKei"]
    NET_RSVC_UPDATE["updateIdoRsv 反映: 01"]
    NET_PRG1["進捗作成: 機器OP解約"]
    NET_IDO_DTM["getIdoDtmMax取得"]
    NET_PRG2["insertPrg: H001"]
    NET_RSVC_CANCEL["updateIdoRsv 取消: 02"]

    TEL_IF["IF: 電話OP解約 IDO_RSV_NO_2非空"]
    TEL_RSVAPLY["変動予約適用年月日取得"]
    TEL_SVC_OFFER["IF: isSvcOffered(KKOP_SVC_KEI_STAT_2)"]
    TEL_EXEC["後続処理実施判定: isExec = true"]
    TEL_INSERT["insertKkopSvcKei"]
    TEL_RSVC_UPDATE["updateIdoRsv 反映: 01"]
    TEL_PRG1["進捗作成: 機器OP解約"]
    TEL_IDO_DTM["getIdoDtmMax取得"]
    TEL_PRG2["insertPrg: H001"]
    TEL_RSVC_CANCEL["updateIdoRsv 取消: 02"]

    NO_EXEC["IF: !isExec"]
    NO_EXEC_COMMIT["commit / return null"]

    DSL_FLG["IF: HONTAI_DSL_FLG equals 1"]
    DSL_DATA["データ取得: getKkopCsvData"]
    DSL_INSERT["insertKktkSvcKei"]
    DSL_PRG1["進捗作成: 型番名"]
    DSL_IDO_DTM["getIdoDtmMax取得"]
    DSL_PRG2["insertPrg: 3200"]

    AD_CHG["IF: AD_CHG_TAIKIKI_DEL_FLG equals 1"]
    AD_CHG_CALL["isCallCc = true"]
    AD_CHG_DATA["住所変更明細更新CC exe_flg_1"]
    AD_CHG_KOJIAK["工事諸変更CC exe_flg_2"]

    HAISO["IF: HAISO_STAT equals 001"]
    HAISO_CALL["isCallCc = true"]
    HAISO_DATA["配送中止外部IF exe_flg_3"]

    ZAIKO["IF: ZAIKO_CNT_UPD_FLG equals 1"]
    ZAIKO_CALL["isCallCc = true"]
    ZAIKO_DATA["在庫数変更処理SC exe_flg_4"]

    ZAIKO_SUB1["IF: KIKI_STI_JI_KRIPLACE_SKCD equals 2"]
    ZAIKO_SUB2["IF: KIKI_STI_JI_KRIPLACE_SKCD equals 3"]
    ZAIKO_ELSE["住所変更処理以外"]

    HMPIN["IF: HMPIN_KIKI_UK_FLG equals 1 AND !existsDK_T_HMPIN_KIKI"]
    HMPIN_INSERT["insertHmpinKiki"]

    IPV6["IF: isIpv6Dl"]
    IPV6_INSERT["insertOpSvcKei"]
    IPV6_PRG1["getIdoDtmMax取得"]
    IPV6_PRG2["insertPrg: OP_SETTE_FIN"]

    SOD_CHECK["IF: HONTAI_DSL_FLG != 1"]
    SOD_TAKINORT["getSODHakkotakinortKinoCd"]
    SOD_ROUTER["IF: IDO_RSV_NO_1非空 AND isSvcOffered(STAT_1)"]
    SOD_CD_A["IF: TAKINORT equals A or C"]
    SOD_ORDER1["KK_T_ODR_HAKKO_JOKEN_PKINSERT"]
    SOD_ORDER2["KK_T_ODR_INF_SKSI_WK_PKINSERT"]
    SOD_IPV6["IF: isIpv6Dl"]
    SOD_ORDER3["IPv6 OP解約消去オーダー発行"]
    SOD_PHONE["IF: IDO_RSV_NO_2非空 AND isSvcOffered(STAT_2)"]
    SOD_CD_B["IF: TAKINORT equals B or C"]
    SOD_ORDER4["電話アダプター機能解約用オーダー発行"]

    SVKEI_UNLOCK["setSvkeiExcCtrl ロック解放"]
    CC_INVOKE["IF: isCallCc - invokeService CC処理"]
    CC_CHECK_RESULT["CC結果判定: RETURN_CODE"]
    CC_ERROR["BusinessErrorLog CCエラー"]

    FINAL_CHECK["IF: isResultCc"]
    FINAL_COMMIT["commit"]
    FINAL_ROLLBACK["rollback"]
    END_NODE(["return null"])

    START --> CC_CHECK --> SYS_DATE --> EXEC_CHECK --> EXCLUDE
    EXCLUDE --> NET_IF
    NET_IF --> NET_RSVAPLY
    NET_RSVAPLY --> NET_SVC_OFFER
    NET_SVC_OFFER -->|true| NET_EXEC
    NET_EXEC --> NET_INSERT --> NET_RSVC_UPDATE --> NET_PRG1 --> NET_IDO_DTM --> NET_PRG2
    NET_SVC_OFFER -->|false| NET_RSVC_CANCEL
    NET_IF -->|false| TEL_IF
    TEL_IF --> TEL_RSVAPLY
    TEL_RSVAPLY --> TEL_SVC_OFFER
    TEL_SVC_OFFER -->|true| TEL_EXEC
    TEL_EXEC --> TEL_INSERT --> TEL_RSVC_UPDATE --> TEL_PRG1 --> TEL_IDO_DTM --> TEL_PRG2
    TEL_SVC_OFFER -->|false| TEL_RSVC_CANCEL
    TEL_IF -->|false| NO_EXEC
    NO_EXEC -->|true| NO_EXEC_COMMIT --> END_NODE
    NO_EXEC -->|false| DSL_FLG
    DSL_FLG -->|true| DSL_DATA
    DSL_DATA --> DSL_INSERT --> DSL_PRG1 --> DSL_IDO_DTM --> DSL_PRG2
    DSL_PRG2 --> AD_CHG
    AD_CHG -->|true| AD_CHG_CALL
    AD_CHG_CALL --> AD_CHG_DATA --> AD_CHG_KOJIAK --> HAISO
    AD_CHG -->|false| HAISO
    HAISO -->|true| HAISO_CALL --> HAISO_DATA --> ZAIKO
    HAISO -->|false| ZAIKO
    ZAIKO -->|true| ZAIKO_DATA
    ZAIKO_DATA --> ZAIKO_SUB1
    ZAIKO_SUB1 -->|true| ZAIKO_SUB2
    ZAIKO_SUB1 -->|false| ZAIKO_SUB2
    ZAIKO_SUB2 -->|true| ZAIKO_ELSE
    ZAIKO_SUB2 -->|false| ZAIKO_ELSE
    ZAIKO_ELSE --> HMPIN
    ZAIKO -->|false| HMPIN
    HMPIN -->|true| HMPIN_INSERT --> IPV6
    HMPIN -->|false| IPV6
    IPV6 -->|true| IPV6_INSERT
    IPV6_INSERT --> IPV6_PRG1 --> IPV6_PRG2 --> SOD_CHECK
    IPV6 -->|false| SOD_CHECK
    SOD_CHECK -->|true| SOD_TAKINORT
    SOD_TAKINORT --> SOD_ROUTER
    SOD_ROUTER -->|true| SOD_CD_A
    SOD_CD_A -->|true| SOD_ORDER1 --> SOD_ORDER2 --> SOD_IPV6
    SOD_IPV6 -->|true| SOD_ORDER3 --> SOD_PHONE
    SOD_IPV6 -->|false| SOD_PHONE
    SOD_ROUTER -->|false| SOD_PHONE
    SOD_PHONE -->|true| SOD_CD_B
    SOD_CD_B -->|true| SOD_ORDER4 --> SVKEI_UNLOCK
    SOD_CD_B -->|false| SVKEI_UNLOCK
    SOD_PHONE -->|false| SVKEI_UNLOCK
    SOD_CHECK -->|false| SVKEI_UNLOCK
    SVKEI_UNLOCK --> CC_INVOKE
    CC_INVOKE -->|true| CC_CHECK_RESULT
    CC_CHECK_RESULT --> CC_ERROR
    CC_CHECK_RESULT -->|false| FINAL_CHECK
    CC_INVOKE -->|false| FINAL_CHECK
    CC_ERROR --> FINAL_CHECK
    FINAL_CHECK -->|true| FINAL_COMMIT --> END_NODE
    FINAL_CHECK -->|false| FINAL_ROLLBACK --> END_NODE

    style START fill:#d4edda
    style END_NODE fill:#d4edda
    style NO_EXEC_COMMIT fill:#f8d7da
    style FINAL_ROLLBACK fill:#f8d7da
```

**Constant Resolution Reference:**

| Constant Name | Actual Value | Business Meaning |
|---------------|-------------|-----------------|
| `CD01168_IDO_RSV_STAT_CD_01` | `"01"` | Reservation status "reflected" (apply) |
| `CD01168_IDO_RSV_STAT_CD_02` | `"02"` | Reservation status "cancelled" (cancel) |
| `CD00647_PRG_STAT_H001` | `"H001"` | Progress status "equipment OP setup complete" |
| `CD00647_PRG_STAT_3200` | `"3200"` | Progress status "actual termination" |
| `CD00647_OP_SETTE_FIN` | `"OP_SETTE_FIN"` | Progress status "OP service contract complete" (IPv6) |
| `KKIFM554_HONTAI_DSL_FLG_1` | `"1"` | Flag: actual termination DSL flag |
| `CD00009_HAISO_STAT_001` | `"001"` | Delivery status: delivery exists |
| `KKIFM554_AD_CHG_TAIKIKI_DEL_FLG_1` | `"1"` | Address change target equipment deletion flag |
| `KKIFM554_ZAIKO_CNT_UPD_FLG_1` | `"1"` | Inventory count update flag |
| `KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_2` | `"2"` | Device designated workplace identification code type 2 |
| `KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_3` | `"3"` | Device designated workplace identification code type 3 |
| `KKIFM554_HMPIN_KIKI_UK_FLG_1` | `"1"` | Return device receipt flag |
| `CD01603_TAKINORT_KINO_CD_A` | `"A"` | Multi-function router feature code A |
| `CD01603_TAKINORT_KINO_CD_B` | `"B"` | Multi-function router feature code B |
| `CD01603_TAKINORT_KINO_CD_C` | `"C"` | Multi-function router feature code C |
| `CD01241_ADCHG_DTL_SBT_CD_03` | `"03"` | Address change detail type: equipment |
| `CD00884_KOJI_UK_CD_070` | `"070"` | Work order classification code |
| `CD00885_KOJI_UK_DTAIL_CD_A6` | `"A6"` | Work order classification detail code |
| `USECASE_ID_OP_SVC_KEI_ADD` | *(constant field)* | Usecase ID for OP service contract registration |
| `FUNK_CODE_ONE` | *(constant field)* | Function code "1" |
| `SEQ_ODR_HAKKO_JOKEN_NO` | *(constant field)* | Sequence name for order issuance condition number |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatServiceInterfaceMap` | Input message carrying all CSV-parsed fields for the machine-provided service contract termination process. Contains service contract numbers, device OP cancellation reservation numbers, status flags, delivery information, address change flags, inventory update flags, return device flags, and model codes for equipment. |

**Instance fields and external state read by the method:**

| Name | Type | Business Description |
|------|------|---------------------|
| `db_KK_T_IDO_RSV` | `JBSbatCommonDBInterface` | DB access for the T_IDO_RSV (Device Reservation) table — queried to obtain reservation application dates |
| `commonItem` | `JBSbatCommonDBInterface` | Common item interface used for sequence generation, date/time retrieval, and progress datetime queries |
| `stmt` | DB statement | Database statement object for query execution |
| `opeDate` | `String` | Operation date used as fallback for IP address when reservation application date is null |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `executeKK_T_ODR_HAKKO_JOKEN_PKINSERT` | EKK1081D010CBS | KK_T_ODR_HAKKO_JOKEN | Create: Insert order issuance condition record — records the conditions under which a service order is generated |
| C | `executeKK_T_ODR_INF_SKSI_WK_PKINSERT` | EKK1551D010CBS | KK_T_ODR_INF_SKSI_WK | Create: Insert order issuance information temporary table — stores detailed order content for downstream processing |
| R | `executeKK_T_IDO_RSV_KK_SELECT_012` | *(internal SELECT)* | KK_T_IDO_RSV | Read: Query device reservation table to get the reservation application date (RSV_APLY_YMD) |
| C | `insertKkopSvcKei` | *(internal INSERT)* | KK_T_KKOP_SVC_KEI | Create: Insert into machine-provided OP service contract table (internal schema update) |
| C | `insertKktkSvcKei` | *(internal INSERT)* | KK_T_KKTK_SVC_KEI | Create: Insert into actual termination machine-provided service contract table |
| C | `insertOpSvcKei` | *(internal INSERT)* | KK_T_OP_SVC_KEI | Create: Insert into OP service contract table |
| C | `insertHmpinKiki` | *(internal INSERT)* | DK_T_HMPIN_KIKI | Create: Insert return device receipt record — registers equipment being returned for cancellation |
| R | `existsDK_T_HMPIN_KIKI` | *(internal SELECT)* | DK_T_HMPIN_KIKI | Read: Check whether a return device is already registered for this contract |
| R | `getCsv` | *(internal GET)* | inMap data | Read: Retrieve CSV-parsed string value by field code from the input message map |
| R | `getKkopCsvData` | *(internal GET)* | inMap data | Read: Merge data from two source fields (network and telephone) into a single value |
| R | `getKkopIdoRsvAplyYmd` | *(internal GET)* | inMap data | Read: Merge reservation application dates from network and telephone sources |
| R | `getSODHakkotakinortKinoCd` | *(internal GET)* | inMap data | Read: Retrieve the multi-function router actual cancellation number code |
| U | `updateIdoRsv` | *(internal UPDATE)* | T_IDO_RSV | Update: Update device reservation schema — set status to "reflected" (01) or "cancelled" (02) |
| U | `setSvkeiExcCtrl` | *(internal UPDATE)* | KK_T_SVKEI_EXC_CTRL | Update: Release record lock for service contract |
| R | `isSvcOffered` | *(method call)* | — | Read: Determine whether the service is currently offered (status check) |
| R | `isIpv6DlCheck` | *(method call)* | — | Read: Check whether IPv6 OP service contract termination is in progress |
| R | `JCCBatCommon.getSysDateTimeStamp` | JCCBatCommon | — | Read: Get current system date/time stamp |
| R | `JCCBatCommon.getFormatedNextSeq` | JCCBatCommon | — | Read: Get a formatted next sequence number for order issuance condition |
| R | `JKKBatCommon.getIdoDtmMax` | JKKBatCommon | — | Read: Get the maximum activity date/time stamp for progress tracking |
| R | `JBSbatInterface.getFormatedNextSeq` | JBSbatInterface | — | Read: Format and retrieve the next sequence number |
| C | `JBSbatBusinessService.commit` | JBSbatBusinessService | JBSbatBusiness | Commit: Persist the database transaction |
| R | `JBSbatFUCaseFileRnkData.getString` | JBSbatFUCaseFileRnkData | — | Read: Retrieve formatted string value |
| R | `JBSbatFUMoveNaviData.getString` | JBSbatFUMoveNaviData | — | Read: Retrieve formatted navigation string |
| - | `JCCBatchEsbInterface.invokeService` | JCCBatchEsbInterface | — | Invoke: Call the external Common Component (CC) service via ESB for address change, work order changes, delivery suspension, inventory update, and return device receipt |
| - | `JPCBatchMessageConstant.EKKB0010CW.printBusinessErrorLog` | JPCBatchMessageConstant | — | Log: Print business error log when CC invocation returns a non-zero return code (excluding 0004) |
| R | `JBSBatKKKkOpDlRvAdd.checkHaita` | JBSBatKKKkOpDlRvAdd | — | Read: Exclusive control check — prevents concurrent processing conflicts |
| R | `JBSBatKKKkOpDlRvAdd.getCsv` | JBSBatKKKkOpDlRvAdd | — | Read: Retrieve CSV field value from input map |
| R | `JBSBatKKKkOpDlRvAdd.getKkopCsvData` | JBSBatKKKkOpDlRvAdd | — | Read: Merge two CSV fields into one |
| R | `JBSBatKKKkOpDlRvAdd.getKkopIdoRsvAplyYmd` | JBSBatKKKkOpDlRvAdd | — | Read: Merge reservation application dates |
| R | `JBSBatKKKkOpDlRvAdd.getSODHakkotakinortKinoCd` | JBSBatKKKkOpDlRvAdd | — | Read: Get multi-function router cancellation number code |
| C | `JBSBatKKKkOpDlRvAdd.executeKK_T_ODR_HAKKO_JOKEN_PKINSERT` | JBSBatKKKkOpDlRvAdd | KK_T_ODR_HAKKO_JOKEN | Create: Insert order issuance condition record |
| C | `JBSBatKKKkOpDlRvAdd.executeKK_T_ODR_INF_SKSI_WK_PKINSERT` | JBSBatKKKkOpDlRvAdd | KK_T_ODR_INF_SKSI_WK | Create: Insert order issuance information |
| R | `JBSBatKKKkOpDlRvAdd.executeKK_T_IDO_RSV_KK_SELECT_012` | JBSBatKKKkOpDlRvAdd | KK_T_IDO_RSV | Read: Query device reservation for application date |
| R | `JBSBatKKKkOpDlRvAdd.existsDK_T_HMPIN_KIKI` | JBSBatKKKkOpDlRvAdd | DK_T_HMPIN_KIKI | Read: Check if return device exists |
| C | `JBSBatKKKkOpDlRvAdd.insertHmpinKiki` | JBSBatKKKkOpDlRvAdd | DK_T_HMPIN_KIKI | Create: Insert return device receipt |
| C | `JBSBatKKKkOpDlRvAdd.insertKkopSvcKei` | JBSBatKKKkOpDlRvAdd | KK_T_KKOP_SVC_KEI | Create: Insert OP service contract data |
| C | `JBSBatKKKkOpDlRvAdd.insertKktkSvcKei` | JBSBatKKKkOpDlRvAdd | KK_T_KKTK_SVC_KEI | Create: Insert actual termination service contract |
| C | `JBSBatKKKkOpDlRvAdd.insertOpSvcKei` | JBSBatKKKkOpDlRvAdd | KK_T_OP_SVC_KEI | Create: Insert OP service contract |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: JBSBatKKKkOpDlRvAdd (via tool) | `Tool generated -> JBSBatKKKkOpDlRvAdd.execute` | `executeKK_T_ODR_HAKKO_JOKEN_PKINSERT [C] KK_T_ODR_HAKKO_JOKEN`, `executeKK_T_ODR_INF_SKSI_WK_PKINSERT [C] KK_T_ODR_INF_SKSI_WK`, `insertKkopSvcKei [C] KK_T_KKOP_SVC_KEI`, `insertKktkSvcKei [C] KK_T_KKTK_SVC_KEI`, `insertOpSvcKei [C] KK_T_OP_SVC_KEI`, `insertHmpinKiki [C] DK_T_HMPIN_KIKI`, `updateIdoRsv [U] T_IDO_RSV`, `setSvkeiExcCtrl [U] KK_T_SVKEI_EXC_CTRL`, `executeKK_T_IDO_RSV_KK_SELECT_012 [R] KK_T_IDO_RSV`, `invokeService [CC] CC Address Change/Work Order/Delivery/Inventory/Return Device`, `JCCBatCommon.getFormatedNextSeq [R] Seq ODR_HAKKO_JOKEN_NO` |

**Notes:** This method is a batch entry point invoked by the common tool (generated tool mapping). It does not appear to be called from any screen class (no `KKSV*` callers found).

## 6. Per-Branch Detail Blocks

**Block 1** — [INIT] Initialization (L434)

> Initialize processing flags and system date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isCallCc = false` // CC call determination value |
| 2 | CALL | `sysDate = JCCBatCommon.getSysDateTimeStamp()` // Get system date/time stamp |
| 3 | SET | `isExec = false` // Post-processing determination flag |
| 4 | SET | `netIdoRsvAplyYmd = null` // Network device reservation application date |
| 5 | SET | `telIdoRsvAplyYmd = null` // Telephone device reservation application date |

**Block 2** — [WHILE/LOOP] Exclusive Check — checkHaita x3 (L448-L450)

> Perform exclusive control check for three service lines: network, telephone, and TX.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `checkHaita(getCsv(SVC_KEI_NO_1), getCsv(UPD_DTM_1))` // Network exclusive check |
| 2 | EXEC | `checkHaita(getCsv(SVC_KEI_NO_2), getCsv(UPD_DTM_2))` // Telephone exclusive check |
| 3 | EXEC | `checkHaita(getCsv(SVC_KEI_NO_3), getCsv(UPD_DTM_3))` // TX exclusive check |

**Block 3** — [IF] Network Equipment OP Contract Cancellation (L453)

> Handle cancellation of network (NTT) equipment OP service contract if reservation number is non-empty.
> Condition: `IDO_RSV_NO_1 != ""`

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_012(new String[]{getCsv(IDO_RSV_NO_1)})` // Query device reservation |
| 2 | CALL | `idoRsvMap = db_KK_T_IDO_RSV.selectNext()` // Get reservation record |
| 3 | SET | `netIdoRsvAplyYmd = idoRsvMap.getString(RSV_APLY_YMD)` // Get reservation application date |

**Block 3.1** — [IF] Network Service Offered? (L462)

> Check if the network OP service is currently offered.
> Condition: `isSvcOffered(getCsv(KKOP_SVC_KEI_STAT_1))`

| # | Type | Code |
|---|------|------|
| 1 | SET | `isExec = true` // Set post-processing execution flag |
| 2 | CALL | `insertKkopSvcKei(KKOP_SVC_KEI_NO_1, GENE_ADD_DTM_1, PLAN_CHRG_STAYMD_1, MSKM_DTL_NO_1, IDO_DIV_1, sysDate, SVC_KEI_NO_1, inMap, netIdoRsvAplyYmd)` // Internal schema update (3) |
| 3 | CALL | `updateIdoRsv(IDO_RSV_NO_1, CD01168_IDO_RSV_STAT_CD_01)` // Reservation schema reflect: CD01168_IDO_RSV_STAT_CD_01 = "01" |
| 4 | SET | `sbPrgTkjk1 = new StringBuffer("機器OP解約 機能名:")` // Create progress remark prefix |
| 5 | EXEC | `sbPrgTkjk1.append(getCsv(PCRS_NM_1))` // Append device name |
| 6 | CALL | `ido_dtm = JKKBatCommon.getIdoDtmMax(commonItem, SVC_KEI_NO_1, IDO_DIV_1, stmt)` // Get max activity datetime |
| 7 | CALL | `insertPrg(MSKM_DTL_NO_1, SVC_KEI_NO_1, IDO_DIV_1, ido_dtm, CD00647_PRG_STAT_H001, sbPrgTkjk1.toString(), sysDate)` // Internal schema update (7): CD00647_PRG_STAT_H001 = "H001" |

**Block 3.2** — [ELSE] Network Service Not Offered (Cancellation) (L488)

> When the network OP service is NOT offered, cancel the reservation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `updateIdoRsv(IDO_RSV_NO_1, CD01168_IDO_RSV_STAT_CD_02)` // Reservation schema cancel: CD01168_IDO_RSV_STAT_CD_02 = "02" |

**Block 4** — [IF] Telephone Equipment OP Contract Cancellation (L495)

> Handle cancellation of telephone equipment OP service contract if reservation number is non-empty.
> Condition: `IDO_RSV_NO_2 != ""`

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeKK_T_IDO_RSV_KK_SELECT_012(new String[]{getCsv(IDO_RSV_NO_2)})` // Query device reservation |
| 2 | CALL | `idoRsvMap = db_KK_T_IDO_RSV.selectNext()` // Get reservation record |
| 3 | SET | `telIdoRsvAplyYmd = idoRsvMap.getString(RSV_APLY_YMD)` // Get reservation application date |

**Block 4.1** — [IF] Telephone Service Offered? (L504)

> Check if the telephone OP service is currently offered.
> Condition: `isSvcOffered(getCsv(KKOP_SVC_KEI_STAT_2))`

| # | Type | Code |
|---|------|------|
| 1 | SET | `isExec = true` // Set post-processing execution flag |
| 2 | CALL | `insertKkopSvcKei(KKOP_SVC_KEI_NO_2, GENE_ADD_DTM_2, PLAN_CHRG_STAYMD_2, MSKM_DTL_NO_2, IDO_DIV_2, sysDate, SVC_KEI_NO_2, inMap, telIdoRsvAplyYmd)` // Internal schema update (3) |
| 3 | CALL | `updateIdoRsv(IDO_RSV_NO_2, CD01168_IDO_RSV_STAT_CD_01)` // Reservation schema reflect: CD01168_IDO_RSV_STAT_CD_01 = "01" |
| 4 | SET | `sbPrgTkjk1 = new StringBuffer("機器OP解約 機能名:")` // Create progress remark prefix |
| 5 | EXEC | `sbPrgTkjk1.append(getCsv(PCRS_NM_2))` // Append device name |
| 6 | CALL | `ido_dtm = JKKBatCommon.getIdoDtmMax(commonItem, SVC_KEI_NO_2, IDO_DIV_2, stmt)` // Get max activity datetime |
| 7 | CALL | `insertPrg(MSKM_DTL_NO_2, SVC_KEI_NO_2, IDO_DIV_2, ido_dtm, CD00647_PRG_STAT_H001, sbPrgTkjk1.toString(), sysDate)` // Internal schema update (7): CD00647_PRG_STAT_H001 = "H001" |

**Block 4.2** — [ELSE] Telephone Service Not Offered (Cancellation) (L529)

> When the telephone OP service is NOT offered, cancel the reservation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `updateIdoRsv(IDO_RSV_NO_2, CD01168_IDO_RSV_STAT_CD_02)` // Reservation schema cancel: CD01168_IDO_RSV_STAT_CD_02 = "02" |

**Block 5** — [IF] No Cancellation Exists (L537)

> If no cancellation processing is needed, commit and exit early.
> Condition: `!isExec`

| # | Type | Code |
|---|------|------|
| 1 | CALL | `super.commit()` // Commit transaction |
| 2 | RETURN | `return null` // Early return |

**Block 6** — [IF] Actual Termination (HonTai) DSL Flag (L586)

> Handle actual service contract termination when DSL is actual termination.
> Condition: `HONTAI_DSL_FLG equals KKIFM554_HONTAI_DSL_FLG_1` [KKIFM554_HONTAI_DSL_FLG_1="1"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkIdoKbn = getKkopCsvData(IDO_DIV_1, IDO_DIV_2)` // Merge OP division codes |
| 2 | SET | `svcKeiNo = getKkopCsvData(SVC_KEI_NO_1, SVC_KEI_NO_2)` // Merge service contract numbers |
| 3 | SET | `mskmDtlNo = getKkopCsvData(MSKM_DTL_NO_1, MSKM_DTL_NO_2)` // Merge detail numbers |
| 4 | SET | `idoRsvAplyYmd = getKkopIdoRsvAplyYmd(netIdoRsvAplyYmd, telIdoRsvAplyYmd)` // Merge reservation dates |
| 5 | CALL | `insertKktkSvcKei(KKTK_SVC_KEI_NO, GENE_ADD_DTM, kktkIdoKbn, sysDate, idoRsvAplyYmd)` // Internal schema update (5) |
| 6 | SET | `sbPrgTkjk1 = new StringBuffer("型番名:")` // Create progress remark prefix |
| 7 | EXEC | `sbPrgTkjk1.append(getCsv(TAKNKIKI_MODEL_CD))` // Append model name |
| 8 | CALL | `ido_dtm = JKKBatCommon.getIdoDtmMax(commonItem, svcKeiNo, kktkIdoKbn, stmt)` // Get max activity datetime |
| 9 | CALL | `insertPrg(mskmDtlNo, svcKeiNo, kktkIdoKbn, ido_dtm, CD00647_PRG_STAT_3200, sbPrgTkjk1.toString(), sysDate)` // Internal schema update (8): CD00647_PRG_STAT_3200 |

**Block 6.1** — [IF] Address Change Target Equipment Deletion (L628)

> When the target equipment is subject to address change deletion, trigger CC processing for address change detail update and work order modifications.
> Condition: `AD_CHG_TAIKIKI_DEL_FLG equals KKIFM554_AD_CHG_TAIKIKI_DEL_FLG_1` [KKIFM554_AD_CHG_TAIKIKI_DEL_FLG_1="1"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `isCallCc = true` // Enable CC invocation |
| 2 | SET | `dataMap0777.put("exe_flg_1", "1")` // Execute flag 1 |
| 3 | SET | `dataMap0777.put("func_code_1", FUNK_CODE_ONE)` // Function code |
| 4 | SET | `dataMap0777.put("update_flg_1", "9")` // Update flag |
| 5 | SET | `dataMap0777.put("chg_tg_kei_no_1", getCsv(KKTK_SVC_KEI_NO))` // Contract number |
| 6 | SET | `dataMap0777.put("kiki_chg_no_1", getCsv(KIKI_CHG_NO))` // Equipment change number |
| 7 | SET | `dataMap0777.put("kojiak_no_1", getCsv(KOJIAK_NO))` // Work order case number |
| 8 | SET | `dataMap0777.put("adchg_dtl_sbt_cd_kiki_1", CD01241_ADCHG_DTL_SBT_CD_03)` // Address change detail type: CD01241_ADCHG_DTL_SBT_CD_03 = "03" (Equipment) |
| 9 | SET | `dataMap0777.put("svc_kei_ido_sbt_cd_1", JKKBatConst.SPACE)` // Service contract activity type code: SPACE |
| 10 | SET | `dataMap0777.put("exe_flg_2", "1")` // Execute flag 2 |
| 11 | SET | `dataMap0777.put("func_code_2", FUNK_CODE_ONE)` // Function code |
| 12 | SET | `dataMap0777.put("kojiak_no_2", getCsv(KOJIAK_NO))` // Work order case number |
| 13 | SET | `dataMap0777.put("mskm_dtl_no_2", JKKBatConst.SPACE)` // Application detail number: SPACE |
| 14 | SET | `dataMap0777.put("ido_div_2", getCsv(IDO_DIV_1))` // Activity division |
| 15 | SET | `dataMap0777.put("koji_uk_cd_2", CD00884_KOJI_UK_CD_070)` // Work classification code: CD00884_KOJI_UK_CD_070 = "070" |
| 16 | SET | `dataMap0777.put("koji_uk_dtail_cd_2", CD00885_KOJI_UK_DTAIL_CD_A6)` // Work classification detail code: CD00885_KOJI_UK_DTAIL_CD_A6 = "A6" |
| 17 | SET | `dataMap0777.put("kojiak_sbt_cd_2", getCsv(KOJIAK_SBT_CD))` // Work order case type code |
| 18 | SET | `dataMap0777.put("svc_kei_no_2", getCsv(SVC_KEI_NO_1))` // Service contract number |
| 19 | SET | `dataMap0777.put("kktkSvcOutList_2", JKKBatConst.SPACE)` // Equipment provider service list: SPACE |

**Block 6.2** — [IF] Delivery Number Exists (L659)

> When a delivery number exists, trigger the delivery suspension external IF.
> Condition: `HAISO_STAT equals CD00009_HAISO_STAT_001` [CD00009_HAISO_STAT_001="001"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `isCallCc = true` // Enable CC invocation |
| 2 | SET | `dataMap0777.put("exe_flg_3", "1")` // Execute flag 3 |
| 3 | SET | `dataMap0777.put("haiso_no_3", getCsv(HAISO_NO))` // Delivery number |
| 4 | SET | `dataMap0777.put("upd_dtm_bf_3", getCsv(UPD_DTM_BF))` // Pre-update date/time stamp |

**Block 6.3** — [IF] Inventory Count Update Flag (L680)

> When inventory count update is flagged, trigger inventory update SC.
> Condition: `ZAIKO_CNT_UPD_FLG equals KKIFM554_ZAIKO_CNT_UPD_FLG_1` [KKIFM554_ZAIKO_CNT_UPD_FLG_1="1"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `isCallCc = true` // Enable CC invocation |
| 2 | SET | `dataMap0777.put("exe_flg_4", "1")` // Execute flag 4 |
| 3 | SET | `dataMap0777.put("kk_kanri_sbt_cd_4", getCsv(KIKI_STI_JI_KRIPLACE_SKCD))` // Management type code |
| 4 | SET | `dataMap0777.put("knri_plc_skbt_cd_4", getCsv(KIKI_STI_JI_KRIPLACE_SKCD))` // Management place type code |

**Block 6.3.1** — [IF] Workplace Code Type 2 (L696)

> When the workplace is type 2 (specific facility), set the workplace code and self-code.
> Condition: `KIKI_STI_JI_KRIPLACE_SKCD equals KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_2` [KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_2="2"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap0777.put("knri_plc_cd_4", getCsv(KIKI_STI_JI_KOCOMP_CD))` // Workplace code |
| 2 | SET | `dataMap0777.put("knri_plc_slf_cd_4", getCsv(KIKI_STI_JI_KOCOMP_SLF_CD))` // Workplace self code |

**Block 6.3.2** — [ELSE-IF] Workplace Code Type 3 (L705)

> When the workplace is type 3 (off-site facility), set the workplace code and self-code.
> Condition: `KIKI_STI_JI_KRIPLACE_SKCD equals KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_3` [KKIFM554_KIKI_STI_JI_KRIPLACE_SKCD_3="3"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap0777.put("knri_plc_cd_4", getCsv(KIKI_STI_JI_YTKSKOF_CD))` // Workplace code |
| 2 | SET | `dataMap0777.put("knri_plc_slf_cd_4", getCsv(KIKI_STI_JI_YTKSKOF_SLF_CD))` // Workplace self code |

**Block 6.3.3** — [ELSE] Address Change Other (L713)

> When not address change processing (non-address-change workplace codes).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap0777.put("knri_plc_cd_4", getCsv(KIKI_HKAT_SHITEI_SOKO_CD))` // Workplace code |
| 2 | SET | `dataMap0777.put("knri_plc_slf_cd_4", getCsv(KIKI_HKAT_SHITEI_SKDN_CD))` // Workplace self code |

**Block 6.3.4** — [SET] Indoor Device Model Code (L722)

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap0777.put("tk_mdl_cd_4", getCsv(DK0021_TAKNKIKI_MODEL_CD))` // Indoor device model code |

**Block 6.4** — [IF] Return Device Receipt (L728)

> When the return device receipt flag is "1" and the return device is NOT already registered, register it.
> Condition: `HMPIN_KIKI_UK_FLG equals KKIFM554_HMPIN_KIKI_UK_FLG_1` AND `!existsDK_T_HMPIN_KIKI(inMap)` [KKIFM554_HMPIN_KIKI_UK_FLG_1="1"]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `insertHmpinKiki(inMap)` // Register return device receipt (internal schema update 6) |

**Block 7** — [IF] IPv6 OP Service Contract Cancellation (L737)

> Check whether IPv6 OP service contract termination is in progress. If so, process the cancellation.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isIpv6Dl = isIpv6DlCheck(KK0351_OP_SVC_KEI_NO, SVC_KEI_NO_1, IDO_DIV_1)` // IPv6 OP check |

**Block 7.1** — [IF] isIpv6Dl (L741)

> Process IPv6 OP service contract cancellation when IPv6 is being terminated.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `idoRsvMap = db_KK_T_IDO_RSV.selectNext()` // Get reservation record |
| 2 | IF | `netIdoRsvAplyYmd != null` |
| 3 | SET | `idoRsvAplyYmd = netIdoRsvAplyYmd` // Use network reservation date |
| 4 | ELSE | `idoRsvAplyYmd = opeDate` // Use operation date as fallback |
| 5 | CALL | `insertOpSvcKei(KK0351_OP_SVC_KEI_NO, GENE_ADD_DTM, IDO_DIV_1, sysDate, idoRsvAplyYmd)` // Internal schema update (4) |
| 6 | CALL | `ido_dtm = JKKBatCommon.getIdoDtmMax(commonItem, SVC_KEI_NO_1, IDO_DIV_1, stmt)` // Get max activity datetime |
| 7 | CALL | `insertPrg(MSKM_DTL_NO_1, SVC_KEI_NO_1, IDO_DIV_1, ido_dtm, JKKStrConst.CD00647_OP_SETTE_FIN, "IPv6情報解約", sysDate)` // Internal schema update (9): CD00647_OP_SETTE_FIN = "OP_SETTE_FIN" |

**Block 8** — [IF] SOD Issuance Check (Non-HonTai DSL) (L776)

> For non-actual-termination (non-HonTai) cases, issue SOD (Service Order Data) when multi-function router or telephone adapter features are being cancelled.
> Condition: `HONTAI_DSL_FLG != KKIFM554_HONTAI_DSL_FLG_1` [KKIFM554_HONTAI_DSL_FLG_1="1"]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `takinortKinoCd = getSODHakkotakinortKinoCd(inMap)` // Get multi-function router cancellation number code |

**Block 8.1** — [IF] Multi-function Router Feature Cancellation (L784)

> When network reservation number exists and the service is offered.
> Condition: `IDO_RSV_NO_1 != ""` AND `isSvcOffered(KKOP_SVC_KEI_STAT_1)`

**Block 8.1.1** — [IF] Feature Code A or C (L790)

> For multi-function router feature codes "A" or "C" (network-side features), issue the cancellation order.
> Condition: `takinortKinoCd equals CD01603_TAKINORT_KINO_CD_A` OR `takinortKinoCd equals CD01603_TAKINORT_KINO_CD_C` [CD01603_TAKINORT_KINO_CD_A="A", CD01603_TAKINORT_KINO_CD_C="C"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrHakkoJokenNoDsl = JCCBatCommon.getFormatedNextSeq(commonItem, SEQ_ODR_HAKKO_JOKEN_NO, "", 12)` // Get order issuance condition number for multi-function router cancellation |
| 2 | CALL | `executeKK_T_ODR_HAKKO_JOKEN_PKINSERT(setParamKK1081KkopDsl(inMap, odrHakkoJokenNoDsl, "0"))` // Insert order condition |
| 3 | CALL | `executeKK_T_ODR_INF_SKSI_WK_PKINSERT(setParamKK1551KkopDsl(inMap, odrHakkoJokenNoDsl, "0"))` // Insert order info |

**Block 8.1.2** — [IF] IPv6 OP Also Being Cancelled (L803)

> When IPv6 OP service contract is also being cancelled, issue an additional order for IPv6 cancellation deletion.

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrHakkoJokenNoDsl3 = JCCBatCommon.getFormatedNextSeq(commonItem, SEQ_ODR_HAKKO_JOKEN_NO, "", 12)` // Get order issuance condition number for IPv6 OP cancellation deletion |
| 2 | CALL | `executeKK_T_ODR_HAKKO_JOKEN_PKINSERT(setParamKK1081Ipv6OpDsl(inMap, odrHakkoJokenNoDsl3))` // Insert order condition |
| 3 | CALL | `executeKK_T_ODR_INF_SKSI_WK_PKINSERT(setParamKK1551Ipv6OpDsl(inMap, odrHakkoJokenNoDsl3))` // Insert order info |

**Block 8.2** — [IF] Telephone Adapter Feature Cancellation (L820)

> When telephone reservation number exists and the service is offered.
> Condition: `IDO_RSV_NO_2 != ""` AND `isSvcOffered(KKOP_SVC_KEI_STAT_2)`

**Block 8.2.1** — [IF] Feature Code B or C (L826)

> For multi-function router feature codes "B" or "C" (telephone adapter features), issue the cancellation order.
> Condition: `takinortKinoCd equals CD01603_TAKINORT_KINO_CD_B` OR `takinortKinoCd equals CD01603_TAKINORT_KINO_CD_C` [CD01603_TAKINORT_KINO_CD_B="B", CD01603_TAKINORT_KINO_CD_C="C"]

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrHakkoJokenNoDsl = JCCBatCommon.getFormatedNextSeq(commonItem, SEQ_ODR_HAKKO_JOKEN_NO, "", 12)` // Get order issuance condition number for telephone adapter feature cancellation |
| 2 | CALL | `executeKK_T_ODR_HAKKO_JOKEN_PKINSERT(setParamKK1081KkopDsl(inMap, odrHakkoJokenNoDsl, "1"))` // Insert order condition |
| 3 | CALL | `executeKK_T_ODR_INF_SKSI_WK_PKINSERT(setParamKK1551KkopDsl(inMap, odrHakkoJokenNoDsl, "1"))` // Insert order info |

**Block 9** — [WHILE/LOOP] Record Lock Release (L835-L837)

> Release record locks for all three service lines.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setSvkeiExcCtrl(SVC_KEI_NO_1, sysDate)` // Network lock release |
| 2 | CALL | `setSvkeiExcCtrl(SVC_KEI_NO_2, sysDate)` // Telephone lock release |
| 3 | CALL | `setSvkeiExcCtrl(SVC_KEI_NO_3, sysDate)` // TX lock release |

**Block 10** — [IF] CC Invocation (L843)

> When CC processing is required, invoke the ESB service.

| # | Type | Code |
|---|------|------|
| 1 | SET | `isResultCc = true` // Initialize CC result flag |
| 2 | IF | `isCallCc` |
| 3 | SET | `paramMap0777.put(TELEGRAM_INFO_USECASE_ID, USECASE_ID_OP_SVC_KEI_ADD)` // Set usecase ID |
| 4 | SET | `inputMap0777.put(CC_TITLE_OP_SVC_KEI_ADD, dataMap0777)` // Set input data |
| 5 | SET | `outMap0777 = new HashMap<Object, Object>()` // Create output map |
| 6 | CALL | `JCCBatchEsbInterface.invokeService(commonItem, paramMap0777, inputMap0777, outMap0777)` // Invoke CC service |
| 7 | SET | `returnCode = outMap0777.get("RETURN_CODE")` // Get return code |
| 8 | IF | `returnCode != "0000"` |
| 9 | IF | `returnCode != "0004"` |
| 10 | CALL | `super.logPrint.printBusinessErrorLog(EKKB0010CW, "CCでエラーが発生しました(リターンコード):" + returnCode)` // Print business error log |
| 11 | SET | `isResultCc = false` // Mark CC failure |

**Block 11** — [IF] CC Result Check and Commit/Rollback (L873)

> Based on CC result, commit or rollback the transaction.
> Condition: `isResultCc`

| # | Type | Code |
|---|------|------|
| 1 | IF | `isResultCc == true` → `super.commit()` // Commit on success |
| 2 | IF | `isResultCc == false` → `commonItem.getConnection().rollback()` // Rollback on failure |
| 3 | RETURN | `return null` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `OP` | Business term | Operator / Optical Network — refers to NTT-FLETs optical network equipment and associated services provided by the carrier |
| `KKOP` | Field Prefix | Kiki Operator — device-related OP service (machine-provided operator service) |
| `KKTK` | Field Prefix | Kiki Tsuukai / Actual Termination — actual termination (contract cancellation) for machine-provided services |
| `OP_SVC_KEI` | Field | OP Service Contract — optical network equipment service contract |
| `SVC_KEI_NO` | Field | Service contract number — unique identifier for a service agreement line |
| `IDO_RSV_NO` | Field | Reservation number — device move/reservation number for scheduled activity |
| `IDO_RSV_STAT_CD` | Field | Reservation status code — indicates the state of a reservation (00=unreflected, 01=reflected, 02=cancelled, 03=processing, 04=out-of-scope) |
| `RSV_APLY_YMD` | Field | Reservation application date — the date from the reservation table indicating when service becomes effective |
| `MSKM_DTL_NO` | Field | Application detail number — internal tracking number for application details |
| `IDO_DIV` | Field | Activity division — classifies the type of service change (new contract, addition, OP succession, cancellation, removal, cost change, etc.) |
| `ISV` | Field | ISV — Integrated Service Vision / device-provided service status |
| `KIKI_CHG_NO` | Field | Equipment change number — ID for equipment change events |
| `PCRS_NM` | Field | Package code / service name — the name of the service or device associated with the contract |
| `SVC_KEI_UCWK_NO` | Field | Service contract detail work number — internal tracking ID for service contract line items |
| `ADR_CHG` | Field | Address change — modification of the customer's registered address |
| `HAISO_STAT` | Field | Delivery status — indicates whether delivery is active (001 = delivery exists) |
| `HAISO_NO` | Field | Delivery number — the logistics tracking number for equipment delivery |
| `ZAIKO_CNT_UPD_FLG` | Field | Inventory count update flag — when set, triggers inventory update processing |
| `HMPIN_KIKI` | Field | Return device — equipment being returned by the customer |
| `HMPIN_KIKI_UK_FLG` | Field | Return device receipt flag — when "1", indicates a return device receipt is needed |
| `TAKINORT_KINO_CD` | Field | Multi-function router cancellation number code — classifies router feature type (A=network, B=telephone adapter, C=both) |
| `SOD` | Acronym | Service Order Data — order issuance data used for downstream order processing |
| `ODR_HAKKO_JOKEN` | Field | Order issuance condition — conditions under which a service order is generated |
| `ODR_INF_SKSI_WK` | Field | Order issuance information temporary — temporary table storing order content details |
| `KKOP_SVC_KEI_STAT` | Field | Machine-provided OP service contract status — indicates the current status of the OP service contract |
| `PRG_STAT` | Field | Progress status — workflow advancement status code |
| `PRG_STAT_H001` | Field | Progress status "equipment OP setup complete" |
| `PRG_STAT_3200` | Field | Progress status "actual termination" |
| `PRG_STAT_OP_SETTE_FIN` | Field | Progress status "OP service contract complete" (IPv6) |
| `KOJIAK_NO` | Field | Work order case number — unique identifier for a field work case |
| `KOJIAK_SBT_CD` | Field | Work order case type code — classifies the type of work order case |
| `KOJI_UK_CD` | Field | Work order classification code |
| `KOJI_UK_DTAIL_CD` | Field | Work order classification detail code |
| `ADCHG_DTL_SBT_CD` | Field | Address change detail type code — "03" indicates equipment-related address change |
| `KIKI_STI_JI_KRIPLACE_SKCD` | Field | Device designated workplace identification code type — indicates the type of workplace (2=facility, 3=off-site, else=address-change-other) |
| `KIKI_STI_JI_KOCOMP_CD` | Field | Device designated workplace company code — workplace code for type 2 (facility) |
| `KIKI_STI_JI_KOCOMP_SLF_CD` | Field | Device designated workplace self code — workplace self code for type 2 (facility) |
| `KIKI_STI_JI_YTKSKOF_CD` | Field | Device designated workplace off-site code — workplace code for type 3 (off-site) |
| `KIKI_STI_JI_YTKSKOF_SLF_CD` | Field | Device designated workplace off-site self code — workplace self code for type 3 (off-site) |
| `KIKI_HKAT_SHITEI_SOKO_CD` | Field | Device designated warehouse allocation code — default workplace code for non-address-change scenarios |
| `KIKI_HKAT_SHITEI_SKDN_CD` | Field | Device designated warehouse self code — default workplace self code |
| `KIKI_SBT_CD` | Field | Equipment provider type code — classifies equipment type (purchase, rental, own, replacement) |
| `HONTAI_DSL_FLG` | Field | Actual termination DSL flag — "1" indicates actual service contract termination (HonTai) |
| `AD_CHG_TAIKIKI_DEL_FLG` | Field | Address change target equipment deletion flag — when "1", equipment deletion CC is triggered |
| `USECASE_ID_OP_SVC_KEI_ADD` | Field | Usecase ID for OP service contract registration — identifies the ESB usecase |
| `FUNK_CODE_ONE` | Field | Function code "1" — identifies the function context in CC processing |
| `CC` | Acronym | Common Component — shared business logic component invoked via ESB for address change, work order, delivery, inventory, and return device processing |
| `ESB` | Acronym | Enterprise Service Bus — middleware used to invoke external services asynchronously |
| `KK_T_KKOP_SVC_KEI` | Entity | Table: Machine-provided OP service contract — stores OP service contract data for device-provided services |
| `KK_T_KKTK_SVC_KEI` | Entity | Table: Actual termination machine-provided service contract — stores actual termination data |
| `KK_T_OP_SVC_KEI` | Entity | Table: OP service contract — stores optical network operator service contract data |
| `KK_T_IDO_RSV` | Entity | Table: Device reservation — stores device move/reservation records |
| `KK_T_ODR_HAKKO_JOKEN` | Entity | Table: Order issuance condition — stores conditions for generating service orders |
| `KK_T_ODR_INF_SKSI_WK` | Entity | Table: Order issuance information temporary — stores order detail information |
| `DK_T_HMPIN_KIKI` | Entity | Table: Return device — stores return device receipt records |
| `KK_T_SVKEI_EXC_CTRL` | Entity | Table: Service contract exclusive control — manages record locks for service contracts |
| `SETTE` | Field | Settlement / setup — service contract setup status |
| `HONKANYU` | Field | Actual addition — the date of actual service activation |
| `FTRIAL` | Field | Free trial — trial service period dates |
| `RSV_APLY_CD` | Field | Reservation application code — the type of reservation being applied |
| `KEI_CNC_YMD` | Field | Contract binding date — the date the contract was officially bound |
| `PLAN_CHRG_STAYMD` | Field | Plan charge start date — the start of billing for the service plan |
| `SVC_STP_YMD` | Field | Service stop date |
| `SVC_DSL_YMD` | Field | Service cancellation date |
| `SVC_PAUSE_RSN_CD` | Field | Service pause reason code |
| `PLNTY_HASSEI_CD` | Field | Penalty occurrence code |
| `CHK` | N/A | Check / verification — used in exclusive control and status checks |
| `EXCLUDE` / `Haita` | N/A | Exclusive control — prevents concurrent processing conflicts |
| `SVC_KEI_IDO_SBT_CD` | Field | Service contract activity type code — classifies the type of service activity |
