# Business Logic — JKKHakkoSODCC.pauseUkOdrCtrl() [465 LOC]

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

## 1. Role

### JKKHakkoSODCC.pauseUkOdrCtrl()

The `pauseUkOdrCtrl` method (休止受付オーダ制御処理 — Pause Reception Order Control Processing) is the central order-control engine for handling **service pause (休止) and pause release (休止解除)** operations in a Japanese telecommunications order-fulfillment system. It orchestrates the generation of Service Order Data (SOD) records that reflect the state transition of a customer's subscription when a service is suspended (paused) or restored (released from pause).

The method handles two primary service categories: **IT/Net services** (eo light internet — eo光ネットワーク) and **Telecom services** (eo light telephone — eo光電話). For IT/Net services, it queries optional services (fixed IP, multi-session, dial-up) and generates corresponding SOD entries for pause/release events. For Telecom services, it retrieves contract details including phone number registration status (番有 — BMP), performs temporary transfer (移転トーキ) decision logic, and issues SIP-related SOD records (SIP release, cancellation, registration).

The method follows a **dispatch/routing design pattern**: it first determines the pause type (pause start vs. pause end), then dispatches to service-kind-specific branches (Net vs. Tel). Within each branch, it further evaluates optional service conditions and generates the appropriate SOD records. The method is a shared utility — called by multiple entry points (`hakkoSOD`, `htelNoKaihkOdrCtrl`, `kaihkOdrCtrl`) that handle different order-creation contexts, making it a critical shared component in the order fulfillment pipeline.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["pauseUkOdrCtrl"])
    START --> INIT["Initialize: get SOD info maps, shkkaMap, extract fields"]
    INIT --> GET_DATE["getOpeDate - get current operate date"]
    GET_DATE --> CHECK_STAT["svc_kei_stat == SVC_KEI_STAT_210?"]
    CHECK_STAT -->|YES| COND_DATE["operateDate >= svc_pause_ymd?"]
    COND_DATE -->|YES| COND_STP["pause_stp_cd != PAUSE_STP_CD_02?"]
    COND_STP -->|YES| COND_RLS["svc_pause_rls_ymd == BLANK or NULL?"]
    COND_RLS -->|YES| SET_PAUSE_STA["pauseSbt = PAUSE_SBT_PAUSE_STA"]
    COND_RLS -->|NO| ELSE_NOOP["pauseSbt = none -> return param"]
    SET_PAUSE_STA --> CHECK_SVC_KIND["jdgSvcKind - determine service kind"]
    COND_DATE -->|NO| ELSE_NOOP
    COND_STP -->|NO| ELSE_NOOP
    CHECK_STAT -->|NO| COND_STAT2["svc_kei_stat != SVC_KEI_STAT_210?"]
    COND_STAT2 -->|YES| COND_DATE2["operateDate == svc_pause_rls_ymd?"]
    COND_DATE2 -->|YES| COND_STP2["pause_stp_cd != PAUSE_STP_CD_02?"]
    COND_STP2 -->|YES| SET_PAUSE_END["pauseSbt = PAUSE_SBT_PAUSE_END"]
    COND_DATE2 -->|NO| ELSE_NOOP2["pauseSbt = none -> return param"]
    COND_STP2 -->|NO| ELSE_NOOP2
    COND_STAT2 -->|NO| ELSE_NOOP2
    SET_PAUSE_END --> CHECK_SVC_KIND
    ELSE_NOOP --> END_RETURN["Return param (no SOD needed)"]
    ELSE_NOOP2 --> END_RETURN
    CHECK_SVC_KIND --> CHK_NET["svc_kind == SVC_KIND_NET?"]
    CHK_NET -->|YES| CHK_MAN["isMansionPrvate?"]
    CHK_MAN -->|YES| END_RETURN2["Return param (no SOD for private mansion)"]
    CHK_MAN -->|NO| CHK_UCWK["isUcwkStatCheck"]
    CHK_UCWK -->|false| END_RETURN2
    CHK_UCWK -->|true| CALL_NET["callEKK0351B010SC - optional service contract list"]
    CALL_NET --> LOOP_OPSVC["Loop through op_svc_kei_no list"]
    LOOP_OPSVC --> CASE_FIXIPAD["op_svc_cd == OP_SVC_CD_FIXIPAD?"]
    CASE_FIXIPAD -->|YES| CHECK_FIXIPAD_STAT["op_svc_kei_stat < SVC_KEI_STAT_910?"]
    CHECK_FIXIPAD_STAT -->|YES| SET_FIXIPAD["fixipad_flg = true"]
    CASE_FIXIPAD -->|NO| CASE_MLTISE["op_svc_cd == OP_SVC_CD_MLTISE?"]
    CASE_MLTISE -->|YES| CHECK_MLTISE_STAT["op_svc_kei_stat == SVC_KEI_STAT_210?"]
    CHECK_MLTISE_STAT -->|YES| SET_MLTISE["mltise_flg = true; set op_svc_kei_no_mltise"]
    CASE_MLTISE -->|NO| CASE_DIAL["op_svc_cd == OP_SVC_CD_DUP?"]
    CASE_DIAL -->|YES| CHECK_DIAL_STAT["op_svc_kei_stat == SVC_KEI_STAT_210?"]
    CHECK_DIAL_STAT -->|YES| SET_DIAL["dial_flg = true; set op_svc_kei_no_dial"]
    SET_FIXIPAD --> END_LOOP
    CHECK_MLTISE_STAT -->|NO| END_LOOP
    CASE_DIAL -->|NO| END_LOOP
    CHECK_DIAL_STAT -->|NO| END_LOOP
    SET_MLTISE --> END_LOOP
    SET_DIAL --> END_LOOP
    END_LOOP["End loop"] --> CHECK_FLS["fmtcel_flg || fixipad+mltise || dial_flg?"]
    CHECK_FLS -->|YES| CALL_SAME["getSame_trn_no - get same processing number"]
    CHECK_FLS -->|NO| SET_SAME_EMPTY["same_trn_no = empty"]
    CALL_SAME --> SET_SAME["same_trn_no = sameTrnNo[0]"]
    SET_SAME --> GET_OLD_VRSB["getOldVrsbIdgSvcDtlCd"]
    SET_SAME_EMPTY --> GET_OLD_VRSB
    GET_OLD_VRSB --> PAUSE_STA_NET["pauseSbt == PAUSE_SBT_PAUSE_STA?"]
    PAUSE_STA_NET -->|YES| ADD_106["addSOD(ODR_NAIYO_CD_106) - FTTH Auth / Temp Pause"]
    PAUSE_STA_NET -->|NO| PAUSE_END_NET["pauseSbt == PAUSE_SBT_PAUSE_END?"]
    PAUSE_END_NET -->|YES| ADD_107["addSOD(ODR_NAIYO_CD_107) - FTTH Auth / Temp Pause Release"]
    PAUSE_END_NET -->|NO| CHECK_FLM["fixipad_flg && mltise_flg?"]
    CHECK_FLM -->|YES| CHECK_PA_END1["pauseSbt == PAUSE_SBT_PAUSE_END?"]
    CHECK_PA_END1 -->|YES| ADD_171["addSOD(ODR_NAIYO_CD_171) - MultiSession(Static)/Pause Release"]
    CHECK_PA_END1 -->|NO| ADD_170["addSOD(ODR_NAIYO_CD_170) - MultiSession(Static)/Temp Pause"]
    CHECK_FLM -->|NO| CHECK_DIAL1["dial_flg?"]
    CHECK_DIAL1 -->|YES| CHECK_PA_END2["pauseSbt == PAUSE_SBT_PAUSE_END?"]
    CHECK_PA_END2 -->|YES| ADD_141["addSOD(ODR_NAIYO_CD_141) - Dial Up Connection/Pause Release"]
    CHECK_PA_END2 -->|NO| ADD_140["addSOD(ODR_NAIYO_CD_140) - Dial Up Connection/Temp Pause"]
    CHECK_DIAL1 -->|NO| CHK_TEL["svc_kind == SVC_KIND_TEL?"]
    CHK_TEL -->|YES| CHK_UCWK_TEL["isUcwkStatCheck"]
    CHK_UCWK_TEL -->|false| END_RETURN3["Return param"]
    CHK_UCWK_TEL -->|true| CALL_TEL["callEKK0191A010SC - service contract details <eo telecom>"]
    CALL_TEL --> EXTRACT_BMP["Extract BMP_UM from result"]
    EXTRACT_BMP --> SAME_TRN_TEL["getSame_trn_no (for non-recovery ido_div)"]
    SAME_TRN_TEL --> CALC_TOKI["Calculate tokiIdoDiv, tokiIdoDtlCd"]
    CALC_TOKI --> JUDGE_TOKI["judgeTokiSOD - temporary transfer SOD decision"]
    JUDGE_TOKI --> GET_JUDGE["Get judge result from param"]
    GET_JUDGE --> CHK_JUDGE_CD["judgeCd == PAUSE_STA or PAUSE_END?"]
    CHK_JUDGE_CD -->|YES| CHK_NET_PAUSE["pauseSbt == PAUSE_SBT_PAUSE_STA?"]
    CHK_NET_PAUSE -->|YES| ADD_229["addSOD(ODR_NAIYO_CD_229) - SIP Release"]
    ADD_229 --> ADD_230["addSOD(ODR_NAIYO_CD_230) - SIP Cancellation"]
    ADD_230 --> ADD_TOKI["addTokiSOD - temporary transfer SOD registration"]
    CHK_NET_PAUSE -->|NO| CHK_NET_END["pauseSbt == PAUSE_SBT_PAUSE_END?"]
    CHK_NET_END -->|YES| ADD_218["addSOD(ODR_NAIYO_CD_218) - SIP New Registration"]
    ADD_218 --> ADD_219["addSOD(ODR_NAIYO_CD_219) - SIP Option Bulk Registration"]
    ADD_219 --> CHK_TELNO["isTelnoSODJudge?"]
    CHK_TELNO -->|true| ADD_225["addSOD(ODR_NAIYO_CD_225) - SIP Phone Number Registration"]
    CHK_JUDGE_CD -->|NO| CHK_ELSE_PAUSE["pauseSbt == PAUSE_SBT_PAUSE_STA?"]
    CHK_ELSE_PAUSE -->|YES| ADD_223["addSOD(ODR_NAIYO_CD_223) - SIP Temp Pause"]
    CHK_ELSE_PAUSE -->|NO| ADD_224["addSOD(ODR_NAIYO_CD_224) - SIP Pause Release"]
    ADD_TOKI --> END_RETURN4["Return param"]
    ADD_140 --> END_RETURN4
    ADD_141 --> END_RETURN4
    ADD_170 --> END_RETURN4
    ADD_171 --> END_RETURN4
    ADD_106 --> END_RETURN4
    ADD_107 --> END_RETURN4
    ADD_225 --> END_RETURN4
    ADD_223 --> END_RETURN4
    ADD_224 --> END_RETURN4
    CHK_TEL -->|NO| END_RETURN4
    FINAL(["Return param"])
    END_RETURN4 --> FINAL
    END_RETURN2 --> FINAL
    END_RETURN3 --> FINAL
