# Business Logic — JBSbatKKSmtvlIdoInfSksi.mainProp() [469 LOC]

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

## 1. Role

### JBSbatKKSmtvlIdoInfSksi.mainProp()

This method is the central batch processing routine for Smart Balance (au smartphone service) discrepancy notification information creation. It receives a list of KDDI contract discrepancy notification records grouped by other-provider discount contract number and determines, for each record, whether a discrepancy notification file should be generated and written to the output file. The method implements a **routing/dispatch pattern**: it branches by service type (Internet `SVC_CD_NET="01"` or Telephone `SVC_CD_TEL="02"`), fetches supplementary service contract detail data for telephone services from the `KK_T_SVC_KEI_UCWK` table, and calls the `isTargetChk` service-component method (backed by rule engine `RULE0086001`) to determine whether each record qualifies for notification. Records that pass all filters are collected into an output target list and written as a file (creating `KK_T_KDDI_WKEI_IDT` notification status `TCH_WAIT`), while records that fail are marked as "not requiring notification" (`UN_NCSR`). The method also handles deduplication: for records within the same discount contract number group, only the most recent discrepancy (by service contract detail number) is emitted.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["mainProp outputInItem outputBean"])

    INIT["Initialize: outTargetList outMap oldTajgsWribKeiNo newTajgsWribKeiNo index=0"]

    OUTER_CHECK{index < outMapList.size?}

    OUTER_ENTRY["Get inHash from outMapList at index"]

    TRY_START["Try block START"]

    GET_OLD_TAJGS["Get oldTajgsWribKeiNo from inHash"]

    FIRST_ITEM{index == 0?}

    SET_NEW_TAJGS["newTajgsWribKeiNo from inHash"]

    OUTER_LOOP{index < size and old == new?}

    INNER_GET["Re-fetch inHash from outMapList at index"]

    SET_TRGT_FLG["trgtFlg = true"]

    GET_PRG_STAT["Get prgStat from inHash"]

    CHECK1{isIdoDtmPast inHash?}

    SKIP_CHECK1["Log: not-target future data. index++"]

    CHECK2{isIdoDtmToday inHash?}

    SKIP_CHECK2["Log: not-target future data. index++"]

    CHECK3["isChargeStartToday inHash trgtFlg"]

    TRGT_CHECK{trgtFlg == true?}

    GET_SVC_INFO["Get svcCd svcKeiNo svcKeiUcwkNo pcrsCd"]

    SVC_NET{SVC_CD_NET 01?}

    EXEC_SELECT["executeKK_T_SVC_KEI_UCWK_KK_SELECT_079"]

    SELECT_NEXT["db_KK_T_SVC_KEI_UCWK.selectNext"]

    SVC_UCWK_NULL{svcKeiUcwkNo == null?}

    BUILD_TEL_LIST["Build telList from DB"]

    GET_TELNO_JUN{"getTchiTelnoJun with pcrsCd"}

    SET_SVC_UCWK_NO["Set SVC_KEI_UCWK_NO from telList"]

    SVC_UCWK_NOT_NULL["Find tel1 and tel2 by matching"]

    SVC_TEL{SVC_CD_TEL 02?}

    IS_TARGET_CHK{"isTargetChk inHash tel1 tel2"}

    IS_TEL{SVC_CD_TEL 02?}

    DSL_FIN_CHECK{PRG_STAT_HTELNO_DSL_FIN?}

    SET_tel2_UCWK["Set tel2 SVC_KEI_UCWK_NO to inHash"]

    TRGT_FINAL{trgtFlg == true?}

    ADD_TO_TARGET["outTargetList.addOutMapList inHash"]

    INCREMENT_FILE_COUNT["fileOutputCount++"]

    UPDATE_UNCSR["updateTchUnNcsr inHash"]

    INCREMENT_EXCLUDE["excludeCount++"]

    THROUGH_COUNT["throughCount++"]

    INDEX_INCR["index++"]

    CHECK_OUT_LIST{outTargetList.size > 0?}

    SINGLE_ITEM{size == 1?}

    SINGLE_NET{SVC_CD_NET 01?}

    SET_OUT_NET["outMap = setOutMapNetUpd inMap"]

    SET_OUT_TEL["outMap = setOutMapTelUpd inMap"]

    BOTH_ITEMS["outMap = setOutMapBothUpd outTargetList"]

    OUTMAP_NULL{outMap != null?}

    SET_OUTFLG["outMap.setOutFlg true"]

    ADD_TO_OUTPUT["outputBean.addOutMapList outMap"]

    OUTMAP_ADJUST["fileOutputCount -= outTargetList.size"]

    RESET_OUT["outTargetList = new JBSbatOutputItem"]

    CATCH_BLOCK["Catch: log error E rethrow"]

    OUTER_END(["End Return void"])

    START --> INIT --> OUTER_CHECK

    OUTER_CHECK -->|true| OUTER_ENTRY

    OUTER_ENTRY --> TRY_START --> GET_OLD_TAJGS --> FIRST_ITEM

    FIRST_ITEM -->|true| SET_NEW_TAJGS

    FIRST_ITEM -->|false| OUTER_LOOP

    SET_NEW_TAJGS --> OUTER_LOOP

    OUTER_LOOP -->|true| INNER_GET --> SET_TRGT_FLG --> GET_PRG_STAT --> CHECK1

    CHECK1 -->|false| SKIP_CHECK1 --> INDEX_INCR

    SKIP_CHECK1 --> CHECK2

    CHECK2 -->|false| SKIP_CHECK2 --> INDEX_INCR

    SKIP_CHECK2 --> CHECK3 --> TRGT_CHECK

    CHECK1 -->|true| TRGT_CHECK

    TRGT_CHECK -->|true| GET_SVC_INFO

    TRGT_CHECK -->|false| THROUGH_COUNT --> OUTER_LOOP

    GET_SVC_INFO --> SVC_NET

    SVC_NET -->|true| EXEC_SELECT --> SELECT_NEXT --> SVC_UCWK_NULL

    SVC_UCWK_NULL -->|true| BUILD_TEL_LIST --> GET_TELNO_JUN --> SET_SVC_UCWK_NO --> IS_TARGET_CHK

    SVC_UCWK_NULL -->|false| SVC_UCWK_NOT_NULL --> IS_TARGET_CHK

    SVC_NET -->|false| SVC_TEL --> IS_TARGET_CHK

    IS_TARGET_CHK --> IS_TEL

    IS_TEL -->|true| DSL_FIN_CHECK

    DSL_FIN_CHECK -->|true| SET_tel2_UCWK --> TRGT_FINAL

    DSL_FIN_CHECK -->|false| TRGT_FINAL

    IS_TEL -->|false| TRGT_FINAL

    TRGT_FINAL -->|true| ADD_TO_TARGET --> INCREMENT_FILE_COUNT --> INDEX_INCR

    TRGT_FINAL -->|false| UPDATE_UNCSR --> INCREMENT_EXCLUDE --> INDEX_INCR

    INDEX_INCR --> OUTER_LOOP

    OUTER_LOOP -->|false| CHECK_OUT_LIST

    CHECK_OUT_LIST -->|true| SINGLE_ITEM

    SINGLE_ITEM -->|true| SINGLE_NET

    SINGLE_NET -->|true| SET_OUT_NET --> OUTMAP_NULL

    SINGLE_NET -->|false| SET_OUT_TEL --> OUTMAP_NULL

    SINGLE_ITEM -->|false| BOTH_ITEMS --> OUTMAP_NULL

    CHECK_OUT_LIST -->|false| RESET_OUT

    OUTMAP_NULL -->|true| SET_OUTFLG --> ADD_TO_OUTPUT --> RESET_OUT

    OUTMAP_NULL -->|false| OUTMAP_ADJUST --> RESET_OUT

    RESET_OUT --> CATCH_BLOCK

    CATCH_BLOCK --> OUTER_END
