﻿#  業務ロジック  Part 6/12

### executeOdrHakkoJokenAdd()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
executeOdrHakkoJokenAdd() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── addTokiSOD()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSipDslOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── enumAddOdrCtrl()    [trực tiếp]
├── enumDelOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── hakkouIpv6()    [trực tiếp]
├── htelItntokiOdrCtrl()    [trực tiếp]
├── htelNoAddOdrCtrl()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── newEoMobile()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── newNet()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForIPv6()    [trực tiếp]
├── setChgePWForMltiSe()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── spotLoginSysidChgeOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
├── addSOD()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── add050AddSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── add050DelSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── addTensoDenwaOp()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   ├── addTokiSOD()
│   │   ├── bmpDojiMskm()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── pauseRlsChgeOdrCtrl()
│   │   ├── pauseUkOdrCtrl()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── stpUkOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   └── useStpRlsOdrCtrl()
│   ├── bmpDojiMskm()
│   │   ├── hakkoSOD()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   └── bmpSwitchOdrCtrl()
│   │       └── hakkoSOD()
│   ├── bmpSipDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── enumAddOdrCtrl()
│   │   └── hakkoSOD()
│   ├── enumDelOdrCtrl()
│   │   └── hakkoSOD()
│   ├── hakkoCourseChgSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── malwareBlockingDivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opHktgiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   └── ksiDslOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── pauseUkOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   └── kaihkOdrCtrl()
│   ├── setChgePWForDialup()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForMltiSe()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── useStpRlsOdrCtrl()
│   │       └── hakkoSOD()
│   ├── stpUkOdrCtrl()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   └── useStpOdrCtrl()
│   │       └── hakkoSOD()
│   ├── taiikiSeigenOdrCtrl()
│   │   └── hakkoSOD()
│   ├── telNoChge()
│   │   ├── bmpSwitchOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdChgOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdVaChangeOdrCtrl()
│   │   └── hakkoSOD()
│   └── wribInfoAddOdrCtrl()
│       └── hakkoSOD()
├── addSODDupNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   └── newNet()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       └── newKeiOdrCtrl()
├── addSODEmailNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   ├── newNet()
│   └── newEoMobile()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       └── newKeiOdrCtrl()
├── addSODFtthNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPAccessAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPCapaChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMailAliasAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMailCapaChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMListNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODTelNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   └── newKeiOdrCtrl()
│       ├── adchgFixOdrCtrl()
│       └── hakkoSOD()
├── addSODTelVAChange()
│   ├── hakkoSOD()
│   └── htelNoAddOdrCtrl()
│       └── hakkoSOD()
├── addSODUQWIMAXKaitoriNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addSODUQWIMAXNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addSODVirusChkAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODWiFiChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── spotLoginSysidChgeOdrCtrl()
│       └── hakkoSOD()
├── addSODWiFiNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addTakinoSOD()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── newNet()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   ├── hakkouIpv6()
│   │   ├── addIpv6SODAft()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── jdgIpv6EKK0361A010()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── newKeiOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── jdgIpv6()
│   │       ├── adchgFixOdrCtrl()
│   │       ├── addIpv6SODAft()
│   │       ├── cnclOdrCtrl()
│   │       ├── dslOdrCtrl()
│   │       ├── hakkoSOD()
│   │       ├── htelNoDslOdrCtrl()
│   │       ├── htelNoInfoChgeOdrCtrl()
│   │       ├── htelNoKaihkOdrCtrl()
│   │       ├── kaihkOdrCtrl()
│   │       ├── ksiDslFixOdrCtrl()
│   │       ├── ksiDslOdrCtrl()
│   │       ├── newKeiOdrCtrl()
│   │       ├── opSetOdrCtrl()
│   │       └── jdgIpv6EKK0361A010()
│   │           ├── adchgFixOdrCtrl()
│   │           ├── addIpv6SODAft()
│   │           ├── hakkoSOD()
│   │           ├── kaihkOdrCtrl()
│   │           └── newKeiOdrCtrl()
│   ├── jdgOdr163()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   └── rtOpChgDivOdrCtrl()
│       └── hakkoSOD()
└── tsuikabunAddSOD()
    ├── adchgFixOdrCtrl()
    ├── addIpv6SODAft()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── opSetOdrCtrl()
    └── setChgePWForIPv6()
        ├── hakkoSOD()
        └── idpwShkkaSaifuriOdrCtrl()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite executeOdrHakkoJokenAdd(SessionHandle handle, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

オーダ発行条件登録サービスインターフェース（EKK1081D010CBS）を呼び出して、業務データ（param）からオーダ発行条件テーブルへの登録を実行するメソッドです。  
本メソッドはSOD（Service Order Document）登録業務の基幹であり、各種addSOD系・コントロール系メソッドから共通的に呼び出されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["executeOdrHakkoJokenAdd(handle, param)"] --> S1["Step1: 上りマッピング editInMsg_EKK1081D010CBS(param)"]
  S1 --> S2["Step2: SC呼出し部品生成, scCall.run(paramMap, handle)"]
  S2 --> S3["Step3: 下りマッピング editResultRP_EKK1081D010CBS(result, param)"]
  S3 --> RET["return param"]
```

**処理ステップ詳細:**

1. `editInMsg_EKK1081D010CBS(param)`  
   - 入力データ（param）から、SC（サービスコンポーネント）用の入力メッセージ（paramMap）を編集・生成します。
   - ログ出力用にクラス名を設定（空文字の場合は出力されません）。

2. `scCall.run(paramMap, handle)`  
   - 上記で生成したparamMapを使い、SC（EKK1081D010CBS）を呼び出してオーダ発行条件登録を実行します。
   - handleはセッション管理のための情報。

3. `editResultRP_EKK1081D010CBS(result, param)`  
   - SCの実行結果（result）を受け取り、paramにマッピングします。
   - エラー情報などもここで設定されます。

4. 最終的にparamを返却します。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先        |
|---|------|--------|--------------|
| 1 | なし | -      | 一連の処理後 return param |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                        | 業務説明                           |
|----|--------------|---------------------------|------------------------------------|
| 1  | handle       | SessionHandle             | セッション管理ハンドル             |
| 2  | param        | IRequestParameterReadWrite| 業務データ（入力・出力兼用）       |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド                   | SCコード  | エンティティ        | 操作説明           |
|------|-------------------------------|-----------|---------------------|--------------------|
| C    | callEKK1081D010CBS (run呼出)  | EKK1081   | オーダ発行条件      | オーダ発行条件登録 |

---

#### 4.5 メッセージID (Message IDs)

（該当データなし）

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point — ルートクラスまで遡る):**

- `hakkoSOD`（メインSOD発行制御クラス）  
- 各種addSOD*メソッド → `executeOdrHakkoJokenAdd`

**呼出パス:**

```
hakkoSOD
  → addSODHPAccessAdd
  → executeOdrHakkoJokenAdd
    → editInMsg_EKK1081D010CBS
    → scCall.run
    → editResultRP_EKK1081D010CBS
    → [オーダ発行条件 登録(CREATE)]
```

**終端 (End Points):**

| SC メソッド              | CRUD | エンティティ     |
|-------------------------|------|------------------|
| callEKK1081D010CBS      | C    | オーダ発行条件   |

---

---

---

### executeOdrInfoSakseiWkAdd()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
executeOdrInfoSakseiWkAdd() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── addTokiSOD()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSipDslOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── enumAddOdrCtrl()    [trực tiếp]
├── enumDelOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── hakkouIpv6()    [trực tiếp]
├── htelItntokiOdrCtrl()    [trực tiếp]
├── htelNoAddOdrCtrl()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── newEoMobile()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── newNet()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForIPv6()    [trực tiếp]
├── setChgePWForMltiSe()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── spotLoginSysidChgeOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
├── addSOD()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── add050AddSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── add050DelSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── addTensoDenwaOp()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   ├── addTokiSOD()
│   │   ├── bmpDojiMskm()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── pauseRlsChgeOdrCtrl()
│   │   ├── pauseUkOdrCtrl()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── stpUkOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   └── useStpRlsOdrCtrl()
│   ├── bmpDojiMskm()
│   │   ├── hakkoSOD()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   └── bmpSwitchOdrCtrl()
│   │       └── hakkoSOD()
│   ├── bmpSipDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── enumAddOdrCtrl()
│   │   └── hakkoSOD()
│   ├── enumDelOdrCtrl()
│   │   └── hakkoSOD()
│   ├── hakkoCourseChgSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── malwareBlockingDivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opHktgiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   └── ksiDslOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── pauseUkOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   └── kaihkOdrCtrl()
│   ├── setChgePWForDialup()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForMltiSe()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── useStpRlsOdrCtrl()
│   │       └── hakkoSOD()
│   ├── stpUkOdrCtrl()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   └── useStpOdrCtrl()
│   │       └── hakkoSOD()
│   ├── taiikiSeigenOdrCtrl()
│   │   └── hakkoSOD()
│   ├── telNoChge()
│   │   ├── bmpSwitchOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdChgOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdVaChangeOdrCtrl()
│   │   └── hakkoSOD()
│   └── wribInfoAddOdrCtrl()
│       └── hakkoSOD()
├── addSODDupNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   └── newNet()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       └── newKeiOdrCtrl()
├── addSODEmailNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   ├── newNet()
│   └── newEoMobile()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       └── newKeiOdrCtrl()
├── addSODFtthNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPAccessAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPCapaChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODHPNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMailAliasAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMailCapaChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODMListNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODTelNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   └── newKeiOdrCtrl()
│       ├── adchgFixOdrCtrl()
│       └── hakkoSOD()
├── addSODTelVAChange()
│   ├── hakkoSOD()
│   └── htelNoAddOdrCtrl()
│       └── hakkoSOD()
├── addSODUQWIMAXKaitoriNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addSODUQWIMAXNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addSODVirusChkAdd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── newNet()
├── addSODWiFiChg()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── spotLoginSysidChgeOdrCtrl()
│       └── hakkoSOD()
├── addSODWiFiNew()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── addTakinoSOD()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── newNet()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   ├── hakkouIpv6()
│   │   ├── addIpv6SODAft()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── jdgIpv6EKK0361A010()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── newKeiOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── jdgIpv6()
│   │       ├── adchgFixOdrCtrl()
│   │       ├── addIpv6SODAft()
│   │       ├── cnclOdrCtrl()
│   │       ├── dslOdrCtrl()
│   │       ├── hakkoSOD()
│   │       ├── htelNoDslOdrCtrl()
│   │       ├── htelNoInfoChgeOdrCtrl()
│   │       ├── htelNoKaihkOdrCtrl()
│   │       ├── kaihkOdrCtrl()
│   │       ├── ksiDslFixOdrCtrl()
│   │       ├── ksiDslOdrCtrl()
│   │       ├── newKeiOdrCtrl()
│   │       ├── opSetOdrCtrl()
│   │       └── jdgIpv6EKK0361A010()
│   │           ├── adchgFixOdrCtrl()
│   │           ├── addIpv6SODAft()
│   │           ├── hakkoSOD()
│   │           ├── kaihkOdrCtrl()
│   │           └── newKeiOdrCtrl()
│   ├── jdgOdr163()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   └── rtOpChgDivOdrCtrl()
│       └── hakkoSOD()
└── tsuikabunAddSOD()
    ├── adchgFixOdrCtrl()
    ├── addIpv6SODAft()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── opSetOdrCtrl()
    └── setChgePWForIPv6()
        ├── hakkoSOD()
        └── idpwShkkaSaifuriOdrCtrl()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite executeOdrInfoSakseiWkAdd(SessionHandle handle, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

オーダ情報作成ワーク登録サービスインターフェース（EKK1551D010CBS）を呼び出し、paramの情報からオーダ情報作成ワークテーブルへの登録を実行します。  
SOD新規登録や変更、削除など、SOD系業務処理の共通的なワーク登録部品です。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["executeOdrInfoSakseiWkAdd(handle, param)"] --> S1["Step1: 上りマッピング editInMsg_EKK1551D010CBS(param)"]
  S1 --> S2["Step2: SC呼出し部品生成, scCall.run(paramMap, handle)"]
  S2 --> S3["Step3: 下りマッピング editResultRP_EKK1551D010CBS(result, param)"]
  S3 --> RET["return param"]
```

**処理ステップ詳細:**

1. `editInMsg_EKK1551D010CBS(param)`  
   - 入力パラメータparamからSC用の入力マップparamMapを作成。

2. `scCall.run(paramMap, handle)`  
   - paramMapを使い、EKK1551D010CBS（オーダ情報作成ワーク登録）SCを実行。

3. `editResultRP_EKK1551D010CBS(result, param)`  
   - SC実行結果をparamへマッピングする。

4. paramを返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先        |
|---|------|--------|--------------|
| 1 | なし | -      | return param |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                        | 業務説明                           |
|----|--------------|---------------------------|------------------------------------|
| 1  | handle       | SessionHandle             | セッション管理ハンドル             |
| 2  | param        | IRequestParameterReadWrite| 業務データ（入力・出力兼用）       |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド                   | SCコード  | エンティティ           | 操作説明                 |
|------|-------------------------------|-----------|------------------------|--------------------------|
| C    | callEKK1551D010CBS (run呼出)  | EKK1551   | オーダ情報作成ワーク   | オーダ情報作成ワーク登録 |

---

#### 4.5 メッセージID (Message IDs)

（該当データなし）

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD
- 各addSOD*メソッド → executeOdrInfoSakseiWkAdd

**呼出パス:**

```
hakkoSOD
  → addSODMListNew
  → executeOdrInfoSakseiWkAdd
    → editInMsg_EKK1551D010CBS
    → scCall.run
    → editResultRP_EKK1551D010CBS
    → [オーダ情報作成ワーク 登録(CREATE)]
```

**終端 (End Points):**

| SC メソッド              | CRUD | エンティティ             |
|-------------------------|------|--------------------------|
| callEKK1551D010CBS      | C    | オーダ情報作成ワーク     |

---

---

---

### fillCAANMSGNullMapping()

#### 呼出元 (Reverse Call Tree) — 165 direct callers

```
fillCAANMSGNullMapping() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── addSODUQWIMAXKaitoriNew()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── addTokiSOD()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSipDslOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── callEDK0301B060SC()    [trực tiếp]
├── callEKK0081A010SC()    [trực tiếp]
├── callEKK0161A010SC()    [trực tiếp]
├── callEKK0161B003SC()    [trực tiếp]
├── callEKK0161B004SC()    [trực tiếp]
├── callEKK0161B008SC()    [trực tiếp]
├── callEKK0161B011SC()    [trực tiếp]
├── callEKK0191A010SC()    [trực tiếp]
├── callEKK0251B001SC()    [trực tiếp]
├── callEKK0251B003SC()    [trực tiếp]
├── callEKK0251B003SCCAAMsg()    [trực tiếp]
├── callEKK0341A010SC()    [trực tiếp]
├── callEKK0341B001SC()    [trực tiếp]
├── callEKK0341B002SC()    [trực tiếp]
├── callEKK0341B008_02SC()    [trực tiếp]
├── callEKK0341B008SC()    [trực tiếp]
├── callEKK0341B008SCRireki()    [trực tiếp]
├── callEKK0341B021SC()    [trực tiếp]
├── callEKK0341B029SC()    [trực tiếp]
├── callEKK0341B504SC()    [trực tiếp]
├── callEKK0351A010SC()    [trực tiếp]
├── callEKK0351B002SC()    [trực tiếp]
├── callEKK0401A010SC()    [trực tiếp]
├── callEKK0411A010SC()    [trực tiếp]
├── callEKK0791A010SC()    [trực tiếp]
├── callEKK1041A010SC()    [trực tiếp]
├── callEKK1081C011SC()    [trực tiếp]
├── callEKK1681B001SC()    [trực tiếp]
├── callEKK2811A010SC()    [trực tiếp]
├── callEKK2811B010SC()    [trực tiếp]
├── callETU0011B010SC()    [trực tiếp]
├── callEZM0121A010SC()    [trực tiếp]
├── callEZM0411A010SC()    [trực tiếp]
├── checkKKOPChanged()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── chkOdrSette()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── countUpWiFiSpotSessions()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getAdChgInfo()    [trực tiếp]
├── getCourseChgSvcKeiUcwk()    [trực tiếp]
├── getDammyPplanCd()    [trực tiếp]
├── getEKK0251B001SC()    [trực tiếp]
├── getEKK0251B003SC()    [trực tiếp]
├── getIdoRsvCourseChg()    [trực tiếp]
├── getKK0351GeneAddDtm()    [trực tiếp]
├── getKK0351Hash()    [trực tiếp]
├── getKktkSvcKeiList()    [trực tiếp]
├── getKojiakState()    [trực tiếp]
├── getNewPplanCd()    [trực tiếp]
├── getOldVrsbIdgSvcDtlCd()    [trực tiếp]
├── getOpSvcKei4Eohtel()    [trực tiếp]
├── getSame_trn_no()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getSvcKeiList()    [trực tiếp]
├── getSvcKeiUtwk()    [trực tiếp]
├── getTaknkikiM()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelItntokiOdrCtrl()    [trực tiếp]
├── htelNoAddOdrCtrl()    [trực tiếp]
├── htelNoChgeOdrCtrl()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── isBmpOpenZumi()    [trực tiếp]
├── isBmpOpenZumiDslNoDslNoChg()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isMonaiBmp()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── isStartRsvOption()    [trực tiếp]
├── isTajgsTelNo()    [trực tiếp]
├── isTelnoSODJudge()    [trực tiếp]
├── isUcwkStatCheck()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── newEoMobile()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── newNet()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseJdg()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── searchOpSvcKei()    [trực tiếp]
├── searchSvcKeiUcwk()    [trực tiếp]
├── searchSvcKeiUcwkEohtl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForIPv6()    [trực tiếp]
├── setChgePWForMltiSe()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
├── callEKK0091A010_SC()
│   ├── adchgFixOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── hakkoSOD()
│   ├── hakkoCourseChgSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── courseChgeOdrCtrl()
│   │       ├── hakkoSOD()
│   │       └── adchgFixOdrCtrl()
│   │           └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── malwareBlockingDivOdrCtrl()
│   │   └── hakkoSOD()
│   └── taiikiSeigenOdrCtrl()
│       └── hakkoSOD()
├── callEKK0191B001_2SC()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   └── opSetOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── cnclOdrCtrl()
│       │   │   └── hakkoSOD()
│       │   ├── ksiDslFixOdrCtrl()
│       │   │   └── hakkoSOD()
│       │   └── ksiDslOdrCtrl()
│       │       └── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       │   └── hakkoSOD()
│       └── htelNoKaihkOdrCtrl()
│           └── hakkoSOD()
├── callEKK0191B001SC()
│   ├── hakkoSOD()
│   └── htelNoInfoChgeOdrCtrl()
│       └── hakkoSOD()
├── callEKK0881A010_SC()
│   ├── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   └── getDammyPplanCd()
│       ├── hakkoSOD()
│       ├── koteiIpAd8DivOdrCtrl()
│       └── malwareBlockingDivOdrCtrl()
├── callEKK2091A010SC()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   └── getAdChgInfo()
│       ├── hakkoSOD()
│       └── htelItntokiOdrCtrl()
│           └── hakkoSOD()
├── callEKK2101B001SC()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   └── getKojiakState()
│       ├── hakkoSOD()
│       └── htelItntokiOdrCtrl()
├── callEKK2101B002SC()
│   ├── getAdChgInfo()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── callEKU0011A010SC()
│   ├── getKojiakState()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── callEKU0081B010SC()
│   ├── getKojiakState()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── editInMsgEDK0301B060()
│   ├── checkTakinoRT()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getShuriKokanBfKiki()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── isRegalVaKiki()
│   ├── jdgIpv6()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEDK0301B060SC()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── isRegalVaKiki()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       └── getShuriKokanBfKiki()
│           ├── adchgFixOdrCtrl()
│           ├── addIpv6SODAft()
│           ├── bmpSwitchOdrCtrl()
│           ├── checkTakinoRT()
│           ├── cnclOdrCtrl()
│           ├── courseChgeOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── findZ1OrderAtKK1041()
│           ├── findZ1OrderAtKK1041SvcKeiUcwk()
│           ├── getVAkikiInfo()
│           ├── getZ1HakkoKh()
│           ├── hakkoSOD()
│           ├── htelNoAddOdrCtrl()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── idpwShkkaSaifuriOdrCtrl()
│           ├── isKikiSeizoNoCheck()
│           ├── jdgIpv6()
│           ├── jdgIpv6EKK0361A010()
│           ├── jdgOdr163()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           ├── setChgePWForRouterConInfo()
│           ├── telNoChge()
│           ├── vLanIdChgOdrCtrl()
│           ├── wribInfoAddOdrCtrl()
│           └── isRegalVaKiki()
│               ├── hakkoSOD()
│               └── htelNoInfoChgeOdrCtrl()
├── editInMsgEKK0341B001()
│   ├── checkTakinoRT()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getShuriKokanBfKiki()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── isRegalVaKiki()
│   ├── jdgIpv6()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341B001SC()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getShuriKokanBfKiki()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── isRegalVaKiki()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── editInMsgEKK0341B008()
│   ├── checkTakinoRT()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getShuriKokanBfKiki()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── isRegalVaKiki()
│   ├── jdgIpv6()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341B008SCRireki()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getShuriKokanBfKiki()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── isRegalVaKiki()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── editInMsgEKK0341B021()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── rtOpChgDivOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341B021SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       ├── checkTakinoRT()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── addIpv6SODAft()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── cnclOdrCtrl()
│       │   ├── courseChgeOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoAddOdrCtrl()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── idpwShkkaSaifuriOdrCtrl()
│       │   ├── jdgIpv6()
│       │   ├── jdgIpv6EKK0361A010()
│       │   ├── jdgOdr163()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── newKeiOdrCtrl()
│       │   ├── opSetOdrCtrl()
│       │   ├── setChgePWForRouterConInfo()
│       │   ├── telNoChge()
│       │   ├── vLanIdChgOdrCtrl()
│       │   ├── findZ1OrderAtKK1041()
│       │   │   ├── hakkoSOD()
│       │   │   ├── htelNoAddOdrCtrl()
│       │   │   └── idpwShkkaSaifuriOdrCtrl()
│       │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       │   │   ├── cnclOdrCtrl()
│       │   │   ├── dslOdrCtrl()
│       │   │   ├── hakkoSOD()
│       │   │   ├── htelNoDslOdrCtrl()
│       │   │   ├── htelNoInfoChgeOdrCtrl()
│       │   │   ├── htelNoKaihkOdrCtrl()
│       │   │   ├── kaihkOdrCtrl()
│       │   │   ├── ksiDslFixOdrCtrl()
│       │   │   ├── ksiDslOdrCtrl()
│       │   │   └── opSetOdrCtrl()
│       │   └── wribInfoAddOdrCtrl()
│       │       └── hakkoSOD()
│       ├── getVAkikiInfo()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       │   ├── getZ1HakkoKh()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── isKikiSeizoNoCheck()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   └── opSetOdrCtrl()
│       └── rtOpChgDivOdrCtrl()
│           └── hakkoSOD()
├── editInMsgEKK0341B029()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341B029SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── mappingEKK0081A010SCInMsg()
│   ├── checkTakinoRT()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getSvcKeiList()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── newNet()
│   ├── opSetOdrCtrl()
│   ├── pauseJdg()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0081A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelItntokiOdrCtrl()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── newNet()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       ├── getSvcKeiList()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── addIpv6SODAft()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── checkTakinoRT()
│       │   ├── cnclOdrCtrl()
│       │   ├── courseChgeOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── findZ1OrderAtKK1041()
│       │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       │   ├── hakkoSOD()
│       │   ├── htelNoAddOdrCtrl()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── idpwShkkaSaifuriOdrCtrl()
│       │   ├── jdgIpv6()
│       │   ├── jdgIpv6EKK0361A010()
│       │   ├── jdgOdr163()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── newKeiOdrCtrl()
│       │   ├── opSetOdrCtrl()
│       │   ├── setChgePWForRouterConInfo()
│       │   ├── telNoChge()
│       │   ├── vLanIdChgOdrCtrl()
│       │   ├── wribInfoAddOdrCtrl()
│       │   └── newNet()
│       │       ├── adchgFixOdrCtrl()
│       │       ├── hakkoSOD()
│       │       └── newKeiOdrCtrl()
│       └── pauseJdg()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelItntokiOdrCtrl()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── idpwShkkaSaifuriOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           └── setChgePWForRouterConInfo()
├── mappingEKK0161A010SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── bmpSipDslOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── countUpWiFiSpotSessions()
│   ├── dslOdrCtrl()
│   ├── getSvcKeiUtwk()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoChgeOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isBmpOpenZumi()
│   ├── isBmpOpenZumiDslNoDslNoChg()
│   ├── isUcwkStatCheck()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── searchSvcKeiUcwk()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   └── callEKK0161A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── add050AddSod()
│       ├── bmpSipDslOdrCtrl()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelItntokiOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── isBmpOpenZumi()
│       ├── isBmpOpenZumiDslNoDslNoChg()
│       ├── isUcwkStatCheck()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── countUpWiFiSpotSessions()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── stpRlsOdrCtrl()
│       │   ├── stpUkOdrCtrl()
│       │   ├── useStpOdrCtrl()
│       │   └── useStpRlsOdrCtrl()
│       ├── getSvcKeiUtwk()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── hakkoSOD()
│       │   └── newKeiOdrCtrl()
│       │       ├── adchgFixOdrCtrl()
│       │       └── hakkoSOD()
│       ├── htelNoChgeOdrCtrl()
│       │   └── hakkoSOD()
│       ├── searchSvcKeiUcwk()
│       │   ├── bmpSipDslOdrCtrl()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── opSetOdrCtrl()
│       │   ├── telNoChge()
│       │   └── add050AddSod()
│       │       ├── bmpSwitchOdrCtrl()
│       │       ├── cnclOdrCtrl()
│       │       ├── dslOdrCtrl()
│       │       ├── hakkoSOD()
│       │       ├── htelNoDslOdrCtrl()
│       │       ├── htelNoInfoChgeOdrCtrl()
│       │       ├── htelNoKaihkOdrCtrl()
│       │       ├── kaihkOdrCtrl()
│       │       ├── ksiDslFixOdrCtrl()
│       │       ├── ksiDslOdrCtrl()
│       │       ├── opSetOdrCtrl()
│       │       └── telNoChge()
│       ├── stpRlsOdrCtrl()
│       │   ├── hakkoSOD()
│       │   └── useStpRlsOdrCtrl()
│       │       └── hakkoSOD()
│       ├── stpUkOdrCtrl()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── kaihkOdrCtrl()
│       │   └── useStpOdrCtrl()
│       │       └── hakkoSOD()
│       └── telNoChge()
│           ├── bmpSwitchOdrCtrl()
│           └── hakkoSOD()
├── mappingEKK0161B003SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── countUpWiFiSpotSessions()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   └── callEKK0161B003SC()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── countUpWiFiSpotSessions()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── useStpOdrCtrl()
│       └── useStpRlsOdrCtrl()
├── mappingEKK0161B004SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getCourseChgSvcKeiUcwk()
│   ├── getOldVrsbIdgSvcDtlCd()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── taiikiSeigenOdrCtrl()
│   ├── vLanIdChgOdrCtrl()
│   └── callEKK0161B004SC()
│       ├── adchgFixOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── getOldVrsbIdgSvcDtlCd()
│       ├── hakkoCourseChgSOD()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── koteiIpAd8DivOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── malwareBlockingDivOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── pauseRlsChgeOdrCtrl()
│       ├── pauseUkOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── taiikiSeigenOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── getCourseChgSvcKeiUcwk()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── cnclOdrCtrl()
│       │   ├── courseChgeOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoCourseChgSOD()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── idpwShkkaSaifuriOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── koteiIpAd8DivOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── malwareBlockingDivOdrCtrl()
│       │   ├── opHktgiOdrCtrl()
│       │   ├── opSetOdrCtrl()
│       │   ├── pauseRlsChgeOdrCtrl()
│       │   ├── pauseUkOdrCtrl()
│       │   ├── stpRlsOdrCtrl()
│       │   ├── taiikiSeigenOdrCtrl()
│       │   ├── useStpRlsOdrCtrl()
│       │   └── getOldVrsbIdgSvcDtlCd()
│       │       ├── adchgFixOdrCtrl()
│       │       ├── cnclOdrCtrl()
│       │       ├── courseChgeOdrCtrl()
│       │       ├── dslOdrCtrl()
│       │       ├── hakkoCourseChgSOD()
│       │       ├── hakkoSOD()
│       │       ├── htelNoDslOdrCtrl()
│       │       ├── htelNoInfoChgeOdrCtrl()
│       │       ├── htelNoKaihkOdrCtrl()
│       │       ├── idpwShkkaSaifuriOdrCtrl()
│       │       ├── kaihkOdrCtrl()
│       │       ├── koteiIpAd8DivOdrCtrl()
│       │       ├── ksiDslFixOdrCtrl()
│       │       ├── ksiDslOdrCtrl()
│       │       ├── malwareBlockingDivOdrCtrl()
│       │       ├── opHktgiOdrCtrl()
│       │       ├── opSetOdrCtrl()
│       │       ├── pauseRlsChgeOdrCtrl()
│       │       ├── pauseUkOdrCtrl()
│       │       ├── stpRlsOdrCtrl()
│       │       ├── taiikiSeigenOdrCtrl()
│       │       └── useStpRlsOdrCtrl()
│       ├── opHktgiOdrCtrl()
│       │   └── hakkoSOD()
│       └── vLanIdChgOdrCtrl()
│           └── hakkoSOD()
├── mappingEKK0161B008SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── hakkoSOD()
│   └── callEKK0161B008SC()
│       ├── hakkoSOD()
│       └── bmpSwitchOdrCtrl()
│           └── hakkoSOD()
├── mappingEKK0161B011SCInMsg()
│   └── callEKK0161B011SC()
├── mappingEKK0191A010SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── addTensoDenwaOp()
│   ├── addTokiSOD()
│   ├── bmpDojiMskm()
│   ├── bmpSipDslOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoChgeOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── isBmpOpenZumi()
│   ├── isBmpOpenZumiDslNoDslNoChg()
│   ├── isKikiSeizoNoCheck()
│   ├── isTelnoSODJudge()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── searchSvcKeiUcwkEohtl()
│   ├── setChgePWForRouterConInfo()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0191A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── add050AddSod()
│       ├── addIpv6SODAft()
│       ├── bmpDojiMskm()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelItntokiOdrCtrl()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoChgeOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isBmpOpenZumi()
│       ├── isBmpOpenZumiDslNoDslNoChg()
│       ├── isTelnoSODJudge()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── keiTtdkChuHtelnoChgeOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── telNoChge()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── vLanIdChgOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       ├── addTensoDenwaOp()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── hakkoSOD()
│       │   └── newKeiOdrCtrl()
│       ├── addTokiSOD()
│       │   ├── bmpDojiMskm()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   ├── pauseRlsChgeOdrCtrl()
│       │   ├── pauseUkOdrCtrl()
│       │   ├── stpRlsOdrCtrl()
│       │   ├── stpUkOdrCtrl()
│       │   ├── useStpOdrCtrl()
│       │   └── useStpRlsOdrCtrl()
│       ├── bmpSipDslOdrCtrl()
│       │   └── hakkoSOD()
│       ├── getZ1HakkoKh()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   └── opSetOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       │   ├── cnclOdrCtrl()
│       │   ├── dslOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── htelNoInfoChgeOdrCtrl()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── ksiDslFixOdrCtrl()
│       │   ├── ksiDslOdrCtrl()
│       │   └── opSetOdrCtrl()
│       ├── pauseRlsChgeOdrCtrl()
│       │   └── hakkoSOD()
│       ├── pauseUkOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   └── kaihkOdrCtrl()
│       └── searchSvcKeiUcwkEohtl()
│           ├── add050AddSod()
│           ├── bmpSwitchOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           └── telNoChge()
├── mappingEKK0251B001SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getEKK0251B001SC()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   └── callEKK0251B001SC()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── vLanIdVaChangeOdrCtrl()
│       └── getEKK0251B001SC()
│           ├── bmpSwitchOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           ├── telNoChge()
│           ├── vLanIdChgOdrCtrl()
│           └── vLanIdVaChangeOdrCtrl()
├── mappingEKK0251B003SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getEKK0251B003SC()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── rtOpChgDivOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   ├── callEKK0251B003SC()
│   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   │   ├── getZ1HakkoKh()
│   │   ├── opSetOdrCtrl()
│   │   └── getEKK0251B003SC()
│   │       ├── dslOdrCtrl()
│   │       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   │       ├── getZ1HakkoKh()
│   │       ├── hakkoSOD()
│   │       ├── htelNoDslOdrCtrl()
│   │       ├── htelNoInfoChgeOdrCtrl()
│   │       ├── htelNoKaihkOdrCtrl()
│   │       ├── kaihkOdrCtrl()
│   │       └── opSetOdrCtrl()
│   └── callEKK0251B003SCCAAMsg()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── rtOpChgDivOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── mappingEKK0341A010SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── checkTakinoRT()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getShuriKokanBfKiki()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── isRegalVaKiki()
│   ├── jdgIpv6()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getShuriKokanBfKiki()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── isRegalVaKiki()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       ├── jdgOdr163()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── courseChgeOdrCtrl()
│       │   └── hakkoSOD()
│       └── vLanIdVaChangeOdrCtrl()
│           └── hakkoSOD()
├── mappingEKK0341B002SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── getKktkSvcKeiList()
│   ├── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   └── callEKK0341B002SC()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── newEoMobile()
│       ├── newKeiOdrCtrl()
│       ├── getKktkSvcKeiList()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── newKeiOdrCtrl()
│       │   └── newEoMobile()
│       │       ├── adchgFixOdrCtrl()
│       │       ├── hakkoSOD()
│       │       └── newKeiOdrCtrl()
│       └── setChgePWForRouterConInfo()
│           ├── hakkoSOD()
│           └── idpwShkkaSaifuriOdrCtrl()
│               └── hakkoSOD()
├── mappingEKK0341B022_02SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   └── callEKK0341B008_02SC()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── telNoChge()
│       └── vLanIdChgOdrCtrl()
├── mappingEKK0341B022SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoChgeOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── telNoChge()
│   └── callEKK0341B008SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── getVAkikiInfo()
│       ├── getZ1HakkoKh()
│       ├── hakkoSOD()
│       ├── htelNoChgeOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── isKikiSeizoNoCheck()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── telNoChge()
│       └── jdgIpv6()
│           ├── adchgFixOdrCtrl()
│           ├── addIpv6SODAft()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── newKeiOdrCtrl()
│           ├── opSetOdrCtrl()
│           └── jdgIpv6EKK0361A010()
│               ├── adchgFixOdrCtrl()
│               ├── addIpv6SODAft()
│               ├── hakkoSOD()
│               ├── kaihkOdrCtrl()
│               └── newKeiOdrCtrl()
├── mappingEKK0341B504SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK0341B504SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── mappingEKK0351A010SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── add050DelSod()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getKK0351GeneAddDtm()
│   ├── getKK0351Hash()
│   ├── getOpSvcKei4Eohtel()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── searchOpSvcKei()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   └── callEKK0351A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── add050AddSod()
│       ├── add050DelSod()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoCourseChgSOD()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── malwareBlockingDivOdrCtrl()
│       ├── opHktgiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── pauseRlsChgeOdrCtrl()
│       ├── pauseUkOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── telNoChge()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── getKK0351GeneAddDtm()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── courseChgeOdrCtrl()
│       │   ├── hakkoCourseChgSOD()
│       │   ├── hakkoSOD()
│       │   ├── htelNoKaihkOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── malwareBlockingDivOdrCtrl()
│       │   ├── pauseRlsChgeOdrCtrl()
│       │   ├── pauseUkOdrCtrl()
│       │   ├── stpRlsOdrCtrl()
│       │   └── useStpRlsOdrCtrl()
│       ├── getKK0351Hash()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── kaihkOdrCtrl()
│       │   ├── stpRlsOdrCtrl()
│       │   ├── stpUkOdrCtrl()
│       │   ├── useStpOdrCtrl()
│       │   └── useStpRlsOdrCtrl()
│       ├── getOpSvcKei4Eohtel()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── htelNoDslOdrCtrl()
│       │   ├── kaihkOdrCtrl()
│       │   ├── stpUkOdrCtrl()
│       │   └── useStpOdrCtrl()
│       └── searchOpSvcKei()
│           ├── add050AddSod()
│           ├── bmpSwitchOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           ├── telNoChge()
│           └── add050DelSod()
│               ├── bmpSwitchOdrCtrl()
│               ├── cnclOdrCtrl()
│               ├── dslOdrCtrl()
│               ├── hakkoSOD()
│               ├── htelNoDslOdrCtrl()
│               ├── htelNoInfoChgeOdrCtrl()
│               ├── htelNoKaihkOdrCtrl()
│               ├── kaihkOdrCtrl()
│               ├── ksiDslFixOdrCtrl()
│               ├── ksiDslOdrCtrl()
│               ├── opSetOdrCtrl()
│               └── telNoChge()
├── mappingEKK0351B002SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── addTensoDenwaOp()
│   ├── bmpDojiMskm()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getOpSvcKei4Eohtel()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForDialup()
│   ├── setChgePWForIPv6()
│   ├── setChgePWForMltiSe()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   └── callEKK0351B002SC()
│       ├── adchgFixOdrCtrl()
│       ├── addTensoDenwaOp()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── getOpSvcKei4Eohtel()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── keiTtdkChuHtelnoChgeOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── telNoChge()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── addIpv6SODAft()
│       │   ├── adchgFixOdrCtrl()
│       │   ├── hakkoSOD()
│       │   └── newKeiOdrCtrl()
│       ├── bmpDojiMskm()
│       │   ├── bmpSwitchOdrCtrl()
│       │   ├── hakkoSOD()
│       │   ├── stpRlsOdrCtrl()
│       │   └── useStpRlsOdrCtrl()
│       ├── setChgePWForDialup()
│       │   ├── hakkoSOD()
│       │   └── idpwShkkaSaifuriOdrCtrl()
│       ├── setChgePWForIPv6()
│       │   ├── hakkoSOD()
│       │   └── idpwShkkaSaifuriOdrCtrl()
│       └── setChgePWForMltiSe()
│           ├── hakkoSOD()
│           └── idpwShkkaSaifuriOdrCtrl()
├── mappingEKK0401A010SCInMsg()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   └── callEKK0401A010SC()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opHktgiOdrCtrl()
│       └── opSetOdrCtrl()
├── mappingEKK0411A010SCInMsg()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   └── callEKK0411A010SC()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       └── opSetOdrCtrl()
├── mappingEKK0791A010SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── getKktkSvcKeiList()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   └── callEKK0791A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── getKktkSvcKeiList()
│       ├── hakkoSOD()
│       ├── newEoMobile()
│       └── newKeiOdrCtrl()
├── mappingEKK1041A010SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── chkOdrSette()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK1041A010SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── chkOdrSette()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── mappingEKK1081C011SCInMsg()
│   ├── adchgFixOdrCtrl()
│   ├── addSODUQWIMAXKaitoriNew()
│   ├── addTensoDenwaOp()
│   ├── bmpDojiMskm()
│   ├── bmpSipDslOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getSame_trn_no()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── rtOpChgDivOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── taiikiSeigenOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   └── callEKK1081C011SC()
│       ├── adchgFixOdrCtrl()
│       ├── addSODUQWIMAXKaitoriNew()
│       ├── addTensoDenwaOp()
│       ├── bmpDojiMskm()
│       ├── bmpSipDslOdrCtrl()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoCourseChgSOD()
│       ├── hakkoSOD()
│       ├── htelItntokiOdrCtrl()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── keiTtdkChuHtelnoChgeOdrCtrl()
│       ├── koteiIpAd8DivOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── malwareBlockingDivOdrCtrl()
│       ├── newEoMobile()
│       ├── newKeiOdrCtrl()
│       ├── opHktgiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── pauseRlsChgeOdrCtrl()
│       ├── pauseUkOdrCtrl()
│       ├── rtOpChgDivOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── taiikiSeigenOdrCtrl()
│       ├── telNoChge()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       ├── vLanIdChgOdrCtrl()
│       ├── vLanIdVaChangeOdrCtrl()
│       └── getSame_trn_no()
│           ├── adchgFixOdrCtrl()
│           ├── addTensoDenwaOp()
│           ├── bmpDojiMskm()
│           ├── bmpSipDslOdrCtrl()
│           ├── bmpSwitchOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── courseChgeOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── getSame_trn_no()
│           ├── hakkoCourseChgSOD()
│           ├── hakkoSOD()
│           ├── htelItntokiOdrCtrl()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── idpwShkkaSaifuriOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── keiTtdkChuHtelnoChgeOdrCtrl()
│           ├── koteiIpAd8DivOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── malwareBlockingDivOdrCtrl()
│           ├── newEoMobile()
│           ├── newKeiOdrCtrl()
│           ├── opHktgiOdrCtrl()
│           ├── opSetOdrCtrl()
│           ├── pauseRlsChgeOdrCtrl()
│           ├── pauseUkOdrCtrl()
│           ├── rtOpChgDivOdrCtrl()
│           ├── stpRlsOdrCtrl()
│           ├── stpUkOdrCtrl()
│           ├── taiikiSeigenOdrCtrl()
│           ├── telNoChge()
│           ├── useStpOdrCtrl()
│           ├── useStpRlsOdrCtrl()
│           ├── vLanIdChgOdrCtrl()
│           ├── vLanIdVaChangeOdrCtrl()
│           ├── addSODUQWIMAXKaitoriNew()
│           │   ├── adchgFixOdrCtrl()
│           │   ├── hakkoSOD()
│           │   ├── newEoMobile()
│           │   └── newKeiOdrCtrl()
│           └── htelNoAddOdrCtrl()
│               └── hakkoSOD()
├── mappingEKK1681B001SCInMsg()
│   ├── courseChgeOdrCtrl()
│   ├── getIdoRsvCourseChg()
│   ├── getNewPplanCd()
│   ├── getOldVrsbIdgSvcDtlCd()
│   ├── hakkoCourseChgSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── isStartRsvOption()
│   ├── kaihkOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── taiikiSeigenOdrCtrl()
│   └── callEKK1681B001SC()
│       ├── adchgFixOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── getNewPplanCd()
│       ├── getOldVrsbIdgSvcDtlCd()
│       ├── hakkoCourseChgSOD()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── isStartRsvOption()
│       ├── kaihkOdrCtrl()
│       ├── koteiIpAd8DivOdrCtrl()
│       ├── malwareBlockingDivOdrCtrl()
│       ├── opHktgiOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── pauseRlsChgeOdrCtrl()
│       ├── pauseUkOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── taiikiSeigenOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       └── getIdoRsvCourseChg()
│           ├── adchgFixOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── courseChgeOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── getOldVrsbIdgSvcDtlCd()
│           ├── hakkoCourseChgSOD()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── idpwShkkaSaifuriOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── koteiIpAd8DivOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── malwareBlockingDivOdrCtrl()
│           ├── opHktgiOdrCtrl()
│           ├── opSetOdrCtrl()
│           ├── pauseRlsChgeOdrCtrl()
│           ├── pauseUkOdrCtrl()
│           ├── stpRlsOdrCtrl()
│           ├── taiikiSeigenOdrCtrl()
│           ├── useStpRlsOdrCtrl()
│           └── getNewPplanCd()
│               ├── adchgFixOdrCtrl()
│               ├── courseChgeOdrCtrl()
│               └── hakkoSOD()
├── mappingEKK2811A010SCInMsg()
│   ├── checkKKOPChanged()
│   ├── hakkoSOD()
│   ├── rtOpChgDivOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK2811A010SC()
│       ├── hakkoSOD()
│       ├── rtOpChgDivOdrCtrl()
│       ├── wribInfoAddOdrCtrl()
│       └── checkKKOPChanged()
│           ├── hakkoSOD()
│           └── wribInfoAddOdrCtrl()
├── mappingEKK2811B010SCInMsg()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── callEKK2811B010SC()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── bmpSwitchOdrCtrl()
│       ├── checkTakinoRT()
│       ├── cnclOdrCtrl()
│       ├── courseChgeOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── findZ1OrderAtKK1041()
│       ├── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── hakkoSOD()
│       ├── htelNoAddOdrCtrl()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── idpwShkkaSaifuriOdrCtrl()
│       ├── jdgIpv6()
│       ├── jdgIpv6EKK0361A010()
│       ├── jdgOdr163()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── opSetOdrCtrl()
│       ├── setChgePWForRouterConInfo()
│       ├── telNoChge()
│       ├── vLanIdChgOdrCtrl()
│       ├── vLanIdVaChangeOdrCtrl()
│       └── wribInfoAddOdrCtrl()
├── mappingETU0011B010SCInMsg()
│   ├── isBmpOpenZumi()
│   ├── isBmpOpenZumiDslNoDslNoChg()
│   └── callETU0011B010SC()
│       ├── isBmpOpenZumi()
│       └── isBmpOpenZumiDslNoDslNoChg()
├── mappingEZM0121A010SCInMsg()
│   ├── isMonaiBmp()
│   ├── isTajgsTelNo()
│   ├── isTelnoSODJudge()
│   └── callEZM0121A010SC()
│       ├── isMonaiBmp()
│       ├── isTajgsTelNo()
│       └── isTelnoSODJudge()
└── mappingEZM0411A010SCInMsg()
    ├── getTaknkikiM()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── opSetOdrCtrl()
    └── callEZM0411A010SC()
        ├── addIpv6SODAft()
        ├── dslOdrCtrl()
        ├── hakkoSOD()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── jdgIpv6()
        ├── jdgIpv6EKK0361A010()
        ├── kaihkOdrCtrl()
        ├── opSetOdrCtrl()
        └── getTaknkikiM()
            ├── addIpv6SODAft()
            ├── cnclOdrCtrl()
            ├── dslOdrCtrl()
            ├── hakkoSOD()
            ├── htelNoDslOdrCtrl()
            ├── htelNoInfoChgeOdrCtrl()
            ├── htelNoKaihkOdrCtrl()
            ├── jdgIpv6()
            ├── jdgIpv6EKK0361A010()
            ├── kaihkOdrCtrl()
            ├── ksiDslFixOdrCtrl()
            ├── ksiDslOdrCtrl()
            ├── newKeiOdrCtrl()
            └── opSetOdrCtrl()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)`
> **戻り値:** `void`

---

#### 1. 役割

CAANMsgの持ちうる全フィールドをNull値で初期化してデータマッピングの初期処理を行います。各種SCのマッピング処理やインバウンド編集の共通処理として使用されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["fillCAANMSGNullMapping(msg, contents)"] --> FORLOOP["contents配列の各elementをループ"]
  FORLOOP --> SETNULL["msg.setNull((String)element)"]
  SETNULL --> FORLOOP
  FORLOOP --> RET["void（処理完了）"]
```

**制御フロー分岐：**
- for文：contents配列の要素すべてに対してsetNullを呼び出す

---

#### 3. パラメータ分析

| No | パラメータ名   | 型             | 業務説明                                |
|----|---------------|----------------|-----------------------------------------|
| 1  | msg           | CAANMsg        | 初期化対象のCAANメッセージオブジェクト  |
| 2  | contents      | Object[][]     | キー情報配列（フィールド名等）          |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明         |
|------|------------|----------|-------------|------------------|
| -    | -          | -        | -           | データ変換のみ   |

---

#### 4.5 メッセージID (Message IDs)

なし

---

#### 5. 依存トレース (Dependency Trace)

**起点:**  
多岐にわたるSCマッピング・編集・呼出・制御系メソッドから共通的に呼び出し

**終端:**  
データ変換のみ、SC呼出無し

---

---

---

### findMobileStartOrderAtKK1041()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected boolean findMobileStartOrderAtKK1041(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiNo)`
> **戻り値:** `boolean`

---

#### 1. 役割

モバイルサービスの課金開始オーダが既に受付済みかどうかを判定する業務メソッドです。主にモバイルサービスの課金処理トリガ判定として利用されます。<citation>2</citation>

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findMobileStartOrderAtKK1041(param, handle, svcKeiNo)"] --> S1["Step1: callEKK1041B001SCでオーダ設定一覧照会（ORDER_SBT_CD_MOBILE, SVC_ORDER_CD_CHRG）実行"]
  S1 --> IF1{"eKK1041B001HashListがnullでなくサイズ>0"}
  IF1 -- "Yes" --> S2["isOrderedMobileStart = true"]
  IF1 -- "No" --> S3["isOrderedMobileStart = false"]
  S2 --> RET["return isOrderedMobileStart"]
  S3 --> RET

  style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | eKK1041B001HashListがnullでなくサイズ>0 |  | isOrderedMobileStart = true |
| 2 | 上記以外 |  | isOrderedMobileStart = false |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト／レスポンス用パラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svcKeiNo | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | モバイル課金オーダの一覧取得 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- findMobileStartOrderAtKK1041(直接呼出)

**呼出パス:**

```
findMobileStartOrderAtKK1041 → callEKK1041B001SC
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |

---

---

### findOlsOrderAtKK1041()

#### 呼出元 (Reverse Call Tree) — 2 direct callers

```
findOlsOrderAtKK1041() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
└── htelNoInfoChgeOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected boolean findOlsOrderAtKK1041(IRequestParameterReadWrite param, SessionHandle handle, String taknkikiModelCd, String kikiSeizoNo, String kktkSvcKeiNo)`
> **戻り値:** `boolean`

---

#### 1. 役割

OLS設定のオーダ（消去を除く）が既にオーダ受付済みかどうかを判定する業務メソッドです。主に「htelNoInfoChgeOdrCtrl」や「hakkoSOD」などの制御クラスから呼び出され、対象機器提供サービス契約番号に対するオーダ状況の有無（消去オーダを除外）を確認し、結果をbooleanで返却します。<citation>1</citation>

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findOlsOrderAtKK1041(param, handle, taknkikiModelCd, kikiSeizoNo, kktkSvcKeiNo)"] --> S1["Step1: callEKK1041B001SCでオーダ設定一覧照会（ORDER_SBT_CD_TEL, SVC_ORDER_CD_OLS）を実行"]
  S1 --> IF1{"eKK1041B001HashListがnullでなく、かつサイズ>0"}
  IF1 -- "Yes" --> FOR1["for-each eKK1041B001Hash"]
  FOR1 --> IF2{"kktkSvcKeiNoとreskktkSvcKeiNoが一致"}
  IF2 -- "Yes" --> IF3{"rcntYokyuSbtCd == YOKYU_SBT_CD_DEL(消去)"}
  IF3 -- "Yes" --> S2["isOrderedOls = false; break"]
  IF3 -- "No" --> S3["isOrderedOls = true; break"]
  IF2 -- "No" --> S4["継続（isOrderedOls変更なし）"]
  FOR1 --> S5["次のeKK1041B001Hashへ"]
  IF1 -- "No" --> S6["isOrderedOls = false"]
  S2 --> RET["return isOrderedOls"]
  S3 --> RET
  S4 --> RET
  S6 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
```

**処理ステップ詳細:**

1. callEKK1041B001SCにより、指定条件でオーダ設定一覧を照会。
2. 結果リストがnullまたは空でなければ、リスト内の各オーダ情報をループ。
3. 各レコードで、機器提供サービス契約番号が一致するか判定。
4. 一致した場合は、最新要求種別コード(rcntYokyuSbtCd)が「08（消去）」かどうかで分岐。
   - 消去なら「受付済みではない（false）」。
   - それ以外なら「受付済み（true）」としbreak。
5. 一致しなければ次のレコードへ。
6. 結果リストが空の場合はfalseを返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | eKK1041B001HashListがnullでなくサイズ>0 |  | for-eachループ開始 |
| 2 | kktkSvcKeiNo.equals(reskktkSvcKeiNo) |  | 更にrcntYokyuSbtCd判定 |
| 3 | rcntYokyuSbtCd.equals(YOKYU_SBT_CD_DEL) | "08"（消去） | isOrderedOls = false; break |
| 4 | 上記以外 |  | isOrderedOls = true; break |
| 5 | 一致しない |  | 次のループへ |
| 6 | リストが空 |  | isOrderedOls = false; return |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト／レスポンス用パラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | taknkikiModelCd | String | 機器モデルコード |
| 4 | kikiSeizoNo | String | 機器製造番号 |
| 5 | kktkSvcKeiNo | String | 機器提供サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | オーダ設定情報の一覧取得 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- htelNoInfoChgeOdrCtrl → findOlsOrderAtKK1041
- hakkoSOD → findOlsOrderAtKK1041
- hakkoSOD → htelNoInfoChgeOdrCtrl → findOlsOrderAtKK1041

**呼出パス:**

```
htelNoInfoChgeOdrCtrl → findOlsOrderAtKK1041 → callEKK1041B001SC [オーダ設定一覧照会]
hakkoSOD → findOlsOrderAtKK1041 → callEKK1041B001SC
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |

---

---

### findRadiusHasBeenSentSvc()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected boolean findRadiusHasBeenSentSvc(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no)`
> **戻り値:** `boolean`

---

#### 1. 役割

eo光電話サービス単位でRadiusオーダが既に発行済みかどうかを判定する業務メソッドです。主にRadius認証の実施状況確認に利用されます。<citation>3</citation>

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findRadiusHasBeenSentSvc(param, handle, svc_kei_no)"] --> S1["Step1: callEKK1041B001SCでオーダ設定一覧照会（svc_kei_no指定）"]
  S1 --> IF1{"eKK1041B001HashListがnullでなくサイズ>0"}
  IF1 -- "Yes" --> FOR1["for-each eKK1041B001Hash"]
  FOR1 --> S2["odr_sbt_cd = eKK1041B001Hash.get(ORDER_SBT_CD)"]
  S2 --> S3["svc_order_cd = eKK1041B001Hash.get(SVC_ORDER_CD)"]
  S3 --> IF2{"odr_sbt_cd == ORDER_SBT_CD_TEL && svc_order_cd == SVC_ORDER_CD_RADIUS"}
  IF2 -- "Yes" --> S4["RadiusOnFlg = true; break"]
  IF2 -- "No" --> S5["継続"]
  FOR1 --> RET["return RadiusOnFlg"]
  IF1 -- "No" --> S6["RadiusOnFlg = false"]
  S6 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | eKK1041B001HashListがnullでなくサイズ>0 |  | for-eachループ開始 |
| 2 | odr_sbt_cd == ORDER_SBT_CD_TEL && svc_order_cd == SVC_ORDER_CD_RADIUS |  | RadiusOnFlg = true; break |
| 3 | 上記以外 |  | 継続 |
| 4 | リストが空 |  | RadiusOnFlg = false; return |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト／レスポンス用パラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | Radiusオーダ一覧取得 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- findRadiusHasBeenSentSvc(直接呼出)

**呼出パス:**

```
findRadiusHasBeenSentSvc → callEKK1041B001SC
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |

---

---

### findZ1OrderAtKK1041()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
findZ1OrderAtKK1041() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
├── htelNoAddOdrCtrl()
│   └── hakkoSOD()
└── idpwShkkaSaifuriOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected int findZ1OrderAtKK1041(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no)`
> **戻り値:** `int`

---

#### 1. 役割

サービス契約単位でZ1オーダ（電話サービスオーダ4種: OLS, SIP, Radius認証, 緊急通報）の発行状況を確認し、全種類が受付済みかどうかを判定します。  
主に、Z1オーダ（電話サービス初期設定等）の未発行チェック用途で利用されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findZ1OrderAtKK1041(param, handle, svc_kei_no)"]
    --> S1["Step1: callEKK1041B001SCでオーダ設定一覧取得（svc_kei_no指定）"]
    --> S2["Step2: checkTakinoRTで多機能ルーターフラグ取得"]
    --> IF1{"svc_kei_no1が空か"}
    IF1 -- "はい" --> RET0["0（未発行）を返却"]
    IF1 -- "いいえ" --> S3["Step3: オーダ設定一覧の各レコードを走査"]
      S3 --> FOR1["for: eKK1041B001HashList"]
        FOR1 --> IF2{"オーダ種別/サービスコードが対象か"}
          IF2 -- "対象" --> S4["カウント加算"]
        FOR1 --> S5["Step4: 4種すべてが発行済か判定"]
        S5 --> IF3{"4種類発行済みか"}
          IF3 -- "はい" --> RET1["4（発行済）を返却"]
          IF3 -- "いいえ" --> RET2["カウント（未発行数）を返却"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `isBlank(this.svc_kei_no1)` | 空文字 | 0（未発行） |
| 2 | `takinoFlg != 0 && takinoFlg != 9` | takinoFlg値 | 0（未発行） |
| 3 | `null != eKK1041B001HashList && 0 < eKK1041B001HashList.size()` | true | forループ継続 |
| 4 | `((JKKHakkoSODConstCC.ORDER_SBT_CD_TEL.equals(odr_sbt_cd) && svc_order_cd.matches("2[013]")) || (JKKHakkoSODConstCC.ORDER_SBT_CD_RMG.equals(odr_sbt_cd) && svc_order_cd.matches("250")))` | OLS, SIP, Radius, 緊急通報 | カウント加算 |
| 5 | 4種類発行済みか | 4 | 4（発行済） |
| 6 | 上記以外 | - | カウント（未発行数）を返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧 | サービス契約番号単位でオーダ設定情報を取得 |
| R | ... | ... | ... | ... |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- hakkoSOD

**呼出パス例:**
```
hakkoSOD → findZ1OrderAtKK1041 → callEKK1041B001SC
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |

---

---

### findZ1OrderAtKK1041SvcKeiUcwk()

#### 呼出元 (Reverse Call Tree) — 10 direct callers

```
findZ1OrderAtKK1041SvcKeiUcwk() ← gọi bởi:
├── cnclOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
└── opSetOdrCtrl()
    ├── cnclOdrCtrl()
    ├── hakkoSOD()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── cnclOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── ksiDslFixOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── ksiDslOdrCtrl()
    │       └── hakkoSOD()
    ├── htelNoDslOdrCtrl()
    │   └── hakkoSOD()
    ├── htelNoInfoChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── htelNoKaihkOdrCtrl()
    │   └── hakkoSOD()
    └── kaihkOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected int findZ1OrderAtKK1041SvcKeiUcwk(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no, String trgt_svc_kei_ucwk_no)`
> **戻り値:** `int`

---

#### 1. 役割

サービス契約内訳単位で、Z1オーダ（電話サービスオーダ4種: OLS、SIP、Radius認証、緊急通報）の発行状況を照会し、すべてのオーダが受付済か否かを判定します。  
契約変更・解約・追加などの際に、Z1オーダ未発行状態かどうかを確認するための中心的な判定ロジックです。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findZ1OrderAtKK1041SvcKeiUcwk(param, handle, svc_kei_no, trgt_svc_kei_ucwk_no)"]
    --> S1["Step1: callEKK1041B001SCでオーダ設定一覧を取得（svc_kei_no指定）"]
    --> S2["Step2: checkTakinoRTで多機能ルーターフラグ取得"]
    --> IF1{"svc_kei_no1が空 or svc_kei_ucwk_noが未設定か"}
    IF1 -- "はい" --> RET0["0（未発行）を返却"]
    IF1 -- "いいえ" --> S3["Step3: オーダ設定一覧の各レコードを走査"]
      S3 --> FOR1["for: eKK1041B001HashList"]
        FOR1 --> IF2{"オーダ種別/サービスコードが対象か"}
          IF2 -- "SIP/緊急通報はtrgt_svc_kei_ucwk_noと一致するか" --> S4["カウント加算"]
          IF2 -- "OLS/Radius認証はサービスコード一致でカウント加算" --> S5["カウント加算"]
        FOR1 --> S6["Step4: 4種すべてが発行済か判定"]
        S6 --> IF3{"isSipOrder && isEmgOrder && isOlsOrder && isRadiusOrder"}
          IF3 -- "はい" --> S7["Step5: getZ1HakkoKhでZ1発行可否判定"]
          S7 --> IF4{"z1HakkoKhがKH_KA以外か"}
            IF4 -- "はい" --> RET1["isOrderedZ1（=4）を返却"]
            IF4 -- "いいえ" --> RET2["0を返却"]
          IF3 -- "いいえ" --> S8["Step6: isOrderedZ1のカウントを返却"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
    style IF4 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `isBlank(this.svc_kei_no1)` | 空文字 | 0（未発行） |
| 2 | `this.svc_kei_ucwk_no == null || this.svc_kei_ucwk_no.length == 0` | null/空 | 0（未発行） |
| 3 | `takinoFlg != 0 && takinoFlg != 9` | takinoFlg値 | 0（未発行） |
| 4 | `null != eKK1041B001HashList && 0 < eKK1041B001HashList.size()` | true | forループ継続 |
| 5 | `JKKHakkoSODConstCC.ORDER_SBT_CD_TEL.equals(odr_sbt_cd) && JKKHakkoSODConstCC.SVC_ORDER_CD_SIP.equals(svc_order_cd)` | SIP | trgt_svc_kei_ucwk_no一致でカウント |
| 6 | `JKKHakkoSODConstCC.ORDER_SBT_CD_RMG.equals(odr_sbt_cd) && JKKHakkoSODConstCC.SVC_ORDER_CD_EMG.equals(svc_order_cd)` | 緊急通報 | trgt_svc_kei_ucwk_no一致でカウント |
| 7 | `JKKHakkoSODConstCC.ORDER_SBT_CD_TEL.equals(odr_sbt_cd) && JKKHakkoSODConstCC.SVC_ORDER_CD_OLS.equals(svc_order_cd)` | OLS | サービスコード一致でカウント |
| 8 | `JKKHakkoSODConstCC.ORDER_SBT_CD_TEL.equals(odr_sbt_cd) && JKKHakkoSODConstCC.SVC_ORDER_CD_RADIUS.equals(svc_order_cd)` | Radius認証 | サービスコード一致でカウント |
| 9 | `takinoFlg == 0 && (JKKHakkoSODConstCC.ORDER_SBT_CD_TEL.equals(odr_sbt_cd) && JKKHakkoSODConstCC.SVC_ORDER_CD_MRT.equals(svc_order_cd))` | 多機能ルーター | サービスコード一致でカウント |
|10 | `isSipOrder && isEmgOrder && isOlsOrder && isRadiusOrder` | 4種全て | getZ1HakkoKh呼出 |
|11 | `isOrderedZ1 >= 4` | 4 | getZ1HakkoKh呼出 |
|12 | `!JKKStrConst.CD_DIV_KH_KA.equals(z1HakkoKh)` | KH_KA以外 | 4（発行済） |
|13 | 上記以外 | - | 0（未発行） |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |
| 4 | trgt_svc_kei_ucwk_no | String | 対象サービス契約内訳番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧 | サービス契約番号単位でオーダ設定情報を取得 |
| R | callEKK0251B003SCCAAMsg | EKK0251 | サービス契約回線内訳（現在利用中） | - |
| R | callEKK0341B504SC | EKK0341 | 機器提供サービス契約一覧 | - |
| R | callEKK0191A010SC | EKK0191 | サービス契約内訳＜eo光電話＞一意照会 | - |
| R | callEKK0341B029SC | EKK0341 | 機器提供サービス契約一覧（機器変更番号） | - |
| R | callEKK0341B021SC | EKK0341 | 機器提供サービス契約一覧（予約） | - |
| R | callEKK2811B010SC | EKK2811 | 機器オプションサービス契約一覧 | - |
| R | callEKK1041A010SC | EKK1041 | オーダ設定一意照会 | - |
| R | callEKK0081A010SC | EKK0081 | サービス契約一意照会 | - |
| R | callEKK0341B008SCRireki | EKK0341 | 機器提供サービス契約一覧照会(履歴照会) | - |
| R | callEDK0301B060SC | EDK0301 | 返品機器取消一覧照会 | - |
| R | callEKK0341B001SC | EKK0341 | 機器提供サービス契約一覧（機器製造番号） | - |
| R | callEKK0341A010SC | EKK0341 | 機器提供サービス契約一意照会 | - |
| R | callEKK0251B003SC | EKK0251 | サービス契約回線内訳一覧照会（現在利用中） | - |
| R | callEKK0341B008SC | EKK0341 | 機器提供サービス契約一覧照会 | - |
| R | callEKK0341B008_02SC | EKK0341 | 機器提供サービス契約一覧照会（交換中レコード専用） | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- opSetOdrCtrl
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- htelNoDslOdrCtrl
- kaihkOdrCtrl
- dslOdrCtrl
- hakkoSOD
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス例:**
```
opSetOdrCtrl → findZ1OrderAtKK1041SvcKeiUcwk → callEKK1041B001SC → ...
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |
| callEKK0251B003SCCAAMsg | R | サービス契約回線内訳（現在利用中） |
| callEKK0341B504SC | R | 機器提供サービス契約一覧 |
| ... | ... | ... |

---

---

### findZ1OrderHasBeenSent()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected boolean findZ1OrderHasBeenSent(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no)`
> **戻り値:** `boolean`

---

#### 1. 役割

指定サービス契約番号においてZ1オーダが発行済みかどうかを判定し、結果をbooleanで返却する。findZ1OrderAtKK1041呼び出しで判定し、業務側で同一契約への複数Z1オーダ発行防止ロジック等に利用。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findZ1OrderHasBeenSent(param, handle, svc_kei_no)"] 
    --> S1["findZ1OrderAtKK1041(param, handle, svc_kei_no)実行"]
    --> IF1{"戻り値 >= 4"}
    IF1 -- "Yes" --> RETURN1["true（発行済み）"]
    IF1 -- "No" --> RETURN2["false（未発行）"]
    style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | findZ1OrderAtKK1041 >= 4 | - | true（発行済） |
| 2 | 上記未満 | - | false（未発行） |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 業務データパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| -    | -         | -       | -          | 内部判定のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:** 各種業務分岐判定用途

**呼出パス:**
```
[判定呼出] → findZ1OrderHasBeenSent
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| -         | -    | -         |

---

---

### findZ1OrderHasBeenSentSvcKeiUcwk()

#### 呼出元 (Reverse Call Tree) — 10 direct callers

```
findZ1OrderHasBeenSentSvcKeiUcwk() ← gọi bởi:
├── cnclOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── bmpSipDslOdrCtrl()
│   └── hakkoSOD()
├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── cnclOdrCtrl()
│   │   └── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   │   └── hakkoSOD()
│   └── ksiDslOdrCtrl()
│       └── hakkoSOD()
├── htelNoDslOdrCtrl()
│   └── hakkoSOD()
├── htelNoInfoChgeOdrCtrl()
│   └── hakkoSOD()
├── htelNoKaihkOdrCtrl()
│   └── hakkoSOD()
└── kaihkOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected boolean findZ1OrderHasBeenSentSvcKeiUcwk(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no, String trgt_svc_kei_ucwk_no)`
> **戻り値:** `boolean`

---

#### 1. 役割

指定したサービス契約内訳番号単位でZ1オーダ（特定業務オーダ）が発行済みかどうかを判定し、結果をbooleanで返却します。業務プロセス制御の判定条件（重複発行防止など）に用いられます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findZ1OrderHasBeenSentSvcKeiUcwk(param, handle, svc_kei_no, trgt_svc_kei_ucwk_no)"] 
    --> S1["findZ1OrderAtKK1041SvcKeiUcwk(param, handle, svc_kei_no, trgt_svc_kei_ucwk_no)実行"]
    --> IF1{"戻り値 >= 4"}
    IF1 -- "Yes" --> RETURN1["true（発行済み）"]
    IF1 -- "No" --> RETURN2["false（未発行）"]
    style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | findZ1OrderAtKK1041SvcKeiUcwk >= 4 | - | true（発行済） |
| 2 | 上記未満 | - | false（未発行） |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 業務データパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |
| 4 | trgt_svc_kei_ucwk_no | String | サービス契約内訳番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| -    | -         | -       | -          | 内部判定のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:** bmpSipDslOdrCtrl、htelNoKaihkOdrCtrl、htelNoInfoChgeOdrCtrl、htelNoDslOdrCtrl、kaihkOdrCtrl等

**呼出パス:**
```
[業務メソッド] → findZ1OrderHasBeenSentSvcKeiUcwk
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| -         | -    | -         |

---

---

### findZ5OrderAtKK1041()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected int findZ5OrderAtKK1041(IRequestParameterReadWrite param, SessionHandle handle, String svc_kei_no)`
> **戻り値:** `int`

---

#### 1. 役割

Z5オーダ（CUI/DEVの2種類）のSODが受付済みかどうかを、オーダ設定一覧から判定し、件数を返却する業務メソッドです。<citation>4</citation>

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["findZ5OrderAtKK1041(param, handle, svc_kei_no)"] --> S1["Step1: callEKK1041B001SCで指定サービス契約番号のオーダ設定一覧照会"]
  S1 --> IF1{"eKK1041B001HashListがnullでなくサイズ>0"}
  IF1 -- "Yes" --> FOR1["for-each eKK1041B001Hash"]
  FOR1 --> S2["odr_sbt_cd = eKK1041B001Hash.get(ORDER_SBT_CD)"]
  S2 --> S3["svc_order_cd = eKK1041B001Hash.get(SVC_ORDER_CD)"]
  S3 --> IF2{"odr_sbt_cd==ORDER_SBT_CD_MOBILEかつsvc_order_cd.matches('0[12]')"}
  IF2 -- "Yes" --> S4["isOrderedZ5++"]
  IF2 -- "No" --> S5["継続"]
  FOR1 --> RET["return isOrderedZ5"]
  IF1 -- "No" --> S6["isOrderedZ5 = 0"]
  S6 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | eKK1041B001HashListがnullでなくサイズ>0 |  | for-eachループ開始 |
| 2 | odr_sbt_cd==ORDER_SBT_CD_MOBILEかつsvc_order_cd.matches('0[12]') |  | isOrderedZ5++ |
| 3 | 上記以外 |  | 継続 |
| 4 | リストが空 |  | isOrderedZ5 = 0; return |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト／レスポンス用パラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svc_kei_no | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | Z5オーダ（CUI/DEV）一覧取得 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- findZ5OrderAtKK1041(直接呼出)

**呼出パス:**

```
findZ5OrderAtKK1041 → callEKK1041B001SC
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK1041B001SC | R | オーダ設定一覧 |

---

---

### formatClassVar()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
formatClassVar() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public void formatClassVar()`
> **戻り値:** `void`

---

#### 1. 役割

本クラスの内部変数（クラス変数）の初期化処理を行うメソッドです。  
主に、SOD発行処理（hakkoSOD）開始時などに、前回処理の残存値をリセットし、再利用時の不整合を防ぐ目的で呼び出されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["formatClassVar()"] --> S1["Step1: クラスメンバ変数を初期値に設定"]
  S1 --> S2["Step2: 初期化履歴・識別用コメントによる制御"]
  S2 --> RET["完了（void）"]
```

**処理ステップ詳細:**

1. **Step1**: クラス内で保持している全変数（例: `svc_kei_no1`, `svc_kei_ucwk_no[]`, `taknkiki_model_cd[]` など）を初期値（nullや空配列、0など）にリセット。
2. **Step2**: 保守履歴や識別のためのコメント（ST1-2012-0000319, ANK-0035-00-00等）をもとに、追加・変更された変数も含めて初期化。

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| - | - | - | パラメータなし（インスタンス変数の初期化のみ） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | なし |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD

**呼出パス:**
```
[hakkoSOD] → [formatClassVar]
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### formatInMap()

#### 呼出元 (Reverse Call Tree) — 51 direct callers

```
formatInMap() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── addTokiSOD()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSipDslOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── enumAddOdrCtrl()    [trực tiếp]
├── enumDelOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── hakkouIpv6()    [trực tiếp]
├── htelItntokiOdrCtrl()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── newNet()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForMltiSe()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
├── addSOD()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── add050AddSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── add050DelSod()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   └── telNoChge()
│   ├── addTensoDenwaOp()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   │       ├── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── addTokiSOD()
│   │   ├── bmpDojiMskm()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── pauseRlsChgeOdrCtrl()
│   │   ├── pauseUkOdrCtrl()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── stpUkOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   └── useStpRlsOdrCtrl()
│   ├── bmpDojiMskm()
│   │   ├── hakkoSOD()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   └── bmpSwitchOdrCtrl()
│   │       └── hakkoSOD()
│   ├── bmpSipDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── enumAddOdrCtrl()
│   │   └── hakkoSOD()
│   ├── enumDelOdrCtrl()
│   │   └── hakkoSOD()
│   ├── hakkoCourseChgSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── malwareBlockingDivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opHktgiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   └── ksiDslOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── pauseUkOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   └── kaihkOdrCtrl()
│   ├── setChgePWForDialup()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForMltiSe()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── useStpRlsOdrCtrl()
│   │       └── hakkoSOD()
│   ├── stpUkOdrCtrl()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   └── useStpOdrCtrl()
│   │       └── hakkoSOD()
│   ├── taiikiSeigenOdrCtrl()
│   │   └── hakkoSOD()
│   ├── telNoChge()
│   │   ├── bmpSwitchOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdChgOdrCtrl()
│   │   └── hakkoSOD()
│   ├── vLanIdVaChangeOdrCtrl()
│   │   └── hakkoSOD()
│   └── wribInfoAddOdrCtrl()
│       └── hakkoSOD()
└── addTakinoSOD()
    ├── adchgFixOdrCtrl()
    ├── addIpv6SODAft()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── hakkoSOD()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── kaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── newKeiOdrCtrl()
    ├── opSetOdrCtrl()
    ├── setChgePWForRouterConInfo()
    ├── telNoChge()
    ├── vLanIdChgOdrCtrl()
    ├── vLanIdVaChangeOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── hakkouIpv6()
    │   ├── addIpv6SODAft()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── jdgIpv6EKK0361A010()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── newKeiOdrCtrl()
    │   ├── opSetOdrCtrl()
    │   └── jdgIpv6()
    │       ├── adchgFixOdrCtrl()
    │       ├── addIpv6SODAft()
    │       ├── cnclOdrCtrl()
    │       ├── dslOdrCtrl()
    │       ├── hakkoSOD()
    │       ├── htelNoDslOdrCtrl()
    │       ├── htelNoInfoChgeOdrCtrl()
    │       ├── htelNoKaihkOdrCtrl()
    │       ├── kaihkOdrCtrl()
    │       ├── ksiDslFixOdrCtrl()
    │       ├── ksiDslOdrCtrl()
    │       ├── newKeiOdrCtrl()
    │       ├── opSetOdrCtrl()
    │       └── jdgIpv6EKK0361A010()
    │           ├── adchgFixOdrCtrl()
    │           ├── addIpv6SODAft()
    │           ├── hakkoSOD()
    │           ├── kaihkOdrCtrl()
    │           └── newKeiOdrCtrl()
    ├── jdgOdr163()
    │   ├── adchgFixOdrCtrl()
    │   ├── courseChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── newNet()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── newKeiOdrCtrl()
    └── rtOpChgDivOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public HashMap formatInMap(HashMap inMap)`
> **戻り値:** `HashMap`

---

#### 1. 役割

業務で利用するinMap（入力マップ）の全フィールドを空文字列で初期化する処理。SODバッチ、オーダ発行条件生成など多くの業務でパラメータ初期化基盤として使用。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["formatInMap(inMap)"] 
    --> S1["inMap.put('svc_kei_ucwk_no',        '')"]
    --> S2["inMap.put('kktk_svc_kei_no',        '')"]
    --> S3["inMap.put('op_svc_kei_no',          '')"]
    --> S4["inMap.put('sbop_svc_kei_no',        '')"]
    --> S5["inMap.put('seiopsvc_kei_no',        '')"]
    --> S6["inMap.put('order_sbt_cd',           '')"]
    --> S7["inMap.put('svc_order_cd',           '')"]
    --> S8["inMap.put('yokyu_sbt_cd',           '')"]
    --> S9["inMap.put('odr_hakko_joken_cd',     '')"]
    --> S10["inMap.put('same_trn_no',            '')"]
    --> S11["inMap.put('taknkiki_model_cd',      '')"]
    --> S12["inMap.put('kiki_seizo_no',          '')"]
    --> S13["inMap.put('mlad',                   '')"]
    --> S14["inMap.put('spot_login_sysid',       '')"]
    --> S15["inMap.put('svc_kei_kaisen_ucwk_no', '')"]
    --> S16["inMap.put('send_req_fin_dtm',       '')"]
    --> S17["inMap.put('odr_hakko_joken_no',     '')"]
    --> S18["inMap.put('odr_naiyo_cd',           '')"]
    --> S19["inMap.put('svkeiuw_gadtm',          '')"]
    --> S20["inMap.put('kktsvkei_gadtm',         '')"]
    --> S21["inMap.put('opsvkei_gadtm',          '')"]
    --> S22["inMap.put('sbopsvkei_gadtm',        '')"]
    --> S23["inMap.put('seiopsvkei_gadtm',       '')"]
    --> S24["inMap.put('huka_inf_kei_no',        '')"]
    --> S25["inMap.put('huka_inf_kei_gadtm',     '')"]
    --> S26["inMap.put('chbf_svkei_gadtm',       '')"]
    --> S27["inMap.put('chbf_svkeiuw_gadtm',     '')"]
    --> S28["inMap.put('chbf_kktsvkei_gadtm',    '')"]
    --> S29["inMap.put('chbf_opsvkei_gadtm',     '')"]
    --> S30["inMap.put('chbf_sbopsvkei_gadtm',   '')"]
    --> S31["inMap.put('chbf_seiopsvkei_gadtm',  '')"]
    --> RETURN["inMap返却"]
```

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | inMap | HashMap | 初期化対象入力マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| -    | -         | -       | -          | CRUD操作なし |

---

#### 5. 依存トレース (Dependency Trace)

**起点:** addSOD, addTakinoSOD, オーダ関連Ctrlメソッドなど

**呼出パス:**
```
[各種Ctrl/SODメソッド] → formatInMap
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| -         | -    | -         |

---

---

### getAdChgInfo()

#### 呼出元 (Reverse Call Tree) — 2 direct callers

```
getAdChgInfo() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
└── htelItntokiOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getAdChgInfo(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiUcwkno)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

サービス契約内訳番号をもとに、住所変更明細・一意情報など住所変更情報を取得し、HashMapで返却します。  
SCを2段階呼出し、変更前/後識別番号や住所変更ステータス等をマッピングします。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getAdChgInfo(param, handle, svcKeiUcwkno)"]
    --> S1["Step1: ekk2101B002InMapにSVC_KEI_UCWK_NOセット"]
    --> S2["Step2: callEKK2101B002SCで住所変更明細一覧照会"]
    --> IF1{"ekk2101B002Res != 0"}
    IF1 -- "Yes" --> S_ERR["CCException発生"]
    IF1 -- "No" --> S3["住所変更番号(adchgNo)・変更前(chbfSkbtNo)・変更後(chafSkbtNo)取得"]
    S3 --> IF2{"adchgNo != null"}
    IF2 -- "Yes" --> S4["ekk2091A010InMapにADCHG_NOセット"]
    S4 --> S5["callEKK2091A010SCで住所変更一意照会"]
    S5 --> IF3{"ekk2091A010Res != 0"}
    IF3 -- "Yes" --> S_ERR2["CCException発生"]
    IF3 -- "No" --> S6["adchgStat取得"]
    S6 --> S7["返却値にchbfSkbtNo, chafSkbtNo, adchgStat, adchgNoを格納"]
    S7 --> RET["return adchgInfo"]
    IF2 -- "No" --> RET
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `ekk2101B002Res != 0` | - | CCException発生 |
| 2 | `adchgNo != null` | - | 一意照会パス |
| 3 | `ekk2091A010Res != 0` | - | CCException発生 |
| 4 | return | - | 返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | svcKeiUcwkno | String | サービス契約内訳番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK2101B002SC | EKK2101 | 住所変更明細一覧 | 一覧照会 |
| R | callEKK2091A010SC | EKK2091 | 住所変更 | 一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- htelItntokiOdrCtrl, hakkoSOD等からの呼出

**呼出パス:**

```
htelItntokiOdrCtrl → getAdChgInfo
hakkoSOD → getAdChgInfo
→ callEKK2101B002SC [READ:住所変更明細一覧]
→ callEKK2091A010SC [READ:住所変更]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-------------|------|-------------|
| callEKK2101B002SC | R | 住所変更明細一覧 |
| callEKK2091A010SC | R | 住所変更 |

---### getDammyPplanCd()

---

#### 1. 役割

本メソッドは、「ネット光コンセント方式」および「既設賃貸マンション（光化マンション）」の場合に、棟内速度コードからダミーの料金プランコードを取得する業務ロジックを提供します。  
上位業務（例：malwareBlockingDivOdrCtrl、koteiIpAd8DivOdrCtrl、hakkoSOD等）から呼び出され、入力情報およびSC照会結果に基づき、条件判定の上でダミー料金プランコードを返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getDammyPplanCd(param, handle, eKK0891A010SCHash)"] --> S1["Step1: 提供方式コード, 提供方式パターンコード, 棟内速度コードを取得"]
  S1 --> S2["Step2: 回線使用契約番号を取得"]
  S2 --> IF1{"条件: kaisen_use_kei_no が null/空でない"}
  IF1 -- "Yes" --> S3["Step3: inHashMansへ回線使用契約番号をput"]
  S3 --> S4["Step4: callEKK0881A010_SCで回線使用契約一意照会"]
  S4 --> S5["Step5: 光配線1Gのみフラグを取得"]
  S5 --> S6["Step6: 提供方式CD/パターンCD/棟内速度CDに値があるか判定"]
  IF1 -- "No" --> S6
  S6 --> IF2{"条件: 提供方式CD='008'かつパターンCD='51'かつ棟内速度CD=5G/10G"}
    IF2 -- "5G" --> S7["Step7: 5G用業務パラメータID設定しcallEZM0321A010_SC"]
    IF2 -- "10G" --> S8["Step8: 10G用業務パラメータID設定しcallEZM0321A010_SC"]
    IF2 -- "No" --> IF3{"条件: 光配線1Gのみフラグ=1 かつ提供方式CD='008' かつパターンCD='50' かつ棟内速度CD=5G/10G"}
      IF3 -- "5G" --> S9["Step9: 5G用業務パラメータID設定しcallEZM0321A010_SC"]
      IF3 -- "10G" --> S10["Step10: 10G用業務パラメータID設定しcallEZM0321A010_SC"]
      IF3 -- "No" --> END
  S7 --> S11["Step11: callEZM0321A010_SC結果をダミー料金プランコードに設定"]
  S8 --> S11
  S9 --> S12["Step12: callEZM0321A010_SC結果をダミー料金プランコードに設定"]
  S10 --> S12
  S11 --> RET["return ダミー料金プランコード"]
  S12 --> RET
  END["該当なし: return null"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
```

**処理ステップ詳細:**

1. `eKK0891A010SCHash.get(EKK0891B504CBSMsg1List.TK_HOSHIKI_CD)` で提供方式コード取得
2. `eKK0891A010SCHash.get(EKK0891B504CBSMsg1List.TK_HOSHIKI_PATTERN_CD)` で提供方式パターンコード取得
3. `eKK0891A010SCHash.get(EKK0891B504CBSMsg1List.TONAI_SPEED_CD)` で棟内速度コード取得
4. `eKK0891A010SCHash.get(EKK0881A010CBSMsg1List.KAISEN_USE_KEI_NO)` で回線使用契約番号取得
5. 回線使用契約番号がある場合、`inHashMans.put(JKKHakkoSODConstCC.KEY_KAISEN_USE_KEI_NO, kaisen_use_kei_no)`
6. `callEKK0881A010_SC`で回線使用契約一意照会を実施し、`光配線1Gのみフラグ`取得
7. 提供方式コード・パターンコード・棟内速度コードの値がある場合、下記判定を行う

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `kaisen_use_kei_no != null && !"".equals(kaisen_use_kei_no)` | - | 回線使用契約一意照会実行へ |
| 2 | `tk_hoshiki_cd != null && !"".equals(tk_hoshiki_cd) && tk_hoshiki_pattern_cd != null && !"".equals(tk_hoshiki_pattern_cd) && tonai_speed_cd != null && !"".equals(tonai_speed_cd)` | - | 判定分岐へ |
| 3 | `JKKHakkoSODConstCC.CD00590_OPTICAL.equals(tk_hoshiki_cd) && JKKHakkoSODConstCC.TK_HOSHIKI_PATTERN_CD_51.equals(tk_hoshiki_pattern_cd)` | "008" (光配線), "51" (光コンセント) | 棟内速度5G/10G判定へ |
| 4 | `JKKHakkoSODConstCC.CD01214_008.equals(tonai_speed_cd)` | "008" (5G) | 5G用業務パラメータID設定・SC呼出 |
| 5 | `JKKHakkoSODConstCC.CD01214_009.equals(tonai_speed_cd)` | "009" (10G) | 10G用業務パラメータID設定・SC呼出 |
| 6 | `hhs_1gonly_flg != null && !"".equals(hhs_1gonly_flg)` | - | 光配線1Gのみ判定へ |
| 7 | `JKKHakkoSODConstCC.CD00590_OPTICAL.equals(tk_hoshiki_cd) && JKKHakkoSODConstCC.TK_HOSHIKI_PATTERN_CD_50.equals(tk_hoshiki_pattern_cd)` | "008" (光配線), "50" (ONU) | 棟内速度5G/10G判定へ |
| 8 | `JKKHakkoSODConstCC.CD01214_008.equals(tonai_speed_cd)` | "008" (5G) | 5G用業務パラメータID設定・SC呼出 |
| 9 | `JKKHakkoSODConstCC.CD01214_009.equals(tonai_speed_cd)` | "009" (10G) | 10G用業務パラメータID設定・SC呼出 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 業務リクエスト・レスポンスパラメータ |
| 2 | handle | SessionHandle | セッション管理ハンドル |
| 3 | eKK0891A010SCHash | HashMap<String, Object> | 提供方式契約情報ハッシュ（SC照会結果格納） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0881A010_SC | EKK0881 | 回線使用契約 | 回線使用契約一意照会（回線使用契約番号で照会） |
| R | callEZM0321A010_SC | EZM0321 | 業務パラメータ | 業務パラメータ一意照会検索 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- malwareBlockingDivOdrCtrl
- koteiIpAd8DivOdrCtrl
- hakkoSOD

**呼出パス:**
```
malwareBlockingDivOdrCtrl → getDammyPplanCd
koteiIpAd8DivOdrCtrl → getDammyPplanCd
hakkoSOD → getDammyPplanCd
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0881A010_SC | R | 回線使用契約 |
| callEZM0321A010_SC | R | 業務パラメータ |

---

---

### getCourseChgSvcKeiUcwk()

#### 呼出元 (Reverse Call Tree) — 23 direct callers

```
getCourseChgSvcKeiUcwk() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── getOldVrsbIdgSvcDtlCd()
│   ├── adchgFixOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opHktgiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   │   ├── hakkoSOD()
│   │   │   ├── cnclOdrCtrl()
│   │   │   │   └── hakkoSOD()
│   │   │   ├── ksiDslFixOdrCtrl()
│   │   │   │   └── hakkoSOD()
│   │   │   └── ksiDslOdrCtrl()
│   │   │       └── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── htelNoKaihkOdrCtrl()
│   │       └── hakkoSOD()
│   ├── pauseRlsChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── pauseUkOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   └── kaihkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── useStpRlsOdrCtrl()
│   │       └── hakkoSOD()
│   └── taiikiSeigenOdrCtrl()
│       └── hakkoSOD()
├── hakkoCourseChgSOD()
│   ├── adchgFixOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   └── hakkoSOD()
├── koteiIpAd8DivOdrCtrl()
│   └── hakkoSOD()
└── malwareBlockingDivOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected void getCourseChgSvcKeiUcwk(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, CAANMsg msgEKK0161B004Old, CAANMsg msgEKK0161B004New)`
> **戻り値:** `void`

---

#### 1. 役割

コース変更中のサービス契約内訳情報（変更前/変更後）を取得し、該当メッセージオブジェクトにセットする。  
コース変更の前後判定・対象内訳の選定を行い、業務ロジック上の分岐に活用する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getCourseChgSvcKeiUcwk(handle, param, svcKeiNo, msgEKK0161B004Old, msgEKK0161B004New)"]
    --> S1["Step1: inHashUcwkにサービス契約番号(SVC_KEI_NO)セット"]
    --> S2["Step2: callEKK0161B004SCでサービス契約内訳一覧照会"]
    --> IF1{"statusCode != 0"}
    IF1 -- "Yes" --> S_ERR["CCException投げて終了"]
    IF1 -- "No" --> S3["Step3: 有効なサービス契約内訳フィルタ（ステータス判定）"]
    S3 --> IF2{"msgListEKK0161B004Valid.size() == 1"}
    IF2 -- "Yes" --> S4["コース変更前としてmsgEKK0161B004Oldにセット"]
    IF2 -- "No" --> IF3{"msgListEKK0161B004Valid.size() > 1"}
    IF3 -- "Yes" --> IF4{"shosaYmd1 <= shosaYmd2"}
    IF4 -- "Yes" --> S5["1件目を変更前, 2件目を変更後としてセット"]
    IF4 -- "No"  --> S6["2件目を変更前, 1件目を変更後としてセット"]
    IF3 -- "No" --> S_ERR2["対象なし"]
    S4 & S5 & S6 & S_ERR2 --> RET["return"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
    style IF4 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `statusCode != 0` | - | CCException投げる |
| 2 | `msgListEKK0161B004Valid.size() == 1` | - | 変更前としてセット |
| 3 | `msgListEKK0161B004Valid.size() > 1` | - | 日付比較分岐 |
| 4 | `shosaYmd1 <= shosaYmd2` | - | 1件目:前, 2件目:後 |
| 5 | `shosaYmd1 > shosaYmd2` | - | 2件目:前, 1件目:後 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ（業務データコンテナ）|
| 3 | svcKeiNo | String | サービス契約番号 |
| 4 | msgEKK0161B004Old | CAANMsg | 変更前契約内訳セット先 |
| 5 | msgEKK0161B004New | CAANMsg | 変更後契約内訳セット先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0161B004SC | EKK0161 | サービス契約内訳 | サービス契約内訳一覧照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSODやgetOldVrsbIdgSvcDtlCd、malwareBlockingDivOdrCtrl等からの呼出

**呼出パス:**

```
hakkoSOD → getCourseChgSvcKeiUcwk
getOldVrsbIdgSvcDtlCd → getCourseChgSvcKeiUcwk
malwareBlockingDivOdrCtrl → getCourseChgSvcKeiUcwk
→ callEKK0161B004SC [READ:サービス契約内訳]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-------------|------|-------------|
| callEKK0161B004SC | R | サービス契約内訳 |

---

---

---

### getDammyPplanCd()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
getDammyPplanCd() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()
│   └── hakkoSOD()
└── malwareBlockingDivOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getDammyPplanCd(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> eKK0891A010SCHash)`
> **戻り値:** `String`

---

#### 1. 役割

ネット光コンセント方式や既設賃貸マンション（光化マンション）の場合に、棟内速度コードや関連フラグからダミーの料金プランコードを判定・取得するメソッドです。  
業務としては、提供方式判定・各種SC照会実行・条件分岐によるダミー値の生成・業務パラメータ一意照会の組み合わせからダミー料金プランコードを導出します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getDammyPplanCd(param, handle, eKK0891A010SCHash)"] --> S1["Step1: 提供方式コード・パターンコード・棟内速度コードを取得"]
  S1 --> S2["Step2: 回線使用契約番号を取得"]
  S2 --> IF1{"kaisen_use_kei_no != null && kaisen_use_kei_no ≠ 空"}
  IF1 -- "Yes" --> S3["Step3: callEKK0881A010_SCで回線使用契約一意照会"]
  S3 --> S4["Step4: 光配線1Gのみフラグを取得"]
  S4 --> IF2{"提供方式コード/パターン/棟内速度の値がセットされているか"}
  IF2 -- "Yes" --> IF3{"提供方式コード=008:光配線 && パターンコード=51:光コンセント"}
  IF3 -- "Yes" --> IF4{"棟内速度コード=008(5G) or 009(10G)"}
  IF4 -- "5G" --> S5["Step5: 5G用業務パラメータIDでcallEZM0321A010_SC"]
  IF4 -- "10G" --> S6["Step6: 10G用業務パラメータIDでcallEZM0321A010_SC"]
  IF3 -- "No" --> IF5{"光配線1Gのみフラグ=1:対象 && 提供方式コード=008:光配線 && パターンコード=50:ONU"}
  IF5 -- "Yes" --> IF6{"棟内速度コード=008(5G) or 009(10G)"}
  IF6 -- "5G" --> S7["Step7: 5G用業務パラメータIDでcallEZM0321A010_SC"]
  IF6 -- "10G" --> S8["Step8: 10G用業務パラメータIDでcallEZM0321A010_SC"]
  IF4 & IF6 --> S9["Step9: 検索結果をretPplancdに格納"]
  S9 --> RET["return retPplancd"]
  IF1 -- "No" & IF2 -- "No" & IF5 -- "No" --> RET
  %% 注釈: 全分岐を網羅し、各呼出し(特にcallEKK0881A010_SC, callEZM0321A010_SC)を表現
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `kaisen_use_kei_no != null && kaisen_use_kei_no ≠ 空` | - | 回線使用契約一意照会(SC)実行 |
| 2 | `tk_hoshiki_cd != null && tk_hoshiki_cd ≠ 空 && tk_hoshiki_pattern_cd != null && tk_hoshiki_pattern_cd ≠ 空 && tonai_speed_cd != null && tonai_speed_cd ≠ 空` | - | 提供方式種別分岐 |
| 3 | `JKKHakkoSODConstCC.CD00590_OPTICAL.equals(tk_hoshiki_cd) && JKKHakkoSODConstCC.TK_HOSHIKI_PATTERN_CD_51.equals(tk_hoshiki_pattern_cd)` | 008/51 | 光コンセントパターン分岐 |
| 4 | `JKKHakkoSODConstCC.CD01214_008.equals(tonai_speed_cd)` | 008 (5G) | 5G用処理 |
| 5 | `JKKHakkoSODConstCC.CD01214_009.equals(tonai_speed_cd)` | 009 (10G) | 10G用処理 |
| 6 | `hhs_1gonly_flg != null && hhs_1gonly_flg ≠ 空` | - | 光配線1Gのみフラグ分岐 |
| 7 | `JKKHakkoSODConstCC.CD00590_OPTICAL.equals(tk_hoshiki_cd) && (JKKHakkoSODConstCC.TK_HOSHIKI_PATTERN_CD_50.equals(tk_hoshiki_pattern_cd))` | 008/50 | ONUパターン分岐 |
| 8 | returnまで | - | retPplancd返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ（業務データコンテナ）|
| 2 | handle | SessionHandle             | セッション管理ハンドル |
| 3 | eKK0891A010SCHash | HashMap<String, Object> | 提供方式契約・棟内速度等のSC情報 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-------------|---------|------------|---------|
| R    | callEKK0881A010_SC | EKK0881 | 回線使用契約 | 回線使用契約一意照会 |
| R    | callEZM0321A010_SC | EZM0321 | 業務パラメータ | 業務パラメータ一意照会検索 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSODまたはmalwareBlockingDivOdrCtrl等のコントロール系クラスから呼出

**呼出パス:**

```
hakkoSOD → getDammyPplanCd
malwareBlockingDivOdrCtrl → getDammyPplanCd
→ callEKK0881A010_SC → [READ:回線使用契約]
→ callEZM0321A010_SC → [READ:業務パラメータ]
```

**終端:**

| SC メソッド              | CRUD | エンティティ      |
|-------------------------|------|-------------------|
| callEKK0881A010_SC      | R    | 回線使用契約      |
| callEZM0321A010_SC      | R    | 業務パラメータ    |

---

---

---

### getDummySvcKeiNo()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
getDummySvcKeiNo() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected ArrayList<String> getDummySvcKeiNo(SessionHandle handle, IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<String>`

---

#### 1. 役割

業務パラメータ一意照会検索（EZM0321）を用いて、チェック対象外となるダミーサービス契約番号（個人・法人）を取得するメソッドです。  
SOD判定や内訳オーダ発行処理等でダミー判定フラグに活用されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getDummySvcKeiNo(handle, param)"] --> S1["Step1: inHashWorkParamKojin.put(KEY_WORK_PARAM_ID, 'SC_ENUMSOD_DMSKNO_KN')"]
  S1 --> S2["Step2: callEZM0321A010_SC(param, handle, inHashWorkParamKojin, FUNC_CODE_1)"]
  S2 --> S3["Step3: 検索結果をdummySvcKeiNoKojinに格納"]
  S3 --> S4["Step4: inHashWorkParamHojin.put(KEY_WORK_PARAM_ID, 'SC_ENUMSOD_DMSKNO_HN')"]
  S4 --> S5["Step5: callEZM0321A010_SC(param, handle, inHashWorkParamHojin, FUNC_CODE_1)"]
  S5 --> S6["Step6: 検索結果をdummySvcKeiNoHojinに格納"]
  S6 --> S7["returnList.add(dummySvcKeiNoKojin)"]
  S7 --> S8["returnList.add(dummySvcKeiNoHojin)"]
  S8 --> RET["return returnList"]
```

**処理ステップ詳細:**

1. 個人用業務パラメータIDでinHashWorkParamKojinを作成。
2. SC_ENUMSOD_DMSKNO_KNでEZM0321A010_SC実行し、個人用ダミー番号取得。
3. 法人用業務パラメータIDでinHashWorkParamHojinを作成。
4. SC_ENUMSOD_DMSKNO_HNでEZM0321A010_SC実行し、法人用ダミー番号取得。
5. 個人・法人ダミー番号をreturnListに格納し返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|----|-------|---------|--------|
| 1 | なし | - | 直列処理 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト・レスポンスパラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEZM0321A010_SC | EZM0321 | 業務パラメータ | 一意照会検索（個人・法人） |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD

**呼出パス:**  
[hakkoSOD] → getDummySvcKeiNo → callEZM0321A010_SC

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEZM0321A010_SC | R | 業務パラメータ |

---

---

### getEKK0251B001SC()

#### 呼出元 (Reverse Call Tree) — 14 direct callers

```
getEKK0251B001SC() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── cnclOdrCtrl()
│   │   └── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   │   └── hakkoSOD()
│   └── ksiDslOdrCtrl()
│       └── hakkoSOD()
├── htelNoDslOdrCtrl()
│   └── hakkoSOD()
├── htelNoInfoChgeOdrCtrl()
│   └── hakkoSOD()
├── htelNoKaihkOdrCtrl()
│   └── hakkoSOD()
├── kaihkOdrCtrl()
│   └── hakkoSOD()
├── opSetOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   └── ksiDslOdrCtrl()
├── telNoChge()
│   ├── hakkoSOD()
│   └── bmpSwitchOdrCtrl()
│       └── hakkoSOD()
├── vLanIdChgOdrCtrl()
│   └── hakkoSOD()
└── vLanIdVaChangeOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getEKK0251B001SC(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiNo, String funcCode)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

サービス契約回線内訳一覧照会（サービス契約番号）を行い、対象サービス契約番号に紐づく回線内訳情報を取得する。主にSOD制御ロジックや各種オーダ制御の前提データの取得として、複数の業務ロジックから呼び出される。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getEKK0251B001SC(param, handle, svcKeiNo, funcCode)"] --> S1["Step1: inHashKaisenUcwkにサービス契約番号（svcKeiNo）をセット"]
  S1 --> S2["Step2: callEKK0251B001SCでEKK0251B001_サービス契約回線内訳一覧照会を実行"]
  S2 --> IF1{"statusCodeが0か？"}
  IF1 -- "No (異常)" --> ERR1["CCException発生<br>（SCCallExceptionをラップしてthrow）"]
  IF1 -- "Yes (正常)" --> S3["Step3: 結果HashMap（EKK0251B001）を返却"]
  style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. `inHashKaisenUcwk` マップを作成し、`JKKHakkoSODConstCC.SVC_KEI_NO` キーに `svcKeiNo` をセットする。
2. `callEKK0251B001SC` を呼び出し、`param`, `handle`, `inHashKaisenUcwk`, `resultKaisenUcwk`, `funcCode` を引数としてサービスインターフェイスを実行する。
3. 実行後、`statusCode` を判定し、0以外の場合は `CCException`（内部に `SCCallException`）をthrowする。
4. 正常終了時は、`resultKaisenUcwk` から `JKKHakkoSODConstCC.TEMPLATE_ID_EKK0251B001` をキーに結果を取得し、返却する。

**制御フロー分岐（全条件列挙）:**

| # | 条件                     | 定数値 | 分岐先                |
|---|--------------------------|--------|----------------------|
| 1 | `statusCode != 0`        | -      | 例外（CCException）   |
| 2 | `statusCode == 0`        | -      | 結果を返却           |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                       | 業務説明                              |
|----|--------------|--------------------------|--------------------------------------|
| 1  | param        | IRequestParameterReadWrite | 業務データコンテナ                    |
| 2  | handle       | SessionHandle              | セッションハンドル                    |
| 3  | svcKeiNo     | String                     | サービス契約番号                      |
| 4  | funcCode     | String                     | 機能種別コード                        |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド             | SCコード | エンティティ               | 操作説明                                   |
|------|------------------------|----------|----------------------------|--------------------------------------------|
| R    | callEKK0251B001SC      | EKK0251  | サービス契約回線内訳一覧   | サービス契約番号で回線内訳情報を照会する   |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**

- vLanIdVaChangeOdrCtrl
- vLanIdChgOdrCtrl
- telNoChge
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- htelNoDslOdrCtrl
- opSetOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- hakkoSOD
- bmpSwitchOdrCtrl
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス概要:**

```
[上記各種業務制御クラス.メソッド] → getEKK0251B001SC → callEKK0251B001SC → [EKK0251B001（回線内訳一覧照会）]
```

**終端 (End Points):**

| SC メソッド        | CRUD | エンティティ             |
|-------------------|------|--------------------------|
| callEKK0251B001SC | R    | サービス契約回線内訳一覧 |

---

---

### getEKK0251B003SC()

#### 呼出元 (Reverse Call Tree) — 9 direct callers

```
getEKK0251B003SC() ← gọi bởi:
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
└── getZ1HakkoKh()
    ├── cnclOdrCtrl()
    ├── dslOdrCtrl()
    ├── hakkoSOD()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── kaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── opSetOdrCtrl()
    └── findZ1OrderAtKK1041SvcKeiUcwk()
        ├── cnclOdrCtrl()
        ├── dslOdrCtrl()
        ├── hakkoSOD()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── kaihkOdrCtrl()
        ├── ksiDslFixOdrCtrl()
        ├── ksiDslOdrCtrl()
        └── opSetOdrCtrl()
            ├── cnclOdrCtrl()
            ├── hakkoSOD()
            ├── ksiDslFixOdrCtrl()
            ├── ksiDslOdrCtrl()
            ├── dslOdrCtrl()
            │   ├── cnclOdrCtrl()
            │   ├── hakkoSOD()
            │   ├── ksiDslFixOdrCtrl()
            │   └── ksiDslOdrCtrl()
            ├── htelNoDslOdrCtrl()
            │   └── hakkoSOD()
            ├── htelNoInfoChgeOdrCtrl()
            │   └── hakkoSOD()
            ├── htelNoKaihkOdrCtrl()
            │   └── hakkoSOD()
            └── kaihkOdrCtrl()
                └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getEKK0251B003SC(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiNo, String funcCode)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

サービス契約回線内訳一覧照会（現在利用中）の情報を取得する。主にZ1業務やオーダ判定など、現在の回線状態を必要とする業務フローで利用される。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getEKK0251B003SC(param, handle, svcKeiNo, funcCode)"] --> S1["Step1: inHashKaisenUcwkにサービス契約番号（svcKeiNo）をセット"]
  S1 --> S2["Step2: callEKK0251B003SCでEKK0251B003_サービス契約回線内訳一覧照会（現在利用中）を実行"]
  S2 --> IF1{"statusCodeが0か？"}
  IF1 -- "No (異常)" --> ERR1["CCException発生<br>（SCCallExceptionをラップしてthrow）"]
  IF1 -- "Yes (正常)" --> S3["Step3: 結果HashMap（EKK0251B003）を返却"]
  style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. `inHashKaisenUcwk` マップを作成し、`JKKHakkoSODConstCC.SVC_KEI_NO` キーに `svcKeiNo` をセットする。
2. `callEKK0251B003SC` を呼び出し、`param`, `handle`, `inHashKaisenUcwk`, `resultKaisenUcwk`, `funcCode` を引数としてサービスインターフェイスを実行する。
3. 実行後、`statusCode` を判定し、0以外の場合は `CCException`（内部に `SCCallException`）をthrowする。
4. 正常終了時は、`resultKaisenUcwk` から `JKKHakkoSODConstCC.TEMPLATE_ID_EKK0251B003` をキーに結果を取得し、返却する。

**制御フロー分岐（全条件列挙）:**

| # | 条件                     | 定数値 | 分岐先                |
|---|--------------------------|--------|----------------------|
| 1 | `statusCode != 0`        | -      | 例外（CCException）   |
| 2 | `statusCode == 0`        | -      | 結果を返却           |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                       | 業務説明                              |
|----|--------------|--------------------------|--------------------------------------|
| 1  | param        | IRequestParameterReadWrite | 業務データコンテナ                    |
| 2  | handle       | SessionHandle              | セッションハンドル                    |
| 3  | svcKeiNo     | String                     | サービス契約番号                      |
| 4  | funcCode     | String                     | 機能種別コード                        |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド             | SCコード | エンティティ               | 操作説明                                   |
|------|------------------------|----------|----------------------------|--------------------------------------------|
| R    | callEKK0251B003SC      | EKK0251  | サービス契約回線内訳一覧   | サービス契約番号で回線内訳情報（現在利用中）を照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**

- getZ1HakkoKh
- findZ1OrderAtKK1041SvcKeiUcwk
- opSetOdrCtrl
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- htelNoDslOdrCtrl
- kaihkOdrCtrl
- dslOdrCtrl
- hakkoSOD
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス概要:**

```
[上記各種業務制御クラス.メソッド] → getEKK0251B003SC → callEKK0251B003SC → [EKK0251B003（回線内訳一覧照会・利用中）]
```

**終端 (End Points):**

| SC メソッド        | CRUD | エンティティ             |
|-------------------|------|--------------------------|
| callEKK0251B003SC | R    | サービス契約回線内訳一覧 |

---

---

### getEKK0361A010Info()

#### 呼出元 (Reverse Call Tree) — 8 direct callers

```
getEKK0361A010Info() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── jdgIpv6EKK0361A010()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── newKeiOdrCtrl()
│   ├── addIpv6SODAft()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   │       ├── hakkoSOD()
│   │       └── adchgFixOdrCtrl()
│   │           └── hakkoSOD()
│   └── kaihkOdrCtrl()
│       └── hakkoSOD()
└── setChgePWForIPv6()
    ├── hakkoSOD()
    └── idpwShkkaSaifuriOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getEKK0361A010Info(SessionHandle handle, IRequestParameterReadWrite param, String svc_kei_no_param, String op_gene_add_dtm_param)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

オプションサービス契約＜ISP＞一意照会（EKK0361A010）を実行し、対象オプションサービス契約番号・世代登録日時の情報を取得する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getEKK0361A010Info(handle, param, svc_kei_no_param, op_gene_add_dtm_param)"]
    --> S1["Step1: inHashNetにOP_SVC_KEI_NO, GENE_ADD_DTMをセット"]
    --> S2["Step2: callEKK0361A010SCでISP一意照会実行"]
    --> IF1{"statusCode==0か"}
    IF1 -- "No" --> ERR1["CCExceptionスロー"]
    IF1 -- "Yes" --> S3["Step3: EKK0361A010結果Hashを返却"]
    style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. inHashNetに `JKKHakkoSODConstCC.OP_SVC_KEI_NO`、`JKKHakkoSODConstCC.GENE_ADD_DTM` をセット
2. callEKK0361A010SCで一意照会を実行
3. statusCodeが0でなければ例外（CCException）
4. 正常時は `JKKHakkoSODConstCC.TEMPLATE_ID_EKK0361A010` をキーにHashMapを返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先               |
|---|------|--------|----------------------|
| 1 | `statusCode != 0` | - | 例外（CCException）|
| 2 | `statusCode == 0` | - | 結果返却           |

---

#### 3. パラメータ分析

| No | パラメータ名         | 型                        | 業務説明                           |
|----|----------------------|---------------------------|------------------------------------|
| 1  | handle               | SessionHandle             | セッションハンドル                 |
| 2  | param                | IRequestParameterReadWrite| 業務データコンテナ                 |
| 3  | svc_kei_no_param     | String                    | オプションサービス契約番号         |
| 4  | op_gene_add_dtm_param| String                    | 世代登録年月日時分秒               |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド            | SCコード | エンティティ                 | 操作説明                                |
|------|-----------------------|----------|------------------------------|-----------------------------------------|
| R    | callEKK0361A010SC     | EKK0361  | オプションサービス契約＜ISP＞ | ISP一意照会                             |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- jdgIpv6EKK0361A010
- setChgePWForIPv6
- addIpv6SODAft
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- newKeiOdrCtrl
- hakkoSOD
- adchgFixOdrCtrl

**呼出パス:**
```
[業務制御クラス.メソッド] → getEKK0361A010Info → callEKK0361A010SC
```

**終端 (End Points):**

| SC メソッド         | CRUD | エンティティ                 |
|--------------------|------|------------------------------|
| callEKK0361A010SC  | R    | オプションサービス契約＜ISP＞ |

---

---

### getEKK1041B001result()

#### 呼出元 (Reverse Call Tree) — 9 direct callers

```
getEKK1041B001result() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── isItenNoGuideTokiChu()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── cnclOdrCtrl()
│   │   └── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   │   └── hakkoSOD()
│   └── ksiDslOdrCtrl()
│       └── hakkoSOD()
├── htelNoDslOdrCtrl()
│   └── hakkoSOD()
└── telNoChge()
    ├── hakkoSOD()
    └── bmpSwitchOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected ArrayList<HashMap<String, Object>> getEKK1041B001result(IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<HashMap<String, Object>>`

---

#### 1. 役割

EKK1041オーダ設定一覧照会の照会結果リストを取得するメソッドです。  
業務的には、サービスオーダ連携の判定や詳細情報取得処理のために、ワークエリアに保持されているEKK1041照会結果リストを呼び出し元へ返却する役割を担います。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getEKK1041B001result(param)"] --> S1["Step1: param.getMappingWorkArea() でワークエリアMapを取得"]
  S1 --> IF1{"workAreaMap == null"}
  IF1 -- "Yes" --> S2["workAreaMap = new HashMap<Object, Object>(); param.setMappingWorkArea(workAreaMap)"]
  IF1 -- "No" --> S3["Step2: workAreaMap.get('WORK') でワークMap取得"]
  S2 --> S3
  S3 --> IF2{"workMap == null"}
  IF2 -- "Yes" --> S4["workMap = new HashMap<String, Object>(); workMap.put(getClass().getName() + '_' + EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST, workMap)"]
  IF2 -- "No" --> S5["Step3: workMap.get(getClass().getName() + '_' + EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST) で結果リスト取得"]
  S4 --> S5
  S5 --> RET["return retList"]

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**処理ステップ詳細:**

1. `param.getMappingWorkArea()` でワークエリアマップを取得（なければ新規作成・セット）。
2. `workAreaMap.get("WORK")` でワークマップを取得（なければ新規作成・セット）。
3. `workMap.get(getClass().getName() + "_" + EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST)` でEKK1041照会結果リストを取得。
4. 取得したリスト（または空リスト）を返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | workAreaMap == null | - | 新規作成しセット |
| 2 | workMap == null | - | 新規作成しセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | リクエスト・レスポンスパラメータ (業務データの受け渡し用) |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | ワークエリアからのデータ取得のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- isItenNoGuideTokiChu
- telNoChge
- htelNoDslOdrCtrl
- dslOdrCtrl
- bmpSwitchOdrCtrl
- hakkoSOD
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス:**  
[呼出元] → getEKK1041B001result → [ワークエリアデータ取得]

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |


---

---

### getFmtcelJgsSkbtStr()

#### 呼出元 (Reverse Call Tree) — 44 direct callers

```
getFmtcelJgsSkbtStr() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── addTokiSOD()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSipDslOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── enumAddOdrCtrl()    [trực tiếp]
├── enumDelOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelItntokiOdrCtrl()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForMltiSe()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── addSOD()
    ├── adchgFixOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── hakkoSOD()
    ├── keiTtdkChuHtelnoChgeOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── newKeiOdrCtrl()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── add050AddSod()
    │   ├── bmpSwitchOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── opSetOdrCtrl()
    │   └── telNoChge()
    ├── add050DelSod()
    │   ├── bmpSwitchOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── opSetOdrCtrl()
    │   └── telNoChge()
    ├── addTensoDenwaOp()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── newKeiOdrCtrl()
    │       ├── adchgFixOdrCtrl()
    │       └── hakkoSOD()
    ├── addTokiSOD()
    │   ├── bmpDojiMskm()
    │   ├── bmpSwitchOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── pauseRlsChgeOdrCtrl()
    │   ├── pauseUkOdrCtrl()
    │   ├── stpRlsOdrCtrl()
    │   ├── stpUkOdrCtrl()
    │   ├── useStpOdrCtrl()
    │   └── useStpRlsOdrCtrl()
    ├── bmpDojiMskm()
    │   ├── hakkoSOD()
    │   ├── stpRlsOdrCtrl()
    │   ├── useStpRlsOdrCtrl()
    │   └── bmpSwitchOdrCtrl()
    │       └── hakkoSOD()
    ├── bmpSipDslOdrCtrl()
    │   └── hakkoSOD()
    ├── courseChgeOdrCtrl()
    │   ├── hakkoSOD()
    │   └── adchgFixOdrCtrl()
    │       └── hakkoSOD()
    ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── cnclOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── ksiDslFixOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── ksiDslOdrCtrl()
    │       └── hakkoSOD()
    ├── enumAddOdrCtrl()
    │   └── hakkoSOD()
    ├── enumDelOdrCtrl()
    │   └── hakkoSOD()
    ├── hakkoCourseChgSOD()
    │   ├── adchgFixOdrCtrl()
    │   ├── courseChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── htelItntokiOdrCtrl()
    │   └── hakkoSOD()
    ├── htelNoDslOdrCtrl()
    │   └── hakkoSOD()
    ├── htelNoInfoChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── htelNoKaihkOdrCtrl()
    │   └── hakkoSOD()
    ├── idpwShkkaSaifuriOdrCtrl()
    │   └── hakkoSOD()
    ├── kaihkOdrCtrl()
    │   └── hakkoSOD()
    ├── koteiIpAd8DivOdrCtrl()
    │   └── hakkoSOD()
    ├── malwareBlockingDivOdrCtrl()
    │   └── hakkoSOD()
    ├── opHktgiOdrCtrl()
    │   └── hakkoSOD()
    ├── opSetOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   └── ksiDslOdrCtrl()
    ├── pauseRlsChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── pauseUkOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   └── kaihkOdrCtrl()
    ├── setChgePWForDialup()
    │   ├── hakkoSOD()
    │   └── idpwShkkaSaifuriOdrCtrl()
    ├── setChgePWForMltiSe()
    │   ├── hakkoSOD()
    │   └── idpwShkkaSaifuriOdrCtrl()
    ├── setChgePWForRouterConInfo()
    │   ├── hakkoSOD()
    │   └── idpwShkkaSaifuriOdrCtrl()
    ├── stpRlsOdrCtrl()
    │   ├── hakkoSOD()
    │   └── useStpRlsOdrCtrl()
    │       └── hakkoSOD()
    ├── stpUkOdrCtrl()
    │   ├── bmpSwitchOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── kaihkOdrCtrl()
    │   └── useStpOdrCtrl()
    │       └── hakkoSOD()
    ├── taiikiSeigenOdrCtrl()
    │   └── hakkoSOD()
    ├── telNoChge()
    │   ├── bmpSwitchOdrCtrl()
    │   └── hakkoSOD()
    ├── vLanIdChgOdrCtrl()
    │   └── hakkoSOD()
    ├── vLanIdVaChangeOdrCtrl()
    │   └── hakkoSOD()
    └── wribInfoAddOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getFmtcelJgsSkbtStr(String fmtcelJgsCd)`
> **戻り値:** `String`

---

#### 1. 役割

フェムトセル事業者識別コードから、対応する事業者識別文字列を返却します。  
au・ソフトバンク・楽天など、各事業者の識別子判定に利用されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getFmtcelJgsSkbtStr(fmtcelJgsCd)"] --> IF1{"FMTCEL_JGS_CD_AU.equals(fmtcelJgsCd)"}
  IF1 -- "Yes" --> S1["au事業者識別文字列をセット"]
  IF1 -- "No" --> IF2{"FMTCEL_JGS_CD_SBM.equals(fmtcelJgsCd)"}
  IF2 -- "Yes" --> S2["ソフトバンク事業者識別文字列をセット"]
  IF2 -- "No" --> IF3{"FMTCEL_JGS_CD_RAKUTEN.equals(fmtcelJgsCd)"}
  IF3 -- "Yes" --> S3["楽天事業者識別文字列をセット"]
  IF3 -- "No" --> S4["デフォルト事業者文字列"]
  S1 & S2 & S3 & S4 --> RET["return fmtcelJgsSkbtStr"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `FMTCEL_JGS_CD_AU.equals(fmtcelJgsCd)` | au | au事業者識別子セット |
| 2 | `FMTCEL_JGS_CD_SBM.equals(fmtcelJgsCd)` | ソフトバンク | SBM事業者識別子セット |
| 3 | `FMTCEL_JGS_CD_RAKUTEN.equals(fmtcelJgsCd)` | 楽天 | 楽天事業者識別子セット |
| 4 | 上記以外 | - | デフォルト |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | fmtcelJgsCd | String | フェムトセル事業者識別コード |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | パラメータ変換のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSODやaddSOD等の多様な業務ロジックから呼出

**呼出パス:**

```
hakkoSOD → getFmtcelJgsSkbtStr
addSOD → getFmtcelJgsSkbtStr
enumAddOdrCtrl → getFmtcelJgsSkbtStr
...
```

**終端:**
- 事業者識別文字列返却

---

---

---

### getIdoRsvCourseChg()

#### 呼出元 (Reverse Call Tree) — 24 direct callers

```
getIdoRsvCourseChg() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── getNewPplanCd()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── courseChgeOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
└── getOldVrsbIdgSvcDtlCd()
    ├── adchgFixOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── hakkoSOD()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── hakkoCourseChgSOD()
    │   ├── adchgFixOdrCtrl()
    │   ├── courseChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── idpwShkkaSaifuriOdrCtrl()
    │   └── hakkoSOD()
    ├── kaihkOdrCtrl()
    │   └── hakkoSOD()
    ├── koteiIpAd8DivOdrCtrl()
    │   └── hakkoSOD()
    ├── malwareBlockingDivOdrCtrl()
    │   └── hakkoSOD()
    ├── opHktgiOdrCtrl()
    │   └── hakkoSOD()
    ├── opSetOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── cnclOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── ksiDslOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── htelNoKaihkOdrCtrl()
    │       └── hakkoSOD()
    ├── pauseRlsChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── pauseUkOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   └── kaihkOdrCtrl()
    ├── stpRlsOdrCtrl()
    │   ├── hakkoSOD()
    │   └── useStpRlsOdrCtrl()
    │       └── hakkoSOD()
    └── taiikiSeigenOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected CAANMsg[] getIdoRsvCourseChg(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo)`
> **戻り値:** `CAANMsg[]`

---

#### 1. 役割

異動予約（コース変更・住所変更・登録）情報の一覧を取得します。  
サービス契約番号・異動区分・状態コードをもとに、SC照会を実施し、条件該当する予約データを返します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getIdoRsvCourseChg(handle, param, svcKeiNo)"]
    --> S1["Step1: inHashにサービス契約番号/異動予約詳細コード/状態コードをセット"]
    --> S2["Step2: callEKK1681B001SCで異動予約一覧照会"]
    --> IF1{"statusCode != 0"}
    IF1 -- "Yes" --> S_ERR["CCException発生"]
    IF1 -- "No" --> FOR1["for msgEKK1681B001 in 結果"]
    FOR1 --> IF2{"idoDivがコース変更/住所変更・登録"}
    IF2 -- "Yes" --> S3["resultListに追加"]
    S3 & S_ERR --> RET["return resultList.toArray(...)"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `statusCode != 0` | - | CCException発生 |
| 2 | `idoDiv == CD00576_00009 or CD00576_ADCHG_ADD` | - | 追加対象 |
| 3 | return | - | 結果返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | svcKeiNo | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1681B001SC | EKK1681 | 異動予約一覧 | 異動予約一覧照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD, getOldVrsbIdgSvcDtlCd, getNewPplanCd等からの呼出

**呼出パス:**

```
hakkoSOD → getIdoRsvCourseChg
getOldVrsbIdgSvcDtlCd → getIdoRsvCourseChg
getNewPplanCd → getIdoRsvCourseChg
→ callEKK1681B001SC [READ:異動予約一覧]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-------------|------|-------------|
| callEKK1681B001SC | R | 異動予約一覧 |

---

---

---

### getInvokeCBS()

#### 呼出元 (Reverse Call Tree) — 9 direct callers

```
getInvokeCBS() ← gọi bởi:
├── KKSV0004_KKSV0004OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0008_KKSV0008OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0009_KKSV0009OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0073_KKSV0073OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0136_KKSV0136OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0162_KKSV0162OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0428_KKSV0428OPBPCheck.invokeCheck()    [trực tiếp]
├── KKSV0429_KKSV0429OPBPCheck.invokeCheck()    [trực tiếp]
└── KKSV0430_KKSV0430OPBPCheck.invokeCheck()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

サービスコンポーネント実行用CAANMsgを返却するメソッドです。  
主に業務判定（チェック処理）を行うSCの上りマッピングを担当し、呼び出し元のBPCheck系ロジックにて利用されます。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getInvokeCBS(handle, param, fixedText)"] --> S1["param（リクエストパラメータ）を引数に上りマッピング実行"]
  S1 --> RET["return paramMap"]
```

**処理ステップ詳細:**

1. リクエストparamを元に、上りマッピングメソッド（CAANMsg生成）を実行する。
2. 生成されたparamMapを返却する。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|----|-------|---------|--------|
| 1 | なし | - | 直列処理 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト・レスポンスパラメータ |
| 3 | fixedText | String | 固定文字列（インターフェイス判定等に利用） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 上りマッピングのみ（SC呼出なし） |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- KKSV0004_KKSV0004OPBPCheck.invokeCheck
- KKSV0008_KKSV0008OPBPCheck.invokeCheck
- KKSV0009_KKSV0009OPBPCheck.invokeCheck
- KKSV0073_KKSV0073OPBPCheck.invokeCheck
- KKSV0136_KKSV0136OPBPCheck.invokeCheck
- KKSV0162_KKSV0162OPBPCheck.invokeCheck
- KKSV0428_KKSV0428OPBPCheck.invokeCheck
- KKSV0429_KKSV0429OPBPCheck.invokeCheck
- KKSV0430_KKSV0430OPBPCheck.invokeCheck

**呼出パス:**  
[BPCheck.invokeCheck] → getInvokeCBS

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### getKK0351GeneAddDtm()

#### 呼出元 (Reverse Call Tree) — 11 direct callers

```
getKK0351GeneAddDtm() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── courseChgeOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
├── malwareBlockingDivOdrCtrl()
│   └── hakkoSOD()
├── pauseRlsChgeOdrCtrl()
│   └── hakkoSOD()
├── pauseUkOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   └── kaihkOdrCtrl()
│       └── hakkoSOD()
└── stpRlsOdrCtrl()
    ├── hakkoSOD()
    └── useStpRlsOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getKK0351GeneAddDtm(IRequestParameterReadWrite param, SessionHandle handle, String op_svc_kei_no)`
> **戻り値:** `String`

---

#### 1. 役割

指定したオプションサービス契約番号のカレント（直近有効）の世代登録年月日時分秒（GENE_ADD_DTM）を取得する。オプションサービス契約の状態判定・照合に利用される。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getKK0351GeneAddDtm(param, handle, op_svc_kei_no)"]
    --> S1["Step1: inHashOp2にOP_SVC_KEI_NO, OPE_DATEをセット"]
    --> S2["Step2: callEKK0351A010SCでオプションサービス契約一意照会実行"]
    --> IF1{"statusCode==0か"}
    IF1 -- "No" --> ERR1["CCExceptionスロー"]
    IF1 -- "Yes" --> S3["Step3: resultHashOp2からGENE_ADD_DTM取得"]
    S3 --> RET["GENE_ADD_DTM返却"]
    style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. inHashOp2に `JKKHakkoSODConstCC.OP_SVC_KEI_NO`、`JKKHakkoSODConstCC.OPE_DATE`（JKKBpCommon.getOpeDate(null)）をセット
2. callEKK0351A010SCで一意照会を実行
3. statusCodeが0でなければ例外（CCException）
4. 正常時はresultから `EKK0351A010CBSMsg1List.GENE_ADD_DTM` を取得して返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先               |
|---|------|--------|----------------------|
| 1 | `statusCode != 0` | - | 例外（CCException）|
| 2 | `statusCode == 0` | - | GENE_ADD_DTM返却   |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                       | 業務説明                           |
|----|--------------|--------------------------|------------------------------------|
| 1  | param        | IRequestParameterReadWrite | 業務データコンテナ                 |
| 2  | handle       | SessionHandle              | セッションハンドル                 |
| 3  | op_svc_kei_no| String                     | オプションサービス契約番号         |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド            | SCコード | エンティティ           | 操作説明                                |
|------|-----------------------|----------|------------------------|-----------------------------------------|
| R    | callEKK0351A010SC     | EKK0351  | オプションサービス契約 | オプションサービス契約一意照会          |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- malwareBlockingDivOdrCtrl
- hakkoCourseChgSOD
- pauseRlsChgeOdrCtrl
- pauseUkOdrCtrl
- stpRlsOdrCtrl
- hakkoSOD
- courseChgeOdrCtrl
- htelNoKaihkOdrCtrl
- kaihkOdrCtrl
- useStpRlsOdrCtrl
- adchgFixOdrCtrl

**呼出パス:**
```
[業務制御クラス.メソッド] → getKK0351GeneAddDtm → callEKK0351A010SC
```

**終端 (End Points):**

| SC メソッド         | CRUD | エンティティ               |
|--------------------|------|----------------------------|
| callEKK0351A010SC  | R    | オプションサービス契約     |

---

---

### getKK0351Hash()

#### 呼出元 (Reverse Call Tree) — 7 direct callers

```
getKK0351Hash() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()
│   ├── hakkoSOD()
│   └── useStpRlsOdrCtrl()
│       └── hakkoSOD()
└── stpUkOdrCtrl()
    ├── hakkoSOD()
    ├── bmpSwitchOdrCtrl()
    │   └── hakkoSOD()
    ├── kaihkOdrCtrl()
    │   └── hakkoSOD()
    └── useStpOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected HashMap<String, Object> getKK0351Hash(IRequestParameterReadWrite param, SessionHandle handle, String op_svc_kei_no)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

指定したオプションサービス契約番号のカレント状態の詳細情報（GENE_ADD_DTMなど）を取得し、HashMapで返却する。呼び出し元で契約状態判定や業務フロー分岐に活用される。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getKK0351Hash(param, handle, op_svc_kei_no)"]
    --> S1["Step1: inHashOp2にOP_SVC_KEI_NO, OPE_DATEをセット"]
    --> S2["Step2: callEKK0351A010SCで一意照会実行"]
    --> IF1{"statusCode==0か"}
    IF1 -- "No" --> ERR1["CCExceptionスロー"]
    IF1 -- "Yes" --> S3["Step3: resultHashOp2からHashMap返却"]
    style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. inHashOp2に `JKKHakkoSODConstCC.OP_SVC_KEI_NO`、`JKKHakkoSODConstCC.OPE_DATE`（JKKBpCommon.getOpeDate(null)）をセット
2. callEKK0351A010SCで一意照会を実行
3. statusCodeが0でなければ例外（CCException）
4. 正常時は `JKKHakkoSODConstCC.TEMPLATE_ID_EKK0351A010` をキーにHashMapを返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先               |
|---|------|--------|----------------------|
| 1 | `statusCode != 0` | - | 例外（CCException）|
| 2 | `statusCode == 0` | - | HashMap返却        |

---

#### 3. パラメータ分析

| No | パラメータ名      | 型                        | 業務説明                    |
|----|-------------------|---------------------------|-----------------------------|
| 1  | param             | IRequestParameterReadWrite| 業務データコンテナ          |
| 2  | handle            | SessionHandle             | セッションハンドル          |
| 3  | op_svc_kei_no     | String                    | オプションサービス契約番号  |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド            | SCコード | エンティティ           | 操作説明                                |
|------|-----------------------|----------|------------------------|-----------------------------------------|
| R    | callEKK0351A010SC     | EKK0351  | オプションサービス契約 | オプションサービス契約一意照会          |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- stpRlsOdrCtrl
- stpUkOdrCtrl
- useStpRlsOdrCtrl
- hakkoSOD
- bmpSwitchOdrCtrl
- useStpOdrCtrl
- kaihkOdrCtrl

**呼出パス:**
```
[業務制御クラス.メソッド] → getKK0351Hash → callEKK0351A010SC
```

**終端 (End Points):**

| SC メソッド         | CRUD | エンティティ           |
|--------------------|------|------------------------|
| callEKK0351A010SC  | R    | オプションサービス契約 |

---### getEKK0251B001SC()

---

#### 1. 役割

サービス契約番号を指定して、EKK0251B001_サービス契約回線内訳一覧照会（サービス契約番号）SIFを呼び出し、サービス契約回線内訳情報を取得するメソッド。  
複数の業務制御メソッド（例：dslOdrCtrl、kaihkOdrCtrl等）から利用され、ネット・電話・オプション等の契約情報の一元照会のための共通取得ポイントとなる。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getEKK0251B001SC(param, handle, svcKeiNo, funcCode)"] --> S1["Step1: inHashKaisenUcwkへサービス契約番号セット"]
  S1 --> S2["Step2: callEKK0251B001SC呼出"]
  S2 --> IF1{"Step3: ステータスコード(statusCode) != 0"}
  IF1 -- "Yes: エラー" --> S3["Step4: 例外(CCException)スロー"]
  IF1 -- "No: 正常" --> S4["Step5: 結果HashMap取得(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0251B001)"]
  S3 --> END1["エラー終了"]
  S4 --> RET["return 結果HashMap"]
  style IF1 fill:#ffcc00
```

**処理ステップ詳細:**

1. **Step1**: `inHashKaisenUcwk.put(JKKHakkoSODConstCC.SVC_KEI_NO, svcKeiNo)`  
   サービス契約番号を入力パラメータのハッシュマップにセットする。
2. **Step2**: `this.callEKK0251B001SC(param, handle, inHashKaisenUcwk, resultKaisenUcwk, funcCode)`  
   サービスインターフェース(EKK0251B001_サービス契約回線内訳一覧照会)を呼び出す。
3. **Step3**: `if (0 != statusCode)`  
   サービス実行結果コードを判定。エラー時は例外スロー。
4. **Step4**: `throw new CCException("", new SCCallException("", String.valueOf(statusCode), statusCode))`  
   エラー情報を付与して例外を発生させる。
5. **Step5**: `return (HashMap<String, Object>)resultKaisenUcwk.get(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0251B001)`  
   正常時は結果ハッシュマップを返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先                   |
|---|------|--------|--------------------------|
| 1 | `statusCode != 0` | -      | 例外スロー（CCException）|
| 2 | `statusCode == 0` | -      | 結果HashMap返却         |

---

#### 3. パラメータ分析

| No | パラメータ名    | 型                             | 業務説明                                           |
|----|----------------|--------------------------------|----------------------------------------------------|
| 1  | param          | IRequestParameterReadWrite      | 業務リクエスト・レスポンスパラメータ               |
| 2  | handle         | SessionHandle                   | セッション管理ハンドル                             |
| 3  | svcKeiNo       | String                          | サービス契約番号                                   |
| 4  | funcCode       | String                          | 呼出サービスインターフェースの機能コード           |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド                | SCコード | エンティティ                           | 操作説明                                                         |
|------|---------------------------|---------|----------------------------------------|------------------------------------------------------------------|
| R    | callEKK0251B001SC         | EKK0251 | サービス契約回線内訳一覧               | サービス契約番号に基づく回線内訳情報の一覧照会                   |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- vLanIdVaChangeOdrCtrl
- vLanIdChgOdrCtrl
- telNoChge
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- htelNoDslOdrCtrl
- opSetOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- hakkoSOD
- bmpSwitchOdrCtrl
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl
- 他、複数の呼出経路

**呼出パス例:**

```
hakkoSOD → dslOdrCtrl → getEKK0251B001SC → callEKK0251B001SC (EKK0251) → [R] サービス契約回線内訳一覧
```

**終端:**

| SC メソッド           | CRUD | エンティティ                 |
|----------------------|------|-----------------------------|
| callEKK0251B001SC    | R    | サービス契約回線内訳一覧     |

---

---

---

### getKktkSvcKeiList()

#### 呼出元 (Reverse Call Tree) — 4 direct callers

```
getKktkSvcKeiList() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newEoMobile()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── newKeiOdrCtrl()
└── newKeiOdrCtrl()
    ├── hakkoSOD()
    └── adchgFixOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected IRequestParameterReadWrite getKktkSvcKeiList(SessionHandle handle, IRequestParameterReadWrite param, String kktkSvcCd)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

機器提供サービス契約一覧照会（サービス契約番号）を呼び出し、指定された「サービス契約番号」と「機器提供サービスコード」に紐づく契約情報の一覧を取得します。  
機器管理や連携制御のために利用します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getKktkSvcKeiList(handle, param, kktkSvcCd)"] --> S1["param.getData(HAKKOSODCCWORKMAP) でinMap取得"]
  S1 --> S2["inHashKktk.put(SVC_KEI_NO, inMap.get('svc_kei_no'))"]
  S2 --> S3["inHashKktk.put(KKTK_SVC_CD, kktkSvcCd)"]
  S3 --> S4["callEKK0341B002SC(param, handle, inHashKktk, resultHashKktk, FUNC_CODE_1)"]
  S4 --> IF1{"statusCode != 0"}
  IF1 -- "Yes" --> S5["throw CCException"]
  IF1 -- "No" --> L1["for(msgListKktk)"]
  L1 --> S6["eKK0341B002Hash = msgListKktk[i].getMsgData()"]
  S6 --> IF2{"SVC_KEI_STAT_920.equals(kktk_svc_kei_stat)"}
  IF2 -- "Yes" --> S7["キャンセル済み等は除外"]
  IF2 -- "No" --> S8["契約番号・世代登録日時等取得"]
  S7 --> END
  S8 --> END
  L1 --> END
  S5 --> END

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**処理ステップ詳細:**

1. 業務パラメータからinMapを取得し、SVC_KEI_NO・KKTK_SVC_CDをinHashKktkにセット。
2. 機器提供サービス契約一覧照会SC（EKK0341B002）を呼び出し。
3. statusCodeが0以外なら例外発生。
4. 結果リストをループし、キャンセル済み契約（SVC_KEI_STAT_920）は除外。
5. 必要な契約情報を取得。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | statusCode != 0 | - | CCException発生 |
| 2 | SVC_KEI_STAT_920.equals(kktk_svc_kei_stat) | JKKHakkoSODConstCC.SVC_KEI_STAT_920 | 除外 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト・レスポンスパラメータ |
| 3 | kktkSvcCd | String | 機器提供サービスコード |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0341B002SC | EKK0341 | 機器提供サービス契約 | 一覧照会（サービス契約番号指定） |
| R | callEKK0791A010SC | EKK0791 | 料金コース | 一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- newEoMobile
- newKeiOdrCtrl
- adchgFixOdrCtrl
- hakkoSOD

**呼出パス:**  
[契約・機器設定等] → getKktkSvcKeiList → callEKK0341B002SC → [契約情報取得]

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0341B002SC | R | 機器提供サービス契約 |
| callEKK0791A010SC | R | 料金コース |

---

---

### getKojiakState()

#### 呼出元 (Reverse Call Tree) — 2 direct callers

```
getKojiakState() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
└── htelItntokiOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getKojiakState(IRequestParameterReadWrite param, SessionHandle handle, String adchgNo, String svcKeiNo)`
> **戻り値:** `String`

---

#### 1. 役割

住所変更（住変）に伴う工事案件情報を取得し、マンション工事案件・電話工事案件の状態を精査する。住変明細、工事案件照会、工事案件詳細の各サービスインターフェースを横断的に連携して状態判定を実施する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getKojiakState(param, handle, adchgNo, svcKeiNo)"]
    --> S1["Step1: ekk2101B001InMapに住所変更番号（adchgNo）をセット"]
    --> S2["Step2: callEKK2101B001SC 実行（住変明細一覧照会）"]
    --> IF1{"ekk2101B001Res==0か"}
    IF1 -- "No (異常)" --> ERR1["CCExceptionスロー"]
    IF1 -- "Yes" --> S3["Step3: eku0081B010InMapにサービス契約番号（svcKeiNo）をセット"]
    S3 --> S4["Step4: callEKU0081B010SC 実行（サービス契約＿工事案件一覧照会）"]
    S4 --> IF2{"eku0081B010Res==0か"}
    IF2 -- "No (異常)" --> ERR2["CCExceptionスロー"]
    IF2 -- "Yes" --> S5["Step5: 住変明細・工事案件一覧の突合"]
    S5 --> S6["Step6: 変更前識別番号・工事案件番号を抽出"]
    S6 --> IF3{"工事案件番号有無"}
    IF3 -- "Yes" --> S7["Step7: callEKU0011A010SC実行（工事案件一意照会）"]
    S7 --> IF4{"eku0011A010Res==0か"}
    IF4 -- "No (異常)" --> ERR3["CCExceptionスロー"]
    IF4 -- "Yes" --> IF5{"工事案件ステータス=UKか"}
    IF5 -- "Yes" --> RET1["マンション工事案件状態コード返却"]
    IF5 -- "No" --> RET2["工事案件ステータス返却"]
    IF3 -- "No" --> RET3["空文字（該当なし）返却"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
    style IF4 fill:#ffcc00
    style IF5 fill:#ffcc00
```

**処理ステップ詳細:**

1. `ekk2101B001InMap` に住所変更番号をセット、住変明細一覧照会（callEKK2101B001SC）を実行
2. ステータス異常時は例外（CCException）
3. `eku0081B010InMap` にサービス契約番号をセット、サービス契約＿工事案件一覧照会（callEKU0081B010SC）を実行
4. ステータス異常時は例外（CCException）
5. 両方の結果リストの突合（for-eachでそれぞれのchildMapを走査）
6. 変更前識別番号と工事案件番号が一致した場合、その工事案件番号で工事案件一意照会（callEKU0011A010SC）を実行
7. ステータス異常時は例外（CCException）
8. 工事案件状態コードがUKの場合はマンション工事案件状態コードを返却、それ以外は状態コードを返却
9. 工事案件番号が見つからない場合は空文字を返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値・意味         | 分岐先                       |
|---|------|----------------------|------------------------------|
| 1 | `ekk2101B001Res != 0` |  | 例外                         |
| 2 | `eku0081B010Res != 0` |  | 例外                         |
| 3 | `for-each childMap1`  |  | 住変明細ループ               |
| 4 | `for-each childMap2`  |  | 工事案件一覧ループ           |
| 5 | `wkKijiakNo != null && wkKijiakNo.equals(chbfSkbtNo)` | | 突合成功                     |
| 6 | `kojiakNo != null`    |  | 工事案件一意照会へ           |
| 7 | `eku0011A010Res != 0` |  | 例外                         |
| 8 | `KOJIAK_STAT==UK`     | UK:工事未完了                | マンション工事案件状態コード返却 |
| 9 | else                  |  | 工事案件ステータス返却       |
|10 | else                  |  | 空文字返却                   |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型                       | 業務説明                |
|----|--------------|--------------------------|-------------------------|
| 1  | param        | IRequestParameterReadWrite | 業務データコンテナ      |
| 2  | handle       | SessionHandle              | セッションハンドル      |
| 3  | adchgNo      | String                     | 住所変更番号           |
| 4  | svcKeiNo     | String                     | サービス契約番号        |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド            | SCコード   | エンティティ                          | 操作説明                                      |
|------|-----------------------|------------|---------------------------------------|-----------------------------------------------|
| R    | callEKK2101B001SC     | EKK2101    | 住所変更明細一覧                     | 住変明細照会                                 |
| R    | callEKU0081B010SC     | EKU0081    | サービス契約＿工事案件               | サービス契約＿工事案件照会                    |
| R    | callEKU0011A010SC     | EKU0011    | 工事案件一意照会                     | 工事案件詳細照会                              |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- htelItntokiOdrCtrl
- hakkoSOD

**呼出パス:**
```
[業務制御クラス.メソッド] → getKojiakState → callEKK2101B001SC/callEKU0081B010SC/callEKU0011A010SC
```

**終端 (End Points):**

| SC メソッド         | CRUD | エンティティ            |
|--------------------|------|-------------------------|
| callEKK2101B001SC  | R    | 住所変更明細一覧        |
| callEKU0081B010SC  | R    | サービス契約＿工事案件  |
| callEKU0011A010SC  | R    | 工事案件一意照会        |

---

---

### getNewPplanCd()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
getNewPplanCd() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
└── courseChgeOdrCtrl()
    ├── hakkoSOD()
    └── adchgFixOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getNewPplanCd(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo)`
> **戻り値:** `String`

---

#### 1. 役割

異動予約（コース変更）情報から新料金プランコードを取得する照会メソッドです。  
サービス契約番号をもとに異動予約一覧照会からコース変更予約を検索し、新料金プランコードを返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getNewPplanCd(handle, param, svcKeiNo)"] --> S1["Step1: getIdoRsvCourseChg()で異動予約(コース変更)一覧取得"]
  S1 --> IF1{"msgListEKK1681B001.length > 0"}
  IF1 -- "Yes" --> S2["Step2: 先頭msgListEKK1681B001[0]からNEW_PPLAN_CD取得"]
  S2 --> RET["return newPplanCd"]
  IF1 -- "No" --> RET
  style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `msgListEKK1681B001.length > 0` | - | newPplanCdセット |
| 2 | return | - | newPplanCd返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ（業務データコンテナ）|
| 3 | svcKeiNo | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1681B001SC | EKK1681 | 異動予約一覧 | 異動予約一覧照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD、courseChgeOdrCtrl などからの呼出

**呼出パス:**

```
hakkoSOD → getNewPplanCd
courseChgeOdrCtrl → getNewPplanCd
→ getIdoRsvCourseChg → callEKK1681B001SC [READ:異動予約一覧]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-------------|------|-------------|
| callEKK1681B001SC | R | 異動予約一覧 |

---

---

---

### getOldVrsbIdgSvcDtlCd()

#### 呼出元 (Reverse Call Tree) — 22 direct callers

```
getOldVrsbIdgSvcDtlCd() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()
│   ├── hakkoSOD()
│   └── adchgFixOdrCtrl()
│       └── hakkoSOD()
├── hakkoCourseChgSOD()
│   ├── adchgFixOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   └── hakkoSOD()
├── idpwShkkaSaifuriOdrCtrl()
│   └── hakkoSOD()
├── kaihkOdrCtrl()
│   └── hakkoSOD()
├── koteiIpAd8DivOdrCtrl()
│   └── hakkoSOD()
├── malwareBlockingDivOdrCtrl()
│   └── hakkoSOD()
├── opHktgiOdrCtrl()
│   └── hakkoSOD()
├── opSetOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   └── htelNoKaihkOdrCtrl()
│       └── hakkoSOD()
├── pauseRlsChgeOdrCtrl()
│   └── hakkoSOD()
├── pauseUkOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   └── kaihkOdrCtrl()
├── stpRlsOdrCtrl()
│   ├── hakkoSOD()
│   └── useStpRlsOdrCtrl()
│       └── hakkoSOD()
└── taiikiSeigenOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `protected String getOldVrsbIdgSvcDtlCd(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String svcKeiUcwkNo, String pplanCd)`
> **戻り値:** `String`

---

#### 1. 役割

旧VR識別判定用サービス詳細コードを取得します。  
異動予約（コース変更）の新旧料金プランコードやサービス契約内訳から、旧認証ID/新認証IDのどちらを返すか判定します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["getOldVrsbIdgSvcDtlCd(handle, param, svcKeiNo, svcKeiUcwkNo, pplanCd)"]
    --> S1["Step1: getIdoRsvCourseChgで異動予約(コース変更)一覧取得"]
    --> IF1{"msgListEKK1681B001.length > 0"}
    IF1 -- "Yes" --> S2["EKK0161B004CBSMsg.class.getName() 2回呼び出し"]
    S2 --> S3["getCourseChgSvcKeiUcwkでコース変更中のサービス契約内訳(前後)を取得"]
    S3 --> IF2{"msgEKK0161B004NewがnullまたはgetMsgData().isEmpty()"}
    IF2 -- "Yes" --> S4["異動予約の新料金プランコードを返却"]
    IF2 -- "No" --> IF3{"svcKeiUcwkNo.equals(newSvcKeiUcwkNo)"}
    IF3 -- "Yes" --> S5["異動予約の新料金プランコードを返却"]
    IF3 -- "No" --> S6["サービス契約内訳の料金プランコードを返却"]
    IF1 -- "No" --> S7["サービス契約内訳の料金プランコードを返却"]
    S4 & S5 & S6 & S7 --> RET["return oldVrsbIdgSvcDtlCd"]
    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `msgListEKK1681B001.length > 0` | - | 予約ありパス |
| 2 | `msgEKK0161B004New == null || msgEKK0161B004New.getMsgData().isEmpty()` | - | 新料金プランコード返却 |
| 3 | `svcKeiUcwkNo.equals(newSvcKeiUcwkNo)` | - | 新料金プランコード返却 |
| 4 | 上記以外 | - | 旧料金プランコード返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | svcKeiNo | String | サービス契約番号 |
| 4 | svcKeiUcwkNo | String | サービス契約内訳番号 |
| 5 | pplanCd | String | 料金プランコード |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK1681B001SC | EKK1681 | 異動予約一覧 | 異動予約一覧照会 |
| R | callEKK0161B004SC | EKK0161 | サービス契約内訳 | サービス契約内訳一覧照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD, malwareBlockingDivOdrCtrl, courseChgeOdrCtrl等からの呼出

**呼出パス:**

```
hakkoSOD → getOldVrsbIdgSvcDtlCd
malwareBlockingDivOdrCtrl → getOldVrsbIdgSvcDtlCd
courseChgeOdrCtrl → getOldVrsbIdgSvcDtlCd
→ getIdoRsvCourseChg → callEKK1681B001SC [READ:異動予約一覧]
→ getCourseChgSvcKeiUcwk → callEKK0161B004SC [READ:サービス契約内訳]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-------------|------|-------------|
| callEKK1681B001SC | R | 異動予約一覧 |
| callEKK0161B004SC | R | サービス契約内訳 |

---

---

---

