#  業務ロジック  Part 5/12

### editInMsg_EKK1081D010CBS()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
editInMsg_EKK1081D010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSOD()    [trực tiếp]
├── addSODDupNew()    [trực tiếp]
├── addSODEmailNew()    [trực tiếp]
├── addSODFtthNew()    [trực tiếp]
├── addSODHPAccessAdd()    [trực tiếp]
├── addSODHPCapaChg()    [trực tiếp]
├── addSODHPNew()    [trực tiếp]
├── addSODMailAliasAdd()    [trực tiếp]
├── addSODMailCapaChg()    [trực tiếp]
├── addSODMListNew()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addSODTelNew()    [trực tiếp]
├── addSODTelVAChange()    [trực tiếp]
├── addSODUQWIMAXKaitoriNew()    [trực tiếp]
├── addSODUQWIMAXNew()    [trực tiếp]
├── addSODVirusChkAdd()    [trực tiếp]
├── addSODWiFiChg()    [trực tiếp]
├── addSODWiFiNew()    [trực tiếp]
├── addTakinoSOD()    [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]
├── 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]
├── tsuikabunAddSOD()    [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]
└── executeOdrHakkoJokenAdd()
    ├── adchgFixOdrCtrl()
    ├── add050AddSod()
    ├── add050DelSod()
    ├── addSODMRTChgRTSta()
    ├── addTensoDenwaOp()
    ├── addTokiSOD()
    ├── bmpDojiMskm()
    ├── bmpSipDslOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── enumAddOdrCtrl()
    ├── enumDelOdrCtrl()
    ├── hakkoCourseChgSOD()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelItntokiOdrCtrl()
    ├── htelNoAddOdrCtrl()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── keiTtdkChuHtelnoChgeOdrCtrl()
    ├── koteiIpAd8DivOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── malwareBlockingDivOdrCtrl()
    ├── newEoMobile()
    ├── newKeiOdrCtrl()
    ├── newNet()
    ├── opHktgiOdrCtrl()
    ├── opSetOdrCtrl()
    ├── pauseRlsChgeOdrCtrl()
    ├── pauseUkOdrCtrl()
    ├── rtOpChgDivOdrCtrl()
    ├── setChgePWForDialup()
    ├── setChgePWForIPv6()
    ├── setChgePWForMltiSe()
    ├── setChgePWForRouterConInfo()
    ├── spotLoginSysidChgeOdrCtrl()
    ├── stpRlsOdrCtrl()
    ├── stpUkOdrCtrl()
    ├── taiikiSeigenOdrCtrl()
    ├── telNoChge()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── vLanIdChgOdrCtrl()
    ├── vLanIdVaChangeOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── 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()
    │   │       ├── jdgIpv6EKK0361A010()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       ├── newKeiOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   ├── 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:** `private HashMap<String, Object> editInMsg_EKK1081D010CBS(IRequestParameterReadOnly param)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

オーダ発行条件登録のための上りメッセージ（CAANMsg）を生成。IRequestParameterReadOnlyからサービス契約情報や各種条件項目を抽出し、SC入力メッセージにマッピングする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsg_EKK1081D010CBS(param)"] --> S1["paramMapに電文ヘッダ情報put"]
  S1 --> S2["paramMapにコントロールマップ情報put"]
  S2 --> S3["EKK1081D010CBSMsg.class.getName()でテンプレートID取得"]
  S3 --> S4["template.set(TEMPLATEID, template_id)"]
  S4 --> S5["template.set(FUNC_CODE, JPCModelConstant.FUNC_CD_1)"]
  S5 --> S6["editBasicCmn(param, template)で共通部設定"]
  S6 --> S7["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でinMap取得"]
  S7 --> S8["各項目（svc_kei_no, svc_kei_ucwk_no, kktk_svc_kei_no, ... kei_svc_ctl_yokyu_odr_skcdまで）についてinMap値の有無でNull/値セットを分岐（全20項目）"]
  S8 --> S9["paramMap.put(TEMPLATE_LIST_KEY, templates)"]
  S9 --> RET["return paramMap"]
  style S8 fill:#ffcc00
```

**処理ステップ詳細:**

1. paramから電文ヘッダ・コントロールマップ情報をparamMapにput。
2. テンプレートIDをクラス名で取得しtemplateにセット。
3. templateに機能コード（チェック＆登録）をセット。
4. editBasicCmnで共通部設定。
5. inMapから各項目（svc_kei_no, svc_kei_ucwk_no, ... kei_svc_ctl_yokyu_odr_skcd）を取得し、空ならsetNull、値があればset。
6. paramMapへTEMPLATE_LIST_KEYでtemplatesをput。
7. paramMap返却。

**制御フロー分岐（全条件列挙）:**  
（各項目ごとにinMapがnull・値が空の場合setNull、値があればset。全20項目）

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadOnly | SC条件登録用の入力パラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 上りメッセージ生成/編集のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD → addSODHPAccessAdd → executeOdrHakkoJokenAdd → **editInMsg_EKK1081D010CBS**

**呼出パス:**

```
hakkoSOD → addSODHPAccessAdd → executeOdrHakkoJokenAdd → editInMsg_EKK1081D010CBS（本メソッド）
```

**終端 (End Points):**
- なし（メッセージ編集のみ）

---

---

### editInMsg_EKK1551D010CBS()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
editInMsg_EKK1551D010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSOD()    [trực tiếp]
├── addSODDupNew()    [trực tiếp]
├── addSODEmailNew()    [trực tiếp]
├── addSODFtthNew()    [trực tiếp]
├── addSODHPAccessAdd()    [trực tiếp]
├── addSODHPCapaChg()    [trực tiếp]
├── addSODHPNew()    [trực tiếp]
├── addSODMailAliasAdd()    [trực tiếp]
├── addSODMailCapaChg()    [trực tiếp]
├── addSODMListNew()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addSODTelNew()    [trực tiếp]
├── addSODTelVAChange()    [trực tiếp]
├── addSODUQWIMAXKaitoriNew()    [trực tiếp]
├── addSODUQWIMAXNew()    [trực tiếp]
├── addSODVirusChkAdd()    [trực tiếp]
├── addSODWiFiChg()    [trực tiếp]
├── addSODWiFiNew()    [trực tiếp]
├── addTakinoSOD()    [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]
├── 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]
├── tsuikabunAddSOD()    [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]
└── executeOdrInfoSakseiWkAdd()
    ├── adchgFixOdrCtrl()
    ├── add050AddSod()
    ├── add050DelSod()
    ├── addSODMRTChgRTSta()
    ├── addTensoDenwaOp()
    ├── addTokiSOD()
    ├── bmpDojiMskm()
    ├── bmpSipDslOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── enumAddOdrCtrl()
    ├── enumDelOdrCtrl()
    ├── hakkoCourseChgSOD()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelItntokiOdrCtrl()
    ├── htelNoAddOdrCtrl()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── keiTtdkChuHtelnoChgeOdrCtrl()
    ├── koteiIpAd8DivOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── malwareBlockingDivOdrCtrl()
    ├── newEoMobile()
    ├── newKeiOdrCtrl()
    ├── newNet()
    ├── opHktgiOdrCtrl()
    ├── opSetOdrCtrl()
    ├── pauseRlsChgeOdrCtrl()
    ├── pauseUkOdrCtrl()
    ├── rtOpChgDivOdrCtrl()
    ├── setChgePWForDialup()
    ├── setChgePWForIPv6()
    ├── setChgePWForMltiSe()
    ├── setChgePWForRouterConInfo()
    ├── spotLoginSysidChgeOdrCtrl()
    ├── stpRlsOdrCtrl()
    ├── stpUkOdrCtrl()
    ├── taiikiSeigenOdrCtrl()
    ├── telNoChge()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── vLanIdChgOdrCtrl()
    ├── vLanIdVaChangeOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── 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()
    │   │       ├── jdgIpv6EKK0361A010()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       ├── newKeiOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   ├── 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:** `private HashMap<String, Object> editInMsg_EKK1551D010CBS(IRequestParameterReadOnly param)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

オーダ情報作成ワーク登録のための上りメッセージ（CAANMsg）を生成。IRequestParameterReadOnlyから各種オーダ発行条件情報や契約情報を抽出し、SC呼び出し前のメッセージ整形を行う。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsg_EKK1551D010CBS(param)"] --> S1["paramMapに電文ヘッダ情報put(TRANZACTION_ID_KEY, USECASE_ID_KEY, OPERATION_ID_KEY, CALL_TYPE_KEY)"]
  S1 --> S2["paramMapにコントロールマップ情報put(CLIENT_HOST_NAME_KEY, CLIENT_IP_ADDRESS_KEY, INVOKE_GAMEN_ID_KEY, OPERATOR_ID_KEY)"]
  S2 --> S3["EKK1551D010CBSMsg.class.getName()でテンプレートID取得"]
  S3 --> S4["template.set(TEMPLATEID, template_id)"]
  S4 --> S5["template.set(FUNC_CODE, JPCModelConstant.FUNC_CD_1)"]
  S5 --> S6["editBasicCmn(param, template)で共通部設定"]
  S6 --> S7["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でinMap取得"]
  S7 --> S8["各項目（odr_hakko_joken_no, odr_naiyo_cd, svc_kei_no, ...）についてinMap値の有無でNull/値セットを分岐（全50項目）"]
  S8 --> S9["paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates)"]
  S9 --> RET["return paramMap"]
  style S8 fill:#ffcc00
```

**処理ステップ詳細:**

1. paramから電文ヘッダ情報をparamMapにput。
2. コントロールマップ情報もparamMapにput。
3. テンプレートIDをクラス名から取得しtemplateにセット。
4. templateに機能コード（チェック＆登録）をセット。
5. editBasicCmnで共通部設定。
6. inMapの各項目（odr_hakko_joken_no, odr_naiyo_cd, svc_kei_no, svkei_gadtm, ... telnoまで50項目以上）Nullチェックし、値がなければsetNull、あればsetでtemplateに格納。
7. paramMapへTEMPLATE_LIST_KEYでtemplatesをput。
8. paramMap返却。

**制御フロー分岐（全条件列挙）:**  
（各項目ごとにinMapがnull・値が空の場合setNull、値があればset。50項目以上）

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadOnly | SCワーク登録用の入力パラメータ（読み取り専用） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 上りメッセージ生成/編集のみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD → addSODMListNew → executeOdrInfoSakseiWkAdd → **editInMsg_EKK1551D010CBS**

**呼出パス:**

```
hakkoSOD → addSODMListNew → executeOdrInfoSakseiWkAdd → editInMsg_EKK1551D010CBS（本メソッド）
```

**終端 (End Points):**
- なし（メッセージ編集のみ）

---

---

### editInMsgCmn()

#### 呼出元 (Reverse Call Tree) — 150 direct callers

```
editInMsgCmn() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── addSOD()    [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]
├── callEKK0161B011SC()    [trực tiếp]
├── callEKK0191B502SC()    [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]
├── enumAddOdrCtrl()    [trực tiếp]
├── enumDelOdrCtrl()    [trực tiếp]
├── findMobileStartOrderAtKK1041()    [trực tiếp]
├── findOlsOrderAtKK1041()    [trực tiếp]
├── findRadiusHasBeenSentSvc()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── findZ5OrderAtKK1041()    [trực tiếp]
├── getAdChgInfo()    [trực tiếp]
├── getCourseChgSvcKeiUcwk()    [trực tiếp]
├── getDammyPplanCd()    [trực tiếp]
├── getDummySvcKeiNo()    [trực tiếp]
├── getEKK0251B001SC()    [trực tiếp]
├── getEKK0251B003SC()    [trực tiếp]
├── getEKK0361A010Info()    [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]
├── is050AddOrderHakkoZumi()    [trực tiếp]
├── isBmpOpenZumi()    [trực tiếp]
├── isBmpOpenZumiDslNoDslNoChg()    [trực tiếp]
├── isItenNoGuideTokiChu()    [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]
├── judgeOdrHakkoJoken4WiFiSpot()    [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]
├── 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]
├── 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()
├── callEKK0081B004SC()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   ├── spotLoginSysidChgeOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   └── judgeOdrHakkoJoken4WiFiSpot()
│       ├── adchgFixOdrCtrl()
│       ├── bmpSwitchOdrCtrl()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newEoMobile()
│       ├── newKeiOdrCtrl()
│       ├── stpRlsOdrCtrl()
│       ├── stpUkOdrCtrl()
│       ├── useStpOdrCtrl()
│       ├── useStpRlsOdrCtrl()
│       └── spotLoginSysidChgeOdrCtrl()
│           └── hakkoSOD()
├── callEKK0091A010_SC()
│   ├── adchgFixOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── hakkoSOD()
│   ├── hakkoCourseChgSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   │   └── hakkoSOD()
│   ├── malwareBlockingDivOdrCtrl()
│   │   └── hakkoSOD()
│   └── taiikiSeigenOdrCtrl()
│       └── hakkoSOD()
├── callEKK0161A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── bmpSipDslOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── 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()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── getSvcKeiUtwk()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   ├── htelItntokiOdrCtrl()
│   │   └── 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()
├── callEKK0161B003SC()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── countUpWiFiSpotSessions()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   └── useStpRlsOdrCtrl()
├── callEKK0161B004SC()
│   ├── adchgFixOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── getOldVrsbIdgSvcDtlCd()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── taiikiSeigenOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── 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()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   └── ksiDslOdrCtrl()
│   └── vLanIdChgOdrCtrl()
│       └── hakkoSOD()
├── callEKK0161B008SC()
│   ├── hakkoSOD()
│   └── bmpSwitchOdrCtrl()
│       └── hakkoSOD()
├── callEKK0191A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── addIpv6SODAft()
│   ├── bmpDojiMskm()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoChgeOdrCtrl()
│   ├── 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()
│   ├── checkTakinoRT()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── addIpv6SODAft()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── findZ1OrderAtKK1041()
│   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   │   ├── hakkoSOD()
│   │   ├── htelNoAddOdrCtrl()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── idpwShkkaSaifuriOdrCtrl()
│   │   ├── jdgIpv6()
│   │   ├── jdgIpv6EKK0361A010()
│   │   ├── jdgOdr163()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── newKeiOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   ├── setChgePWForRouterConInfo()
│   │   ├── telNoChge()
│   │   ├── vLanIdChgOdrCtrl()
│   │   └── wribInfoAddOdrCtrl()
│   ├── getZ1HakkoKh()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   └── opSetOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── 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()
├── callEKK0191B001_2SC()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   └── opSetOdrCtrl()
├── callEKK0191B001SC()
│   ├── hakkoSOD()
│   └── htelNoInfoChgeOdrCtrl()
├── 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()
├── 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()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── rtOpChgDivOdrCtrl()
│       └── hakkoSOD()
├── callEKK0341A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── isRegalVaKiki()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── 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()
│   ├── jdgOdr163()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   └── hakkoSOD()
│   └── vLanIdVaChangeOdrCtrl()
│       └── hakkoSOD()
├── callEKK0341B002SC()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── newEoMobile()
│   ├── newKeiOdrCtrl()
│   ├── getKktkSvcKeiList()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── newEoMobile()
│   │   └── newKeiOdrCtrl()
│   └── setChgePWForRouterConInfo()
│       ├── hakkoSOD()
│       └── idpwShkkaSaifuriOdrCtrl()
│           └── hakkoSOD()
├── callEKK0341B008_02SC()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getVAkikiInfo()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── telNoChge()
│   └── vLanIdChgOdrCtrl()
├── callEKK0341B008SC()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── getZ1HakkoKh()
│   ├── hakkoSOD()
│   ├── htelNoChgeOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── isKikiSeizoNoCheck()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── telNoChge()
│   ├── getVAkikiInfo()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
│   │   ├── getZ1HakkoKh()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── isKikiSeizoNoCheck()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   └── opSetOdrCtrl()
│   └── jdgIpv6()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       └── jdgIpv6EKK0361A010()
│           ├── adchgFixOdrCtrl()
│           ├── addIpv6SODAft()
│           ├── hakkoSOD()
│           ├── kaihkOdrCtrl()
│           └── newKeiOdrCtrl()
├── 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()
├── 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()
├── 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()
├── callEKK0351B010SC()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   └── useStpRlsOdrCtrl()
├── callEKK0361A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── add050DelSod()
│   ├── addIpv6SODAft()
│   ├── addTensoDenwaOp()
│   ├── addTokiSOD()
│   ├── bmpDojiMskm()
│   ├── bmpSipDslOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── enumAddOdrCtrl()
│   ├── enumDelOdrCtrl()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── jdgIpv6EKK0361A010()
│   ├── kaihkOdrCtrl()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── setChgePWForDialup()
│   ├── setChgePWForIPv6()
│   ├── setChgePWForMltiSe()
│   ├── setChgePWForRouterConInfo()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── taiikiSeigenOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── vLanIdChgOdrCtrl()
│   ├── vLanIdVaChangeOdrCtrl()
│   ├── addSOD()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── add050AddSod()
│   │   ├── add050DelSod()
│   │   ├── addTensoDenwaOp()
│   │   ├── addTokiSOD()
│   │   ├── bmpDojiMskm()
│   │   ├── bmpSipDslOdrCtrl()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoCourseChgSOD()
│   │   ├── hakkoSOD()
│   │   ├── htelItntokiOdrCtrl()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── idpwShkkaSaifuriOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   │   ├── koteiIpAd8DivOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── malwareBlockingDivOdrCtrl()
│   │   ├── newKeiOdrCtrl()
│   │   ├── opHktgiOdrCtrl()
│   │   ├── opSetOdrCtrl()
│   │   ├── pauseRlsChgeOdrCtrl()
│   │   ├── pauseUkOdrCtrl()
│   │   ├── setChgePWForDialup()
│   │   ├── setChgePWForMltiSe()
│   │   ├── setChgePWForRouterConInfo()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── stpUkOdrCtrl()
│   │   ├── taiikiSeigenOdrCtrl()
│   │   ├── telNoChge()
│   │   ├── useStpOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   ├── vLanIdChgOdrCtrl()
│   │   ├── vLanIdVaChangeOdrCtrl()
│   │   ├── wribInfoAddOdrCtrl()
│   │   ├── enumAddOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── enumDelOdrCtrl()
│   │       └── hakkoSOD()
│   ├── getEKK0361A010Info()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── addIpv6SODAft()
│   │   ├── hakkoSOD()
│   │   ├── idpwShkkaSaifuriOdrCtrl()
│   │   ├── jdgIpv6EKK0361A010()
│   │   ├── kaihkOdrCtrl()
│   │   ├── newKeiOdrCtrl()
│   │   └── setChgePWForIPv6()
│   └── wribInfoAddOdrCtrl()
│       └── hakkoSOD()
├── callEKK0401A010SC()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opHktgiOdrCtrl()
│   └── opSetOdrCtrl()
├── callEKK0411A010SC()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   └── opSetOdrCtrl()
├── callEKK0791A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── getKktkSvcKeiList()
│   ├── hakkoSOD()
│   ├── newEoMobile()
│   └── newKeiOdrCtrl()
├── callEKK0881A010_SC()
│   ├── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   └── getDammyPplanCd()
│       ├── hakkoSOD()
│       ├── koteiIpAd8DivOdrCtrl()
│       └── malwareBlockingDivOdrCtrl()
├── callEKK0891A010_SC()
│   ├── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   └── malwareBlockingDivOdrCtrl()
├── 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()
├── callEKK1041B001SC()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── bmpSwitchOdrCtrl()
│   ├── checkTakinoRT()
│   ├── chkOdrSette()
│   ├── cnclOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── findMobileStartOrderAtKK1041()
│   ├── findRadiusHasBeenSentSvc()
│   ├── findZ5OrderAtKK1041()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── is050AddOrderHakkoZumi()
│   ├── isItenNoGuideTokiChu()
│   ├── jdgIpv6()
│   ├── jdgIpv6EKK0361A010()
│   ├── jdgOdr163()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── opSetOdrCtrl()
│   ├── setChgePWForRouterConInfo()
│   ├── telNoChge()
│   ├── vLanIdChgOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   ├── findOlsOrderAtKK1041()
│   │   ├── hakkoSOD()
│   │   └── htelNoInfoChgeOdrCtrl()
│   ├── findZ1OrderAtKK1041()
│   │   ├── hakkoSOD()
│   │   ├── idpwShkkaSaifuriOdrCtrl()
│   │   └── htelNoAddOdrCtrl()
│   │       └── hakkoSOD()
│   └── findZ1OrderAtKK1041SvcKeiUcwk()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       └── opSetOdrCtrl()
├── callEKK1081B001SC()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── judgeOdrHakkoJoken4WiFiSpot()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── spotLoginSysidChgeOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── newEoMobile()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   └── newKeiOdrCtrl()
│       ├── adchgFixOdrCtrl()
│       └── hakkoSOD()
├── 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()
│       ├── 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()
│       └── addSODUQWIMAXKaitoriNew()
│           ├── adchgFixOdrCtrl()
│           ├── hakkoSOD()
│           ├── newEoMobile()
│           └── newKeiOdrCtrl()
├── callEKK1081E010SC()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   └── ksiDslOdrCtrl()
├── 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()
├── callEKK2091A010SC()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   └── getAdChgInfo()
│       ├── hakkoSOD()
│       └── htelItntokiOdrCtrl()
├── callEKK2101B001SC()
│   ├── hakkoSOD()
│   ├── htelItntokiOdrCtrl()
│   └── getKojiakState()
│       ├── hakkoSOD()
│       └── htelItntokiOdrCtrl()
├── callEKK2101B002SC()
│   ├── getAdChgInfo()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── callEKK2811A010SC()
│   ├── hakkoSOD()
│   ├── rtOpChgDivOdrCtrl()
│   ├── wribInfoAddOdrCtrl()
│   └── checkKKOPChanged()
│       ├── hakkoSOD()
│       └── 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()
├── callEKU0011A010SC()
│   ├── getKojiakState()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── callEKU0081B010SC()
│   ├── getKojiakState()
│   ├── hakkoSOD()
│   └── htelItntokiOdrCtrl()
├── callETU0011B010SC()
│   ├── isBmpOpenZumi()
│   └── isBmpOpenZumiDslNoDslNoChg()
├── callEZM0121A010SC()
│   ├── isMonaiBmp()
│   ├── isTajgsTelNo()
│   └── isTelnoSODJudge()
├── callEZM0321A010_SC()
│   ├── getDammyPplanCd()
│   ├── hakkoSOD()
│   ├── koteiIpAd8DivOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   └── getDummySvcKeiNo()
│       └── hakkoSOD()
└── 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 HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param, CAANMsg template)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

SC呼出用（サービスI/F実行用）の共通上り情報を生成し、CAANMsgテンプレートにマッピングする。  
paramから必要情報（ヘッダ・コントロールエリア情報）をテンプレートへセット。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgCmn(param, template)"] --> S1["Step1: param.getTelegramID() → TEMPLATE電文IDセット"]
  S1 --> S2["Step2: param.getUsecaseID() → ユースケースIDセット"]
  S2 --> S3["Step3: param.getOperationID() → オペレーションIDセット"]
  S3 --> S4["Step4: param.getCallType() → サービス呼出区分セット"]
  S4 --> S5["Step5: param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME) → 依頼先ホスト名セット"]
  S5 --> S6["Step6: param.getControlMapData(SCControlMapKeys.REQ_HOSTIP) → 依頼元IPアドレスセット"]
  S6 --> S7["Step7: param.getControlMapData(SCControlMapKeys.REQ_VIEWID) → 依頼元画面IDセット"]
  S7 --> S8["Step8: param.getControlMapData(SCControlMapKeys.OPERATOR_ID) → オペレータIDセット"]
  S8 --> S9["Step9: paramMapにテンプレートリストをセット"]
  S9 --> RET["return paramMap"]
```

