# Business Logic — KKW12601SFLogic.setParamAndSeni() [152 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW12601SF.KKW12601SFLogic` |
| Layer | Controller (web view logic layer) |
| Module | `KKW12601SF` (Package: `eo.web.webview.KKW12601SF`) |

## 1. Role

### KKW12601SFLogic.setParamAndSeni()

This method serves as the shared page transition handler for the Invoiced Receipt List screen (KKW12601), preparing all data required to navigate to either the Invoiced Receipt Detail Update screen (KKW12602) or the Invoiced Receipt Detail Confirmation screen (KKW12604). It implements a data-accumulation and screen-state-setting pattern: it reads the selected row from the current screen's data grid, validates that the row has not already been sent (when performing an update operation), copies all search filter criteria from the current screen into an inheritance map for the self-screen (return destination), accumulates the transaction division and selected receipt identifier into a next-screen map, and registers both maps as screen information via the shared web common utility. Its role in the larger system is as the central coordination method between the list view (KKW12601) and its child detail screens (KKW12602/KKW12604), ensuring consistent data flow across screen transitions without screen-crossing dependencies. The method handles two branches: (1) when `tran_div` equals "2" (detailed update), it performs a pre-check to prevent updates to already-transmitted receipts; (2) for all cases, it builds complete inheritance data structures and sets up screen navigation state.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setParamAndSeni tran_div"])
    START --> INIT["result = true"]
    INIT --> GETBEAN["Get X31SDataBeanAccess from super.getServiceFormBean"]
    GETBEAN --> GETCHOICE["Get kanuoreso_choice from DataBean selected row index"]
    GETCHOICE --> PARSESEL["Parse kanuoreso_choice to int sel"]
    PARSESEL --> GETLIST["Get datalist from getDataBeanArray KANUORESO_LIST"]
    GETLIST --> GETDB["Get dataBean at index sel"]
    GETDB --> CHECKUPD{tran_div equals TRAN_DIV_UPD 2}
    CHECKUPD -->|Yes| GETSENDDTM["Get send_dtm from dataBean SEND_DTM_02"]
    GETSENDDTM --> SENDDTMNULL{send_dtm not null and not empty}
    SENDDTMNULL -->|Yes| SHOWERR["Set error message Already sent update EKB0930_NW"]
    SHOWERR --> RETURN_TRUE["return result true"]
    SENDDTMNULL -->|No| BUILDDATAME["Create dataMapMe HashMap"]
    CHECKUPD -->|No| BUILDDATAME
    BUILDDATAME --> PUTSYSID["Put SYSID into dataMapMe"]
    PUTSYSID --> PUTSVC["Put SVC_KEI_NO into dataMapMe"]
    PUTSVC --> PUTDATEFROM["Put DATA_CHSHT date range fields into dataMapMe"]
    PUTDATEFROM --> PUTDATETO["Put DATA_CHSHT date range To fields into dataMapMe"]
    PUTDATETO --> PUTFILTERS["Put MSKMSHO_NO CUST_NM SAME_KAISEN_GRP_NO SEARCH fields into dataMapMe"]
    PUTFILTERS --> PUTSORT["Put ORDER_NUM and ORDER_TYPE into dataMapMe"]
    PUTSORT --> GETKANUORESO["Get kanuoreso_no from dataBean KANUORESO_HAKKO_NO_02"]
    GETKANUORESO --> GETTNTNMKT["Get tnmt_skcd from dataBean TNMT_BUY_TCHISHO_OPUT_SKCD_02"]
    GETTNTNMKT --> BUILDDATANEXT["Create dataMapNext HashMap"]
    BUILDDATANEXT --> PUTNEXT["Put TRAN_DIV KANUORESO_HAKKO_NO TNMT_BUY_TCHISHO_OPUT_SKCD into dataMapNext"]
    PUTNEXT --> SETSCREENINFO1["Call JCCWebCommon.setScreenInfo this SCREEN_ID_KKW12602 dataMapNext"]
    SETSCREENINFO1 --> SETSCREENID1["Call JCCWebCommon.setScreenId this SCREEN_ID_KKW12602 SCREEN_ID_KKW12601"]
    SETSCREENID1 --> CHECKUPD2{tran_div equals TRAN_DIV_UPD 2}
    CHECKUPD2 -->|Yes| SETSCREENID2["Call JCCWebCommon.setScreenId this SCREEN_ID_KKW12604 SCREEN_ID_KKW12601"]
    SETSCREENID2 --> SETSCREENID3["Set return source screenId KKW12601"]
    CHECKUPD2 -->|No| SETSCREENID3
    SETSCREENID3 --> SETSCREENINFO2["Call JCCWebCommon.setScreenInfo this SCREEN_ID_KKW12601 dataMapMe"]
    SETSCREENINFO2 --> GETCOMMON["Get commoninfoBean from super.getCommonInfoBean"]
    GETCOMMON --> SETNEXTSCREEN["Set NEXT_SCREEN_ID and NEXT_SCREEN_NAME in commoninfoBean to KKW12602"]
    SETNEXTSCREEN --> CLEARINFLG["Clear INFLG on source DataBean"]
    CLEARINFLG --> LOGINFO["Call printLog DEBUG dataMapMe self screen inheritance"]
    LOGINFO --> LOGNEXT["Call printLog DEBUG dataMapNext next screen inheritance"]
    LOGNEXT --> LOGDBDUMP["Call JSYwebLog.println DataBean_Dump dumpDatabean"]
    LOGDBDUMP --> RETURNFINAL["return result true"]
    RETURN_TRUE --> RETURNFINAL
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `tran_div` | `String` | Transaction division code that determines the type of operation on the selected invoiced receipt record. Value `"1"` means detailed view (display only), value `"2"` means detailed update (allow modifications). This value is forwarded to the next screen so it knows whether to render the UI in view-only or edit mode. |