```

**Phase A — Pause Type Determination (Section A):** The method determines the pause type by checking:
- **Condition A-1 (Pause Start):** `svc_kei_stat == SVC_KEI_STAT_210` ("210" — contract in pause/interruption), `operateDate >= svc_pause_ymd`, `pause_stp_cd != PAUSE_STP_CD_02` ("02" — interrupt-in-progress), and `svc_pause_rls_ymd` is blank or NULL. Result: `pauseSbt = PAUSE_SBT_PAUSE_STA` ("0" — pause start).
- **Condition A-2 (Pause End):** `svc_kei_stat != SVC_KEI_STAT_210`, `operateDate == svc_pause_rls_ymd`, and `pause_stp_cd != PAUSE_STP_CD_02`. Result: `pauseSbt = PAUSE_SBT_PAUSE_END` ("1" — pause end).
- **Condition A-3 (No Action):** None of the above — return param immediately without generating SOD.

**Phase B — Service Kind Judgment (Section B):** Determines service kind using `jdgSvcKind()`. Currently returns service type code (SVC_KIND_NET = "1" for IT/Net, SVC_KIND_TEL = "2" for Telecom).

**Phase C — IT/Net Service Branch (eo light network):** For FTTH/internet services:
1. Skip if private mansion type (`isMansionPrvate()`).
2. Verify contract work status (`isUcwkStatCheck`).
3. Query optional services via `callEKK0351B010SC`.
4. Iterate through optional services to set flags: `fixipad_flg` (fixed IP), `mltise_flg` (multi-session), `dial_flg` (dial-up connection).
5. If certain optional services exist, obtain same processing number via `getSame_trn_no`.
6. Generate SOD records based on pause type and optional service combinations.

**Phase D — Telecom Service Branch (eo light telephone):** For telecom services:
1. Verify contract work status (`isUcwkStatCheck`).
2. Query service contract details via `callEKK0191A010SC`, extract `BMP_UM` (phone number presence).
3. Determine migration category for temporary transfer.
4. Call `judgeTokiSOD` for temporary transfer SOD decision.
5. Generate SIP-related SOD records based on judgment result and pause type.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Session handle containing session manager and context information used for database and service component calls. Carries transaction and security context. |
| 2 | `param` | `IRequestParameterReadWrite` | Parameter object carrying model group data and control maps. Contains input order data (migration category, service contract work number) and is modified throughout processing as SOD records are appended. Returns the updated parameter object with all generated SOD entries. |
| 3 | `sodMap` | `HashMap<String, Object>` | Map containing SOD information sub-maps: `SOD_KIHON_INFO` (basic SOD info), `SVC_KEI_UCWK_INFO` (service contract work info), and `SVC_KEI_INFO` (service contract info). These sub-maps carry the core business data about the order being processed, including migration category, service contract work number, and generation timestamps. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `this.svc_kei_stat` | `String` | Service contract status code (e.g., "210" = pause/interruption, "010" = received). Determines pause type logic. |
| `this.svc_pause_ymd` | `String` | Service pause start date (YYYYMMDD format). Compared against operate date to determine pause timing. |
| `this.svc_pause_rls_ymd` | `String` | Service pause release date (YYYYMMDD format). Used to detect pause-end events. |
| `this.pause_stp_cd` | `String` | Pause stop code (e.g., "02" = interrupt-in-progress). Exclusion filter to prevent SOD generation for interrupted orders. |
| `this.same_trn_no` | `String` | Same processing number. Used for correlating related operations during recovery/migration. |
| `this.svc_kei_ucwk_no` | `String[]` | Service contract work number array. Set from input data. |
| `this.svc_kei_ucwk_gadtm` | `String[]` | Service contract work generation timestamp array. Set from input data. |
| `this.op_svc_kei_no_fmtcel` | `String` | Optional service contract number for FM Cell (commented out, no longer used). |
| `this.op_gadtm_fmtcel` | `String` | Generation timestamp for FM Cell optional service. |
| `this.op_svc_kei_no_mltise` | `String` | Optional service contract number for multi-session. |
| `this.op_gadtm_mltise` | `String` | Generation timestamp for multi-session optional service. |
| `this.op_svc_kei_no_dial` | `String` | Optional service contract number for dial-up connection. |
| `this.op_gadtm_dial` | `String` | Generation timestamp for dial-up connection. |
| `this.old_vrsb_jdg_svc_dtl_cd` | `String` | Old version identification judgment service detail code. |
| `ido_div` (local) | `String` | Migration category extracted from sodMap. Determines if this is a recovery, optical phone recovery, or other migration type. |
| `pplan_cd` (instance, via getOldVrsbIdgSvcDtlCd) | `String` | Plan code used for old version identification judgment. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JKKHakkoSODCC.callEKK0351B010SC` | EKK0351B010SC | KK_T_ODR_OP_SVC_KEI (optional service contract table) | Query optional service contract list by service contract number (eo light network branch). Returns list of optional services including fixed IP, multi-session, dial-up connection. |
| R | `JKKHakkoSODCC.callEKK0191A010SC` | EKK0191A010SC | KK_T_ODR_SVC_KEI_UCWK (service contract work details table) | Query service contract work details for eo light telecom. Includes phone number presence (BMP_UM) and other work-specific attributes. |
| R | `JKKHakkoSODCC.getKK0351GeneAddDtm` | EKK0351B010SC | KK_T_ODR_OP_SVC_KEI | Query generation timestamp for an optional service contract number. Used when multi-session or dial-up connection is found. |
| R | `JKKHakkoSODCC.getSame_trn_no` | (internal) | KK_T_ODR_SAME_TRN_NO | Query the same processing number for correlating related operations during recovery migrations. |
| R | `JKKHakkoSODCC.getOldVrsbIdgSvcDtlCd` | (internal) | KK_T_SVC_KEI (service contract table) | Query old version identification judgment service detail code for compatibility determination. |
| C | `JKKHakkoSODCC.addSOD` | JKKHakkoSODCC | KK_T_ODR_HAKKO_JOKEN (order creation condition table) | Create a Service Order Data (SOD) record. Multiple order content codes are used depending on service type and pause operation: 106 (FTTH Auth/Temp Pause), 107 (FTTH Auth/Pause Release), 140/141 (Dial-Up Connection), 170/171 (Multi-Session Static), 218/219 (SIP Registration), 223/224 (SIP Pause), 225 (SIP Phone Number), 229/230 (SIP Release/Cancellation). |
| C | `JKKHakkoSODCC.addTokiSOD` | JKKHakkoSODCC | KK_T_ODR_TOKI (temporary transfer order table) | Create a temporary transfer SOD record for telecom services during pause/release. Uses migration category and migration detail code from judgment logic. |
| - | `JKKHakkoSODCC.isMansionPrvate` | JKKHakkoSODCC | - | Check if the service is a private mansion type (exclusion condition). |
| - | `JKKHakkoSODCC.isUcwkStatCheck` | JKKHakkoSODCC | - | Verify contract work status — check if the contract is under course change cancellation (exclusion condition). |
| - | `JKKHakkoSODCC.jdgSvcKind` | JKKHakkoSODCC | - | Determine service kind (Net=1, Tel=2, Mob=4, ADSL=5, etc.) from PcrsCd (pricing code). |
| - | `JKKHakkoSODCC.judgeTokiSOD` | JKKHakkoSODCC | - | Perform temporary transfer SOD judgment for telecom services. Returns judgment code indicating whether pause-start or pause-end temporary transfer SOD is needed. |
| - | `JKKHakkoSODCC.shkkaMap` | JKKHakkoSODCC | - | Sanitize/clean map data (shkka). Applied to all SOD sub-maps before use. |
| - | `JKKHakkoSODCC.isTelnoSODJudge` | JKKHakkoSODCC | - | Phone number SOD judgment — determines if phone number registration SOD (ODR_NAIYO_CD_225) should be issued based on phone number status. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | JKKHakkoSODCC.hakkoSOD | `hakkoSOD` -> `pauseUkOdrCtrl` | `addSOD [C] KK_T_ODR_HAKKO_JOKEN`, `addTokiSOD [C] KK_T_ODR_TOKI` |
| 2 | JKKHakkoSODCC.htelNoKaihkOdrCtrl | `htelNoKaihkOdrCtrl` -> `pauseUkOdrCtrl` | `addSOD [C] KK_T_ODR_HAKKO_JOKEN`, `addTokiSOD [C] KK_T_ODR_TOKI` |
| 3 | JKKHakkoSODCC.kaihkOdrCtrl | `kaihkOdrCtrl` -> `pauseUkOdrCtrl` | `addSOD [C] KK_T_ODR_HAKKO_JOKEN`, `addTokiSOD [C] KK_T_ODR_TOKI` |

