# Business Logic — KKW05601SFLogic.actionCfm() [140 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW05601SF.KKW05601SFLogic` |
| Layer | Controller (Web Logic / SF Screen Logic) |
| Module | `KKW05601SF` (Package: `eo.web.webview.KKW05601SF`) |

## 1. Role

### KKW05601SFLogic.actionCfm()

This method implements the **registration confirmation button press processing** (登録確認ボタン押下処理) for the Transfer Toki Registration screen (KKW05601SF) within the K-Opticom Contract Management System. It serves as the central entry point that orchestrates the full confirmation lifecycle when a user clicks the confirmation button on the tokishi (transfer service start) registration screen. The method extracts all screen display data — including target phone number, bank/line porting indicator, contract status, transfer registration category, service type code, service request flag, start/end reservation dates, transfer-origin phone number, contact phone number, reserved phone number, transfer content details, and migration classification — from the service form bean, then stores these values into a custom contract handover bean via `setCustKeiHktgiBean`. Based on the migration classification (`idoKbn`), it dispatches to one of two specialized handlers: if the migration type is `00019` (address change registration / 住所変更登録), it calls `actionCfmIdoKbn00019` to process that specific branch; otherwise it delegates to `actionCfmOtherIdoKbn` which handles all other migration types, including general transfer tokishi registration, transfer-origin cancellation, suspension-based transfer, and other service modifications. If the other branch handler returns `true`, it displays a timing notification message to the user via `dispMessageTokiTiming`. The method uses a **routing/dispatch design pattern** and a **delegation pattern**, where the top-level method acts as a coordinator that gathers data and delegates domain-specific logic to specialized methods. This method is a **screen-specific entry point** — it is called by the KKW05601SF screen controller when the confirmation button is pressed and does not appear to be called by any other screen or batch process.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["actionCfm start"])
    GET_BEAN["Get service form bean"]
    CHECK_BEAN["Bean == null?"]
    THROW["Throw Exception"]
    DEBUG_START["Log: Registration confirmation start"]
    GET_TOKI_TG_TELNO["Get tokiTgTelNo from bean"]
    GET_BANPO["Get banpo from bean"]
    GET_KEIYAKU["Get keiyakuJotai from bean"]
    GET_TOKI_ADD_CD["Get tokiAddCd via getSelectedCd"]
    GET_TOKI_SBT_DSP["Get tokiSbtDsp from bean"]
    GET_TOKI_SBT_CD["Get tokiSbtCd via getSelectedCd"]
    GET_TOKI_KIBO_DSP["Get tokiKiboDsp from bean"]
    GET_TOKI_KIBO["Get tokiKibo via getSelectedCd"]
    GET_START_DATE["Get tokiStaRsvYear,Mon,Day -> tokiStaRsvYmd"]
    GET_END_DATE["Get tokiEndRsvYear,Mon,Day -> tokiEndRsvYmd"]
    GET_ITEN_TELNO["Get itenMotoTelNo from bean"]
    GET_RRKS_TELNO["Get rrksTelNo from bean"]
    GET_RSV_TELNO["Get rsvTelNo via getSelectedCd"]
    GET_TOKI_NAIYO["Get tokiNaiyo from bean"]
    GET_IDO_KBN["Get idoKbn from bean"]
    LOG_VALUES["Log all extracted values"]
    SET_CUST_BEAN["setCustKeiHktgiBean(bean, ...all params)"]
    CHECK_IDO["idoKbn == '00019'?"]
    BRANCH_00019["Call actionCfmIdoKbn00019"]
    BRANCH_OTHER["Call actionCfmOtherIdoKbn"]
    CHECK_RESULT["actionCfmOtherIdoKbn == true?"]
    DISP_MSG["Call dispMessageTokiTiming"]
    LOG_END["Log: Registration confirmation end"]
    RETURN_TRUE["Return true"]

    START --> GET_BEAN
    GET_BEAN --> CHECK_BEAN
    CHECK_BEAN -->|"null"| THROW
    CHECK_BEAN -->|"not null"| DEBUG_START
    DEBUG_START --> GET_TOKI_TG_TELNO
    GET_TOKI_TG_TELNO --> GET_BANPO
    GET_BANPO --> GET_KEIYAKU
    GET_KEIYAKU --> GET_TOKI_ADD_CD
    GET_TOKI_ADD_CD --> GET_TOKI_SBT_DSP
    GET_TOKI_SBT_DSP --> GET_TOKI_SBT_CD
    GET_TOKI_SBT_CD --> GET_TOKI_KIBO_DSP
    GET_TOKI_KIBO_DSP --> GET_TOKI_KIBO
    GET_TOKI_KIBO --> GET_START_DATE
    GET_START_DATE --> GET_END_DATE
    GET_END_DATE --> GET_ITEN_TELNO
    GET_ITEN_TELNO --> GET_RRKS_TELNO
    GET_RRKS_TELNO --> GET_RSV_TELNO
    GET_RSV_TELNO --> GET_TOKI_NAIYO
    GET_TOKI_NAIYO --> GET_IDO_KBN
    GET_IDO_KBN --> LOG_VALUES
    LOG_VALUES --> SET_CUST_BEAN
    SET_CUST_BEAN --> CHECK_IDO
    CHECK_IDO -->|"yes '00019'"| BRANCH_00019
    CHECK_IDO -->|"no"| BRANCH_OTHER
    BRANCH_OTHER --> CHECK_RESULT
    CHECK_RESULT -->|"true"| DISP_MSG
    CHECK_RESULT -->|"false"| LOG_END
    DISP_MSG --> LOG_END
    BRANCH_00019 --> LOG_END
    LOG_END --> RETURN_TRUE