**Instance fields / external state read:**

| Source | Description |
|--------|-------------|
| `super.getServiceFormBean()` | Returns the service form DataBean (X31SDataBeanAccess) containing the current screen's data grid, selection state, and search filter inputs |
| `super.getCommonInfoBean()` | Returns the shared common info bean used to set the next screen ID for cross-screen navigation |
| `this` | The logic instance itself, passed to JCCWebCommon for screen state management |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `OneStopDataBeanAccessArray.getDataBean` | - | - | Retrieves the selected row DataBean from the invoiced receipt list array by index |
| R | `OneStopDataBeanAccess.getDataBeanArray` | - | - | Retrieves the full array of invoiced receipt rows from the source DataBean |
| R | `OneStopDataBeanAccess.sendMessageString` (multiple calls) | - | - | Reads string values from the source DataBean (selected row index, SYSID, service contract number, date range, search filters, sort fields, kanuoreso number, terminal purchase notification code) |
| R | `OneStopDataBeanAccess.sendMessageBoolean` | - | - | Reads the return button display flag from the source DataBean |
| R | `FUW09905SFLogic.getDataBean` | - | - | Accesses the common info bean for shared cross-screen state |
| R | `FUSV0277_FUSV0277OPDBMapper.getDataBean` | - | - | Accesses the source service form DataBean |
| R | `FUW00162SFLogic.getDataBean` | - | - | Accesses additional DataBean state |
| - | `JCCWebCommon.setScreenId` | JCCWebCommon | - | Sets the screen ID pair (next screen ID, return source screen ID) for navigation state |
| - | `JCCWebCommon.setScreenInfo` | JCCWebCommon | - | Sets the screen inheritance map for the next screen and self-screen, passing accumulated data |
| - | `JKKAddSupportCC.setMessageInfo` | JKKAddSupportCC | - | Sets error message "Already sent, update" when attempting to update an already-transmitted record |
| - | `JKKCreateNhkDntIktCC.setMessageInfo` | JKKCreateNhkDntIktCC | - | Message utility for screen info |
| - | `JKKFumeiKktkSvcKeiUpdCC.setMessageInfo` | JKKFumeiKktkSvcKeiUpdCC | - | Message utility for screen info |
| - | `JKKGetKikiUpdCodeNameCC.setMessageInfo` | JKKGetKikiUpdCodeNameCC | - | Message utility for screen info |
| - | `JKKGetKojiAkTaknkikiCC.setMessageInfo` | JKKGetKojiAkTaknkikiCC | - | Message utility for screen info |
| - | `KKW01101SFLogic.setScreenInfo` | KKW01101SFLogic | - | Screen info utility |
| - | `KKW05001SFLogic.setScreenId` | KKW05001SFLogic | - | Screen ID utility |
| - | `KKW12601SFLogic.printLog` | KKW12601SFLogic | - | Debug logging of inheritance data maps |
| - | `OneStopDataBeanAccess.sendMessageString` (SET calls) | OneStopDataBeanAccess | - | Sets next screen ID and name into the common info bean; clears input flag on source DataBean |

