---
title: "Detailed Design — JKKKikiIchiranCancelCC.execEKK1091D010()"
type: method
---

---

# Business Logic — JKKKikiIchiranCancelCC.execEKK1091D010() [114 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKKikiIchiranCancelCC` |
| Layer | CC / Common Component |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKKikiIchiranCancelCC.execEKK1091D010()

This method performs **progress registration** (進捗登録, *shinchoku touroku*) for a contract cancellation workflow. Its purpose is to record the current progress state of a service cancellation operation into the system via a CBS (Common Business Service) call. The method acts as a **progress status recorder** within the broader key creation / cancellation screen flow (`JKKKikiIchiranCancel`).

The method first retrieves the current progress state (`prg_stat`) and associated special remarks text (`prg_tkjk`). It then performs a **guard check** — if no progress state is set, or if the `isExecShinchokuToroku` rule determines that progress registration should be skipped for the given context, the method returns early without performing any CBS call. This ensures that progress registration only occurs when the system is in a state where a progress record is expected to be output.

When progress registration proceeds, the method determines how to split the special remarks text based on the **transfer division code** (`ido_div`). If the transfer division equals `CD00576_ONU_PLAN_KKN` ("00093" — ONU Plan Cancellation), the remarks go to **progress special remarks 2** (`prg_tkjk2`); for all other transfer divisions, they go to **progress special remarks 1** (`prg_tkjk1`). This split supports the system's requirement to distinguish remarks for different cancellation scenarios.

Finally, the method builds a CBS input array (`EKK1091D010CBSMsg`) containing the service contract details, progress state, and remarks, then conditionally populates a list of transfer reason entries (`EKK1091D010CBSMsg1List`) from the output data of a prior screen operation. These inputs are passed to the `EKK1091D010CBS` service component via `callSCArray`. The method concludes by calling `setShinchokuTkjk` to persist the progress registration state back to the parameter object.

The method implements a **guard-clause + builder + delegation** design pattern: it guards against irrelevant progress states, builds a CBS input structure, delegates the actual CBS invocation to `callSCArray`, and updates UI state on completion.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execEKK1091D010(params)"])
    START --> GET_CC_MSG["Get ccMsg from param.getData(dataMapKey)"]
    GET_CC_MSG --> GET_PRG_STAT["Get prg_stat = getPrgStat(param, dataMapKey, temporaryData)"]
    GET_PRG_STAT --> CHECK_PRG_STAT{prg_stat is empty?}
    CHECK_PRG_STAT -->|Yes| EARLY_RETURN[return]
    CHECK_PRG_STAT -->|No| GET_PRG_TKJK["Get prg_tkjk = setHosokuInfo(param, dataMapKey, temporaryData)"]
    GET_PRG_TKJK --> CHECK_EXEC_SHIN{isExecShinchokuToroku valid?}
    CHECK_EXEC_SHIN -->|false| EARLY_RETURN2[return]
    CHECK_EXEC_SHIN -->|true| INIT_PRG[Initialize prgTkjk1 = '' prgTkjk2 = '']
    INIT_PRG --> CHECK_IDO_DIV{ido_div == CD00576_ONU_PLAN_KKN?}
    CHECK_IDO_DIV -->|Yes| ASSIGN_PRG2[prgTkjk2 = prg_tkjk]
    CHECK_IDO_DIV -->|No| ASSIGN_PRG1[prgTkjk1 = prg_tkjk]
    ASSIGN_PRG2 --> GET_TEMPLATE["Get ekk0081a010cbsMsg from temporaryData"]
    ASSIGN_PRG1 --> GET_TEMPLATE
    GET_TEMPLATE --> BUILD_INPUT["Build ekk1091d010IN array with CBS message fields"]
    BUILD_INPUT --> CHECK_OUTLIST{outList != null?}
    CHECK_OUTLIST -->|Yes| BUILD_INLIST["Loop outList, build inList with ido_rsn_cd from each entry"]
    CHECK_OUTLIST -->|No| INLIST_EMPTY[inList remains empty]
    BUILD_INLIST --> CALL_SC["callSCArray with ekk1091d010IN and inList"]
    INLIST_EMPTY --> CALL_SC
    CALL_SC --> SET_SHINCHOKU["setShinchokuTkjk(param, prg_stat, prg_tkjk)"]
    SET_SHINCHOKU --> END_NODE([End])
    EARLY_RETURN --> END_NODE
    EARLY_RETURN2 --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database / session handle used for executing the CBS service component call. Provides the runtime context (connection, transaction scope) required by `callSCArray`. |
