---
title: "Business Logic — JKKBumpMdsCC.callEKK2101B001SC() [54 LOC]"
description: "Detailed Design for callEKK2101B001SC — Address Change Detail List Inquiry 2 SIF wrapper method"
created: 2026-06-25
---

# Business Logic — JKKBumpMdsCC.callEKK2101B001SC() [54 LOC]

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

## 1. Role

### JKKBumpMdsCC.callEKK2101B001SC()

This method is a **service invocation wrapper** that calls the SIF (Service Interface) service component **EKK2101B001** — the "Address Change Detail List Inquiry 2" (住所変更中住所変更明細一覧照会２). Its primary business purpose is to **retrieve a list of address change detail records** associated with a given service contract line item during the address change process. It is part of Fujitsu's telecom order fulfillment platform, which handles service provisioning, address changes, and contract modifications for broadband and FTTH services.

The method follows the **Service Component Request Invoker (SCRI) pattern**, a standard template used across the codebase for invoking Service Components (SC). It prepares the inbound message, builds the service IF request payload, delegates to `ServiceComponentRequestInvoker` for the actual remote call, then performs post-processing: error mapping, error checking, status extraction, and result extraction into the output `resultHash`. The method is tightly coupled to the EKK2101B001 service interface and is specifically used in the context of address change operations.

This is a **private shared utility** within the `JKKBumpMdsCC` class. It is called by the caller's own `callEKK2101B001SC` (a different overloaded version in `JKKAdchgHakkoSODCC`) and related address-change processing screens. The method itself does not contain any business logic branching — its role is purely **orchestration**: assemble, invoke, extract, return.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["callEKK2101B001SC"])
    
    START --> STEP1["Step 1: Setup service IF common info"]
    STEP1 --> EDIT_IN["editInMsgCmn(param)"]
    
    EDIT_IN --> STEP2["Step 2: Create SIF request"]
    STEP2 --> TEMPLATE["new CAANMsg(EKK2101B001CBSMsg)"]
    TEMPLATE --> MAPPING_IN["mappingEKK2101B001InMsg(template, inHash, svcKeiUcwkNo, adchgno)"]
    MAPPING_IN --> EDIT_BASIC["editBasicCmn(param, template)"]
    
    EDIT_BASIC --> STEP3["Step 3: Set request data"]
    STEP3 --> TEMPLATE_LIST["sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template})"]
    TEMPLATE_LIST --> SC_CALL["new ServiceComponentRequestInvoker()"]
    
    SC_CALL --> STEP4["Step 4: Invoke SIF service"]
    STEP4 --> SC_RUN["scCall.run(sIFRequest, handle)"]
    
    SC_RUN --> STEP5["Step 5: Post-processing"]
    STEP5 --> EDIT_RESULT["editResultRP(sIFResult, param)"]
    EDIT_RESULT --> ERR_CHK["errChk(sIFResult)"]
    
    ERR_CHK --> GET_MSGS["resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY)"]
    GET_MSGS --> GET_STATUS["status = template.getInt(JCMConstants.STATUS_INT_KEY)"]
    
    GET_STATUS --> CHECK_STATUS{status == 0?}
    CHECK_STATUS -->|Yes: Success| PUT_RESULT["resultHash.put(TEMPLATE_ID_EKK2101B001, mappingEKK2101B001SCOutMsg(resultMsgs))"]
    CHECK_STATUS -->|No: Error| RETURN_STATUS["Return status"]
    PUT_RESULT --> RETURN_STATUS
    
    RETURN_STATUS --> END(["Return int status"])