No direct database CRUD operations are performed in this method. It is purely a screen-state preparation method that accumulates data into HashMaps and configures navigation via the web common utilities.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `KKW12601SFLogic.actionShokaiDtl()` | `actionShokaiDtl()` -> `setParamAndSeni(tran_div)` | `printLog` (log), `setScreenInfo` (state), `setScreenId` (state) |
| 2 | `KKW12601SFLogic.actionUpdDtl()` | `actionUpdDtl()` -> `setParamAndSeni(tran_div)` | `printLog` (log), `setScreenInfo` (state), `setScreenId` (state) |

**Call chain details:**

- **`actionShokaiDtl()`**: Called from screen KKW12601 when the user clicks the "Detail View" (show) button on a selected invoiced receipt row. Passes `TRAN_DIV_DTL = "1"` to indicate read-only detail display. The method navigates to screen KKW12602 (detail update screen) in view-only mode.

- **`actionUpdDtl()`**: Called from screen KKW12601 when the user clicks the "Detail Update" button on a selected invoiced receipt row. Passes `TRAN_DIV_UPD = "2"` to indicate update mode. If the selected record has already been transmitted (send_dtm is set), an error message is displayed and navigation is blocked. Otherwise, it navigates to screen KKW12604 (detail confirmation screen for updates).

No batch entry points. This method is exclusively a screen-to-screen coordination method in the web view layer.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] `(initialization)` (L1741)

> Initialize the result variable to true and retrieve the service form DataBean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `result = true` // default return value |
| 2 | CALL | `bean = super.getServiceFormBean()` // [X31SDataBeanAccess] Retrieve the service form DataBean for the current screen |

**Block 2** — [SET + PARSE] `(get selected row index)` (L1744)

> Extract the user's selected row from the DataBean grid. The grid uses a string representation of an integer.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kanuoreso_choice = bean.sendMessageString(KKW12601SFConst.KANUORESO_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)` // [KANUORESO_CHOICE = "Invoiced receipt selected row"] Get selected row index as string |
| 2 | SET | `sel = 0` // default to first row |
| 3 | IF | `kanuoreso_choice != null && !"".equals(kanuoreso_choice)` (L1746) |
| 3.1 | SET | `sel = Integer.parseInt(kanuoreso_choice)` // parse the string index |

**Block 3** — [SET] `(get list data and select row)` (L1751)

> Retrieve the array of invoiced receipt DataBeans and extract the selected row.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `datalist = bean.getDataBeanArray(KKW12601SFConst.KANUORESO_LIST)` // [KANUORESO_LIST = "Invoiced receipt list"] |
| 2 | CALL | `dataBean = datalist.getDataBean(sel)` // Get the specific selected row |

**Block 4** — [IF] `(TRAN_DIV_UPD = "2" pre-check for already-sent records)` (L1754)

> When the user is performing a detailed update (tran_div = "2"), check whether the selected receipt has already been transmitted. If so, block the update and show an error message. This is a business rule to prevent modifying records that have already been sent.

| # | Type | Code |
|---|------|------|
| 1 | IF | `KKW12602SFLogic.TRAN_DIV_UPD.equals(tran_div)` [TRAN_DIV_UPD = "2"] // (L1754) |
| 1.1 | **Block 4.1** — [CALL + CHECK] `(get send date-time)` (L1757) |
| 1.1.1 | CALL | `send_dtm = dataBean.sendMessageString(KKW12601SFConst.SEND_DTM_02, X31CWebConst.DATABEAN_GET_VALUE)` // [SEND_DTM_02 = "Transmit date-time"] Get the transmitted date-time value |
| 1.1.2 | **Block 4.1.1** — [IF] `(send_dtm is set)` (L1760) |
| 1.1.2.1 | IF | `send_dtm != null && !"".equals(send_dtm)` (L1760) |
| 1.1.2.1.1 | SET | `msgInfo = {"Already sent", "Update"}` // Japanese: "既に送信済の" + "更新" — Error message for updating an already-transmitted receipt |
| 1.1.2.1.2 | CALL | `JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, msgInfo)` // [EKB0930_NW] Display error message |
| 1.1.2.1.3 | RETURN | `return result` // Early return true (result not changed, no navigation occurs) |