| 2 | `scCall` | `ServiceComponentRequestInvoker` | Service Component invocation dispatcher. Used by `callSCArray` to route the CBS call (`EKK1091D010CBS`) to the correct backend service implementation. |
| 3 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying UI data between screens. Read from it: progress state (`getPrgStat`), special remarks text (`setHosokuInfo`), and updatable timestamp (`getIdoUpDtm`). Written to: CBS input data array and `setShinchokuTkjk` result. |
| 4 | `dataMapKey` | `String` | Key used to retrieve the `ccMsg` map from `param`. This key identifies the data block containing service contract fields such as `func_code`, `svc_kei_no`, and `ido_div`. |
| 5 | `temporaryData` | `HashMap<String, Object>` | Temporary storage shared across method calls within a screen session. Read: `TEMPLATE_ID_EKK0081A010` entry containing the EKK0081A010 CBS message object (service contract template data). |

**Instance fields read:**
| Field | Type | Business Description |
|-------|------|---------------------|
| `TEMPLATE_ID_EKK0081A010` | `String` (static) | Template ID constant (`"EKK0081A010"`) used to look up the service contract data in `temporaryData`. |

**Constants resolved:**
| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `CD00576_ONU_PLAN_KKN` | `"00093"` | ONU Plan Cancellation transfer division code — determines that remarks go to PRG_TKJK_2 |
| `TEMPLATE_ID_EKK1091D010` | `"EKK1091D010"` | Template ID for the progress registration CBS message |
| `TEMPLATE_ID_EKK0081A010` | `"EKK0081A010"` | Template ID for the service contract CBS message used as context |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `getPrgStat` | (internal) | - | Retrieves current progress state string from param / temporaryData |
| - | `setHosokuInfo` | (internal) | - | Retrieves special remarks text; may update param state |
| - | `isExecShinchokuToroku` | (internal) | - | Rule check — determines whether progress registration should execute |
| R | `getMskmDtlNo` | (internal) | - | Retrieves service detail number from param and template message |
| R | `getIdoUpDtm` | (internal) | - | Retrieves the last update timestamp for transfer division |
| C | `callSCArray` | `EKK1091D010CBS` | EKK1091D010CBS (Progress Registration) | Invokes CBS `EKK1091D010` (Progress Registration) — registers the current progress state, special remarks, and transfer reasons into the system via CBS service component. |
| - | `setShinchokuTkjk` | (internal) | - | Persists / updates progress registration remarks in param after CBS completion |

### CBS Detail:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `EKK1091D010CBS` (via `callSCArray`) | `EKK1091D010CBS` | Progress Registration table (EKK1091D010CBS) | Registers progress state for contract cancellation. Input includes template ID, function code, service detail number, transfer division code, updatable timestamp, progress state, progress memo, split special remarks (PRG_TKJK_1 / PRG_TKJK_2), and optional transfer reason code list. |

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 3 methods.
Terminal operations from this method: `setShinchokuTkjk` [-], `callSCArray` [C], `getIdoUpDtm` [R], `getMskmDtlNo` [R], `isExecShinchokuToroku` [-], `setHosokuInfo` [-], `getPrgStat` [R], `getData` [R]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `executeCancel()` (JKKKikiIchiranCancelCC) | `executeCancel()` → `execEKK1091D010` | `callSCArray [C] EKK1091D010CBS` |
| 2 | `executeDsl()` (JKKKikiIchiranCancelCC) | `executeDsl()` → `execEKK1091D010` | `callSCArray [C] EKK1091D010CBS` |
| 3 | `updKktkSvcCancel()` (JKKKikiIchiranCancelCC) | `updKktkSvcCancel()` → `execEKK1091D010` | `callSCArray [C] EKK1091D010CBS` |

