# ⑥ 業務ロジック — Edit (Transform): 4 methods

| 項目 | 内容 |
|---|---|
| 完全修飾名 | `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC` |
| レイヤー | CC（Common Component、パッケージ名およびクラス名から判定） |
| モジュール | common（パッケージ名：com.fujitsu.futurity.bp.custom.commonより） |


<style>
.mermaid { display: flex !important; justify-content: center !important; overflow-x: auto !important; overflow-y: hidden; background: #f9f9f9; padding: 20px; border-radius: 8px; margin: 0 auto; }
.mermaid svg { max-width: 100% !important; height: auto !important; width: fit-content !important; margin: 0 auto; }
.node rect { fill: #e1f5fe !important; stroke: #01579b !important; }
.label { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
</style>

<a id="method-editInMsg_EKK1551D010CBS"></a>
### editInMsg_EKK1551D010CBS()

---

#### 1. 役割

オーダ情報作成ワーク登録用のSC（EKK1551D010）入力データを生成する業務ロジックである。  
具体的には、リクエストパラメータ（IRequestParameterReadOnly param）から、電文ヘッダ情報（トランザクションID、ユーースケースID、オペレーションID等）やユーザエリア（コントロールマップ）情報を取得し、さらに業務データ（JKKHakkoSODConstCC.HAKKOSODCCWORKMAP）から、各種オーダ情報作成ワーク項目（オーダ発行条件番号、オーダ内容コード、サービス契約番号等）および機器/オプション/付加情報に関わる多くのフィールドを個別に取得・セットする。  
各フィールドごとに、値がnullまたは空白の場合は`template.setNull()`で該当項目をnullセット、それ以外は`template.set()`で値をセットするという詳細な条件分岐を全ての項目に対して実施する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editInMsg_EKK1551D010CBS（param）"] --> S1["Step1: 電文ヘッダ・コントロールマップ情報をparamから取得しparamMapへセット"]
  S1 --> S2["Step2: CAANMsgテンプレート生成（EKK1551D010CBSMsg）"]
  S2 --> S3["Step3: テンプレートID（EKK1551D010）と機能コード（FUNC_CD_1 = '1'）をセット"]
  S3 --> S4["Step4: 共通情報（editBasicCmn）をテンプレートにセット"]
  S4 --> S5["Step5: param.getData（HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'）から業務データinMap取得"]
  S5 --> FIELDS["Step6: 各オーダ情報作成ワーク項目について、値がnull/空か判定しset or setNull実行（全項目）"]
  FIELDS --> RET["Step7: CAANMsgテンプレートを配列化してparamMapにTEMPLATE_LIST_KEYで格納しreturn"]

  %% 定数ノート例
  S5 -.- NOTE1["JKKHakkoSODConstCC.HAKKOSODCCWORKMAP = 'HakkoSODCCWORK' （オーダ情報作成ワーク業務データ）"]
  S3 -.- NOTE2["JPCModelConstant.FUNC_CD_1 = '1' （機能コード: チェック＆登録）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. **電文ヘッダ・コントロールマップ情報の取得**  
   - param.getTelegramID()、getUsecaseID()、getOperationID()、getCallType() を取得してparamMapに格納。
   - コントロールマップからホスト名、IPアドレス、画面ID、オペレータIDを取得しparamMapに格納。

2. **CAANMsgテンプレートの生成**  
   - `CAANMsg template = new CAANMsg(EKK1551D010CBSMsg.class.getName())` でテンプレート生成。

3. **テンプレートID、機能コードのセット**  
   - テンプレートID（EKK1551D010）をセット。
   - 機能コード（FUNC_CODE: JPCModelConstant.FUNC_CD_1 = "1"）をセット。

4. **共通部の設定**  
   - `editBasicCmn(param, template)` で共通部（ヘッダ/制御情報等）をテンプレートにセット。

5. **業務データ（inMap）の取得**  
   - `param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)` でワークデータ（全項目を保持するHashMap）を取得。

6. **各項目の値判定＆マッピング**  
   - オーダ情報作成ワーク登録の各項目（odr_hakko_joken_no, odr_naiyo_cd, svc_kei_no, svkei_gadtm, svc_kei_ucwk_no, svkeiuw_gadtm, kktk_svc_kei_no, kktsvkei_gadtm, op_svc_kei_no, opsvkei_gadtm, sbop_svc_kei_no, sbopsvkei_gadtm, seiopsvc_kei_no, seiopsvkei_gadtm, huka_inf_kei_no, huka_inf_kei_gadtm など）について、
     - 値がnullまたは空文字列なら `template.setNull(フィールド名)` を実行。
     - それ以外なら `template.set(フィールド名, 値)` を実行。
   - 変更前情報（chbf_svkei_gadtm, chbf_svkeiuw_gadtm, ...）や多機能ルーター追加（kkop_svc_kei_no_1, kkosvkei_gadtm_1, ...）、電話番号（telno）など、全てのフィールドで同様ロジック。

7. **テンプレートの配列化・paramMap格納・返却**  
   - CAANMsg[] templates = new CAANMsg[1]でテンプレートを配列化。
   - paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates)で格納し、paramMapをreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名    | 型                         | 業務説明                                 |
| --- | --------------- | -------------------------- | ---------------------------------------- |
| 1   | param           | IRequestParameterReadOnly  | リクエストパラメータ（電文ヘッダ、ユーザエリア、業務データを含む） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC / CBS | SCコード | エンティティ / DB | 操作説明 |
| ---- | -------- | -------- | ----------------- | -------- |
| - | (なし — 直接DB/SC呼び出しなし) | - | - | サブメソッド経由で処理 |
#### 5. 依存トレース (Dependency Trace)

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1551D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `executeOdrInfoSakseiWkAdd` | protected | オーダ情報作成ワーク登録実行処理<br> <br> オーダ情報作成ワーク登録サービスIFを実行します。<br> <br> 【使用するサービスIF】<br> ・オーダ情報作成ワーク登録<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editInMsg_EKK1551D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(inMap == null || inMap.get("odr_hakko_joken_no") == null || "".equals(inMap.get("odr_hakko_joken_no")))` (L21331)

> 📌 オーダ情報作成ワーク登録.オーダ発行条件番号 → オーダ発行条件番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO);` [➔ ODR_HAKKO_JOKEN_NO="odr_hakko_joken_no"] \| |

##### Block 2 — ↪️ ELSE `(else)` (L21336)

> 📌 オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO, (String)inMap.get("odr_hakko_joken_no"));` [➔ ODR_HAKKO_JOKEN_NO="odr_hakko_joken_no"] \| |

##### Block 3 — 🔀 IF `(inMap == null || inMap.get("odr_naiyo_cd") == null || "".equals(inMap.get("odr_naiyo_cd")))` (L21341)

> 📌 オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.ODR_NAIYO_CD);` [➔ ODR_NAIYO_CD="odr_naiyo_cd"] \| |

##### Block 4 — ↪️ ELSE `(else)` (L21346)

> 📌 オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.ODR_NAIYO_CD, (String)inMap.get("odr_naiyo_cd"));` [➔ ODR_NAIYO_CD="odr_naiyo_cd"] \| |

##### Block 5 — 🔀 IF `(inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))` (L21351)

> 📌 オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SVC_KEI_NO);` [➔ SVC_KEI_NO="svc_kei_no"] \| |

##### Block 6 — ↪️ ELSE `(else)` (L21356)

> 📌 オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));` [➔ SVC_KEI_NO="svc_kei_no"] \| |

##### Block 7 — 🔀 IF `(inMap == null || inMap.get("svkei_gadtm") == null || "".equals(inMap.get("svkei_gadtm")))` (L21361)

> 📌 オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SVKEI_GADTM);` [➔ SVKEI_GADTM="svkei_gadtm"] \| |

##### Block 8 — ↪️ ELSE `(else)` (L21366)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SVKEI_GADTM, (String)inMap.get("svkei_gadtm"));` [➔ SVKEI_GADTM="svkei_gadtm"] \| |

##### Block 9 — 🔀 IF `(inMap == null || inMap.get("svc_kei_ucwk_no") == null || "".equals(inMap.get("svc_kei_ucwk_no")))` (L21371)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO);` [➔ SVC_KEI_UCWK_NO="svc_kei_ucwk_no"] \| |

##### Block 10 — ↪️ ELSE `(else)` (L21376)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, (String)inMap.get("svc_kei_ucwk_no"));` [➔ SVC_KEI_UCWK_NO="svc_kei_ucwk_no"] \| |