```

**Processing steps:**
1. Retrieve the service form `X31SDataBeanAccess` bean from the parent class. If the bean is `null`, throw an `Exception` immediately.
2. Extract all screen data from the bean via `sendMessageString` calls — including target phone number, banpo (bank/line porting), contract status, transfer registration category, service type, service request, start/end dates (composed into YYYYMMDD format), transfer-origin phone number, contact phone number, reserved phone number, transfer content, and migration classification.
3. Use `getSelectedCd` helper for display-value-to-actual-value conversions on select fields (tokiAddCd, tokiSbtCd, tokiKibo, rsvTelNo).
4. Compose `tokiStaRsvYmd` and `tokiEndRsvYmd` by concatenating year + month + day strings.
5. Log all extracted values for debugging.
6. Call `setCustKeiHktgiBean` to persist all extracted screen values into a custom bean for downstream use.
7. Dispatch based on `idoKbn` (migration classification): if equal to `"00019"` (address change registration), call `actionCfmIdoKbn00019`; otherwise call `actionCfmOtherIdoKbn` and check its boolean return value — if `true`, call `dispMessageTokiTiming` to display a timing notification message.
8. Log completion and return `true`.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no explicit parameters. All data is retrieved from the service form bean (`X31SDataBeanAccess`) obtained via `super.getServiceFormBean()`. |
| - | `bean` (internal) | `X31SDataBeanAccess` | The service form data bean containing all screen input values submitted by the user. Extracted from the parent context. |

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

| Name | Type | Business Description |
|------|------|---------------------|
| `DEBUG_LOG` | `Logger` | Debug logger for tracing execution (from `X31SWebLog.DEBUG_LOG`) |
| `ITENSAKI_ADD_TOKI` | `String = "1"` | Constant: Transfer destination registration category code (used indirectly via `actionCfmOtherIdoKbn`) |
| `ITENMOTO_DSL_TOKI` | `String` | Constant: Transfer-origin cancellation category code (used indirectly via `actionCfmOtherIdoKbn`) |
| `ADCHG_STAT_REG` | `String` | Constant: Address change status "registered" (used indirectly via `actionCfmOtherIdoKbn`) |
| `super` (parent class) | `JCCWebBusinessLogic` | Base class providing `getServiceFormBean()` and `invokeServiceKKSV0171()` |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `X31SDataBeanAccess.sendMessageString` | X31SDataBeanAccess | - | Reads values from the service form bean via sendMessageString (R) |
| - | `X31SDataBeanAccessArray.getDataBeanArray` | X31SDataBeanAccessArray | - | Reads data bean arrays from the service form bean |
| R | `KKW05601SFLogic.getSelectedCd` | KKW05601SFLogic | - | Reads display code values and resolves to actual codes |
| - | `KKW05601SFLogic.setCustKeiHktgiBean` | KKW05601SFLogic | - | Sets custom contract handover bean with screen values |
| - | `KKW05601SFLogic.actionCfmIdoKbn00019` | KKW05601SFLogic | - | Dispatches to address change registration confirmation handler |
| - | `KKW05601SFLogic.actionCfmOtherIdoKbn` | KKW05601SFLogic | - | Dispatches to general transfer tokishi registration confirmation handler |
| - | `KKW05601SFLogic.dispMessageTokiTiming` | KKW05601SFLogic | - | Displays a timing notification message to the user |

**Deep-dive into called services via `actionCfmOtherIdoKbn` and `actionCfmIdoKbn00019`:**

The `actionCfmOtherIdoKbn` method (which handles the majority of migration types) performs the following:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW05601SFLogic.getSvcKeiUcwkBean` | KKW05601SFLogic | - | Reads service contract details bean for status checks |
| C | `KKW05601SFLogic.actionCfmOtherIdoKbn` (internal) | KKW05601SFLogic | - | Creates EKK0011D020 detail data bean entries for request approval registration |
| U | `KKW05601SFLogic.actionCfmOtherIdoKbn` (internal) | KKW05601SFLogic | - | Sets service request codes, operation date-time, approval status, transfer tokishi codes, start/end dates |
| C | `invokeServiceKKSV0171` | KKSV0171 | KKSV0171SC | Invokes service KKSV0171 (func code 2) — Transfer Tokishi Registration / Transfer Tokishi Setting (check only) |
| R | `actionCfmOtherIdoKbn` (internal) | - | - | Reads address change before/after identifier numbers, address change status, work project status, service contract status |
| - | `actionCfmOtherIdoKbn` (internal) | - | - | Checks for error conditions (same-number transfer with address change + transfer destination registration) |
| R | `KKW05601SFLogic.initTelnoStatCheckActionCfm` | KKW05601SFLogic | - | Checks phone number status to determine if transfer is permissible |
| R | `KKW05601SFLogic.actionCfmOtherIdoKbn` (internal) | - | - | Reads transfer destination service contract content number via findTensoSkSvkuwno |
| R | `KKW05601SFLogic.actionCfmOtherIdoKbn` (internal) | - | - | Reads transfer destination service contract content status via findTensoSkSvkuwStat |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0170 | KKSV0170 OPDBMapper -> KKW05601SFLogic.actionCfm | invokeServiceKKSV0171 [C] tokishi_reg, initTelnoStatCheckActionCfm [R] phone_status, findTensoSkSvkuwno [R] svc_contract, findTensoSkSvkuwStat [R] svc_status, actionCfmIdoKbn00019 [R/U] address_change |
| 2 | Screen:KKSV0171 | KKSV0171 OPDBMapper -> KKW05601SFLogic.actionCfm | invokeServiceKKSV0171 [C] tokishi_reg |
| 3 | KKW05601SFChecker | KKW05601SFChecker.validate -> KKW05601SFLogic.actionCfm | invokeServiceKKSV0171 [C] tokishi_reg |

