# Business Logic — JKKKyoseiDslRunMapperCC.editMapWrisvcAutoAply() [95 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKKyoseiDslRunMapperCC` |
| Layer | CC / Common Component (Shared mapping component in the custom common package) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKKyoseiDslRunMapperCC.editMapWrisvcAutoAply()

This method prepares the data map required to invoke the **Discount Service Automatic Application** service component (WrisvcAutoAply) for force cancellation scenarios in the K-Opticom telecom billing system. Its primary business purpose is to assemble a structured message (CAANMsg payload) with all fields needed by the downstream service component that automatically applies discount service handling during forced contract cancellations (強制解約).

The method operates as a **mapper/builder** — it reads pre-populated template data (from EKK0081A010 service contract data and EKK0021A010 application detail data) stored in the `resultHash` map, and populates the `outMap` with a fully assembled service contract group list. The resulting data structure follows a nested hierarchy: array of service contract groups (`svc_kei_grp_list`), each containing a group division (`grp_div`) and a list of service contract records (`svc_kei_list`), with each record carrying service identifiers, pricing codes, and end dates.

The method handles two execution paths based on the invocation source: when called from a **batch process** (forced cancellation batch identified by `KIDO_CD_BAT = "02"`), the service end date is incremented by one day to ensure the cancellation takes effect on the correct billing cycle. Otherwise, the service end date is used as-is for normal execution.

The method has **no conditional branches for service types** — it unconditionally builds the same service contract structure. The only branching is on the `kidoCd` parameter to determine date arithmetic. It implements the **Builder pattern** (assembling complex nested data structures field-by-field) and the **Delegation pattern** (delegating date arithmetic to utility methods).

This is a **shared utility** called by multiple entry points: directly from `JKKDslRun.dslTjitu()` during DSL order termination processing, and from `JKKKyoseiDslRunCC.executeWribAutoAplyCC()` during force cancellation operations.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["editMapWrisvcAutoAply"])
    START --> EXTRACT["Extract REQYMD and SVC_CHRG_ENDYMD from requestParam"]
    EXTRACT --> GET_EKK0081["Retrieve EKK0081A010 template from resultHash"]
    GET_EKK0081 --> SET_SYSID["Set outMap SYSID from EKK0081A010 data"]
    SET_SYSID --> SET_ADD_CHGE["Set outMap ADD_CHGE_DIV to value 03 for Add or Change"]
    SET_ADD_CHGE --> GET_EKK0021["Retrieve EKK0021A010 template from resultHash"]
    GET_EKK0021 --> EXTRACT_MSKM["Extract mskmNo Application Number from EKK0021A010"]
    EXTRACT_MSKM --> SET_MSKM["Set outMap MSKM_NO and MSKM_SBT_CD to 00005"]
    SET_MSKM --> SET_IDO["Set outMap IDO_DIV from idoDiv parameter"]
    SET_IDO --> SET_FUNC["Set outMap FUNC_CODE to 1"]
    SET_FUNC --> SET_DLRE["Set outMap SVC_DLRE_CD to 02 for Abnormal Cancellation"]
    SET_DLRE --> BUILD_SVC["Build workSvcKeiMap and workSvcKeiList structures"]
    BUILD_SVC --> SET_GRP["Set grp_div to 00 for Standard Group"]
    SET_GRP --> SET_SVC_DATA["Populate workSvcKeiData with SYSID tg_kei_skbt_cd svc_kei_no svc_kei_stat svc_cd prc_grp_cd pcrs_cd pplan_cd"]
    SET_SVC_DATA --> CHECK_KIDO{KIDO_CD equals 02}
    CHECK_KIDO -->|Yes Batch| ADD_DAY["Set svc_endymd to addDay of svcEndymd plus 1"]
    CHECK_KIDO -->|No Normal| SET_ENDYMD["Set svc_endymd from svcEndymd directly"]
    ADD_DAY --> SET_CHRG_ENDYMD["Set svc_chrg_endymd from requestParam"]
    SET_ENDYMD --> SET_CHRG_ENDYMD
    SET_CHRG_ENDYMD --> ADD_LIST["Add workSvcKeiData to workSvcKeiList"]
    ADD_LIST --> ADD_MAP["Add workSvcKeiList to workSvcKeiMap"]
    ADD_MAP --> ADD_ARRAY["Add workSvcKeiMap to workSvcKeiArray"]
    ADD_ARRAY --> SET_OUT["Set outMap SVC_KEI_GRP_LIST to workSvcKeiArray"]
    SET_OUT --> END(["Return to Caller"])
