# Business Logic — JKKOpSvcHktgiUpdCC.callEKK1091D010() [136 LOC]

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

## 1. Role

### JKKOpSvcHktgiUpdCC.callEKK1091D010()

This method registers **progress records** (進捗登録, *shincho toroku*) for service contract line items during an **option handover** (オプション引継ぎ) operation in the K-Opticom telecommunications billing system. The method is responsible for tracking the state transitions of service contracts as they are transferred from an original service contract (引継元, *hikikimoto*) to a new recipient service contract (引継先, *hikisaki*). It prepares a structured input payload containing the function code, application detail number, transfer division, a concatenation of both the new and original service contract numbers as a progress special item (進捗特記事項1), and a list of transfer reason details — then invokes the `EKK1091D010` SC (Service Component) to persist these progress records. The method iterates over all service contract numbers in the handover and all applicable progress statuses, calling the SC once per combination (service contract number × progress status), effectively creating a grid of progress registration records. It uses the **template builder** pattern — building CAANMsg template arrays for the transfer reason list — and the **delegation** pattern, outsourcing the actual database operations to the `runSc` infrastructure method.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["callEKK1091D010(params)"])

    START --> S1["Create template: CAANMsg of EKK1091D010CBSMsg"]
    S1 --> S2["Get inList from userData.get(USER_DATA_KEY_IDO_RSN_CD_LIST)"]
    S2 --> S3{"templateArray == null && inList != null?"}
    S3 -- true --> S4["Allocate templateArray with inList.size()"]
    S3 -- false --> S5{"inList != null && inList.size() > 0?"}
    S4 --> S5
    S5 -- true --> S6["Build transfer reason detail list: iterate inList"]
    S6 --> S6a["For each childMap in inList: create idoRsnMap"]
    S6a --> S6b["Call fillCAANMSGNullMapping on idoRsnMap"]
    S6b --> S6c["Set IDO_RSN_CD from childMap.get('ido_rsn_cd')"]
    S6c --> S6d["Set IDO_RSN_MEMO from childMap.get('ido_rsn_memo')"]
    S6d --> S6e["Store idoRsnMap into templateArray[i]"]
    S6e --> S7["templateArray populated"]
    S5 -- false --> S7a["Create default transfer reason entry"]
    S7a --> S7b["Create idoRsnMap: EKK1091D010CBSMsg1List"]
    S7b --> S7c["Set IDO_RSN_CD = IDO_RSN_CD_C2 = \"C2\""]
    S7c --> S7d["Set IDO_RSN_MEMO = null"]
    S7d --> S7e["Store in templateArray[0]"]
    S7 --> S8["Build svcKeiNoList: add hikimotoSvcKeiNo + hikisakiSvcKeiNo"]
    S7a --> S8
    S8 --> S9["Build prgList"]
    S9 --> S10{"kidoCd != KIDO_CD_BAT (\"02\")?"}
    S10 -- true --> S11["Add PRG_STAT_5101 = \"5101\" to prgList"]
    S10 -- false --> S12["Skip: batch mode"]
    S11 --> S13{"isSokujitsu == true?"}
    S12 --> S13
    S13 -- true --> S14["Add PRG_STAT_5102 = \"5102\" to prgList"]
    S13 -- false --> S15["Build prgTkjk1: option handover special item"]
    S14 --> S15
    S15 --> S16["Append PRG_TKJK_HIKITSUGI_SAKI + hikisakiSvcKeiNo + PRG_TKJK_HIKITSUGI_END"]
    S16 --> S17["Append space separator"]
    S17 --> S18["Append PRG_TKJK_HIKITSUGI_MOTO + hikimotoSvcKeiNo + PRG_TKJK_HIKITSUGI_END"]
    S18 --> S19["Create inputMap"]
    S19 --> S20["Put FUNC_CODE = funcCd"]
    S20 --> S21["Put MSKM_DTL_NO = mskmDtlNo"]
    S21 --> S22["Put IDO_DIV = getIdoDiv(workMap)"]
    S22 --> S23["Put PRG_TKJK_1 = sbPrgTkjk.toString()"]
    S23 --> S24["Put EKK1091D010CBSMSG1LIST = templateArray"]
    S24 --> S25{"prgIdoDtm != null && not empty?"}
    S25 -- true --> S26["Put IDO_DTM = prgIdoDtm (from 異動予約反映)"]
    S25 -- false --> S27["Put IDO_DTM = sysDtm (actual date)"]
    S26 --> S28["Enter outer loop: for each svcKeiNo in svcKeiNoList"]
    S27 --> S28
    S28 --> S29["Remove SVC_KEI_NO from inputMap"]
    S29 --> S30["Put SVC_KEI_NO = svcKeiNoList.get(i)"]
    S30 --> S31["Enter inner loop: for each prgStat in prgList"]
    S31 --> S32["Remove PRG_STAT from inputMap"]
    S32 --> S33["Put PRG_STAT = prgList.get(j)"]
    S33 --> S34["Call runSc(handle, param, EKK1091D010, inputMap)"]
    S34 --> S35["More prgList items?"]
    S35 -- yes --> S32
    S35 -- no --> S36["More svcKeiNoList items?"]
    S36 -- yes --> S29
    S36 -- no --> END(["Return / Next"])