##### Block 11 — 🔀 IF `(inMap == null || inMap.get("svkeiuw_gadtm") == null || "".equals(inMap.get("svkeiuw_gadtm")))` (L21381)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SVKEIUW_GADTM);` [➔ SVKEIUW_GADTM="svkeiuw_gadtm"] \| |

##### Block 12 — ↪️ ELSE `(else)` (L21386)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SVKEIUW_GADTM, (String)inMap.get("svkeiuw_gadtm"));` [➔ SVKEIUW_GADTM="svkeiuw_gadtm"] \| |

##### Block 13 — 🔀 IF `(inMap == null || inMap.get("kktk_svc_kei_no") == null || "".equals(inMap.get("kktk_svc_kei_no")))` (L21391)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO);` [➔ KKTK_SVC_KEI_NO="kktk_svc_kei_no"] \| |

##### Block 14 — ↪️ ELSE `(else)` (L21396)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO, (String)inMap.get("kktk_svc_kei_no"));` [➔ KKTK_SVC_KEI_NO="kktk_svc_kei_no"] \| |

##### Block 15 — 🔀 IF `(inMap == null || inMap.get("kktsvkei_gadtm") == null || "".equals(inMap.get("kktsvkei_gadtm")))` (L21401)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKTSVKEI_GADTM);` [➔ KKTSVKEI_GADTM="kktsvkei_gadtm"] \| |

##### Block 16 — ↪️ ELSE `(else)` (L21406)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKTSVKEI_GADTM, (String)inMap.get("kktsvkei_gadtm"));` [➔ KKTSVKEI_GADTM="kktsvkei_gadtm"] \| |

##### Block 17 — 🔀 IF `(inMap == null || inMap.get("op_svc_kei_no") == null || "".equals(inMap.get("op_svc_kei_no")))` (L21411)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.OP_SVC_KEI_NO);` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

##### Block 18 — ↪️ ELSE `(else)` (L21416)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.OP_SVC_KEI_NO, (String)inMap.get("op_svc_kei_no"));` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

##### Block 19 — 🔀 IF `(inMap == null || inMap.get("opsvkei_gadtm") == null || "".equals(inMap.get("opsvkei_gadtm")))` (L21421)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.OPSVKEI_GADTM);` [➔ OPSVKEI_GADTM="opsvkei_gadtm"] \| |

##### Block 20 — ↪️ ELSE `(else)` (L21426)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.OPSVKEI_GADTM, (String)inMap.get("opsvkei_gadtm"));` [➔ OPSVKEI_GADTM="opsvkei_gadtm"] \| |

##### Block 21 — 🔀 IF `(inMap == null || inMap.get("sbop_svc_kei_no") == null || "".equals(inMap.get("sbop_svc_kei_no")))` (L21431)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO);` [➔ SBOP_SVC_KEI_NO="sbop_svc_kei_no"] \| |

##### Block 22 — ↪️ ELSE `(else)` (L21436)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO, (String)inMap.get("sbop_svc_kei_no"));` [➔ SBOP_SVC_KEI_NO="sbop_svc_kei_no"] \| |

##### Block 23 — 🔀 IF `(inMap == null || inMap.get("sbopsvkei_gadtm") == null || "".equals(inMap.get("sbopsvkei_gadtm")))` (L21441)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SBOPSVKEI_GADTM);` [➔ SBOPSVKEI_GADTM="sbopsvkei_gadtm"] \| |

##### Block 24 — ↪️ ELSE `(else)` (L21446)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SBOPSVKEI_GADTM, (String)inMap.get("sbopsvkei_gadtm"));` [➔ SBOPSVKEI_GADTM="sbopsvkei_gadtm"] \| |

##### Block 25 — 🔀 IF `(inMap == null || inMap.get("seiopsvc_kei_no") == null || "".equals(inMap.get("seiopsvc_kei_no")))` (L21451)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO);` [➔ SEIOPSVC_KEI_NO="seiopsvc_kei_no"] \| |

##### Block 26 — ↪️ ELSE `(else)` (L21456)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO, (String)inMap.get("seiopsvc_kei_no"));` [➔ SEIOPSVC_KEI_NO="seiopsvc_kei_no"] \| |

##### Block 27 — 🔀 IF `(inMap == null || inMap.get("seiopsvkei_gadtm") == null || "".equals(inMap.get("seiopsvkei_gadtm")))` (L21461)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM);` [➔ SEIOPSVKEI_GADTM="seiopsvkei_gadtm"] \| |

##### Block 28 — ↪️ ELSE `(else)` (L21466)

> 📌 オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM, (String)inMap.get("seiopsvkei_gadtm"));` [➔ SEIOPSVKEI_GADTM="seiopsvkei_gadtm"] \| |

##### Block 29 — 🔀 IF `(inMap == null || inMap.get("huka_inf_kei_no") == null || "".equals(inMap.get("huka_inf_kei_no")))` (L21471)

> 📌 オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.HUKA_INF_KEI_NO);` [➔ HUKA_INF_KEI_NO="huka_inf_kei_no"] \| |

##### Block 30 — ↪️ ELSE `(else)` (L21476)

> 📌 オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.HUKA_INF_KEI_NO, (String)inMap.get("huka_inf_kei_no"));` [➔ HUKA_INF_KEI_NO="huka_inf_kei_no"] \| |

##### Block 31 — 🔀 IF `(inMap == null || inMap.get("huka_inf_kei_gadtm") == null || "".equals(inMap.get("huka_inf_kei_gadtm")))` (L21481)

> 📌 オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM);` [➔ HUKA_INF_KEI_GADTM="huka_inf_kei_gadtm"] \| |

##### Block 32 — ↪️ ELSE `(else)` (L21486)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM, (String)inMap.get("huka_inf_kei_gadtm"));` [➔ HUKA_INF_KEI_GADTM="huka_inf_kei_gadtm"] \| |

##### Block 33 — 🔀 IF `(inMap == null || inMap.get("chbf_svkei_gadtm") == null || "".equals(inMap.get("chbf_svkei_gadtm")))` (L21491)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM);` [➔ CHBF_SVKEI_GADTM="chbf_svkei_gadtm"] \| |

##### Block 34 — ↪️ ELSE `(else)` (L21496)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM, (String)inMap.get("chbf_svkei_gadtm"));` [➔ CHBF_SVKEI_GADTM="chbf_svkei_gadtm"] \| |

##### Block 35 — 🔀 IF `(inMap == null || inMap.get("chbf_svkeiuw_gadtm") == null || "".equals(inMap.get("chbf_svkeiuw_gadtm")))` (L21501)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM);` [➔ CHBF_SVKEIUW_GADTM="chbf_svkeiuw_gadtm"] \| |

##### Block 36 — ↪️ ELSE `(else)` (L21506)

> 📌 オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM, (String)inMap.get("chbf_svkeiuw_gadtm"));` [➔ CHBF_SVKEIUW_GADTM="chbf_svkeiuw_gadtm"] \| |

##### Block 37 — 🔀 IF `(inMap == null || inMap.get("chbf_kktsvkei_gadtm") == null || "".equals(inMap.get("chbf_kktsvkei_gadtm")))` (L21511)

> 📌 オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM);` [➔ CHBF_KKTSVKEI_GADTM="chbf_kktsvkei_gadtm"] \| |

##### Block 38 — ↪️ ELSE `(else)` (L21516)

> 📌 オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM, (String)inMap.get("chbf_kktsvkei_gadtm"));` [➔ CHBF_KKTSVKEI_GADTM="chbf_kktsvkei_gadtm"] \| |

##### Block 39 — 🔀 IF `(inMap == null || inMap.get("chbf_opsvkei_gadtm") == null || "".equals(inMap.get("chbf_opsvkei_gadtm")))` (L21521)

> 📌 オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM);` [➔ CHBF_OPSVKEI_GADTM="chbf_opsvkei_gadtm"] \| |

##### Block 40 — ↪️ ELSE `(else)` (L21526)

> 📌 オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM, (String)inMap.get("chbf_opsvkei_gadtm"));` [➔ CHBF_OPSVKEI_GADTM="chbf_opsvkei_gadtm"] \| |

##### Block 41 — 🔀 IF `(inMap == null || inMap.get("chbf_sbopsvkei_gadtm") == null || "".equals(inMap.get("chbf_sbopsvkei_gadtm")))` (L21531)

> 📌 オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM);` [➔ CHBF_SBOPSVKEI_GADTM="chbf_sbopsvkei_gadtm"] \| |

##### Block 42 — ↪️ ELSE `(else)` (L21536)