```

**Key constant resolutions in flow:**

| Branch | Condition | Constant Value | Business Meaning |
|--------|-----------|----------------|-----------------|
| Date increment | `kidoCd` equals `KIDO_CD_BAT` | `"02"` | Batch invocation code — triggers forced cancellation batch processing |
| Add/Change division | `ADD_CHGE_DIV_DSL` | `"03"` | Add/Change: Cancellation — classifies this as a service cancellation operation |
| Application subtype | Hardcoded | `"00005"` | Discount service application — identifies this as a discount service type application |
| Function code | `FUNC_CD_1` | `"1"` | Standard function code |
| Service cancellation code | `SVC_DLRE_CD_KYOSEI` | `"02"` | Abnormal cancellation — used when service is terminated abnormally (forced) |
| Group division | `GRP_DIV_STDARD` | `"00"` | Standard group — the default group classification for service contracts |
| Target contract subtype | `TG_KEI_SKBT_CD_SVC_KEI` | `"01"` | Service contract — identifies the target as a service-level contract |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `outMap` | `HashMap` | Output map that receives the fully assembled service contract group list for the automatic discount service application. This is the primary return vehicle — after this method returns, `outMap` contains `SYSID`, `ADD_CHGE_DIV`, `MSKM_NO`, `MSKM_SBT_CD`, `IDO_DIV`, `FUNC_CODE`, `SVC_DLRE_CD`, and `SVC_KEI_GRP_LIST`. |
| 2 | `idoDiv` | `String` | Transfer classification (異動区分) — indicates the type of contract change being performed (e.g., addition, modification, cancellation). This value is passed through directly to `outMap` to identify the nature of the data transfer in downstream processing. |
| 3 | `resultHash` | `HashMap` | Pre-populated result hash containing template data maps from prior CBS service calls. Specifically expected keys: `EKK0081A010` (service contract data from CBS) and `EKK0021A010` (application detail consent data from CBS). Maps extracted via `TEMPLATE_ID_EKK0081A010` and `TEMPLATE_ID_EKK0021A010`. |
| 4 | `requestParam` | `HashMap<String, Object>` | Request parameter map carrying the base business input data. Used to retrieve `REQYMD` (request date — the dependency year/month/day for service termination) and `SVC_CHRG_ENDYMD` (service charge end date — the billing cycle end date). |
| 5 | `kidoCd` | `String` | Activation code (起動コード) — identifies the invocation source. When equal to `"02"` (`KIDO_CD_BAT`), the method knows it was called from a batch process and adjusts the service end date accordingly (adds 1 day). |

**External state / constants read:**

| Source | Constant | Resolved Value | Usage |
|--------|----------|----------------|-------|
| `JKKKyoseiDslRunCC` | `REQYMD` | `"REQYMD"` | Key to extract request date from `requestParam` |
| `JKKKyoseiDslRunCC` | `SVC_CHRG_ENDYMD` | `"SVC_CHRG_ENDYMD"` | Key to extract service charge end date from `requestParam` |
| `JKKKyoseiDslRunCC` | `TEMPLATE_ID_EKK0081A010` | `"EKK0081A010"` | Key to retrieve service contract template from `resultHash` |
| `JKKKyoseiDslRunCC` | `TEMPLATE_ID_EKK0021A010` | `"EKK0021A010"` | Key to retrieve application detail template from `resultHash` |
| `JKKKyoseiDslRunCC` | `ADD_CHGE_DIV_DSL` | `"03"` | Fixed value: add/change classification for cancellation |
| `JKKKyoseiDslRunCC` | `SVC_DLRE_CD_KYOSEI` | `"02"` | Service cancellation code for abnormal/forced cancellation |
| `JKKKyoseiDslRunCC` | `GRP_DIV_STDARD` | `"00"` | Group division: standard group |
| `JKKKyoseiDslRunCC` | `TG_KEI_SKBT_CD_SVC_KEI` | `"01"` | Target contract subtype code for service contract |
| `JKKKyoseiDslRunCC` | `KIDO_CD_BAT` | `"02"` | Batch invocation code |
| `JPCModelConstant` | `FUNC_CD_1` | `"1"` | Function code |
| `EKK0081A010CBSMsg1List` | `SYSID`, `SVC_KEI_NO`, `SVC_KEI_STAT`, `SVC_CD`, `PRC_GRP_CD`, `PCRS_CD`, `PPLAN_CD` | String keys | Field names within EKK0081A010 template map |
| `EKK0021A010CBSMsg1List` | `MSKM_NO` | `"mskm_no"` | Key to extract application number |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| C | `JPCDateUtil.addDay` | JPCDate | - | Calculates service end date by adding days to the request date |

This method performs **pure data assembly** — it reads data from in-memory maps (`resultHash`, `requestParam`) and writes structured output to `outMap`. No database CRUD operations, entity persistence, or direct CBS (CBS = Contract Business System) calls are made within this method. The only external method invocation is:

- `JPCDateUtil.addDay(svcEndymd, 1)` — a date utility to add 1 day to the service end date (when `kidoCd` indicates batch invocation). This is a utility function, not a service component call.

**Data flow summary:** This method is a **pure mapping/assembly layer** with no persistent state changes. It reads from:
- `resultHash` → EKK0081A010 map (service contract data, previously fetched from CBS)
- `resultHash` → EKK0021A010 map (application detail data, previously fetched from CBS)
- `requestParam` → REQYMD (request date)
- `requestParam` → SVC_CHRG_ENDYMD (service charge end date)

And writes to `outMap` (the CAANMsg payload for the WrisvcAutoAply service component).

## 5. Dependency Trace

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

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CBS: `JKKDslRun.dslTjitu()` | `JKKDslRun.dslTjitu()` → `mapper.editMapWrisvcAutoAply()` → `JPCDateUtil.addDay()` (conditional) | `addDay` [C] date utility |
| 2 | CBS: `JKKKyoseiDslRunCC.executeWribAutoAplyCC()` | `JKKKyoseiDslRunCC.executeWribAutoAplyCC()` → `mapper.editMapWrisvcAutoAply()` → `JPCDateUtil.addDay()` (conditional) | `addDay` [C] date utility |

**Caller details:**

1. **`JKKDslRun.dslTjitu()`** — DSL order termination processing. Called when a DSL contract is being terminated (order termination procedure). The caller passes in mapped parameters and invokes the mapper to prepare the automatic discount service application data before executing `JKKWrisvcAutoAplyCC`. This path is used for standard (non-batch) order termination flows.

2. **`JKKKyoseiDslRunCC.executeWribAutoAplyCC()`** — Force cancellation automatic application CC. Called when executing forced cancellations (強制解約). This CC first calls `callEKK0021A010SC` to fetch application detail consent data, then invokes `editMapWrisvcAutoAply()` with the `this.kidoCd` field to pass the invocation context. If `kidoCd` is `"02"`, the batch date adjustment applies.

**Data sources (upstream):** Both callers depend on `resultHash` being pre-populated with `EKK0081A010` and `EKK0021A010` template maps, which are populated by prior CBS service calls (`callEKK0081A010SC`, `callEKK0021A010SC`). The downstream consumer is `JKKWrisvcAutoAplyCC.execute()`, which sends the assembled message to the discount service application service component.

## 6. Per-Branch Detail Blocks

### Block 1 — SET (L2474–2476) — Extract base parameters from requestParam

> Retrieves the request date (依頼年月日) and service charge end date (サービス課金終了年月日) from the request parameter map for later use in service end date calculation.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `svcEndymd = requestParam.get(JKKKyoseiDslRunCC.REQYMD)` | Extract request date (依頼年月日) — the dependency date for service processing [-> REQYMD="REQYMD"] |
| 2 | SET | `svcChrgEndymd = requestParam.get(JKKKyoseiDslRunCC.SVC_CHRG_ENDYMD)` | Extract service charge end date (サービス課金終了年月日) — billing cycle end date [-> SVC_CHRG_ENDYMD="SVC_CHRG_ENDYMD"] |

### Block 2 — SET (L2478) — Retrieve EKK0081A010 template

> Fetches the service contract data template previously fetched from CBS by `callEKK0081A010SC`. This map contains service-level contract details.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `ekk0081a010Map = resultHash.get(JKKKyoseiDslRunCC.TEMPLATE_ID_EKK0081A010)` | Retrieve EKK0081A010 template [-> TEMPLATE_ID_EKK0081A010="EKK0081A010"] — service contract data |

### Block 3 — SET (L2481) — Set system ID

> Sets the SYSID in the output map from the EKK0081A010 service contract data.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("sysid", ekk0081a010Map.get(EKK0081A010CBSMsg1List.SYSID))` | Set system identifier from EKK0081A010 service contract data [-> "sysid"] |