**処理ステップ詳細:**

1. paramから電文ID、ユースケースID、オペレーションID、サービス呼出区分をテンプレートにセット。
2. コントロールエリアから依頼先ホスト名・IPアドレス・画面ID・オペレータIDをセット。
3. paramMap（SC呼出パラメータMap）にテンプレートリストをセットして返却。

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadOnly | SC呼出用パラメータ取得元 |
| 2 | template | CAANMsg | SC呼出用テンプレート |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | SC入力共通部編集のみ |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- callEKK0881A010_SC → editInMsgCmn

**呼出パス:**

```
callEKK0881A010_SC → editInMsgCmn
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editInMsgEDK0301B060()

#### 呼出元 (Reverse Call Tree) — 22 direct callers

```
editInMsgEDK0301B060() ← gọi bởi:
├── checkTakinoRT()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── 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()
        ├── cnclOdrCtrl()
        ├── courseChgeOdrCtrl()
        ├── dslOdrCtrl()
        ├── findZ1OrderAtKK1041()
        ├── findZ1OrderAtKK1041SvcKeiUcwk()
        ├── getZ1HakkoKh()
        ├── hakkoSOD()
        ├── htelNoAddOdrCtrl()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── idpwShkkaSaifuriOdrCtrl()
        ├── isKikiSeizoNoCheck()
        ├── jdgIpv6()
        ├── jdgIpv6EKK0361A010()
        ├── jdgOdr163()
        ├── kaihkOdrCtrl()
        ├── ksiDslFixOdrCtrl()
        ├── ksiDslOdrCtrl()
        ├── opSetOdrCtrl()
        ├── setChgePWForRouterConInfo()
        ├── telNoChge()
        ├── wribInfoAddOdrCtrl()
        ├── checkTakinoRT()
        │   ├── adchgFixOdrCtrl()
        │   ├── addIpv6SODAft()
        │   ├── bmpSwitchOdrCtrl()
        │   ├── cnclOdrCtrl()
        │   ├── courseChgeOdrCtrl()
        │   ├── hakkoSOD()
        │   ├── htelNoAddOdrCtrl()
        │   ├── idpwShkkaSaifuriOdrCtrl()
        │   ├── jdgIpv6EKK0361A010()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── newKeiOdrCtrl()
        │   ├── vLanIdChgOdrCtrl()
        │   ├── dslOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── findZ1OrderAtKK1041()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoAddOdrCtrl()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── htelNoDslOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoKaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── jdgIpv6()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── addIpv6SODAft()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── jdgIpv6EKK0361A010()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   ├── newKeiOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── jdgOdr163()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── courseChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── kaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── opSetOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── setChgePWForRouterConInfo()
        │   │   ├── hakkoSOD()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── telNoChge()
        │   │   ├── bmpSwitchOdrCtrl()
        │   │   └── hakkoSOD()
        │   └── wribInfoAddOdrCtrl()
        │       └── hakkoSOD()
        ├── getVAkikiInfo()
        │   ├── cnclOdrCtrl()
        │   ├── dslOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   ├── hakkoSOD()
        │   ├── htelNoDslOdrCtrl()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   ├── htelNoKaihkOdrCtrl()
        │   ├── kaihkOdrCtrl()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── opSetOdrCtrl()
        │   ├── getZ1HakkoKh()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   └── isKikiSeizoNoCheck()
        │       ├── cnclOdrCtrl()
        │       ├── dslOdrCtrl()
        │       ├── hakkoSOD()
        │       ├── htelNoDslOdrCtrl()
        │       ├── htelNoInfoChgeOdrCtrl()
        │       ├── htelNoKaihkOdrCtrl()
        │       ├── kaihkOdrCtrl()
        │       ├── ksiDslFixOdrCtrl()
        │       ├── ksiDslOdrCtrl()
        │       └── opSetOdrCtrl()
        ├── isRegalVaKiki()
        │   ├── hakkoSOD()
        │   └── htelNoInfoChgeOdrCtrl()
        └── vLanIdChgOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editInMsgEDK0301B060(IRequestParameterReadWrite param, String funcCd, String kktkSvcKeiNo, String kikiChgNo)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**返品機器取消一覧照会（EDK0301B060）のSC呼出用入力メッセージ（CAANMsg）を事前に編集・マッピングする処理。**
機器提供サービス契約番号や機器変更番号などの値をテンプレートにセットする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgEDK0301B060(param, funcCd, kktkSvcKeiNo, kikiChgNo)"] --> S1["テンプレートクラス名取得"]
  S1 --> S2["CAANMsgテンプレートへnullマッピング"]
  S2 --> S3["共通部設定（editBasicCmn呼出）"]
  S3 --> S4["テンプレートIDをセット"]
  S4 --> S5["機能コード（funcCd）をセット"]
  S5 --> IF1{"!JKKStringUtil.isNullBlank(kktkSvcKeiNo)"}
  IF1 -- "Yes" --> S6["KEY_KKTK_SVC_KEI_NOへkktkSvcKeiNoをセット"]
  IF1 -- "No" --> S7["KEY_KKTK_SVC_KEI_NOはセットしない"]
  S6 --> IF2
  S7 --> IF2
  IF2{"!JKKStringUtil.isNullBlank(kikiChgNo)"}
  IF2 -- "Yes" --> S8["KEY_KIKI_CHG_NOへkikiChgNoをセット"]
  IF2 -- "No" --> S9["KEY_KIKI_CHG_NOはセットしない"]
  S8 --> RET["editInMsgCmn(param, template)をreturn"]
  S9 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | !JKKStringUtil.isNullBlank(kktkSvcKeiNo) | - | KEY_KKTK_SVC_KEI_NOセット |
| 2 | !JKKStringUtil.isNullBlank(kikiChgNo) | - | KEY_KIKI_CHG_NOセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 各種リクエスト情報 |
| 2 | funcCd | String | 機能コード |
| 3 | kktkSvcKeiNo | String | 機器提供サービス契約番号 |
| 4 | kikiChgNo | String | 機器変更番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピング（SC呼出用パラメータ編集のみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- callEDK0301B060SC
- getShuriKokanBfKiki
- getVAkikiInfo
- isRegalVaKiki
- vLanIdChgOdrCtrl
- checkTakinoRT
- getZ1HakkoKh
- isKikiSeizoNoCheck
- htelNoInfoChgeOdrCtrl
- hakkoSOD
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- courseChgeOdrCtrl
- bmpSwitchOdrCtrl
- jdgIpv6EKK0361A010
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス（例）:**

```
callEDK0301B060SC → editInMsgEDK0301B060
getShuriKokanBfKiki → editInMsgEDK0301B060
...
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editInMsgEKK0341B001()

#### 呼出元 (Reverse Call Tree) — 22 direct callers

```
editInMsgEKK0341B001() ← gọi bởi:
├── checkTakinoRT()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callEKK0341B001SC()
    ├── 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()
        ├── cnclOdrCtrl()
        ├── courseChgeOdrCtrl()
        ├── dslOdrCtrl()
        ├── findZ1OrderAtKK1041()
        ├── findZ1OrderAtKK1041SvcKeiUcwk()
        ├── getZ1HakkoKh()
        ├── hakkoSOD()
        ├── htelNoAddOdrCtrl()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── idpwShkkaSaifuriOdrCtrl()
        ├── isKikiSeizoNoCheck()
        ├── jdgIpv6()
        ├── jdgIpv6EKK0361A010()
        ├── jdgOdr163()
        ├── kaihkOdrCtrl()
        ├── ksiDslFixOdrCtrl()
        ├── ksiDslOdrCtrl()
        ├── opSetOdrCtrl()
        ├── setChgePWForRouterConInfo()
        ├── telNoChge()
        ├── wribInfoAddOdrCtrl()
        ├── checkTakinoRT()
        │   ├── adchgFixOdrCtrl()
        │   ├── addIpv6SODAft()
        │   ├── bmpSwitchOdrCtrl()
        │   ├── cnclOdrCtrl()
        │   ├── courseChgeOdrCtrl()
        │   ├── hakkoSOD()
        │   ├── htelNoAddOdrCtrl()
        │   ├── idpwShkkaSaifuriOdrCtrl()
        │   ├── jdgIpv6EKK0361A010()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── newKeiOdrCtrl()
        │   ├── vLanIdChgOdrCtrl()
        │   ├── dslOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── findZ1OrderAtKK1041()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoAddOdrCtrl()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── htelNoDslOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoKaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── jdgIpv6()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── addIpv6SODAft()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── jdgIpv6EKK0361A010()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   ├── newKeiOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── jdgOdr163()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── courseChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── kaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── opSetOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── setChgePWForRouterConInfo()
        │   │   ├── hakkoSOD()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── telNoChge()
        │   │   ├── bmpSwitchOdrCtrl()
        │   │   └── hakkoSOD()
        │   └── wribInfoAddOdrCtrl()
        │       └── hakkoSOD()
        ├── getVAkikiInfo()
        │   ├── cnclOdrCtrl()
        │   ├── dslOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   ├── hakkoSOD()
        │   ├── htelNoDslOdrCtrl()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   ├── htelNoKaihkOdrCtrl()
        │   ├── kaihkOdrCtrl()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── opSetOdrCtrl()
        │   ├── getZ1HakkoKh()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   └── isKikiSeizoNoCheck()
        │       ├── cnclOdrCtrl()
        │       ├── dslOdrCtrl()
        │       ├── hakkoSOD()
        │       ├── htelNoDslOdrCtrl()
        │       ├── htelNoInfoChgeOdrCtrl()
        │       ├── htelNoKaihkOdrCtrl()
        │       ├── kaihkOdrCtrl()
        │       ├── ksiDslFixOdrCtrl()
        │       ├── ksiDslOdrCtrl()
        │       └── opSetOdrCtrl()
        ├── isRegalVaKiki()
        │   ├── hakkoSOD()
        │   └── htelNoInfoChgeOdrCtrl()
        └── vLanIdChgOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editInMsgEKK0341B001(IRequestParameterReadWrite param, String funcCd, String kikiSeizoNo, String taknkikiModelCd)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**機器製造番号での機器提供サービス契約一覧照会（EKK0341B001）のSC入力メッセージ編集処理。**
サービスコンポーネント実行前に、機器製造番号や宅内機器型式コードなどの値をテンプレートにセットする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgEKK0341B001(param, funcCd, kikiSeizoNo, taknkikiModelCd)"] --> S1["テンプレートクラス名取得"]
  S1 --> S2["CAANMsgテンプレートへnullマッピング"]
  S2 --> S3["共通部設定（editBasicCmn呼出）"]
  S3 --> S4["テンプレートIDをセット"]
  S4 --> S5["機能コード（funcCd）をセット"]
  S5 --> IF1{"!JKKStringUtil.isNullBlank(kikiSeizoNo)"}
  IF1 -- "Yes" --> S6["KEY_KIKI_SEIZO_NOへkikiSeizoNoをセット"]
  IF1 -- "No" --> S7["KEY_KIKI_SEIZO_NOはセットしない"]
  S6 --> IF2
  S7 --> IF2
  IF2{"!JKKStringUtil.isNullBlank(taknkikiModelCd)"}
  IF2 -- "Yes" --> S8["KEY_TAKNKIKI_MODEL_CDへtaknkikiModelCdをセット"]
  IF2 -- "No" --> S9["KEY_TAKNKIKI_MODEL_CDはセットしない"]
  S8 --> RET["editInMsgCmn(param, template)をreturn"]
  S9 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | !JKKStringUtil.isNullBlank(kikiSeizoNo) | - | KEY_KIKI_SEIZO_NOセット |
| 2 | !JKKStringUtil.isNullBlank(taknkikiModelCd) | - | KEY_TAKNKIKI_MODEL_CDセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 各種リクエスト情報 |
| 2 | funcCd | String | 機能コード |
| 3 | kikiSeizoNo | String | 機器製造番号 |
| 4 | taknkikiModelCd | String | 宅内機器型式コード |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピング（SC呼出用パラメータ編集のみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- callEKK0341B001SC
- getShuriKokanBfKiki
- getVAkikiInfo
- isRegalVaKiki
- vLanIdChgOdrCtrl
- checkTakinoRT
- getZ1HakkoKh
- isKikiSeizoNoCheck
- htelNoInfoChgeOdrCtrl
- hakkoSOD
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- courseChgeOdrCtrl
- bmpSwitchOdrCtrl
- jdgIpv6EKK0361A010
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス（例）:**

```
callEKK0341B001SC → editInMsgEKK0341B001
getShuriKokanBfKiki → editInMsgEKK0341B001
...
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editInMsgEKK0341B008()

#### 呼出元 (Reverse Call Tree) — 22 direct callers

```
editInMsgEKK0341B008() ← gọi bởi:
├── checkTakinoRT()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callEKK0341B008SCRireki()
    ├── 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()
        ├── cnclOdrCtrl()
        ├── courseChgeOdrCtrl()
        ├── dslOdrCtrl()
        ├── findZ1OrderAtKK1041()
        ├── findZ1OrderAtKK1041SvcKeiUcwk()
        ├── getZ1HakkoKh()
        ├── hakkoSOD()
        ├── htelNoAddOdrCtrl()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── idpwShkkaSaifuriOdrCtrl()
        ├── isKikiSeizoNoCheck()
        ├── jdgIpv6()
        ├── jdgIpv6EKK0361A010()
        ├── jdgOdr163()
        ├── kaihkOdrCtrl()
        ├── ksiDslFixOdrCtrl()
        ├── ksiDslOdrCtrl()
        ├── opSetOdrCtrl()
        ├── setChgePWForRouterConInfo()
        ├── telNoChge()
        ├── wribInfoAddOdrCtrl()
        ├── checkTakinoRT()
        │   ├── adchgFixOdrCtrl()
        │   ├── addIpv6SODAft()
        │   ├── bmpSwitchOdrCtrl()
        │   ├── cnclOdrCtrl()
        │   ├── courseChgeOdrCtrl()
        │   ├── hakkoSOD()
        │   ├── htelNoAddOdrCtrl()
        │   ├── idpwShkkaSaifuriOdrCtrl()
        │   ├── jdgIpv6EKK0361A010()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── newKeiOdrCtrl()
        │   ├── vLanIdChgOdrCtrl()
        │   ├── dslOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── findZ1OrderAtKK1041()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoAddOdrCtrl()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── htelNoDslOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── htelNoKaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── jdgIpv6()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── addIpv6SODAft()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── jdgIpv6EKK0361A010()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   ├── newKeiOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   ├── jdgOdr163()
        │   │   ├── adchgFixOdrCtrl()
        │   │   ├── courseChgeOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── kaihkOdrCtrl()
        │   │   └── hakkoSOD()
        │   ├── opSetOdrCtrl()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   └── ksiDslOdrCtrl()
        │   ├── setChgePWForRouterConInfo()
        │   │   ├── hakkoSOD()
        │   │   └── idpwShkkaSaifuriOdrCtrl()
        │   ├── telNoChge()
        │   │   ├── bmpSwitchOdrCtrl()
        │   │   └── hakkoSOD()
        │   └── wribInfoAddOdrCtrl()
        │       └── hakkoSOD()
        ├── getVAkikiInfo()
        │   ├── cnclOdrCtrl()
        │   ├── dslOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   ├── hakkoSOD()
        │   ├── htelNoDslOdrCtrl()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   ├── htelNoKaihkOdrCtrl()
        │   ├── kaihkOdrCtrl()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   ├── opSetOdrCtrl()
        │   ├── getZ1HakkoKh()
        │   │   ├── cnclOdrCtrl()
        │   │   ├── dslOdrCtrl()
        │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   │   ├── hakkoSOD()
        │   │   ├── htelNoDslOdrCtrl()
        │   │   ├── htelNoInfoChgeOdrCtrl()
        │   │   ├── htelNoKaihkOdrCtrl()
        │   │   ├── kaihkOdrCtrl()
        │   │   ├── ksiDslFixOdrCtrl()
        │   │   ├── ksiDslOdrCtrl()
        │   │   └── opSetOdrCtrl()
        │   └── isKikiSeizoNoCheck()
        │       ├── cnclOdrCtrl()
        │       ├── dslOdrCtrl()
        │       ├── hakkoSOD()
        │       ├── htelNoDslOdrCtrl()
        │       ├── htelNoInfoChgeOdrCtrl()
        │       ├── htelNoKaihkOdrCtrl()
        │       ├── kaihkOdrCtrl()
        │       ├── ksiDslFixOdrCtrl()
        │       ├── ksiDslOdrCtrl()
        │       └── opSetOdrCtrl()
        ├── isRegalVaKiki()
        │   ├── hakkoSOD()
        │   └── htelNoInfoChgeOdrCtrl()
        └── vLanIdChgOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editInMsgEKK0341B008(IRequestParameterReadWrite param, String funcCd, String svcKeiNo, String kktkSvcKeiNo)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**機器提供サービス契約一覧照会（EKK0341B008）のSC呼出用入力メッセージ（CAANMsg）を事前に編集・マッピングする処理。**
サービス契約番号、機器提供サービス契約番号等の業務データをテンプレートにセットする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgEKK0341B008(param, funcCd, svcKeiNo, kktkSvcKeiNo)"] --> S1["テンプレートクラス名取得"]
  S1 --> S2["CAANMsgテンプレートへnullマッピング"]
  S2 --> S3["共通部設定（editBasicCmn呼出）"]
  S3 --> S4["テンプレートIDをセット"]
  S4 --> S5["機能コード（funcCd）をセット"]
  S5 --> IF1{"!JKKStringUtil.isNullBlank(svcKeiNo)"}
  IF1 -- "Yes" --> S6["KEY_SVC_KEI_NOへsvcKeiNoをセット"]
  IF1 -- "No" --> S7["KEY_SVC_KEI_NOはセットしない"]
  S6 --> IF2
  S7 --> IF2
  IF2{"!JKKStringUtil.isNullBlank(kktkSvcKeiNo)"}
  IF2 -- "Yes" --> S8["KEY_KKTK_SVC_KEI_NOへkktkSvcKeiNoをセット"]
  IF2 -- "No" --> S9["KEY_KKTK_SVC_KEI_NOはセットしない"]
  S8 --> RET["editInMsgCmn(param, template)をreturn"]
  S9 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | !JKKStringUtil.isNullBlank(svcKeiNo) | - | KEY_SVC_KEI_NOセット |
| 2 | !JKKStringUtil.isNullBlank(kktkSvcKeiNo) | - | KEY_KKTK_SVC_KEI_NOセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 各種リクエスト情報 |
| 2 | funcCd | String | 機能コード |
| 3 | svcKeiNo | String | サービス契約番号 |
| 4 | kktkSvcKeiNo | String | 機器提供サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピング（SC呼出用パラメータ編集のみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- callEKK0341B008SCRireki
- getShuriKokanBfKiki
- getVAkikiInfo
- isRegalVaKiki
- vLanIdChgOdrCtrl
- checkTakinoRT
- getZ1HakkoKh
- isKikiSeizoNoCheck
- htelNoInfoChgeOdrCtrl
- hakkoSOD
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- courseChgeOdrCtrl
- bmpSwitchOdrCtrl
- jdgIpv6EKK0361A010
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス（例）:**

```
callEKK0341B008SCRireki → editInMsgEKK0341B008
getShuriKokanBfKiki → editInMsgEKK0341B008
...
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editInMsgEKK0341B021()

#### 呼出元 (Reverse Call Tree) — 29 direct callers

```
editInMsgEKK0341B021() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [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]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── 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()
    │   ├── hakkoSOD()
    │   ├── htelNoAddOdrCtrl()
    │   ├── idpwShkkaSaifuriOdrCtrl()
    │   ├── jdgIpv6EKK0361A010()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── newKeiOdrCtrl()
    │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── cnclOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── ksiDslOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── findZ1OrderAtKK1041()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoAddOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   └── opSetOdrCtrl()
    │   ├── htelNoDslOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── jdgIpv6()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── addIpv6SODAft()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── newKeiOdrCtrl()
    │   │   ├── opSetOdrCtrl()
    │   │   └── jdgIpv6EKK0361A010()
    │   │       ├── adchgFixOdrCtrl()
    │   │       ├── addIpv6SODAft()
    │   │       ├── hakkoSOD()
    │   │       ├── kaihkOdrCtrl()
    │   │       └── newKeiOdrCtrl()
    │   ├── jdgOdr163()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   └── courseChgeOdrCtrl()
    │   │       ├── adchgFixOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── kaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── opSetOdrCtrl()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   └── ksiDslOdrCtrl()
    │   ├── setChgePWForRouterConInfo()
    │   │   ├── hakkoSOD()
    │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   ├── telNoChge()
    │   │   ├── hakkoSOD()
    │   │   └── bmpSwitchOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── vLanIdChgOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── wribInfoAddOdrCtrl()
    │       └── hakkoSOD()
    ├── getVAkikiInfo()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── opSetOdrCtrl()
    │   ├── getZ1HakkoKh()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   └── opSetOdrCtrl()
    │   └── isKikiSeizoNoCheck()
    │       ├── cnclOdrCtrl()
    │       ├── dslOdrCtrl()
    │       ├── hakkoSOD()
    │       ├── htelNoDslOdrCtrl()
    │       ├── htelNoInfoChgeOdrCtrl()
    │       ├── htelNoKaihkOdrCtrl()
    │       ├── kaihkOdrCtrl()
    │       ├── ksiDslFixOdrCtrl()
    │       ├── ksiDslOdrCtrl()
    │       └── opSetOdrCtrl()
    └── rtOpChgDivOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editInMsgEKK0341B021(IRequestParameterReadWrite param, String funcCd, String svcKeiNo)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**機器提供サービス契約一覧照会（予約）用のSC呼出入力メッセージ編集（CAANMsg生成）。**
サービス契約番号等をテンプレートにセットし、SC呼出前のデータ整形を行う。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgEKK0341B021(param, funcCd, svcKeiNo)"] --> S1["テンプレートクラス名取得"]
  S1 --> S2["CAANMsgテンプレートへnullマッピング"]
  S2 --> S3["共通部設定（editBasicCmn呼出）"]
  S3 --> S4["テンプレートIDをセット"]
  S4 --> S5["機能コード（funcCd）をセット"]
  S5 --> IF1{"!JKKStringUtil.isNullBlank(svcKeiNo)"}
  IF1 -- "Yes" --> S6["KEY_SVC_KEI_NOへsvcKeiNoをセット"]
  IF1 -- "No" --> S7["KEY_SVC_KEI_NOはセットしない"]
  S6 --> RET["editInMsgCmn(param, template)をreturn"]
  S7 --> RET

  style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | !JKKStringUtil.isNullBlank(svcKeiNo) | - | KEY_SVC_KEI_NOセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 各種リクエスト情報 |
| 2 | funcCd | String | 機能コード |
| 3 | svcKeiNo | String | サービス契約番号 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピング（SC呼出用パラメータ編集のみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- callEKK0341B021SC
- rtOpChgDivOdrCtrl
- getVAkikiInfo
- checkTakinoRT
- hakkoSOD
- getZ1HakkoKh
- isKikiSeizoNoCheck
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- vLanIdChgOdrCtrl
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- courseChgeOdrCtrl
- bmpSwitchOdrCtrl
- jdgIpv6EKK0361A010
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス（例）:**

