# Business Logic — JKKNsidPwdChgOrsjgsCC.chgNsidPwd() [206 LOC]

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

## 1. Role

### JKKNsidPwdChgOrsjgsCC.chgNsidPwd()

The `chgNsidPwd` method is the central entry point for **Authentication ID Password Change for Downstream Business Partners** (`認証IDパスワード変更(卸先事業者)`) in the K-Opticom e-Customer Core System. It handles the end-to-end business process of changing or initializing an ISP authentication ID password for customers associated with downstream business partners (sub-dealers/resellers).

The method implements a **conditional dispatch/routing pattern** based on the `categoryOfChange` field extracted from incoming request parameters, branching into two distinct business flows: (1) **Change (`変更`)** — modifies the existing ISP authentication ID password, registering the request as a service order and triggering SOD (Service Order Data) issuance; and (2) **Initialization (`初期化`)** — resets the authentication credentials to their original state via the ID/PW initialization/reissue CBS.

Before dispatching, the method performs comprehensive **precondition validation** through `chkKnrn`, verifying contract existence, downstream business partner eligibility and validity period, and authentication ID existence — ensuring the customer's service contract is in an acceptable state for modification.

The method serves as a **shared utility component** called by screen operation handlers (specifically KKSV0901), making it a critical cross-cutting service for password management across the e-Customer portal. It orchestrates interactions with multiple Service Components (SCs) and CBSs, managing a full lifecycle from validation through submission, SOD issuance, and response assembly.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["chgNsidPwd"])

    START --> GET["Get ccMsg from
param.getData"]

    GET --> CHK["chkKnrn validation"]

    CHK --> CHK_OK{chkKnrn
OK?}

    CHK_OK -- false --> EARLY_RET["Return param"]

    CHK_OK -- true --> CAT_GET["Get categoryOfChange"]

    CAT_GET --> CAT_CHK{categoryOfChange
= Change?}

    CAT_CHK -- true --> CHG_BRANCH["Change Branch"]

    CHG_BRANCH --> ADD_M["addMskmNyoSnn
Submit acceptance"]

    ADD_M --> CHG_ISP["chgISPNsidPwd
Change ISP password"]

    CHG_ISP --> ADD_PRG["addPrg
Register progress"]

    ADD_PRG --> HAKKO_SOD["Build SOD map
hakkoSOD"]

    HAKKO_SOD --> NORMAL_RET["setResponse
Return param"]

    CAT_CHK -- false --> SHKKA_CHK{categoryOfChange
= Init?}

    SHKKA_CHK -- true --> SHKKA_BRANCH["Init Branch"]

    SHKKA_BRANCH --> BUILD_MAP["Build idPwdShkka map"]

    BUILD_MAP --> EXEC_SHKKA["executeShkkaHakko
ID/PW init"]

    EXEC_SHKKA --> NORMAL_RET

    SHKKA_CHK -- false --> NORMAL_RET

    EARLY_RET --> END(["Return param"])

    NORMAL_RET --> END
```

**Constant Resolution:**

| Constant Name | Resolved Value | Business Meaning |
|---------------|---------------|------------------|
| `CATEGORY_OF_CHANGE_CHG` | `"1"` | Change (`変更`) — modify existing password |
| `CATEGORY_OF_CHANGE_SHKKA` | `"2"` | Initialization (`初期化`) — reset to initial state |
| `HAKKO_SOD_CC_MAP` | `"HakkoSODCC"` | Key for SOD issuance CC map in request params |
| `ID_PWD_SHKKA_CC_MAP` | `"IdPwdShkkaSaifurHakkoCC"` | Key for ID/PW init CC map in request params |
| `JKKHakkoSODConstCC.FUNC_CODE_1` | `"1"` | Function code for registration/issuance |
| `JKKSvcConst.IDO_DIV_IDPWD_SHKKA_SAIFURI` | `"00052"` | Displacement classification: Various ID Password Initial/Re-issue/Re-release |
| `JKKSvcConst.PRG_STAT_5401` | `"5401"` | Progress status code for password change request |
| `JPCModelConstant.FUNC_CD_1` | `"1"` | Function code: Registration/Issuance |
| `JPCModelConstant.FUNC_CD_2` | `"2"` | Function code: Inquiry/Retrieval |
| `JKKStrConst.CD00130_01` | `"01"` | Internet Service |
| `JKKStrConst.CD00846_OTHER` | — | "Other" (《その他》) — displacement reason code |
| `JKKStrConst.CD00037_SHOSA_ZUMI` | `"020"` | Contract status: Investigation Complete |
| `JKKStrConst.CD00037_CNC_ZM` | — | Contract status: Cancellation/Maintenance |
| `JKKStrConst.CD00037_SVCTK_CHU` | — | Contract status: Service Stop Processing |
| `JKKStrConst.CD00037_STAT_PAUSE` | — | Contract status: Suspension |
| `JKKStrConst.CD00037_STAT_STP` | — | Contract status: Stopped |

**Processing Flow Summary:**

1. **Parameter Extraction**: Retrieves the `ccMsg` map from `param.getData(fixedText)` — this contains authentication ID password change parameters including `channel`, `commonKey`, `authenticationId`, `authenticationIdPassword`, `categoryOfChange`, etc.

2. **Service Component Request Invoker Creation**: Instantiates `ServiceComponentRequestInvoker scCall` for SC invocation routing.

3. **Validation (`chkKnrn`)**: Performs multi-layered precondition checks (see Block 1 detailed analysis below).

4. **Branch Routing by `categoryOfChange`**:
   - **Branch 1 (`"1"` — Change)**: Registers acceptance content, changes ISP authentication ID password, registers progress, and issues a Service Order.
   - **Branch 2 (`"2"` — Initialization)**: Prepares and executes ID/PW initialization/reissue via `JKKIdPwdShkkaSaifurHakkoCC.executeShkkaHakko`.

5. **Response Assembly**: Sets normal response code and returns `param`.

6. **Error Handling**: Catch block catches any `Throwable`, sets system error response, and re-throws.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle managing the DB connection context for the current transaction/operation scope. Provides the database session for all SC (Service Component) calls within this method. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the full request payload including user data, control maps, and CC-specific data. Used to read incoming parameters (via `getData`) and write back responses (via `setData`). Contains the `ccMsg` map keyed by `fixedText` with authentication ID password change context. |
| 3 | `fixedText` | `String` | User-defined string used as a key to retrieve CC-specific data from the `param` object. Acts as a namespace discriminator to access the authentication ID password change (downstream business partner) CC map within the broader request parameter structure. |

**Instance Fields Read by This Method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `commonKey` | `String` | Common key — the unique identifier linking service contract, customer, and downstream business partner data. Populated during `chkKnrn` from the incoming `ccMsg`. |
| `sysid` | `String` | System ID — the customer's unique system identifier within the K-Opticom platform. Populated from the service contract inquiry during `chkKnrn`. |
| `opeDate` | `String` | Operation date — the current business processing date, retrieved via `JPCBPCommon.getOpeDate()`. Used in contract checks and SOD issuance. |
| `ninshoId` | `String` | Authentication ID — the customer's current ISP login ID, populated from the auth ID listing SC during `chkKnrn`. |
| `ninshoIdPwd` | `String` | Authentication ID Password — the customer's current password, populated from the auth ID listing SC. Used for authentication in the password change SC. |
| `svcKeiUcwkNo` | `String` | Service Contract Detail Number — the unique detail line identifier for the service contract. Populated during `chgISPNsidPwd`. |
| `updDtm` | `String` | Update Datetime — the last update timestamp of the service contract, retrieved from the service contract inquiry SC. |
| `mskmDtlNo` | `String` | Submission Detail Number — the detail number assigned after registering acceptance content. Populated during `addMskmNyoSnn`. |
| `geneAddDtm` | `String` | Generation Addition Datetime — the timestamp of the service contract detail line creation. Populated during `chgISPNsidPwd`. |
| `kk0161GeneAddDtm` | `String` | Service Contract Detail Generation Addition Datetime — additional generation timestamp for service contract details, populated by the ISP password change SC response. |

## 4. CRUD Operations / Called Services

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

The following table lists all method calls within `chgNsidPwd` and its called helper methods, classified by CRUD operation. SC Codes are inferred from the CBS message class names (e.g., `EKK0081A010CBSMsg` → SC Code `EKK0081A010`). Entity/DB tables are inferred from CBS naming conventions and service domain context.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callSC (chkKnrn - contract check)` | EKK0081A010 | KK_T_SVC_KEI (Service Contract Table) | Inquiry service contract agreement to verify existence and retrieve sysid, update datetime |
| R | `callSC (chkKnrn - customer agreement)` | ECK0011A010 | KK_T_CUST_KEI (Customer Contract Table) | Inquiry customer agreement to retrieve downstream business partner code (orsjgsCd) |
| R | `callSC (chkKnrn - downstream partner)` | ECH0911A010 | KK_T_ORSJGS (Downstream Business Partner Table) | Inquiry downstream business partner agreement to validate applicability period |
| R | `callSC (chkKnrn - auth ID listing)` | EKK0171B001 | KK_T_AUTH_ID_NINSHO (Authentication ID Listing Table) | Inquiry authentication ID list to verify auth ID existence and retrieve current password |
| C | `callSC (addMskmNyoSnn - submit acceptance)` | EKK0011D020 | KK_T_MSKM (Submission Content Table) | Register acceptance content detail for the password change request |
| R | `callSC (addMskmNyoSnn - detail inquiry)` | EKK0021C060 | KK_T_MSKM_DTl (Submission Detail Table) | Inquiry submission detail and register post-processing work request |
| R | `callSC (chgISPNsidPwd - verify old password)` | EKK0171B002 | KK_T_AUTH_ID_PWD_NINSHO (Auth ID Password Authentication Table) | Authenticate existing ISP auth ID password and retrieve service contract detail number |
| U | `callSC (chgISPNsidPwd - change password)` | EKK0171C012 | KK_T_SVC_KEI_UCWK (Service Contract Detail Table) | Update ISP authentication ID password with new value |
| C | `callSC (addPrg - register progress)` | EKK1091D010 | KK_T_PRG (Progress Management Table) | Register progress for the password change request with displacement reason detail |
| C | `hakkoSOD.hakkoSOD` | JKKHakkoSODCC | Various SOD entities (Service Order Data tables) | Issue Service Order Data (SOD) for the password change processing |
| C | `executeShkkaHakko` | JKKIdPwdShkkaSaifurHakkoCC | ID/PW initialization tables | Execute ID/PW initialization/reissue for the customer |
| - | `chkKnrn` | JKKNsidPwdChgOrsjgsCC | - | Internal validation method performing precondition checks |
| - | `addMskmNyoSnn` | JKKNsidPwdChgOrsjgsCC | - | Internal method for registering acceptance content |
| - | `chgISPNsidPwd` | JKKNsidPwdChgOrsjgsCC | - | Internal method for changing ISP authentication ID password |
| - | `addPrg` | JKKNsidPwdChgOrsjgsCC | - | Internal method for registering progress |
| - | `setResponse` | JKKNsidPwdChgOrsjgsCC | - | Internal method for setting response data in ccMsg |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0901 | `KKSV0901OPOperation.target1` (CCRequestBroker) -> `JKKNsidPwdChgOrsjgsCC.chgNsidPwd` | EKK0081A010 [R] KK_T_SVC_KEI; ECK0011A010 [R] KK_T_CUST_KEI; ECH0911A010 [R] KK_T_ORSJGS; EKK0171B001 [R] KK_T_AUTH_ID_NINSHO; EKK0011D020 [C] KK_T_MSKM; EKK0021C060 [R] KK_T_MSKM_DTL; EKK0171B002 [R] KK_T_AUTH_ID_PWD; EKK0171C012 [U] KK_T_SVC_KEI_UCWK; EKK1091D010 [C] KK_T_PRG; JKKHakkoSODCC [C] SOD; JKKIdPwdShkkaSaifurHakkoCC [C] ID/PW Init |

**Note:** The primary entry point is the KKSV0901 screen operation. The `KKSV0901OPOperation` class uses a `CCRequestBroker` to invoke `chgNsidPwd` with the following parameters:
- CC Target: `com.fujitsu.futurity.bp.custom.common.JKKNsidPwdChgOrsjgsCC`
- CC Method: `chgNsidPwd`
- CC Target Class Name: `KKSV090101CC`
- Exception Judge: `DefaultCCExceptionJudge`

This is the only caller found in the codebase. The KKSV0901 screen serves as the user interface for authentication ID password changes for downstream business partners.

## 6. Per-Branch Detail Blocks

**Block 1** — [EXCEPTION HANDLER] `(try-catch Throwable)` (L135)

> Wraps all core processing in a try-catch to handle system errors.

| # | Type | Code |
|---|------|------|
| 1 | SET | `Map<String, Object> ccMsg = (Map<String, Object>) param.getData(fixedText)` // Get authentication ID password change (downstream business partner) CC map [L133] |
| 2 | SET | `ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker()` // Instantiate SC call router with null log name [L142-143] |
| 3 | CALL | `chkKnrn(handle, scCall, param, fixedText, ccMsg)` // Perform precondition validation [L146] |
| 4 | SET | `if (!chkKnrn(...))` // If validation fails, return early [L147] |
| 5 | RETURN | `return param` // Return unchanged on validation failure [L149] |
| 6 | SET | `String categoryOfChange = (String) ccMsg.get("categoryOfChange")` // Get change type from map [L153] |
| 7 | SET | `String authenticationIdPassword = (String) ccMsg.get("authenticationIdPassword")` // Get post-change auth ID password [L155] |

---

**Block 2** — [IF] `(CATEGORY_OF_CHANGE_CHG.equals(categoryOfChange))` [CATEGORY_OF_CHANGE_CHG = "1" (Change)] (L157)

> **Change Branch (`変更`)**: When `categoryOfChange` equals "1", this branch handles modifying the existing ISP authentication ID password. It registers the acceptance content, changes the password via the ISP password change SC, registers progress, and issues a Service Order.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addMskmNyoSnn(handle, scCall, param, fixedText, sysid)` // Submit content acceptance registration [L162] |
| 2 | CALL | `chgISPNsidPwd(handle, scCall, param, fixedText, authenticationIdPassword)` // Change ISP auth ID password [L166] |
| 3 | CALL | `addPrg(handle, scCall, param, fixedText, commonKey, JKKSvcConst.PRG_STAT_5401)` // Register progress with status "5401" [L170] |
| 4 | SET | `Map<String, Object> hakkoSod = new HashMap<String, Object>()` // Build SOD issuance CC map [L176] |
| 5 | SET | `List<Map<String, Object>> trgtDataList = new ArrayList<Map<String, Object>>()` // Target data list [L178] |
| 6 | EXEC | `hakkoSod.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, trgtDataList)` // Set target data list in SOD map [L179] |
| 7 | SET | `Map<String, Object> trgtData = new HashMap<String, Object>()` // Target data entry [L180] |
| 8 | EXEC | `trgtDataList.add(trgtData)` // Add target data to list [L181] |
| 9 | SET | `Map<String, Object> sodKihonInfo = new HashMap<String, Object>()` // SOD basic information [L183] |
| 10 | EXEC | `trgtData.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo)` // Set SOD basic info [L184] |
| 11 | SET | `sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID, sysid)` // Set SYSID [L186] |
| 12 | SET | `sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKSvcConst.IDO_DIV_IDPWD_SHKKA_SAIFURI)` // "00052" — Various ID Password Initial/Re-issue/Re-release [L188] |
| 13 | SET | `sodKihonInfo.put(JKKHakkoSODConstCC.INFO_PASSWORD_SHORI_DIV, "3")` // "3" — Authentication ID usage [L190] |
| 14 | SET | `sodKihonInfo.put(JKKHakkoSODConstCC.INFO_PASSWORD_SAIHAKKO_DIV, "2")` // "2" — Re-issue [L192] |
| 15 | SET | `hakkoSod.put(JCMConstants.FUNC_CODE_KEY, JKKHakkoSODConstCC.FUNC_CODE_1)` // Function code = "1" [L194] |
| 16 | SET | `Map<String, Object> svcKeiInfo = new HashMap<String, Object>()` // Service contract info [L197] |
| 17 | EXEC | `trgtData.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo)` // Set service contract info [L198] |
| 18 | SET | `svcKeiInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_NO, commonKey)` // Set service contract number [L200] |
| 19 | SET | `Map<String, Object> svcKeiUcwkInfo = new HashMap<String, Object>()` // Service contract detail info [L203] |
| 20 | EXEC | `trgtData.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo)` // Set service contract detail info [L204] |
| 21 | SET | `svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, svcKeiUcwkNo)` // Set service contract detail number [L206] |
| 22 | SET | `svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHBF_SVC_KEI_UCWK_GENE_ADD_DTM, geneAddDtm)` // Set generation addition datetime [L208] |
| 23 | SET | `svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, kk0161GeneAddDtm)` // Set service contract detail generation datetime [L210] |
| 24 | EXEC | `param.setData(HAKKO_SOD_CC_MAP, hakkoSod)` // Set SOD CC map into param [L212] |
| 25 | SET | `JKKHakkoSODCC hakkoSODCC = new JKKHakkoSODCC()` // Instantiate SOD issuance CC [L214] |
| 26 | CALL | `hakkoSODCC.hakkoSOD(handle, param, HAKKO_SOD_CC_MAP)` // Issue Service Order Data [L215] |

---

**Block 3** — [ELSE-IF] `(CATEGORY_OF_CHANGE_SHKKA.equals(categoryOfChange))` [CATEGORY_OF_CHANGE_SHKKA = "2" (Initialization)] (L216)

> **Initialization Branch (`初期化`)**: When `categoryOfChange` equals "2", this branch handles resetting the authentication ID and password to their initial values. It builds a comprehensive ID/PW initialization request map with all customer and service contract data, then delegates to `JKKIdPwdShkkaSaifurHakkoCC.executeShkkaHakko`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `Map<String, Object> idPwdShkka = new HashMap<String, Object>()` // Build ID/PW init CC map [L222] |
| 2 | SET | `idPwdShkka.put("func_code", JPCModelConstant.FUNC_CD_1)` // "1" — Registration/Issuance function code [L225] |
| 3 | SET | `List<Map<String, Object>> custKeiHktgiList = new ArrayList<Map<String, Object>>()` // Customer contract continuation list [L228] |
| 4 | SET | `idPwdShkka.put("cust_kei_hktgi_list", custKeiHktgiList)` // Set customer continuation list [L229] |
| 5 | SET | `Map<String, Object> custKeiHktgi = new HashMap<String, Object>()` // Customer contract continuation entry [L230] |
| 6 | EXEC | `custKeiHktgiList.add(custKeiHktgi)` // Add continuation entry [L231] |
| 7 | SET | `custKeiHktgi.put("ido_div", JKKSvcConst.IDO_DIV_IDPWD_SHKKA_SAIFURI)` // "00052" — Various ID Password Initial/Re-issue/Re-release [L233] |
| 8 | SET | `List<Map<String, String>> idoRsnCdList = new ArrayList<Map<String, String>>()` // Displacement reason code list [L236] |
| 9 | SET | `Map<String, String> idoRsnCd = new HashMap<String, String>()` // Displacement reason entry [L237] |
| 10 | SET | `idPwdShkka.put("ido_rsn_cd_list", idoRsnCdList)` // Set displacement reason list [L238] |
| 11 | SET | `idoRsnCdList.add(idoRsnCd)` // Add reason entry [L239] |
| 12 | SET | `idoRsnCd.put("ido_rsn_cd", JKKStrConst.CD00846_OTHER)` // "Other" displacement reason [L241] |
| 13 | SET | `idoRsnCd.put("ido_rsn_memo", "")` // Empty displacement memo [L242] |
| 14 | SET | `idPwdShkka.put("hakko_div", "0")` // "0" — Non-issuance [L245] |
| 15 | SET | `List<Map<String, Object>> custList = new ArrayList<Map<String, Object>>()` // Customer info list [L253] |
| 16 | SET | `idPwdShkka.put("custList", custList)` // Set customer list [L254] |
| 17 | SET | `Map<String, Object> cust = new HashMap<String, Object>()` // Customer entry [L255] |
| 18 | EXEC | `custList.add(cust)` // Add customer entry [L256] |
| 19 | SET | `cust.put("sysid", sysid)` // Set SYSID [L258] |
| 20 | SET | `List<Map<String, Object>> eoIdInfoList = new ArrayList<Map<String, Object>>()` // eoID info list [L261] |
| 21 | SET | `idPwdShkka.put("eoIdInfoList", eoIdInfoList)` // Set eoID list [L262] |
| 22 | SET | `Map<String, Object> eoIdInfo = new HashMap<String, Object>()` // eoID info entry [L263] |
| 23 | EXEC | `eoIdInfoList.add(eoIdInfo)` // Add eoID entry [L264] |
| 24 | SET | `eoIdInfo.put("shk_eoid_re_hrids", false)` // Initial eoID re-issue disabled [L266] |
| 25 | SET | `eoIdInfo.put("shk_eoid_pwd_re_hrids", false)` // Initial eoID PW re-issue disabled [L267] |
| 26 | SET | `eoIdInfo.put("family_cd_re_hrids", false)` // Family code re-issue disabled [L268] |
| 27 | SET | `eoIdInfo.put("family_cd_pwd_re_hrids", false)` // Family code PW re-issue disabled [L269] |
| 28 | SET | `eoIdInfo.put("eoid_reset", false)` // eoID reset disabled [L270] |
| 29 | SET | `eoIdInfo.put("eoid_pwd_reset", false)` // eoID PW reset disabled [L271] |
| 30 | SET | `List<Map<String, Object>> svcKeiList = new ArrayList<Map<String, Object>>()` // Service contract list [L274] |
| 31 | SET | `idPwdShkka.put("svcKeiList", svcKeiList)` // Set service contract list [L275] |
| 32 | SET | `Map<String, Object> svcKei = new HashMap<String, Object>()` // Service contract entry [L276] |
| 33 | EXEC | `svcKeiList.add(svcKei)` // Add service contract entry [L277] |
| 34 | SET | `svcKei.put("svc_kei_no", commonKey)` // Set service contract number [L279] |
| 35 | SET | `svcKei.put("svc_cd", JKKStrConst.CD00130_01)` // "01" — Internet Service [L281] |
| 36 | SET | `svcKei.put("upd_dtm", updDtm)` // Set update datetime [L283] |
| 37 | SET | `svcKei.put("use_plc", "")` // Empty usage location (not used, but null causes error) [L285] |
| 38 | SET | `svcKei.put("svc_kei_sel", false)` // Service contract selection disabled [L286] |
| 39 | SET | `svcKei.put("svc_kei_pop_pwd_re_hrids", false)` // POP PW re-issue disabled [L287] |
| 40 | SET | `svcKei.put("svc_kei_web_id_pwd_re_hrids", false)` // WEB ID PW re-issue disabled [L288] |
| 41 | SET | `svcKei.put("svc_kei_ninsyo_pwd_re_hrids", false)` // Auth ID PW re-issue disabled [L289] |
| 42 | SET | `svcKei.put("svc_kei_ninsyo_pwd_reset", true)` // Auth ID PW reset enabled [L290] |
| 43 | SET | `svcKei.put("svc_kei_web_id_pwd_reset", false)` // WEB ID PW reset disabled [L291] |
| 44 | SET | `svcKei.put("svc_kei_pop_pwd_reset", false)` // POP PW reset disabled [L292] |
| 45 | SET | `svcKei.put("svc_kei_rmts_pwd_reset", false)` // Remote operation PW reset disabled [L293] |
| 46 | EXEC | `param.setData(ID_PWD_SHKKA_CC_MAP, idPwdShkka)` // Set ID/PW init CC map into param [L298] |
| 47 | SET | `JKKIdPwdShkkaSaifurHakkoCC idPwdShkkaSaifurHakkoCC = new JKKIdPwdShkkaSaifurHakkoCC()` // Instantiate ID/PW init CC [L300] |
| 48 | CALL | `idPwdShkkaSaifurHakkoCC.executeShkkaHakko(handle, param, ID_PWD_SHKKA_CC_MAP)` // Execute ID/PW initialization/reissue [L301] |

---

**Block 4** — [END OF TRY] — Normal Response Handling (L303)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setResponse(ccMsg, JKKStrConst.CHECK_OK, null)` // Set normal response [L305] |