### Block 4 — SET (L2484) — Set add/change division

> Sets the add/change classification to indicate this is a cancellation operation.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("add_chge_div", JKKKyoseiDslRunCC.ADD_CHGE_DIV_DSL)` | Set add/change division to "03" (Register/Change: Cancellation) [-> ADD_CHGE_DIV_DSL="03"] |

### Block 5 — SET (L2487–2489) — Retrieve EKK0021A010 template and extract application number

> Fetches the application detail consent data template from `resultHash` and extracts the application number (申込番号).

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `ekk0021a010Map = resultHash.get(JKKKyoseiDslRunCC.TEMPLATE_ID_EKK0021A010)` | Retrieve EKK0021A010 template [-> TEMPLATE_ID_EKK0021A010="EKK0021A010"] — application detail data |
| 2 | SET | `mskmNo = (String) ekk0021a010Map.get(EKK0021A010CBSMsg1List.MSKM_NO)` | Extract application number (申込番号) [-> MSKM_NO="mskm_no"] |
| 3 | SET | `outMap.put("mskm_no", mskmNo)` | Set application number in output map |

### Block 6 — SET (L2492) — Set application subtype code

> Hardcodes the application subtype code for discount service applications.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("mskm_sbt_cd", "00005")` | Set application subtype code [-> "00005" = Discount service application] |