**Notes on call chain:**
- `KKW05601SF` is a standalone screen module. The OPDB mapper `KKSV0170_KKSV0170OPDBMapper` (which uses constants from `KKW05601SFConst`) is the primary data access layer.
- The `KKW05601SFChecker` class references `KKW05601SFLogic` as its business logic class.
- `KKW05601SF` is NOT directly called from any other screen logic classes (KKA16101SF, KKA18001SF, etc. have their own `actionCfm` methods which are different screens).
- The primary terminal endpoints from this method's callees are: `invokeServiceKKSV0171` (transfer tokishi registration service), phone number status checks, and service contract status lookups.

## 6. Per-Branch Detail Blocks

**Block 1** — IF `(bean == null)` (L821)
> Guard clause: validate that the service form bean is not null. If null, throw an exception immediately.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `if (null == bean)` |
| 2 | THROW | `throw new Exception();` |

**Block 2** — Processing Step (Bean Validation Passed) (L823–L872)
> Extract all screen display data from the service form bean.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.getServiceFormBean()` — Get service form bean [-> X31SDataBeanAccess bean] |
| 2 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_TG_TELNO, DATABEAN_GET_VALUE)` — Get target phone number [-> tokiTgTelNo] |
| 3 | EXEC | `bean.sendMessageString(KKW05601SFConst.BANGO_PORTA, DATABEAN_GET_VALUE)` — Get bank/porting indicator (banpo) [ANK-1293] [-> banpo] |
| 4 | EXEC | `bean.sendMessageString(KKW05601SFConst.KEIYAKU_JOTAI, DATABEAN_GET_VALUE)` — Get contract status [-> keiyakuJotai] |
| 5 | CALL | `getSelectedCd(bean, TOKI_ADD_DIV, TOKI_ADD_DIV_DSP)` — Get transfer registration category [-> tokiAddCd] |
| 6 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_SBT_DSP, DATABEAN_GET_VALUE)` — Get service type display [-> tokiSbtDsp] |
| 7 | CALL | `getSelectedCd(bean, TOKI_SBT, TOKI_SBT_DSP)` — Get service type code [-> tokiSbtCd] |
| 8 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_KIBO_DSP, DATABEAN_GET_VALUE)` — Get service request display [-> tokiKiboDsp] |
| 9 | CALL | `getSelectedCd(bean, TOKI_KIBO, TOKI_KIBO_DSP)` — Get service request flag [-> tokiKibo] |
| 10 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_STA_RSV_YEAR, DATABEAN_GET_VALUE)` — Get start year [-> tokiStaRsvYear] |
| 11 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_STA_RSV_MON, DATABEAN_GET_VALUE)` — Get start month [-> tokiStaRsvMon] |
| 12 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_STA_RSV_DAY, DATABEAN_GET_VALUE)` — Get start day [-> tokiStaRsvDay] |
| 13 | SET | `tokiStaRsvYmd = tokiStaRsvYear + tokiStaRsvMon + tokiStaRsvDay` — Compose YYYYMMDD |
| 14 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_END_RSV_YEAR, DATABEAN_GET_VALUE)` — Get end year [-> tokiEndRsvYear] |
| 15 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_END_RSV_MON, DATABEAN_GET_VALUE)` — Get end month [-> tokiEndRsvMon] |
| 16 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_END_RSV_DAY, DATABEAN_GET_VALUE)` — Get end day [-> tokiEndRsvDay] |
| 17 | SET | `tokiEndRsvYmd = tokiEndRsvYear + tokiEndRsvMon + tokiEndRsvDay` — Compose YYYYMMDD |
| 18 | EXEC | `bean.sendMessageString(KKW05601SFConst.ITENM_TELNO, DATABEAN_GET_VALUE)` — Get transfer-origin phone [-> itenMotoTelNo] |
| 19 | EXEC | `bean.sendMessageString(KKW05601SFConst.RRKS_TELNO, DATABEAN_GET_VALUE)` — Get contact phone [-> rrksTelNo] |
| 20 | CALL | `getSelectedCd(bean, RSV_TELNO, RSV_TELNO_DSP)` — Get reserved phone [-> rsvTelNo] |
| 21 | EXEC | `bean.sendMessageString(KKW05601SFConst.TOKI_NAIYO, DATABEAN_GET_VALUE, 0)` — Get transfer content [-> tokiNaiyo] |
| 22 | EXEC | `bean.sendMessageString(KKW05601SFConst.IDO_DIV, DATABEAN_GET_VALUE)` — Get migration classification [-> idoKbn] |