```

**Processing Flow:**

1. **Service IF Common Info Setup** — Initializes the inbound service IF request message by calling `editInMsgCmn(param)`. This applies standard message metadata (session info, timestamps, etc.) common across all SIF calls.

2. **SIF Request Construction** — Creates a `CAANMsg` template instance bound to the `EKK2101B001CBSMsg` class schema. Then maps the input parameters (`inHash`, `svcKeiUcwkNo`, `adchgno`) into the template via `mappingEKK2101B001InMsg`. The template is further enriched with basic common settings via `editBasicCmn`.

3. **Request Payload Assembly** — Places the template array into the `sIFRequest` under the `JCMConstants.TEMPLATE_LIST_KEY` key and creates the `ServiceComponentRequestInvoker` instance.

4. **SIF Service Invocation** — Delegates the actual remote call to `scCall.run(sIFRequest, handle)`, which routes to the backend service component EKK2101B001.

5. **Post-Processing** — Performs error result mapping (`editResultRP`), checks for errors (`errChk`), extracts the result messages array, and reads the status code from the template. If status is 0 (success), the output data is placed into `resultHash` under key `TEMPLATE_ID_EKK2101B001` ("EKK2101B001"). Finally returns the status code.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying the request context and data for the SIF call. It provides read/write access to request-level parameters including metadata such as session ID, user ID, and operation type. |
| 2 | `handle` | `SessionHandle` | The session handle used to communicate with the backend service component runtime. It maintains transaction context, database connection references, and service invocation routing information. |
| 3 | `inHash` | `HashMap<String, Object>` | Input condition hash containing the query parameters for the address change detail inquiry. Key fields include service contract line work number and address change number. |
| 4 | `resultHash` | `HashMap<String, Object>` | Output result hash where the query results are stored under the key `TEMPLATE_ID_EKK2101B001` ("EKK2101B001") after a successful call. The value is a `List<HashMap<String, Object>>` representing address change detail records. |
| 5 | `svcKeiUcwkNo` | `String` | Service contract line work number — a unique internal identifier for a service contract line item (service type/work item). Used as the primary lookup key for the address change detail inquiry. Represents a specific work item within a service contract. |
| 6 | `adchgno` | `String` | Address change number — identifies the specific address change transaction/request. Used to filter the detail inquiry to a particular address change event. |

**External/Instance Fields Read:** None. This method is stateless — it creates all local objects and does not read any instance fields of `JKKBumpMdsCC`.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKBumpMdsCC.editInMsgCmn` | - | - | Calls `editInMsgCmn` — Sets up inbound service IF common message fields (session metadata, timestamps) |
| - | `JKKBumpMdsCC.mappingEKK2101B001InMsg` | - | - | Calls `mappingEKK2101B001InMsg` — Maps input parameters into the CAANMsg template for EKK2101B001CBSMsg |
| - | `JKKBumpMdsCC.editBasicCmn` | - | - | Calls `editBasicCmn` — Edits basic common message settings on the template |
| R | `ServiceComponentRequestInvoker.run` | EKK2101B001SC | KK_T_ADDR_CHG_DTL (inferred) | Calls `run` — Invokes the EKK2101B001 SIF service to query address change detail list |
| U | `JKKBumpMdsCC.editResultRP` | - | - | Calls `editResultRP` — Maps error results from the SIF response back to the request parameters |
| - | `JKKBumpMdsCC.errChk` | - | - | Calls `errChk` — Checks for errors in the SIF result and throws if error status detected |
| - | `JKKBumpMdsCC.mappingEKK2101B001SCOutMsg` | - | - | Calls `mappingEKK2101B001SCOutMsg` — Maps the CAANMsg result messages into a List<HashMap<String, Object>> output structure |

**Classification Rationale:**
- The primary operation is **Read (R)** — the EKK2101B001 service component performs an inquiry (照会) to retrieve address change detail records.
- `editInMsgCmn`, `editBasicCmn`, `editResultRP` are **Update (U)** in the sense they modify message objects in-place.
- `errChk` is a check/verification — classified as **non-CRUD** (no data modification).
- `mappingEKK2101B001InMsg` / `mappingEKK2101B001SCOutMsg` are data transformation steps — classified as **non-CRUD**.

## 5. Dependency Trace