**Terminal operations from this method (what it ultimately creates/reads):**

| Terminal Method | CRUD | Target |
|----------------|------|--------|
| `addSOD` (ODR_NAIYO_CD_106/107/140/141/170/171/218/219/223/224/225/229/230) | C | KK_T_ODR_HAKKO_JOKEN (Order Creation Condition Table) |
| `addTokiSOD` | C | KK_T_ODR_TOKI (Temporary Transfer Order Table) |
| `callEKK0351B010SC` | R | KK_T_ODR_OP_SVC_KEI (Optional Service Contract Table) |
| `callEKK0191A010SC` | R | KK_T_ODR_SVC_KEI_UCWK (Service Contract Work Details Table) |
| `getKK0351GeneAddDtm` | R | KK_T_ODR_OP_SVC_KEI (Optional Service Contract Table) |
| `getSame_trn_no` | R | KK_T_ODR_SAME_TRN_NO (Same Processing Number Table) |
| `getOldVrsbIdgSvcDtlCd` | R | KK_T_SVC_KEI (Service Contract Table) |

## 6. Per-Branch Detail Blocks

**Block 1** — [INITIALIZATION] L18197

> Initialize local variables, extract SOD information maps from sodMap, and apply sanitization.

| # | Type | Code |
|---|------|------|
| 1 | SET | `statusCode = 0` |
| 2 | SET | `pauseSbt = ""` |
| 3 | SET | `sod_kihon_info_Map = (HashMap)sodMap.get(SOD_KIHON_INFO)` |
| 4 | SET | `svc_kei_ucwk_info_Map = (HashMap)sodMap.get(SVC_KEI_UCWK_INFO)` |
| 5 | CALL | `shkkaMap(sod_kihon_info_Map)` — sanitize basic SOD info map |
| 6 | CALL | `shkkaMap(svc_kei_ucwk_info_Map)` — sanitize service contract work info map |