```

**Constant Resolution:**

| Constant | Value | Business Meaning |
|----------|-------|-----------------|
| `SVC_CD_NET` | `"01"` | Internet service — fiber-to-the-home broadband |
| `SVC_CD_TEL` | `"02"` | Telephone service — landline/smartphone voice |
| `PRG_STAT_SHOSA_OK` | `"0900"` | Investigation OK — initial investigation passed |
| `PRG_STAT_SHOSA_CL` | `"0901"` | Investigation cancellation — investigation cancelled |
| `PRG_STAT_HTELNO_KAIHK_FIN` | `"B303"` | Light telephone number recovery completion — number ported back |
| `PRG_STAT_HTELNO_DSL_FIN` | `"B302"` | Light telephone number cancellation completion — number cancelled (MNP churn) |
| `PRG_STAT_KAIHK_FIN` | `"2301"` | Recovery completion |
| `PRG_STAT_DSL_FIN` | `"1304"` | Cancellation completion |
| `PRG_STAT_KSI_DSL_FIN` | `"2203"` | Forced cancellation completion |
| `PRG_STAT_CNCL_FIN` | `"1201"` | Cancel completion — contract cancelled |
| `PRG_STAT_PAUSE_STA_FIN` | `"2401"` | Pause start completion |
| `PRG_STAT_SVCTK_CHU` | `"1000"` | Service provision ongoing — currently active service |
| `PRG_STAT_COURSECHG_FIN` | `"1422"` | Course change completion |
| `KDDI_WKEI_IDT_STAT_CD_UN_NCSR` | `"2"` | Not requiring notification — discrepancy notification not needed |
| `KDDI_WKEI_IDT_STAT_CD_TCH_WAIT` | `"3"` | Notification waiting — file created, awaiting output |
| `SMTVL_IDO_DTL_CD_TG` | `"00"` | Smart Balance target — record is relevant to Smart Balance |
| `SMTVL_IDO_DTL_CD_TGG` | `"01"` | Smart Balance non-target — record is not relevant |
| `YMD_DEF` | `"20991231"` | Default/initial date value (year 2099) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `outputInItem` | `JBSbatOutputItem` | Input data list containing KDDI contract discrepancy notification records. Each record represents a contract status change (discrepancy) for a Smart Balance subscriber, including service type, progress status, and other-provider discount contract information. Records are ordered by discount contract number so that all records for a single contract are grouped together. |
| 2 | `outputBean` | `JBSbatOutputItem` | Output list for the processed results. Contains the compiled `JBSbatServiceInterfaceMap` entries that will be written to the Smart Balance discrepancy notification file. Each entry in this list represents one unique discrepancy notification to be generated. |
| — | `fileOutputCount` | `int` (instance field) | Running counter of successfully output records (file output count). Incremented for each target record, decremented when output map is null. |
| — | `excludeCount` | `int` (instance field) | Counter of records excluded from notification (marked as `UN_NCSR`). |
| — | `throughCount` | `int` (instance field) | Counter of records that passed through without processing (e.g., failed target checks). |
| — | `super.opeDate` | `String` (inherited field) | Operation date (YYYYMMDD format) used for date comparisons and as batch processing date. |
| — | `commonItem` | `JBSbatCommonItem` (instance field) | Common item providing access to log print functionality for error logging. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `db_KK_T_SVC_KEI_UCWK.selectNext` | - | `KK_T_SVC_KEI_UCWK` (Service Contract Detail) | Selects service contract detail records to resolve supplementary service info for telephone services |
| R | `isIdoDtmPast` | - | - | Checks if discrepancy date is in the future (past the operation date) |
| R | `isIdoDtmToday` | - | - | Checks if discrepancy date matches the operation date |
| R | `isChargeStartToday` | - | - | Checks if billing start date has been reached for "service provision ongoing" status |
| R | `isTargetChk` | - | - | Core exclusion check — invokes rule engine RULE0086001 (Smart Balance application conditions) and validates against progress status |
| R | `getTchiTelnoJun` | - | - | Determines telephone number order priority for resolving which telephone line is primary |
| U | `updateTchUnNcsr` | - | `KK_T_KDDI_WKEI_IDT` (KDDI Contract Discrepancy Notification) | Updates KDDI contract discrepancy notification status to "not requiring notification" (`UN_NCSR="2"`) |
| R | `setOutMapNetUpd` | - | - | Prepares output map for network-only discrepancy updates |
| R | `setOutMapTelUpd` | - | - | Prepares output map for telephone-only discrepancy updates |
| R | `setOutMapBothUpd` | - | - | Prepares output map for combined network + telephone discrepancy updates |
| R | `executeKK_T_SVC_KEI_UCWK_KK_SELECT_079` | - | `KK_T_SVC_KEI_UCWK` | Executes SQL query to retrieve service contract detail records for telephone services |
| - | `printLogCmn` | - | - | Common log output — writes processing messages and exclusion reasons |
| - | `JKKBatOneTimeLogWriter.printBusinessErrorLog` | - | - | Error log output when exception occurs during processing (message code EKKB0960AI) |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: `JBSbatKKSmtvlIdoInfSksi.execute()` | `execute()` -> `mainProp(outputInItem, outputBean)` | `updateTchUnNcsr [U] KK_T_KDDI_WKEI_IDT`, `db_KK_T_SVC_KEI_UCWK.selectNext [R] KK_T_SVC_KEI_UCWK` |

## 6. Per-Branch Detail Blocks

**Block 1** — [WHILE] `(outer loop: index < outputInItem.getOutMapList().size())` (L463)

> Iterates through all input records in the output map list. Each record represents a KDDI contract discrepancy notification entry.

| # | Type | Code |
|---|------|------|
| 1 | SET | `outTargetList = new JBSbatOutputItem()` // Notification target list |
| 2 | SET | `outMap = new JBSbatServiceInterfaceMap()` // Output MAP |
| 3 | SET | `oldTajgsWribKeiNo = ""` // Other-provider discount contract number |
| 4 | SET | `newTajgsWribKeiNo = ""` // New other-provider discount contract number |
| 5 | SET | `index = 0` |

**Block 2** — [WHILE inner condition] `(index < size && oldTajgsWribKeiNo.equals(newTajgsWribKeiNo))` (L489)

> Inner loop: processes all records within the same other-provider discount contract number group. Records sharing the same discount contract number are batch-processed together.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHash = (JBSbatServiceInterfaceMap)outputInItem.getOutMapList().get(index)` // Re-fetch input data |
| 2 | SET | `trgtFlg = true` // Target flag — initialized to true, may be set to false |
| 3 | SET | `prgStat = inHash.getString(JBSbatKK_T_KDDI_WKEI_IDT.PRG_STAT)` // Progress status |