**How this method fits in the system:**

The `JKKKikiIchiranCancelCC` class is a **common component controller** for the contract key creation / cancellation screen. This method is invoked by three internal control methods (`executeCancel`, `executeDsl`, `updKktkSvcCancel`) that handle different cancellation scenarios. Each caller decides when progress registration is appropriate — this method provides the registration capability itself. The terminal CBS (`EKK1091D010CBS`) writes progress state records that can be queried later for workflow tracking and audit purposes.

## 6. Per-Branch Detail Blocks

**Block 1** — [EXEC / SET] `ccMsg` retrieval (L3452)

Retrieves the message map from the request parameter using the data map key. This map contains service contract context data (function code, service detail number, transfer division code, etc.).

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | EXEC | `ccMsg = param.getData(dataMapKey)` | Get the ccMsg map containing service contract context data |
| 2 | SET | `ccMsg = (HashMap<String, Object>) ...` | Cast to typed HashMap for field access |

**Block 2** — [IF] Progress state check — early return if empty (L3455-L3462)

Retrieves the current progress state and returns early if no progress state is set. This implements the v5.01.06 addition that prevents progress registration when the system has not yet entered a tracked state.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `prg_stat = getPrgStat(param, dataMapKey, temporaryData)` | Get current progress state code |
| 2 | IF | `"".equals(prg_stat)` | Check if progress state is empty (not set) |
| 3 | EXEC | `return` | [v5.01.06] Early return — no progress state set, terminate processing |

**Block 3** — [SET] Get special remarks text (L3466)

Retrieves the special remarks text string that will be split and assigned to PRG_TKJK_1 or PRG_TKJK_2 based on the transfer division code.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `prg_tkjk = setHosokuInfo(param, dataMapKey, temporaryData)` | Get special remarks text for progress registration |

**Block 4** — [IF] Execution rule check — early return if not applicable (L3470-L3472)

Determines whether progress registration should actually be performed based on the progress state and remarks text. If the rule check returns false, the method returns without calling the CBS.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `!isExecShinchokuToroku(param, prg_stat, prg_tkjk)` | Check if progress registration is applicable |
| 2 | EXEC | `return` | Rule check says no — skip CBS registration |

**Block 5** — [SET] Initialize progress remarks split variables (L3476-L3478)

Initializes the two progress remarks fields to empty strings. These will be conditionally populated based on the transfer division code.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `prgTkjk1 = ""` | Progress special remarks 1 — for non-ONU Plan cancellation |
| 2 | SET | `prgTkjk2 = ""` | Progress special remarks 2 — for ONU Plan cancellation |

**Block 6** — [IF] Transfer division check — remarks routing (L3481-L3494)

Routes the special remarks text to the correct progress remarks field based on the transfer division code. This implements the ANK-4431 change that splits remarks by transfer type.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | IF | `ido_div == CD00576_ONU_PLAN_KKN ("00093")` | ONU Plan Cancellation transfer division |
| 2.1 | SET | `prgTkjk2 = prg_tkjk` | Assign remarks to PRG_TKJK_2 (ONU Plan scenario) |
| 3 | ELSE | (other transfer divisions) | Non-ONU Plan cancellation |
| 3.1 | SET | `prgTkjk1 = prg_tkjk` | Assign remarks to PRG_TKJK_1 (standard scenario) |

**Block 7** — [SET] Retrieve service contract template (L3498)

Retrieves the EKK0081A010 CBS message from temporary data. This message contains the service contract context needed to resolve the service detail number.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `ekk0081a010cbsMsg = (CAANMsg)temporaryData.get(TEMPLATE_ID_EKK0081A010)` | Get service contract template from temporary data |

**Block 8** — [SET] Build CBS input array — `ekk1091d010IN` (L500-L551)

