# Business Logic — JBSbatKKAdHenkoHoyuDataUpd.executeKK_T_PRG_INSERT() [147 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.business.service.JBSbatKKAdHenkoHoyuDataUpd` |
| Layer | Service (Batch) |
| Module | `service` (Package: `eo.business.service`) |

## 1. Role

### JBSbatKKAdHenkoHoyuDataUpd.executeKK_T_PRG_INSERT()

This method is the core **progress (registraration) record insertion** routine for the **Address Modification Service Data Update** batch (`JBSbatKKAdHenkoHoyuDataUpd`). Its business purpose is to create a new tracking row in the `KK_T_PRG` (progress management) table that records the state of an address-related modification operation. It acts as a **routing/dispatch builder**: it receives a generic parameter map (`inMap`), branches on the `PRG_STAT` progress status code to select which service-level identifiers to include, constructs a composite progress memo from the original address components, determines the movement classification based on the address change type, assembles all fields into a `JBSbatCommonDBInterface` row, and finally executes a single SQL INSERT against the progress management table via a SQL define key (`KK_INSERT_002`).

The method handles **five distinct progress status types**, each corresponding to a different address change business scenario: customer address registration (E010), emergency contact address update (E040), location info change (E020), equipment provider service change (E030), and billing address change (E050). Each branch populates a different subset of service-level keys (service detail number, service detail work number, improvement work number, or equipment provider service number) while keeping the common fields (movement classification, audit timestamps, user IDs) consistent across all branches.