**Block 3** — Processing Step (Log All Values) (L874–L888)
> Log all extracted values for debugging.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `DEBUG_LOG.debug("actionCfm: target phone: " + tokiTgTelNo)` |
| 2 | EXEC | `DEBUG_LOG.debug("actionCfm: banpo: " + banpo)` |
| 3 | EXEC | `DEBUG_LOG.debug("actionCfm: contract status: " + keiyakuJotai)` |
| 4 | EXEC | `DEBUG_LOG.debug("actionCfm: service type DSP: " + tokiSbtDsp)` |
| 5 | EXEC | `DEBUG_LOG.debug("actionCfm: service request DSP: " + tokiKiboDsp)` |
| 6 | EXEC | `DEBUG_LOG.debug("actionCfm: transfer registration category: " + tokiAddCd)` |
| 7 | EXEC | `DEBUG_LOG.debug("actionCfm: service type code: " + tokiSbtCd)` |
| 8 | EXEC | `DEBUG_LOG.debug("actionCfm: service request flag: " + tokiKibo)` |
| 9 | EXEC | `DEBUG_LOG.debug("actionCfm: tokishi start reservation date: " + tokiStaRsvYmd)` |
| 10 | EXEC | `DEBUG_LOG.debug("actionCfm: tokishi end reservation date: " + tokiEndRsvYmd)` |
| 11 | EXEC | `DEBUG_LOG.debug("actionCfm: transfer-origin phone: " + itenMotoTelNo)` |
| 12 | EXEC | `DEBUG_LOG.debug("actionCfm: contact phone: " + rrksTelNo)` |
| 13 | EXEC | `DEBUG_LOG.debug("actionCfm: reserved phone: " + rsvTelNo)` |
| 14 | EXEC | `DEBUG_LOG.debug("actionCfm: transfer content: " + tokiNaiyo)` |
| 15 | EXEC | `DEBUG_LOG.debug("actionCfm: migration classification: " + idoKbn)` |