**Block 2.1** — [IF] `(!isIdoDtmPast(inHash))` — discrepancy date is in the future (L497)
> Excludes records where the discrepancy date has not yet arrived. These are scheduled for future processing.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `printLogCmn(inHash, "Not-target update data (future date processing)")` // Log exclusion reason |
| 2 | SET | `index++` |
| 3 | IF | `index < size` → re-fetch `inHash` and `newTajgsWribKeiNo` |
| 4 | SET | `continue` (goes back to inner while) |

**Block 2.2** — [IF] `(!isIdoDtmToday(inHash))` — discrepancy date is not today (L513)
> Excludes records where the discrepancy date has not yet become the current operation date.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `printLogCmn(inHash, "Not-target update data (future date processing)")` // Log exclusion reason |
| 2 | SET | `index++` |
| 3 | IF | `index < size` → re-fetch `inHash` and `newTajgsWribKeiNo` |
| 4 | SET | `continue` (goes back to inner while) |

**Block 2.3** — [CALL] `isChargeStartToday(inHash, trgtFlg)` (L529)
> Checks whether the billing start date has been reached for "service provision ongoing" (`PRG_STAT_SVCTK_CHU = "1000"`) records. This is the "charge start date arrival" check — if the service is ongoing but billing has not yet started, the record is skipped.