### Block 7 — SET (L2495) — Set transfer classification

> Passes through the transfer classification (異動区分) parameter directly.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("ido_div", idoDiv)` | Set transfer classification from parameter |

### Block 8 — SET (L2498) — Set function code

> Sets the standard function code to identify this as a standard function operation.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("func_code", JPCModelConstant.FUNC_CD_1)` | Set function code [-> FUNC_CD_1="1"] |

### Block 9 — SET (L2501) — Set service cancellation code

> Sets the service cancellation reason code to indicate an abnormal/forced cancellation.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `outMap.put("svc_dlre_cd", JKKKyoseiDslRunCC.SVC_DLRE_CD_KYOSEI)` | Set service cancellation code [-> SVC_DLRE_CD_KYOSEI="02" = Abnormal cancellation] |

### Block 10 — SET (L2504–2506) — Build service contract group data structures

> Initializes the nested data structure for building the service contract group list. Creates a `workSvcKeiArray` (list of service contract groups) and a `workSvcKeiMap` (individual service contract group map).

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiArray = new ArrayList<HashMap>()` | Initialize service contract group array |
| 2 | SET | `workSvcKeiMap = new HashMap<String, Object>()` | Initialize service contract group map |
| 3 | SET | `workSvcKeiMap.put("grp_div", JKKKyoseiDslRunCC.GRP_DIV_STDARD)` | Set group division [-> GRP_DIV_STDARD="00" = Standard group] |

### Block 11 — SET (L2509–2510) — Build service contract data list and data map

> Initializes the list and map structures for individual service contract records.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiList = new ArrayList<HashMap>()` | Initialize service contract record list |
| 2 | SET | `workSvcKeiData = new HashMap<String, Object>()` | Initialize individual service contract data map |