The method is a **shared utility** called internally by the batch's `execute()` method with the status code `"E010"` (customer address change) as the default caller. It implements the **template method pattern** in a procedural form — the same assembly steps (memo construction, movement classification, sequence generation, audit population) are shared across all branches, with only the service-key population differing by branch.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["executeKK_T_PRG_INSERT inMap PRG_STAT sysDate"])

    START --> BUILD_MEMO["Build strPRG_MEMO from address fields"]
    BUILD_MEMO --> DETERM_DIV["Determine strIdoDiv from AD_CHG_SBT_CD"]

    DETERM_DIV --> GET_SEQ["Get next SEQ_PRG_NO sequence"]
    GET_SEQ --> PAD_NUM["Pad sequence to 12 digits"]
    PAD_NUM --> SET_PRG_NO["Set strPrgNo into dbList"]

    SET_PRG_NO --> CHECK_CUST{PRG_STAT equals E010 CUST?}
    CHECK_CUST -->|Yes| BRANCH_CUST["Branch CUST: set SVC_KEI_NO strIdoDiv updateDTM progStat createDTM progMemo"]
    CHECK_CUST -->|No| CHECK_EOH{PRG_STAT equals E040 EOH_TEL?}

    CHECK_EOH -->|Yes| BRANCH_EOH["Branch EOH_TEL: set SVC_KEI_NO SVC_KEI_UCWK_NO strIdoDiv"]
    CHECK_EOH -->|No| CHECK_KAISEN{PRG_STAT equals E020 KAISEN?}

    CHECK_KAISEN -->|Yes| BRANCH_KAISEN["Branch KAISEN: set SVC_KEI_NO SVC_KEI_KAISEN_UCWK_NO strIdoDiv"]
    CHECK_KAISEN -->|No| CHECK_KKTK{PRG_STAT equals E030 KKTK?}

    CHECK_KKTK -->|Yes| BRANCH_KKTK["Branch KKTK: set SVC_KEI_NO KKTK_SVC_KEI_NO strIdoDiv"]
    CHECK_KKTK -->|No| CHECK_SEIKY{PRG_STAT equals E050 SEIKY?}

    CHECK_SEIKY -->|Yes| BRANCH_SEIKY["Branch SEIKY: set SEIKY_KEI_NO SVC_KEI_NO strIdoDiv"]
    CHECK_SEIKY -->|No| BRANCH_DEFAULT["Default: No matching status"]

    BRANCH_CUST --> SET_AUDIT["Set audit fields getSysDateTimeStamp batchUserId opeDate"]
    BRANCH_EOH --> SET_AUDIT
    BRANCH_KAISEN --> SET_AUDIT
    BRANCH_KKTK --> SET_AUDIT
    BRANCH_SEIKY --> SET_AUDIT
    BRANCH_DEFAULT --> SET_AUDIT

    SET_AUDIT --> EXEC_INSERT["Execute db_KK_T_PRG.executeBySqlDefine with KK_INSERT_002"]
    EXEC_INSERT --> END_NODE(["End void"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `inMap` | `JBSbatCommonDBInterface` | A parameter map carrying the address modification context. It contains the original address components (`OLD_AD_CD`, `OLD_PCD`, `OLD_STATE_NM`, `OLD_CITY_NM`, `OLD_OAZTSU_NM`, `OLD_AZCHO_NM`) used to build the progress memo, the address change sub-type code (`AD_CHG_SBT_CD`) that determines movement classification, and status-specific service identifiers (`SVC_KEI_NO`, `SVC_KEI_UCWK_NO`, `SVC_KEI_KAISEN_UCWK_NO`, `KKTK_SVC_KEI_NO`, `SEIKY_KEI_NO`). |
| 2 | `PRG_STAT` | `String` | The progress status code that determines which address change business scenario is being tracked. Accepted values: `E010` (Customer Address Registration), `E040` (Emergency Contact Address Update), `E020` (Location Info Change), `E030` (Equipment Provider Service), `E050` (Billing Address Change). Maps to [-> JKKBatConst.PRG_STAT_CUST="E010" (JKKBatConst.java:1311)], [-> JKKBatConst.PRG_STAT_EOH_TEL="E040" (JKKBatConst.java:1314)], [-> JKKBatConst.PRG_STAT_KAISEN="E020" (JKKBatConst.java:1317)], [-> JKKBatConst.PRG_STAT_KKTK="E030" (JKKBatConst.java:1320)], [-> JKKBatConst.PRG_STAT_SEIKY="E050" (JKKBatConst.java:1323)]. |
| 3 | `sysDate` | `String` | The system date string (format: `yyyyMMddHHmmss` or similar) used to construct the create timestamp (`createDTM`) for the progress record. The method takes characters from index 8 onward (the minute portion) and appends it to `opeDate` to form a full datetime stamp. |

**Instance fields read by this method:**
| Field | Type | Business Description |
|-------|------|---------------------|
| `batchUserId` | `String` | The batch processing user ID, used to populate `updateUser` and `createUser` audit columns. |
| `opeDate` | `String` | The operational date, combined with the minute portion of `sysDate` to form timestamps. |
| `db_KK_T_PRG` | `JBSbatSQLAccess` | The SQL access object for the `KK_T_PRG` (progress management) table. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JBSbatOracleSeqUtil.getNextSeq` | - | `SEQ_PRG_NO` | Reads the next value from the `SEQ_PRG_NO` database sequence to generate a unique program number. |
| - | `JBSbatStringUtil.padNumFormString` | JBSbatStringUtil | - | Pads the sequence number to a fixed 12-character width with leading zeros. |
| R | `JCCBatCommon.getSysDateTimeStamp` | JCCBatCommon | - | Retrieves the current system timestamp for `updateDTM` fields. |
| R | `JCCBatCommon.getSysDateTimeStamp` | JCCBatCommon | - | Retrieves the current system timestamp for `createDTM` field. |
| C | `db_KK_T_PRG.executeBySqlDefine` | - | `KK_T_PRG` | Executes an INSERT statement using SQL define key `KK_INSERT_002` to write a new progress record into the `KK_T_PRG` table. |

### Detailed CRUD Classification:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JBSbatOracleSeqUtil.getNextSeq(conn, "SEQ_PRG_NO")` | - | `SEQ_PRG_NO` | Sequence retrieval — fetches the next value from the Oracle sequence that generates unique program numbers for progress records. |
| C | `db_KK_T_PRG.executeBySqlDefine(dbList, "KK_INSERT_002")` | - | `KK_T_PRG` | Table Insert — creates a new row in the progress management table (`KK_T_PRG`) with all assembled fields including program number, service identifiers, movement classification, audit timestamps, and user information. |
| - | `JBSbatStringUtil.padNumFormString` | JBSbatStringUtil | - | Utility call — formats the numeric sequence value into a zero-padded 12-character string. |
| R | `JCCBatCommon.getSysDateTimeStamp()` | JCCBatCommon | - | Utility call — retrieves the current system datetime stamp for audit fields. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: `JBSbatKKAdHenkoHoyuDataUpd.execute()` | `JBSbatKKAdHenkoHoyuDataUpd.execute()` → `executeKK_T_PRG_INSERT(inMap, JKKBatConst.PRG_STAT_CUST, sysDate)` | `db_KK_T_PRG.executeBySqlDefine [C] KK_T_PRG` |

**Trace description:** The method is called exclusively from the batch's own `execute()` method (line 550 of the same class), invoked with `PRG_STAT` set to `PRG_STAT_CUST` (`"E010"`, Customer Address Registration). The terminal operation is the INSERT into the `KK_T_PRG` table, which persists the progress tracking record.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Build progress memo string from address components (L2001)

> Constructs a forward-slash-separated memo string concatenating six address fields from the input map: old address code, old postal code, old state name, old city name, old oaztsu name, and old azcho name. This memo serves as a human-readable audit trail of the original address at the time of modification.

| # | Type | Code |
|---|------|------|
| 1 | SET | `strPRG_MEMO = inMap.getString("OLD_AD_CD") + "/" + inMap.getString("OLD_PCD") + "/" + inMap.getString("OLD_STATE_NM") + "/" + inMap.getString("OLD_CITY_NM") + "/" + inMap.getString("OLD_OAZTSU_NM") + "/" + inMap.getString("OLD_AZCHO_NM")` // Build progress memo from original address fields |
| 2 | SET | `strIdoDiv = ""` // Initialize movement classification to empty string |
| 3 | SET | `strAdChgSbtCd = inMap.getString("AD_CHG_SBT_CD")` // Get address change sub-type code [-> AD_CHG_SBT_CD="AD_CHG_SBT_CD" (inMap)] |

**Block 1.1** — [IF] Movement classification determination — state merger (L2005)

> When the address change type is state merger (市町村合併), the movement classification is set to "00077".

| # | Type | Code |
|---|------|------|
| 1 | SET | `strIdoDiv = JKKBatConst.IDO_DIV_STATE` // Movement classification: State Merger [-> IDO_DIV_STATE="00077" (JKKBatConst.java:1279)] |

**Block 1.2** — [IF] Movement classification determination — address + postal code change (L2006)

> When the address change type includes both address name and postal code changes, set movement classification to "00078".

| # | Type | Code |
|---|------|------|
| 1 | SET | `strIdoDiv = JKKBatConst.IDO_DIV_AD_PCD` // Movement classification: Address Name + Postal Code Change [-> IDO_DIV_AD_PCD="00078" (JKKBatConst.java:1283)] |

**Block 1.3** — [IF] Movement classification determination — address name change only (L2007)

> When the address change type is address name change only (住所呼称変更), set movement classification to "00079".

| # | Type | Code |
|---|------|------|
| 1 | SET | `strIdoDiv = JKKBatConst.IDO_DIV_AD` // Movement classification: Address Name Change Only [-> IDO_DIV_AD="00079" (JKKBatConst.java:1287)] |

**Block 1.4** — [IF] Movement classification determination — postal code change only (L2008)

> When the address change type is postal code change only (郵便番号変更), set movement classification to "00080".

| # | Type | Code |
|---|------|------|
| 1 | SET | `strIdoDiv = JKKBatConst.IDO_DIV_PCD` // Movement classification: Postal Code Change Only [-> IDO_DIV_PCD="00080" (JKKBatConst.java:1291)] |

**Block 2** — [SET] Initialize data assembly object and get sequence number (L2011–L2014)

> Creates a new `JBSbatCommonDBInterface` instance for assembling the row to be inserted. Retrieves the next value from the `SEQ_PRG_NO` database sequence and pads it to 12 digits.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList = new JBSbatCommonDBInterface()` // New data assembly interface for the row |
| 2 | SET | `strPrgNo = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), "SEQ_PRG_NO"), 12)` // Get next sequence and pad to 12 chars [-> SEQ_PRG_NO="SEQ_PRG_NO" (inMap)] |
| 3 | SET | `dbList.setValue(strPrgNo)` // Program number field (PRG_NO) |

**Block 3** — [IF] Branch: Customer Address Registration (PRG_STAT = "E010") (L2016–L2037)

> This is the primary branch — customer address registration (顧客住所登録). Populates the progress row with the service detail number (`SVC_KEI_NO`), movement classification, program status, progress memo, and timestamps. The service detail work number, improvement work number, and equipment provider service number are set to `null` since they are not relevant for this scenario.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(null)` // PRG_NO_ALT field |
| 2 | SET | `dbList.setValue(null)` // SVC_KEI_UCWK_NO (service detail work number) |
| 3 | SET | `dbList.setValue(null)` // SVC_KEI_KAISEN_UCWK_NO (improvement work number) |
| 4 | SET | `dbList.setValue(null)` // KKTK_SVC_KEI_NO (equipment provider service number) |
| 5 | SET | `dbList.setValue(inMap.getString("SVC_KEI_NO"))` // Service detail number (サービス詳細番号) |
| 6 | SET | `dbList.setValue(null)` // SEIKY_KEI_NO (billing contract number) |
| 7 | SET | `dbList.setValue(null)` // Reserved field |
| 8 | SET | `dbList.setValue(null)` // Reserved field |
| 9 | SET | `dbList.setValue(null)` // Reserved field |
| 10 | SET | `dbList.setValue(null)` // Reserved field |
| 11 | SET | `dbList.setValue(null)` // Reserved field |
| 12 | SET | `dbList.setValue(strIdoDiv)` // Movement classification (異動区分) |
| 13 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // Last update datetime (LAST_UPD_DTM) |
| 14 | SET | `dbList.setValue(PRG_STAT)` // Program status (E010) |
| 15 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // Create datetime (CREATE_DTM) |
| 16 | SET | `dbList.setValue(strPRG_MEMO)` // Progress memo (original address) |
| 17 | SET | `dbList.setValue(null)` // Reserved field |
| 18 | SET | `dbList.setValue(null)` // Reserved field |