```
callEKK0341B021SC → editInMsgEKK0341B021
rtOpChgDivOdrCtrl → editInMsgEKK0341B021
...
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editInMsgEKK0341B029()

#### 呼出元 (Reverse Call Tree) — 28 direct callers

```
editInMsgEKK0341B029() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [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]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callEKK0341B029SC()
    ├── 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()
    │   ├── hakkoSOD()
    │   ├── htelNoAddOdrCtrl()
    │   ├── idpwShkkaSaifuriOdrCtrl()
    │   ├── jdgIpv6EKK0361A010()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── newKeiOdrCtrl()
    │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── cnclOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── ksiDslOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── findZ1OrderAtKK1041()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoAddOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   └── opSetOdrCtrl()
    │   ├── htelNoDslOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── jdgIpv6()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── addIpv6SODAft()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── newKeiOdrCtrl()
    │   │   ├── opSetOdrCtrl()
    │   │   └── jdgIpv6EKK0361A010()
    │   │       ├── adchgFixOdrCtrl()
    │   │       ├── addIpv6SODAft()
    │   │       ├── hakkoSOD()
    │   │       ├── kaihkOdrCtrl()
    │   │       └── newKeiOdrCtrl()
    │   ├── jdgOdr163()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   └── courseChgeOdrCtrl()
    │   │       ├── adchgFixOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── kaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── opSetOdrCtrl()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   └── ksiDslOdrCtrl()
    │   ├── setChgePWForRouterConInfo()
    │   │   ├── hakkoSOD()
    │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   ├── telNoChge()
    │   │   ├── hakkoSOD()
    │   │   └── bmpSwitchOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── vLanIdChgOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── wribInfoAddOdrCtrl()
    │       └── hakkoSOD()
    └── getVAkikiInfo()
        ├── cnclOdrCtrl()
        ├── dslOdrCtrl()
        ├── findZ1OrderAtKK1041SvcKeiUcwk()
        ├── hakkoSOD()
        ├── htelNoDslOdrCtrl()
        ├── htelNoInfoChgeOdrCtrl()
        ├── htelNoKaihkOdrCtrl()
        ├── kaihkOdrCtrl()
        ├── ksiDslFixOdrCtrl()
        ├── ksiDslOdrCtrl()
        ├── opSetOdrCtrl()
        ├── getZ1HakkoKh()
        │   ├── cnclOdrCtrl()
        │   ├── dslOdrCtrl()
        │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
        │   ├── hakkoSOD()
        │   ├── htelNoDslOdrCtrl()
        │   ├── htelNoInfoChgeOdrCtrl()
        │   ├── htelNoKaihkOdrCtrl()
        │   ├── kaihkOdrCtrl()
        │   ├── ksiDslFixOdrCtrl()
        │   ├── ksiDslOdrCtrl()
        │   └── opSetOdrCtrl()
        └── isKikiSeizoNoCheck()
            ├── cnclOdrCtrl()
            ├── dslOdrCtrl()
            ├── hakkoSOD()
            ├── htelNoDslOdrCtrl()
            ├── htelNoInfoChgeOdrCtrl()
            ├── htelNoKaihkOdrCtrl()
            ├── kaihkOdrCtrl()
            ├── ksiDslFixOdrCtrl()
            ├── ksiDslOdrCtrl()
            └── opSetOdrCtrl()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editInMsgEKK0341B029(IRequestParameterReadWrite param, String funcCd, String kktkSvcKeiNo, String kikiChgNo, String rsvAplyYmd)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**機器変更番号での機器提供サービス契約一覧照会（EKK0341B029）のSC呼出用入力メッセージ編集（CAANMsg生成）。**
機器提供サービス契約番号、機器変更番号、予約適用年月日等をテンプレートにセットする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsgEKK0341B029(param, funcCd, kktkSvcKeiNo, kikiChgNo, rsvAplyYmd)"] --> S1["テンプレートクラス名取得"]
  S1 --> S2["CAANMsgテンプレートへnullマッピング"]
  S2 --> S3["共通部設定（editBasicCmn呼出）"]
  S3 --> S4["テンプレートIDをセット"]
  S4 --> S5["機能コード（funcCd）をセット"]
  S5 --> IF1{"!JKKStringUtil.isNullBlank(kktkSvcKeiNo)"}
  IF1 -- "Yes" --> S6["KEY_KKTK_SVC_KEI_NOへkktkSvcKeiNoをセット"]
  IF1 -- "No" --> S7["KEY_KKTK_SVC_KEI_NOはセットしない"]
  S6 --> IF2
  S7 --> IF2
  IF2{"!JKKStringUtil.isNullBlank(kikiChgNo)"}
  IF2 -- "Yes" --> S8["KEY_KIKI_CHG_NOへkikiChgNoをセット"]
  IF2 -- "No" --> S9["KEY_KIKI_CHG_NOはセットしない"]
  S8 --> IF3
  S9 --> IF3
  IF3{"!JKKStringUtil.isNullBlank(rsvAplyYmd)"}
  IF3 -- "Yes" --> S10["KEY_RSV_APLY_YMDへrsvAplyYmdをセット"]
  IF3 -- "No" --> S11["KEY_RSV_APLY_YMDはセットしない"]
  S10 --> RET["editInMsgCmn(param, template)をreturn"]
  S11 --> RET

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | !JKKStringUtil.isNullBlank(kktkSvcKeiNo) | - | KEY_KKTK_SVC_KEI_NOセット |
| 2 | !JKKStringUtil.isNullBlank(kikiChgNo) | - | KEY_KIKI_CHG_NOセット |
| 3 | !JKKStringUtil.isNullBlank(rsvAplyYmd) | - | KEY_RSV_APLY_YMDセット |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 各種リクエスト情報 |
| 2 | funcCd | String | 機能コード |
| 3 | kktkSvcKeiNo | String | 機器提供サービス契約番号 |
| 4 | kikiChgNo | String | 機器変更番号 |
| 5 | rsvAplyYmd | String | 予約適用年月日 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピング（SC呼出用パラメータ編集のみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- callEKK0341B029SC
- getVAkikiInfo
- checkTakinoRT
- getZ1HakkoKh
- isKikiSeizoNoCheck
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- vLanIdChgOdrCtrl
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- idpwShkkaSaifuriOdrCtrl
- htelNoAddOdrCtrl
- courseChgeOdrCtrl
- hakkoSOD
- bmpSwitchOdrCtrl
- jdgIpv6EKK0361A010
- ksiDslOdrCtrl
- cnclOdrCtrl
- ksiDslFixOdrCtrl

**呼出パス（例）:**

```
callEKK0341B029SC → editInMsgEKK0341B029
getVAkikiInfo → editInMsgEKK0341B029
...
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP()

#### 呼出元 (Reverse Call Tree) — 28 direct callers

```
editResultRP() ← gọi bởi:
├── callEDK0301B060SC()    [trực tiếp]
├── callEKK0341B001SC()    [trực tiếp]
├── callEKK0341B008SCRireki()    [trực tiếp]
├── callEKK0341B021SC()    [trực tiếp]
├── callEKK0341B029SC()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callSvcInter()
    ├── 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()
    ├── rtOpChgDivOdrCtrl()
    ├── 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()
    │       ├── wribInfoAddOdrCtrl()
    │       ├── isRegalVaKiki()
    │       │   ├── hakkoSOD()
    │       │   └── htelNoInfoChgeOdrCtrl()
    │       └── vLanIdChgOdrCtrl()
    │           └── hakkoSOD()
    ├── 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()
    ├── 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()
    ├── 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()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoAddOdrCtrl()
    │   │   ├── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── jdgIpv6EKK0361A010()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── newKeiOdrCtrl()
    │   │   ├── vLanIdChgOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── ksiDslOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoAddOdrCtrl()
    │   │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── jdgIpv6()
    │   │   │   ├── adchgFixOdrCtrl()
    │   │   │   ├── addIpv6SODAft()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── jdgIpv6EKK0361A010()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   ├── newKeiOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   ├── jdgOdr163()
    │   │   │   ├── adchgFixOdrCtrl()
    │   │   │   ├── courseChgeOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── kaihkOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── opSetOdrCtrl()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── ksiDslOdrCtrl()
    │   │   ├── setChgePWForRouterConInfo()
    │   │   │   ├── hakkoSOD()
    │   │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── telNoChge()
    │   │   │   ├── bmpSwitchOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── wribInfoAddOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── getVAkikiInfo()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── opSetOdrCtrl()
    │   │   ├── getZ1HakkoKh()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   └── isKikiSeizoNoCheck()
    │   │       ├── cnclOdrCtrl()
    │   │       ├── dslOdrCtrl()
    │   │       ├── hakkoSOD()
    │   │       ├── htelNoDslOdrCtrl()
    │   │       ├── htelNoInfoChgeOdrCtrl()
    │   │       ├── htelNoKaihkOdrCtrl()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   └── rtOpChgDivOdrCtrl()
    │       └── hakkoSOD()
    └── 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()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param, Object[][] contents)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