The pre-computed caller search found calls to `callEKK2101B001SC` across 4 files. Note that the signature varies — `JKKAdchgHakkoSODCC` and `JKKChgTelnoJun` have a **different overloaded version** of `callEKK2101B001SC` with signature `(SessionHandle, IRequestParameterReadWrite, String adchgNo, String adchgDtlSbtCd)`. The `JKKBumpMdsCC` version has a 6-parameter signature. The only direct caller of `JKKBumpMdsCC.callEKK2101B001SC` (the 6-param version documented here) is found commented out in `JKKBumpMdsCC` itself at line 451.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | (internal) JKKBumpMdsCC | `JKKBumpMdsCC.<method>` -> `callEKK2101B001SC` (currently commented out, L451) | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 2 | JKKAdchgHakkoSODCC (different overload) | `JKKAdchgHakkoSODCC.process` -> `callEKK2101B001SC(handle, param, adchgNo, "01")` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 3 | JKKAdchgHakkoSODCC (different overload) | `JKKAdchgHakkoSODCC.process` -> `callEKK2101B001SC(handle, param, adchgNo, "03")` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 4 | JKKAdchgHakkoSODCC (different overload) | `JKKAdchgHakkoSODCC.process` -> `callEKK2101B001SC(handle, param, adchgNo, "09")` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 5 | JKKAdchgHakkoSODCC (different overload) | `JKKAdchgHakkoSODCC.process` -> `callEKK2101B001SC(handle, param, adchgNo, CD01241_SVC_KEI_UCWK_NO)` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 6 | JKKHakkoSODCC (different overload) | `JKKHakkoSODCC.process` -> `callEKK2101B001SC(param, handle, inMap, outMap)` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |
| 7 | JKKChgTelnoJun (different overload) | `JKKChgTelnoJun.process` -> `callEKK2101B001SC(handle, param, adchgNo, "03")` | `EKK2101B001SC [R] KK_T_ADDR_CHG_DTL` |

**Note:** The callers listed above are for **different overloaded versions** of `callEKK2101B001SC` in other classes (`JKKAdchgHakkoSODCC`, `JKKHakkoSODCC`, `JKKChgTelnoJun`). The `JKKBumpMdsCC` version documented here is the **6-parameter variant** and is currently **commented out** (L451). The functional intent is the same across all versions — they all invoke the EKK2101B001 SIF service to query address change detail records. The `adchgDtlSbtCd` parameter in the other overloads serves as a service type discriminator (values "01", "03", "09" correspond to different service detail subtypes).

## 6. Per-Branch Detail Blocks

### Block 1 — [VARIABLE DECLARATIONS] (L1279)

Local variable initialization section.

| # | Type | Code |
|---|------|------|
| 1 | SET | `sIFRequest = null` // SIF request payload |
| 2 | SET | `resultMsgs = null` // SIF response messages |
| 3 | SET | `template = null` // CAANMsg template for EKK2101B001CBSMsg |
| 4 | SET | `scCall = null` // ServiceComponentRequestInvoker instance |
| 5 | SET | `sIFResult = null` // SIF result map |
| 6 | SET | `status = 0` // Return status code |

### Block 2 — [VARIABLE ASSIGNMENT: service IF common info setup] (L1286)

// サービスIF共通の情報を設定 — Set service IF common info

| # | Type | Code |
|---|------|------|
| 1 | CALL | `sIFRequest = editInMsgCmn(param)` // Sets up common service IF message fields |

### Block 3 — [VARIABLE ASSIGNMENT: SIF request construction] (L1289-1291)