**Block 2** — [PARAMETER EXTRACTION] L18210

> Extract pause reception required parameters from the sanitized maps.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ido_div = (String)sod_kihon_info_Map.get(INFO_IDO_DIV)` — [Migration Category] |
| 2 | SET | `svc_kei_ucwk_no = (String)svc_kei_ucwk_info_Map.get(INFO_SVC_KEI_UCWK_NO)` — [Service Contract Work Number] |
| 3 | SET | `chaf_svc_kei_ucwk_gene_add_dtm = (String)svc_kei_ucwk_info_Map.get(INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM)` — [Post-Change Service Contract Work Generation Timestamp] |
| 4 | CALL | `JCCBPCommon.getOpeDate(null)` — get operate date |
| 5 | SET | `operateDate` — [Operating Day] |

**Block 3** — [PAUSE TYPE DETERMINATION — CONDITION A-1: PAUSE START] `(SVC_KEI_STAT_210.equals(svc_kei_stat) && ...)` L18217

> Determine if this is a pause start event. All four conditions must be met: (1) contract status is "210" (pause/interruption), (2) operate date >= pause start date, (3) pause stop code is not "02" (interrupt-in-progress), (4) pause release date is blank or NULL.

| # | Type | Code |
|---|------|------|
| 1 | COND | `SVC_KEI_STAT_210.equals(this.svc_kei_stat)` [210 = pause/interruption] |
| 2 | COND | `operateDate.compareTo(this.svc_pause_ymd) >= 0` [operate date is on or after pause start date] |
| 3 | COND | `!PAUSE_STP_CD_02.equals(this.pause_stp_cd)` [NOT "02" = not interrupt-in-progress] |
| 4 | COND | `STRING_BLANK.equals(this.svc_pause_rls_ymd) \|\| this.svc_pause_rls_ymd == null` [pause release date is blank or NULL] |
| 5 | SET | `pauseSbt = PAUSE_SBT_PAUSE_STA` [-> "0" = pause start] |

**Block 4** — [PAUSE TYPE DETERMINATION — CONDITION A-2: PAUSE END] `else if(!SVC_KEI_STAT_210.equals(svc_kei_stat) && ...)` L18230

> Determine if this is a pause end event. Contract status is NOT pause/interruption, operate date equals pause release date, and pause stop code is not interrupt-in-progress.

| # | Type | Code |
|---|------|------|
| 1 | COND | `!SVC_KEI_STAT_210.equals(this.svc_kei_stat)` [NOT 210 = not in pause/interruption] |
| 2 | COND | `operateDate.equals(this.svc_pause_rls_ymd)` [operate date equals pause release date] |
| 3 | COND | `!PAUSE_STP_CD_02.equals(this.pause_stp_cd)` [NOT "02" = not interrupt-in-progress] |
| 4 | SET | `pauseSbt = PAUSE_SBT_PAUSE_END` [-> "1" = pause end] |

**Block 5** — [PAUSE TYPE DETERMINATION — CONDITION A-3: NO ACTION] `else` L18239

> None of the pause conditions matched. No SOD generation needed — return immediately.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` |