**Block 4** — [IF] Branch: Emergency Contact Address Update (PRG_STAT = "E040") (L2038–L2059)

> Emergency contact address update (緊急連絡住所変更). Similar to the CUST branch but additionally populates the service detail work number (`SVC_KEI_UCWK_NO`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(null)` // PRG_NO_ALT |
| 2 | SET | `dbList.setValue(null)` // SVC_KEI_KAISEN_UCWK_NO |
| 3 | SET | `dbList.setValue(null)` // KKTK_SVC_KEI_NO |
| 4 | SET | `dbList.setValue(null)` // SEIKY_KEI_NO |
| 5 | SET | `dbList.setValue(inMap.getString("SVC_KEI_NO"))` // Service detail number |
| 6 | SET | `dbList.setValue(inMap.getString("SVC_KEI_UCWK_NO"))` // Service detail work number (サービス詳細作業番号) |
| 7 | SET | `dbList.setValue(null)` // Reserved |
| 8 | SET | `dbList.setValue(null)` // Reserved |
| 9 | SET | `dbList.setValue(null)` // Reserved |
| 10 | SET | `dbList.setValue(null)` // Reserved |
| 11 | SET | `dbList.setValue(null)` // Reserved |
| 12 | SET | `dbList.setValue(null)` // Reserved |
| 13 | SET | `dbList.setValue(strIdoDiv)` // Movement classification |
| 14 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // LAST_UPD_DTM |
| 15 | SET | `dbList.setValue(PRG_STAT)` // Program status (E040) |
| 16 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // CREATE_DTM |
| 17 | SET | `dbList.setValue(strPRG_MEMO)` // Progress memo |
| 18 | SET | `dbList.setValue(null)` // Reserved |
| 19 | SET | `dbList.setValue(null)` // Reserved |

**Block 5** — [IF] Branch: Location Info Change (PRG_STAT = "E020") (L2060–L2081)

> Location information change (立地情報変更). Populates the service detail number and the improvement work number (`SVC_KEI_KAISEN_UCWK_NO`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(null)` // PRG_NO_ALT |
| 2 | SET | `dbList.setValue(null)` // SVC_KEI_UCWK_NO |
| 3 | SET | `dbList.setValue(inMap.getString("SVC_KEI_KAISEN_UCWK_NO"))` // Improvement work number (改善作業番号) |
| 4 | SET | `dbList.setValue(null)` // KKTK_SVC_KEI_NO |
| 5 | SET | `dbList.setValue(inMap.getString("SVC_KEI_NO"))` // Service detail number |
| 6 | SET | `dbList.setValue(null)` // SEIKY_KEI_NO |
| 7 | SET | `dbList.setValue(null)` // Reserved |
| 8 | SET | `dbList.setValue(null)` // Reserved |
| 9 | SET | `dbList.setValue(null)` // Reserved |
| 10 | SET | `dbList.setValue(null)` // Reserved |
| 11 | SET | `dbList.setValue(null)` // Reserved |
| 12 | SET | `dbList.setValue(strIdoDiv)` // Movement classification |
| 13 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // LAST_UPD_DTM |
| 14 | SET | `dbList.setValue(PRG_STAT)` // Program status (E020) |
| 15 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // CREATE_DTM |
| 16 | SET | `dbList.setValue(strPRG_MEMO)` // Progress memo |
| 17 | SET | `dbList.setValue(null)` // Reserved |
| 18 | SET | `dbList.setValue(null)` // Reserved |

**Block 6** — [IF] Branch: Equipment Provider Service Change (PRG_STAT = "E030") (L2082–L2103)

> Equipment provider service (機器提供サービス). Populates the service detail number and the equipment provider service number (`KKTK_SVC_KEI_NO`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(null)` // PRG_NO_ALT |
| 2 | SET | `dbList.setValue(null)` // SVC_KEI_UCWK_NO |
| 3 | SET | `dbList.setValue(null)` // SVC_KEI_KAISEN_UCWK_NO |
| 4 | SET | `dbList.setValue(inMap.getString("KKTK_SVC_KEI_NO"))` // Equipment provider service number (機器提供サービス契約番号) |
| 5 | SET | `dbList.setValue(inMap.getString("SVC_KEI_NO"))` // Service detail number |
| 6 | SET | `dbList.setValue(null)` // SEIKY_KEI_NO |
| 7 | SET | `dbList.setValue(null)` // Reserved |
| 8 | SET | `dbList.setValue(null)` // Reserved |
| 9 | SET | `dbList.setValue(null)` // Reserved |
| 10 | SET | `dbList.setValue(null)` // Reserved |
| 11 | SET | `dbList.setValue(null)` // Reserved |
| 12 | SET | `dbList.setValue(strIdoDiv)` // Movement classification |
| 13 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // LAST_UPD_DTM |
| 14 | SET | `dbList.setValue(PRG_STAT)` // Program status (E030) |
| 15 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // CREATE_DTM |
| 16 | SET | `dbList.setValue(strPRG_MEMO)` // Progress memo |
| 17 | SET | `dbList.setValue(null)` // Reserved |
| 18 | SET | `dbList.setValue(null)` // Reserved |

**Block 7** — [IF] Branch: Billing Address Change (PRG_STAT = "E050") (L2104–L2125)

> Billing address change (請求書送付先情報変更). Populates the billing contract number (`SEIKY_KEI_NO`) and the service detail number (`SVC_KEI_NO`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(null)` // PRG_NO_ALT |
| 2 | SET | `dbList.setValue(inMap.getString("SEIKY_KEI_NO"))` // Billing contract number (請求契約番号) |
| 3 | SET | `dbList.setValue(null)` // SVC_KEI_KAISEN_UCWK_NO |
| 4 | SET | `dbList.setValue(null)` // KKTK_SVC_KEI_NO |
| 5 | SET | `dbList.setValue(inMap.getString("SVC_KEI_NO"))` // Service detail number |
| 6 | SET | `dbList.setValue(null)` // Reserved |
| 7 | SET | `dbList.setValue(null)` // Reserved |
| 8 | SET | `dbList.setValue(null)` // Reserved |
| 9 | SET | `dbList.setValue(null)` // Reserved |
| 10 | SET | `dbList.setValue(null)` // Reserved |
| 11 | SET | `dbList.setValue(null)` // Reserved |
| 12 | SET | `dbList.setValue(null)` // Reserved |
| 13 | SET | `dbList.setValue(strIdoDiv)` // Movement classification |
| 14 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // LAST_UPD_DTM |
| 15 | SET | `dbList.setValue(PRG_STAT)` // Program status (E050) |
| 16 | SET | `dbList.setValue(super.opeDate + sysDate.substring(8))` // CREATE_DTM |
| 17 | SET | `dbList.setValue(strPRG_MEMO)` // Progress memo |
| 18 | SET | `dbList.setValue(null)` // Reserved |
| 19 | SET | `dbList.setValue(null)` // Reserved |

**Block 8** — [SET] Set audit fields (L2127–L2136)

> After any branch, the audit fields are populated: last update timestamp (via `JCCBatCommon.getSysDateTimeStamp()`), last update user ID (`batchUserId`), create timestamp, create user ID, operational date and operational user for three additional audit columns.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dbList.setValue(JCCBatCommon.getSysDateTimeStamp())` // LAST_UPD_DTM — system timestamp |
| 2 | SET | `dbList.setValue(batchUserId)` // LAST_UPD_USER_ID |
| 3 | SET | `dbList.setValue(JCCBatCommon.getSysDateTimeStamp())` // CREATE_DTM — system timestamp |
| 4 | SET | `dbList.setValue(batchUserId)` // CREATE_USER_ID |
| 5 | SET | `dbList.setValue(super.opeDate)` // LAST_OPE_DTM |
| 6 | SET | `dbList.setValue(batchUserId)` // LAST_OPE_USER_ID |
| 7 | SET | `dbList.setValue(super.opeDate)` // OPE_DTM |
| 8 | SET | `dbList.setValue(batchUserId)` // OPE_USER_ID |

**Block 9** — [EXEC] Execute INSERT (L2138)

> Executes the SQL define key `KK_INSERT_002` against the `db_KK_T_PRG` SQL access object, performing the actual INSERT into the `KK_T_PRG` progress management table.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `db_KK_T_PRG.executeBySqlDefine(dbList, "KK_INSERT_002")` // Insert progress record [KK_T_PRG table] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `KK_T_PRG` | Table | Progress Management Table — stores tracking records for address modification batch operations, including program numbers, service identifiers, status codes, timestamps, and user audit fields. |
| `PRG_STAT` | Field | Program Status Code — classifies the type of address modification being processed. Codes: E010 (Customer Address), E020 (Location Info), E030 (Equipment Provider), E040 (Emergency Contact), E050 (Billing Address). |
| `PRG_STAT_CUST` | Constant | Customer Address Registration status code ("E010") — [-> JKKBatConst.PRG_STAT_CUST="E010" (JKKBatConst.java:1311)]. |
| `PRG_STAT_KAISEN` | Constant | Location Info Change status code ("E020") — [-> JKKBatConst.PRG_STAT_KAISEN="E020" (JKKBatConst.java:1317)]. |
| `PRG_STAT_KKTK` | Constant | Equipment Provider Service status code ("E030") — [-> JKKBatConst.PRG_STAT_KKTK="E030" (JKKBatConst.java:1320)]. |
| `PRG_STAT_EOH_TEL` | Constant | Emergency Contact Address Update status code ("E040") — [-> JKKBatConst.PRG_STAT_EOH_TEL="E040" (JKKBatConst.java:1314)]. |
| `PRG_STAT_SEIKY` | Constant | Billing Address Change status code ("E050") — [-> JKKBatConst.PRG_STAT_SEIKY="E050" (JKKBatConst.java:1323)]. |
| `strPRG_MEMO` | Field | Progress Memo — a concatenated string of original address components (address code, postal code, state name, city name, oaztsu name, azcho name) used as an audit trail of the address at modification time. |
| `strIdoDiv` | Field | Movement Classification (異動区分) — codes indicating the nature of the address change: "00077" (State Merger), "00078" (Address + Postal Code Change), "00079" (Address Name Change), "00080" (Postal Code Change). |
| `AD_CHG_SBT_CD` | Field | Address Change Sub-Type Code — classifies the address change scenario. Values: "01" (State Merger), "11" (Address Name + Postal Code Change), "12" (Address Name Change), "13" (Postal Code Change). |
| `AD_CHG_SBT_CD_STATE` | Constant | State Merger address change type code ("01") — [-> JKKBatConst.AD_CHG_SBT_CD_STATE="01" (JKKBatConst.java:1268)]. |
| `AD_CHG_SBT_CD_AD_PCD` | Constant | Address Name + Postal Code Change code ("11") — [-> JKKBatConst.AD_CHG_SBT_CD_AD_PCD="11" (JKKBatConst.java:1272)]. |
| `AD_CHG_SBT_CD_AD` | Constant | Address Name Change code ("12") — [-> JKKBatConst.AD_CHG_SBT_CD_AD="12" (JKKBatConst.java:1276)]. |
| `AD_CHG_SBT_CD_PCD` | Constant | Postal Code Change code ("13") — [-> JKKBatConst.AD_CHG_SBT_CD_PCD="13" (JKKBatConst.java:1280)]. |
| `IDO_DIV_STATE` | Constant | Movement classification for State Merger ("00077") — [-> JKKBatConst.IDO_DIV_STATE="00077" (JKKBatConst.java:1279)]. |
| `IDO_DIV_AD_PCD` | Constant | Movement classification for Address + Postal Code Change ("00078") — [-> JKKBatConst.IDO_DIV_AD_PCD="00078" (JKKBatConst.java:1283)]. |
| `IDO_DIV_AD` | Constant | Movement classification for Address Name Change ("00079") — [-> JKKBatConst.IDO_DIV_AD="00079" (JKKBatConst.java:1287)]. |
| `IDO_DIV_PCD` | Constant | Movement classification for Postal Code Change ("00080") — [-> JKKBatConst.IDO_DIV_PCD="00080" (JKKBatConst.java:1291)]. |
| `SVC_KEI_NO` | Field | Service Detail Number (サービス詳細番号) — unique identifier for a service line item (e.g., FTTH contract, Mail contract). |
| `SVC_KEI_UCWK_NO` | Field | Service Detail Work Number (サービス詳細作業番号) — tracking number for work in progress on a service detail. |
| `SVC_KEI_KAISEN_UCWK_NO` | Field | Improvement Work Number (改善作業番号) — tracking number for improvement-related work on a service. |
| `KKTK_SVC_KEI_NO` | Field | Equipment Provider Service Number (機器提供サービス契約番号) — identifier for equipment provider service contracts (e.g., STB, router provisioning). |
| `SEIKY_KEI_NO` | Field | Billing Contract Number (請求契約番号) — identifier for the billing contract associated with a customer. |
| `OLD_AD_CD` | Field | Old Address Code — the customer's pre-modification address code. |
| `OLD_PCD` | Field | Old Postal Code — the customer's pre-modification postal code. |
| `OLD_STATE_NM` | Field | Old State Name — pre-modification prefecture/state name. |
| `OLD_CITY_NM` | Field | Old City Name — pre-modification city/town/village name. |
| `OLD_OAZTSU_NM` | Field | Old Oaztsu Name — pre-modification district/block name (大字名). |
| `OLD_AZCHO_NM` | Field | Old Azcho Name — pre-modification address number/block (字丁目名). |
| `SEQ_PRG_NO` | Field | Program Number Sequence — Oracle database sequence used to generate unique 12-digit program numbers for progress records. |
| `KK_INSERT_002` | Constant | SQL Define Key — the named SQL statement key for the INSERT operation against the `KK_T_PRG` table. |
| `kkAdHenko` | Acronym | Address Modification — the batch process for updating tables based on address modification work orders. |
| `JBSbatCommonDBInterface` | Class | Common database interface — a parameter object that carries field values in positional order, used as input/output for SQL operations. |
| `JBSbatSQLAccess` | Class | SQL Access base class — provides the `executeBySqlDefine` method to execute pre-defined SQL statements. |
| `opeDate` | Field | Operational Date — the batch operator's date context, combined with `sysDate` to construct full datetime stamps. |
| `batchUserId` | Field | Batch User ID — the ID of the batch process user, used for audit trail user identification. |
| `E010` | Code | Customer Address Registration — the progress status for initial customer address change processing. |
| `E020` | Code | Location Info Change — the progress status for updating location information (立地情報). |
| `E030` | Code | Equipment Provider Service — the progress status for equipment provider service changes. |
| `E040` | Code | Emergency Contact Address — the progress status for emergency contact address updates. |
| `E050` | Code | Billing Address Change — the progress status for billing document delivery address changes. |
| `KK_T_PRG` | Table | Progress Management Table — stores the lifecycle tracking records for all address modification operations, including unique program numbers, service identifiers, status codes, movement classifications, audit timestamps, and user information. |
| `executeBySqlDefine` | Method | Executes a pre-defined SQL statement (identified by key) against a data interface, performing the actual CRUD operation. |