```

**Constant Resolution:**

| Constant | Value | Business Meaning |
|----------|-------|------------------|
| `KIDO_CD_BAT` | `"02"` | Origin code for Batch — batch jobs skip the 5101 progress status |
| `IDO_RSN_CD_C2` | `"C2"` | Default transfer reason code — used when no transfer reasons are provided in userData |
| `PRG_STAT_5101` | `"5101"` | Progress status code — standard (non-batch) progress registration |
| `PRG_STAT_5102` | `"5102"` | Progress status code — immediate application (即時適用) |
| `PRG_TKJK_HIKITSUGI_SAKI` | `"オプション引継ぎ [引継先お客様ID:"` | Prefix string for the new recipient service contract in the progress special item |
| `PRG_TKJK_HIKITSUGI_MOTO` | `"オプション引継ぎ [引継元お客様ID:"` | Prefix string for the original service contract in the progress special item |
| `PRG_TKJK_HIKITSUGI_END` | `"]"` | Closing bracket for the progress special item string |
| `EKK1091D010` | `"EKK1091D010"` | SC code for progress registration (進捗登録) |
| `USER_DATA_KEY_IDO_RSN_CD_LIST` | `"ido_rsn_cdList"` | Key in userData map to retrieve the list of transfer reason detail maps |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle used to manage the transactional context for DB operations |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the broader request context passed through the call chain; forwarded to `runSc` |
| 3 | `userData` | `Map<String, Object>` | User data map from the calling screen. Contains the transfer reason detail list under key `USER_DATA_KEY_IDO_RSN_CD_LIST` ("ido_rsn_cdList"), which holds `HashMap` entries with `ido_rsn_cd` and `ido_rsn_memo` fields. Null-safe: when absent, a default transfer reason code `"C2"` is used |
| 4 | `workMap` | `HashMap<String, Object>` | Working data map used within the option handover operation. Read via `getIdoDiv()` to determine the transfer division (異動区分) — identifies whether the transfer is a line change, migration, etc. |
| 5 | `funcCd` | `String` | Function code — identifies the calling business function. Set as `JCMConstants.FUNC_CODE_KEY` in the input payload forwarded to the SC |
| 6 | `kidoCd` | `String` | Origin code (起動元コード) — identifies the entry point type. `"02"` (KIDO_CD_BAT) indicates a batch job; batch jobs skip the standard progress status (5101) |
| 7 | `hikisakiSvcKeiNo` | `String` | Destination service contract number (引継先サービス契約番号) — the new service contract number that receives the options after handover. Iterated over in the outer loop for progress registration |
| 8 | `hikimotoSvcKeiNo` | `String` | Origin service contract number (引継元サービス契約番号) — the original service contract number from which options are transferred. Used in constructing the progress special item 1 string |
| 9 | `mskmDtlNo` | `String` | Application detail number (申請詳細番号) — internal tracking number for the application/registration request. Set in the input payload for the SC |
| 10 | `prgIdoDtm` | `String` | Progress transfer datetime (進捗異動日時) — the actual datetime of the transfer event. Only populated when called from the transfer reservation reflection (異動予約反映) process; otherwise falls back to `sysDtm` |
| 11 | `sysDtm` | `String` | System datetime (システム日時) — current system timestamp used as fallback for `IDO_DTM` when `prgIdoDtm` is unavailable |

**Instance fields read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `isSokujitsu` | `boolean` | Immediate application flag (即時適用フラグ). When true, the immediate progress status (5102) is added to the progress list |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKOpSvcHktgiUpdCC.fillCAANMSGNullMapping` | JKKOpSvcHktgiUpdCC | - | Calls `fillCAANMSGNullMapping` to initialize a CAANMsg with null values per the EKK1091D010CBSMsg1List schema |
| R | `JKKOpSvcHktgiUpdCC.getIdoDiv` | JKKOpSvcHktgiUpdCC | - | Reads the transfer division (異動区分) from the workMap |
| C | `JKKOpSvcHktgiUpdCC.runSc` | JKKOpSvcHktgiUpdCC | EKK1091D010 | Progress registration (進捗登録) — invokes the EKK1091D010 SC for each service contract number × progress status combination. This is the terminal CRUD operation. |