### Block 12 — SET (L2513–2535) — Populate service contract data fields

> Populates the individual service contract data map with all required fields from the EKK0081A010 template. This includes system ID, target contract subtype, service contract number, service contract status, service code, pricing group code, pricing course code, and pricing plan code.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiData.put("sysid", ekk0081a010Map.get(EKK0081A010CBSMsg1List.SYSID))` | Set system ID from EKK0081A010 template [-> "sysid"] |
| 2 | SET | `workSvcKeiData.put("tg_kei_skbt_cd", JKKKyoseiDslRunCC.TG_KEI_SKBT_CD_SVC_KEI)` | Set target contract subtype [-> TG_KEI_SKBT_CD_SVC_KEI="01" = Service contract] |
| 3 | SET | `workSvcKeiData.put("svc_kei_no", ekk0081a010Map.get(EKK0081A010CBSMsg1List.SVC_KEI_NO))` | Set service contract number from EKK0081A010 template |
| 4 | SET | `workSvcKeiData.put("svc_kei_stat", ekk0081a010Map.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT))` | Set service contract status from EKK0081A010 template |
| 5 | SET | `workSvcKeiData.put("svc_cd", ekk0081a010Map.get(EKK0081A010CBSMsg1List.SVC_CD))` | Set service code from EKK0081A010 template |
| 6 | SET | `workSvcKeiData.put("prc_grp_cd", ekk0081a010Map.get(EKK0081A010CBSMsg1List.PRC_GRP_CD))` | Set pricing group code from EKK0081A010 template |
| 7 | SET | `workSvcKeiData.put("pcrs_cd", ekk0081a010Map.get(EKK0081A010CBSMsg1List.PCRS_CD))` | Set pricing course code from EKK0081A010 template |
| 8 | SET | `workSvcKeiData.put("pplan_cd", ekk0081a010Map.get(EKK0081A010CBSMsg1List.PPLAN_CD))` | Set pricing plan code from EKK0081A010 template |

### Block 13 — IF (L2538) — Conditional service end date calculation

> Conditional branch on `kidoCd`. When the invocation code equals `"02"` (batch forced cancellation), the service end date is incremented by 1 day to ensure proper billing cycle alignment. This was added per ticket KT1-2013-0000418 to fix an issue where multi-function routers could not link during batch forced cancellation.

**Block 13.1** — [IF] `(kidoCd equals KIDO_CD_BAT = "02")` (L2538)

> Batch invocation path — add 1 day to the service end date (依頼年月日に1日加算).

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiData.put("svc_endymd", JPCDateUtil.addDay(svcEndymd, 1))` | Set service end date [-> KIDO_CD_BAT="02"] — add 1 day to request date for batch processing. Service end date (サービス終了年月日) is incremented to ensure the forced cancellation takes effect on the correct billing cycle. |

**Block 13.2** — [ELSE] (L2542)

> Normal execution path — use the service end date as-is.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiData.put("svc_endymd", svcEndymd)` | Set service end date directly from request date. Service end date (サービス終了年月日) — no date adjustment for normal (non-batch) execution. |

### Block 14 — SET (L2549) — Set service charge end date

> Sets the service charge end date in the service contract data.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiData.put("svc_chrg_endymd", svcChrgEndymd)` | Set service charge end date (サービス課金終了年月日) from request parameter |

