# Business Logic — JKKKikiIchiranKkKaifukuCC.execKikiIchiranKikiKaifuku() [126 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKKikiIchiranKkKaifukuCC` |
| Layer | Common Component (CC) — shared business logic component in the BPF BPM framework |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`)

## 1. Role

### JKKKikiIchiranKkKaifukuCC.execKikiIchiranKikiKaifuku()

This method orchestrates the **equipment provision service recovery** workflow in the K-Opticom eCustomer Base System (eo Customer Base System). It is the central coordinator for restoring equipment-provisioned service contracts (e.g., FTTH fiber-optic, router, modem rentals) when a service contract has been cancelled or needs to be reinstated. The method follows a **delegation pattern**, issuing multiple CBS (Common Business Service) calls through the `ServiceComponentRequestInvoker` to fetch, recover, and re-query service agreement data across several related screens and CBSs.

The method handles four principal business branches: (1) **Service Contract Agreement fetch** — retrieves the base service contract consent data via EKK0081A010 if not already cached; (2) **Equipment Provision Service Agreement fetch** — obtains the equipment-provisioned service contract consent via EKK0341A010 if not present; (3) **Equipment Recovery** — executes the full recovery process including cancellation of returned equipment (EDK0301C040) when applicable; (4) **Post-recovery data retrieval and order creation** — re-fetches the equipment provision agreement after recovery, and for router-type services, optionally creates a Service Order Data (SOD) for router connection information if order conditions are met.

It acts as a **shared utility** called by other controller components such as `JKKKikiIchiranIkkatsuCC` (bulk listing) and `JKKKikiIchiranKkUpdCC` (single update), making it the entry point for any screen that needs to recover equipment provision services. After all recovery processing is complete, it registers the final progress state (PRG_STAT_3D00 — equipment recovery completion) via `execShinchokuToroku`, ensuring the workflow engine can advance.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execKikiIchiranKikiKaifuku"])
    STEP1["Get ccMsg from param using fixedText as key"]
    STEP2["Initialize err_flg to empty"]
    STEP3["Create empty message_list"]
    STEP4["Create temporaryData map"]
    STEP5["Create ServiceComponentRequestInvoker"]
    STEP6{"svc_kei_data exists?"}
    STEP7["Call EKK0081A010 CBS - Service Contract Agreement"]
    STEP8["Store EKK0081A010 result to temporaryData"]
    STEP9{"kkk_svc_kei_data exists?"}
    STEP10["Call execEKK0341A010 - Equipment Provision Service Agreement"]
    STEP11["Store EKK0341A010 result to temporaryData"]
    STEP12["Call execKikiKaifuku - Equipment Recovery"]
    STEP13{"hmpin_kiki_no not empty?"}
    STEP14["Call execEDK0301C040 - Returned Equipment Cancellation"]
    STEP15["Call execEKK0341A010 again - Post-recovery retrieval"]
    STEP16["Store post-recovery to ccMsg and temporaryData"]
    STEP17{"func_code equals 1?"}
    STEP18["Call setKikiIchiranIkkatsuList"]
    STEP19{"rtr_khk_um equals 1?"}
    STEP20["Get kktk_svc_kei_no and service details"]
    STEP21{"Router and svcKeiNo set?"}
    STEP22["Call getSvcKeiUcwkData - Service Contract Details"]
    STEP23{"svcKeiUcwkList not empty?"}
    STEP24["Store first item to temporaryData"]
    STEP25{"isOdrHakkoJoken conditions met?"}
    STEP26["Call execSodHakkoCreate - SOD Order Creation"]
    STEP27["Call execShinchokuToroku - Progress Registration"]
    STEP28["Return param"]

    START --> STEP1 --> STEP2 --> STEP3 --> STEP4 --> STEP5 --> STEP6
    STEP6 -- "No" --> STEP7 --> STEP8
    STEP6 -- "Yes" --> STEP8
    STEP8 --> STEP9
    STEP9 -- "No" --> STEP10 --> STEP11
    STEP9 -- "Yes" --> STEP11
    STEP11 --> STEP12 --> STEP13
    STEP13 -- "Yes" --> STEP14 --> STEP15
    STEP13 -- "No" --> STEP15
    STEP15 --> STEP16 --> STEP17
    STEP17 -- "func_code = 1" --> STEP18 --> STEP19
    STEP17 -- "Other" --> STEP27
    STEP19 -- "rtr_khk_um = 1" --> STEP27
    STEP19 -- "Other" --> STEP20 --> STEP21
    STEP21 -- "F0 and set" --> STEP22 --> STEP23
    STEP21 -- "Other" --> STEP27
    STEP23 -- "Not empty" --> STEP24 --> STEP25
    STEP23 -- "Empty" --> STEP27
    STEP25 -- "Yes" --> STEP26 --> STEP27
    STEP25 -- "No" --> STEP27
    STEP27 --> STEP28
```