**How to classify:**
- **C** (Create): `runSc(handle, param, EKK1091D010, inputMap)` — The EKK1091D010 SC is labeled "progress registration" (進捗登録), which inserts progress records into the database. The method calls this SC multiple times in a nested loop (once per svcKeiNo × prgStat pair).
- **R** (Read): `getIdoDiv(workMap)` — reads the transfer division from workMap
- **-** (Utility): `fillCAANMSGNullMapping` — utility method to populate a message object with null defaults; does not perform DB access
- **-** (Utility): `runSc` — wrapper method that delegates to the SC infrastructure. The actual CRUD operation is determined by the SC code passed in (EKK1091D010).

**Entity / DB table inference:**
The SC code `EKK1091D010` corresponds to the progress registration (進捗登録) CBS. Based on the CBS message schema (`EKK1091D010CBSMsg` / `EKK1091D010CBSMsg1List`), the primary entity tracked is the **progress management table** (進捗管理テーブル), which stores service contract progress records including service contract number, progress status, transfer division, transfer datetime, and special remarks.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 11 methods.
Terminal operations from this method: `runSc` [-], `getIdoDiv` [R], `setNull` [-], `setNull` [-], `setNull` [-], `setNull` [-], `setNull` [-], `getName` [R], `fillCAANMSGNullMapping` [-], `getContents` [R], `getContents` [R], `getContents` [R], `getContents` [R], `getContents` [R], `getName` [R], `getName` [R]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Class: JKKOpSvcHktgiUpdCC | `opSvcHktgiUpd()` -> `callEKK1091D010()` | `runSc [C] EKK1091D010 (Progress Registration)` |
| 2 | Class: JKKIdoRsvHanei | `opSvcHktgUpdTrgtData.put(USER_DATA_KEY_IDO_RSN_CD_LIST)` -> calls into JKKOpSvcHktgiUpdCC -> `callEKK1091D010()` | `runSc [C] EKK1091D010 (Progress Registration)` |

**Instructions:**
- The only confirmed direct caller is `JKKOpSvcHktgiUpdCC.opSvcHktgiUpd()` which is the main entry point for the option handover update operation.
- `JKKIdoRsvHanei` (異動予約反映 — Transfer Reservation Reflection) sets the transfer reason detail list in userData before invoking operations on `JKKOpSvcHktgiUpdCC`, meaning the transfer reason list passed to this method typically originates from the reservation reflection process.
- The terminal operation is `runSc` which calls the `EKK1091D010` SC (progress registration), performing a **Create** operation on the progress management entity.

## 6. Per-Branch Detail Blocks

**Block 1** — INITIALIZATION (L7128)

Prepare the CAANMsg template and retrieve the transfer reason list from userData.