**Block 5** — [SET] `(build inheritance map for self-screen)` (L1766)

> Create a HashMap that carries all search filter criteria and display data from the current screen back to itself. This allows the screen to retain its search state when returning from the detail screen.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMapMe = new HashMap()` // "Inheritance info (for self-screen)" — Japanese: 引き継ぎの情報（自画面用） |
| 2 | SET | `dataMapMe.put(SYSID, bean.sendMessageString(SYSID, GET_VALUE))` // [SYSID = "SYSID"] |
| 3 | SET | `dataMapMe.put(SVC_KEI_NO, bean.sendMessageString(SVC_KEI_NO, GET_VALUE))` // [SVC_KEI_NO = "Service contract number"] |
| 4 | SET | `dataMapMe.put(DATA_CHSHT_YEAR_FROM, ...)` // [DATA_CHSHT_YEAR_FROM = "Data extraction date (from) (year)"] |
| 5 | SET | `dataMapMe.put(DATA_CHSHT_MON_FROM, ...)` // [DATA_CHSHT_MON_FROM = "Data extraction date (from) (month)"] |
| 6 | SET | `dataMapMe.put(DATA_CHSHT_DAY_FROM, ...)` // [DATA_CHSHT_DAY_FROM = "Data extraction date (from) (day)"] |
| 7 | SET | `dataMapMe.put(DATA_CHSHT_YEAR_TO, ...)` // [DATA_CHSHT_YEAR_TO = "Data extraction date (to) (year)"] |
| 8 | SET | `dataMapMe.put(DATA_CHSHT_MON_TO, ...)` // [DATA_CHSHT_MON_TO = "Data extraction date (to) (month)"] |
| 9 | SET | `dataMapMe.put(DATA_CHSHT_DAY_TO, ...)` // [DATA_CHSHT_DAY_TO = "Data extraction date (to) (day)"] |
| 10 | SET | `dataMapMe.put(MSKMSHO_NO, ...)` // [MSKMSHO_NO = "Submission number"] |
| 11 | SET | `dataMapMe.put(CUST_NM, ...)` // [CUST_NM = "Customer name (Kanji)"] |
| 12 | SET | `dataMapMe.put(SAME_KAISEN_GRP_NO, ...)` // [SAME_KAISEN_GRP_NO = "Same cable group number"] |
| 13 | SET | `dataMapMe.put(SEARCH_DATA_SBT_CD, ...)` // [SEARCH_DATA_SBT_CD = "Search data type code"] |
| 14 | SET | `dataMapMe.put(SEARCH_SYSID, ...)` // [SEARCH_SYSID = "Search SYSID"] |
| 15 | SET | `dataMapMe.put(SEARCH_SVC_KEI_NO, ...)` // [SEARCH_SVC_KEI_NO = "Search service contract number"] |
| 16 | SET | `dataMapMe.put(SEARCH_CHSHTYMD_FROM, ...)` // [SEARCH_CHSHTYMD_FROM = "Search data extraction date (from)"] |
| 17 | SET | `dataMapMe.put(SEARCH_CHSHTYMD_TO, ...)` // [SEARCH_CHSHTYMD_TO = "Search data extraction date (to)"] |
| 18 | SET | `dataMapMe.put(SEARCH_MSKMSHO_NO, ...)` // [SEARCH_MSKMSHO_NO = "Search submission number"] |
| 19 | SET | `dataMapMe.put(SEARCH_CUST_NM, ...)` // [SEARCH_CUST_NM = "Search customer name (Kanji)"] |
| 20 | SET | `dataMapMe.put(SEARCH_KAISEN_GRP_NO, ...)` // [SEARCH_KAISEN_GRP_NO = "Search same cable group number"] |
| 21 | SET | `dataMapMe.put(SEARCH_NEW_ADD_SKBT_F, ...)` // [SEARCH_NEW_ADD_SKBT_F = "Search new addition identification flag"] |
| 22 | SET | `dataMapMe.put(SEARCH_SEND_JGI_FLG, ...)` // [SEARCH_SEND_JGI_FLG = "Search transmission exclusion flag"] |
| 23 | SET | `dataMapMe.put(SEARCH_MI_SEND, ...)` // [SEARCH_MI_SEND = "Search untransmitted"] |
| 24 | SET | `dataMapMe.put(ORDER_NUM, ...)` // [ORDER_NUM = "Sort item N.O"] |
| 25 | SET | `dataMapMe.put(ORDER_TYPE, ...)` // [ORDER_TYPE = "Sort order"] |
| 26 | SET | `RTN_BTN_DISP_FLG = bean.sendMessageBoolean(RTN_BTN_DISP_FLG, GET_VALUE)` // [RTN_BTN_DISP_FLG = "Return button display flag"] v4.01 screen layout change support |
| 27 | SET | `dataMapMe.put(RTN_BTN_DISP_FLG, rtnBtnDispFlg)` // (L1798) |

**Block 6** — [SET] `(get selected row invoiced receipt number and terminal purchase notification code)` (L1800)

> Extract the invoiced receipt number and terminal purchase notification output identification code from the selected row.

| # | Type | Code |
|---|------|------|
| 1 | SET | `kanuoreso_no = dataBean.sendMessageString(KKW12601SFConst.KANUORESO_HAKKO_NO_02, GET_VALUE)` // [KANUORESO_HAKKO_NO_02 = "Invoiced receipt number"] |
| 2 | SET | `tnmt_skcd = dataBean.sendMessageString(KKW12601SFConst.TNMT_BUY_TCHISHO_OPUT_SKCD_02, GET_VALUE)` // [TNMT_BUY_TCHISHO_OPUT_SKCD_02 = "Terminal purchase notification output identification code"] ANK-1200-00-00 ADD (L1803) |
| 3 | SET | `dataMapMe.put(TNMT_BUY_TCHISHO_OPUT_SKCD_02, tnmt_skcd)` // (L1806) |
| 4 | SET | `dataMapMe.put(KANUORESO_HAKKO_NO, kanuoreso_no)` // [KANUORESO_HAKKO_NO = "Invoiced receipt number"] |
| 5 | SET | `dataMapMe.put(SEARCH_FLG, SEARCH_FLG_Y)` // [SEARCH_FLG = "Search flag", SEARCH_FLG_Y = "Y" (search required)] |

**Block 7** — [SET] `(build inheritance map for next screen)` (L1802, L1809)

> Create a HashMap for the next screen containing the transaction division, selected receipt number, and terminal purchase notification code.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMapNext = new HashMap()` // "Inheritance info (for next screen)" — Japanese: 引き継ぎの情報（次画面用） |
| 2 | SET | `dataMapNext.put(KKW12602SFConst.TRAN_DIV, tran_div)` // [TRAN_DIV = "Transaction division"] |
| 3 | SET | `dataMapNext.put(KKW12602SFConst.KANUORESO_HAKKO_NO, kanuoreso_no)` // [KANUORESO_HAKKO_NO = "Invoiced receipt number"] |
| 4 | SET | `dataMapNext.put(KKW12602SFConst.TNMT_BUY_TCHISHO_OPUT_SKCD, tnmt_skcd)` // Terminal purchase notification output code (L1811) |

