# Business Logic — JFUCngSeikyushoYohiCC.getKk0441SvcChrgStaYmd() [84 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JFUCngSeikyushoYohiCC` |
| Layer | CC/Common Component (Shared business logic component — Controller/Common Component tier) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JFUCngSeikyushoYohiCC.getKk0441SvcChrgStaYmd()

This method calculates the **service billing start date** (サービス課金開始年月日) for a billing option service contract within the K-Opticom customer backbone system. It determines when a customer's billing period should officially commence after a contract change (変更, henkou) operation — specifically for the billing statement submission/rejection workflow (請求書送付要否変更, seikyusho satsumu youhi henkou).

The method implements a **minimum-date comparison pattern**: it evaluates three potential start dates and returns the latest of them. First, it scans all network-type (ネット, net) service contracts to find the oldest existing billing start date among those still actively providing service (status "100" = service provision in progress / サービス提供中, "210" = suspension / 休止中, or "220" = stop / 停止中). Second, it calculates a candidate date derived from the first billing month plus the free-period months count (無料期間月数). Third, it computes the first day of the month immediately following the application date (申請日). The final billing start date is the later of the calculated date and the next month's first day — ensuring billing never starts before the natural billing cycle boundary.

This is a **shared utility method** used during billing statement submission/rejection processing (請求書送付要否変更). It is called from `KKSV0063` screen operation logic (FUSV0063), which handles the determination of whether billing statements should be sent. The method was added to correctly compute billing start dates when processing contract changes that involve free-period grace (M500404). The method is currently **commented out in production** at the caller site (line 498), with the caller using `JFUBPCommon.getOpeDate(null)` as a fallback instead — suggesting a pending or staged rollback.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["getKk0441SvcChrgStaYmd"])
    SET_DEFAULT["SET kk0441SvcChrgStaYmd = '20991231'"]
    GET_INMAP["EXEC param.getData(fixedText)"]
    GET_FIRST_SEIKY["SET firstSeikyYm = inMap.get('first_seiky_ym')"]
    CHECK_FIRST_SEIKY{"firstSeikyYm != null
&& !EMPTY?"}
    SET_VARS["SET oldSvcChrgStaYmd = EMPTY
tmpSvcStaYmd = EMPTY"]
    LOOP_START["LOOP netKeiMap from getTemplateList"]
    GET_SVC_STAT["SET svcKeiStat = netKeiMap.get('svc_kei_stat')"]
    CHECK_SVC_STAT{"svcKeiStat = '100'
or '210' or '220'?"}
    GET_SVC_YMDS["SET svcStaYmd, svcChrgStaYmd from map"]
    CHECK_OLD_EMPTY{"oldSvcChrgStaYmd == EMPTY?"}
    SET_OLD_FIRST["SET tmpSvcStaYmd = svcStaYmd
oldSvcChrgStaYmd = svcChrgStaYmd"]
    COMPARE_DATES{"oldSvcChrgStaYmd > svcChrgStaYmd?"}
    SET_OLD_OLDER["SET tmpSvcStaYmd = svcStaYmd
oldSvcChrgStaYmd = svcChrgStaYmd"]
    LOOP_END["END LOOP"]
    CHECK_OLD_NOT_EMPTY{"oldSvcChrgStaYmd != EMPTY?"}
    CALC_GT_CNT["SET gtCnt = parseInt(mryoPrdGtCnt) + 1"]
    FIRST_SEIKY_FULL["SET firstSeikyYm = firstSeikyYm + '01'"]
    COMPARE_FIRST_OLD{"firstSeikyYm >= oldSvcChrgStaYmd?"}
    CALC_FROM_FIRST["SET kk0441SvcChrgStaYmd
= addMonth(firstSeikyYm, gtCnt)"]
    CALC_FROM_SVC_START["SET tmpSvcStaYmd = tmpSvcStaYmd + '01'
SET kk0441SvcChrgStaYmd
= addMonth(tmpSvcStaYmd, gtCnt)"]
    GET_NEXT_MON["SET mskNextMon1stDay
= addMonth(getOpeDate, 1); substring + '01'"]
    COMPARE_NEXT_MON{"mskNextMon1stDay <= kk0441SvcChrgStaYmd?"}
    USE_NEXT_MON["SET kk0441SvcChrgStaYmd = mskNextMon1stDay"]
    END_RETURN(["Return kk0441SvcChrgStaYmd"])

    START --> SET_DEFAULT
    SET_DEFAULT --> GET_INMAP
    GET_INMAP --> GET_FIRST_SEIKY
    GET_FIRST_SEIKY --> CHECK_FIRST_SEIKY
    CHECK_FIRST_SEIKY -- Yes --> SET_VARS
    CHECK_FIRST_SEIKY -- No --> END_RETURN
    SET_VARS --> LOOP_START
    LOOP_START --> GET_SVC_STAT
    GET_SVC_STAT --> CHECK_SVC_STAT
    CHECK_SVC_STAT -- Yes --> GET_SVC_YMDS
    CHECK_SVC_STAT -- No --> LOOP_END
    GET_SVC_YMDS --> CHECK_OLD_EMPTY
    CHECK_OLD_EMPTY -- Yes --> SET_OLD_FIRST
    CHECK_OLD_EMPTY -- No --> COMPARE_DATES
    SET_OLD_FIRST --> LOOP_END
    COMPARE_DATES -- Yes --> SET_OLD_OLDER
    COMPARE_DATES -- No --> LOOP_END
    SET_OLD_OLDER --> LOOP_END
    LOOP_END --> CHECK_OLD_NOT_EMPTY
    CHECK_OLD_NOT_EMPTY -- Yes --> CALC_GT_CNT
    CHECK_OLD_NOT_EMPTY -- No --> END_RETURN
    CALC_GT_CNT --> FIRST_SEIKY_FULL
    FIRST_SEIKY_FULL --> COMPARE_FIRST_OLD
    COMPARE_FIRST_OLD -- Yes --> CALC_FROM_FIRST
    COMPARE_FIRST_OLD -- No --> CALC_FROM_SVC_START
    CALC_FROM_FIRST --> GET_NEXT_MON
    CALC_FROM_SVC_START --> GET_NEXT_MON
    GET_NEXT_MON --> COMPARE_NEXT_MON
    COMPARE_NEXT_MON -- Yes --> USE_NEXT_MON
    COMPARE_NEXT_MON -- No --> END_RETURN
    USE_NEXT_MON --> END_RETURN
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | Request parameter container holding screen/operation input data; used to retrieve the billing contract agreement map (`inMap`) via `getData(fixedText)`. The map contains `first_seiky_ym` (first billing month) and other contract change parameters. |
| 2 | `fixedText` | `String` | Template identifier key used to look up specific data sections within `param`. It acts as a namespace for retrieving the billing contract agreement data (請求契約同意書). |
| 3 | `ccMap` | `HashMap<String, Object>` | Component context map shared across the processing chain; currently **unused** by this method but passed for API consistency with other CC methods. |
| 4 | `mryoPrdGtCnt` | `String` | Free-period months count (無料期間月数) — the number of months a customer receives free service before billing begins. Parsed as integer and incremented by 1. For example, a 1-month free period means `gtCnt = 2`, so billing starts 2 months after the reference date. |

**Instance fields / external state read by the method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `TEMPLATE_ID_1_DETAIL` | `String` | Constant referencing the template detail key for service contract list SC (`EKK0081B528CBSMsg1List`) — used to iterate over network service contract records. |
| `TEMP_TEMPLATE_KEY_1` | `String` | Temporary template key prefix for retrieving service contract list results from the `inMap`. Computed as `TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_1 + TEMP_TEMPLATE_PRIFIX_SEP + "1"`. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JFUBaseUtil.getTemplateList` | JFUBaseUtil | - | Reads template list (network service contract detail records) from the input map (`inMap`) — iterates over service contracts with status "100"/"210"/"220" (service provision/suspended/stopped). |
| R | `JCCBPCommon.getOpeDate` | JCCBPCommon | - | Reads the current operational date (運用日) — the system's business date used to calculate the first day of the next month for billing cycle comparison. |
| C | `JPCUtilCommon.addMonth` | JPCUtilCommon | - | Adds months to a YYYYMMDD date string — used to calculate the billing start date from the first billing month (or service start date) plus the free-period months count. |
| - | `JPCUtilCommon.subtractDay` | JPCUtilCommon | - | Compares two YYYYMMDD date strings — returns positive if the first date is later than the second. Used to find the oldest billing start date and to compare calculated dates against the next month's first day. |
| - | `JPCUtilCommon.subtractMonth` | JPCUtilCommon | - | (Available but unused in this method — listed in pre-computed evidence as an alternative date comparison utility.) |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | (Not directly called; method uses `String.substring()` inline instead.) |
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Not directly called by this method. |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Not directly called by this method. |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Not directly called by this method. |
| - | `JKKBaseCC.getTemplateList` | JKKBaseCC | - | Not called by this method. |
| - | `JKKBPActCommon.getTemplateList` | JKKBPActCommon | - | Not called by this method. |
| - | `JKKCreditAddCC.getOpeDate` | JKKCreditAddCC | - | Not called by this method. |
| - | `JCCModelCommon.getOpeDate` | JCCModelCommon | - | Not called by this method. |
| - | `JCHWebCommon.addMonth` | JCHWebCommon | - | Not called by this method. |
| - | `DKSV0157_DKSV0157OPDBMapper.addMonth` | DKSV0157_DKSV0157OPDBMapper | - | Not called by this method. |
| - | `KKW12701SFLogic.getData` | KKW12701SFLogic | - | Not called by this method. |
| - | `JFUeoTelOpTransferCC.getData` | JFUeoTelOpTransferCC | - | Not called by this method. |
| - | `JFUEoTvCngAddStbCC.getOpeDate` | JFUEoTvCngAddStbCC | - | Not called by this method. |
| - | `JFUHikkosiNaviRelAddCC.getOpeDate` | JFUHikkosiNaviRelAddCC | - | Not called by this method. |
| - | `JFUTransferCC.getData` | JFUTransferCC | - | Not called by this method. |
| - | `JFUTransferListToListCC.getData` | JFUTransferListToListCC | - | Not called by this method. |
| - | `JBSbatDKNyukaFinAdd.getData` | JBSbatDKNyukaFinAdd | - | Not called by this method. |
| - | `JFUBPCommon.getTemplateList` | JFUBPCommon | - | Not called by this method. |
| - | `JFUBaseCC.getTemplateList` | JFUBaseCC | - | Not called by this method. |
| - | `JFUBaseUtil.getTemplateList` (alias) | JFUBase | - | Referenced in pre-computed evidence but same as JFUBaseUtil.getTemplateList above. |
| - | `JPCDateUtil.addMonth` | JPCDate | - | Not called by this method (JPCUtilCommon is used instead). |
| - | `JPCDateUtil.subtractDay` | JPCDate | - | Not called by this method. |
| - | `JPCDateUtil.subtractMonth` | JPCDate | - | Not called by this method. |
| - | `JKKCreditAddCC.getOpeDate` | JKKCreditAddCC | - | Not called by this method. |
| - | `JCCBPCommon.getOpeDate` (actual) | JCCBPCommon | - | **Called** — retrieves the current operational date for next-month-first-day calculation. |

**Summary of actual operations performed by this method:**

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JFUBaseUtil.getTemplateList` | JFUBaseUtil | (inMap template data) | Reads network service contract detail records from the input map, each containing service status, service start date, and billing start date. |
| R | `JCCBPCommon.getOpeDate` | JCCBPCommon | (operational date) | Retrieves the current business date to calculate the first day of the month after the application date. |
| C | `JPCUtilCommon.addMonth` | JPCUtilCommon | - | Computes the final billing start date by adding the free-period months count to a reference date (YYYYMMDD format). |
| R | `JPCUtilCommon.subtractDay` | JPCUtilCommon | - | Compares two dates — returns positive if the first date is later. Used for finding the oldest billing start date and for validating the billing cycle boundary. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0063 | `KKSV0063Operation.setInMapSeikyOpSvcKeiStart` -> (direct call, line 498 — commented out) | `JFUBaseUtil.getTemplateList [R] inMap` / `JCCBPCommon.getOpeDate [R] operational date` / `JPCUtilCommon.addMonth [C] computed date` |

**Note:** The only known caller is within `JFUCngSeikyushoYohiCC` itself at line 498, where the method call is **commented out**:
```java
//String kk0441SvcChrgStaYmd = getKk0441SvcChrgStaYmd(param, fixedText, ccMap, mryoPrdGtCnt);
String kk0441SvcChrgStaYmd = JFUBPCommon.getOpeDate(null);
```
This indicates the method is currently **dormant/inactive** in production — the caller uses `JFUBPCommon.getOpeDate(null)` as a direct fallback instead. The method may be intended for future use or may have been disabled pending a business rule revision. No other classes in the codebase reference this method.

## 6. Per-Branch Detail Blocks

**Block 1** — SET `(initialize default)` (L1371)

Initialize the billing start date to the maximum possible date (2099-12-31) as a safe default.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kk0441SvcChrgStaYmd = "20991231"` // Set to max date — "課金開始年月日に最大年月日(20991231)を設定" [-> Max future date] |

**Block 2** — EXEC `(retrieve inMap from param)` (L1373-1374)

Retrieve the billing contract agreement map and extract the first billing month.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap = (HashMap) param.getData(fixedText)` // 請求契約同意書の結果より初回請求年月を取得 — "Retrieve initial billing month from billing contract agreement result" |
| 2 | SET | `firstSeikyYm = (String) inMap.get(EKK0491A010CBSMsg1List.FIRST_SEIKY_YM)` // FIRST_SEIKY_YM = "first_seiky_ym" — "First billing month" |

**Block 3** — IF `(firstSeikyYm != null && !EMPTY)` (L1375)

Check whether the first billing month is set. If not set, skip all processing and return the default "20991231".

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `null != firstSeikyYm && !JFUStrConst.EMPTY.equals(firstSeikyYm)` // JFUStrConst.EMPTY = "" (empty string) |

**Block 3.1** — nested SET `(initialize iteration variables)` (L1378-1382)

| # | Type | Code |
|---|------|------|
| 1 | SET | `oldSvcChrgStaYmd = JFUStrConst.EMPTY` // 最古の課金開始年月日 — "Oldest billing start date" [-> "" = empty sentinel] |
| 2 | SET | `tmpSvcStaYmd = JFUStrConst.EMPTY` // 退避用サービス開始年月日 — "Backup service start date" [-> "" = empty sentinel] |

**Block 3.2** — FOR `(iterate over network service contract detail records)` (L1383-1411)

Loop through all network-type service contract records from the template list (TEMPLATE_ID_1_DETAIL = "EKK0081B528CBSMsg1List") to find the oldest billing start date among active/suspended/stopped services.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `JFUBaseUtil.getTemplateList(inMap, TEMP_TEMPLATE_KEY_1, TEMPLATE_ID_1_DETAIL)` // Iterate over service contract detail records [-> key = "TEMP_EKK0081B528_1" from TEMP_TEMPLATE_PRIFIX + "EKK0081B528" + SEP + "1"] |

**Block 3.2.1** — nested SET `(extract service contract fields)` (L1386-1393)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcKeiStat = (String) netKeiMap.get(EKK0081B528CBSMsg1List.SVC_KEI_STAT)` // SVC_KEI_STAT = "svc_kei_stat" — "Service contract status" |
| 2 | SET | `svcChrgStaYmd = JFUStrConst.EMPTY` // サービス契約の課金開始年月日 — "Service contract billing start date" [-> ""] |
| 3 | SET | `svcStaYmd = JFUStrConst.EMPTY` // サービス契約の開始年月日 — "Service contract start date" [-> ""] |

**Block 3.2.2** — IF `(service status is active, suspended, or stopped)` (L1394)

Only process service contracts that are in an active or partially active state.

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `svcKeiStat = CD00037_100` **OR** `CD00037_210` **OR** `CD00037_220` |
| | | [-> CD00037_100 = "100" (サービス提供中 — service provision in progress)] |
| | | [-> CD00037_210 = "210" (休止中 — suspended)] |
| | | [-> CD00037_220 = "220" (停止中 — stopped)] |

**Block 3.2.2.1** — nested SET `(extract service start and billing dates)` (L1397-1398)

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcStaYmd = (String) netKeiMap.get(EKK0081B528CBSMsg1List.SVC_STA_YMD)` // SVC_STA_YMD = "svc_sta_ymd" — "Service start date (YYYYMMDD)" |
| 2 | SET | `svcChrgStaYmd = (String) netKeiMap.get(EKK0081B528CBSMsg1List.SVC_CHRG_STAYMD)` // SVC_CHRG_STAYMD = "svc_chrg_staymd" — "Service billing start date (YYYYMMDD)" |

**Block 3.2.2.2** — IF `(oldest billing start date is still empty)` (L1400)

This is the first qualifying record — initialize the oldest tracking variables.

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `JFUStrConst.EMPTY.equals(oldSvcChrgStaYmd)` // oldSvcChrgStaYmd == "" |
| 2 | SET | `tmpSvcStaYmd = svcStaYmd` // Save service start date as backup |
| 3 | SET | `oldSvcChrgStaYmd = svcChrgStaYmd` // Save billing start date as oldest |
| 4 | EXEC | `continue` // Skip to next record — no need to compare with itself |

**Block 3.2.2.3** — IF `(current billing start date is older than tracked oldest)` (L1407)

Compare the current record's billing start date against the previously tracked oldest.

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `0 < JPCUtilCommon.subtractDay(oldSvcChrgStaYmd, svcChrgStaYmd)` // Returns positive if old > current |
| 2 | SET | `tmpSvcStaYmd = svcStaYmd` // Update backup with current record's service start date |
| 3 | SET | `oldSvcChrgStaYmd = svcChrgStaYmd` // Update oldest with current record's billing start date |

**Block 4** — IF `(oldest billing start date was found)` (L1414)

After the loop, check if any qualifying service contract records were found.

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `!JFUStrConst.EMPTY.equals(oldSvcChrgStaYmd)` // oldSvcChrgStaYmd != "" |

**Block 4.1** — SET `(compute free-period count and first billing month)` (L1417-1419)

| # | Type | Code |
|---|------|------|
| 1 | SET | `gtCnt = Integer.parseInt(mryoPrdGtCnt) + 1` // 無料期間月数 + 1（調整分）— "Free period months count + 1 (adjustment)" |
| 2 | SET | `firstSeikyYm = firstSeikyYm + "01"` // 初回請求年月にDD部分("01")を追加 — "Append day part '01' to first billing month" |

**Block 4.2** — IF `(first billing month is on or after oldest billing start date)` (L1420)

This is the primary calculation path: when the first billing month already extends past the oldest existing billing start, the calculation is based on the first billing month.

| # | Type | Code |
|---|------|------|
| 1 | CONDITION | `0 <= JPCUtilCommon.subtractMonth(firstSeikyYm, oldSvcChrgStaYmd)` // Returns non-negative if first >= old |
| 2 | SET | `kk0441SvcChrgStaYmd = JPCUtilCommon.addMonth(firstSeikyYm, gtCnt)` // 初回請求年月より課金開始日算出 — "Calculate billing start date from first billing month" |

**Block 4.3** — ELSE `(first billing month is before oldest billing start date)` (L1424)

Fallback calculation path: when the first billing month precedes the oldest existing billing start, the calculation is based on the service start date instead.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpSvcStaYmd = tmpSvcStaYmd.substring(0, 6) + "01"` // サービス開始日のDD部分を編集 — "Edit day part of service start date" |
| 2 | SET | `kk0441SvcChrgStaYmd = JPCUtilCommon.addMonth(tmpSvcStaYmd, gtCnt)` // サービス開始日より課金開始日算出 — "Calculate billing start date from service start date" |

**Block 4.4** — SET `(compute next month's first day and apply billing cycle constraint)` (L1432-1441)

Regardless of which calculation path was taken, ensure the billing start date does not precede the first day of the next month after the application date. This enforces the natural billing cycle boundary.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskNextMon1stDay = JPCUtilCommon.addMonth(JCCBPCommon.getOpeDate(null), 1)` // 申請日の翌月月初 — "First day of the next month after application date" |
| 2 | SET | `mskNextMon1stDay = mskNextMon1stDay.substring(0, 6) + "01"` // Append "01" to get first day |
| 3 | CONDITION | `0 <= JPCUtilCommon.subtractDay(mskNextMon1stDay, kk0441SvcChrgStaYmd)` // Returns non-negative if nextMonth <= calculated date |
| 4 | SET | `kk0441SvcChrgStaYmd = mskNextMon1stDay` // 申請日の翌月月初を採用 — "Adopt the first day of the next month after application" |

**Block 5** — RETURN `(return the calculated billing start date)` (L1445)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `kk0441SvcChrgStaYmd` // 請求オプションサービス契約のサービス課金開始年月日 — "Service billing start date for billing option service contract" |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `kk0441SvcChrgStaYmd` | Field | Billing start date (YYYYMMDD) — the final computed result indicating when billing for the service contract should commence |
| `firstSeikyYm` | Field | First billing month (YYYYMM) — the month in which the customer's first invoice is generated for the contract |
| `oldSvcChrgStaYmd` | Field | Oldest billing start date — tracks the earliest billing start date encountered during iteration over service contracts |
| `tmpSvcStaYmd` | Field | Temporary service start date (backup) — holds the service start date corresponding to the oldest billing start date |
| `svcKeiStat` | Field | Service contract status (サービス契約ステータス) — indicates the current state of a service contract line |
| `svcKeiNo` | Field | Service contract number (サービス契約番号) — unique identifier for a service contract line |
| `svcStaYmd` | Field | Service start date (サービス開始年月日) — when the service contract's active period begins (YYYYMMDD) |
| `svcChrgStaYmd` | Field | Service billing start date (サービス課金開始年月日) — when billing for this service contract begins (YYYYMMDD) |
| `mryoPrdGtCnt` | Field | Free-period months count (無料期間月数) — number of grace months before billing commences |
| `gtCnt` | Local | Gross count = free-period months + 1 (adjustment) — used as the month offset for billing start date calculation |
| CD00037_100 | Constant | Service status "100" = サービス提供中 (service provision in progress) — active service contract |
| CD00037_210 | Constant | Service status "210" = 休止中 (suspended) — temporarily suspended service |
| CD00037_220 | Constant | Service status "220" = 停止中 (stopped) — service has been stopped |
| FIRST_SEIKY_YM | Constant | Key "first_seiky_ym" — first billing month in the billing contract agreement map |
| SVC_KEI_STAT | Constant | Key "svc_kei_stat" — service contract status code in EKK0081B528CBSMsg1List |
| SVC_STA_YMD | Constant | Key "svc_sta_ymd" — service start date in EKK0081B528CBSMsg1List |
| SVC_CHRG_STAYMD | Constant | Key "svc_chrg_staymd" — service billing start date in EKK0081B528CBSMsg1List |
| EKK0081B528 | Constant | Service contract list SC ID — "サービス契約一覧照会（請求契約番号・ネット）" (Service contract list inquiry by billing contract number, network) |
| EKK0491A010 | Constant | Billing contract agreement SC ID — "請求契約同意書" (Billing contract agreement document) |
| JPCUtilCommon | Utility class | Date utility — provides `addMonth()` and `subtractDay()` for YYYYMMDD date manipulation |
| JCCBPCommon | Utility class | Common business processor — provides `getOpeDate()` for retrieving the operational/business date |
| JFUStrConst | Constant class | String constant definitions — includes `EMPTY` (""), `CD00037_*` (service status codes) |
| JFUBaseUtil | Utility class | Base utility — provides `getTemplateList()` for iterating over structured map data |
| REQUEST_PARAM | Field | Request parameter object — carries screen input data through the operation chain |
| TEMPLATE_ID_1_DETAIL | Constant | "EKK0081B528CBSMsg1List" — template detail key for network service contract records |
| TEMP_TEMPLATE_KEY_1 | Constant | Template key for retrieving service contract list results — derived from prefix + template ID + separator + sequence number |
| CC | Abbreviation | Common Component (共通コンポーネント) — shared business logic component in the tiered architecture |
| CBS | Abbreviation | Center Business System (センタービジネスシステム) — Fujitsu's SOA-style business system architecture |
| SC | Abbreviation | Service Component — a service component in the CBS architecture, typically invoked via `executeSC` |
| CCMap | Abbreviation | Component Context Map — shared HashMap passed between CC methods for data sharing |
| K-Opticom | Business term | Japanese telecommunications provider offering fiber-optic internet, phone, and TV services |
| 請求書送付要否変更 | Business term | Billing statement submission/rejection change — the screen/workflow that determines whether to send a billing statement |
| サービス課金開始年月日 | Business term | Service billing start date — when a customer begins being charged for a service contract |
| 無料期間 | Business term | Free period — grace period before billing commences for new or changed contracts |
| ネット契約 | Business term | Network contract — a service contract for network-type services (e.g., fiber internet) |
| サブストリング (substring) | Technical operation | Truncating a YYYYMMDD string to YYYYMM by taking first 6 characters, then appending "01" for day |