> 📌 オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM, (String)inMap.get("chbf_sbopsvkei_gadtm"));` [➔ CHBF_SBOPSVKEI_GADTM="chbf_sbopsvkei_gadtm"] \| |

##### Block 43 — 🔀 IF `(inMap == null || inMap.get("chbf_seiopsvkei_gadtm") == null || "".equals(inMap.get("chbf_seiopsvkei_gadtm")))` (L21541)

> 📌 オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM);` [➔ CHBF_SEIOPSVKEI_GADTM="chbf_seiopsvkei_gadtm"] \| |

##### Block 44 — ↪️ ELSE `(else)` (L21546)

> 📌 ▼▼▼ 2013/11/19 2014年2月案件 多機能ルーター（機器追加）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM, (String)inMap.get("chbf_seiopsvkei_gadtm"));` [➔ CHBF_SEIOPSVKEI_GADTM="chbf_seiopsvkei_gadtm"] \| |

##### Block 45 — 🔀 IF `(inMap == null || inMap.get("kkop_svc_kei_no_1") == null || "".equals(inMap.get("kkop_svc_kei_no_1")))` (L21552)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約番号１ → 機器オプションサービス契約番号１

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_1);` [➔ KKOP_SVC_KEI_NO_1="1"] \| |

##### Block 46 — ↪️ ELSE `(else)` (L21557)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒１ → 機器オプションサービス契約世代登録年月日時分秒１

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_1, (String)inMap.get("kkop_svc_kei_no_1"));` [➔ KKOP_SVC_KEI_NO_1="1"] \| |

##### Block 47 — 🔀 IF `(inMap == null || inMap.get("kkosvkei_gadtm_1") == null || "".equals(inMap.get("kkosvkei_gadtm_1")))` (L21561)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒１ → 機器オプションサービス契約世代登録年月日時分秒１

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKOSVKEI_GADTM_1);` [➔ KKOSVKEI_GADTM_1="1"] \| |

##### Block 48 — ↪️ ELSE `(else)` (L21566)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約番号２ → 機器オプションサービス契約番号２

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKOSVKEI_GADTM_1, (String)inMap.get("kkosvkei_gadtm_1"));` [➔ KKOSVKEI_GADTM_1="1"] \| |

##### Block 49 — 🔀 IF `(inMap == null || inMap.get("kkop_svc_kei_no_2") == null || "".equals(inMap.get("kkop_svc_kei_no_2")))` (L21570)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約番号２ → 機器オプションサービス契約番号２

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_2);` [➔ KKOP_SVC_KEI_NO_2="2"] \| |

##### Block 50 — ↪️ ELSE `(else)` (L21575)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒２ → 機器オプションサービス契約世代登録年月日時分秒２

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_2, (String)inMap.get("kkop_svc_kei_no_2"));` [➔ KKOP_SVC_KEI_NO_2="2"] \| |

##### Block 51 — 🔀 IF `(inMap == null || inMap.get("kkosvkei_gadtm_2") == null || "".equals(inMap.get("kkosvkei_gadtm_2")))` (L21579)

> 📌 オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒２ → 機器オプションサービス契約世代登録年月日時分秒２

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.KKOSVKEI_GADTM_2);` [➔ KKOSVKEI_GADTM_2="2"] \| |

##### Block 52 — ↪️ ELSE `(else)` (L21584)

> 📌 ▲▲▲ 2013/11/19 2014年2月案件 多機能ルーター（機器追加）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.KKOSVKEI_GADTM_2, (String)inMap.get("kkosvkei_gadtm_2"));` [➔ KKOSVKEI_GADTM_2="2"] \| |

##### Block 53 — 🔀 IF `(inMap == null || inMap.get("telno") == null || "".equals(inMap.get("telno")))` (L21590)

> 📌 オーダ情報作成ワーク登録.電話番号 → 電話番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1551D010CBSMsg.TELNO);` [➔ TELNO="telno"] \| |

##### Block 54 — ↪️ ELSE `(else)` (L21595)

> 📌 v72.00.00 ANK-4494-00-00 ADD END

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1551D010CBSMsg.TELNO, (String)inMap.get("telno"));` [➔ TELNO="telno"] \| |
| 2 | ⚡ EXEC | `CAANMsg[] templates = new CAANMsg[1];` |
| 3 | ⚡ EXEC | `templates[0] = template;` |
| 4 | 📋 SET | `paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);` [➔ TEMPLATE_LIST_KEY="template_list_key"] \| |

> **合計**: 54 blocks (1 depth levels)

### editInMsg_EKK1081D010CBS()

---

#### 1. 役割

オーダ発行条件登録用SC（EKK1081D010）へのリクエスト入力データを生成する業務ロジックである。  
具体的には、リクエストパラメータ（IRequestParameterReadOnly param）から電文ヘッダやコントロールマップ情報を取得し、さらに業務データ（JKKHakkoSODConstCC.HAKKOSODCCWORKMAP）から、サービス契約番号、機器提供サービス契約番号、オプションサービス契約番号等、多数のフィールドを個別に取得・セットする。各フィールドごとに値の有無を判定し、値が空・nullの場合はsetNull、それ以外はsetで値をセットする詳細な条件分岐を全項目にわたって実施する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editInMsg_EKK1081D010CBS（param）"] --> S1["Step1: 電文ヘッダ・コントロールマップ情報をparamから取得しparamMapへセット"]
  S1 --> S2["Step2: CAANMsgテンプレート生成（EKK1081D010CBSMsg）"]
  S2 --> S3["Step3: テンプレートID（EKK1081D010）と機能コード（FUNC_CD_1 = '1'）をセット"]
  S3 --> S4["Step4: 共通情報（editBasicCmn）をテンプレートにセット"]
  S4 --> S5["Step5: param.getData（HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'）から業務データinMap取得"]
  S5 --> FIELDS["Step6: 各オーダ発行条件登録マップ項目について、値がnull/空か判定しset or setNull実行（全項目）"]
  FIELDS --> RET["Step7: CAANMsgテンプレートを配列化してparamMapにTEMPLATE_LIST_KEYで格納しreturn"]

  %% 定数ノート例
  S5 -.- NOTE1["JKKHakkoSODConstCC.HAKKOSODCCWORKMAP = 'HakkoSODCCWORK' （オーダ発行条件登録業務データ）"]
  S3 -.- NOTE2["JPCModelConstant.FUNC_CD_1 = '1' （機能コード: チェック＆登録）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. **電文ヘッダ・コントロールマップ情報の取得**  
   - param.getTelegramID()、getUsecaseID()、getOperationID()、getCallType() をparamMapに格納。
   - コントロールマップからホスト名、IPアドレス、画面ID、オペレータIDをparamMapに格納。

2. **CAANMsgテンプレートの生成**  
   - `CAANMsg template = new CAANMsg(EKK1081D010CBSMsg.class.getName())` でテンプレートを生成。

3. **テンプレートID、機能コードのセット**  
   - テンプレートID（EKK1081D010）をセット。
   - 機能コード（FUNC_CODE: JPCModelConstant.FUNC_CD_1 = "1"）をセット。

4. **共通部の設定**  
   - `editBasicCmn(param, template)` で共通部（ヘッダ/制御情報等）をテンプレートにセット。

5. **業務データ（inMap）の取得**  
   - `param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)` でワークデータ（全項目を保持するHashMap）を取得。

6. **各項目の値判定＆マッピング**  
   - サービス契約番号、サービス契約内訳番号、機器提供サービス契約番号、オプションサービス契約番号、サブオプションサービス契約番号、請求オプションサービス契約番号、オーダ種別コード、サービスオーダコード、要求種別コード、オーダ発行条件コード、同一処理番号、宅内機器型式コード、機器製造番号、メールアドレス、スポットログインSYSID、送信依頼完了年月日時分秒、サービス契約回線内訳番号、契約サービス制御要求オーダ識別コードなど、全フィールドについて
     - 値がnullまたは空文字列なら `template.setNull(フィールド名)` を実行。
     - それ以外なら `template.set(フィールド名, 値)` を実行。

7. **テンプレートの配列化・paramMap格納・返却**  
   - CAANMsg[] templates = new CAANMsg[1]でテンプレートを配列化。
   - paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates)で格納し、paramMapをreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名    | 型                         | 業務説明                                 |
| --- | --------------- | -------------------------- | ---------------------------------------- |
| 1   | param           | IRequestParameterReadOnly  | リクエストパラメータ（電文ヘッダ、ユーザエリア、業務データを含む） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC / CBS | SCコード | エンティティ / DB | 操作説明 |
| ---- | -------- | -------- | ----------------- | -------- |
| - | (なし — 直接DB/SC呼び出しなし) | - | - | サブメソッド経由で処理 |
#### 5. 依存トレース (Dependency Trace)

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `executeOdrHakkoJokenAdd` | protected | オーダ発行条件登録実行処理<br> <br> オーダ発行条件登録サービスIFを実行します。<br> <br> 【使用するサービスIF】<br> ・オーダ発行条件登録<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editInMsg_EKK1081D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))` (L20816)