Builds the main CBS input array (`Object[][]`) for the `EKK1091D010CBS` progress registration service component. Each row is a key-value pair mapping a CBS message field constant to its value.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `EKK1091D010CBSMsg.TEMPLATEID → "EKK1091D010"` | CBS template ID |
| 2 | SET | `EKK1091D010CBSMsg.FUNC_CODE → ccMsg["func_code"]` | Function code from screen context |
| 3 | SET | `EKK1091D010CBSMsg.MSKM_DTL_NO → getMskmDtlNo(...)` | Service detail number (v9.00.01: now takes ccMsg as 3rd arg) |
| 4 | SET | `EKK1091D010CBSMsg.SEIKY_KEI_NO → ""` | Payment detail number (empty) |
| 5 | SET | `EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA → ""` | Payment method bank account number (empty) |
| 6 | SET | `EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD → ""` | Payment method credit card number (empty) |
| 7 | SET | `EKK1091D010CBSMsg.SVC_KEI_NO → ccMsg["svc_kei_no"]` | Service detail number from screen |
| 8 | SET | `EKK1091D010CBSMsg.SVC_KEI_UCWK_NO → ""` | Service detail change work number (empty) |
| 9 | SET | `EKK1091D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO → ""` | Service detail improvement work number (empty) |
| 10 | SET | `EKK1091D010CBSMsg.KKTK_SVC_KEI_NO → ""` | KKTK service detail number (empty) |
| 11 | SET | `EKK1091D010CBSMsg.OP_SVC_KEI_NO → ""` | Operator service detail number (empty) |
| 12 | SET | `EKK1091D010CBSMsg.SEIOPSVC_KEI_NO → ""` | Seiya operator service detail number (empty) |
| 13 | SET | `EKK1091D010CBSMsg.SBOP_SVC_KEI_NO → ""` | SBOP service detail number (empty) |
| 14 | SET | `EKK1091D010CBSMsg.WRIB_SVC_KEI_NO → ""` | WRIB service detail number (empty) |
| 15 | SET | `EKK1091D010CBSMsg.IDO_DIV → ccMsg["ido_div"]` | Transfer division code from screen |
| 16 | SET | `EKK1091D010CBSMsg.IDO_DTM → getIdoUpDtm(param)` | Updatable timestamp (v4.05.00: uses getIdoUpDtm instead of system time) |
| 17 | SET | `EKK1091D010CBSMsg.PRG_STAT → prg_stat` | Progress state (v5.01.06: uses resolved variable) |
| 18 | SET | `EKK1091D010CBSMsg.PRG_MEMO → ""` | Progress memo (always empty) |
| 19 | SET | `EKK1091D010CBSMsg.PRG_TKJK_1 → prgTkjk1` | Progress special remarks 1 (ANK-4431: split variable) |
| 20 | SET | `EKK1091D010CBSMsg.PRG_TKJK_2 → prgTkjk2` | Progress special remarks 2 (ANK-4431: split variable) |

**Block 9** — [IF] Build transfer reason list from prior output (L554-L571)