| # | Type | Code |
|---|------|------|
| 1 | SET | `template = new CAANMsg(EKK1091D010CBSMsg.class.getName())` // Create progress registration message template |
| 2 | SET | `templateArray = template.getCAANMsgList(EKK1091D010CBSMsg1List.EKK1091D010CBSMSG1LIST)` // Get the transfer reason detail sub-list from template |
| 3 | SET | `inList = (ArrayList)userData.get(USER_DATA_KEY_IDO_RSN_CD_LIST)` // Retrieve transfer reason detail list from userData [-> USER_DATA_KEY_IDO_RSN_CD_LIST = "ido_rsn_cdList"] |
| 4 | SET | `templateArray = new CAANMsg[inList.size()]` // [IF templateArray == null && inList != null] Allocate array matching list size |

**Block 2** — IF `(inList != null && inList.size() > 0)` (L7134)

> Branch: The transfer reservation reflection process provided transfer reason details. Build the transfer reason list from userData.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `for (int i = 0; i < inList.size(); i++)` // Iterate over each transfer reason detail entry |
| 2 | SET | `childMap = (HashMap)inList.get(i)` // Extract child map for this transfer reason |
| 3 | SET | `idoRsnMap = new CAANMsg(EKK1091D010CBSMsg1List.class.getName())` // Create detail message for this reason |
| 4 | CALL | `fillCAANMSGNullMapping(idoRsnMap, new EKK1091D010CBSMsg1List().getContents())` // Initialize with null defaults |
| 5 | SET | `idoRsnMap.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, (String)childMap.get("ido_rsn_cd"))` // Set transfer reason code from userData [-> IDO_RSN_CD = "ido_rsn_cd"] |
| 6 | SET | `idoRsnMap.set(EKK1091D010CBSMsg1List.IDO_RSN_MEMO, (String)childMap.get("ido_rsn_memo"))` // Set transfer reason memo from userData [-> IDO_RSN_MEMO = "ido_rsn_memo"] |
| 7 | SET | `templateArray[i] = idoRsnMap` // Store in template array |

**Block 3** — ELSE (L7145)

> Branch: No transfer reasons provided in userData. Create a default transfer reason entry.

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoRsnMap = new CAANMsg(EKK1091D010CBSMsg1List.class.getName())` // Create default detail message |
| 2 | SET | `idoRsnMap.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, IDO_RSN_CD_C2)` // Set default code [-> IDO_RSN_CD_C2 = "C2"] |
| 3 | SET | `idoRsnMap.setNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO)` // Memo set to null [-> IDO_RSN_MEMO = "ido_rsn_memo"] |
| 4 | SET | `templateArray[0] = idoRsnMap` // Store as single default entry |

**Block 4** — SERVICE CONTRACT LIST BUILDING (L7151)

> Section comment: サービス契約リスト (Service Contract List)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiNoList = new ArrayList<String>()` // Create new service contract number list |
| 2 | EXEC | `svcKeiNoList.add(hikimotoSvcKeiNo)` // Add origin service contract number [引継元サービス契約番号] |
| 3 | EXEC | `svcKeiNoList.add(hikisakiSvcKeiNo)` // Add destination service contract number [引継先サービス契約番号] |

**Block 5** — PROGRESS STATUS LIST BUILDING (L7157)

> Section comment: 進捗リスト (Progress List)

| # | Type | Code |
|---|------|------|
| 1 | SET | `prgList = new ArrayList<String>()` // Create new progress status list |

**Block 6** — IF `(! KIDO_CD_BAT.equals(kidoCd))` (L7161)

> Branch: Not a batch job. Include the standard progress status (5101).
> Section comment: 起動元がバッチじゃない場合 — 起動元コードは「異動予約反映」からしか取得可 (If origin is not batch — origin code can only be obtained from "transfer reservation reflection")

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `prgList.add(PRG_STAT_5101)` // Add standard progress status [-> PRG_STAT_5101 = "5101"] |

**Block 7** — IF `(isSokujitsu)` (L7166)

> Branch: Immediate application flag is set. Include the immediate application progress status (5102).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `prgList.add(PRG_STAT_5102)` // Add immediate application status [-> PRG_STAT_5102 = "5102"] |