---

**Block 5** — [CATCH] `(Throwable)` (L309)

> System error handler: catches any thrown exception, sets system error response with return code 9000, and re-throws the original exception.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setResponse(ccMsg, JKKStrConst.RETURN_CD_9000, JKKStrConst.RETURN_MESSAGE_SYSTEM_ERROR)` // Set system error response [L312] |
| 2 | RETURN | `throw throwable` // Re-throw the original exception [L314] |

---

**Block 6** — [RETURN] (L317)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` // Return the processed request parameter object [L317] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `ninshoId` | Field | Authentication ID — the customer's ISP login identifier |
| `ninshoIdPwd` | Field | Authentication ID Password — the customer's current ISP password |
| `commonKey` | Field | Common Key — the unique identifier linking service contracts, customers, and downstream business partners |
| `sysid` | Field | System ID — the unique system identifier for a customer in the K-Opticom platform |
| `svcKeiUcwkNo` | Field | Service Contract Detail Number — the unique line-item identifier for a service contract detail |
| `mskmDtlNo` | Field | Submission Detail Number — the detail number assigned when registering acceptance content for processing |
| `geneAddDtm` | Field | Generation Addition Datetime — the timestamp when the service contract detail line was created |
| `kk0161GeneAddDtm` | Field | Service Contract Detail Generation Addition Datetime — additional generation timestamp for service contract details, returned by the ISP password change SC |
| `categoryOfChange` | Field | Change Type Classification — determines whether the operation is a "change" (1) or "initialization" (2) |
| `authenticationIdPassword` | Field | Post-Change Authentication ID Password — the new password value provided in the request |
| `channel` | Field | Request Source Classification — indicates the channel through which the request was submitted, used to validate against the downstream business partner code |
| SOD | Acronym | Service Order Data — a telecom order fulfillment entity representing the generated service order for the password change |
| SOD_KIHON_INFO | Field | SOD Basic Information — core SOD data including SYSID, displacement classification, and password processing details |
| SVC_KEI_INFO | Field | Service Contract Information — data identifying the service contract for the SOD |
| SVC_KEI_UCWK_INFO | Field | Service Contract Detail Information — data identifying the service contract detail line for the SOD |
| FUNC_CODE_1 | Constant | Function Code "1" — indicates registration/issuance operation (as opposed to inquiry) |
| IDO_DIV_IDPWD_SHKKA_SAIFURI | Constant | "00052" — Displacement Classification: Various ID Password Initial/Re-issue/Re-release |
| PRG_STAT_5401 | Constant | "5401" — Progress Status code for password change request registration |
| CD00130_01 | Constant | "01" — Internet Service (the service type being managed) |
| CD00846_OTHER | Constant | Displacement Reason Code: "Other" (《その他》) |
| CD00037_SHOSA_ZUMI | Constant | "020" — Contract Status: Investigation Complete |
| CD00037_CNC_ZM | Constant | Contract Status: Cancellation/Maintenance (Zanari/Chusa Mei) |
| CD00037_SVCTK_CHU | Constant | Contract Status: Service Stop Processing (Service Teki Chuu) |
| CD00037_STAT_PAUSE | Constant | Contract Status: Suspension (Teishi Chuu) |
| CD00037_STAT_STP | Constant | Contract Status: Stopped (Teishi) |
| RETURN_CD_9000 | Constant | System Error Return Code |
| RETURN_MESSAGE_SYSTEM_ERROR | Constant | System Error Message Text |
| CHECK_OK | Constant | Normal/Successful Return Code |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service (domain context for password management operations) |
| ISP | Business term | Internet Service Provider — the ISP authentication credentials being managed in this method |
| BS | Acronym | Business System — the broader K-Opticom business system framework |
| CBS | Acronym | Component-Based Service — Service Component invoked via the SC interface for database operations |
| SC Code | Acronym | Service Component Code — the unique identifier for a Service Component (e.g., EKK0081A010) |
| CC | Acronym | Common Component — shared business logic component (AbstractCommonComponent subclass) |
| CAANMsg | Acronym | Custom messaging framework object used for CBS request/response data exchange |
| KK_T_ (prefix) | Table Pattern | K-Opticom database table prefix — tables storing contract, customer, authentication, and progress data |
| EKK/SVC | Acronym | Service Contract SC codes (EKK) — SC codes in the EKK range manage service contract operations |
| ECK/CUST | Acronym | Customer SC codes (ECK) — SC codes in the ECK range manage customer operations |
| ECH/ORSJGS | Acronym | Downstream Business Partner SC codes (ECH) — SC codes in the ECH range manage downstream business partner operations |
| Downstream Business Partner | Business term | 卸先事業者 — a reseller/sub-dealer that provides K-Opticom services to end customers under their own brand |
| 変更 (Henkou) | Business term | Change — modifying an existing credential to a new value (vs. initialization) |
| 初期化 (Shokika) | Business term | Initialization — resetting a credential to its original default value |
| 申請内容承認登録 (Shinai Naiyou Shounin Touroku) | Business term | Submission Content Acceptance Registration — the process of registering a service request for approval |
| 進捗登録 (Shinshoku Touroku) | Business term | Progress Registration — recording the processing status of a service request |
| サービスオーダ発行 (Saabisu Ooda Hakko) | Business term | Service Order Issuance — generating a service order for the password change processing workflow |
| IDPW初期化 | Business term | ID Password Initialization — resetting authentication ID and password to initial state |