**Processing overview:**

1. **Initialization phase** (lines 179–195): The method extracts a data map from `param` using `fixedText` as the key, initializes an error flag and message list, creates a temporary data workspace, and instantiates a `ServiceComponentRequestInvoker` for CBS calls.
2. **Service Contract Agreement fetch** (lines 198–210): If the service contract data (`svc_kei_data`) is not cached in the message map, it calls `callSC` to invoke EKK0081A010 CBS (Service Contract Agreement) with function code "2" (fetch) and stores the result.
3. **Equipment Provision Service Agreement fetch** (lines 214–220): If the equipment provision service contract data (`kkk_svc_kei_data`) is not present, it calls `execEKK0341A010` to retrieve it, and stores the result.
4. **Equipment Recovery** (line 223): Calls `execKikiKaifuku` to execute the core recovery process (EKK0341C380 CBS).
5. **Returned Equipment Cancellation** (lines 226–231): If a returned equipment number (`hmpin_kiki_no`) is set, calls `execEDK0301C040` to cancel the returned equipment.
6. **Post-recovery re-query** (lines 234–241): Re-fetches the equipment provision agreement via `execEKK0341A010` and stores the post-recovery data in both the message map and temporary data.
7. **Router-specific post-processing** (lines 244–284): If `func_code` is "1" (Check & Register), it sets the listing data. Then, if the router recovery flag is NOT "1" (i.e., it is a recovery case), it checks for router-type service and conditionally creates a Service Order Data (SOD) via `isOdrHakkoJoken` and `execSodHakkoCreate`.
8. **Progress registration** (line 295): Calls `execShinchokuToroku` to register the progress state as "3D00" (equipment recovery completed).

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle for the BPM framework — provides the connection context for all CBS calls (service component invocations) executed within this recovery workflow. |
| 2 | `param` | `IRequestParameterReadWrite` | Request/response parameter object that carries the data map keyed by `fixedText`. Contains pre-populated fields like `svc_kei_data` (service contract agreement), `kkk_svc_kei_data` (equipment provision service agreement), `func_code`, `svc_kei_no`, `kktk_svc_kei_no`, `hmpin_kiki_no`, and `rtr_khk_um`. Used both for input data retrieval and output results storage. |
| 3 | `fixedText` | `String` | Data map key used to extract and store the working message object (`ccMsg`) from `param`. In this context it represents the identification key for the current processing instance — typically the screen's data area identifier. |

**Additional fields / external state read:**