**Block 8** — PROGRESS SPECIAL ITEM 1 BUILDING (L7171)

> Section comment: 進捗特記事項1作成 (Build Progress Special Item 1)
> Section comment: 登録確定時、進捗.進捗特記事項1に値を設定するように変更 (Changed to set value in progress special item 1 at registration confirmation)

| # | Type | Code |
|---|------|------|
| 1 | SET | `sbPrgTkjk = new StringBuffer()` // Create string buffer for special item |
| 2 | EXEC | `sbPrgTkjk.append(PRG_TKJK_HIKITSUGI_SAKI)` // Append "オプション引継ぎ [引継先お客様ID:" [-> PRG_TKJK_HIKITSUGI_SAKI = "オプション引継ぎ [引継先お客様ID:"] |
| 3 | EXEC | `sbPrgTkjk.append(hikisakiSvcKeiNo)` // Append destination service contract number |
| 4 | EXEC | `sbPrgTkjk.append(PRG_TKJK_HIKITSUGI_END)` // Append "]" [-> PRG_TKJK_HIKITSUGI_END = "]"] |
| 5 | EXEC | `sbPrgTkjk.append(" ")` // Append space separator |
| 6 | EXEC | `sbPrgTkjk.append(PRG_TKJK_HIKITSUGI_MOTO)` // Append "オプション引継ぎ [引継元お客様ID:" [-> PRG_TKJK_HIKITSUGI_MOTO = "オプション引継ぎ [引継元お客様ID:"] |
| 7 | EXEC | `sbPrgTkjk.append(hikimotoSvcKeiNo)` // Append origin service contract number |
| 8 | EXEC | `sbPrgTkjk.append(PRG_TKJK_HIKITSUGI_END)` // Append "]" |

**Block 9** — INPUT MAP BUILDING (L7180)

> Section comment: 進捗登録マッピング (Progress Registration Mapping)

| # | Type | Code |
|---|------|------|
| 1 | SET | `inputMap = new HashMap<String, Object>()` // Create new input map for SC call |
| 2 | SET | `inputMap.put(JCMConstants.FUNC_CODE_KEY, funcCd)` // [-> FUNC_CODE_KEY = "func_code"] Set function code |
| 3 | SET | `inputMap.put(EKK1091D010CBSMsg.MSKM_DTL_NO, mskmDtlNo)` // [-> MSKM_DTL_NO = "mskm_dtl_no"] Set application detail number |
| 4 | SET | `inputMap.put(EKK1091D010CBSMsg.IDO_DIV, getIdoDiv(workMap))` // [-> IDO_DIV = "ido_div"] Read transfer division from workMap |
| 5 | SET | `inputMap.put(EKK1091D010CBSMsg.PRG_TKJK_1, sbPrgTkjk.toString())` // [-> PRG_TKJK_1 = "prg_tkjk_1"] Set progress special item 1 |
| 6 | SET | `inputMap.put(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, templateArray)` // [-> EKK1091D010CBSMSG1LIST = "EKK1091D010CBSMsg1List"] Set transfer reason detail list |

**Block 10** — IF `(prgIdoDtm != null && !"".equals(prgIdoDtm))` (L7189)

> Branch: Progress transfer datetime is available (called from 異動予約反映 / transfer reservation reflection). Use the provided datetime.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inputMap.put(EKK1091D010CBSMsg.IDO_DTM, prgIdoDtm)` // [-> IDO_DTM = "ido_dtm"] Set transfer datetime from reservation reflection |

**Block 11** — ELSE (L7194)

> Branch: Progress transfer datetime is not available. Use actual system date.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inputMap.put(EKK1091D010CBSMsg.IDO_DTM, sysDtm)` // [-> IDO_DTM = "ido_dtm"] Set to system datetime (actual date) |

**Block 12** — OUTER LOOP: for `(i = 0; i < svcKeiNoList.size())` (L7198)