Conditionally builds a list of transfer reason entries from the output data of a prior screen operation. Each entry in the output list contains a transfer reason code (`ido_rsn_cd`) which is copied to the CBS input list with an empty memo field.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outList = ccMsg.get("EKK1091D010CBSMsg1List")` | Get prior output list of transfer reason entries |
| 2 | IF | `outList != null` | Prior screen produced transfer reason data |
| 2.1 | SET | `inList = new ArrayList<>()` | Initialize new input list |
| 2.2 | FOR | `j = 0; j < outList.size(); j++` | Iterate over each prior output entry |
| 2.2.1 | SET | `childMap = (HashMap)outList.get(j)` | Get current entry from prior output |
| 2.2.2 | SET | `inMap = new HashMap<>()` | Create new input map for this entry |
| 2.2.3 | SET | `inMap.put(IDO_RSN_CD, childMap.get("ido_rsn_cd"))` | Copy transfer reason code from prior output |
| 2.2.4 | SET | `inMap.put(IDO_RSN_MEMO, "")` | Set transfer reason memo to empty |
| 2.2.5 | SET | `inList.add(inMap)` | Add to new input list |
| 3 | ELSE | `outList == null` | No prior data — inList remains default (single-element array) |

**Block 10** — [CALL] Execute CBS service component (L574)

Invokes the `EKK1091D010CBS` progress registration service component with the prepared input data. This is the primary side-effect of the method — it actually registers the progress state in the system.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | CALL | `callSCArray(handle, scCall, param, dataMapKey, ekk1091d010IN, "EKK1091D010CBSMsg1List", inList)` | Execute CBS progress registration with input data and transfer reason list |

**Block 11** — [EXEC] Update progress registration state (L578)

After CBS completion, updates the progress registration remarks state in the parameter object. This is the v5.01.06 addition that finalizes the progress state.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | EXEC | `setShinchokuTkjk(param, prg_stat, prg_tkjk)` | Persist progress registration remarks to param |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `prg_stat` | Field | Progress state — current status code indicating the stage of a cancellation workflow |
| `prg_tkjk` | Field | Progress special remarks text — free-text notes entered during the cancellation process |
| `prg_tkjk_1` | Field | Progress special remarks 1 — remarks field for standard (non-ONU Plan) cancellation scenarios |
| `prg_tkjk_2` | Field | Progress special remarks 2 — remarks field specifically for ONU Plan cancellation scenarios |
| `prg_memo` | Field | Progress memo — additional structured notes (currently always empty in this method) |
| `ido_div` | Field | Transfer division code — classifies the type of service transfer/cancellation (e.g., "00093" = ONU Plan Cancellation) |
| `ido_rsn_cd` | Field | Transfer reason code — the specific reason for the service transfer/cancellation |
| `ido_rsn_memo` | Field | Transfer reason memo — supplementary notes about the transfer reason |
| `ido_dtm` | Field | Transfer date/time — timestamp of the last transfer operation update |
| `svc_kei_no` | Field | Service detail number — internal identifier for a service contract line item |
| `mskm_dtl_no` | Field | Service detail number — retrieved via helper method, used to identify service contract details |
| `seiky_kei_no` | Field | Payment detail number — billing-related service identifier |
| `seiky_way_no_koza` | Field | Payment method bank account number |
| `seiky_way_no_crecard` | Field | Payment method credit card number |
| `cd00576_onu_plan_kkn` | Constant | ONU Plan Cancellation transfer division code with value `"00093"` |
| `EKK1091D010` | Screen/CBS | Progress Registration screen and service component — records progress state for cancellations |
| `EKK0081A010` | CBS | Service Contract inquiry CBS — retrieves service contract template data |
| `EKK1091D010CBS` | CBS Code | Progress Registration service component code |
| `EKK1091D010CBSMsg` | Message | Input message structure for the progress registration CBS |
| `EKK1091D010CBSMsg1List` | Message | List message structure for transfer reason entries in progress registration |
| SOD | Acronym | Service Order Data — the domain entity for telecom service orders |
| ONU | Acronym | Optical Network Unit — fiber optic networking equipment; ONU Plan refers to a specific fiber service plan |
| CBS | Acronym | Common Business Service — enterprise service component framework for data access and business logic |
| SC | Acronym | Service Component — a deployable unit in the Fujitsu Futurity framework |
| CC | Acronym | Common Component — shared business logic component class |
| Func Code | Field | Function code — identifies the screen/function context of the operation |
| Template ID | Field | Identifier for CBS message template used in serialization/deserialization |
| 進捗登録 (shinchoku touroku) | Japanese term | Progress registration — the act of recording the current workflow state |
| 進捗ステータス (shinchoku suteetasu) | Japanese term | Progress status — the current state indicator of a workflow |
| 特記事項文字列 (tokki jikou moji retsu) | Japanese term | Special remarks text string — free-text notes for progress tracking |
| 異動区分 (idou kubun) | Japanese term | Transfer division — classification of service transfer type |
| 異動理由 (idou riyu) | Japanese term | Transfer reason — the reason code and memo for a service transfer |
| 設定 (settei) | Japanese term | Setting — configuration of progress state |
| 処理終了 (shori shuuryou) | Japanese term | Processing complete — method termination point |

---