| Field / Source | Description |
|----------------|-------------|
| `ccMsg.get("svc_kei_no")` | Service contract number — used as the key for EKK0081A010 CBS query |
| `ccMsg.get("unyo_ymd")` | Operation date — passed to EKK0081A010 CBS as `KEY_RSV_APLY_YMD` |
| `ccMsg.get("kktk_svc_kei_no")` | Equipment provision service contract number — key for EKK0341A010 CBS query |
| `ccMsg.get("hmpin_kiki_no")` | Returned equipment number — determines whether returned equipment cancellation (EDK0301C040) is executed |
| `ccMsg.get("func_code")` | Function code — "1" triggers Check & Register post-processing including SOD creation; "2" skips it |
| `ccMsg.get("rtr_khk_um")` | Router recovery processing count — if equal to "1" (Recovery), SOD creation is skipped per ANK-2979-00-00 fix |
| `temporaryData` (local) | Temporary work area map storing CBS results for downstream use by called methods |
| `scCall` (local) | ServiceComponentRequestInvoker instance used as context for all CBS invocations; blank class name means no specific log output |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callSC` (EKK0081A010) | EKK0081A010SC | KK_T_SVC_KEI (Service Contract) | Fetches service contract agreement data when not cached in param map. Called with FUNC_CODE "2" for consent/lookup. |
| R | `execEKK0341A010` | EKK0341A010SC | KK_T_KKTK_SVC_KEI (Equipment Provision Service Contract) | Fetches equipment provision service contract agreement. Called twice — before recovery to establish baseline, and after recovery for post-recovery data. |
| - | `execKikiKaifuku` | EKK0341C380CBS | KK_T_KKTK_SVC_KEI | Executes the core equipment provision service recovery process. This is a CBS delegation via ServiceComponentRequestInvoker. |
| C | `execEDK0301C040` | EDK0301C040CBS | KK_T_HMPIN_KIKI (Returned Equipment) | Cancels returned equipment records when `hmpin_kiki_no` is set. This is a Create-type operation that registers cancellation. |
| R | `setKikiIchiranIkkatsuList` | — | — | Sets the equipment listing batch data into the working map for bulk processing screens. |
| R | `getSvcKeiUcwkData` | EKK0161B004SC | KK_T_SVC_KEI_UCWK (Service Contract Details) | Fetches service contract detail lines for a given service contract number. Used to validate router service type before SOD creation. |
| R | `isOdrHakkoJoken` | EKK1081B001SC / EKK1081D010SC | KK_T_ODR_HAKKO_JOKEN (Order Conditions) | Checks if order creation conditions are met — validates order content code (0A = router connection info), service type (02 = new), and order content subtype (1 = network). |
| C | `execSodHakkoCreate` | EKK1551D010SC / EKK1081C011SC | KK_T_ODR_HAKKO (Service Order Data) | Creates the Service Order Data (SOD) and order information work records for router connection information. This is a Create operation. |
| C | `execShinchokuToroku` | EKK1091D010CBS | KK_T_PRG_STAT (Progress Status) | Registers the progress state as "3D00" (equipment recovery completion) in the progress tracking table. |
| R | `getNullToStr` | — | — | Utility method that converts null strings to empty strings. Prevents NPE in downstream comparisons. |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `execShinchokuToroku` [C], `execSodHakkoCreate` [C], `isOdrHakkoJoken` [R], `getSvcKeiUcwkData` [R], `getNullToStr` [R], `getString` [R], `execEKK0341A010` [R], `execKikiKaifuku` [-], `execEDK0301C040` [C], `callSC` [R], `setKikiIchiranIkkatsuList` [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKKikiIchiranIkkatsuCC.isExecKikiIchiranKaifuku()` | `isExecKikiIchiranKaifuku` -> `JKKKikiIchiranKkKaifukuCC.execKikiIchiranKikiKaifuku` | `execShinchokuToroku [C] KK_T_PRG_STAT`, `execSodHakkoCreate [C] KK_T_ODR_HAKKO` |
| 2 | `JKKKikiIchiranKkUpdCC.execKikiKaifukuShori()` | `execKikiKaifukuShori` -> `JKKKikiIchiranKkKaifukuCC.execKikiIchiranKikiKaifuku` | `execShinchokuToroku [C] KK_T_PRG_STAT`, `execEDK0301C040 [C] KK_T_HMPIN_KIKI` |

**Terminal operations trace:**

| # | Terminal Method | CRUD | Entity / Table | Description |
|---|----------------|------|----------------|-------------|
| 1 | `execShinchokuToroku` | C | `KK_T_PRG_STAT` | Registers progress state "3D00" (equipment recovery completed) |
| 2 | `execSodHakkoCreate` | C | `KK_T_ODR_HAKKO`, `KK_T_ODR_JOQ_DTL` | Creates Service Order Data and order detail lines for router connection info |
| 3 | `execEDK0301C040` | C | `KK_T_HMPIN_KIKI` | Cancels returned equipment records |
| 4 | `execEKK0341A010` | R | `KK_T_KKTK_SVC_KEI` | Reads equipment provision service contract agreement (called pre- and post-recovery) |
| 5 | `callSC` (EKK0081A010) | R | `KK_T_SVC_KEI` | Reads service contract agreement data |
| 6 | `getSvcKeiUcwkData` | R | `KK_T_SVC_KEI_UCWK` | Reads service contract detail lines |
| 7 | `isOdrHakkoJoken` | R | `KK_T_ODR_HAKKO_JOKEN` | Reads order creation conditions |

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Initialization and workspace setup (L179)