### Block 15 — SET (L2551–2556) — Assemble nested structure and set output

> Assembles the nested data structure: adds the individual service data to the service list, adds the service list to the group map, adds the group map to the group array, and finally places the complete array in the output map under `svc_kei_grp_list`.

| # | Type | Code | Business Description |
|---|------|------|---------------------|
| 1 | SET | `workSvcKeiList.add(workSvcKeiData)` | Add service contract data to service list |
| 2 | SET | `workSvcKeiMap.put("svc_kei_list", workSvcKeiList)` | Set service contract list in group map |
| 3 | SET | `workSvcKeiArray.add(workSvcKeiMap)` | Add group map to group array |
| 4 | SET | `outMap.put("svc_kei_grp_list", workSvcKeiArray)` | Set the complete service contract group list in output map |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mskm_no` | Field | Application number (申込番号) — unique identifier for a customer application/order |
| `mskm_sbt_cd` | Field | Application subtype code (申込種別コード) — classifies the type of application |
| `svc_kei_no` | Field | Service contract number (サービス契約番号) — unique identifier for a service contract line item |
| `svc_kei_stat` | Field | Service contract status (サービス契約ステータス) — current status of the service contract |
| `svc_cd` | Field | Service code (サービスコード) — identifies the type of telecom service |
| `prc_grp_cd` | Field | Pricing group code (料金グループコード) — pricing tier/group classification |
| `pcrs_cd` | Field | Pricing course code (料金コースコード) — pricing plan/course identifier |
| `pplan_cd` | Field | Pricing plan code (料金プランコード) — specific pricing plan identifier |
| `svc_endymd` | Field | Service end date (サービス終了年月日) — the date when the service contract ends |
| `svc_chrg_endymd` | Field | Service charge end date (サービス課金終了年月日) — the date when billing for the service ends |
| `reqymd` | Field | Request date (依頼年月日) — the date the processing request was submitted |
| `svc_dlre_cd` | Field | Service cancellation code (サービス解約理由コード) — reason code for service termination |
| `add_chge_div` | Field | Add/change division (登録／変更区分) — classifies operation as addition, modification, or cancellation |
| `ido_div` | Field | Transfer classification (異動区分) — identifies the type of contract change |
| `tg_kei_skbt_cd` | Field | Target contract subtype code (対象契約識別コード) — identifies what type of contract is the target |
| `grp_div` | Field | Group division (グループ区分) — classification for grouping service contracts |
| `sysid` | Field | System ID — identifier for the connected system or entity |
| `kidoCd` | Field | Activation code (起動コード) — identifies the invocation source/context (batch, screen, etc.) |
| `FUNC_CD_1` | Field | Function code — system function type identifier |
| KKKyoseiDslRunMapperCC | Class | Discount service automatic application CC — mapping component for discount service auto-application during DSL order termination |
| KKKyoseiDslRunCC | Class | Forced cancellation execution CC — component that handles forced contract cancellation processing |
| JKKDslRun | Class | DSL run processing — main DSL order termination workflow orchestrator |
| EKK0081A010 | CBS Code | Service contract data CBS — retrieves service contract details (contract number, status, service code, pricing) |
| EKK0021A010 | CBS Code | Application detail consent CBS — retrieves application detail consent information |
| WrisvcAutoAply | Service | Discount service automatic application — service component that automatically applies discount service handling |
| 強制解約 (Kyosei Kaishaku) | Business term | Forced cancellation — termination of a service contract due to non-payment or other reasons |
| 割引サービス (Waribiki Service) | Business term | Discount service — promotional pricing service offered to customers |
| 異動 (Idou) | Business term | Transfer/change — contract modification operations (addition, modification, cancellation) |
| 申込番号 (Mokusho Ban-gou) | Business term | Application number — unique customer order/application identifier |
| JPCDate | Library | Date utility library — provides date arithmetic functions like `addDay` |
| CAANMsg | Pattern | Message assembly pattern — structured message object used for service component communication |