> Iterates over both service contract numbers (origin + destination) to register progress for each.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inputMap.remove(EKK1091D010CBSMsg.SVC_KEI_NO)` // Remove any previous service contract number [-> SVC_KEI_NO = "svc_kei_no"] |
| 2 | SET | `inputMap.put(EKK1091D010CBSMsg.SVC_KEI_NO, svcKeiNoList.get(i))` // Set current service contract number |
| 3 | EXEC | `for (int j = 0; j < prgList.size(); j++)` // [NESTED] Iterate over progress statuses |

**Block 12.1** — INNER LOOP: for `(j = 0; j < prgList.size())` (L7204)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inputMap.remove(EKK1091D010CBSMsg.PRG_STAT)` // Remove any previous progress status [-> PRG_STAT = "prg_stat"] |
| 2 | SET | `inputMap.put(EKK1091D010CBSMsg.PRG_STAT, prgList.get(j))` // Set current progress status |
| 3 | CALL | `runSc(handle, param, EKK1091D010, inputMap)` // Execute progress registration SC [-> EKK1091D010 = "EKK1091D010"] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `hikisakiSvcKeiNo` | Field | Destination service contract number (引継先サービス契約番号) — the new service contract that receives options after a handover operation |
| `hikimotoSvcKeiNo` | Field | Origin service contract number (引継元サービス契約番号) — the original service contract from which options are transferred |
| `mskmDtlNo` | Field | Application detail number (申請詳細番号) — internal tracking ID for the application/registration request |
| `prgIdoDtm` | Field | Progress transfer datetime (進捗異動日時) — the actual datetime of the transfer event, available only when called from the transfer reservation reflection process |
| `sysDtm` | Field | System datetime (システム日時) — current system timestamp used as fallback |
| `ido_rsn_cd` | Field | Transfer reason code (異動理由コード) — classifies the reason for a service contract line item transfer |
| `ido_rsn_memo` | Field | Transfer reason memo (異動理由メモ) — free-form text describing the transfer reason |
| `ido_div` | Field | Transfer division (異動区分) — categorizes the type of transfer (e.g., line change, migration) |
| `prg_stat` | Field | Progress status (進捗ステータス) — indicates the current stage of a service contract's lifecycle |
| `prg_tkjk_1` | Field | Progress special item 1 (進捗特記事項1) — remarks field containing option handover information for both origin and destination contracts |
| `funcCd` | Field | Function code (機能コード) — identifies the calling business function or screen |
| `kidoCd` | Field | Origin code (起動元コード) — identifies the execution entry point (e.g., screen vs. batch) |
| `EKK1091D010` | Constant | SC code for progress registration (進捗登録) — the Service Component that persists progress records |
| `PRG_STAT_5101` | Constant | Progress status `"5101"` — standard (non-batch) progress registration |
| `PRG_STAT_5102` | Constant | Progress status `"5102"` — immediate application (即時適用) |
| `KIDO_CD_BAT` | Constant | Origin code `"02"` — indicates batch execution mode |
| `IDO_RSN_CD_C2` | Constant | Default transfer reason code `"C2"` — used when no transfer reason details are provided in userData |
| `isSokujitsu` | Field | Immediate application flag (即時適用フラグ) — when true, triggers the immediate application progress status (5102) |
| CAANMsg | Technical | Fujitsu's canonical message object — a schema-based container for CBS/SC inter-component communication |
| SC | Acronym | Service Component — a reusable business logic module in the K-Opticom platform architecture |
| CBS | Acronym | Core Business Service — the CBS layer that handles entity-level data access |
| SC Code | Acronym | Service Component Code — a code pattern like `EKK1091D010` identifying a specific SC |
| Option Handover | Business term | オプション引継ぎ — the process of transferring option service contracts from an original customer contract to a new one (e.g., during plan changes or contract renewals) |
| Progress Registration | Business term | 進捗登録 — the act of recording a service contract's lifecycle stage in the progress management table |
| Transfer Reservation Reflection | Business term | 異動予約反映 — a background process that applies reserved (pre-scheduled) service contract line item changes; provides the `prgIdoDtm` value |
| Batch | Business term | バッチ — batch job execution mode, distinguished by `kidoCd = "02"`, skips standard progress status (5101) |
| Immediate Application | Business term | 即時適用 — a mode where service contract changes take effect immediately rather than at a scheduled time |