> Sets up the working data structures: extracts the message map, initializes error flag, creates message list, and prepares CBS invocation context.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMapKey = fixedText` // Uses fixedText as the data map key |
| 2 | EXEC | `ccMsg = (HashMap)param.getData(dataMapKey)` // Retrieves working message map from param |
| 3 | SET | `ccMsg.put("err_flg", "")` // Clears error flag — initializes to empty string [-> ERR_FLG_ERR is "E" when set] |
| 4 | SET | `messageInfo = new ArrayList<HashMap>()` // Creates empty message list [-> message_list stored in ccMsg] |
| 5 | SET | `ccMsg.put("message_list", messageInfo)` // Attaches message list to working map |
| 6 | SET | `temporaryData = new HashMap<String, Object>()` // Creates temporary workspace for CBS results |
| 7 | SET | `scCall = new ServiceComponentRequestInvoker()` // Creates CBS invocation context with blank class name |

**Block 2** — [IF] Service Contract Agreement fetch — EKK0081A010 (L198)

> If the service contract agreement data (`svc_kei_data`) is not already cached in the message map, this block fetches it via the EKK0081A010 CBS (Service Contract Agreement) with function code "2" (fetch/consultation). The result is stored in `temporaryData` under the template key.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0081a010cbsMsg = (CAANMsg)ccMsg.get("svc_kei_data")` // Retrieves cached service contract data |
| 2 | IF | `ekk0081a010cbsMsg == null` [L199] |

**Block 2.1** — [IF body] Fetch service contract agreement (L202)

> Constructs the input array for EKK0081A010 CBS call with: template ID, function code "2" (fetch), service contract number, empty generation date, and operation date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `{EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010}` [-> "EKK0081A010"] |
| 2 | SET | `{EKK0081A010CBSMsg.FUNC_CODE, "2"}` // Function code "2" = fetch/consultation |
| 3 | SET | `{EKK0081A010CBSMsg.KEY_SVC_KEI_NO, (String)ccMsg.get("svc_kei_no")}` // Service contract number as lookup key |
| 4 | SET | `{EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, ""}` // Empty generation/addition datetime |
| 5 | SET | `{EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, (String)ccMsg.get("unyo_ymd")}` // Operation date from param |
| 6 | CALL | `callSC(handle, scCall, param, dataMapKey, ekk0081a010IN)` // Invokes EKK0081A010 CBS |
| 7 | EXEC | `.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST)[0]` // Extracts first result from CBS response |

**Block 2.2** — [After IF] Store result (L212)

| # | Type | Code |
|---|------|------|
| 1 | SET | `temporaryData.put(TEMPLATE_ID_EKK0081A010, ekk0081a010cbsMsg)` [-> "EKK0081A010"] // Stores CBS result in temporary workspace |

**Block 3** — [IF] Equipment Provision Service Agreement fetch — EKK0341A010 (L214)

> If the equipment provision service contract data (`kkk_svc_kei_data`) is not cached, fetches it via `execEKK0341A010`. This is a delegation to the companion method that handles the EKK0341A010 CBS call (Equipment Provision Service Agreement).

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0341a010cbsMsg = (CAANMsg)ccMsg.get("kkk_svc_kei_data")` // Retrieves cached equipment provision data |
| 2 | IF | `ekk0341a010cbsMsg == null` [L215] |

**Block 3.1** — [IF body] Fetch equipment provision service agreement (L218)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execEKK0341A010(handle, scCall, param, dataMapKey, temporaryData, (String)ccMsg.get("kktk_svc_kei_no"))` // Fetches equipment provision service contract agreement |

**Block 3.2** — [After IF] Store result (L221)