**Block 8** — [CALL] `(set next screen info and screen IDs)` (L1813)

> Configure screen navigation state. The next screen is always KKW12602. If tran_div is "2" (update), the return source is changed from KKW12602 to KKW12604.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW12602, dataMapNext)` // [SCREEN_ID_KKW12602 = "KKW12602"] Set next screen info |
| 2 | CALL | `JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW12602, JKKScreenConst.SCREEN_ID_KKW12601)` // [SCREEN_ID_KKW12602 = "KKW12602", SCREEN_ID_KKW12601 = "KKW12601"] Set screen ID pair: (next=KKW12602, returnSource=KKW12601) |
| 3 | IF | `KKW12602SFLogic.TRAN_DIV_UPD.equals(tran_div)` [TRAN_DIV_UPD = "2"] (L1817) |
| 3.1 | CALL | `JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW12604, JKKScreenConst.SCREEN_ID_KKW12601)` // [SCREEN_ID_KKW12604 = "KKW12604"] Override: when updating, return to KKW12604 instead of KKW12602 |

**Block 9** — [CALL] `(set self-screen info)` (L1820)

> Register the self-inheritance map so that when the user returns to KKW12601, all search filters are preserved.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW12601, dataMapMe)` // [SCREEN_ID_KKW12601 = "KKW12601"] |