**Block 6** — [SERVICE KIND JUDGMENT] L18247

> Determine the service kind. Since IT2-2016-0000004 (2016/02/16), uses `jdgSvcKind()` instead of the deprecated `jdgSvcKind_PcrsCd()`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `jdgSvcKind()` — determine service kind from pricing code |
| 2 | SET | `svc_kind` — "1"=Net, "2"=Tel, "4"=Mob, "5"=ADSL, "99"=Else |

**Block 7** — [MIGRATION CATEGORY SAME_TRN_NO CHECK] L18251

> For recovery (ido_div = "00004") and optical phone/number recovery (ido_div = "00044"), clear the same processing number. Otherwise, it will be populated later.

| # | Type | Code |
|---|------|------|
| 1 | COND | `!IDO_DIV_KAIHK.equals(ido_div)` [NOT "00004" = not recovery] |
| 2 | COND | `!IDO_DIV_HTELNOKAIHK.equals(ido_div)` [NOT "00044" = not optical phone recovery] |
| 3 | SET | `this.same_trn_no = ""` [clear same processing number] |
| 4 | SET | `this.svc_kei_ucwk_no = new String[1]` |
| 5 | SET | `this.svc_kei_ucwk_no[0] = svc_kei_ucwk_no` |
| 6 | SET | `this.svc_kei_ucwk_gadtm = new String[1]` |
| 7 | SET | `this.svc_kei_ucwk_gadtm[0] = chaf_svc_kei_ucwk_gene_add_dtm` |

**Block 8** — [IT/NET SERVICE BRANCH] `(SVC_KIND_NET.equals(svc_kind))` L18260

> Branch for eo light network (IT/Net) services.

**Block 8.1** — [PRIVATE MANSION CHECK] `isMansionPrvate()` L18265

> Skip SOD generation for private mansion types. FTTH authentication SOD cannot be issued.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isMansionPrvate()` — check if private mansion type |
| 2 | COND | If true: `return param` |

**Block 8.2** — [CONTRACT WORK STATUS CHECK] `!isUcwkStatCheck(...)` L18273

> Skip if contract work is under course change cancellation.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isUcwkStatCheck(handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 2 | COND | If false: `return param` |

**Block 8.3** — [OPTIONAL SERVICE INITIALIZATION] L18281

> Initialize flag variables and extract service contract info map for optional service lookup.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dial_flg = false`, `fmtcel_flg = false`, `fixipad_flg = false`, `mltise_flg = false` |
| 2 | SET | `svc_kei_info_Map = (HashMap)sodMap.get(SVC_KEI_INFO)` |
| 3 | CALL | `shkkaMap(svc_kei_info_Map)` |
| 4 | SET | `svc_kei_no = (String)svc_kei_info_Map.get(SVC_KEI_NO)` |
| 5 | SET | `inHashMltise = new HashMap()` — prepare input for optional service query |
| 6 | SET | `resultHashMltise = new HashMap()` — prepare result container |
| 7 | SET | `inHashMltise.put(SVC_KEI_NO, svc_kei_no)` — put service contract number |

**Block 8.4** — [OPTIONAL SERVICE QUERY] L18293

> Query optional service contract list using EKK0351B010SC. Replaced EKK0351B002SC in 2013-04-12 (IT1-2013-0000869).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `callEKK0351B010SC(param, handle, inHashMltise, resultHashMltise, FUNC_CODE_1)` |
| 2 | COND | `statusCode != 0`: throw `CCException` with `SCCallException` |

**Block 8.5** — [OPTIONAL SERVICE LOOP] `for(int i = 0; i < msgList.length; i++)` L18302

> Iterate through optional service contract list returned by EKK0351B010SC. Evaluate each optional service code to set corresponding flags.

| # | Type | Code |
|---|------|------|
| 1 | SET | `retHash = msgList[i].getMsgData()` |
| 2 | SET | `op_svc_kei_no = (String)retHash.get(OP_SVC_KEI_NO)` |
| 3 | SET | `op_svc_kei_stat = (String)retHash.get(OP_SVC_KEI_STAT)` |
| 4 | SET | `op_svc_cd = (String)retHash.get(OP_SVC_CD)` |

**Block 8.5.1** — [FIXED IP CHECK] `(OP_SVC_CD_FIXIPAD.equals(op_svc_cd))` [B004] L18326

> Check if this optional service is a fixed IP service. Set fixipad_flg if contract status is NOT terminated (less than "910").

| # | Type | Code |
|---|------|------|
| 1 | COND | `OP_SVC_CD_FIXIPAD.equals(op_svc_cd)` [B004 = fixed IP] |
| 2 | COND | `SVC_KEI_STAT_910.compareTo(op_svc_kei_stat) > 0` [status < "910" = not terminated] |
| 3 | SET | `fixipad_flg = true` |

**Block 8.5.2** — [MULTI-SESSION CHECK] `(OP_SVC_CD_MLTISE.equals(op_svc_cd))` L18333

> Check if this optional service is multi-session. Set mltise_flg and store contract number if status is "210" (pause/interruption).

| # | Type | Code |
|---|------|------|
| 1 | COND | `OP_SVC_CD_MLTISE.equals(op_svc_cd)` [multi-session] |
| 2 | COND | `SVC_KEI_STAT_210.equals(op_svc_kei_stat)` [status = "210" = pause/interruption] |
| 3 | SET | `this.op_svc_kei_no_mltise = op_svc_kei_no` |
| 4 | CALL | `this.op_gadtm_mltise = getKK0351GeneAddDtm(param, handle, op_svc_kei_no)` |
| 5 | SET | `mltise_flg = true` |