> 📌 オーダ発行条件登録マップ.サービス契約番号 → サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SVC_KEI_NO);` [➔ SVC_KEI_NO="svc_kei_no"] \| |

##### Block 2 — ↪️ ELSE `(else)` (L20821)

> 📌 オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));` [➔ SVC_KEI_NO="svc_kei_no"] \| |

##### Block 3 — 🔀 IF `(inMap == null || inMap.get("svc_kei_ucwk_no") == null || "".equals(inMap.get("svc_kei_ucwk_no")))` (L20826)

> 📌 オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO);` [➔ SVC_KEI_UCWK_NO="svc_kei_ucwk_no"] \| |

##### Block 4 — ↪️ ELSE `(else)` (L20831)

> 📌 オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO, (String)inMap.get("svc_kei_ucwk_no"));` [➔ SVC_KEI_UCWK_NO="svc_kei_ucwk_no"] \| |

##### Block 5 — 🔀 IF `(inMap == null || inMap.get("kktk_svc_kei_no") == null || "".equals(inMap.get("kktk_svc_kei_no")))` (L20836)

> 📌 オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO);` [➔ KKTK_SVC_KEI_NO="kktk_svc_kei_no"] \| |

##### Block 6 — ↪️ ELSE `(else)` (L20841)

> 📌 オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO, (String)inMap.get("kktk_svc_kei_no"));` [➔ KKTK_SVC_KEI_NO="kktk_svc_kei_no"] \| |

##### Block 7 — 🔀 IF `(inMap == null || inMap.get("op_svc_kei_no") == null || "".equals(inMap.get("op_svc_kei_no")))` (L20846)

> 📌 オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.OP_SVC_KEI_NO);` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

##### Block 8 — ↪️ ELSE `(else)` (L20851)

> 📌 オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.OP_SVC_KEI_NO, (String)inMap.get("op_svc_kei_no"));` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

##### Block 9 — 🔀 IF `(inMap == null || inMap.get("sbop_svc_kei_no") == null || "".equals(inMap.get("sbop_svc_kei_no")))` (L20856)

> 📌 オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO);` [➔ SBOP_SVC_KEI_NO="sbop_svc_kei_no"] \| |

##### Block 10 — ↪️ ELSE `(else)` (L20861)

> 📌 オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO, (String)inMap.get("sbop_svc_kei_no"));` [➔ SBOP_SVC_KEI_NO="sbop_svc_kei_no"] \| |

##### Block 11 — 🔀 IF `(inMap == null || inMap.get("seiopsvc_kei_no") == null || "".equals(inMap.get("seiopsvc_kei_no")))` (L20866)

> 📌 オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO);` [➔ SEIOPSVC_KEI_NO="seiopsvc_kei_no"] \| |

##### Block 12 — ↪️ ELSE `(else)` (L20871)

> 📌 オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO, (String)inMap.get("seiopsvc_kei_no"));` [➔ SEIOPSVC_KEI_NO="seiopsvc_kei_no"] \| |

##### Block 13 — 🔀 IF `(inMap == null || inMap.get("order_sbt_cd") == null || "".equals(inMap.get("order_sbt_cd")))` (L20876)

> 📌 オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.ORDER_SBT_CD);` [➔ ORDER_SBT_CD="order_sbt_cd"] \| |

##### Block 14 — ↪️ ELSE `(else)` (L20881)

> 📌 オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.ORDER_SBT_CD, (String)inMap.get("order_sbt_cd"));` [➔ ORDER_SBT_CD="order_sbt_cd"] \| |

##### Block 15 — 🔀 IF `(inMap == null || inMap.get("svc_order_cd") == null || "".equals(inMap.get("svc_order_cd")))` (L20886)

> 📌 オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SVC_ORDER_CD);` [➔ SVC_ORDER_CD="svc_order_cd"] \| |

##### Block 16 — ↪️ ELSE `(else)` (L20891)

> 📌 オーダ発行条件登録マップ.要求種別コード → 要求種別コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SVC_ORDER_CD, (String)inMap.get("svc_order_cd"));` [➔ SVC_ORDER_CD="svc_order_cd"] \| |

##### Block 17 — 🔀 IF `(inMap == null || inMap.get("yokyu_sbt_cd") == null || "".equals(inMap.get("yokyu_sbt_cd")))` (L20896)

> 📌 オーダ発行条件登録マップ.要求種別コード → 要求種別コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.YOKYU_SBT_CD);` [➔ YOKYU_SBT_CD="yokyu_sbt_cd"] \| |

##### Block 18 — ↪️ ELSE `(else)` (L20901)

> 📌 オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.YOKYU_SBT_CD, (String)inMap.get("yokyu_sbt_cd"));` [➔ YOKYU_SBT_CD="yokyu_sbt_cd"] \| |

##### Block 19 — 🔀 IF `(inMap == null || inMap.get("odr_hakko_joken_cd") == null || "".equals(inMap.get("odr_hakko_joken_cd")))` (L20906)

> 📌 オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD);` [➔ ODR_HAKKO_JOKEN_CD="odr_hakko_joken_cd"] \| |

##### Block 20 — ↪️ ELSE `(else)` (L20911)

> 📌 オーダ発行条件登録マップ.同一処理番号 → 同一処理番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD, (String)inMap.get("odr_hakko_joken_cd"));` [➔ ODR_HAKKO_JOKEN_CD="odr_hakko_joken_cd"] \| |

##### Block 21 — 🔀 IF `(inMap == null || inMap.get("same_trn_no") == null || "".equals(inMap.get("same_trn_no")))` (L20916)

> 📌 オーダ発行条件登録マップ.同一処理番号 → 同一処理番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SAME_TRN_NO);` [➔ SAME_TRN_NO="same_trn_no"] \| |

##### Block 22 — ↪️ ELSE `(else)` (L20921)

> 📌 オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SAME_TRN_NO, (String)inMap.get("same_trn_no"));` [➔ SAME_TRN_NO="same_trn_no"] \| |

##### Block 23 — 🔀 IF `(inMap == null || inMap.get("taknkiki_model_cd") == null || "".equals(inMap.get("taknkiki_model_cd")))` (L20926)

> 📌 オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD);` [➔ TAKNKIKI_MODEL_CD="taknkiki_model_cd"] \| |

##### Block 24 — ↪️ ELSE `(else)` (L20931)

> 📌 オーダ発行条件登録マップ.機器製造番号 → 機器製造番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, (String)inMap.get("taknkiki_model_cd"));` [➔ TAKNKIKI_MODEL_CD="taknkiki_model_cd"] \| |

##### Block 25 — 🔀 IF `(inMap == null || inMap.get("kiki_seizo_no") == null || "".equals(inMap.get("kiki_seizo_no")))` (L20936)

> 📌 オーダ発行条件登録マップ.機器製造番号 → 機器製造番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.KIKI_SEIZO_NO);` [➔ KIKI_SEIZO_NO="kiki_seizo_no"] \| |

##### Block 26 — ↪️ ELSE `(else)` (L20941)

> 📌 オーダ発行条件登録マップ.メールアドレス → メールアドレス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.KIKI_SEIZO_NO, (String)inMap.get("kiki_seizo_no"));` [➔ KIKI_SEIZO_NO="kiki_seizo_no"] \| |

##### Block 27 — 🔀 IF `(inMap == null || inMap.get("mlad") == null || "".equals(inMap.get("mlad")))` (L20946)

> 📌 オーダ発行条件登録マップ.メールアドレス → メールアドレス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.MLAD);` [➔ MLAD="mlad"] \| |

##### Block 28 — ↪️ ELSE `(else)` (L20951)

> 📌 オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.MLAD, (String)inMap.get("mlad"));` [➔ MLAD="mlad"] \| |

##### Block 29 — 🔀 IF `(inMap == null || inMap.get("spot_login_sysid") == null || "".equals(inMap.get("spot_login_sysid")))` (L20956)