| # | Type | Code |
|---|------|------|
| 1 | SET | `temporaryData.put(TEMPLATE_ID_EKK0341A010, ekk0341a010cbsMsg)` [-> "EKK0341A010"] // Stores result |

**Block 4** — [EXEC] Equipment Recovery (L223)

> Executes the core equipment provision service recovery process. This is a CBS delegation via `execKikiKaifuku` which invokes the EKK0341C380 CBS (Equipment Provision Service Recovery).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execKikiKaifuku(handle, scCall, param, dataMapKey, temporaryData)` // Delegates to equipment recovery CBS |

**Block 5** — [IF] Returned Equipment Cancellation — EDK0301C040 (L226)

> If a returned equipment number (`hmpin_kiki_no`) is set (not empty), calls `execEDK0301C040` to cancel the returned equipment records. This is necessary when equipment was returned as part of a service cancellation and needs formal cancellation in the returned equipment management table.

| # | Type | Code |
|---|------|------|
| 1 | SET | `hmpin_kiki_no = getNullToStr((String)ccMsg.get("hmpin_kiki_no"))` // Null-safe retrieval |
| 2 | IF | `!"".equals(hmpin_kiki_no)` [L227] // Returned equipment number is set |

**Block 5.1** — [IF body] Cancel returned equipment (L230)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execEDK0301C040(handle, scCall, param, dataMapKey, temporaryData)` // Invoked EDK0301C040 CBS for returned equipment cancellation |

**Block 6** — [EXEC] Post-recovery data re-query (L234)

> After recovery, re-fetches the equipment provision service agreement to get the updated state. The result is stored in both the message map (under key `kktk_svc_kei_data_kaihuku`) and the temporary data workspace (under `TEMPLATE_ID_EKK0341A010_AF` = "EKK0341A010_AF").

| # | Type | Code |
|---|------|------|
| 1 | SET | `ekk0341a010cbsMsg = execEKK0341A010(handle, scCall, param, dataMapKey, temporaryData, (String)ccMsg.get("kktk_svc_kei_no"))` // Re-fetches post-recovery |
| 2 | SET | `ccMsg.put("kktk_svc_kei_data_kaihuku", ekk0341a010cbsMsg)` // Stores under "kktk_svc_kei_data_kaihuku" key |
| 3 | SET | `temporaryData.put(TEMPLATE_ID_EKK0341A010_AF, ekk0341a010cbsMsg)` [-> "EKK0341A010_AF"] // Stores in temporary workspace |

**Block 7** — [IF] func_code check — Check & Register processing (L244)

> If `func_code` equals "1" (Check & Register), this block performs listing data setup and potentially creates Service Order Data (SOD) for router connection information. This is the main post-recovery processing branch.

| # | Type | Code |
|---|------|------|
| 1 | IF | `FUNC_CODE_1.equals(ccMsg.get("func_code"))` [L244] [-> FUNC_CODE_1 = "1"] |

**Block 7.1** — [IF body] Set equipment listing data (L247)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setKikiIchiranIkkatsuList(handle, scCall, param, dataMapKey, temporaryData, ekk0341a010cbsMsg)` // Sets equipment listing for bulk processing |

**Block 7.2** — [IF] Router recovery flag check — ANK-2979-00-00 (L253)

> Per the ANK-2979-00-00 fix (v33.00.00), if the router recovery target flag (`rtr_khk_um`) equals "1" (Recovery), SOD creation processing is **skipped**. This handles the case where the target is a multi-function router after a cancel-recover scenario — the SOD should not be re-created in this case.

| # | Type | Code |
|---|------|------|
| 1 | SET | `rtrKaifurkuUmu = getNullToStr((String)ccMsg.get("rtr_khk_um"))` // Null-safe retrieval |
| 2 | IF | `!KIKI_KAIFUKU_TAISHO_KAIFUKU.equals(rtrKaifurkuUmu)` [L255] [-> KIKI_KAIFUKU_TAISHO_KAIFUKU = "1"] // Skips SOD if recovery target is Recovery |

**Block 7.2.1** — [IF body] Router service type check and SOD creation (L259)

> This block (added in v10.00.00) handles router-specific post-recovery processing. It retrieves the equipment provision service contract number and service type, validates that it is a router-type (`TAKNKIKI_SBT_CD_F0` = "F0"), fetches service contract details, and conditionally creates SOD if order conditions are met.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiNo = (String)ccMsg.get("kktk_svc_kei_no")` // Equipment provision service contract number |
| 2 | SET | `taknkikiSbtCd = getNullToStr((String)ekk0341a010cbsMsg.getString(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))` // Home equipment type code |
| 3 | SET | `svcKeiNo = getNullToStr((String)ekk0341a010cbsMsg.getString(EKK0341A010CBSMsg1List.SVC_KEI_NO))` // Service contract number |
| 4 | IF | `TAKNKIKI_SBT_CD_F0.equals(taknkikiSbtCd) && !"".equals(svcKeiNo)` [L269] [-> TAKNKIKI_SBT_CD_F0 = "F0"] // Router type and service contract set |