**Block 8.5.3** — [DIAL-UP CONNECTION CHECK] `(OP_SVC_CD_DUP.equals(op_svc_cd))` L18345

> Check if this optional service is a dial-up connection. Set dial_flg and store contract number if status is "210" (pause/interruption).

| # | Type | Code |
|---|------|------|
| 1 | COND | `OP_SVC_CD_DUP.equals(op_svc_cd)` [dial-up connection] |
| 2 | COND | `SVC_KEI_STAT_210.equals(op_svc_kei_stat)` [status = "210" = pause/interruption] |
| 3 | SET | `this.op_svc_kei_no_dial = op_svc_kei_no` |
| 4 | CALL | `this.op_gadtm_dial = getKK0351GeneAddDtm(param, handle, op_svc_kei_no)` |
| 5 | SET | `dial_flg = true` |

**Block 8.6** — [SAME PROCESSING NUMBER ACQUISITION] `(fmtcel_flg || (fixipad_flg && mltise_flg) || dial_flg)` L18357

> If certain optional services exist (fixed IP + multi-session combo, or dial-up), obtain the same processing number. Otherwise clear it.

| # | Type | Code |
|---|------|------|
| 1 | COND | `fmtcel_flg || (fixipad_flg && mltise_flg) || dial_flg` |
| 2 | SET | `sameTrnNo = new String[1]` |
| 3 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 4 | SET | `this.same_trn_no = sameTrnNo[0]` |
| 5 | ELSE | `this.same_trn_no = ""` |

**Block 8.7** — [OLD VERSION IDENTIFICATION] L18373

> Get old version identification judgment service detail code.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `this.old_vrsb_jdg_svc_dtl_cd = getOldVrsbIdgSvcDtlCd(handle, param, svc_kei_no, this.svc_kei_ucwk_no[0], this.pplan_cd)` |

**Block 8.8** — [NET SERVICE PAUSE START SOD] `(PAUSE_SBT_PAUSE_STA.equals(pauseSbt))` L18378

> For pause start: generate FTTH authentication/temporary pause SOD.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_106)` — FTTH Auth Registration / Temp Pause |

**Block 8.9** — [NET SERVICE PAUSE END SOD] `(PAUSE_SBT_PAUSE_END.equals(pauseSbt))` L18383

> For pause end: generate FTTH authentication/temporary pause release SOD.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_107)` — FTTH Auth Registration / Temp Pause Release |

**Block 8.10** — [MULTI-SESSION WITH FIXED IP SOD] `(fixipad_flg && mltise_flg)` L18395

> Generate multi-session (static) SOD when both fixed IP and multi-session optional services exist.

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrNaiyoCd = ODR_NAIYO_CD_170` — MultiSession(Static)/Temp Pause |
| 2 | COND | `PAUSE_SBT_PAUSE_END.equals(pauseSbt)`: `odrNaiyoCd = ODR_NAIYO_CD_171` — MultiSession(Static)/Pause Release |
| 3 | CALL | `addSOD(handle, param, odrNaiyoCd)` |

**Block 8.11** — [DIAL-UP CONNECTION SOD] `dial_flg` L18407

> Generate dial-up connection SOD when dial-up optional service is registered and in pause state.

| # | Type | Code |
|---|------|------|
| 1 | SET | `odrNaiyoCd = ODR_NAIYO_CD_140` — Dial Up Connection/Temp Pause |
| 2 | COND | `PAUSE_SBT_PAUSE_END.equals(pauseSbt)`: `odrNaiyoCd = ODR_NAIYO_CD_141` — Dial Up Connection/Pause Release |
| 3 | CALL | `addSOD(handle, param, odrNaiyoCd)` |

**Block 9** — [TELECOM SERVICE BRANCH] `(SVC_KIND_TEL.equals(svc_kind))` L18416

> Branch for eo light telephone (telecom) services.

**Block 9.1** — [CONTRACT WORK STATUS CHECK] `!isUcwkStatCheck(...)` L18422

> Same contract work status verification as Net branch.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `isUcwkStatCheck(handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 2 | COND | If false: `return param` |

**Block 9.2** — [TELECOM CONTRACT DETAILS QUERY] L18433

> Query service contract work details for eo light telecom using EKK0191A010SC.

| # | Type | Code |
|---|------|------|
| 1 | SET | `inHashUcwk = new HashMap()` |
| 2 | SET | `resultHashUcwk = new HashMap()` |
| 3 | SET | `inHashUcwk.put(SVC_KEI_UCWK_NO, svc_kei_ucwk_no)` |
| 4 | SET | `inHashUcwk.put(GENE_ADD_DTM, chaf_svc_kei_ucwk_gene_add_dtm)` |
| 5 | CALL | `callEKK0191A010SC(param, handle, inHashUcwk, resultHashUcwk, FUNC_CODE_1)` |
| 6 | COND | `statusCode != 0`: throw `CCException` with `SCCallException` |
| 7 | SET | `eKK0191A010Hash = (HashMap)resultHashUcwk.get(TEMPLATE_ID_EKK0191A010)` |
| 8 | SET | `bmpUm = (String)eKK0191A010Hash.get(BMP_UM)` — phone number presence |

**Block 9.3** — [SAME PROCESSING NUMBER FOR TELECOM] L18523

> Obtain same processing number for non-recovery migration categories (used for temporary transfer correlation).

| # | Type | Code |
|---|------|------|
| 1 | COND | `!IDO_DIV_KAIHK.equals(ido_div)` and `!IDO_DIV_HTELNOKAIHK.equals(ido_div)` |
| 2 | SET | `sameTrnNo = new String[1]` |
| 3 | CALL | `getSame_trn_no(param, handle, null, sameTrnNo)` |
| 4 | SET | `this.same_trn_no = sameTrnNo[0]` |

**Block 9.4** — [TEMPORARY TRANSFER MIGRATION CATEGORY CALCULATION] L18532

> Calculate tokiIdoDiv (migration category for temporary transfer) and tokiIdoDtlCd (migration detail code) based on migration category and pause type.

**Block 9.4.1** — [RECOVERY MIGRATION — PAUSE START] L18539

> For recovery/optical phone recovery during pause start, call "pause reception" and migration detail is "pause accompanying recovery".

| # | Type | Code |
|---|------|------|
| 1 | COND | `PAUSE_SBT_PAUSE_STA.equals(pauseSbt)` |
| 2 | SET | `tokiIdoDiv = IDO_DIV_PAUSEUK` [-> "00024" = pause reception] |
| 3 | SET | `tokiIdoDtlCd = IDO_DTL_CD_KAIHK_PAUSE` — [pause accompanying recovery] |

**Block 9.4.2** — [RECOVERY MIGRATION — PAUSE END] L18544

> For recovery/optical phone recovery during pause end, call "pause change/contract cancellation".

| # | Type | Code |
|---|------|------|
| 1 | SET | `tokiIdoDiv = IDO_DIV_PAUSERLSCHGE` [-> "00025" = pause change/contract cancellation] |

**Block 9.5** — [TEMPORARY TRANSFER SOD JUDGMENT] L18551

> Perform temporary transfer SOD decision logic.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `judgeTokiSOD(handle, param, tokiIdoDiv, tokiIdoDtlCd)` |
| 2 | SET | `judgeRslt = (HashMap)param.get(MAP_KEY_ITNTOKI_STA_END)` |
| 3 | SET | `itntokiStaEndJudgeCd = (String)judgeRslt.get(ITNTOKI_STA_END_JUDGE_CD)` |

**Block 9.6** — [JUDGMENT CODE CHECK] `(ITNTOKI_STA_END_JUDGE_CD_PAUSE_STA.equals(...) \|\| ITNTOKI_STA_END_JUDGE_CD_PAUSE_END.equals(...))` L18557

> Process SOD generation for valid temporary transfer judgment codes (pause start or pause end).

**Block 9.6.1** — [TELECOM PAUSE START — SIP RELEASE/CANCELLATION] `(PAUSE_SBT_PAUSE_STA.equals(pauseSbt))` L18562

> For pause start with valid judgment: SIP release and cancellation, then temporary transfer SOD registration.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_229)` — SIP Release |
| 2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_230)` — SIP Cancellation |
| 3 | CALL | `addTokiSOD(handle, param, tokiIdoDiv, tokiIdoDtlCd)` — Temporary Transfer SOD Registration |