> 📌 オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID);` [➔ SPOT_LOGIN_SYSID="spot_login_sysid"] \| |

##### Block 30 — ↪️ ELSE `(else)` (L20961)

> 📌 オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID, (String)inMap.get("spot_login_sysid"));` [➔ SPOT_LOGIN_SYSID="spot_login_sysid"] \| |

##### Block 31 — 🔀 IF `(inMap == null || inMap.get("send_req_fin_dtm") == null || "".equals(inMap.get("send_req_fin_dtm")))` (L20966)

> 📌 オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM);` [➔ SEND_REQ_FIN_DTM="send_req_fin_dtm"] \| |

##### Block 32 — ↪️ ELSE `(else)` (L20971)

> 📌 IT1-2012-0001922 2012/11/07 start

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM, (String)inMap.get("send_req_fin_dtm"));` [➔ SEND_REQ_FIN_DTM="send_req_fin_dtm"] \| |

##### Block 33 — 🔀 IF `(inMap == null || inMap.get("svc_kei_kaisen_ucwk_no") == null || "".equals(inMap.get("svc_kei_kaisen_ucwk_no")))` (L20977)

> 📌 サービス契約回線内訳番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);` [➔ SVC_KEI_KAISEN_UCWK_NO="svc_kei_kaisen_ucwk_no"] \| |

##### Block 34 — ↪️ ELSE `(else)` (L20982)

> 📌 IT1-2012-0001922 2012/11/07 end

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get("svc_kei_kaisen_ucwk_no"));` [➔ SVC_KEI_KAISEN_UCWK_NO="svc_kei_kaisen_ucwk_no"] \| |

##### Block 35 — 🔀 IF `(inMap == null || inMap.get("kei_svc_ctl_yokyu_odr_skcd") == null || "".equals(inMap.get("kei_svc_ctl_yokyu_odr_skcd")))` (L20989)

> 📌 契約サービス制御要求オーダ識別コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK1081D010CBSMsg.KEI_SVC_CTL_YOKYU_ODR_SKCD);` [➔ KEI_SVC_CTL_YOKYU_ODR_SKCD="kei_svc_ctl_yokyu_odr_skcd"] \| |

##### Block 36 — ↪️ ELSE `(else)` (L20994)

> 📌 ANK-0099-00-00 2012/05/25 kitatani end

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK1081D010CBSMsg.KEI_SVC_CTL_YOKYU_ODR_SKCD, (String)inMap.get("kei_svc_ctl_yokyu_odr_skcd"));` [➔ KEI_SVC_CTL_YOKYU_ODR_SKCD="kei_svc_ctl_yokyu_odr_skcd"] \| |
| 2 | ⚡ EXEC | `CAANMsg[] templates = new CAANMsg[1];` |
| 3 | ⚡ EXEC | `templates[0] = template;` |
| 4 | 📋 SET | `paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);` [➔ TEMPLATE_LIST_KEY="template_list_key"] \| |

> **合計**: 36 blocks (1 depth levels)

### editResultRP_EKK1081D010CBS()

---

#### 1. 役割

EKK1081D010（オーダ発行条件登録）実行後のSCレスポンスデータを業務パラメータ（IRequestParameterReadWrite param）に正しく反映するための処理である。  
具体的には、SCからの戻り値（msgList）からCAANMsg配列を取得し、戻り値コードを確認、作業領域（MappingWorkArea）や業務データ（JKKHakkoSODConstCC.HAKKOSODCCWORKMAP）に値をマッピングする。  
さらに、SCレスポンスのオーダ発行条件番号（ODR_HAKKO_JOKEN_NO）を業務データにセットし、エラー情報設定・コントロールマップへのエラー情報登録・エラー時のExceptionスローまでを一連で実施する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editResultRP_EKK1081D010CBS（msgList, param）"] --> S1["Step1: SCレスポンスからCAANMsg[] templatesを取得"]
  S1 --> S2["Step2: リターンコード（return_code）を取得"]
  S2 --> S3["Step3: param.getMappingWorkArea（）で作業領域取得（なければ新規生成）"]
  S3 --> S4["Step4: param.getData（HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'）で業務データ取得"]
  S4 --> S5["Step5: parentTemplate（レスポンス1件目）からODR_HAKKO_JOKEN_NOの有無判定"]
  S5 --> IF1{"ODR_HAKKO_JOKEN_NO isNull?"}
  IF1 -->|"Yes"| S6["業務データに空文字をセット"]
  IF1 -->|"No"| S7["業務データに取得値をセット"]
  S6 --> S8["Step6: editErrorInfo_EKK1081D010CBSを呼出しエラー情報設定"]
  S7 --> S8
  S8 --> S9["Step7: param.getControlMapData（SCControlMapKeys.ERROR_INFO）でエラー情報リスト取得"]
  S9 --> S10["Step8: TemplateErrorUtil.getErrorInfoでエラー情報をコントロールマップに反映"]
  S10 --> IF2{"エラーリストが空でないか？"}
  IF2 -->|"Yes"| S11["CCExceptionでExceptionスロー"]
  IF2 -->|"No"| RET["return param"]

  %% 定数ノート例
  S4 -.- NOTE1["JKKHakkoSODConstCC.HAKKOSODCCWORKMAP = 'HakkoSODCCWORK' （オーダ発行条件登録業務データ）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. **SCレスポンスからCAANMsg[]取得**  
   - `CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY)`でテンプレート配列を取得。

2. **リターンコード取得**  
   - `Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY)` でリターンコード取得。

3. **作業領域取得**  
   - `param.getMappingWorkArea()`でマッピング領域を取得、なければ新規生成し登録。

4. **業務データ取得**  
   - `param.getData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP)`で業務データマップを取得。なければ新規生成しparamにセット。

5. **オーダ発行条件番号のセット**  
   - レスポンス（parentTemplate）のODR_HAKKO_JOKEN_NOがnullなら業務データに空文字を、
   - nullでなければ取得値を業務データにセットする。

6. **エラー情報の設定**  
   - `editErrorInfo_EKK1081D010CBS(param, templates, (Integer)return_code)`を呼出し、SCレスポンスのエラー情報をparamに設定。

7. **エラー情報リストの取得・設定**  
   - `param.getControlMapData(SCControlMapKeys.ERROR_INFO)`でエラー情報リスト取得。
   - `TemplateErrorUtil.getErrorInfo(msgList, errList)`でエラー情報をコントロールマップにセット。

8. **エラー判定とExceptionスロー**  
   - エラーリストが空でなければ、`throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK1081D010CBSMsg.STATUS)))`で例外送出。
   - エラーがなければparamをreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                         | 業務説明                                              |
| --- | ------------ | -------------------------- | ----------------------------------------------------- |
| 1   | msgList      | Map<?, ?>                  | SCレスポンスデータ                                   |
| 2   | param        | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ（業務データコンテナ） |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC / CBS | SCコード | エンティティ / DB | 操作説明 |
| ---- | -------- | -------- | ----------------- | -------- |
| - | (なし — 直接DB/SC呼び出しなし) | - | - | サブメソッド経由で処理 |
#### 5. 依存トレース (Dependency Trace)

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1081D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `executeOdrHakkoJokenAdd` | protected | オーダ発行条件登録実行処理<br> <br> オーダ発行条件登録サービスIFを実行します。<br> <br> 【使用するサービスIF】<br> ・オーダ発行条件登録<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editResultRP_EKK1081D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(workMap == null)` (L21030)

> 📌 作業領域の取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `workMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setMappingWorkArea(workMap);` |

##### Block 2 — 🔀 IF `(dataMap == null)` (L21041)

> 📌 業務データ設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 3 — 🔀 IF `(parentTemplate.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO))` [ODR_HAKKO_JOKEN_NO="odr_hakko_joken_no"] (L21047)

> 📌 オーダ発行条件登録マップ.オーダ発行条件番号 ← オーダ発行条件番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `dataMap.put("odr_hakko_joken_no", "");` |

##### Block 4 — ↪️ ELSE `(else)` (L21052)

> 📌 エラー情報の設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `dataMap.put("odr_hakko_joken_no", parentTemplate.getString(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO));` [➔ ODR_HAKKO_JOKEN_NO="odr_hakko_joken_no"] \| |
| 2 | ⚡ EXEC | `param = editErrorInfo_EKK1081D010CBS(param, templates, (Integer)return_code);` |

##### Block 5 — 🔀 IF `(errList == null)` (L21061)

> 📌 エラー情報のマップを取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `errList = new ArrayList<Object>();` |

##### Block 6 — 🔀 IF `(errList != null && !errList.isEmpty())` (L21069)

> 📌 エラー発生時はExceptionを設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 💥 THROW | `throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK1081D010CBSMsg.STATUS)));` |

> **合計**: 6 blocks (1 depth levels)

### editErrorInfo()

---

#### 1. 役割

エラー情報編集処理。  
Javadoc上は「EKK1081D010実行後に、IRequestParameterReadWriteにエラー情報をマッピングする」とあるが、本メソッドの実装は何も処理をせず、そのまま引数のparamを返却するのみである。  
本メソッドは内部でのみ呼ばれ、SC実行後のエラー情報設定フックとして利用されているが、現状は空実装である。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editErrorInfo（param, templates, returnCode）"] --> RET["return param"]
```