// EKK2101B001への呼び出しパラメータ設定 — Set call parameters to EKK2101B001

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = new CAANMsg(EKK2101B001CBSMsg.class.getName())` // Creates message template |
| 2 | CALL | `mappingEKK2101B001InMsg(template, inHash, svcKeiUcwkNo, adchgno)` // Maps input data into template |
| 3 | CALL | `editBasicCmn(param, template)` // Applies basic common settings to template |

### Block 4 — [VARIABLE ASSIGNMENT: request payload assembly] (L1294-1297)

// リクエスト用のクラスの設定 — Set request class; SC呼び出しクラスの生成 — Generate SC invocation class

| # | Type | Code |
|---|------|------|
| 1 | SET | `sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template})` // [-> TEMPLATE_LIST_KEY] Adds template to request |
| 2 | SET | `scCall = new ServiceComponentRequestInvoker()` // Creates SC invocation instance |

### Block 5 — [VARIABLE ASSIGNMENT: SIF invocation] (L1300)

// SIFの呼び出し — Invoke SIF

| # | Type | Code |
|---|------|------|
| 1 | SET | `sIFResult = scCall.run(sIFRequest, handle)` // [CALL] Executes the SIF service call |

### Block 6 — [VARIABLE ASSIGNMENT: error mapping processing] (L1303)

// エラーマッピング処理 — Error mapping processing

| # | Type | Code |
|---|------|------|
| 1 | CALL | `editResultRP(sIFResult, param)` // Maps SIF error results to request parameters |

### Block 7 — [VARIABLE ASSIGNMENT: error checking] (L1306)

// エラーチェック — Error check

| # | Type | Code |
|---|------|------|
| 1 | CALL | `errChk(sIFResult)` // Throws exception if SIF result indicates an error |

### Block 8 — [VARIABLE ASSIGNMENT: result extraction] (L1309-1312)

// 結果の取得 — Get results; ステータスコードの取得 — Get status code

| # | Type | Code |
|---|------|------|
| 1 | SET | `resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY)` // [-> TEMPLATE_LIST_KEY] Extracts result messages |
| 2 | SET | `status = template.getInt(JCMConstants.STATUS_INT_KEY)` // [-> STATUS_INT_KEY] Gets status from template |

### Block 9 — [IF] `(status == 0)` (L1315)

// ステータスが0以外はエラーとしている — Status other than 0 is treated as error

| # | Type | Code |
|---|------|------|
| 1 | SET | `resultHash.put(TEMPLATE_ID_EKK2101B001, mappingEKK2101B001SCOutMsg(resultMsgs))` // [-> TEMPLATE_ID_EKK2101B001="EKK2101B001"] Maps output and stores in resultHash |

**Block 9.1 — [ELSE: implicit, no branch body]**

When `status != 0`, the method skips the result mapping and proceeds directly to return.

### Block 10 — [RETURN] (L1318)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return status` // Returns 0 on success, non-zero error code on failure |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `svcKeiUcwkNo` | Field | Service contract line work number — unique internal identifier for a service contract line item; used as the primary key for address change detail lookup |
| `adchgno` | Field | Address change number — identifies a specific address change transaction; used to scope the inquiry to a particular address change event |
| `inHash` | Field | Input condition hash — carries query parameters (service contract details, address change info) for the inquiry request |
| `resultHash` | Field | Output result hash — stores the inquiry results under key "EKK2101B001"; value is a list of address change detail records |
| EKK2101B001 | SC Code | Address Change Detail List Inquiry 2 — a SIF service component that queries address change detail records during the address change process |
| EKK2101B001CBSMsg | Class | EKK2101B001 Call-by-Service Message — the message schema class defining the request/response structure for the EKK2101B001 SC |
| TEMPLATE_ID_EKK2101B001 | Constant | Value "EKK2101B001" — template ID constant used as the map key for storing and retrieving EKK2101B001 result data |
| TEMPLATE_LIST_KEY | Constant | Key for the template array in the SIF request/result — stores the CAANMsg[] payload for service component invocation |
| STATUS_INT_KEY | Constant | Key for reading the integer status code from the CAANMsg template — 0 indicates success, non-zero indicates error |
| CAANMsg | Class | Fujitsu's generic service message class — carries typed field data between service components; supports `getInt()` for status extraction |
| ServiceComponentRequestInvoker | Class | Request invoker — executes service component calls by routing to the appropriate backend CBS/SC implementation |
| SIF | Acronym | Service Interface — the service interface layer used for inter-component communication in the Fujitsu BPM platform |
| SC | Acronym | Service Component — a reusable business logic module that processes service requests and returns results |
| CBS | Acronym | Call-By-Service — a specific type of service component that performs database-bound business operations (Call-By-Service) |
| editInMsgCmn | Method | Edit inbound message common — sets up standard message metadata (session, timestamps, operation type) for SIF calls |
| editBasicCmn | Method | Edit basic common message — applies basic common settings to the message template |
| editResultRP | Method | Edit result response — maps error results from the SIF response back to the request parameters |
| errChk | Method | Error check — validates SIF result for errors and throws `CCException` if error status is detected |
| mappingEKK2101B001InMsg | Method | Maps input parameters into the EKK2101B001 CBS message template |
| mappingEKK2101B001SCOutMsg | Method | Maps the EKK2101B001 SC response messages into a `List<HashMap<String, Object>>` output structure |
| JCMConstants | Class | Jakarta/Common Message Constants — contains constant keys for SIF request/response message structures |
| KK_T_ADDR_CHG_DTL | Table | Address Change Detail table (inferred) — database table storing address change detail records queried by EKK2101B001 |
| JKK (prefix) | Prefix | Japanese Katakana "JKK" — Fujitsu's internal module naming convention for order fulfillment / service provisioning components |
| Bump | Term | Refers to the "bump" process — upgrading or modifying an existing service contract (e.g., address change with service upgrade) |