**Block 7.2.1.1** — [IF body] Fetch service contract details (L272)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiUcwkList = getSvcKeiUcwkData(handle, scCall, param, dataMapKey, svcKeiNo)` // Fetches service contract detail lines |
| 2 | IF | `svcKeiUcwkList != null && svcKeiUcwkList.size() > 0` [L274] // Detail results exist |

**Block 7.2.1.1.1** — [IF body] Store first detail item (L276)

| # | Type | Code |
|---|------|------|
| 1 | SET | `temporaryData.put(TEMPLATE_ID_EKK0161B004, svcKeiUcwkList.get(0))` [-> "EKK0161B004"] // Stores first detail record |

**Block 7.2.1.1.2** — [IF] Order creation conditions check (L279)

> Checks if the order creation conditions are met for the router connection information. The conditions validated by `isOdrHakkoJoken`:
> - Order content code: `ORDER_SBT_CD_1` = "1" (Network)
> - Request type: `YOKYU_SBT_CD_02` = "02" (New)
> - Service order code: `SVC_ORDER_CD_0A` = "0A" (Router connection information)

| # | Type | Code |
|---|------|------|
| 1 | IF | `isOdrHakkoJoken(handle, scCall, param, fixedText, kktkSvcKeiNo, ORDER_SBT_CD_1, YOKYU_SBT_CD_02, SVC_ORDER_CD_0A)` [L279] |
|   |   | [-> ORDER_SBT_CD_1 = "1" (Network), YOKYU_SBT_CD_02 = "02" (New), SVC_ORDER_CD_0A = "0A" (Router connection info)] |

**Block 7.2.1.1.2.1** — [IF body] Create SOD (L282)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execSodHakkoCreate(handle, scCall, param, dataMapKey, temporaryData)` // Creates SOD and order information work records |

**Block 8** — [EXEC] Progress registration (L295)

> After all recovery processing is complete, registers the progress state as "3D00" (equipment recovery completed) in the progress status table. This signals to the workflow engine that this stage is finished and the process can advance.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `execShinchokuToroku(handle, scCall, param, dataMapKey, temporaryData, PRG_STAT_3D00)` [-> PRG_STAT_3D00 = "3D00"] |