**処理ステップ詳細:**

1. 入力されたparamをそのまま返却する。

---

#### 3. パラメータ分析

| No  | パラメータ名    | 型                             | 業務説明                               |
| --- | --------------- | ------------------------------ | -------------------------------------- |
| 1   | param           | IRequestParameterReadWrite     | リクエスト/レスポンスパラメータ        |
| 2   | templates       | CAANMsg[]                      | SCの出力テンプレート（未使用）         |
| 3   | returnCode      | int                            | 戻り値コード（未使用）                 |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC / CBS | SCコード | エンティティ / DB | 操作説明 |
| ---- | -------- | -------- | ----------------- | -------- |
| - | (なし — 直接DB/SC呼び出しなし) | - | - | サブメソッド経由で処理 |
#### 5. 依存トレース (Dependency Trace)

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo` | - |
---

---

## 📋 全分岐詳細 (deterministic per-branch table)

> 以下のテーブルはソースコードから deterministic に生成されたものです。全条件分岐を網羅します。

### 📞 Screen/Batch 呼び出し元 (External Entry Points)

> このクラスを呼び出すScreen/Batchの一覧です（クラスレベルの呼び出し元）。
> **「呼出チェーン」列**: CC直接エントリメソッド → IntraClass経由 → 本チャンクの対象メソッド（**太字**）の実際の呼出パス。
> ※ 例: `CCエントリメソッド → 中間メソッド → **対象メソッド**` — 左端がCC入口、太字が本チャンクの対象メソッド。
> **「種別」列**: BPCheck＝業務確認チェック, Batch＝バッチ処理, Operation＝オペレーション, CC＝制御クラス。

| # | Screen/Batch | 種別 | 呼び出しクラス | 呼び出しメソッド | 呼出チェーン（CC入口 → IntraClass → 対象） |
|---|---|---|---|---|---|
| 1 | `KKSV0004` | BPCheck | `KKSV0004OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 2 | `KKSV0008` | BPCheck | `KKSV0008OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 3 | `KKSV0009` | BPCheck | `KKSV0009OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 4 | `KKSV0031` | BPCheck | `KKSV0031OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 5 | `KKSV0073` | BPCheck | `KKSV0073OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 6 | `KKSV0136` | BPCheck | `KKSV0136OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 7 | `KKSV0162` | BPCheck | `KKSV0162OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 8 | `KKSV0428` | BPCheck | `KKSV0428OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 9 | `KKSV0429` | BPCheck | `KKSV0429OPBPCheck` | `invokeCheck` | `getInvokeCBS` |
| 10 | `KKSV0430` | BPCheck | `KKSV0430OPBPCheck` | `invokeCheck` | `getInvokeCBS` |

## ③.6 制御フロー分岐 (Control Flow Branching)

### `editInMsg_EKK1081D010CBS()` (L20768) — 37 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_no") == null ｜｜ "".equals(inMap.get("svc_kei_no"))) | オーダ発行条件登録マップ.サービス契約番号 → サービス契約番号 | - | - | L20816 |
| 2 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 | - | - | L20821 |
| 3 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_ucwk_no") == null ｜｜ "".equals(inMap.get("svc_kei_ucwk_no"))) | オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 | - | - | L20826 |
| 4 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 | - | - | L20831 |
| 5 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kktk_svc_kei_no") == null ｜｜ "".equals(inMap.get("kktk_svc_kei_no"))) | オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 | - | - | L20836 |
| 6 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 | - | - | L20841 |
| 7 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("op_svc_kei_no") == null ｜｜ "".equals(inMap.get("op_svc_kei_no"))) | オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 | - | - | L20846 |
| 8 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 | - | - | L20851 |
| 9 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("sbop_svc_kei_no") == null ｜｜ "".equals(inMap.get("sbop_svc_kei_no"))) | オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 | - | - | L20856 |
| 10 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 | - | - | L20861 |
| 11 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("seiopsvc_kei_no") == null ｜｜ "".equals(inMap.get("seiopsvc_kei_no"))) | オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 | - | - | L20866 |
| 12 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード | - | - | L20871 |
| 13 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("order_sbt_cd") == null ｜｜ "".equals(inMap.get("order_sbt_cd"))) | オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード | - | - | L20876 |
| 14 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード | - | - | L20881 |
| 15 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_order_cd") == null ｜｜ "".equals(inMap.get("svc_order_cd"))) | オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード | - | - | L20886 |
| 16 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.要求種別コード → 要求種別コード | - | - | L20891 |
| 17 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("yokyu_sbt_cd") == null ｜｜ "".equals(inMap.get("yokyu_sbt_cd"))) | オーダ発行条件登録マップ.要求種別コード → 要求種別コード | - | - | L20896 |
| 18 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード | - | - | L20901 |
| 19 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("odr_hakko_joken_cd") == null ｜｜ "".equals(inMap.get("odr_hakko_joken_cd"))) | オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード | - | - | L20906 |
| 20 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 | - | - | L20911 |
| 21 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("same_trn_no") == null ｜｜ "".equals(inMap.get("same_trn_no"))) | オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 | - | - | L20916 |
| 22 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード | - | - | L20921 |
| 23 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("taknkiki_model_cd") == null ｜｜ "".equals(inMap.get("taknkiki_model_cd"))) | オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード | - | - | L20926 |
| 24 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 | - | - | L20931 |
| 25 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kiki_seizo_no") == null ｜｜ "".equals(inMap.get("kiki_seizo_no"))) | オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 | - | - | L20936 |
| 26 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.メールアドレス → メールアドレス | - | - | L20941 |
| 27 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("mlad") == null ｜｜ "".equals(inMap.get("mlad"))) | オーダ発行条件登録マップ.メールアドレス → メールアドレス | - | - | L20946 |
| 28 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ | - | - | L20951 |
| 29 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("spot_login_sysid") == null ｜｜ "".equals(inMap.get("spot_login_sysid"))) | オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ | - | - | L20956 |
| 30 | 🔀 ELSE | D0 | (else) | オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 | - | - | L20961 |
| 31 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("send_req_fin_dtm") == null ｜｜ "".equals(inMap.get("send_req_fin_dtm"))) | オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 | - | - | L20966 |
| 32 | 🔀 ELSE | D0 | (else) | IT1-2012-0001922 2012/11/07 start | - | - | L20971 |
| 33 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_kaisen_ucwk_no") == null ｜｜ "".equals(inMap.get("svc_kei_kaisen_ucwk_no"))) | サービス契約回線内訳番号 | - | - | L20977 |
| 34 | 🔀 ELSE | D0 | (else) | IT1-2012-0001922 2012/11/07 end | - | - | L20982 |
| 35 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kei_svc_ctl_yokyu_odr_skcd") == null ｜｜ "".equals(inMap.get("kei_svc_ctl_yokyu_odr_skcd"))) | 契約サービス制御要求オーダ識別コード | - | - | L20989 |
| 36 | 🔀 ELSE | D0 | (else) | ANK-0099-00-00 2012/05/25 kitatani end | - | - | L20994 |
| 37 | ↩️ RETURN | D0 | paramMap | - | - | - | L21003 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editInMsg_EKK1081D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （inMap == null || inMap.get（'svc_kei_no'…"]
  CF0 -->|"L20816"| B0
  B1["ELSE"]
  CF0 -->|"L20821"| B1
  B2["IF: （inMap == null || inMap.get（'svc_kei_ucw…"]
  CF0 -->|"L20826"| B2
  B3["ELSE"]
  CF0 -->|"L20831"| B3
  B4["IF: （inMap == null || inMap.get（'kktk_svc_ke…"]
  CF0 -->|"L20836"| B4
  B5["ELSE"]
  CF0 -->|"L20841"| B5
  B6["IF: （inMap == null || inMap.get（'op_svc_kei_…"]
  CF0 -->|"L20846"| B6
  B7["ELSE"]
  CF0 -->|"L20851"| B7
  B8["IF: （inMap == null || inMap.get（'sbop_svc_ke…"]
  CF0 -->|"L20856"| B8
  B9["ELSE"]
  CF0 -->|"L20861"| B9
  B10["IF: （inMap == null || inMap.get（'seiopsvc_ke…"]
  CF0 -->|"L20866"| B10
  B11["ELSE"]
  CF0 -->|"L20871"| B11
  B12["IF: （inMap == null || inMap.get（'order_sbt_c…"]
  CF0 -->|"L20876"| B12
  B13["ELSE"]
  CF0 -->|"L20881"| B13
  B14["IF: （inMap == null || inMap.get（'svc_order_c…"]
  CF0 -->|"L20886"| B14
  B15["ELSE"]
  CF0 -->|"L20891"| B15
  B16["IF: （inMap == null || inMap.get（'yokyu_sbt_c…"]
  CF0 -->|"L20896"| B16
  B17["ELSE"]
  CF0 -->|"L20901"| B17
  B18["IF: （inMap == null || inMap.get（'odr_hakko_j…"]
  CF0 -->|"L20906"| B18
  B19["ELSE"]
  CF0 -->|"L20911"| B19
  B20["IF: （inMap == null || inMap.get（'same_trn_no…"]
  CF0 -->|"L20916"| B20
  B21["ELSE"]
  CF0 -->|"L20921"| B21
  B22["IF: （inMap == null || inMap.get（'taknkiki_mo…"]
  CF0 -->|"L20926"| B22
  B23["ELSE"]
  CF0 -->|"L20931"| B23
  B24["IF: （inMap == null || inMap.get（'kiki_seizo_…"]
  CF0 -->|"L20936"| B24
  B25["ELSE"]
  CF0 -->|"L20941"| B25
  B26["IF: （inMap == null || inMap.get（'mlad'） == n…"]
  CF0 -->|"L20946"| B26
  B27["ELSE"]
  CF0 -->|"L20951"| B27
  B28["IF: （inMap == null || inMap.get（'spot_login_…"]
  CF0 -->|"L20956"| B28
  B29["ELSE"]
  CF0 -->|"L20961"| B29
  B30["IF: （inMap == null || inMap.get（'send_req_fi…"]
  CF0 -->|"L20966"| B30
  B31["ELSE"]
  CF0 -->|"L20971"| B31
  B32["IF: （inMap == null || inMap.get（'svc_kei_kai…"]
  CF0 -->|"L20977"| B32
  B33["ELSE"]
  CF0 -->|"L20982"| B33
  B34["IF: （inMap == null || inMap.get（'kei_svc_ctl…"]
  CF0 -->|"L20989"| B34
  B35["ELSE"]
  CF0 -->|"L20994"| B35
  B36["RETURN: paramMap"]
  CF0 -->|"L21003"| B36
```