**Block 4** — Processing Step (Set Cust Kei Hktgi Bean) (L890–L903)
> Persist all extracted screen values into a custom contract handover bean for downstream use by called methods.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setCustKeiHktgiBean(bean, tokiTgTelNo, tokiAddCd, tokiSbtCd, tokiKibo, tokiStaRsvYmd, tokiEndRsvYmd, itenMotoTelNo, rrksTelNo, rsvTelNo, tokiNaiyo, banpo, keiyakuJotai)` |

**Block 5** — IF `(idoKbn == "00019")` [JKKCommonConst.IDO_DIV_VALUE_00019 = "00019" (Address Change Registration)] (L905–L958)
> Main dispatch: branch on migration classification to determine which handler processes the confirmation.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `if (JKKCommonConst.IDO_DIV_VALUE_00019.equals(idoKbn))` |
| 2 | ELSE-IF | `else` — All other migration types |

**Block 5.1** — IF Branch: idoKbn == "00019" (L907–L909)
> Address change registration branch. Handles the specific case when the migration classification is address change registration (00019).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `actionCfmIdoKbn00019(bean, tokiAddCd, tokiSbtCd, tokiKibo, tokiStaRsvYmd, tokiEndRsvYmd)` |

**Block 5.2** — ELSE Branch: All other migration types (L911–L958)
> General transfer tokishi registration branch. Handles all migration types except address change (00019), including general registration, transfer-origin cancellation, suspension-based transfer, etc. This branch was refactored in [ANK-2648-00-00] (2015/12/17) to support conditional timing message display.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `actionCfmOtherIdoKbn(bean, tokiTgTelNo, tokiAddCd, tokiSbtCd, tokiKibo, tokiStaRsvYmd, tokiEndRsvYmd, itenMotoTelNo, rrksTelNo, rsvTelNo, tokiNaiyo)` [-> boolean result] |
| 2 | CHECK | `if (actionCfmOtherIdoKbn(...) == true)` |

**Block 5.2.1** — IF: actionCfmOtherIdoKbn returned true (L925–L929)
> When the other migration handler returns `true`, display a timing notification message to inform the user about the transfer tokishi registration start timing.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `dispMessageTokiTiming(bean)` — Display transfer tokishi start timing notification message |

**Block 6** — Processing Step (Completion Logging) (L947–L949)
> Log completion of registration confirmation processing.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `DEBUG_LOG.debug("actionCfm: Registration confirmation button press processing end")` |

**Block 7** — RETURN (L951)
> Return `true` to indicate successful processing regardless of branch outcome (the actual business logic validation is handled by the delegated methods).

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return true;` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `tokishi` (転送) | Japanese term | Transfer — refers to the start/reservation of transferred/forwarded services (転送トウキ / transfer service start registration) |
| `tokishi touki` (転送登録) | Japanese term | Transfer service start registration — the process of registering when a transferred service should begin |
| `ido kbn` (異動区分) | Field | Migration classification — categorizes the type of service migration/change (e.g., address change = 00019, general transfer = other values) |
| `ido_div` (異動区分コード) | Field | Migration classification code — the code value stored in the bean that determines which processing branch to use |
| `toki_add_cd` (転送登録区分) | Field | Transfer registration category — classifies the type of transfer registration (1: transfer destination registration, 2: transfer-origin cancellation, 3: suspension-based transfer) |
| `toki_sbt_cd` (転送種別コード) | Field | Transfer service type code — classifies the type of transfer service |
| `toki_kibo` (転送希望有无) | Field | Transfer request flag — indicates whether the user requested transfer service |
| `toki_sta_rsv_ymd` (転送手続開始予定日) | Field | Transfer procedure start reservation date — composed of year+month+day strings into YYYYMMDD format |
| `toki_end_rsv_ymd` (転送終了予定日) | Field | Transfer end reservation date — composed of year+month+day strings into YYYYMMDD format |
| `itenmoto_telno` (移転元電話番号) | Field | Transfer-origin phone number — the phone number at the origin of the transfer |
| `rrks_telno` (連絡先電話番号) | Field | Contact phone number — the phone number for contact purposes |
| `rsv_telno` (予約中電話番号) | Field | Reserved phone number — phone number currently under reservation |
| `toki_naiyo` (転送内容) | Field | Transfer content — description/details of the transfer request |
| `toki_tg_telno` (転送対象電話番号) | Field | Transfer target phone number — the phone number that is the target of the transfer |
| `banpo` (番ポ) | Field | Bank/Line porting indicator — indicates whether this is a number porting transaction (番線ポータビリティ) |
| `keiyaku_jotai` (契約状態) | Field | Contract status — current state of the service contract |
| `cust_kei_hktgi_bean` (顧客契約手荷.Bean) | Field | Custom contract handover bean — internal bean storing contract transfer/handover data for downstream processing |
| `actionCfmIdoKbn00019` | Method | Address change registration handler — processes the specific case when migration type is 00019 (address change + registration) |
| `actionCfmOtherIdoKbn` | Method | Other migration type handler — processes all transfer types except address change registration |
| `dispMessageTokiTiming` | Method | Display timing notification — shows a message to the user about when the transfer service will start |
| `setCustKeiHktgiBean` | Method | Set custom contract handover bean — persists screen values into a custom bean |
| `getSelectedCd` | Method | Get selected code — resolves display codes to actual codes for select dropdown fields |
| `invokeServiceKKSV0171` | Method | Invoke KKSV0171 service — calls the underlying service component KKSV0171 for transfer tokishi registration |
| `actionCfmOtherIdoKbn` -> `invokeServiceKKSV0171` | SC | KKSV0171SC — Transfer Tokishi Registration service component |
| `actionCfmOtherIdoKbn` -> `initTelnoStatCheckActionCfm` | Method | Phone number status check — validates whether phone number status permits transfer |
| `actionCfmOtherIdoKbn` -> `findTensoSkSvkuwno` | Method | Find transfer destination service contract content number — looks up the contract number for the transfer destination service |
| `actionCfmOtherIdoKbn` -> `findTensoSkSvkuwStat` | Method | Find transfer destination service contract status — looks up the status of the transfer destination service contract |
| `ITENSAKI_ADD_TOKI` | Constant | "1" — Transfer destination registration by transfer category code |
| `ITENMOTO_DSL_TOKI` | Constant | Transfer-origin cancellation category code |
| `ADCHG_STAT_REG` | Constant | Address change status "registered" code |
| `IDO_DIV_VALUE_00019` | Constant | "00019" — Migration classification code for address change registration |
| `MSKM_SBT_CD_VALUE_00027` | Constant | "00027" — Service request type code 00027 |
| `MSKM_STAT_SKBT_CD_SHONIN` | Constant | Service request approval status code (approval) |
| `PRG_STAT_CD_B261` | Constant | Program status code B261 (progress registration) |
| `SVC_KEI_STAT_100` | Constant | "100" — Service contract status: Open/Active |
| `SVC_KEI_STAT_910` | Constant | "910" — Service contract status: Terminated |
| `SVC_KEI_STAT_210` | Constant | "210" — Service contract status: Suspended |
| `KOJIAK_STAT_120` | Constant | "120" — Work project status: Registered |
| `KOJIAK_STAT_200` | Constant | "200" — Work project status: Complete |
| `FUNC_CODE_2` | Constant | Function code 2 — Transfer Tokishi Registration (check only) |
| `EKK0011D020DETAILLIST` | Constant | Data bean array key for EKK0011D020 detail list (service request approval registration) |
| `EKK0191A010DETAILLIST` | Constant | Data bean array key for EKK0191A010 detail list (service contract details for eo optical phone) |
| `EKK2101B002DETAILLIST` | Constant | Data bean array key for address change before/after identifier list |
| `EKK2091A010DETAILLIST` | Constant | Data bean array key for address change agreement list |
| `EKU0011A010DETAILLIST` | Constant | Data bean array key for work project agreement list |
| `X31SDataBeanAccess` | Type | Service form data bean — the data access object for screen data in the X31 framework |
| `X31SDataBeanAccessArray` | Type | Array wrapper for service form data beans |
| `JCCWebBusinessLogic` | Type | Base class for web business logic — provides common methods like `getServiceFormBean()` and `invokeServiceKKSV0171()` |
| `X31CWebConst` | Type | X31 web constants — framework constants including `DATABEAN_GET_VALUE`, `DATABEAN_SET_VALUE` |
| KKSV0170 | Screen | Transfer tokishi settings screen — the display screen for transfer tokishi registration |
| KKSV0171 | Screen/SC | Transfer tokishi registration screen — the underlying service for processing transfer tokishi registration |