**Block 9.6.2** — [TELECOM PAUSE END — SIP REGISTRATION] `(PAUSE_SBT_PAUSE_END.equals(pauseSbt))` L18568

> For pause end with valid judgment: SIP new registration, option bulk registration, and conditional phone number registration.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_218)` — SIP New Registration |
| 2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_219)` — SIP Option Bulk Registration (non-050) |
| 3 | COND | `isTelnoSODJudge(handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm, null, TELNO_JUDGE_001)` |
| 4 | CALL (if true) | `addSOD(handle, param, ODR_NAIYO_CD_225)` — SIP Phone Number Registration |

**Block 9.7** — [ELSE BRANCH — STANDARD SIP PAUSE] L18591

> When judgment code is not pause-start or pause-end (e.g., other temporary transfer scenarios), generate standard SIP pause/release SOD.

| # | Type | Code |
|---|------|------|
| 1 | COND | `PAUSE_SBT_PAUSE_STA.equals(pauseSbt)` |
| 2 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_223)` — SIP Temp Pause |
| 3 | COND (else) | `PAUSE_SBT_PAUSE_END.equals(pauseSbt)` |
| 4 | CALL | `addSOD(handle, param, ODR_NAIYO_CD_224)` — SIP Pause Release |

**Block 10** — [RETURN] L18659

> Return the processed parameter object containing all generated SOD records.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| SOD | Acronym | Service Order Data — telecom order fulfillment entity representing an order creation trigger |
| 休止 (Shiushi) | Japanese | Pause/Suspension — a state where a service is temporarily suspended while the contract remains active |
| 休止解除 (Shiushi Kaijo) | Japanese | Pause Release — restoring a paused service to active status |
| 受付 (Uke-tsuke) | Japanese | Reception/Acceptance — the intake process for service change orders |
| オーダ制御 (Oda Sei-gyo) | Japanese | Order Control — processing logic that determines what orders/SODs to generate |
| SVC_KEI_STAT | Field | Service Contract Status — internal code indicating the lifecycle state of a service contract |
| SVC_KEI_STAT_210 | Constant | Contract status "210" — pause/interruption state (休止・中断中) |
| SVC_KEI_STAT_910 | Constant | Contract status "910" — terminated state (解約済) |
| PAUSE_SBT | Field | Pause Type — "0" = pause start, "1" = pause end |
| PAUSE_SBT_PAUSE_STA | Constant | Pause start type code "0" — indicates a service pause is beginning |
| PAUSE_SBT_PAUSE_END | Constant | Pause end type code "1" — indicates a service pause is being released |
| PAUSE_STP_CD_02 | Constant | Pause stop code "02" — interrupt-in-progress (中断中). Exclusion filter to skip SOD generation for interrupted orders. |
| ido_div | Field | Migration Category (移動区分) — classifies the type of service migration/change operation |
| IDO_DIV_KAIHK | Constant | Migration category "00004" — recovery (回復) |
| IDO_DIV_HTELNOKAIHK | Constant | Migration category "00044" — optical telephone/number recovery (光電話・番号回復) |
| IDO_DIV_PAUSEUK | Constant | Migration category "00024" — pause reception (休止受付) |
| IDO_DIV_PAUSERLSCHGE | Constant | Migration category "00025" — pause change/contract cancellation (休止変更・予約取消) |
| svc_kind | Field | Service Kind — determines the service category (Net, Tel, Mob, ADSL) |
| SVC_KIND_NET | Constant | Service kind "1" — IT/Net service (eo light internet) |
| SVC_KIND_TEL | Constant | Service kind "2" — Telecom service (eo light telephone) |
| SVC_KIND_MOB | Constant | Service kind "4" — Mobile service |
| SVC_KIND_ADSL | Constant | Service kind "5" — ADSL service |
| svc_kei_ucwk_no | Field | Service Contract Work Number — unique identifier for a service contract work item |
| chaf_svc_kei_ucwk_gene_add_dtm | Field | Post-Change Service Contract Work Generation Timestamp — when the service contract work record was generated after a change |
| op_svc_cd | Field | Optional Service Code — code identifying an optional/extra service attached to the main service contract |
| OP_SVC_CD_FIXIPAD | Constant | Optional service code "B004" — fixed IP service (固定IP) |
| OP_SVC_CD_MLTISE | Constant | Optional service code for multi-session (マルチセッション) |
| OP_SVC_CD_DUP | Constant | Optional service code for dial-up/duplicate connection (ダイアルアップ接続) |
| fixipad_flg | Field | Fixed IP flag — set when a fixed IP optional service is found in active state |
| mltise_flg | Field | Multi-session flag — set when a multi-session optional service is found in pause/interruption state |
| dial_flg | Field | Dial-up flag — set when a dial-up connection optional service is found in pause/interruption state |
| same_trn_no | Field | Same Processing Number — internal tracking ID used to correlate related operations (e.g., recovery migrations) |
| ODR_NAIYO_CD | Field | Order Content Code — classifies the type of SOD order to be generated |
| ODR_NAIYO_CD_106 | Constant | FTTH Authentication Registration / Temp Pause (FTTH認証・一時停止) |
| ODR_NAIYO_CD_107 | Constant | FTTH Authentication Registration / Temp Pause Release (FTTH認証・一時停止解除) |
| ODR_NAIYO_CD_140 | Constant | Dial Up Connection / Temp Pause (ダイアルアップ接続・一時停止) |
| ODR_NAIYO_CD_141 | Constant | Dial Up Connection / Pause Release (ダイアルアップ接続・停止解除) |
| ODR_NAIYO_CD_170 | Constant | MultiSession(Static) / Temp Pause (マルチセッション(静的)・一時停止) |
| ODR_NAIYO_CD_171 | Constant | MultiSession(Static) / Pause Release (マルチセッション(静的)・停止解除) |
| ODR_NAIYO_CD_218 | Constant | SIP New Registration (SIP新規登録) |
| ODR_NAIYO_CD_219 | Constant | SIP Option Bulk Registration — non-050 option bulk (SIPオプション一括登録) |
| ODR_NAIYO_CD_223 | Constant | SIP Temp Pause (SIP一時停止) |
| ODR_NAIYO_CD_224 | Constant | SIP Pause Release (SIP停止解除) |
| ODR_NAIYO_CD_225 | Constant | SIP Phone Number Registration (SIP番ポ情報登録) |
| ODR_NAIYO_CD_229 | Constant | SIP Release (SIP解約) |
| ODR_NAIYO_CD_230 | Constant | SIP Cancellation (SIP消去) |
| BMP_UM | Field | Phone Number Presence (番の有無) — indicates whether the customer has a phone number registered |
| tokiIdoDiv | Field | Temporary Transfer Migration Category — migration category used specifically for temporary transfer SOD judgment |
| tokiIdoDtlCd | Field | Temporary Transfer Migration Detail Code — detailed code for temporary transfer classification |
| 移転トーキ (Iten To-ki) | Japanese | Temporary Transfer Toki — refers to temporary transfer equipment/service (トーキ = TOCK/telephony equipment) |
| judgeTokiSOD | Method | Temporary Transfer SOD Judgment — determines whether temporary transfer SOD is needed and what type |
| isTelnoSODJudge | Method | Phone Number SOD Judgment — determines if phone number registration SOD should be generated |
| isMansionPrvate | Method | Private Mansion Check — determines if the service is in a private apartment/mansion (exclusion condition) |
| isUcwkStatCheck | Method | Contract Work Status Check — verifies the contract work is not under course change cancellation (exclusion condition) |
| jdgSvcKind | Method | Service Kind Judgment — determines the service type from the pricing code (PcrsCd) |
| shkkaMap | Method | Map Sanitizer — cleans/sanitizes map data before processing |
| addSOD | Method | Add Service Order Data — creates a new SOD record with the specified order content code |
| addTokiSOD | Method | Add Temporary Transfer SOD — creates a temporary transfer SOD record with migration category and detail code |
| callEKK0351B010SC | Method | Call Service Component EKK0351B010SC — queries optional service contract list by service contract number |
| callEKK0191A010SC | Method | Call Service Component EKK0191A010SC — queries service contract work details for eo light telecom |
| getKK0351GeneAddDtm | Method | Get Generation Timestamp — queries the generation timestamp for an optional service contract |
| getSame_trn_no | Method | Get Same Processing Number — queries the same processing number for operation correlation |
| getOldVrsbIdgSvcDtlCd | Method | Get Old Version Identification Judgment Service Detail Code — queries compatibility code for old system versions |
| KK_T_ODR_HAKKO_JOKEN | Table | Order Creation Condition Table — stores SOD (order creation condition) records |
| KK_T_ODR_TOKI | Table | Temporary Transfer Order Table — stores temporary transfer SOD records |
| KK_T_ODR_OP_SVC_KEI | Table | Optional Service Contract Table — stores optional service contract records |
| KK_T_ODR_SVC_KEI_UCWK | Table | Service Contract Work Details Table — stores service contract work detail records |
| KK_T_ODR_SAME_TRN_NO | Table | Same Processing Number Table — stores same processing numbers for operation correlation |
| KK_T_SVC_KEI | Table | Service Contract Table — stores service contract records |
| ITNTOKI_STA_END_JUDGE_CD_PAUSE_STA | Constant | Temporary transfer judgment code for pause start |
| ITNTOKI_STA_END_JUDGE_CD_PAUSE_END | Constant | Temporary transfer judgment code for pause end |
| IDO_DTL_CD_KAIHK_PAUSE | Constant | Migration detail code — pause accompanying recovery |
| MAP_KEY_ITNTOKI_STA_END | Field | Map key for temporary transfer pause/start-end judgment result |
| TELNO_JUDGE_001 | Constant | Phone number judgment code "001" — judgment criterion for phone number SOD |