**Block 9** — [RETURN] (L297)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` // Returns the modified parameter object with all recovered data stored |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svc_kei_no` | Field | Service contract number — unique identifier for a service contract in the eo system |
| `svc_kei_data` | Field | Service contract agreement data — full consent/agreement record for a service contract |
| `kkk_svc_kei_no` | Field | Equipment provision service contract number — ID for a service contract that includes equipment (router, modem) provisions |
| `kkk_svc_kei_data` | Field | Equipment provision service contract agreement data — consent record for equipment-provisioned service contracts |
| `hmpin_kiki_no` | Field | Returned equipment number — identifier for equipment that was returned/cancelled and needs formal cancellation processing |
| `rtr_khk_um` | Field | Router recovery processing count — indicates how many times a router has undergone recovery processing; "1" means it is a recovery target |
| `func_code` | Field | Function code — determines processing mode; "1" = Check & Register (full processing), "2" = Fetch/Consultation only |
| `unyo_ymd` | Field | Operation date — the date used as the effective date for service contract queries |
| `kktk` | Abbreviation | 設備提供 (Equipment Provision) — prefix for equipment-related service contract entities |
| `taknkiki_sbt_cd` | Field | Home equipment type code — classifies the type of equipment; "F0" = Router |
| `svc_kei_ucwk_no` | Field | Service detail work number — internal tracking ID for service contract line items |
| `odr_naiyo_cd` | Field | Order content code — classifies order type for service order data creation |
| SVC_KEI_UCWK_STAT_CANCEL | Field | Service contract detail status — "920" indicates cancellation status |
| EKK0081A010 | CBS | Service Contract Agreement — CBS that retrieves service contract consent/agreement data |
| EKK0341A010 | CBS | Equipment Provision Service Agreement — CBS that retrieves equipment-provisioned service contract data |
| EKK0341C380 | CBS | Equipment Provision Service Recovery — CBS that executes the core recovery process for equipment-provisioned services |
| EDK0301C040 | CBS | Returned Equipment Cancellation — CBS that formally cancels returned equipment records |
| EKK0161B004 | CBS | Service Contract Details List — CBS that retrieves service contract detail line items |
| EKK1081B001 | CBS | Order Conditions List — CBS that retrieves order creation condition definitions |
| EKK1551D010 | CBS | Order Information Work Creation — CBS that creates order information work records |
| EKK1091D010 | CBS | Progress Registration — CBS that registers progress status in the workflow tracking table |
| SOD | Acronym | Service Order Data — the order data entity in the telecom order fulfillment system; triggers downstream provisioning workflows |
| SOD HAKKO | Business term | SOD Issuance (SOD発行) — the process of creating/issuing a Service Order Data to trigger service provisioning |
| JOKEN | Abbreviation | 条件 (Conditions) — refers to order creation conditions that must be met before SOD issuance |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service; a primary equipment-provisioned service type |
| Router | Business term | Wireless LAN router — networking equipment provided as part of service contracts; requires connection information registration |
| TAKNKIKI_SBT_CD_F0 | Constant | Home equipment type code "F0" — represents a Router-type equipment |
| PRG_STAT_3D00 | Constant | Progress status "3D00" — indicates "Equipment Recovery Completed" in the workflow progress tracking |
| ORDER_SBT_CD_1 | Constant | Order subtype code "1" — represents "Network" service type for order creation |
| YOKYU_SBT_CD_02 | Constant | Request type code "02" — represents "New" order (as opposed to "Change" which is "04") |
| SVC_ORDER_CD_0A | Constant | Service order code "0A" — represents "Router connection information" order type |
| KIKI_KAIFUKU_TAISHO_KAIFUKU | Constant | Recovery target code "1" — indicates the router recovery target is a Recovery case; SOD creation is skipped in this case |
| KK_T_SVC_KEI | Entity | Service Contract table — main table storing service contract records |
| KK_T_KKTK_SVC_KEI | Entity | Equipment Provision Service Contract table — stores equipment-provisioned service contract records |
| KK_T_SVC_KEI_UCWK | Entity | Service Contract Details table — stores detail line items for service contracts |
| KK_T_ODR_HAKKO | Entity | Service Order (Issuance) table — stores Service Order Data records |
| KK_T_ODR_HAKKO_JOKEN | Entity | Order Creation Conditions table — stores conditions that must be met for order creation |
| KK_T_HMPIN_KIKI | Entity | Returned Equipment table — stores returned/cancelled equipment records |
| KK_T_PRG_STAT | Entity | Progress Status table — stores workflow progress tracking records |
| ServiceComponentRequestInvoker | Technical | BPM framework class that acts as a request context/invoker for CBS (Common Business Service) calls |
| CAANMsg | Technical | Fujitsu BPM message object — the common message container returned by CBS calls, supporting typed getters like `getString()` |
| ccMsg | Technical | Local variable for the working message map (HashMap) extracted from param; central data structure for the method |
| temporaryData | Technical | Local HashMap used as a workspace to pass CBS results between called methods within this component |
| eko Customer Base (eo基幹) | Business term | K-Opticom's core customer management system; the business domain for all entities and CBSs in this method |