### `editInMsg_EKK1551D010CBS()` (L21282) — 55 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("odr_hakko_joken_no") == null ｜｜ "".equals(inMap.get("odr_hakko_joken_no"))) | オーダ情報作成ワーク登録.オーダ発行条件番号 → オーダ発行条件番号 | - | - | L21331 |
| 2 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード | - | - | L21336 |
| 3 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("odr_naiyo_cd") == null ｜｜ "".equals(inMap.get("odr_naiyo_cd"))) | オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード | - | - | L21341 |
| 4 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 | - | - | L21346 |
| 5 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_no") == null ｜｜ "".equals(inMap.get("svc_kei_no"))) | オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 | - | - | L21351 |
| 6 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 | - | - | L21356 |
| 7 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svkei_gadtm") == null ｜｜ "".equals(inMap.get("svkei_gadtm"))) | オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 | - | - | L21361 |
| 8 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 | - | - | L21366 |
| 9 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_ucwk_no") == null ｜｜ "".equals(inMap.get("svc_kei_ucwk_no"))) | オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 | - | - | L21371 |
| 10 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 | - | - | L21376 |
| 11 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svkeiuw_gadtm") == null ｜｜ "".equals(inMap.get("svkeiuw_gadtm"))) | オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 | - | - | L21381 |
| 12 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 | - | - | L21386 |
| 13 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kktk_svc_kei_no") == null ｜｜ "".equals(inMap.get("kktk_svc_kei_no"))) | オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 | - | - | L21391 |
| 14 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 | - | - | L21396 |
| 15 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kktsvkei_gadtm") == null ｜｜ "".equals(inMap.get("kktsvkei_gadtm"))) | オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 | - | - | L21401 |
| 16 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 | - | - | L21406 |
| 17 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("op_svc_kei_no") == null ｜｜ "".equals(inMap.get("op_svc_kei_no"))) | オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 | - | - | L21411 |
| 18 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 | - | - | L21416 |
| 19 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("opsvkei_gadtm") == null ｜｜ "".equals(inMap.get("opsvkei_gadtm"))) | オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 | - | - | L21421 |
| 20 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 | - | - | L21426 |
| 21 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("sbop_svc_kei_no") == null ｜｜ "".equals(inMap.get("sbop_svc_kei_no"))) | オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 | - | - | L21431 |
| 22 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 | - | - | L21436 |
| 23 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("sbopsvkei_gadtm") == null ｜｜ "".equals(inMap.get("sbopsvkei_gadtm"))) | オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 | - | - | L21441 |
| 24 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 | - | - | L21446 |
| 25 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("seiopsvc_kei_no") == null ｜｜ "".equals(inMap.get("seiopsvc_kei_no"))) | オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 | - | - | L21451 |
| 26 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 | - | - | L21456 |
| 27 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("seiopsvkei_gadtm") == null ｜｜ "".equals(inMap.get("seiopsvkei_gadtm"))) | オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 | - | - | L21461 |
| 28 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 | - | - | L21466 |
| 29 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("huka_inf_kei_no") == null ｜｜ "".equals(inMap.get("huka_inf_kei_no"))) | オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 | - | - | L21471 |
| 30 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 | - | - | L21476 |
| 31 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("huka_inf_kei_gadtm") == null ｜｜ "".equals(inMap.get("huka_inf_kei_gadtm"))) | オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 | - | - | L21481 |
| 32 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 | - | - | L21486 |
| 33 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_svkei_gadtm") == null ｜｜ "".equals(inMap.get("chbf_svkei_gadtm"))) | オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 | - | - | L21491 |
| 34 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 | - | - | L21496 |
| 35 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_svkeiuw_gadtm") == null ｜｜ "".equals(inMap.get("chbf_svkeiuw_gadtm"))) | オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 | - | - | L21501 |
| 36 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 | - | - | L21506 |
| 37 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_kktsvkei_gadtm") == null ｜｜ "".equals(inMap.get("chbf_kktsvkei_gadtm"))) | オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 | - | - | L21511 |
| 38 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 | - | - | L21516 |
| 39 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_opsvkei_gadtm") == null ｜｜ "".equals(inMap.get("chbf_opsvkei_gadtm"))) | オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 | - | - | L21521 |
| 40 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 | - | - | L21526 |
| 41 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_sbopsvkei_gadtm") == null ｜｜ "".equals(inMap.get("chbf_sbopsvkei_gadtm"))) | オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 | - | - | L21531 |
| 42 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 | - | - | L21536 |
| 43 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("chbf_seiopsvkei_gadtm") == null ｜｜ "".equals(inMap.get("chbf_seiopsvkei_gadtm"))) | オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 | - | - | L21541 |
| 44 | 🔀 ELSE | D0 | (else) | ▼▼▼ 2013/11/19 2014年2月案件 多機能ルーター（機器追加） | - | - | L21546 |
| 45 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kkop_svc_kei_no_1") == null ｜｜ "".equals(inMap.get("kkop_svc_kei_no_1"))) | オーダ情報作成ワーク登録.機器オプションサービス契約番号１ → 機器オプションサービス契約番号１ | - | - | L21552 |
| 46 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒１ → 機器オプションサービス契約世代登録年月日時分秒１ | - | - | L21557 |
| 47 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kkosvkei_gadtm_1") == null ｜｜ "".equals(inMap.get("kkosvkei_gadtm_1"))) | オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒１ → 機器オプションサービス契約世代登録年月日時分秒１ | - | - | L21561 |
| 48 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.機器オプションサービス契約番号２ → 機器オプションサービス契約番号２ | - | - | L21566 |
| 49 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kkop_svc_kei_no_2") == null ｜｜ "".equals(inMap.get("kkop_svc_kei_no_2"))) | オーダ情報作成ワーク登録.機器オプションサービス契約番号２ → 機器オプションサービス契約番号２ | - | - | L21570 |
| 50 | 🔀 ELSE | D0 | (else) | オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒２ → 機器オプションサービス契約世代登録年月日時分秒２ | - | - | L21575 |
| 51 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("kkosvkei_gadtm_2") == null ｜｜ "".equals(inMap.get("kkosvkei_gadtm_2"))) | オーダ情報作成ワーク登録.機器オプションサービス契約世代登録年月日時分秒２ → 機器オプションサービス契約世代登録年月日時分秒２ | - | - | L21579 |
| 52 | 🔀 ELSE | D0 | (else) | ▲▲▲ 2013/11/19 2014年2月案件 多機能ルーター（機器追加） | - | - | L21584 |
| 53 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("telno") == null ｜｜ "".equals(inMap.get("telno"))) | オーダ情報作成ワーク登録.電話番号 → 電話番号 | - | - | L21590 |
| 54 | 🔀 ELSE | D0 | (else) | v72.00.00 ANK-4494-00-00 ADD END | - | - | L21595 |
| 55 | ↩️ RETURN | D0 | paramMap | - | - | - | L21604 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editInMsg_EKK1551D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （inMap == null || inMap.get（'odr_hakko_j…"]
  CF0 -->|"L21331"| B0
  B1["ELSE"]
  CF0 -->|"L21336"| B1
  B2["IF: （inMap == null || inMap.get（'odr_naiyo_c…"]
  CF0 -->|"L21341"| B2
  B3["ELSE"]
  CF0 -->|"L21346"| B3
  B4["IF: （inMap == null || inMap.get（'svc_kei_no'…"]
  CF0 -->|"L21351"| B4
  B5["ELSE"]
  CF0 -->|"L21356"| B5
  B6["IF: （inMap == null || inMap.get（'svkei_gadtm…"]
  CF0 -->|"L21361"| B6
  B7["ELSE"]
  CF0 -->|"L21366"| B7
  B8["IF: （inMap == null || inMap.get（'svc_kei_ucw…"]
  CF0 -->|"L21371"| B8
  B9["ELSE"]
  CF0 -->|"L21376"| B9
  B10["IF: （inMap == null || inMap.get（'svkeiuw_gad…"]
  CF0 -->|"L21381"| B10
  B11["ELSE"]
  CF0 -->|"L21386"| B11
  B12["IF: （inMap == null || inMap.get（'kktk_svc_ke…"]
  CF0 -->|"L21391"| B12
  B13["ELSE"]
  CF0 -->|"L21396"| B13
  B14["IF: （inMap == null || inMap.get（'kktsvkei_ga…"]
  CF0 -->|"L21401"| B14
  B15["ELSE"]
  CF0 -->|"L21406"| B15
  B16["IF: （inMap == null || inMap.get（'op_svc_kei_…"]
  CF0 -->|"L21411"| B16
  B17["ELSE"]
  CF0 -->|"L21416"| B17
  B18["IF: （inMap == null || inMap.get（'opsvkei_gad…"]
  CF0 -->|"L21421"| B18
  B19["ELSE"]
  CF0 -->|"L21426"| B19
  B20["IF: （inMap == null || inMap.get（'sbop_svc_ke…"]
  CF0 -->|"L21431"| B20
  B21["ELSE"]
  CF0 -->|"L21436"| B21
  B22["IF: （inMap == null || inMap.get（'sbopsvkei_g…"]
  CF0 -->|"L21441"| B22
  B23["ELSE"]
  CF0 -->|"L21446"| B23
  B24["IF: （inMap == null || inMap.get（'seiopsvc_ke…"]
  CF0 -->|"L21451"| B24
  B25["ELSE"]
  CF0 -->|"L21456"| B25
  B26["IF: （inMap == null || inMap.get（'seiopsvkei_…"]
  CF0 -->|"L21461"| B26
  B27["ELSE"]
  CF0 -->|"L21466"| B27
  B28["IF: （inMap == null || inMap.get（'huka_inf_ke…"]
  CF0 -->|"L21471"| B28
  B29["ELSE"]
  CF0 -->|"L21476"| B29
  B30["IF: （inMap == null || inMap.get（'huka_inf_ke…"]
  CF0 -->|"L21481"| B30
  B31["ELSE"]
  CF0 -->|"L21486"| B31
  B32["IF: （inMap == null || inMap.get（'chbf_svkei_…"]
  CF0 -->|"L21491"| B32
  B33["ELSE"]
  CF0 -->|"L21496"| B33
  B34["IF: （inMap == null || inMap.get（'chbf_svkeiu…"]
  CF0 -->|"L21501"| B34
  B35["ELSE"]
  CF0 -->|"L21506"| B35
  B36["IF: （inMap == null || inMap.get（'chbf_kktsvk…"]
  CF0 -->|"L21511"| B36
  B37["ELSE"]
  CF0 -->|"L21516"| B37
  B38["IF: （inMap == null || inMap.get（'chbf_opsvke…"]
  CF0 -->|"L21521"| B38
  B39["ELSE"]
  CF0 -->|"L21526"| B39
  B40["IF: （inMap == null || inMap.get（'chbf_sbopsv…"]
  CF0 -->|"L21531"| B40
  B41["ELSE"]
  CF0 -->|"L21536"| B41
  B42["IF: （inMap == null || inMap.get（'chbf_seiops…"]
  CF0 -->|"L21541"| B42
  B43["ELSE"]
  CF0 -->|"L21546"| B43
  B44["IF: （inMap == null || inMap.get（'kkop_svc_ke…"]
  CF0 -->|"L21552"| B44
  B45["ELSE"]
  CF0 -->|"L21557"| B45
  B46["IF: （inMap == null || inMap.get（'kkosvkei_ga…"]
  CF0 -->|"L21561"| B46
  B47["ELSE"]
  CF0 -->|"L21566"| B47
  B48["IF: （inMap == null || inMap.get（'kkop_svc_ke…"]
  CF0 -->|"L21570"| B48
  B49["ELSE"]
  CF0 -->|"L21575"| B49
  B50["IF: （inMap == null || inMap.get（'kkosvkei_ga…"]
  CF0 -->|"L21579"| B50
  B51["ELSE"]
  CF0 -->|"L21584"| B51
  B52["IF: （inMap == null || inMap.get（'telno'） == …"]
  CF0 -->|"L21590"| B52
  B53["ELSE"]
  CF0 -->|"L21595"| B53
  B54["RETURN: paramMap"]
  CF0 -->|"L21604"| B54