**Block 2.4** — [IF] `(trgtFlg)` — target passed all date filters (L532)

> Records that passed all date-based exclusion checks proceed to service-type routing and supplementary data resolution.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcCd = inHash.getString(JBSbatKK_T_SVC_KEI.SVC_CD)` // Service code |
| 2 | SET | `svcKeiNo = inHash.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)` // Service contract number |
| 3 | SET | `svcKeiUcwkNo = inHash.getString(JBSbatKK_T_KDDI_WKEI_IDT.SVC_KEI_UCWK_NO)` // Service contract detail number |
| 4 | SET | `pcrsCd = inHash.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)` // Pricing course code |
| 5 | SET | `tel1 = null, tel2 = null, workMap = new HashMap<>()` |

**Block 2.4.1** — [IF] `(SVC_CD_NET.equals(svcCd))` — Internet service (`SVC_CD_NET = "01"`) (L541)
> For Internet service, no supplementary data fetching is needed. The `netTchiFlg` deduplication flag is used directly.

| # | Type | Code |
|---|------|------|
| 1 | IF | `netTchiFlg` → duplicate detected, log exclusion, set `trgtFlg = false` |
| 2 | ELSE | `netTchiFlg = true` |

**Block 2.4.2** — [ELSE-IF] `(SVC_CD_TEL.equals(svcCd))` — Telephone service (`SVC_CD_TEL = "02"`) (L597)
> For telephone service, fetches supplementary service contract detail records from `KK_T_SVC_KEI_UCWK` to resolve the correct telephone line information when multiple lines exist.

| # | Type | Code |
|---|------|------|
| 1 | SET | `param = {svcKeiNo, super.opeDate}` |
| 2 | CALL | `executeKK_T_SVC_KEI_UCWK_KK_SELECT_079(param)` // Execute SQL query |
| 3 | SET | `rstMap = db_KK_T_SVC_KEI_UCWK.selectNext()` |

**Block 2.4.2.1** — [IF] `(null == svcKeiUcwkNo)` — service contract detail number is null (L556)
> When the input's service contract detail number is null, fetch the earliest (oldest) service contract detail record from the database. The telephone number order is determined by `getTchiTelnoJun` using pricing course code and billing start dates.

| # | Type | Code |
|---|------|------|
| 1 | SET | `telList = new ArrayList<HashMap>()` |
| 2 | WHILE | `rstMap != null` → build `telList` from DB results |
| 3 | IF | `telList.size() > 0` → extract `tel1SvcChrgStaymd` and `tel2SvcChrgStaymd` |
| 4 | IF | `1 < telList.size()` → also extract second record's data |
| 5 | SET | `getTchiTelnoJun(pcrsCd, tel1SvcChrgStaymd, tel2SvcChrgStaymd, tel1ShosaYmd, tel2ShosaYmd)` |
| 6 | IF | result == 1 → primary telephone line → `tempNo = telList.get(0).get(SVC_KEI_UCWK_NO)` |
| 7 | ELSE | secondary telephone line → `tempNo = telList.get(1).get(SVC_KEI_UCWK_NO)` |
| 8 | CALL | `inHash.setString(JBSbatKK_T_KDDI_WKEI_IDT.SVC_KEI_UCWK_NO, tempNo)` |

**Block 2.4.2.2** — [ELSE] `svcKeiUcwkNo` is not null (L593)
> When the input already has a service contract detail number, match against the fetched records to identify `tel1` and `tel2` for later exclusion checks.

| # | Type | Code |
|---|------|------|
| 1 | WHILE | `rstMap != null` → iterate through fetched records |
| 2 | IF | `svcKeiUcwkNo.equals(workMap.get(SVC_KEI_UCWK_NO))` → assign to `tel1` |
| 3 | ELSE | assign to `tel2` |

**Block 2.4.3** — [CALL] `isTargetChk(inHash, tel1, tel2)` (L604)
> Core exclusion logic. Invokes rule engine `RULE0086001` (Smart Balance application conditions) and checks against progress status codes to determine if this record should be notified. Handles three categories: recovery-type discrepancies (`chkKaihk`), cancellation-type discrepancies (`chkDsl`), and service provision ongoing (`PRG_STAT_SVCTK_CHU`).

**Block 2.4.4** — [IF] `(trgtFlg)` after `isTargetChk` — for telephone service (L615)
> After exclusion check, for telephone service, handles the number cancellation case where the non-cancelled telephone line's service contract detail number must be substituted.

| # | Type | Code |
|---|------|------|
| 1 | IF | `telTchiFlg` → duplicate detected, log exclusion, set `trgtFlg = false` |
| 2 | ELSE | `telTchiFlg = true` |
| 3 | IF | `PRG_STAT_HTELNO_DSL_FIN.equals(prgStat)` → number cancellation completion → set tel2's SVC_KEI_UCWK_NO |

**Block 2.4.5** — [IF] `(trgtFlg)` — final target check (L634)

| # | Type | Code |
|---|------|------|
| 1 | IF | `trgtFlg == true` → record passes all filters |
| 2 | SET | `outTargetList.addOutMapList(inHash)` // Add to notification target |
| 3 | SET | `fileOutputCount++` |
| 4 | ELSE | `updateTchUnNcsr(inHash)` // Mark as not requiring notification |
| 5 | SET | `excludeCount++` |

**Block 2.4.6** — [ELSE] `(!trgtFlg)` — passed but not target (L652)

| # | Type | Code |
|---|------|------|
| 1 | SET | `throughCount++` // Passed but not a notification target |

**Block 2.5** — [SET] `index++` and next iteration setup (L658)

| # | Type | Code |
|---|------|------|
| 1 | SET | `index++` |
| 2 | IF | `index < size` → `inHash = get(index)` and `newTajgsWribKeiNo = get(NAJGS_WRIB_KEI_NO)` |

**Block 3** — [IF] `(outTargetList.getOutMapList().size() > 0)` — output processing (L664)
> After the inner loop finishes for a discount contract number group, compile the collected records into the output map.

| # | Type | Code |
|---|------|------|
| 1 | IF | `size == 1` → single service type |
| 2 | SET | `inMap = outTargetList.getOutMapList().get(0)` |
| 3 | IF | `SVC_CD_NET.equals(svcCd)` → `outMap = setOutMapNetUpd(inMap)` // Network update |
| 4 | ELSE-IF | `SVC_CD_TEL.equals(svcCd)` → `outMap = setOutMapTelUpd(inMap)` // Telephone update |
| 5 | ELSE | `outMap = setOutMapBothUpd(outTargetList)` // Both network and telephone |

**Block 3.1** — [IF] `(outMap != null)` — output map successfully created (L688)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `outMap.setOutFlg(true)` // Set output flag |
| 2 | CALL | `outputBean.addOutMapList(outMap)` // Add to final output |

**Block 3.2** — [ELSE] `(outMap == null)` — output map is null (L697)
> When output map is null (e.g., all records in group were excluded), adjust counters to avoid double-counting.

| # | Type | Code |
|---|------|------|
| 1 | SET | `fileOutputCount -= outTargetList.getOutMapList().size()` |
| 2 | SET | `throughCount += outTargetList.getOutMapList().size()` |

**Block 4** — [SET] `outTargetList = new JBSbatOutputItem()` (L677)
> Reset the notification target list for the next discount contract number group.

**Block 5** — [CATCH] `(Exception e)` (L679)
> If any exception occurs during processing (e.g., division by zero when contract was already disposed), log error `EKKB0960AI` with the discount contract number, KDDI contract discrepancy number, service contract number, and service contract detail number, then rethrow.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `commonItem.getLogPrint().printBusinessErrorLog(EKKB0960AI, [otherProviderDiscountContractNo, KDDIContractDiscrepancyNo, serviceContractNo, serviceContractDetailNo])` |
| 2 | RETURN | `throw e` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SVC_CD` | Field | Service code — classifies the service type: `"01"` = Internet, `"02"` = Telephone |
| `SVC_KEI_NO` | Field | Service contract number — unique identifier for a service contract line item |
| `SVC_KEI_UCWK_NO` | Field | Service contract detail number — internal tracking ID for supplementary service details within a contract |
| `PRG_STAT` | Field | Progress status — tracks the current state of a contract change operation |
| `TAJGS_WRIB_KEI_NO` | Field | Other-provider discount contract number — links KDDI contracts to third-party discount programs |
| `KDDI_WKEI_IDT_NO` | Field | KDDI contract discrepancy notification number — primary key for discrepancy notification records |
| `KDDI_WKEI_IDT_STAT_CD` | Field | KDDI contract discrepancy notification status code — `"1"` = notified, `"2"` = not requiring notification, `"3"` = notification waiting |
| `PRG_STAT_SVCTK_CHU` | Constant | Service provision ongoing — the service is currently active (`"1000"`) |
| `PRG_STAT_HTELNO_DSL_FIN` | Constant | Light telephone number cancellation completion — number ported away to another carrier (`"B302"`) |
| `PRG_STAT_HTELNO_KAIHK_FIN` | Constant | Light telephone number recovery completion — number ported back to KDDI (`"B303"`) |
| `PRG_STAT_COURSECHG_FIN` | Constant | Course change completion — plan/course change completed (`"1422"`) |
| `SMTVL_IDO_DTL_CD` | Field | Smart Balance discrepancy detail code — `"00"` = Smart Balance target, `"01"` = non-target |
| `dslTajgsTchYmd` | Field | Other-provider cancellation notification date — date when cancellation-related other-provider notification should occur |
| `pcrsCd` | Field | Pricing course code — identifies the pricing tier/plan for a service |
| `PRC_GRP_CD` | Field | Pricing group code — groups pricing structures |
| `PPLAN_CD` | Field | Pricing plan code — specific pricing plan |
| `EOHNT_PPLAN_TIKI_SKCD` | Field | Smart net pricing plan territory identification code — distinguishes juyui (定額制/fixed-rate) vs tei (定額制/standard) plans |
| `PAUSE_STP_CD` | Field | Suspension interruption code — status codes for suspended services |
| `SVC_KEI_STAT` | Field | Service contract status — current state of the service contract (active, cancelled, etc.) |
| `SHOSA_DSL_FIN_CD` | Field | Investigation cancellation completion code — indicates if investigation-related cancellation has completed |
| `KJ_KR_CNCL_FLG` | Field | Work provisional cancel flag — indicates if a provisional cancellation has been received for the work order |
| Smart Balance | Business term | au smartphone service — NTT Docomo's premium mobile service branded as "au Smart Balance" in Japanese telecom context |
| MNP | Business term | Mobile Number Portability — the process of porting a phone number between carriers |
| RULE0086001 | Rule engine | Smart Balance application conditions — rule-based filtering engine that determines whether a discrepancy notification should be generated based on pricing, course, and contract status |
| KK_T_SVC_KEI_UCWK | Table | Service Contract Detail table — stores supplementary service contract detail records including billing start dates and contract details |
| KK_T_KDDI_WKEI_IDT | Table | KDDI Contract Discrepancy Notification table — main table tracking discrepancy notification status for KDDI contracts |
| KK_T_TAJGSWKEI_TGKEI | Table | Other-Provider Discount Contract Target Contract table — stores contracts subject to other-provider discount programs |
| KK_T_WRISVC_TG_KEI | Table | Discount Service Target Contract table — contracts eligible for discount services |
| KK_M_OLD_ICS_CD_CHG | Table | Old ICS Code Conversion table — legacy code mapping table |
| KU_T_KOJIAK | Table | Work Order table — stores work order/contract case information |
| `KAIHK` | Acronym | Recovery — number recovery/return in Japanese telecom context |
| `DSL` | Acronym | Disconnection/Cancel — service cancellation or disconnection in Japanese telecom context |
| `TCH` | Acronym | Notification — discrepancy notification (from Japanese 通知) |
| `UN_NCSR` | Acronym | Un-notification Required — status indicating discrepancy notification is not required |
| `TAJGS` | Acronym | Other Provider (他事業者) — third-party service provider in Japanese telecom context |
| `WKEI` | Acronym | Contract (契約) — contract in Japanese telecom context |
| `IDT` | Acronym | Discrepancy Notification (異動通知) — status change notification in Japanese telecom context |
| `SVC_KEI` | Acronym | Service Contract (サービス契約) — service line contract |
| `UCWK` | Acronym | Detail Work (詳細工事) — supplementary service detail work |