サービスコンポーネントのSC呼出後、レスポンス内容をIRequestParameterReadWrite paramと指定されたcontents配列にマッピングする。  
エラー情報や各項目の値を業務データとして格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP(msgList, param, contents)"] --> S1["Step1: CAANMsg配列取得(msgList.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["Step2: リターンコード取得(msgList.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["Step3: ステータス値取得(template.getInt(JCMConstants.STATUS_INT_KEY))"]
  S3 --> IF1{"if: returnCode.intValue() != 0"}
  IF1 -- "Yes" --> S4["Step4: エラーメッセージ定義有無チェック"]
  S4 --> IF2{"if: JCMAPLConstMgr.getString('RETURN_MESSAGE_'+String.format('%1$04d', templateStatus)) == null"}
  IF2 -- "Yes" --> S5["Step5: param.getControlMapData(SCControlMapKeys.RETURN_CODE)"]
  IF2 -- "No" --> S6["Step6: param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S5 --> S7["Step7: Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE))"]
  S7 --> S8["Step8: param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S6 --> S8
  IF1 -- "No" --> S9["Step9: ステータス値比較 templateStatus > bpStatus"]
  S9 --> IF3{"if: templateStatus > bpStatus"}
  IF3 -- "Yes" --> S10["Step10: ステータス上書き"]
  IF3 -- "No" --> S11["Step11: contents配列ループ"]
  S11 --> FOR1["for: contents[i][0]"]
  FOR1 --> IF4{"if: element.indexOf('_err') > 0"}
  IF4 -- "Yes" --> IF5{"if: !template.isNull(element)"}
  IF5 -- "Yes" --> IF6{"if: !inMap.containsKey(element)"}
  IF6 -- "Yes" --> S12["Step12: inMap.put(element, template.getString(element))"]
  IF6 -- "No" --> S13["Step13: 何もしない"]
  IF5 -- "No" --> S13
  IF4 -- "No" --> S13
  S12 --> S14["Step14: エラー情報のマッピング"]
  S13 --> S14
  S14 --> IF7{"if: errList == null"}
  IF7 -- "Yes" --> S15["Step15: errList=TemplateErrorUtil.getErrorInfo(msgList, errList)"]
  IF7 -- "No" --> S16["Step16: param.setControlMapData(SCControlMapKeys.ERROR_INFO, errList)"]
  S15 --> S16
  S16 --> RET["return param"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
```

**処理ステップ詳細:**

1. SC戻り値からCAANMsg配列を取得。
2. リターンコードとステータス値取得。
3. エラー判定し、RETURN_CODE/RETURN_MESSAGEを再設定。
4. contents配列ループで'_err'付き要素に対してinMapへセット。
5. エラー情報のマッピング。
6. errListがnullならTemplateErrorUtilで取得・設定。
7. param返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode.intValue() != 0` | - | エラーメッセージ定義有無チェック |
| 2 | `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null` | - | paramからRETURN_CODE取得 |
| 3 | `templateStatus > bpStatus` | - | ステータス上書き |
| 4 | `element.indexOf("_err") > 0` | - | エラー情報セット |
| 5 | `!template.isNull(element)` | - | inMap.containsKeyチェック |
| 6 | `!inMap.containsKey(element)` | - | inMap.put実行 |
| 7 | `errList == null` | - | TemplateErrorUtilで取得 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスIF呼出結果 |
| 2 | param | IRequestParameterReadWrite | 業務パラメータ |
| 3 | contents | Object[][] | マッピング対象フィールド一覧 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | マッピングのみ、CRUDなし |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- callSvcInter → editResultRP

**呼出パス:**

```
callSvcInter → editResultRP
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0081A010CBS()

#### 呼出元 (Reverse Call Tree) — 9 direct callers

```
editResultRP_EKK0081A010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── opHktgiOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
└── getSvcKeiInfo()
    ├── courseChgeOdrCtrl()
    ├── hakkoSOD()
    ├── adchgFixOdrCtrl()
    │   └── hakkoSOD()
    ├── hakkoCourseChgSOD()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── courseChgeOdrCtrl()
    │       ├── adchgFixOdrCtrl()
    │       └── hakkoSOD()
    ├── koteiIpAd8DivOdrCtrl()
    │   └── hakkoSOD()
    ├── malwareBlockingDivOdrCtrl()
    │   └── hakkoSOD()
    ├── opHktgiOdrCtrl()
    │   └── hakkoSOD()
    └── vLanIdVaChangeOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0081A010CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

「サービス契約一意照会」サービスコンポーネントの実行結果をIRequestParameterReadWriteへ業務データおよびエラー情報としてマッピングする。  
SCからのCAANMsgリストを業務用データマップへ展開し、各種返却項目やエラー情報を設定する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0081A010CBS(msgList, param)"] --> S1["msgList.get(JCMConstants.TEMPLATE_LIST_KEY)でテンプレート取得"]
  S1 --> S2["msgList.get(JCMConstants.RET_CD_INT_KEY)でリターンコード取得"]
  S2 --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4["dataMap新規作成"]
  IF1 -- "No" --> S5["dataMap利用"]
  S4 --> S6
  S5 --> S6
  S6 --> S7["parentTemplate.getMsgData().get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST)で業務明細取得"]
  S7 --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S8["dataList新規作成"]
  IF2 -- "No" --> S9["dataList利用"]
  S8 --> S10
  S9 --> S10
  S10 --> IF3{"templateArray != null"}
  IF3 -- "Yes" --> FOR1["for("i=0; i<templateArray.length; i++")"]
  FOR1 --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S11["dataList.add(new HashMap())"]
  IF4 -- "No" --> S12["dataList.get(i)"]
  S11 --> S13
  S12 --> S13
  S13 --> IF5{"childTemplate.isNull(EKK0081A010CBSMsg1List.GENE_ADD_DTM)"}
  IF5 -- "Yes" --> S14["childMap.put('gene_add_dtm', '')"]
  IF5 -- "No" --> S15["childMap.put('gene_add_dtm', childTemplate.getString(...))"]
  S14 --> S16
  S15 --> S16
  S16 --> IF6{"childTemplate.isNull(EKK0081A010CBSMsg1List.MSKM_DTL_NO)"}
  IF6 -- "Yes" --> S17["childMap.put('mskm_dtl_no', '')"]
  IF6 -- "No" --> S18["childMap.put('mskm_dtl_no', childTemplate.getString(...))"]
  S17 --> S19
  S18 --> S19
  S19 --> IF7{"childTemplate.isNull(EKK0081A010CBSMsg1List.PRC_GRP_CD)"}
  IF7 -- "Yes" --> S20["childMap.put('prc_grp_cd', '')"]
  IF7 -- "No" --> S21["childMap.put('prc_grp_cd', childTemplate.getString(...))"]
  S20 --> S22
  S21 --> S22
  S22 --> IF8{"childTemplate.isNull(EKK0081A010CBSMsg1List.PCRS_CD)"}
  IF8 -- "Yes" --> S23["childMap.put('pcrs_cd', '')"]
  IF8 -- "No" --> S24["childMap.put('pcrs_cd', childTemplate.getString(...))"]
  S23 --> S25
  S24 --> S25
  S25 --> IF9{"childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_KEI_STAT)"}
  IF9 -- "Yes" --> S26["childMap.put('svc_kei_stat', '')"]
  IF9 -- "No" --> S27["childMap.put('svc_kei_stat', childTemplate.getString(...))"]
  S26 --> S28
  S27 --> S28
  S28 --> IF10{"childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_YMD)"}
  IF10 -- "Yes" --> S29["childMap.put('svc_pause_ymd', '')"]
  IF10 -- "No" --> S30["childMap.put('svc_pause_ymd', childTemplate.getString(...))"]
  S29 --> S31
  S30 --> S31
  S31 --> IF11{"childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD)"}
  IF11 -- "Yes" --> S32["childMap.put('svc_pause_rls_ymd', '')"]
  IF11 -- "No" --> S33["childMap.put('svc_pause_rls_ymd', childTemplate.getString(...))"]
  S32 --> S34
  S33 --> S34
  S34 --> IF12{"childTemplate.isNull(EKK0081A010CBSMsg1List.PAUSE_STP_CD)"}
  IF12 -- "Yes" --> S35["childMap.put('pause_stp_cd', '')"]
  IF12 -- "No" --> S36["childMap.put('pause_stp_cd', childTemplate.getString(...))"]
  S35 --> S37
  S36 --> S37
  S37 --> IF13{"childTemplate.isNull(EKK0081A010CBSMsg1List.PPLAN_CD)"}
  IF13 -- "Yes" --> S38["childMap.put('pplan_cd', '')"]
  IF13 -- "No" --> S39["childMap.put('pplan_cd', childTemplate.getString(...))"]
  S38 --> S40
  S39 --> S40
  S40 --> IF14{"childTemplate.isNull(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO)"}
  IF14 -- "Yes" --> S41["childMap.put('tk_hoshiki_kei_no', '')"]
  IF14 -- "No" --> S42["childMap.put('tk_hoshiki_kei_no', childTemplate.getString(...))"]
  S41 --> S43
  S42 --> S43
  S43 --> S44["dataMap.put('EKK0081A010CBSMsg1List', dataList)"]
  S44 --> S45["this.editErrorInfo_EKK0081A010CBS(param, templates, return_code)"]
  S45 --> S46["param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S46 --> IF15{"errList == null"}
  IF15 -- "Yes" --> S47["errList新規作成"]
  IF15 -- "No" --> S48["errList利用"]
  S47 --> S49
  S48 --> S49
  S49 --> IF16{"errList != null && !errList.isEmpty()"}
  IF16 -- "Yes" --> S50["CCExceptionスロー"]
  IF16 -- "No" --> RET["return param"]

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
  style IF8 fill:#ffcc00
  style IF9 fill:#ffcc00
  style IF10 fill:#ffcc00
  style IF11 fill:#ffcc00
  style IF12 fill:#ffcc00
  style IF13 fill:#ffcc00
  style IF14 fill:#ffcc00
  style IF15 fill:#ffcc00
  style IF16 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null | - | 新規作成 |
| 2 | dataList == null | - | 新規作成 |
| 3 | templateArray != null | - | forループへ |
| 4 | i >= dataList.size() | - | dataList.add(new HashMap()) |
| 5 | childTemplate.isNull(EKK0081A010CBSMsg1List.GENE_ADD_DTM) | - | 空文字セット |
| 6 | childTemplate.isNull(EKK0081A010CBSMsg1List.MSKM_DTL_NO) | - | 空文字セット |
| 7 | childTemplate.isNull(EKK0081A010CBSMsg1List.PRC_GRP_CD) | - | 空文字セット |
| 8 | childTemplate.isNull(EKK0081A010CBSMsg1List.PCRS_CD) | - | 空文字セット |
| 9 | childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_KEI_STAT) | - | 空文字セット |
| 10 | childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_YMD) | - | 空文字セット |
| 11 | childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD) | - | 空文字セット |
| 12 | childTemplate.isNull(EKK0081A010CBSMsg1List.PAUSE_STP_CD) | - | 空文字セット |
| 13 | childTemplate.isNull(EKK0081A010CBSMsg1List.PPLAN_CD) | - | 空文字セット |
| 14 | childTemplate.isNull(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO) | - | 空文字セット |
| 15 | errList == null | - | 新規作成 |
| 16 | errList != null && !errList.isEmpty() | - | CCExceptionスロー |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SCからの戻り値データ |
| 2 | param | IRequestParameterReadWrite | 編集対象リクエスト/レスポンス |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データ変換のみ（CRUD操作なし） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- getSvcKeiInfo → editResultRP_EKK0081A010CBS
- koteiIpAd8DivOdrCtrl → editResultRP_EKK0081A010CBS
- ...他、多数

**呼出パス:**
```
[getSvcKeiInfo] → [editResultRP_EKK0081A010CBS] → [editErrorInfo_EKK0081A010CBS]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0081B004SC()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private ArrayList<HashMap<String, Object>> editResultRP_EKK0081B004SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<HashMap<String, Object>>`

---

#### 1. 役割

EKK0081B004（サービス契約一覧照会（SYSID））のSC実行後、戻り値を業務用リスト（ArrayList<HashMap<String, Object>>）とparamにマッピングする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0081B004SC(result, param)"] --> S1["Step1: CAANMsg配列取得(result.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["Step2: リターンコード取得(result.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["Step3: ステータス値取得(template.getInt(EKK0081B004CBSMsg.STATUS))"]
  S3 --> IF1{"if: returnCode != 0"}
  IF1 -- "Yes" --> S4["Step4: エラーメッセージ定義有無チェック"]
  S4 --> IF2{"if: JCMAPLConstMgr.getString('RETURN_MESSAGE_'+String.format('%1$04d', templateStatus)) == null"}
  IF2 -- "Yes" --> S5["Step5: param.getControlMapData(SCControlMapKeys.RETURN_CODE)"]
  IF2 -- "No" --> S6["Step6: param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S5 --> S7["Step7: Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE))"]
  S7 --> S8["Step8: param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S6 --> S8
  IF1 -- "No" --> S9["Step9: ステータス値比較 templateStatus > bpStatus"]
  S9 --> IF3{"if: templateStatus > bpStatus"}
  IF3 -- "Yes" --> S10["Step10: ステータス上書き"]
  IF3 -- "No" --> S11["Step11: エラーマップ取得 param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S11 --> IF4{"if: errList == null"}
  IF4 -- "Yes" --> S12["Step12: errList=TemplateErrorUtil.getErrorInfo(result, errList)"]
  IF4 -- "No" --> S13["Step13: エラー・例外処理"]
  S12 --> S14["Step14: 各CAANMsg明細配列ループ"]
  S14 --> FOR1["for: childTemplates配列"]
  FOR1 --> S15["Step15: retList.add(childTemplates[i].getMsgData())"]
  S15 --> RET["return retList"]
  S13 --> RET
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
```

**処理ステップ詳細:**

1. SC戻り値からCAANMsg配列を取得。
2. リターンコード取得。
3. ステータス値取得。
4. エラーメッセージ定義有無を判定し、paramのRETURN_CODE/RETURN_MESSAGEを再設定。
5. ステータス値がBP側より大きい場合は上書き。
6. エラーマップ（errList）がnullならTemplateErrorUtilで取得・設定。
7. childTemplates配列の各要素ごとにgetMsgData()で業務データリストに追加。
8. retListを返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode != 0` | - | エラーメッセージ定義有無チェック |
| 2 | `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null` | - | paramからRETURN_CODE取得 |
| 3 | `templateStatus > bpStatus` | - | ステータス上書き |
| 4 | `errList == null` | - | TemplateErrorUtilで取得 |
| 5 | `0 != returnCode || 0 != templateStatus` | - | SCCallException throw |
| 6 | for childTemplates配列 | - | 明細データループ |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | サービスIF呼出結果 |
| 2 | param | IRequestParameterReadWrite | 業務パラメータ。マッピング結果格納先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | EKK0081B004 | サービス契約一覧照会 | サービス契約 | SC明細データ・エラー情報をマッピング |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| 1 | SCCallException | Error | SC呼出時のリターンコード異常・テンプレートステータス異常時 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- editResultRP_EKK0081B004SC（直接呼出）

**呼出パス:**

```
editResultRP_EKK0081B004SC → TemplateErrorUtil.getErrorInfo
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| EKK0081B004 | R | サービス契約 |

---

---

### editResultRP_EKK0161B003CBS()

#### 呼出元 (Reverse Call Tree) — 4 direct callers

```
editResultRP_EKK0161B003CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
└── getSvcKeiUtwkListSysid()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    └── newKeiOdrCtrl()
        ├── hakkoSOD()
        └── adchgFixOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0161B003CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

サービス契約内訳一覧照会（SYSID）のSC戻り値（CAANMsg配列や各種業務データ）をIRequestParameterReadWriteパラメータへ必要な形式でマッピングする。業務データ（サービス契約内訳番号/サービス名/料金グループ名/料金コース名/料金プラン名/サービス契約内訳ステータス等）をリスト化し、エラー時は例外も生成。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0161B003CBS(msgList, param)"] --> S1["msgList.get(JCMConstants.TEMPLATE_LIST_KEY)でCAANMsg配列取得"]
  S1 --> S2["msgList.get(JCMConstants.RET_CD_INT_KEY)でリターンコード取得"]
  S2 --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4["HashMap新規生成しparam.setData"]
  IF1 -- "No" --> S5["dataMapそのまま利用"]
  S4 --> S5
  S5 --> S6["parentTemplate.getMsgData().get(EKK0161B003CBSMsg.EKK0161B003CBSMSG1LIST)で明細リスト取得"]
  S6 --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S7["新規dataList生成"]
  IF2 -- "No" --> S8["dataListそのまま利用"]
  S7 --> S8
  S8 --> IF3{"templateArray != null"}
  IF3 -- "Yes" --> LOOP["for i=0..templateArray.length-1 明細分ループ"]
  LOOP --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S9["dataList.add(new HashMap())"]
  IF4 -- "No" --> S10["dataList.get(i)を利用"]
  S9 --> S11
  S10 --> S11
  S11["childMap.put('svc_kei_ucwk_no', '')"] --> IF5{"childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_KEI_UCWK_NO)"}
  IF5 -- "No" --> S12["childMap.put('svc_kei_ucwk_no', childTemplate.getString(...))"]
  S12 --> S13
  IF5 -- "Yes" --> S13
  S13["childMap.put('svc_nm', '')"] --> IF6{"childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_NM)"}
  IF6 -- "No" --> S14["childMap.put('svc_nm', childTemplate.getString(...))"]
  S14 --> S15
  IF6 -- "Yes" --> S15
  S15["childMap.put('prc_grp_nm', '')"] --> IF7{"childTemplate.isNull(EKK0161B003CBSMsg1List.PRC_GRP_NM)"}
  IF7 -- "No" --> S16["childMap.put('prc_grp_nm', childTemplate.getString(...))"]
  S16 --> S17
  IF7 -- "Yes" --> S17
  S17["childMap.put('pcrs_nm', '')"] --> IF8{"childTemplate.isNull(EKK0161B003CBSMsg1List.PCRS_NM)"}
  IF8 -- "No" --> S18["childMap.put('pcrs_nm', childTemplate.getString(...))"]
  S18 --> S19
  IF8 -- "Yes" --> S19
  S19["childMap.put('pplan_nm', '')"] --> IF9{"childTemplate.isNull(EKK0161B003CBSMsg1List.PPLAN_NM)"}
  IF9 -- "No" --> S20["childMap.put('pplan_nm', childTemplate.getString(...))"]
  S20 --> S21
  IF9 -- "Yes" --> S21
  S21["childMap.put('svc_kei_ucwk_stat', '')"] --> IF10{"childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_KEI_UCWK_STAT)"}
  IF10 -- "No" --> S22["childMap.put('svc_kei_ucwk_stat', childTemplate.getString(...))"]
  S22 --> S23
  IF10 -- "Yes" --> S23
  S23["dataMap.put('EKK0161B003CBSMsg1List', dataList)"] --> S24["this.editErrorInfo_EKK0161B003CBS(param, templates, (Integer)return_code)"]
  S24 --> S25["param.getControlMapData(SCControlMapKeys.ERROR_INFO)でerrList取得"]
  S25 --> IF11{"errList == null"}
  IF11 -- "No" --> IF12{"errList != null && !errList.isEmpty()"}
  IF12 -- "Yes" --> S26["throw new CCException(SCCallException(...))"]
  IF12 -- "No" --> S27["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
  IF11 -- "Yes" --> S27
  S26 --> END
  S27 --> RET["return param"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
  style IF8 fill:#ffcc00
  style IF9 fill:#ffcc00
  style IF10 fill:#ffcc00
  style IF11 fill:#ffcc00
  style IF12 fill:#ffcc00
```

**処理ステップ詳細:**

1. msgListからCAANMsg配列等を取得。
2. リターンコードを取得。
3. 業務データ格納用のdataMapを取得。なければ新規生成。
4. 明細リストdataListを取得。なければ新規生成。
5. CAANMsg明細ごとにサービス契約内訳番号/サービス名/料金グループ名/料金コース名/料金プラン名/サービス契約内訳ステータス等を取得しdataListへ格納。
6. dataMapへdataListを格納。
7. エラー情報設定はeditErrorInfo_EKK0161B003CBSを呼び出し。
8. errListがnullでなければTemplateErrorUtilで付加。エラーがあればCCExceptionをthrow。
9. param返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `dataMap == null` | - | 新規HashMap生成 |
| 2 | `dataList == null` | - | 新規ArrayList生成 |
| 3 | `templateArray != null` | - | 明細ループ開始 |
| 4 | `i >= dataList.size()` | - | dataList.add(new HashMap()) |
| 5 | `childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_KEI_UCWK_NO)` | - | 空文字/値セット |
| 6 | `childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_NM)` | - | 空文字/値セット |
| 7 | `childTemplate.isNull(EKK0161B003CBSMsg1List.PRC_GRP_NM)` | - | 空文字/値セット |
| 8 | `childTemplate.isNull(EKK0161B003CBSMsg1List.PCRS_NM)` | - | 空文字/値セット |
| 9 | `childTemplate.isNull(EKK0161B003CBSMsg1List.PPLAN_NM)` | - | 空文字/値セット |
| 10 | `childTemplate.isNull(EKK0161B003CBSMsg1List.SVC_KEI_UCWK_STAT)` | - | 空文字/値セット |
| 11 | `errList == null` | - | skip |
| 12 | `errList != null && !errList.isEmpty()` | - | CCException throw |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SC照会結果のCAANMsg配列・戻り値群 |
| 2 | param | IRequestParameterReadWrite | 入出力業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | - | - | サービス契約内訳一覧 | SC照会結果の業務データ変換 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD → newKeiOdrCtrl → getSvcKeiUtwkListSysid → **editResultRP_EKK0161B003CBS**

**呼出パス:**

```
hakkoSOD → newKeiOdrCtrl → getSvcKeiUtwkListSysid → editResultRP_EKK0161B003CBS（本メソッド）
```

**終端 (End Points):**
- なし（業務データ編集・エラー時はCCException throw）

---### editErrorInfo_EKK0401B001CBS()

---

#### 1. 役割

サブオプションサービス契約一覧照会のサービスインターフェイスから返却されたエラー情報を、リクエストパラメータ（IRequestParameterReadWrite）に格納し、上位業務処理（BP）にエラー内容を伝達する。主にSC呼出の結果ハンドリングの一部であり、複数のオーダ制御・照会処理から呼ばれる汎用的なエラーマッピング処理。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editErrorInfo_EKK0401B001CBS(param, templates, returnCode)"]
    --> S1["Step1: STATUS取得 template.getInt(EKK0401B001CBSMsg.STATUS)"]
    --> IF1{"returnCode != 0"}
      IF1 -- "Yes" --> S2["Step2: エラーメッセージ生成 String.format/メッセージ取得"]
      IF1 -- "No" --> S3["Step3: コントロールマップからRETURN_CODE取得 param.getControlMapData(SCControlMapKeys.RETURN_CODE)"]
    S2 --> IF2{"JCMAPLConstMgr.getString('RETURN_MESSAGE_' + formatStatus) == null"}
      IF2 -- "Yes" --> S4["Step4: デフォルトメッセージセット"]
      IF2 -- "No" --> S5["Step5: メッセージセット"]
    S3 --> IF3{"obj == null"}
      IF3 -- "Yes" --> S6["Step6: 空オブジェクト初期化"]
      IF3 -- "No" --> S7["Step7: 既存値使用"]
    IF4{"templateStatus > bpStatus"}
      IF4 -- "Yes" --> S8["Step8: ステータス上書き"]
      IF4 -- "No" --> S9["Step9: そのまま"]
    S5 & S7 & S8 & S9 --> S10["Step10: RETURN_CODE/RETURN_MESSAGEコントロールマップ設定"]
    S10 --> S11["Step11: ユーザデータマップ取得 param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)"]
    S11 --> IF5{"inMap == null"}
      IF5 -- "Yes" --> S12["Step12: 新規マップ生成"]
      IF5 -- "No" --> S13["Step13: 既存利用"]
    S12 & S13 --> S14["Step14: inMapをparamにセット"]
    S14 --> IF6{"!template.isNull(EKK0401B001CBSMsg.KEY_OP_SVC_KEI_NO_ERR)"}
      IF6 -- "Yes" --> IF7{"!inMap.containsKey('op_svc_kei_no_err')"}
        IF7 -- "Yes" --> S15["Step15: inMapへエラー情報格納"]
        IF7 -- "No" --> S16["Step16: 既存値維持"]
      IF6 -- "No" --> S17["Step17: 何もしない"]
    S15 & S16 & S17 --> RET["return param"]
```

**処理ステップ詳細:**

1. `template.getInt(EKK0401B001CBSMsg.STATUS)` でSC返却ステータス取得。
2. `returnCode != 0` の場合、SC返却コードからエラーメッセージ用文字列（4桁ゼロパディング）を生成。
3. `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus)` で該当メッセージ取得。なければデフォルトメッセージ設定。
4. コントロールマップから`RETURN_CODE`を取得し、存在しなければ初期化。
5. ステータス値の比較（templateStatus > bpStatus）で値上書き判定。
6. `param.setControlMapData` で `RETURN_CODE` および `RETURN_MESSAGE` をセット。
7. `param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)` で作業用マップ取得。なければ新規作成。
8. `inMap` に対して `op_svc_kei_no_err` キーがなければ、`template.getString(EKK0401B001CBSMsg.KEY_OP_SVC_KEI_NO_ERR)` で取得したエラー情報をセット。
9. 全処理終了後、`param` を返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode != 0` |  | エラーメッセージ生成分岐 |
| 2 | `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus) == null` |  | デフォルトメッセージ設定 |
| 3 | `obj == null` |  | 新規オブジェクト生成 |
| 4 | `templateStatus > bpStatus` |  | ステータス上書き |
| 5 | `inMap == null` |  | 新規作成 |
| 6 | `!template.isNull(EKK0401B001CBSMsg.KEY_OP_SVC_KEI_NO_ERR)` |  | エラー情報格納有無 |
| 7 | `!inMap.containsKey("op_svc_kei_no_err")` |  | エラー情報新規登録 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadWrite | 業務データ・エラー情報格納用パラメータ |
| 2 | templates | CAANMsg[] | SC返却メッセージ配列（エラー情報含む） |
| 3 | returnCode | int | SC返却コード |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 本メソッド単体はCRUD操作なし（エラーマッピングのみ） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | （該当データなし） |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**

- hakkoSOD → newKeiOdrCtrl → getSbOpSvcKeiList → editResultRP_EKK0401B001CBS → **editErrorInfo_EKK0401B001CBS**

**呼出パス:**

```
hakkoSOD → newKeiOdrCtrl → getSbOpSvcKeiList → editResultRP_EKK0401B001CBS → **editErrorInfo_EKK0401B001CBS**
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | エラーマッピングのみ |

---

---

---

### editResultRP_EKK0161B004CBS()

#### 呼出元 (Reverse Call Tree) — 9 direct callers

```
editResultRP_EKK0161B004CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── vLanIdVaChangeOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── getSvcKeiUtwkList()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    ├── addTensoDenwaOp()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── newKeiOdrCtrl()
    ├── newKeiOdrCtrl()
    │   ├── hakkoSOD()
    │   └── adchgFixOdrCtrl()
    │       └── hakkoSOD()
    ├── rtOpChgDivOdrCtrl()
    │   └── hakkoSOD()
    ├── taiikiSeigenOdrCtrl()
    │   └── hakkoSOD()
    ├── vLanIdVaChangeOdrCtrl()
    │   └── hakkoSOD()
    └── wribInfoAddOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0161B004CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

サービス契約内訳一覧照会（EKK0161B004）の実行結果（msgList）から、業務データparamに必要な内訳情報をマッピングする。
子要素（契約内訳番号/世代登録年月日時分秒/ステータス/契約番号/申込明細番号/料金コースコード/料金プランコード）を全件抽出し、業務データ構造に反映する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0161B004CBS(msgList, param)"]
    --> S1["msgListからTEMPLATE_LIST_KEYでparentTemplate取得"]
    --> S2["msgListからRET_CD_INT_KEYでreturn_code取得"]
    --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
    --> IF1{"dataMap == null"}
    IF1 -- "Yes" --> S4["新規dataMap作成、param.setData"]
    IF1 -- "No"  --> S5["既存dataMap利用"]
    S4 --> S6
    S5 --> S6
    S6["parentTemplate.getMsgData().get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST)でdataList取得"]
    --> IF2{"dataList == null"}
    IF2 -- "Yes" --> S7["新規dataList作成"]
    IF2 -- "No"  --> S8["既存dataList利用"]
    S7 --> S9
    S8 --> S9
    S9["templateArray存在時、全件ループ"]
    --> FOR1["for i=0 to templateArray.length"]
    FOR1 --> IF3{"i >= dataList.size()"}
    IF3 -- "Yes" --> S10["dataList.add(new HashMap())"]
    IF3 -- "No"  --> S11["既存childMap利用"]
    S10 --> S12
    S11 --> S12
    S12["childTemplateごとに各項目をchildMapにput"]
    --> S13["svc_kei_ucwk_no, gene_add_dtm, svc_kei_ucwk_stat, svc_kei_no, mskm_dtl_no, pcrs_cd, pplan_cd"]
    S13 --> S14["dataMap.put('EKK0161B004CBSMsg1List', dataList)"]
    S14 --> S15["editErrorInfo_EKK0161B004CBS呼出"]
    S15 --> S16["param.getControlMapData(ERROR_INFO)でerrList取得"]
    --> IF4{"errList == null"}
    IF4 -- "Yes" --> S17["param.setControlMapData(ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
    IF4 -- "No"  --> IF5{"errList != null && !errList.isEmpty()"}
    IF5 -- "Yes" --> S18["Exception throw"]
    IF5 -- "No"  --> S17
    S17 --> END["return param"]
    S18 --> END
```

**処理ステップ詳細:**

- 各子要素（内訳番号/世代登録日時/ステータス等）を、childTemplateごとにchildMapへput。
- 最終的にdataMapへdataListを格納、editErrorInfo_EKK0161B004CBSでエラー情報を追加。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null |  | 新規作成 |
| 2 | dataList == null |  | 新規作成 |
| 3 | templateArray != null |  | forループ |
| 4 | i >= dataList.size() |  | new HashMap()追加 |
| 5 | childTemplate.isNull(EKK0161B004CBSMsg1List.XXXX) |  | 空文字セット |
| 6 | errList == null |  | ERROR_INFOセット |
| 7 | errList != null && !errList.isEmpty() |  | Exception throw |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント応答メッセージリスト |
| 2 | param | IRequestParameterReadWrite | 業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 本メソッドはデータマッピングのみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- getSvcKeiUtwkList
- rtOpChgDivOdrCtrl
- vLanIdVaChangeOdrCtrl
- ...（全呼出元列挙）

**呼出パス:**

```
[呼び出し元] → editResultRP_EKK0161B004CBS → editErrorInfo_EKK0161B004CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

---

### editResultRP_EKK0341B002CBS()

#### 呼出元 (Reverse Call Tree) — 5 direct callers

```
editResultRP_EKK0341B002CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newEoMobile()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
└── getKktkSvcKeiList()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    ├── newEoMobile()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── newKeiOdrCtrl()
    └── newKeiOdrCtrl()
        ├── hakkoSOD()
        └── adchgFixOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0341B002CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

機器提供サービス契約一覧照会（サービス契約番号）（EKK0341B002）の実行結果（msgList）を業務データparamにマッピングする。
SC出力の全項目（世代登録日時、機器提供サービス契約番号、サービス契約番号、宅内機器型式コードなど）を網羅的にdataMapへ格納し、エラー情報も同時に処理する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0341B002CBS(msgList, param)"]
    --> S1["msgListからTEMPLATE_LIST_KEYでparentTemplate取得"]
    --> S2["msgListからRET_CD_INT_KEYでreturn_code取得"]
    --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
    --> IF1{"dataMap == null"}
    IF1 -- "Yes" --> S4["新規dataMap作成、param.setData"]
    IF1 -- "No"  --> S5["既存dataMap利用"]
    S4 --> S6
    S5 --> S6
    S6["parentTemplate.getMsgData().get(EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST)でdataList取得"]
    --> IF2{"dataList == null"}
    IF2 -- "Yes" --> S7["新規dataList作成"]
    IF2 -- "No"  --> S8["既存dataList利用"]
    S7 --> S9
    S8 --> S9
    S9["templateArray存在時、全件ループ"]
    --> FOR1["for i=0 to templateArray.length"]
    FOR1 --> IF3{"i >= dataList.size()"}
    IF3 -- "Yes" --> S10["dataList.add(new HashMap())"]
    IF3 -- "No"  --> S11["既存childMap利用"]
    S10 --> S12
    S11 --> S12
    S12["childTemplateごとに全項目をchildMapにput"]
    --> S13["gene_add_dtm, kktk_svc_kei_no, kktk_svc_cd, kiki_seizo_no, svc_kei_no, svc_kei_ucwk_no, kktk_svc_kei_stat, prc_grp_cd, pcrs_cd, pplan_cd, taknkiki_model_cd"]
    S13 --> S14["dataMap.put('EKK0341B002CBSMsg1List', dataList)"]
    S14 --> S15["editErrorInfo_EKK0341B002CBS呼出"]
    S15 --> S16["param.getControlMapData(ERROR_INFO)でerrList取得"]
    --> IF4{"errList == null"}
    IF4 -- "Yes" --> S17["param.setControlMapData(ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
    IF4 -- "No"  --> IF5{"errList != null && !errList.isEmpty()"}
    IF5 -- "Yes" --> S18["Exception throw"]
    IF5 -- "No"  --> S17
    S17 --> END["return param"]
    S18 --> END
```

**処理ステップ詳細:**

- SC応答の各childTemplateごとに全必須項目をchildMapへput。
- エラー情報はeditErrorInfo_EKK0341B002CBSで補完し、最終的にparamへ格納。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null |  | 新規作成 |
| 2 | dataList == null |  | 新規作成 |
| 3 | templateArray != null |  | forループ |
| 4 | i >= dataList.size() |  | new HashMap()追加 |
| 5 | childTemplate.isNull(EKK0341B002CBSMsg1List.XXXX) |  | 空文字セット |
| 6 | errList == null |  | ERROR_INFOセット |
| 7 | errList != null && !errList.isEmpty() |  | Exception throw |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント応答メッセージリスト |
| 2 | param | IRequestParameterReadWrite | 業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 本メソッドはデータマッピングのみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- getKktkSvcKeiList
- newEoMobile
- newKeiOdrCtrl
- adchgFixOdrCtrl
- hakkoSOD

**呼出パス:**

```
[呼び出し元] → editResultRP_EKK0341B002CBS → editErrorInfo_EKK0341B002CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

---

### editResultRP_EKK0351A010CBS()

#### 呼出元 (Reverse Call Tree) — 35 direct callers

```
editResultRP_EKK0351A010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── getKK0351GeneAddDtm()    [trực tiếp]
├── getKK0351Hash()    [trực tiếp]
├── getOpSvcKei4Eohtel()    [trực tiếp]
├── getOpSvcKeiList()    [trực tiếp]
├── getOpSvcKeiNotDslList()    [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]
├── kaihkOdrCtrl()    [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]
├── searchOpSvcKei()    [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]
├── callEKK0351A010SC()
│   ├── adchgFixOdrCtrl()
│   ├── add050AddSod()
│   ├── add050DelSod()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoCourseChgSOD()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── malwareBlockingDivOdrCtrl()
│   ├── pauseRlsChgeOdrCtrl()
│   ├── pauseUkOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── telNoChge()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── getKK0351GeneAddDtm()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   ├── hakkoCourseChgSOD()
│   │   │   ├── adchgFixOdrCtrl()
│   │   │   ├── courseChgeOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── malwareBlockingDivOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── pauseRlsChgeOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── pauseUkOdrCtrl()
│   │   │   ├── hakkoSOD()
│   │   │   ├── htelNoKaihkOdrCtrl()
│   │   │   └── kaihkOdrCtrl()
│   │   └── stpRlsOdrCtrl()
│   │       ├── hakkoSOD()
│   │       └── useStpRlsOdrCtrl()
│   │           └── hakkoSOD()
│   ├── getKK0351Hash()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   ├── stpRlsOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   ├── useStpRlsOdrCtrl()
│   │   └── stpUkOdrCtrl()
│   │       ├── hakkoSOD()
│   │       ├── kaihkOdrCtrl()
│   │       ├── bmpSwitchOdrCtrl()
│   │       │   └── hakkoSOD()
│   │       └── useStpOdrCtrl()
│   │           └── hakkoSOD()
│   ├── getOpSvcKei4Eohtel()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   ├── stpUkOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   └── htelNoDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opHktgiOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   ├── htelNoInfoChgeOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── htelNoKaihkOdrCtrl()
│   │       └── hakkoSOD()
│   └── searchOpSvcKei()
│       ├── 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()
│       │       ├── bmpSwitchOdrCtrl()
│       │       └── hakkoSOD()
│       └── add050DelSod()
│           ├── bmpSwitchOdrCtrl()
│           ├── cnclOdrCtrl()
│           ├── dslOdrCtrl()
│           ├── hakkoSOD()
│           ├── htelNoDslOdrCtrl()
│           ├── htelNoInfoChgeOdrCtrl()
│           ├── htelNoKaihkOdrCtrl()
│           ├── kaihkOdrCtrl()
│           ├── ksiDslFixOdrCtrl()
│           ├── ksiDslOdrCtrl()
│           ├── opSetOdrCtrl()
│           └── telNoChge()
└── getOpSvcKeiGaDtm()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    ├── newKeiOdrCtrl()
    ├── taiikiSeigenOdrCtrl()
    ├── getOpSvcKeiList()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── newKeiOdrCtrl()
    │       ├── adchgFixOdrCtrl()
    │       └── hakkoSOD()
    └── getOpSvcKeiNotDslList()
        ├── hakkoSOD()
        └── taiikiSeigenOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0351A010CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

オプションサービス契約一意照会サービスコンポーネントの実行結果をIRequestParameterReadWriteへマッピングする。  
CAANMsgの1明細データおよびエラー情報を業務用データマップとコントロールマップへ反映する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0351A010CBS(msgList, param)"] --> S1["msgList.get(JCMConstants.TEMPLATE_LIST_KEY)でテンプレート取得"]
  S1 --> S2["msgList.get(JCMConstants.RET_CD_INT_KEY)でリターンコード取得"]
  S2 --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4["dataMap新規作成"]
  IF1 -- "No" --> S5["dataMap利用"]
  S4 --> S6
  S5 --> S6
  S6 --> S7["parentTemplate.getMsgData().get(EKK0351A010CBSMsg.EKK0351A010CBSMSG1LIST)で業務明細取得"]
  S7 --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S8["dataList新規作成"]
  IF2 -- "No" --> S9["dataList利用"]
  S8 --> S10
  S9 --> S10
  S10 --> IF3{"templateArray != null"}
  IF3 -- "Yes" --> FOR1["for("i=0; i<templateArray.length; i++")"]
  FOR1 --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S11["dataList.add(new HashMap())"]
  IF4 -- "No" --> S12["dataList.get(i)"]
  S11 --> S13
  S12 --> S13
  S13 --> IF5{"childTemplate.isNull(EKK0351A010CBSMsg1List.GENE_ADD_DTM)"}
  IF5 -- "Yes" --> S14["childMap.put('gene_add_dtm', '')"]
  IF5 -- "No" --> S15["childMap.put('gene_add_dtm', childTemplate.getString(...))"]
  S14 --> S16
  S15 --> S16
  S16 --> S17["dataMap.put('EKK0351A010CBSMsg1List', dataList)"]
  S17 --> S18["this.editErrorInfo_EKK0351A010CBS(param, templates, return_code)"]
  S18 --> S19["param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S19 --> IF6{"errList == null"}
  IF6 -- "Yes" --> S20["errList新規作成"]
  IF6 -- "No" --> S21["errList利用"]
  S20 --> S22
  S21 --> S22
  S22 --> IF7{"errList != null && !errList.isEmpty()"}
  IF7 -- "Yes" --> S23["CCExceptionスロー"]
  IF7 -- "No" --> RET["return param"]

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null | - | 新規作成 |
| 2 | dataList == null | - | 新規作成 |
| 3 | templateArray != null | - | forループへ |
| 4 | i >= dataList.size() | - | dataList.add(new HashMap()) |
| 5 | childTemplate.isNull(EKK0351A010CBSMsg1List.GENE_ADD_DTM) | - | 空文字セット |
| 6 | errList == null | - | 新規作成 |
| 7 | errList != null && !errList.isEmpty() | - | CCExceptionスロー |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SCからの戻り値データ |
| 2 | param | IRequestParameterReadWrite | 編集対象リクエスト/レスポンス |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データ変換のみ（CRUD操作なし） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- callEKK0351A010SC → editResultRP_EKK0351A010CBS
- getOpSvcKeiGaDtm → editResultRP_EKK0351A010CBS
- ...他、多数

**呼出パス:**
```
[callEKK0351A010SC] → [editResultRP_EKK0351A010CBS] → [editErrorInfo_EKK0351A010CBS]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0351B002CBS()

#### 呼出元 (Reverse Call Tree) — 32 direct callers

```
editResultRP_EKK0351B002CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── addTensoDenwaOp()    [trực tiếp]
├── bmpDojiMskm()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── getOpSvcKei4Eohtel()    [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]
├── keiTtdkChuHtelnoChgeOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForDialup()    [trực tiếp]
├── setChgePWForIPv6()    [trực tiếp]
├── setChgePWForMltiSe()    [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]
├── callEKK0351B002SC()
│   ├── adchgFixOdrCtrl()
│   ├── bmpSwitchOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── idpwShkkaSaifuriOdrCtrl()
│   ├── keiTtdkChuHtelnoChgeOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── stpRlsOdrCtrl()
│   ├── stpUkOdrCtrl()
│   ├── useStpOdrCtrl()
│   ├── useStpRlsOdrCtrl()
│   ├── addIpv6SODAft()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   ├── addTensoDenwaOp()
│   │   ├── adchgFixOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── newKeiOdrCtrl()
│   ├── bmpDojiMskm()
│   │   ├── hakkoSOD()
│   │   ├── useStpRlsOdrCtrl()
│   │   ├── bmpSwitchOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── stpRlsOdrCtrl()
│   │       ├── hakkoSOD()
│   │       └── useStpRlsOdrCtrl()
│   │           └── hakkoSOD()
│   ├── courseChgeOdrCtrl()
│   │   ├── hakkoSOD()
│   │   └── adchgFixOdrCtrl()
│   │       └── hakkoSOD()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── getOpSvcKei4Eohtel()
│   │   ├── bmpSwitchOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── kaihkOdrCtrl()
│   │   ├── useStpOdrCtrl()
│   │   ├── htelNoDslOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── stpUkOdrCtrl()
│   │       ├── bmpSwitchOdrCtrl()
│   │       ├── hakkoSOD()
│   │       ├── kaihkOdrCtrl()
│   │       └── useStpOdrCtrl()
│   │           └── hakkoSOD()
│   ├── htelNoKaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   │   └── hakkoSOD()
│   ├── opSetOdrCtrl()
│   │   ├── cnclOdrCtrl()
│   │   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── htelNoDslOdrCtrl()
│   │   ├── htelNoKaihkOdrCtrl()
│   │   ├── kaihkOdrCtrl()
│   │   ├── ksiDslFixOdrCtrl()
│   │   ├── ksiDslOdrCtrl()
│   │   └── htelNoInfoChgeOdrCtrl()
│   │       └── hakkoSOD()
│   ├── setChgePWForDialup()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   │       └── hakkoSOD()
│   ├── setChgePWForIPv6()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   ├── setChgePWForMltiSe()
│   │   ├── hakkoSOD()
│   │   └── idpwShkkaSaifuriOdrCtrl()
│   └── telNoChge()
│       ├── bmpSwitchOdrCtrl()
│       └── hakkoSOD()
├── getOpSvcKeiList()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── newKeiOdrCtrl()
│       ├── adchgFixOdrCtrl()
│       └── hakkoSOD()
└── getOpSvcKeiNotDslList()
    ├── hakkoSOD()
    └── taiikiSeigenOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0351B002CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

「オプションサービス契約一覧照会（サービス契約番号）」のSC実行後、レスポンスのCAANMsg配列から業務データ（契約明細リスト）とエラー情報をIRequestParameterReadWrite（param）にマッピングする。  
業務アプリケーションがオプションサービス契約情報を利用するためのデータ整形・格納を担当。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0351B002CBS(msgList, param)"] --> S1["1. CAANMsg配列取得 (msgList.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["2. リターンコード取得 (msgList.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["3. 業務データMap取得 (param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP))"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4a["dataMapを新規作成"]
  IF1 -- "No" --> S4b["既存dataMapを利用"]
  S4a --> S5
  S4b --> S5
  S5["param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap)"] --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S6a["dataListを新規作成"]
  IF2 -- "No" --> S6b["既存dataListを利用"]
  S6a --> IF3{"templateArray != null"}
  S6b --> IF3
  IF3 -- "Yes" --> FOR1["for (childTemplate in templateArray)"]
  IF3 -- "No" --> S26
  FOR1 --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S7["dataListにchildMapをadd"]
  IF4 -- "No" --> S8["dataList.get(i) でchildMap取得"]
  S7 --> S9
  S8 --> S9
  S9["childMap.put('op_svc_cd_nm', '')"] --> IF5{"childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD_NM)"}
  IF5 -- "Yes" --> S10["空文字セット"]
  IF5 -- "No" --> S11["値セット childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_CD_NM)"]
  S11 --> S12["childMap.put('op_svc_kei_stat', '')"]
  S10 --> S12
  S12 --> IF6{"childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)"}
  IF6 -- "Yes" --> S13["空文字セット"]
  IF6 -- "No" --> S14["値セット childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)"]
  S13 --> S15["childMap.put('op_svc_niy', '')"]
  S14 --> S15
  S15 --> IF7{"childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_NIY)"}
  IF7 -- "Yes" --> S16["空文字セット"]
  IF7 -- "No" --> S17["値セット childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_NIY)"]
  S16 --> S18["childMap.put('svc_staymd', '')"]
  S17 --> S18
  S18 --> IF8{"childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_STAYMD)"}
  IF8 -- "Yes" --> S19["空文字セット"]
  IF8 -- "No" --> S20["値セット childTemplate.getString(EKK0351B002CBSMsg1List.SVC_STAYMD)"]
  S19 --> S21["childMap.put('rsv_tsta_kibo_ymd', '')"]
  S20 --> S21
  S21 --> IF9{"childTemplate.isNull(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD)"}
  IF9 -- "Yes" --> S22["空文字セット"]
  IF9 -- "No" --> S23["値セット childTemplate.getString(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD)"]
  S22 --> S24["childMap.put('svc_endymd', '')"]
  S23 --> S24
  S24 --> IF10{"childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_ENDYMD)"}
  IF10 -- "Yes" --> S25["空文字セット"]
  IF10 -- "No" --> S26a["値セット childTemplate.getString(EKK0351B002CBSMsg1List.SVC_ENDYMD)"]
  S25 --> S27["childMap.put('op_svc_kei_no', '')"]
  S26a --> S27
  S27 --> IF11{"childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO)"}
  IF11 -- "Yes" --> S28["空文字セット"]
  IF11 -- "No" --> S29["値セット childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO)"]
  S28 --> S30["childMap.put('op_svc_cd', '')"]
  S29 --> S30
  S30 --> IF12{"childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD)"}
  IF12 -- "Yes" --> S31["空文字セット"]
  IF12 -- "No" --> S32["値セット childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_CD)"]
  S31 --> S33["childMap.put('gene_add_dtm', '')"]
  S32 --> S33
  S33 --> IF13{"childTemplate.isNull(EKK0351B002CBSMsg1List.GENE_ADD_DTM)"}
  IF13 -- "Yes" --> S34["空文字セット"]
  IF13 -- "No" --> S35["値セット childTemplate.getString(EKK0351B002CBSMsg1List.GENE_ADD_DTM)"]
  S34 --> S36["dataMap.put('EKK0351B002CBSMsg1List', dataList)"]
  S35 --> S36
  S36 --> S37["editErrorInfo_EKK0351B002CBS(param, templates, (Integer)return_code)"]
  S37 --> IF14{"errList == null"}
  IF14 -- "Yes" --> S38["param.setControlMapData(SCControlMapKeys.ERROR_INFO, null)"]
  IF14 -- "No" --> IF15{"errList != null && !errList.isEmpty()"}
  IF15 -- "Yes" --> S39["CCExceptionスロー (SCCallException)"]
  IF15 -- "No" --> S40["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
  S40 --> RET["return param"]
  S38 --> RET
  S26 --> S36
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
  style IF8 fill:#ffcc00
  style IF9 fill:#ffcc00
  style IF10 fill:#ffcc00
  style IF11 fill:#ffcc00
  style IF12 fill:#ffcc00
  style IF13 fill:#ffcc00
  style IF14 fill:#ffcc00
  style IF15 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------------------------------------------------------------|---------|------------------------|
| 1 | dataMap == null | - | dataMap新規作成 |
| 2 | dataList == null | - | dataList新規作成 |
| 3 | templateArray != null | - | forループ実行 |
| 4 | i >= dataList.size() | - | dataList.add(new HashMap()) |
| 5 | childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD_NM) | - | 空文字 or 値セット |
| 6 | childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT) | - | 空文字 or 値セット |
| 7 | childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_NIY) | - | 空文字 or 値セット |
| 8 | childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_STAYMD) | - | 空文字 or 値セット |
| 9 | childTemplate.isNull(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD) | - | 空文字 or 値セット |
| 10 | childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_ENDYMD) | - | 空文字 or 値セット |
| 11 | childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO) | - | 空文字 or 値セット |
| 12 | childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD) | - | 空文字 or 値セット |
| 13 | childTemplate.isNull(EKK0351B002CBSMsg1List.GENE_ADD_DTM) | - | 空文字 or 値セット |
| 14 | errList == null | - | エラー情報null |
| 15 | errList != null && !errList.isEmpty() | - | CCExceptionスロー |
| 16 | return param | - | 正常終了 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SC実行結果（CAANMsg配列・リターンコード含む） |
| 2 | param | IRequestParameterReadWrite | 業務データ格納用パラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | なし（SC結果データの業務マッピングのみ実施） |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- hakkoSOD → callEKK0351B002SC → editResultRP_EKK0351B002CBS

**呼出パス:**
```
hakkoSOD → callEKK0351B002SC → editResultRP_EKK0351B002CBS → editErrorInfo_EKK0351B002CBS
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0351B003CBS()

#### 呼出元 (Reverse Call Tree) — 6 direct callers

```
editResultRP_EKK0351B003CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── taiikiSeigenOdrCtrl()    [trực tiếp]
├── getOpSvcKeiList()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── newKeiOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
└── getOpSvcKeiNotDslList()
    ├── hakkoSOD()
    └── taiikiSeigenOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0351B003CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

オプションサービス契約履歴一覧照会（EKK0351B003CBS）のSC実行後、レスポンスデータ・明細・エラー情報をIRequestParameterReadWrite paramと内部業務データマップにマッピングする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0351B003CBS(msgList, param)"] --> S1["Step1: CAANMsg配列取得(msgList.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["Step2: リターンコード取得(msgList.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["Step3: 業務データマップ取得(param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP))"]
  S3 --> IF1{"if: dataMap == null"}
  IF1 -- "Yes" --> S4["Step4: dataMap生成"]
  IF1 -- "No" --> S5["Step5: 業務データ設定(param.setData)"]
  S4 --> S5
  S5 --> S6["Step6: 明細リスト取得(parentTemplate.getMsgData().get(EKK0351B003CBSMsg.EKK0351B003CBSMSG1LIST))"]
  S6 --> IF2{"if: dataList == null"}
  IF2 -- "Yes" --> S7["Step7: dataList生成"]
  IF2 -- "No" --> S8["Step8: 明細データループ(テンプレート配列)"]
  S7 --> S8
  S8 --> IF3{"if: templateArray != null"}
  IF3 -- "Yes" --> FOR1["for: 各childTemplate"]
  FOR1 --> IF4{"if: i >= dataList.size()"}
  IF4 -- "Yes" --> S9["Step9: dataList.add(new HashMap())"]
  IF4 -- "No" --> S10["Step10: 各フィールドマッピング"]
  S9 --> S10
  S10 --> IF5{"if: childTemplate.isNull(EKK0351B003CBSMsg1List.KK0351_OP_SVC_KEI_NO)"}
  IF5 -- "Yes" --> S11["Step11: childMap.put('op_svc_kei_no', '')"]
  IF5 -- "No" --> S12["Step12: childMap.put('op_svc_kei_no', childTemplate.getString(...))"]
  S11 --> IF6{"if: childTemplate.isNull(EKK0351B003CBSMsg1List.KK0351_GENE_ADD_DTM)"}
  S12 --> IF6
  IF6 -- "Yes" --> S13["childMap.put('gene_add_dtm', '')"]
  IF6 -- "No" --> S14["childMap.put('gene_add_dtm', childTemplate.getString(...))"]
  S13 --> IF7{"if: childTemplate.isNull(EKK0351B003CBSMsg1List.IDO_DIV)"}
  S14 --> IF7
  IF7 -- "Yes" --> S15["childMap.put('ido_div', '')"]
  IF7 -- "No" --> S16["childMap.put('ido_div', childTemplate.getString(...))"]
  S15 --> S17["dataMap.put('EKK0351B003CBSMsg1List', dataList)"]
  S16 --> S17
  S17 --> S18["this.editErrorInfo_EKK0351B003CBS(param, templates, (Integer)return_code)"]
  S18 --> IF8{"if: errList == null"}
  IF8 -- "Yes" --> S19["errList=TemplateErrorUtil.getErrorInfo(msgList, errList)"]
  IF8 -- "No" --> IF9{"if: errList != null && !errList.isEmpty()"}
  S19 --> S20["param.setControlMapData(SCControlMapKeys.ERROR_INFO, errList)"]
  IF9 -- "Yes" --> S21["CCException throw"]
  IF9 -- "No" --> RET["return param"]
  S20 --> RET
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
  style IF8 fill:#ffcc00
  style IF9 fill:#ffcc00
```

**処理ステップ詳細:**

1. SC戻り値からCAANMsg配列を取得。
2. リターンコード取得。
3. 業務用データマップ取得（なければ生成）。
4. 明細リスト取得後、テンプレート配列ループで各業務フィールド（op_svc_kei_no, gene_add_dtm, ido_div）をマッピング。
5. エラー情報編集（editErrorInfo_EKK0351B003CBS呼出）。
6. errListがnullならTemplateErrorUtilで取得、設定。
7. errListにエラーがあればCCExceptionをthrow。
8. paramを返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `dataMap == null` | - | dataMap生成 |
| 2 | `dataList == null` | - | dataList生成 |
| 3 | `templateArray != null` | - | childTemplateループ |
| 4 | `i >= dataList.size()` | - | dataList.add(new HashMap()) |
| 5 | `childTemplate.isNull(EKK0351B003CBSMsg1List.KK0351_OP_SVC_KEI_NO)` | - | 空文字セット |
| 6 | `childTemplate.isNull(EKK0351B003CBSMsg1List.KK0351_GENE_ADD_DTM)` | - | 空文字セット |
| 7 | `childTemplate.isNull(EKK0351B003CBSMsg1List.IDO_DIV)` | - | 空文字セット |
| 8 | `errList == null` | - | TemplateErrorUtilで取得 |
| 9 | `errList != null && !errList.isEmpty()` | - | CCException throw |
| 10 | return | - | param返却 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスIF呼出結果（SCレスポンス情報） |
| 2 | param | IRequestParameterReadWrite | 業務パラメータ。マッピング結果格納先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | EKK0351B003CBS | オプションサービス契約履歴一覧照会 | オプションサービス契約履歴 | SC結果の明細・エラー情報をマッピング |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| 1 | CCException | Error | errListにエラーがある場合 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- getOpSvcKeiList → editResultRP_EKK0351B003CBS

**呼出パス:**

```
getOpSvcKeiList → editResultRP_EKK0351B003CBS → editErrorInfo_EKK0351B003CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| EKK0351B003CBS | R | オプションサービス契約履歴 |

---

---

### editResultRP_EKK0351B010SC()

#### 呼出元 (Reverse Call Tree) — 16 direct callers

```
editResultRP_EKK0351B010SC() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── hakkoCourseChgSOD()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── koteiIpAd8DivOdrCtrl()    [trực tiếp]
├── malwareBlockingDivOdrCtrl()    [trực tiếp]
├── pauseRlsChgeOdrCtrl()    [trực tiếp]
├── pauseUkOdrCtrl()    [trực tiếp]
├── stpRlsOdrCtrl()    [trực tiếp]
├── stpUkOdrCtrl()    [trực tiếp]
├── useStpOdrCtrl()    [trực tiếp]
├── useStpRlsOdrCtrl()    [trực tiếp]
└── callEKK0351B010SC()
    ├── adchgFixOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── hakkoSOD()
    ├── htelNoKaihkOdrCtrl()
    ├── kaihkOdrCtrl()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── hakkoCourseChgSOD()
    │   ├── adchgFixOdrCtrl()
    │   ├── hakkoSOD()
    │   └── courseChgeOdrCtrl()
    │       ├── hakkoSOD()
    │       └── adchgFixOdrCtrl()
    │           └── hakkoSOD()
    ├── koteiIpAd8DivOdrCtrl()
    │   └── hakkoSOD()
    ├── malwareBlockingDivOdrCtrl()
    │   └── hakkoSOD()
    ├── pauseRlsChgeOdrCtrl()
    │   └── hakkoSOD()
    ├── pauseUkOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── kaihkOdrCtrl()
    │       └── hakkoSOD()
    ├── stpRlsOdrCtrl()
    │   ├── hakkoSOD()
    │   └── useStpRlsOdrCtrl()
    │       └── hakkoSOD()
    └── stpUkOdrCtrl()
        ├── hakkoSOD()
        ├── kaihkOdrCtrl()
        ├── bmpSwitchOdrCtrl()
        │   └── hakkoSOD()
        └── useStpOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0351B010SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

EKK0351B010（オプションサービス契約一覧照会）サービスコンポーネントの結果出力をIRequestParameterReadWriteへマッピングし、SC実行結果のエラー情報も一元的に設定する。オプション一覧の取得やエラー時ハンドリングを担う。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0351B010SC(result, param)"] --> S1["result.get(JCMConstants.TEMPLATE_LIST_KEY)でCAANMsg配列取得"]
  S1 --> S2["result.get(JCMConstants.RET_CD_INT_KEY)で返却コード取得"]
  S2 --> S3["template.getInt(EKK0791A010CBSMsg.STATUS)でステータス取得"]
  S3 --> IF1{"returnCode != 0"}
  IF1 -- "Yes" --> IF2{"JCMAPLConstMgr.getString('RETURN_MESSAGE_' + String.format('%1$04d', templateStatus)) == null"}
  IF2 -- "Yes" --> S4["param.setControlMapData(SCControlMapKeys.RETURN_CODE, '9999')"]
  IF2 -- "No" --> S5["param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S4 --> S6["param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S5 --> S6
  S6 --> IF3{"obj == null"}
  IF3 -- "Yes" --> S7["param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, 'システムエラー')"]
  IF3 -- "No" --> IF4{"templateStatus > bpStatus"}
  IF4 -- "Yes" --> S8["param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  IF4 -- "No" --> S9["param.setControlMapData(SCControlMapKeys.RETURN_CODE, bpStatus)"]
  S8 --> S10
  S9 --> S10
  S10["param.getControlMapData(SCControlMapKeys.ERROR_INFO)でエラー情報取得"] --> IF5{"errList == null"}
  IF5 -- "Yes" --> S11["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList))"]
  IF5 -- "No" --> IF6{"0 != returnCode || 0 != templateStatus"}
  IF6 -- "Yes" --> S12["throw SCCallException(サービスインターフェイス呼出しでエラー発生, returnCode, templateStatus)"]
  IF6 -- "No" --> S13["正常処理"]
  S11 --> S13
  S12 --> END
  S13 --> RET["return param"]
  IF1 -- "No" --> S10
  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. CAANMsg[]の取得（JCMConstants.TEMPLATE_LIST_KEY）
2. ステータス・返却コード取得
3. ステータス・エラー時の詳細メッセージ取得・設定
4. システムエラー判定時の対応
5. SC/BPステータスの大きい方を返す
6. エラー情報の取得・設定
7. 重大エラー発生時は SCCallExceptionスロー
8. 正常時はparam返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode != 0` | - | エラー分岐処理 |
| 2 | `JCMAPLConstMgr.getString(...) == null` | - | デフォルト値設定 |
| 3 | `obj == null` | - | システムエラー処理 |
| 4 | `templateStatus > bpStatus` | - | SC値優先 |
| 5 | `errList == null` | - | エラー情報設定 |
| 6 | `0 != returnCode || 0 != templateStatus` | - | SCCallException発生 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | サービスコンポーネント実行結果 |
| 2 | param | IRequestParameterReadWrite | 出力業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 結果マッピング・エラー情報設定のみ |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- callEKK0351B010SC → editResultRP_EKK0351B010SC

**呼出パス:**

```
[外部業務クラス] → callEKK0351B010SC → **editResultRP_EKK0351B010SC**（結果・エラー情報構築）
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0361A010CBS()

#### 呼出元 (Reverse Call Tree) — 4 direct callers

```
editResultRP_EKK0361A010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
└── getOpSvcKeiIsp()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    └── newKeiOdrCtrl()
        ├── hakkoSOD()
        └── adchgFixOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0361A010CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

「オプションサービス契約＜ISP＞一意照会」のサービスコンポーネント実行後、SCから返却されたCAANMsg配列を解析し、IRequestParameterReadWrite（param）に業務データ（結果明細）とエラー情報をマッピングする業務ロジックを提供する。  
呼び出し元は「getOpSvcKeiIsp」などのISP契約明細情報取得系であり、SCレスポンスから業務アプリ向けデータ構造へ変換・格納する役割を持つ。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0361A010CBS(msgList, param)"] --> S1["1. CAANMsg配列取得 (msgList.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["2. リターンコード取得 (msgList.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["3. 業務データMap取得 (param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP))"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4a["dataMapを新規作成"]
  IF1 -- "No" --> S4b["既存dataMapを利用"]
  S4a --> S5
  S4b --> S5
  S5["param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap)"] --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S6a["dataListを新規作成"]
  IF2 -- "No" --> S6b["既存dataListを利用"]
  S6a --> IF3{"templateArray != null"}
  S6b --> IF3
  IF3 -- "Yes" --> FOR1["for (childTemplate in templateArray)"]
  IF3 -- "No" --> S14
  FOR1 --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S7["dataListにchildMapをadd"]
  IF4 -- "No" --> S8["dataList.get(i) でchildMap取得"]
  S7 --> S9
  S8 --> S9
  S9["childMap.put('op_svc_kei_no', '')"] --> IF5{"childTemplate.isNull(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO)"}
  IF5 -- "Yes" --> S10["空文字セット"]
  IF5 -- "No" --> S11["値セット childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO)"]
  S11 --> S12["childMap.put('gene_add_dtm', '')"]
  S10 --> S12
  S12 --> IF6{"childTemplate.isNull(EKK0361A010CBSMsg1List.GENE_ADD_DTM)"}
  IF6 -- "Yes" --> S13["空文字セット"]
  IF6 -- "No" --> S14a["値セット childTemplate.getString(EKK0361A010CBSMsg1List.GENE_ADD_DTM)"]
  S13 --> S15["childMap.put('mlad', '')"]
  S14a --> S15
  S15 --> IF7{"childTemplate.isNull(EKK0361A010CBSMsg1List.MLAD)"}
  IF7 -- "Yes" --> S16["空文字セット"]
  IF7 -- "No" --> S17["値セット childTemplate.getString(EKK0361A010CBSMsg1List.MLAD)"]
  S16 --> S18["childMap.put('url_domain', '')"]
  S17 --> S18
  S18 --> IF8{"childTemplate.isNull(EKK0361A010CBSMsg1List.URL_DOMAIN)"}
  IF8 -- "Yes" --> S19["空文字セット"]
  IF8 -- "No" --> S20["値セット childTemplate.getString(EKK0361A010CBSMsg1List.URL_DOMAIN)"]
  S19 --> S21["childMap.put('url_account', '')"]
  S20 --> S21
  S21 --> IF9{"childTemplate.isNull(EKK0361A010CBSMsg1List.URL_ACCOUNT)"}
  IF9 -- "Yes" --> S22["空文字セット"]
  IF9 -- "No" --> S23["値セット childTemplate.getString(EKK0361A010CBSMsg1List.URL_ACCOUNT)"]
  S22 --> S24["dataListに反映"]
  S23 --> S24
  S24 --> S25["dataMap.put('EKK0361A010CBSMsg1List', dataList)"]
  S25 --> S26["editErrorInfo_EKK0361A010CBS(param, templates, (Integer)return_code)"]
  S26 --> IF10{"errList == null"}
  IF10 -- "Yes" --> S27["param.setControlMapData(SCControlMapKeys.ERROR_INFO, null)"]
  IF10 -- "No" --> IF11{"errList != null && !errList.isEmpty()"}
  IF11 -- "Yes" --> S28["CCExceptionスロー (SCCallException)"]
  IF11 -- "No" --> S29["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
  S29 --> RET["return param"]
  S27 --> RET
  S14 --> S25
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
  style IF7 fill:#ffcc00
  style IF8 fill:#ffcc00
  style IF9 fill:#ffcc00
  style IF10 fill:#ffcc00
  style IF11 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|----------------|---------|--------------|
| 1 | dataMap == null | - | dataMap新規作成 |
| 2 | dataList == null | - | dataList新規作成 |
| 3 | templateArray != null | - | forループ実行 |
| 4 | i >= dataList.size() | - | dataList.add(new HashMap()) |
| 5 | childTemplate.isNull(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO) | - | 空文字 or 値セット |
| 6 | childTemplate.isNull(EKK0361A010CBSMsg1List.GENE_ADD_DTM) | - | 空文字 or 値セット |
| 7 | childTemplate.isNull(EKK0361A010CBSMsg1List.MLAD) | - | 空文字 or 値セット |
| 8 | childTemplate.isNull(EKK0361A010CBSMsg1List.URL_DOMAIN) | - | 空文字 or 値セット |
| 9 | childTemplate.isNull(EKK0361A010CBSMsg1List.URL_ACCOUNT) | - | 空文字 or 値セット |
| 10 | errList == null | - | エラー情報null |
| 11 | errList != null && !errList.isEmpty() | - | CCExceptionスロー |
| 12 | return param | - | 正常終了 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SC実行結果（CAANMsg配列・リターンコード含む） |
| 2 | param | IRequestParameterReadWrite | 業務データ格納用パラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | なし（SC結果データの業務マッピングのみ実施） |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- hakkoSOD → newKeiOdrCtrl → getOpSvcKeiIsp → **editResultRP_EKK0361A010CBS**

**呼出パス:**
```
hakkoSOD → newKeiOdrCtrl → getOpSvcKeiIsp → editResultRP_EKK0361A010CBS → editErrorInfo_EKK0361A010CBS
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK0401B001CBS()

#### 呼出元 (Reverse Call Tree) — 4 direct callers

```
editResultRP_EKK0401B001CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
└── getSbOpSvcKeiList()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    └── newKeiOdrCtrl()
        ├── hakkoSOD()
        └── adchgFixOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK0401B001CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

サブオプションサービス契約一覧照会（EKK0401B001）の実行結果を業務データparamにマッピングする。
SC応答の各項目（オプションサービス契約番号、サブオプションサービス契約番号、世代登録日時、サブオプションサービスステータス、コード類等）を全て抽出し、エラー情報もマッピングする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0401B001CBS(msgList, param)"]
    --> S1["msgListからTEMPLATE_LIST_KEYでparentTemplate取得"]
    --> S2["msgListからRET_CD_INT_KEYでreturn_code取得"]
    --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
    --> IF1{"dataMap == null"}
    IF1 -- "Yes" --> S4["新規dataMap作成、param.setData"]
    IF1 -- "No"  --> S5["既存dataMap利用"]
    S4 --> S6
    S5 --> S6
    S6["parentTemplate.getMsgData().get(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST)でdataList取得"]
    --> IF2{"dataList == null"}
    IF2 -- "Yes" --> S7["新規dataList作成"]
    IF2 -- "No"  --> S8["既存dataList利用"]
    S7 --> S9
    S8 --> S9
    S9["templateArray存在時、全件ループ"]
    --> FOR1["for i=0 to templateArray.length"]
    FOR1 --> IF3{"i >= dataList.size()"}
    IF3 -- "Yes" --> S10["dataList.add(new HashMap())"]
    IF3 -- "No"  --> S11["既存childMap利用"]
    S10 --> S12
    S11 --> S12
    S12["childTemplateごとに全項目をchildMapにput"]
    --> S13["op_svc_kei_no, sbop_svc_kei_no, gene_add_dtm, sbop_svc_kei_stat, sbop_svc_cd, pcrs_cd, pplan_cd"]
    S13 --> S14["dataMap.put('EKK0401B001CBSMsg1List', dataList)"]
    S14 --> S15["editErrorInfo_EKK0401B001CBS呼出"]
    S15 --> S16["param.getControlMapData(ERROR_INFO)でerrList取得"]
    --> IF4{"errList == null"}
    IF4 -- "Yes" --> S17["param.setControlMapData(ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
    IF4 -- "No"  --> IF5{"errList != null && !errList.isEmpty()"}
    IF5 -- "Yes" --> S18["Exception throw"]
    IF5 -- "No"  --> S17
    S17 --> END["return param"]
    S18 --> END
```

**処理ステップ詳細:**

- 各サブオプションサービス項目をchildMapへput。
- エラー情報はeditErrorInfo_EKK0401B001CBSで補完する。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null |  | 新規作成 |
| 2 | dataList == null |  | 新規作成 |
| 3 | templateArray != null |  | forループ |
| 4 | i >= dataList.size() |  | new HashMap()追加 |
| 5 | childTemplate.isNull(EKK0401B001CBSMsg1List.XXXX) |  | 空文字セット |
| 6 | errList == null |  | ERROR_INFOセット |
| 7 | errList != null && !errList.isEmpty() |  | Exception throw |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント応答メッセージリスト |
| 2 | param | IRequestParameterReadWrite | 業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 本メソッドはデータマッピングのみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- getSbOpSvcKeiList
- newKeiOdrCtrl
- adchgFixOdrCtrl
- hakkoSOD

**呼出パス:**

```
[呼び出し元] → editResultRP_EKK0401B001CBS → editErrorInfo_EKK0401B001CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

---

### editResultRP_EKK0791A010SC()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private ArrayList<HashMap<String, Object>> editResultRP_EKK0791A010SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<HashMap<String, Object>>`

---

#### 1. 役割

EKK0791A010（料金コース一意照会）のサービスコンポーネント実行後、戻り値（SCレスポンス）の内容を業務用パラメータ（IRequestParameterReadWrite）と業務マップ（ArrayList<HashMap<String, Object>>）にマッピングする。  
呼出元はSC照会処理の後、本メソッドでレスポンスデータとエラーステータスを整形・格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0791A010SC(result, param)"] --> S1["Step1: SC戻り値からCAANMsg配列取得（result.get(JCMConstants.TEMPLATE_LIST_KEY)）"]
  S1 --> S2["Step2: リターンコード取得（result.get(JCMConstants.RET_CD_INT_KEY)）"]
  S2 --> S3["Step3: テンプレートのステータス取得（template.getInt(EKK0791A010CBSMsg.STATUS)）"]
  S3 --> IF1{"if: returnCode != 0"}
  IF1 -- "Yes" --> S4["Step4: エラーメッセージ定義の有無チェック"]
  S4 --> IF2{"if: JCMAPLConstMgr.getString('RETURN_MESSAGE_'+String.format('%1$04d', templateStatus)) == null"}
  IF2 -- "Yes" --> S5["Step5: param.getControlMapData(SCControlMapKeys.RETURN_CODE)"]
  IF2 -- "No" --> S6["Step6: param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S5 --> S7["Step7: Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE))"]
  S7 --> S8["Step8: param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S6 --> S8
  IF1 -- "No" --> S9["Step9: ステータス値比較 templateStatus > bpStatus"]
  S9 --> IF3{"if: templateStatus > bpStatus"}
  IF3 -- "Yes" --> S10["Step10: ステータス値上書き"]
  IF3 -- "No" --> S11["Step11: エラーマップ取得 param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S11 --> IF4{"if: errList == null"}
  IF4 -- "Yes" --> S12["Step12: errList=TemplateErrorUtil.getErrorInfo(result, errList)"]
  IF4 -- "No" --> S13["Step13: エラー・例外処理"]
  S12 --> S14["Step14: 各CAANMsg明細配列ループ"]
  S14 --> FOR1["for: childTemplates配列"]
  FOR1 --> FOR2["for: contents[j][0]各フィールド"]
  FOR2 --> S15["Step15: retMap.put(フィールド名, childTemplate.getString(フィールド名))"]
  S15 --> S16["Step16: retList.add(retMap)"]
  S16 --> RET["return retList"]
  S13 --> RET
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
```

**処理ステップ詳細:**

1. SCの戻り値Mapから、テンプレートリスト（CAANMsg配列）を取得。
2. リターンコード（SCの戻り値コード）を取得。
3. テンプレート（CAANMsg）のステータス値を取得。
4. リターンコードが0でない場合は、エラーメッセージの定義有無をチェックし、必要に応じてparam内のRETURN_CODEおよびRETURN_MESSAGEを再設定。
5. ステータス値がBP側の値より大きい場合は上書き処理。
6. エラーマップ（errList）がnullならTemplateErrorUtilで取得・設定。
7. SC明細（CAANMsg配列）の各要素ごとに、contents配列で指定されたフィールド名で値をMapに詰め、リストに追加。
8. 全ループ後、retListを返却。
9. returnCodeやtemplateStatusが異常時はSCCallExceptionをthrow。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode != 0` | - | エラーメッセージ定義有無チェック→RETURN_CODE/RETURN_MESSAGE再設定 |
| 2 | `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null` | - | param.getControlMapData(SCControlMapKeys.RETURN_CODE) |
| 3 | `templateStatus > bpStatus` | - | ステータス値上書き |
| 4 | `errList == null` | - | TemplateErrorUtil.getErrorInfoで取得 |
| 5 | `0 != returnCode || 0 != templateStatus` | - | SCCallException throw |
| 6 | for childTemplates配列 | - | 明細データループ |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | サービスIF呼出結果（SCレスポンス情報） |
| 2 | param | IRequestParameterReadWrite | 業務パラメータ。マッピング結果（RETURN_CODE、RETURN_MESSAGE等）格納先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | EKK0791A010 | 料金コース一意照会 | 料金コース | SCからの照会結果を受け取り、項目マッピング |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| 1 | SCCallException | Error | SC呼出時のリターンコード異常・テンプレートステータス異常時 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- editResultRP_EKK0791A010SC（直接呼出）

**呼出パス:**

```
editResultRP_EKK0791A010SC → TemplateErrorUtil.getErrorInfo
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| EKK0791A010 | R | 料金コース |

---

---

### editResultRP_EKK1041B001SC()

#### 呼出元 (Reverse Call Tree) — 32 direct callers

```
editResultRP_EKK1041B001SC() ← gọi bởi:
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── chkOdrSette()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findMobileStartOrderAtKK1041()    [trực tiếp]
├── findOlsOrderAtKK1041()    [trực tiếp]
├── findRadiusHasBeenSentSvc()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── findZ5OrderAtKK1041()    [trực tiếp]
├── hakkoSOD()    [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]
├── is050AddOrderHakkoZumi()    [trực tiếp]
├── isItenNoGuideTokiChu()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callEKK1041B001SC()
    ├── adchgFixOdrCtrl()
    ├── addIpv6SODAft()
    ├── bmpSwitchOdrCtrl()
    ├── chkOdrSette()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── findMobileStartOrderAtKK1041()
    ├── findRadiusHasBeenSentSvc()
    ├── findZ5OrderAtKK1041()
    ├── hakkoSOD()
    ├── htelNoAddOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── is050AddOrderHakkoZumi()
    ├── isItenNoGuideTokiChu()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── opSetOdrCtrl()
    ├── setChgePWForRouterConInfo()
    ├── vLanIdChgOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── checkTakinoRT()
    │   ├── adchgFixOdrCtrl()
    │   ├── addIpv6SODAft()
    │   ├── bmpSwitchOdrCtrl()
    │   ├── cnclOdrCtrl()
    │   ├── courseChgeOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── findZ1OrderAtKK1041()
    │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   ├── hakkoSOD()
    │   ├── htelNoAddOdrCtrl()
    │   ├── htelNoDslOdrCtrl()
    │   ├── idpwShkkaSaifuriOdrCtrl()
    │   ├── jdgIpv6EKK0361A010()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   ├── newKeiOdrCtrl()
    │   ├── telNoChge()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── htelNoKaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── jdgIpv6()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── addIpv6SODAft()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── newKeiOdrCtrl()
    │   │   ├── opSetOdrCtrl()
    │   │   └── jdgIpv6EKK0361A010()
    │   │       ├── adchgFixOdrCtrl()
    │   │       ├── addIpv6SODAft()
    │   │       ├── hakkoSOD()
    │   │       ├── kaihkOdrCtrl()
    │   │       └── newKeiOdrCtrl()
    │   ├── jdgOdr163()
    │   │   ├── adchgFixOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   └── courseChgeOdrCtrl()
    │   │       ├── adchgFixOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── kaihkOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── opSetOdrCtrl()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   └── ksiDslOdrCtrl()
    │   ├── setChgePWForRouterConInfo()
    │   │   ├── hakkoSOD()
    │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   ├── vLanIdChgOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── wribInfoAddOdrCtrl()
    │       └── hakkoSOD()
    ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── cnclOdrCtrl()
    │   │   └── hakkoSOD()
    │   ├── ksiDslFixOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── ksiDslOdrCtrl()
    │       └── hakkoSOD()
    ├── findOlsOrderAtKK1041()
    │   ├── hakkoSOD()
    │   └── htelNoInfoChgeOdrCtrl()
    ├── findZ1OrderAtKK1041()
    │   ├── hakkoSOD()
    │   ├── htelNoAddOdrCtrl()
    │   │   └── hakkoSOD()
    │   └── idpwShkkaSaifuriOdrCtrl()
    │       └── hakkoSOD()
    ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   ├── cnclOdrCtrl()
    │   ├── dslOdrCtrl()
    │   ├── hakkoSOD()
    │   ├── htelNoDslOdrCtrl()
    │   ├── htelNoInfoChgeOdrCtrl()
    │   ├── htelNoKaihkOdrCtrl()
    │   ├── kaihkOdrCtrl()
    │   ├── ksiDslFixOdrCtrl()
    │   ├── ksiDslOdrCtrl()
    │   └── opSetOdrCtrl()
    ├── htelNoDslOdrCtrl()
    │   └── hakkoSOD()
    └── telNoChge()
        ├── hakkoSOD()
        └── bmpSwitchOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private ArrayList<HashMap<String, Object>> editResultRP_EKK1041B001SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<HashMap<String, Object>>`

---

#### 1. 役割

「EKK1041B001 オーダ設定一覧照会」サービスコンポーネントの実行後に、IRequestParameterReadWriteへ業務データおよびエラー情報を出力マッピングする。  
SCからのCAANMsgリストやリターンコード、エラー情報を解析し、業務用データリストおよびコントロールマップへ反映する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1041B001SC(result, param)"] --> S1["result.get(JCMConstants.TEMPLATE_LIST_KEY)でテンプレート取得"]
  S1 --> S2["result.get(JCMConstants.RET_CD_INT_KEY)でリターンコード取得"]
  S2 --> S3["template.getInt(EKK1041B001CBSMsg.STATUS)でステータス取得"]
  S3 --> IF1{"returnCode != 0"}
  IF1 -- "Yes" --> S4["JCMAPLConstMgr.getStringでエラーメッセージ取得"]
  IF1 -- "No" --> S5["業務データ解析へ"]
  S4 --> S6["param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S6 --> S7["param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S7 --> S8["param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S8 --> IF2{"errList == null"}
  IF2 -- "Yes" --> S9["errList新規作成"]
  IF2 -- "No" --> S10["errList利用"]
  S9 --> S11
  S10 --> S11
  S11 --> IF3{"0 != returnCode || 0 != templateStatus"}
  IF3 -- "Yes" --> S12["SCCallException発生（業務例外）"]
  IF3 -- "No" --> S13["(new EKK1041B001CBSMsg1List()).getContents()を取得"]
  S13 --> S14["template.getCAANMsgList(EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST)で子テンプレート配列取得"]
  S14 --> FOR1["for("i=0; i<childTemplates.length; i++")"]
  FOR1 --> FOR2["for("j=0; j<contents.length; j++")"]
  FOR2 --> S15["retMap.put((String)contents[j][0], childTemplates[i].getString((String)contents[j][0]))"]
  S15 --> S16["retList.add(retMap)"]
  S16 --> RET["return retList"]

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | returnCode != 0 | - | エラー処理へ |
| 2 | JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus) == null | - | メッセージなし扱い |
| 3 | obj == null | - | 新規errList作成 |
| 4 | templateStatus > bpStatus | - | ステータス上書き |
| 5 | errList == null | - | 新規errList作成 |
| 6 | 0 != returnCode || 0 != templateStatus | - | SCCallException発生 |
| 7 | forループ | - | 子テンプレート分データ解析 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | SCからの戻り値データ、CAANMsgリスト等を保持 |
| 2 | param | IRequestParameterReadWrite | 編集対象となるリクエスト/レスポンスオブジェクト |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データ変換のみ（CRUD操作なし） |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- callEKK1041B001SC → editResultRP_EKK1041B001SC
- chkOdrSette → editResultRP_EKK1041B001SC
- ...他、多数

**呼出パス:**
```
[callEKK1041B001SC] → [editResultRP_EKK1041B001SC]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK1081B001SC()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private ArrayList<HashMap<String, Object>> editResultRP_EKK1081B001SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `ArrayList<HashMap<String, Object>>`

---

#### 1. 役割

EKK1081B001（オーダ発行条件一覧照会）のサービスコンポーネント実行後、レスポンスデータをArrayList<HashMap<String, Object>>型で返却し、エラー情報をparamに格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1081B001SC(result, param)"] --> S1["Step1: CAANMsg配列取得(result.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["Step2: リターンコード取得(result.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["Step3: ステータス値取得(template.getInt(EKK1081B001CBSMsg.STATUS))"]
  S3 --> IF1{"if: returnCode != 0"}
  IF1 -- "Yes" --> S4["Step4: エラーメッセージ定義有無チェック"]
  S4 --> IF2{"if: JCMAPLConstMgr.getString('RETURN_MESSAGE_'+String.format('%1$04d', templateStatus)) == null"}
  IF2 -- "Yes" --> S5["Step5: param.getControlMapData(SCControlMapKeys.RETURN_CODE)"]
  IF2 -- "No" --> S6["Step6: param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)"]
  S5 --> S7["Step7: Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE))"]
  S7 --> S8["Step8: param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)"]
  S6 --> S8
  IF1 -- "No" --> S9["Step9: ステータス値比較 templateStatus > bpStatus"]
  S9 --> IF3{"if: templateStatus > bpStatus"}
  IF3 -- "Yes" --> S10["Step10: ステータス上書き"]
  IF3 -- "No" --> S11["Step11: エラーマップ取得 param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S11 --> IF4{"if: errList == null"}
  IF4 -- "Yes" --> S12["Step12: errList=TemplateErrorUtil.getErrorInfo(result, errList)"]
  IF4 -- "No" --> S13["Step13: エラー・例外処理"]
  S12 --> S14["Step14: 各CAANMsg明細配列ループ"]
  S14 --> FOR1["for: childTemplates配列"]
  FOR1 --> S15["Step15: retList.add(childTemplates[i].getMsgData())"]
  S15 --> RET["return retList"]
  S13 --> RET
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
```

**処理ステップ詳細:**

1. SCレスポンス値からCAANMsg配列取得。
2. リターンコード取得。
3. ステータス値取得。
4. エラーメッセージ定義有無チェックしparamのRETURN_CODE/RETURN_MESSAGEを再設定。
5. ステータス値比較し上書き。
6. エラーマップがnullならTemplateErrorUtilで取得・設定。
7. childTemplates配列の各要素をretListに追加。
8. retList返却。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `returnCode != 0` | - | エラーメッセージ定義有無チェック |
| 2 | `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null` | - | paramからRETURN_CODE取得 |
| 3 | `templateStatus > bpStatus` | - | ステータス上書き |
| 4 | `errList == null` | - | TemplateErrorUtilで取得 |
| 5 | `0 != returnCode || 0 != templateStatus` | - | SCCallException throw |
| 6 | for childTemplates配列 | - | 明細データループ |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | サービスIF呼出結果 |
| 2 | param | IRequestParameterReadWrite | 業務パラメータ。エラー・明細格納先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | EKK1081B001 | オーダ発行条件一覧照会 | オーダ発行条件 | SC照会明細・エラー情報のマッピング |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| 1 | SCCallException | Error | SC呼出時のリターンコード異常・テンプレートステータス異常時 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- editResultRP_EKK1081B001SC（直接呼出）

**呼出パス:**

```
editResultRP_EKK1081B001SC → TemplateErrorUtil.getErrorInfo
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| EKK1081B001 | R | オーダ発行条件 |

---### editResultRP_EKK0791A010SC()

---

#### 1. 役割

EKK0791A010（料金コース一意照会）のサービスコンポーネント実行結果を、IRequestParameterReadWriteに業務的に必要な形でマッピングし、呼出元BPへ返却する業務ロジックです。SCの実行結果（CAANMsgなど）からステータス・エラーを抽出し、正常・異常時で処理分岐します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0791A010SC(result, param)"] --> S1["Step1: SC結果テンプレート取得(result.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["Step2: リターンコード取得(result.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> IF1{"returnCode != 0"}
  IF1 -- "Yes" --> S_ERR1["エラー分岐: SC異常"]
  S_ERR1 --> S3["→ ステータス（templateStatus）取得(template.getInt(EKK0791A010CBSMsg.STATUS))"]
  IF1 -- "No" --> S3
  S3 --> IF2{"JCMAPLConstMgr.getString(\"RETURN_MESSAGE_\" + formatStatus) == null"}
  IF2 -- "Yes" --> S_ERR2["エラーメッセージ取得失敗"]
  IF2 -- "No" --> S4["Step4: 業務用SCリターンコードをparamへ設定"]
  S4 --> IF3{"obj == null"}
  IF3 -- "Yes" --> S_OBJ_NULL["SC結果オブジェクトなし"]
  IF3 -- "No" --> S5["Step5: BP基準のステータス取得と比較"]
  S5 --> IF4{"templateStatus > bpStatus"}
  IF4 -- "Yes" --> S_STATUSERR["SC結果ステータス異常"]
  IF4 -- "No" --> S6["Step6: エラー情報取得(param.getControlMapData(SCControlMapKeys.ERROR_INFO))"]
  S6 --> IF5{"errList == null"}
  IF5 -- "Yes" --> S_ERR3["エラー情報なし"]
  IF5 -- "No" --> S7["Step7: エラー情報をparamへ設定"]
  S7 --> IF6{"0 != returnCode || 0 != templateStatus"}
  IF6 -- "Yes" --> S_THROW["SCCallException投げる"]
  IF6 -- "No" --> S8["Step8: 明細ループ照会結果変換"]
  S8 --> S9["Step9: 子テンプレートループ(childTemplates)で各明細をretMapへ格納"]
  S9 --> S10["Step10: retListへadd"]
  S10 --> END["return retList"]

  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. `result.get(JCMConstants.TEMPLATE_LIST_KEY)`でSCコール結果のテンプレートリストを取得。
2. `result.get(JCMConstants.RET_CD_INT_KEY)`でリターンコード（returnCode）を取得。
3. `template.getInt(EKK0791A010CBSMsg.STATUS)`でSC結果のステータス値を取得。
4. `param.getControlMapData(SCControlMapKeys.RETURN_CODE)`で業務パラメータ側のリターンコードを取得し、`Integer.parseInt`で数値化。
5. `String.format("%1$04d", templateStatus)`で4桁ゼロパディングしたステータス文字列生成。
6. `JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus)`で業務用リターンメッセージを取得。なければエラー扱い。
7. `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus)`でコントロールマップにリターンコード設定。
8. `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message)`でコントロールマップにリターンメッセージ設定。
9. `param.getControlMapData(SCControlMapKeys.ERROR_INFO)`でエラー情報を取得し、`TemplateErrorUtil.getErrorInfo(result, errList)`で解析・設定。
10. ステータス値やエラー発生時は`SCCallException`で例外送出。
11. `new EKK0791A010CBSMsg1List().getContents()`で明細項目リストを取得。
12. `template.getCAANMsgList(EKK0791A010CBSMsg.EKK0791A010CBSMSG1LIST)`で子テンプレート取得。forループで全明細について`retMap.put`し、`retList.add`で返却リスト構築。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 分岐先 |
|---|------|--------|
|1|`returnCode != 0`|エラー分岐（異常）|
|2|`JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null`|エラーメッセージ異常|
|3|`obj == null`|SC結果オブジェクトなし|
|4|`templateStatus > bpStatus`|SCステータス異常|
|5|`errList == null`|エラー情報なし|
|6|`0 != returnCode || 0 != templateStatus`|SCCallExceptionスロー|
|7|子テンプレート多重ループ|明細ごとに処理|

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|----|----------|
| 1 | result | Map<?, ?> | SCコール結果（レスポンス） |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンス業務パラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | データ変換のみ | SC出力→業務パラメータ変換 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- editResultRP_EKK0791A010SC（直接呼出が記録されていないため、SCコール直後の出力変換として機能）

**呼出パス:**

```
[SCコール] → editResultRP_EKK0791A010SC → [業務パラメータに変換]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK1081C011CBS()

#### 呼出元 (Reverse Call Tree) — 4 direct callers

```
editResultRP_EKK1081C011CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
└── getSameTrnNo()
    ├── adchgFixOdrCtrl()
    ├── hakkoSOD()
    └── newKeiOdrCtrl()
        ├── hakkoSOD()
        └── adchgFixOdrCtrl()
            └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private IRequestParameterReadWrite editResultRP_EKK1081C011CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

EKK1081C011（同一処理番号採番）サービスコンポーネントの下り（SC→BP）マッピング処理。SC実行結果の同一処理番号やエラー情報をIRequestParameterReadWriteに格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1081C011CBS(msgList, param)"] --> S1["msgList.get(JCMConstants.TEMPLATE_LIST_KEY)でCAANMsg取得"]
  S1 --> S2["msgList.get(JCMConstants.RET_CD_INT_KEY)でreturn_code取得"]
  S2 --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4["dataMap初期化"]
  IF1 -- "No" --> S5["既存dataMap利用"]
  S4 --> S6["param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap)"]
  S5 --> S6
  S6 --> IF2{"parentTemplate.isNull(EKK1081C011CBSMsg.SAME_TRN_NO)"}
  IF2 -- "Yes" --> S7["dataMap.put('same_trn_no', '')"]
  IF2 -- "No" --> S8["dataMap.put('same_trn_no', parentTemplate.getString(EKK1081C011CBSMsg.SAME_TRN_NO))"]
  S7 --> S9
  S8 --> S9
  S9["this.editErrorInfo_EKK1081C011CBS(param, templates, (Integer)return_code)"] --> S10["param.getControlMapData(SCControlMapKeys.ERROR_INFO)"]
  S10 --> IF3{"errList == null"}
  IF3 -- "Yes" --> S11["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
  IF3 -- "No" --> IF4{"errList != null && !errList.isEmpty()"}
  IF4 -- "Yes" --> S12["throw CCException(…, templates[0].getInt(EKK1081C011CBSMsg.STATUS))"]
  IF4 -- "No" --> S13["正常処理"]
  S11 --> S13
  S12 --> END
  S13 --> RET["return param"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
```

**処理ステップ詳細:**

1. SC戻り値からCAANMsg配列・return_codeを取得
2. dataMap取得（なければ初期化・セット）
3. 親テンプレートのSAME_TRN_NO存在可否でdataMapに格納値分岐
4. エラー情報編集メソッド呼出
5. エラーリスト取得・設定。重大エラー時は例外スロー
6. 正常処理時はparam返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `dataMap == null` | - | 初期化 |
| 2 | `parentTemplate.isNull(EKK1081C011CBSMsg.SAME_TRN_NO)` | - | 空文字設定 |
| 3 | `errList == null` | - | エラー情報設定 |
| 4 | `errList != null && !errList.isEmpty()` | - | 例外スロー |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント実行結果 |
| 2 | param | IRequestParameterReadWrite | 出力業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | CRUD操作なし。データ変換・設定のみ |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- getSameTrnNo → editResultRP_EKK1081C011CBS

**呼出パス:**

```
[外部業務クラス] → getSameTrnNo → **editResultRP_EKK1081C011CBS**（結果・エラー情報構築）
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

### editResultRP_EKK1081D010CBS()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
editResultRP_EKK1081D010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSOD()    [trực tiếp]
├── addSODDupNew()    [trực tiếp]
├── addSODEmailNew()    [trực tiếp]
├── addSODFtthNew()    [trực tiếp]
├── addSODHPAccessAdd()    [trực tiếp]
├── addSODHPCapaChg()    [trực tiếp]
├── addSODHPNew()    [trực tiếp]
├── addSODMailAliasAdd()    [trực tiếp]
├── addSODMailCapaChg()    [trực tiếp]
├── addSODMListNew()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addSODTelNew()    [trực tiếp]
├── addSODTelVAChange()    [trực tiếp]
├── addSODUQWIMAXKaitoriNew()    [trực tiếp]
├── addSODUQWIMAXNew()    [trực tiếp]
├── addSODVirusChkAdd()    [trực tiếp]
├── addSODWiFiChg()    [trực tiếp]
├── addSODWiFiNew()    [trực tiếp]
├── addTakinoSOD()    [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]
├── 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]
├── tsuikabunAddSOD()    [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]
└── executeOdrHakkoJokenAdd()
    ├── adchgFixOdrCtrl()
    ├── add050AddSod()
    ├── add050DelSod()
    ├── addSODMRTChgRTSta()
    ├── addTensoDenwaOp()
    ├── addTokiSOD()
    ├── bmpDojiMskm()
    ├── bmpSipDslOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── enumAddOdrCtrl()
    ├── enumDelOdrCtrl()
    ├── hakkoCourseChgSOD()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelItntokiOdrCtrl()
    ├── htelNoAddOdrCtrl()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── keiTtdkChuHtelnoChgeOdrCtrl()
    ├── koteiIpAd8DivOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── malwareBlockingDivOdrCtrl()
    ├── newEoMobile()
    ├── newKeiOdrCtrl()
    ├── newNet()
    ├── opHktgiOdrCtrl()
    ├── opSetOdrCtrl()
    ├── pauseRlsChgeOdrCtrl()
    ├── pauseUkOdrCtrl()
    ├── rtOpChgDivOdrCtrl()
    ├── setChgePWForDialup()
    ├── setChgePWForIPv6()
    ├── setChgePWForMltiSe()
    ├── setChgePWForRouterConInfo()
    ├── spotLoginSysidChgeOdrCtrl()
    ├── stpRlsOdrCtrl()
    ├── stpUkOdrCtrl()
    ├── taiikiSeigenOdrCtrl()
    ├── telNoChge()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── vLanIdChgOdrCtrl()
    ├── vLanIdVaChangeOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── 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()
    │   │       ├── jdgIpv6EKK0361A010()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       ├── newKeiOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   ├── 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:** `private IRequestParameterReadWrite editResultRP_EKK1081D010CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

「オーダ発行条件登録」SC実行後、CAANMsg配列から業務データ（オーダ発行条件番号）とエラー情報をIRequestParameterReadWrite（param）に格納する。  
主に「addSOD」などのSOD系メソッドから呼び出され、SC登録結果を業務データへ変換・格納する役割。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1081D010CBS(msgList, param)"] --> S1["1. CAANMsg配列取得 (msgList.get(JCMConstants.TEMPLATE_LIST_KEY))"]
  S1 --> S2["2. リターンコード取得 (msgList.get(JCMConstants.RET_CD_INT_KEY))"]
  S2 --> S3["3. マッピングワークエリア取得 (param.getMappingWorkArea())"]
  S3 --> IF1{"workMap == null"}
  IF1 -- "Yes" --> S4a["workMap新規作成"]
  IF1 -- "No" --> S4b["既存workMapを利用"]
  S4a --> S5
  S4b --> S5
  S5["param.setMappingWorkArea(workMap)"] --> S6["業務データMap取得 (param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP))"]
  S6 --> IF2{"dataMap == null"}
  IF2 -- "Yes" --> S7a["dataMap新規作成"]
  IF2 -- "No" --> S7b["既存dataMapを利用"]
  S7a --> S8
  S7b --> S8
  S8["param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap)"] --> S9["dataMap.put('odr_hakko_joken_no', '')"]
  S9 --> IF3{"parentTemplate.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO)"}
  IF3 -- "Yes" --> S10["空文字セット"]
  IF3 -- "No" --> S11["値セット parentTemplate.getString(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO)"]
  S11 --> S12["editErrorInfo_EKK1081D010CBS(param, templates, (Integer)return_code)"]
  S12 --> IF4{"errList == null"}
  IF4 -- "Yes" --> S13["param.setControlMapData(SCControlMapKeys.ERROR_INFO, null)"]
  IF4 -- "No" --> IF5{"errList != null && !errList.isEmpty()"}
  IF5 -- "Yes" --> S14["CCExceptionスロー (SCCallException)"]
  IF5 -- "No" --> S15["param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
  S15 --> RET["return param"]
  S13 --> RET
  S10 --> S12
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------------------------------------------------------|---------|---------------------|
| 1 | workMap == null | - | workMap新規作成 |
| 2 | dataMap == null | - | dataMap新規作成 |
| 3 | parentTemplate.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO) | - | 空文字 or 値セット |
| 4 | errList == null | - | エラー情報null |
| 5 | errList != null && !errList.isEmpty() | - | CCExceptionスロー |
| 6 | return param | - | 正常終了 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SC実行結果（CAANMsg配列・リターンコード含む） |
| 2 | param | IRequestParameterReadWrite | 業務データ格納用パラメータ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | なし（SC結果データの業務マッピングのみ実施） |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- executeOdrHakkoJokenAdd → editResultRP_EKK1081D010CBS

**呼出パス:**
```
executeOdrHakkoJokenAdd → editResultRP_EKK1081D010CBS → editErrorInfo_EKK1081D010CBS
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---### editResultRP_EKK0361A010CBS()

---

#### 1. 役割

オプションサービス契約＜ISP＞一意照会のサービスコンポーネント実行後に、SCから返却された結果データおよびエラー情報を`IRequestParameterReadWrite`パラメータへマッピングする業務処理。  
上位呼出元は`getOpSvcKeiIsp`、`newKeiOdrCtrl`、`adchgFixOdrCtrl`、`hakkoSOD`等。入力はSC戻り値マップ、出力はマッピング済み業務パラメータ。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK0361A010CBS(msgList, param)"] --> S1["msgListからTEMPLATE_LIST_KEYでtemplates取得"]
  S1 --> S2["msgListからRET_CD_INT_KEYでreturn_code取得"]
  S2 --> S3["param.getData(HAKKOSODCCWORKMAP)でdataMap取得"]
  S3 --> IF1{"dataMap == null"}
  IF1 -- "Yes" --> S4["dataMap新規生成"]
  IF1 -- "No" --> S5["既存dataMap使用"]
  S4 --> S6["param.setData(HAKKOSODCCWORKMAP, dataMap)"]
  S5 --> S6
  S6 --> S7["parentTemplate.getMsgData().get(EKK0361A010CBSMSG1LIST)でdataList取得"]
  S7 --> IF2{"dataList == null"}
  IF2 -- "Yes" --> S8["dataList新規生成"]
  IF2 -- "No" --> S9["既存dataList使用"]
  S8 --> S10["dataMap.put(EKK0361A010CBSMsg1List, dataList)"]
  S9 --> S10
  S10 --> IF3{"templates != null"}
  IF3 -- "Yes" --> FOR1["for i=0...templates.length"]
  IF3 -- "No" --> S15["エラースキップ"]
  FOR1 --> IF4{"i >= dataList.size()"}
  IF4 -- "Yes" --> S11["dataList.add(new HashMap())"]
  IF4 -- "No" --> S12["childMap = dataList.get(i)"]
  S11 --> S13["childMap = dataList.get(i)"]
  S12 --> S13
  S13 --> IF5{"childTemplate.isNull(OP_SVC_KEI_NO)"}
  IF5 -- "Yes" --> S14["childMap.put(op_svc_kei_no, '')"]
  IF5 -- "No" --> S20["childMap.put(op_svc_kei_no, childTemplate.getString(OP_SVC_KEI_NO))"]
  S14 --> IF6{"childTemplate.isNull(GENE_ADD_DTM)"}
  S20 --> IF6
  IF6 -- "Yes" --> S16["childMap.put(gene_add_dtm, '')"]
  IF6 -- "No" --> S21["childMap.put(gene_add_dtm, childTemplate.getString(GENE_ADD_DTM))"]
  S16 --> IF7{"childTemplate.isNull(MLAD)"}
  S21 --> IF7
  IF7 -- "Yes" --> S17["childMap.put(mlad, '')"]
  IF7 -- "No" --> S22["childMap.put(mlad, childTemplate.getString(MLAD))"]
  S17 --> IF8{"childTemplate.isNull(URL_DOMAIN)"}
  S22 --> IF8
  IF8 -- "Yes" --> S18["childMap.put(url_domain, '')"]
  IF8 -- "No" --> S23["childMap.put(url_domain, childTemplate.getString(URL_DOMAIN))"]
  S18 --> IF9{"childTemplate.isNull(URL_ACCOUNT)"}
  S23 --> IF9
  IF9 -- "Yes" --> S19["childMap.put(url_account, '')"]
  IF9 -- "No" --> S24["childMap.put(url_account, childTemplate.getString(URL_ACCOUNT))"]
  S19 --> S25["次レコードへ"]
  S24 --> S25
  S25 --> FOR1
  S15 --> S26["dataMap.put(EKK0361A010CBSMsg1List, dataList)"]
  S26 --> S27["this.editErrorInfo_EKK0361A010CBS(param, templates, return_code)"]
  S27 --> S28["param.getControlMapData(ERROR_INFO)でerrList取得"]
  S28 --> IF10{"errList == null"}
  IF10 -- "Yes" --> S29["何もしない"]
  IF10 -- "No" --> IF11{"errList != null && !errList.isEmpty()"}
  IF11 -- "Yes" --> S30["CCException発生 (SCCallExceptionラップ)"]
  IF11 -- "No" --> S31["正常終了"]
  S30 --> END["return param (Exception経由)"]
  S31 --> END["return param"]
```

**処理ステップ詳細:**

1. SCからの戻り値からCAANMsg（テンプレートリスト）を取得
2. リターンコード（RET_CD_INT_KEY）を取得
3. paramの業務ワークマップ（HAKKOSODCCWORKMAP）を取得（なければ新規生成しセット）
4. parentTemplateからメッセージリスト（EKK0361A010CBSMsg1List）を取得
5. dataList（業務明細リスト）がなければ新規生成しdataMapへput
6. テンプレート配列が存在する場合、for文で各明細をdataListへマッピング
   - 各項目（op_svc_kei_no, gene_add_dtm, mlad, url_domain, url_account）をchildTemplateから取得し、childMapへセット。null時は空文字セット
7. マッピング後、editErrorInfo_EKK0361A010CBSでエラー情報設定
8. コントロールマップ（ERROR_INFO）からエラー情報取得、errList未設定かつ空でなければException発生
9. 正常時はparamを返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `dataMap == null` | - | 新規生成 |
| 2 | `dataList == null` | - | 新規生成 |
| 3 | `templateArray != null` | - | forで明細マッピング |
| 4 | `i >= dataList.size()` | - | dataList.add(new HashMap()) |
| 5 | `childTemplate.isNull(OP_SVC_KEI_NO)` | - | 空文字セット |
| 6 | `childTemplate.isNull(GENE_ADD_DTM)` | - | 空文字セット |
| 7 | `childTemplate.isNull(MLAD)` | - | 空文字セット |
| 8 | `childTemplate.isNull(URL_DOMAIN)` | - | 空文字セット |
| 9 | `childTemplate.isNull(URL_ACCOUNT)` | - | 空文字セット |
| 10 | `errList == null` | - | 何もしない |
| 11 | `errList != null && !errList.isEmpty()` | - | Exception発生 |
| 12 | 上記以外 | - | 正常return |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | SCから返却されたメッセージ・データのリスト |
| 2 | param | IRequestParameterReadWrite | 業務データコンテナ（入出力共用） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | データ変換のみ | オプションサービス契約＜ISP＞一意照会SC結果の業務データマッピング |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | 本メソッド固有のメッセージIDデータなし |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- getOpSvcKeiIsp
- newKeiOdrCtrl
- adchgFixOdrCtrl
- hakkoSOD

**呼出パス:**

```
getOpSvcKeiIsp → editResultRP_EKK0361A010CBS
newKeiOdrCtrl → editResultRP_EKK0361A010CBS
adchgFixOdrCtrl → editResultRP_EKK0361A010CBS
hakkoSOD → editResultRP_EKK0361A010CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | データマッピングのみ |

---

---

---

### editResultRP_EKK1081E010SC()

> **呼出元**: (トレースなし)


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `private HashMap<String, Object> editResultRP_EKK1081E010SC(Map<?, ?> result, IRequestParameterReadWrite param)`
> **戻り値:** `HashMap<String, Object>`

---

#### 1. 役割

**EKK1081E010（オーダ発行条件論理削除S-IF）のSC呼出結果（Map）を業務パラメータへマッピングする処理。**
SC実行結果からレスポンスデータ（ステータス、エラー情報等）をパースしてIRequestParameterReadWriteへ反映する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1081E010SC(result, param)"] --> S1["SC呼出結果(result)からテンプレートリスト取得"]
  S1 --> S2["SC呼出結果(result)から戻りコード(RET_CD_INT_KEY)取得"]
  S2 --> S3["テンプレートからSTATUS取得"]
  S3 --> IF1{"returnCode != 0"}
  IF1 -- "Yes" --> S4["エラー処理分岐（メッセージセット）"]
  IF1 -- "No" --> S5["正常処理"]
  S4 --> IF2{"JCMAPLConstMgr.getString('RETURN_MESSAGE_' + format(templateStatus)) == null"}
  IF2 -- "Yes" --> S6["独自メッセージを設定"]
  IF2 -- "No" --> S7["既存メッセージを設定"]
  S6 --> IF3{"obj == null"}
  S7 --> IF3
  IF3 -- "Yes" --> S8["エラー時のデフォルト処理"]
  IF3 -- "No" --> IF4{"templateStatus > bpStatus"}
  IF4 -- "Yes" --> S9["templateStatusを優先して設定"]
  IF4 -- "No" --> S10["bpStatusを優先して設定"]
  S8 --> S11["エラー情報マッピング"]
  S9 --> S11
  S10 --> S11
  S5 --> S11
  S11 --> IF5{"errList == null"}
  IF5 -- "Yes" --> S12["エラー情報なしでセット"]
  IF5 -- "No" --> S13["エラー情報(TemplateErrorUtil.getErrorInfo())をセット"]
  S12 --> IF6{"0 != returnCode || 0 != templateStatus"}
  S13 --> IF6
  IF6 -- "Yes" --> S14["SCCallExceptionスロー"]
  IF6 -- "No" --> RET["template.getMsgData()をreturn"]

  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ff3300
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | returnCode != 0 | - | エラー処理分岐 |
| 2 | JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null | - | 独自メッセージ設定 |
| 3 | obj == null | - | デフォルトエラー処理 |
| 4 | templateStatus > bpStatus | - | templateStatus優先設定 |
| 5 | errList == null | - | エラー情報なし処理 |
| 6 | 0 != returnCode || 0 != templateStatus | - | SCCallExceptionスロー |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | result | Map<?, ?> | SC実行結果マップ |
| 2 | param | IRequestParameterReadWrite | レスポンスマッピング先 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | SC呼出結果のマッピングのみ |

---

#### 4.5 メッセージID (Message IDs)

| # | メッセージID | 種別 | 利用コンテキスト |
|---|-----------|------|---------------|
| - | - | - | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点 (Entry Point):**
- editResultRP_EKK1081E010SC

**呼出パス:**

```
editResultRP_EKK1081E010SC
```

**終端 (End Points):**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

**本出力は、contextファイル記載の各種メタデータ（MethodSequence, ControlFlow, BodyComments, CallerTrace）を厳密に反映しています。**### editInMsg_EKK0341B002CBS(IRequestParameterReadOnly param)

---

#### 1. 役割

機器提供サービス契約一覧照会（サービス契約番号）用のSC（サービスコンポーネント）入力メッセージ（CAANMsg）のフィールドを、リクエストパラメータからマッピングして生成する。  
SC呼出し前に、トランザクション制御情報や業務キー情報（サービス契約番号等）をテンプレートに設定し、SC連携のための入力値を構築する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editInMsg_EKK0341B002CBS(param)"] --> S1["paramMapへ共通制御データをput (トランザクションID, ユースケースID, オペレーションID, サービス呼出区分)"]
  S1 --> S2["paramMapへ依頼元情報をput (ホスト名, IP, 画面ID, オペレータID)"]
  S2 --> S3["EKK0341B002CBSMsgのテンプレート生成"]
  S3 --> S4["テンプレートへテンプレートID, 機能コードをセット"]
  S4 --> S5["editBasicCmnで共通部を設定"]
  S5 --> S6["inMapから業務キー情報を取得"]
  S6 --> IF1{"inMap == null || inMap['svc_kei_no'] == null || ''"}
  IF1 -- "Yes" --> S7a["template.KEY_SVC_KEI_NOをnullでセット"]
  IF1 -- "No" --> S7b["template.KEY_SVC_KEI_NOをinMap['svc_kei_no']でセット"]
  S7a --> IF2
  S7b --> IF2
  IF2{"inMap == null || inMap['kktk_svc_cd'] == null || ''"}
  IF2 -- "Yes" --> S8a["template.KEY_KKTK_SVC_CDをnullでセット"]
  IF2 -- "No" --> S8b["template.KEY_KKTK_SVC_CDをinMap['kktk_svc_cd']でセット"]
  S8a --> IF3
  S8b --> IF3
  IF3{"inMap == null || inMap['kktk_svc_kei_no'] == null || ''"}
  IF3 -- "Yes" --> S9a["template.KEY_KKTK_SVC_KEI_NOをnullでセット"]
  IF3 -- "No" --> S9b["template.KEY_KKTK_SVC_KEI_NOをinMap['kktk_svc_kei_no']でセット"]
  S9a --> IF4
  S9b --> IF4
  IF4{"inMap == null || inMap['sort_kbn'] == null || ''"}
  IF4 -- "Yes" --> S10a["template.KEY_SORT_KBNをnullでセット"]
  IF4 -- "No" --> S10b["template.KEY_SORT_KBNをinMap['sort_kbn']でセット"]
  S10a --> S11["paramMapにtemplates配列をセット"]
  S10b --> S11
  S11 --> RET["return paramMap"]
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
```

**処理ステップ詳細:**

1. `param` からトランザクションID・ユースケースID・オペレーションID・サービス呼出区分を取得し、`paramMap` にput
2. `param` から依頼元ホスト名・IPアドレス・画面ID・オペレータIDを取得し、`paramMap` にput
3. EKK0341B002CBSMsgのテンプレートを生成
4. テンプレートにテンプレートID・機能コードをセット
5. `editBasicCmn` で共通部（SC共通項目）をテンプレートに反映
6. ユーザデータ情報（inMap）を取得し、各業務キー値をテンプレートにセット
    - `svc_kei_no`（サービス契約番号）がnull/空の場合はnullセット、値ありなら値をセット
    - `kktk_svc_cd`（機器提供サービスコード）がnull/空の場合はnullセット、値ありなら値をセット
    - `kktk_svc_kei_no`（機器提供サービス契約番号）がnull/空の場合はnullセット、値ありなら値をセット
    - `sort_kbn`（ソート区分）がnull/空の場合はnullセット、値ありなら値をセット
7. templates配列を`paramMap`にセット
8. `paramMap` を返却

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|--------------------------------------------------|--------|----------------------------|
| 1 | `inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no"))` | - | template.KEY_SVC_KEI_NO=null |
| 2 | 上記以外 | - | template.KEY_SVC_KEI_NO=inMap.get("svc_kei_no") |
| 3 | `inMap == null || inMap.get("kktk_svc_cd") == null || "".equals(inMap.get("kktk_svc_cd"))` | - | template.KEY_KKTK_SVC_CD=null |
| 4 | 上記以外 | - | template.KEY_KKTK_SVC_CD=inMap.get("kktk_svc_cd") |
| 5 | `inMap == null || inMap.get("kktk_svc_kei_no") == null || "".equals(inMap.get("kktk_svc_kei_no"))` | - | template.KEY_KKTK_SVC_KEI_NO=null |
| 6 | 上記以外 | - | template.KEY_KKTK_SVC_KEI_NO=inMap.get("kktk_svc_kei_no") |
| 7 | `inMap == null || inMap.get("sort_kbn") == null || "".equals(inMap.get("sort_kbn"))` | - | template.KEY_SORT_KBN=null |
| 8 | 上記以外 | - | template.KEY_SORT_KBN=inMap.get("sort_kbn") |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | param | IRequestParameterReadOnly | リクエストパラメータ（SC共通・業務パラメータ保持） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | データマッピングのみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD
- newKeiOdrCtrl
- adchgFixOdrCtrl
- newEoMobile
- getKktkSvcKeiList

**呼出パス例:**
```
hakkoSOD → newKeiOdrCtrl → getKktkSvcKeiList → editInMsg_EKK0341B002CBS
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |


---

---

### editResultRP_EKK1551D010CBS()

#### 呼出元 (Reverse Call Tree) — 73 direct callers

```
editResultRP_EKK1551D010CBS() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── add050AddSod()    [trực tiếp]
├── add050DelSod()    [trực tiếp]
├── addSOD()    [trực tiếp]
├── addSODDupNew()    [trực tiếp]
├── addSODEmailNew()    [trực tiếp]
├── addSODFtthNew()    [trực tiếp]
├── addSODHPAccessAdd()    [trực tiếp]
├── addSODHPCapaChg()    [trực tiếp]
├── addSODHPNew()    [trực tiếp]
├── addSODMailAliasAdd()    [trực tiếp]
├── addSODMailCapaChg()    [trực tiếp]
├── addSODMListNew()    [trực tiếp]
├── addSODMRTChgRTSta()    [trực tiếp]
├── addSODTelNew()    [trực tiếp]
├── addSODTelVAChange()    [trực tiếp]
├── addSODUQWIMAXKaitoriNew()    [trực tiếp]
├── addSODUQWIMAXNew()    [trực tiếp]
├── addSODVirusChkAdd()    [trực tiếp]
├── addSODWiFiChg()    [trực tiếp]
├── addSODWiFiNew()    [trực tiếp]
├── addTakinoSOD()    [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]
├── 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]
├── tsuikabunAddSOD()    [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]
└── executeOdrInfoSakseiWkAdd()
    ├── adchgFixOdrCtrl()
    ├── add050AddSod()
    ├── add050DelSod()
    ├── addSODMRTChgRTSta()
    ├── addTensoDenwaOp()
    ├── addTokiSOD()
    ├── bmpDojiMskm()
    ├── bmpSipDslOdrCtrl()
    ├── bmpSwitchOdrCtrl()
    ├── cnclOdrCtrl()
    ├── courseChgeOdrCtrl()
    ├── dslOdrCtrl()
    ├── enumAddOdrCtrl()
    ├── enumDelOdrCtrl()
    ├── hakkoCourseChgSOD()
    ├── hakkoSOD()
    ├── hakkouIpv6()
    ├── htelItntokiOdrCtrl()
    ├── htelNoAddOdrCtrl()
    ├── htelNoDslOdrCtrl()
    ├── htelNoInfoChgeOdrCtrl()
    ├── htelNoKaihkOdrCtrl()
    ├── idpwShkkaSaifuriOdrCtrl()
    ├── jdgIpv6()
    ├── jdgIpv6EKK0361A010()
    ├── jdgOdr163()
    ├── kaihkOdrCtrl()
    ├── keiTtdkChuHtelnoChgeOdrCtrl()
    ├── koteiIpAd8DivOdrCtrl()
    ├── ksiDslFixOdrCtrl()
    ├── ksiDslOdrCtrl()
    ├── malwareBlockingDivOdrCtrl()
    ├── newEoMobile()
    ├── newKeiOdrCtrl()
    ├── newNet()
    ├── opHktgiOdrCtrl()
    ├── opSetOdrCtrl()
    ├── pauseRlsChgeOdrCtrl()
    ├── pauseUkOdrCtrl()
    ├── rtOpChgDivOdrCtrl()
    ├── setChgePWForDialup()
    ├── setChgePWForIPv6()
    ├── setChgePWForMltiSe()
    ├── setChgePWForRouterConInfo()
    ├── spotLoginSysidChgeOdrCtrl()
    ├── stpRlsOdrCtrl()
    ├── stpUkOdrCtrl()
    ├── taiikiSeigenOdrCtrl()
    ├── telNoChge()
    ├── useStpOdrCtrl()
    ├── useStpRlsOdrCtrl()
    ├── vLanIdChgOdrCtrl()
    ├── vLanIdVaChangeOdrCtrl()
    ├── wribInfoAddOdrCtrl()
    ├── 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()
    │   │       ├── jdgIpv6EKK0361A010()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       ├── newKeiOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   ├── 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:** `private IRequestParameterReadWrite editResultRP_EKK1551D010CBS(Map<?, ?> msgList, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

オーダ情報作成ワーク登録（EKK1551D010）の実行後、SC応答データ（msgList）を業務データ（param）にマッピングする。
オーダ情報作成ワーク番号のセット、エラー情報の取得・マッピングも含めた下りマッピング処理を行う。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["editResultRP_EKK1551D010CBS(msgList, param)"]
    --> S1["msgListからTEMPLATE_LIST_KEYでparentTemplate取得"]
    --> S2["msgListからRET_CD_INT_KEYでreturn_code取得"]
    --> S3["param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)でdataMap取得"]
    --> IF1{"dataMap == null"}
    IF1 -- "Yes" --> S4["新規dataMap生成しparam.setData"]
    IF1 -- "No"  --> S5["既存dataMap利用"]
    S4 --> S6
    S5 --> S6
    S6["parentTemplate.getString(EKK1551D010CBSMsg.ODR_INF_SKSI_WK_NO)でワーク番号取得"]
    --> IF2{"parentTemplate.isNull(ODR_INF_SKSI_WK_NO)"}
    IF2 -- "Yes" --> S7["dataMap.put('odr_inf_sksi_wk_no', '')"]
    IF2 -- "No"  --> S8["dataMap.put('odr_inf_sksi_wk_no', parentTemplate.getString(ODR_INF_SKSI_WK_NO))"]
    S7 --> S9
    S8 --> S9
    S9["editErrorInfo_EKK1551D010CBS(param, templates, return_code)呼出"]
    --> S10["param.getControlMapData(ERROR_INFO)でerrList取得"]
    --> IF3{"errList == null"}
    IF3 -- "Yes" --> S11["param.setControlMapData(ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList))"]
    IF3 -- "No"  --> IF4{"errList != null && !errList.isEmpty()"}
    IF4 -- "Yes" --> S12["Exception throw"]
    IF4 -- "No"  --> S11
    S11 --> END["return param"]
    S12 --> END
```

**処理ステップ詳細:**

1. msgListからテンプレートリスト（parentTemplate）とリターンコード（return_code）を取得。
2. paramから業務データマップ（HAKKOSODCCWORKMAP）を取得。なければ新規作成。
3. parentTemplateのODR_INF_SKSI_WK_NO（オーダ情報作成ワーク番号）をdataMapにput（nullの場合は空文字）。
4. editErrorInfo_EKK1551D010CBSでエラー情報をマッピング。
5. param.getControlMapData(ERROR_INFO)でerrList取得、TemplateErrorUtil.getErrorInfoでエラーマッピング。
6. errListがnullならマッピング、エラーリストが非空ならExceptionをthrow。

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | dataMap == null |  | 新規生成 |
| 2 | parentTemplate.isNull(EKK1551D010CBSMsg.ODR_INF_SKSI_WK_NO) |  | 空文字セット |
| 3 | errList == null |  | ERROR_INFOマップセット |
| 4 | errList != null && !errList.isEmpty() |  | Exception throw |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント応答メッセージリスト |
| 2 | param | IRequestParameterReadWrite | 業務データコンテナ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | 本メソッドはデータマッピングのみ |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- executeOdrInfoSakseiWkAdd
- addSODMListNew
- addSODVirusChkAdd
- ...（全呼出元列挙）

**呼出パス:**

```
executeOdrInfoSakseiWkAdd → editResultRP_EKK1551D010CBS → editErrorInfo_EKK1551D010CBS
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

---

### enumAddOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
enumAddOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite enumAddOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String,Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

ENUM（番号ポータビリティ）に関する登録オーダを発行する制御メソッドです。入力された業務情報から電話番号やポートアウト番号等を抽出し、ENUM設定・登録用のSOD（ODR_NAIYO_CD_265）を登録します。呼出元は`hakkoSOD`です。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["enumAddOdrCtrl(handle, param, sodMap)"] --> S1["Step1: sodMapからSOD_KIHON_INFO取得"]
  S1 --> S2["Step2: 電話番号・ポートアウト番号・世代登録日時を抽出"]
  S2 --> S3["Step3: addSOD(handle, param, ODR_NAIYO_CD_265)でENUM登録SOD発行"]
  S3 --> END["return param"]
```

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | sodMap | HashMap<String, Object> | SOD発行用業務情報マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞ | オプションサービス契約一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD → enumAddOdrCtrl

**呼出パス:**

```
hakkoSOD → enumAddOdrCtrl → addSOD(ODR_NAIYO_CD_265)
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0361A010SC | R | オプションサービス契約＜ISP＞ |

---

---

### enumDelOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
enumDelOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite enumDelOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String,Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

ENUM（番号ポータビリティ）に関する消去オーダを発行する制御メソッドです。必要な業務情報から電話番号・ポートアウト番号等を抽出し、ENUM設定・消去用のSOD（ODR_NAIYO_CD_266）を登録します。呼出元は`hakkoSOD`です。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["enumDelOdrCtrl(handle, param, sodMap)"] --> S1["Step1: sodMapからSOD_KIHON_INFO取得"]
  S1 --> S2["Step2: 電話番号・ポートアウト番号・世代登録日時を抽出"]
  S2 --> S3["Step3: addSOD(handle, param, ODR_NAIYO_CD_266)でENUM消去SOD発行"]
  S3 --> END["return param"]
```

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | sodMap | HashMap<String, Object> | SOD発行用業務情報マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞ | オプションサービス契約一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD → enumDelOdrCtrl

**呼出パス:**

```
hakkoSOD → enumDelOdrCtrl → addSOD(ODR_NAIYO_CD_266)
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0361A010SC | R | オプションサービス契約＜ISP＞ |

---

---

### errChk()

#### 呼出元 (Reverse Call Tree) — 28 direct callers

```
errChk() ← gọi bởi:
├── callEDK0301B060SC()    [trực tiếp]
├── callEKK0341B001SC()    [trực tiếp]
├── callEKK0341B008SCRireki()    [trực tiếp]
├── callEKK0341B021SC()    [trực tiếp]
├── callEKK0341B029SC()    [trực tiếp]
├── checkTakinoRT()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── findZ1OrderAtKK1041()    [trực tiếp]
├── findZ1OrderAtKK1041SvcKeiUcwk()    [trực tiếp]
├── getShuriKokanBfKiki()    [trực tiếp]
├── getVAkikiInfo()    [trực tiếp]
├── getZ1HakkoKh()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── isKikiSeizoNoCheck()    [trực tiếp]
├── isRegalVaKiki()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgOdr163()    [trực tiếp]
├── kaihkOdrCtrl()    [trực tiếp]
├── opSetOdrCtrl()    [trực tiếp]
├── rtOpChgDivOdrCtrl()    [trực tiếp]
├── setChgePWForRouterConInfo()    [trực tiếp]
├── telNoChge()    [trực tiếp]
├── vLanIdChgOdrCtrl()    [trực tiếp]
├── wribInfoAddOdrCtrl()    [trực tiếp]
└── callSvcInter()
    ├── 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()
    ├── rtOpChgDivOdrCtrl()
    ├── 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()
    │       ├── wribInfoAddOdrCtrl()
    │       ├── isRegalVaKiki()
    │       │   ├── hakkoSOD()
    │       │   └── htelNoInfoChgeOdrCtrl()
    │       └── vLanIdChgOdrCtrl()
    │           └── hakkoSOD()
    ├── 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()
    ├── 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()
    ├── 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()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoAddOdrCtrl()
    │   │   ├── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── jdgIpv6EKK0361A010()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── newKeiOdrCtrl()
    │   │   ├── vLanIdChgOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── ksiDslOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoAddOdrCtrl()
    │   │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── jdgIpv6()
    │   │   │   ├── adchgFixOdrCtrl()
    │   │   │   ├── addIpv6SODAft()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── jdgIpv6EKK0361A010()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   ├── newKeiOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   ├── jdgOdr163()
    │   │   │   ├── adchgFixOdrCtrl()
    │   │   │   ├── courseChgeOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── kaihkOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   ├── opSetOdrCtrl()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   └── ksiDslOdrCtrl()
    │   │   ├── setChgePWForRouterConInfo()
    │   │   │   ├── hakkoSOD()
    │   │   │   └── idpwShkkaSaifuriOdrCtrl()
    │   │   ├── telNoChge()
    │   │   │   ├── bmpSwitchOdrCtrl()
    │   │   │   └── hakkoSOD()
    │   │   └── wribInfoAddOdrCtrl()
    │   │       └── hakkoSOD()
    │   ├── getVAkikiInfo()
    │   │   ├── cnclOdrCtrl()
    │   │   ├── dslOdrCtrl()
    │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   ├── hakkoSOD()
    │   │   ├── htelNoDslOdrCtrl()
    │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   ├── htelNoKaihkOdrCtrl()
    │   │   ├── kaihkOdrCtrl()
    │   │   ├── ksiDslFixOdrCtrl()
    │   │   ├── ksiDslOdrCtrl()
    │   │   ├── opSetOdrCtrl()
    │   │   ├── getZ1HakkoKh()
    │   │   │   ├── cnclOdrCtrl()
    │   │   │   ├── dslOdrCtrl()
    │   │   │   ├── findZ1OrderAtKK1041SvcKeiUcwk()
    │   │   │   ├── hakkoSOD()
    │   │   │   ├── htelNoDslOdrCtrl()
    │   │   │   ├── htelNoInfoChgeOdrCtrl()
    │   │   │   ├── htelNoKaihkOdrCtrl()
    │   │   │   ├── kaihkOdrCtrl()
    │   │   │   ├── ksiDslFixOdrCtrl()
    │   │   │   ├── ksiDslOdrCtrl()
    │   │   │   └── opSetOdrCtrl()
    │   │   └── isKikiSeizoNoCheck()
    │   │       ├── cnclOdrCtrl()
    │   │       ├── dslOdrCtrl()
    │   │       ├── hakkoSOD()
    │   │       ├── htelNoDslOdrCtrl()
    │   │       ├── htelNoInfoChgeOdrCtrl()
    │   │       ├── htelNoKaihkOdrCtrl()
    │   │       ├── kaihkOdrCtrl()
    │   │       ├── ksiDslFixOdrCtrl()
    │   │       ├── ksiDslOdrCtrl()
    │   │       └── opSetOdrCtrl()
    │   └── rtOpChgDivOdrCtrl()
    │       └── hakkoSOD()
    └── 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()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public void errChk(Map<?, ?> msgList)`
> **戻り値:** `void`

---

#### 1. 役割

サービスコンポーネント（SC）等の照会・実行結果に対するエラーチェックを行い、エラー検知時には例外（SCCallException）をスローします。  
多くのSC呼出メソッド、及び業務ロジックの検証フェーズで利用される共通エラーチェック基盤です。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["errChk(msgList)"]
    --> S1["msgListからTEMPLATE_LIST_KEYでテンプレート取得"]
    --> S2["msgListからRET_CD_INT_KEYでリターンコード取得"]
    --> S3["templateからSTATUS_INT_KEYでステータス取得"]
    --> IF1{"リターンコードまたはステータスが0以外か"}
    IF1 -- "はい" --> S4["エラーメッセージ生成しSCCallExceptionをthrow"]
    IF1 -- "いいえ" --> RET["正常終了（何もせずreturn）"]

    style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `(0 != returnCode.intValue()) || (0 != templateStatus)` | - | SCCallExceptionスロー |
| 2 | 上記以外 | - | 正常終了 |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | msgList | Map<?, ?> | サービスコンポーネント結果リスト |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| - | - | - | - | なし（例外throwのみ） |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- callSvcInter
- callEKK0341B021SC
- callEKK0341B001SC
- callEDK0301B060SC
- callEKK0341B008SCRireki
- callEKK0341B029SC
- rtOpChgDivOdrCtrl
- getVAkikiInfo
- checkTakinoRT
- getShuriKokanBfKiki
- hakkoSOD
- getZ1HakkoKh
- isKikiSeizoNoCheck
- findZ1OrderAtKK1041SvcKeiUcwk
- findZ1OrderAtKK1041
- jdgOdr163
- vLanIdChgOdrCtrl
- telNoChge
- jdgIpv6
- wribInfoAddOdrCtrl
- setChgePWForRouterConInfo
- htelNoInfoChgeOdrCtrl
- htelNoKaihkOdrCtrl
- opSetOdrCtrl
- htelNoDslOdrCtrl
- dslOdrCtrl
- kaihkOdrCtrl
- isRegalVaKiki

**呼出パス例:**
```
callEKK0341B021SC → callSvcInter → errChk
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| - | - | - |

---

---