```

### `editResultRP_EKK1081D010CBS()` (L21016) — 8 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (workMap == null) | 結果を詰めるマップを取得。 | - | - | L21030 |
| 2 | 🔀 IF | D0 | (dataMap == null) | オーダ発行条件登録マップ.オーダ発行条件番号 ← オーダ発行条件番号 | - | - | L21041 |
| 3 | 🔀 IF | D0 | (parentTemplate.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO)) | - | ODR_HAKKO_JOKEN_NO=odr_hakko_joken_no | - | L21047 |
| 4 | 🔀 ELSE | D0 | (else) | エラー情報の設定 | - | `editErrorInfo_EKK1081D010CBS()` | L21052 |
| 5 | 🔀 IF | D0 | (errList == null) | コントロールマップに設定 | - | - | L21061 |
| 6 | 🔀 IF | D0 | (errList != null && !errList.isEmpty()) | - | - | - | L21069 |
| 7 | · ⚠️ THROW | D1 | new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK1081D010CBSMsg.STATUS))) | - | - | - | L21071 |
| 8 | ↩️ RETURN | D0 | param | - | - | - | L21074 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editResultRP_EKK1081D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （workMap == null）"]
  CF0 -->|"L21030"| B0
  B1["IF: （dataMap == null）"]
  CF0 -->|"L21041"| B1
  B2["IF: （parentTemplate.isNull（EKK1081D010CBSMsg…"]
  CF0 -->|"L21047"| B2
  B3["ELSE"]
  CF0 -->|"L21052"| B3
  B4["IF: （errList == null）"]
  CF0 -->|"L21061"| B4
  subgraph SG5["IF: （errList != null && !errList.isEmpty（））"]
    direction TB
    C5_0["THROW: new CCException（'', new SCCall…"]
  end
  CF0 -->|"L21069"| SG5
  B6["RETURN: param"]
  CF0 -->|"L21074"| B6
```

> **制御フロー合計**: 3 methods, 100 branches