**Block 10** — [CALL] `(set common info next screen)` (L1823)

> Set the shared common info bean so the framework knows which screen is next for the return button.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `commoninfoBean = super.getCommonInfoBean()` // Retrieve the shared common info DataBean |
| 2 | CALL | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET_VALUE, JKKScreenConst.SCREEN_ID_KKW12602)` // [NEXT_SCREEN_ID] Set next screen ID |
| 3 | CALL | `commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW12602)` // [NEXT_SCREEN_NAME] Set next screen name |

**Block 11** — [CALL] `(clear input flag)` (L1827)

> Reset the input flag on the source DataBean.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `bean.sendMessageString(KKW12601SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "")` // [INFLG = "Input flag"] Clear by setting empty string |

**Block 12** — [CALL] `(debug logging)` (L1830)

> Log the inheritance data maps for debugging.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `printLog(JSYwebLog.DEBUG, dataMapMe, "Inheritance info for self screen")` // Japanese: 自画面への引き継ぎ情報 |
| 2 | CALL | `printLog(JSYwebLog.DEBUG, dataMapNext, "Inheritance info for next screen")` // Japanese: 次画面への引き継ぎ情報 |
| 3 | CALL | `JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null)` // Dump DataBean state to log |

**Block 13** — [RETURN] `(normal completion)` (L1833)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return result` // Always returns true (error cases early-return before reaching here) |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `tran_div` | Field | Transaction division — operation type code: "1" = detail view, "2" = detail update |
| `KANUORESO` | Acronym | Invoiced receipt (請求御礼) — a receipt/document sent to customers confirming service registration |
| `KANUORESO_HAKKO_NO` | Field | Invoiced receipt number — unique identifier for an invoiced receipt document |
| `send_dtm` | Field | Transmit date-time — timestamp set when an invoiced receipt has been sent; presence indicates already-transmitted |
| `TRAN_DIV_UPD` | Constant | Transaction division "2" (Update) — triggers the pre-check for already-sent records |
| `TRAN_DIV_DTL` | Constant | Transaction division "1" (Detail) — read-only detail display mode |
| `SCREEN_ID_KKW12601` | Constant | "KKW12601" — Invoiced Receipt List screen (this screen) |
| `SCREEN_ID_KKW12602` | Constant | "KKW12602" — Invoiced Receipt Detail Update screen (next screen for view and update) |
| `SCREEN_ID_KKW12604` | Constant | "KKW12604" — Invoiced Receipt Detail Confirmation screen (return destination when updating) |
| `dataMapMe` | Field | Self-screen inheritance map — carries search filter state from current screen to itself upon return |
| `dataMapNext` | Field | Next-screen inheritance map — carries transaction division and selected receipt info to the next screen |
| `kanuoreso_choice` | Field | Selected row index from the invoiced receipt list grid (0-based) |
| `MSKMSHO_NO` | Field | Submission number (申請書番号) — reference number for the application/submission document |
| `SAME_KAISEN_GRP_NO` | Field | Same cable group number (同一回線グループ番号) — groups related telecom lines under a common identifier |
| `TNMT_BUY_TCHISHO_OPUT_SKCD` | Field | Terminal purchase notification output identification code — indicates whether terminal purchase notification has been output |
| `SEARCH_FLG` | Field | Search flag — "Y" indicates search conditions should be re-applied upon return |
| `RTN_BTN_DISP_FLG` | Field | Return button display flag — controls visibility of the screen's return button (added in v4.01) |
| `INFLG` | Field | Input flag — cleared after navigation preparation to indicate the form has been processed |
| `JCCWebCommon` | Class | Shared web common utility class providing screen state management (setScreenId, setScreenInfo, setMessageInfo) |
| `X31SDataBeanAccess` | Class | Service form DataBean access wrapper for retrieving/manipulating screen data |
| `X31CWebConst` | Constant class | Framework constant defining DataBean operation codes (GET_VALUE, SET_VALUE) |
| `JKKScreenConst` | Constant class | Screen ID and name constants for all screens in the K-Opticom system |
| `CommonInfoCFConst` | Constant class | Common info framework constants for cross-screen navigation state |
| `EKB0930_NW` | Message Code | Error message key for "Already sent" notification |
| `JSYwebLog` | Class | Framework logging utility for debug output and DataBean dumps |
