# ⑥ 業務ロジック — Mapping (InMsg/OutMsg): 10 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-mappingEZM0121A010SCOutMsg"></a>
### mappingEZM0121A010SCOutMsg()

---

#### 1. 役割

EZM0121A010（電話番号一意照会）サービスコンポーネントの出力データを業務用のHashMap形式にマッピングするメソッドです。具体的には、SC（サービスコンポーネント）から返却されたCAANMsg配列を受け取り、最初のCAANMsgオブジェクトに格納されたメッセージリスト（EZM0121A010CBSMSG1LIST）を取得します。メッセージリストが空またはnullの場合は空のHashMapを返し、1件以上存在する場合は最初のメッセージの内容をHashMapとして返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEZM0121A010SCOutMsg（resultMsgs）"] --> S1["Step1: resultMsgs[0] からCAANMsg msgを抽出"]
  S1 --> S2["Step2: msg.getMsgData（）.get（EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST） でCAANMsg[] msgListを取得"]
  S2 --> IF1{"'msgList == null || msgList.length == 0'"}
  IF1 -.- NOTE1["EZM0121A010CBSMSG1LIST = 'EZM0121A010CBSMSG1LIST' （電話番号一意照会明細リスト）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5

  IF1 -->|"Yes: 空リスト"| S3["Step3: retHash = new HashMap<String, Object>（）（空のHashMapを返す）"]
  IF1 -->|"No: 1件以上"| S4["Step4: retHash = msgList[0].getMsgData（）（最初のデータ内容を返す）"]
  S3 --> RET["return retHash"]
  S4 --> RET
```

**処理ステップ詳細:**

1. resultMsgs配列の先頭要素（CAANMsg）から、msg変数に格納。
2. msg.getMsgData().get(EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST) で、EZM0121A010CBSMSG1LISTキーに対応するCAANMsg[]型のメッセージリストを取得。
3. msgListがnullまたは要素数0の場合は、空のHashMap<String, Object>を新規生成して返却。
4. msgListに1件以上のデータが存在する場合は、msgList[0].getMsgData() で最初のCAANMsgのデータMapを取得し、それを返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                    | 業務説明                                                       |
| --- | ----------------- | --------------------- | -------------------------------------------------------------- |
| 1   | resultMsgs        | CAANMsg[]             | SC（EZM0121A010）からのレスポンスメッセージ配列                |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCOutMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEZM0121A010SC` | private | 電話番号一意照会SIFを呼び出し |

---

#### 📋 Per-Branch 詳細ブロック — `mappingEZM0121A010SCOutMsg()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null == msgList || 0 == msgList.length)` (L42298)

> 📌 結果の取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = new HashMap<String, Object>();` |

##### Block 2 — ↪️ ELSE `(else)` (L42303)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = msgList[0].getMsgData();` |

> **合計**: 2 blocks (1 depth levels)

### mappingEZM0321A010SCInMsg()

---

#### 1. 役割

EZM0321A010（業務パラメータ管理一意照会）サービスコンポーネントへの入力メッセージ（CAANMsg）を構築する業務マッピングメソッドです。具体的には、SCに送信するCAANMsgインスタンスに対し、テンプレートID、機能コード、業務パラメータID（inHashから取得）を正確にセットします。全条件フィールドのNull初期化を行った上で、必要な項目に値を格納します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEZM0321A010SCInMsg（template, inHash, funcCode）"] --> S1["Step1: 全条件のNullマッピング（初期化）"]
  S1 --> S2["Step2: テンプレートID（SIFのID）をセット EZM0321A010CBSMsg.TEMPLATEID = 'EZM0321A010'"]
  S2 -.- NOTE1["TEMPLATE_ID_EZM0321A010 = 'EZM0321A010' （業務パラメータ管理一意照会）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S2 --> S3["Step3: 機能コードをセット EZM0321A010CBSMsg.FUNC_CODE = funcCode"]
  S3 -.- NOTE2["FUNC_CODE = 'func_code' （機能コード）"]
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S3 --> S4["Step4: 業務パラメータIDをセット EZM0321A010CBSMsg.KEY_WORK_PARAM_ID = inHash.get（KEY_WORK_PARAM_ID）"]
  S4 -.- NOTE3["KEY_WORK_PARAM_ID = 'key_work_param_id' （業務パラメータID）"]
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. 入力テンプレート（CAANMsg）に対し、全フィールドのNull初期化を行う。
2. テンプレートID（EZM0321A010CBSMsg.TEMPLATEID）に定数値 "EZM0321A010" をセット。
3. 機能コード（EZM0321A010CBSMsg.FUNC_CODE）に引数funcCodeの値をセット。
4. 業務パラメータID（EZM0321A010CBSMsg.KEY_WORK_PARAM_ID）に、inHashからKEY_WORK_PARAM_IDキーで取得した値をセット。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                                      |
| --- | ------------ | --------------------- | --------------------------------------------- |
| 1   | template     | CAANMsg               | SC入力用テンプレート（書き込み対象）          |
| 2   | inHash       | HashMap<String,Object>| 入力パラメータ（業務パラメータID等を格納）    |
| 3   | funcCode     | String                | 機能コード                                    |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0321A010SCInMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEZM0321A010_SC` | private | 業務パラメータ一意照会検索を呼び出す。 |
### mappingEKK0881A010SCOutMsg()

---

#### 1. 役割

EKK0881A010（回線使用契約一意照会）サービスコンポーネントの出力データをHashMap形式にマッピングする業務メソッドです。SCから返却されたCAANMsg配列から最初のCAANMsgのEKK0881A010CBSMSG1LISTリストを抽出し、これが空またはnullの場合は空のHashMapを返し、1件以上あれば最初のデータをHashMapとして返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEKK0881A010SCOutMsg（resultMsgs）"] --> S1["Step1: resultMsgs[0] からCAANMsg msgを抽出"]
  S1 --> S2["Step2: msg.getMsgData（）.get（EKK0881A010CBSMsg.EKK0881A010CBSMSG1LIST） でCAANMsg[] msgListを取得"]
  S2 --> IF1{"'msgList == null || msgList.length == 0'"}
  IF1 -.- NOTE1["EKK0881A010CBSMSG1LIST = 'EKK0881A010CBSMSG1LIST' （回線使用契約一意照会明細リスト）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5

  IF1 -->|"Yes: 空リスト"| S3["Step3: retHash = new HashMap<String, Object>（）（空のHashMapを返す）"]
  IF1 -->|"No: 1件以上"| S4["Step4: retHash = msgList[0].getMsgData（）（最初のデータ内容を返す）"]
  S3 --> RET["return retHash"]
  S4 --> RET
```

**処理ステップ詳細:**

1. SCのレスポンスresultMsgs配列の先頭要素からCAANMsgを取得。
2. msg.getMsgData().get(EKK0881A010CBSMsg.EKK0881A010CBSMSG1LIST) で明細リストを取得。
3. msgListがnullまたは要素数0の場合は空のHashMapを返す。
4. 1件以上あればmsgList[0].getMsgData()で最初のデータのMapを返す。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                    | 業務説明                                                       |
| --- | ----------------- | --------------------- | -------------------------------------------------------------- |
| 1   | resultMsgs        | CAANMsg[]             | SC（EKK0881A010）からのレスポンスメッセージ配列                |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0881A010SCOutMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK0881A010_SC` | private | 回線使用契約一意照会SIFを呼び出し |

---

#### 📋 Per-Branch 詳細ブロック — `mappingEKK0881A010SCOutMsg()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null == msgList || 0 == msgList.length)` (L41689)

> 📌 結果の取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = new HashMap<String, Object>();` |

##### Block 2 — ↪️ ELSE `(else)` (L41694)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = msgList[0].getMsgData();` |

> **合計**: 2 blocks (1 depth levels)

### mappingEKK0891A010SCInMsg()

---

#### 1. 役割

EKK0891A010（提供方式契約一意照会）サービスコンポーネントへの入力メッセージ（CAANMsg）を構築する業務マッピングメソッドです。テンプレートID、機能コード、提供方式契約番号をセットし、SCリクエストとして必要なフィールドを準備します。全条件のNullマッピングも行います。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEKK0891A010SCInMsg（template, inHash, funcCode）"] --> S1["Step1: 全条件のNullマッピング（初期化）"]
  S1 --> S2["Step2: テンプレートID（SIFのID）をセット EKK0891A010CBSMsg.TEMPLATEID = 'EKK0891A010'"]
  S2 -.- NOTE1["TEMPLATE_ID_EKK0891A010 = 'EKK0891A010' （提供方式契約一意照会）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S2 --> S3["Step3: 機能コードをセット EKK0891A010CBSMsg.FUNC_CODE = funcCode"]
  S3 -.- NOTE2["FUNC_CODE = 'func_code' （機能コード）"]
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S3 --> S4["Step4: 提供方式契約番号をセット EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO = inHash.get（KEY_TK_HOSHIKI_KEI_NO）"]
  S4 -.- NOTE3["KEY_TK_HOSHIKI_KEI_NO = 'key_tk_hoshiki_kei_no' （提供方式契約番号）"]
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. 入力テンプレート（CAANMsg）に対し全フィールドのNullマッピング（初期化）。
2. テンプレートID（EKK0891A010CBSMsg.TEMPLATEID）に "EKK0891A010" をセット。
3. 機能コード（EKK0891A010CBSMsg.FUNC_CODE）に引数funcCodeをセット。
4. 提供方式契約番号（EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO）に、inHashからKEY_TK_HOSHIKI_KEI_NOキーで取得した値をセット。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                                      |
| --- | ------------ | --------------------- | --------------------------------------------- |
| 1   | template     | CAANMsg               | SC入力用テンプレート（書き込み対象）          |
| 2   | inHash       | HashMap<String,Object>| 入力パラメータ（提供方式契約番号等を格納）    |
| 3   | funcCode     | String                | 機能コード                                    |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCInMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK0891A010_SC` | private | 提供方式契約一意照会を呼び出す。 |
### mappingEZM0121A010SCInMsg()

---

#### 1. 役割

EZM0121A010（電話番号一意照会）サービスコンポーネントに対して入力メッセージ（CAANMsg）を構築する業務マッピングメソッドです。全条件フィールドのNull初期化を実施し、テンプレートID・機能コード・電話番号をセットします。SCリクエストの作成に用います。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEZM0121A010SCInMsg（template, inHash, funcCode）"] --> S1["Step1: 全条件のNullマッピング （fillCAANMSGNullMapping）"]
  S1 --> S2["Step2: テンプレートID（SIFのID）をセット EZM0121A010CBSMsg.TEMPLATEID = 'EZM0121A010'"]
  S2 -.- NOTE1["TEMPLATE_ID_EZM0121A010 = 'EZM0121A010' （電話番号一意照会）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S2 --> S3["Step3: 機能コードをセット EZM0121A010CBSMsg.FUNC_CODE = funcCode"]
  S3 -.- NOTE2["FUNC_CODE = 'func_code' （機能コード）"]
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S3 --> S4["Step4: 電話番号をセット EZM0121A010CBSMsg.KEY_TELNO = inHash.get（TELNO）"]
  S4 -.- NOTE3["TELNO = 'telno' （電話番号）"]
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. templateに対して全てのフィールドをNullで初期化（fillCAANMSGNullMapping）。
2. テンプレートID（EZM0121A010CBSMsg.TEMPLATEID）に "EZM0121A010" をセット。
3. 機能コード（EZM0121A010CBSMsg.FUNC_CODE）にfuncCodeをセット。
4. 電話番号（EZM0121A010CBSMsg.KEY_TELNO）に、inHashからTELNOキーで取得した値をセット。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                                      |
| --- | ------------ | --------------------- | --------------------------------------------- |
| 1   | template     | CAANMsg               | SC入力用テンプレート（書き込み対象）          |
| 2   | inHash       | HashMap<String,Object>| 入力パラメータ（電話番号等を格納）            |
| 3   | funcCode     | String                | 機能コード                                    |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEZM0121A010SCInMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEZM0121A010SC` | private | 電話番号一意照会SIFを呼び出し |
### mappingEKK0891A010SCOutMsg()

---

#### 1. 役割

EKK0891A010（提供方式契約一意照会）サービスコンポーネントの出力データをHashMap形式にマッピングする業務メソッドです。SCから返却されたCAANMsg配列の先頭要素からEKK0891A010CBSMSG1LISTリストを抽出し、リストが空またはnullの場合は空のHashMapを返し、1件以上存在する場合は最初のデータMapを返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEKK0891A010SCOutMsg（resultMsgs）"] --> S1["Step1: resultMsgs[0] からCAANMsg msgを抽出"]
  S1 --> S2["Step2: msg.getMsgData（）.get（EKK0891A010CBSMsg.EKK0891A010CBSMSG1LIST） でCAANMsg[] msgListを取得"]
  S2 --> IF1{"'msgList == null || msgList.length == 0'"}
  IF1 -.- NOTE1["EKK0891A010CBSMSG1LIST = 'EKK0891A010CBSMSG1LIST' （提供方式契約一意照会明細リスト）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5

  IF1 -->|"Yes: 空リスト"| S3["Step3: retHash = new HashMap<String, Object>（）（空のHashMapを返す）"]
  IF1 -->|"No: 1件以上"| S4["Step4: retHash = msgList[0].getMsgData（）（最初のデータ内容を返す）"]
  S3 --> RET["return retHash"]
  S4 --> RET
```

**処理ステップ詳細:**

1. SCレスポンスresultMsgs配列の先頭要素からCAANMsgを取得。
2. msg.getMsgData().get(EKK0891A010CBSMsg.EKK0891A010CBSMSG1LIST) で明細リストを取得。
3. msgListがnullまたは要素数0の場合は空のHashMapを返す。
4. 1件以上あればmsgList[0].getMsgData()で最初のデータMapを返す。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                    | 業務説明                                                       |
| --- | ----------------- | --------------------- | -------------------------------------------------------------- |
| 1   | resultMsgs        | CAANMsg[]             | SC（EKK0891A010）からのレスポンスメッセージ配列                |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0891A010SCOutMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK0891A010_SC` | private | 提供方式契約一意照会を呼び出す。 |

---

#### 📋 Per-Branch 詳細ブロック — `mappingEKK0891A010SCOutMsg()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null == msgList || 0 == msgList.length)` (L41171)

> 📌 結果の取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = new HashMap<String, Object>();` |

##### Block 2 — ↪️ ELSE `(else)` (L41176)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = msgList[0].getMsgData();` |

> **合計**: 2 blocks (1 depth levels)

### mappingCommonOutMsgAll()

---

#### 1. 役割

サービスコンポーネントから返却される全ての戻り値リストを業務用のArrayList<HashMap<String,Object>>形式にマッピングする共通メソッドです。CAANMsg配列の先頭要素から指定されたmapKeyに紐づくCAANMsg[]リストを取得し、各要素のデータMapを抽出してリスト化します。msgListがnullの場合は空リストを返します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingCommonOutMsgAll（mapKey, resultMsgs）"] --> S1["Step1: resultMsgs[0]からCAANMsg msgを抽出"]
  S1 --> S2["Step2: msg.getMsgData（）.get（mapKey） でCAANMsg[] msgListを取得"]
  S2 --> IF1{"'msgList != null'"}
  IF1 -->|"Yes: リスト有"| FOR1["Step3: for-each CAANMsg one in msgList"]
  FOR1 --> S3["Step4: one.getMsgData（）でchildMap取得し、childMapがnullでなければretListに追加"]
  FOR1 --> RET["return retList"]
  IF1 -->|"No: null"| S4["Step5: 空リストretListを返す"]
  S4 --> RET
```

**処理ステップ詳細:**

1. resultMsgs配列の先頭要素（CAANMsg）からmsgを取得。
2. msg.getMsgData().get(mapKey) でCAANMsg[]型のmsgListを取得。
3. msgListがnullでなければ、for-eachループで全要素を走査し、one.getMsgData() でchildMapを抽出。nullでなければretListに追加。
4. retList（ArrayList<HashMap<String,Object>>）を返却。msgListがnullの場合は空リストとして返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                     | 業務説明                                          |
| --- | ----------------- | ---------------------- | ------------------------------------------------- |
| 1   | mapKey            | String                 | 取得対象CAANMsgリストのキー名                     |
| 2   | resultMsgs        | CAANMsg[]              | SCからのレスポンスメッセージ配列                  |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgAll` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK2101B001SC` | private | 住所変更明細一覧照会 |
| 2 | `callEKU0081B010SC` | private | サービス契約＿工事案件一覧照会 |

---

#### 📋 Per-Branch 詳細ブロック — `mappingCommonOutMsgAll()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null != msgList)` (L38633)

> 📌 結果の取得

> （直接の処理内容なし — ネストされた子ブロックを参照）

###### ·· Block ?.1 — 🔀 IF `(childMap != null)` (L38638)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retList.add(childMap);` |

> **合計**: 2 blocks (3 depth levels)

### mappingCommonOutMsgFirst()

---

#### 1. 役割

サービスコンポーネントから返却される戻り値リストのうち、最初の1件のみをHashMapとして業務データにマッピングする共通メソッドです。CAANMsg配列の先頭要素から指定されたmapKeyに紐づくCAANMsg[]リストを取得し、リストがnullまたは空の場合は空のHashMapを返却、1件以上存在する場合は最初のデータMapを返却します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingCommonOutMsgFirst（mapKey, resultMsgs）"] --> S1["Step1: resultMsgs[0]からCAANMsg msgを抽出"]
  S1 --> S2["Step2: msg.getMsgData（）.get（mapKey）でCAANMsg[] msgListを取得"]
  S2 --> IF1{"'msgList == null || msgList.length == 0'"}
  IF1 -->|"Yes: 空リスト"| S3["Step3: retHash = new HashMap<String, Object>（）（空のHashMapを返す）"]
  IF1 -->|"No: 1件以上"| S4["Step4: retHash = msgList[0].getMsgData（）（最初のデータ内容を返す）"]
  S3 --> RET["return retHash"]
  S4 --> RET
```

**処理ステップ詳細:**

1. resultMsgs配列の先頭要素（CAANMsg）からmsgを取得。
2. msg.getMsgData().get(mapKey) でCAANMsg[]型のmsgListを取得。
3. msgListがnullまたは空の場合はretHashを空のHashMapで初期化。
4. 1件以上の場合はmsgList[0].getMsgData()で最初のデータMapを返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                     | 業務説明                                          |
| --- | ----------------- | ---------------------- | ------------------------------------------------- |
| 1   | mapKey            | String                 | 取得対象CAANMsgリストのキー名                     |
| 2   | resultMsgs        | CAANMsg[]              | SCからのレスポンスメッセージ配列                  |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingCommonOutMsgFirst` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK2091A010SC` | private | 住所変更一意照会を呼び出す |
| 2 | `callEKK2101B002SC` | private | 住所変更明細一覧照会（変更前識別番号）の取得 |
| 3 | `callEKU0011A010SC` | private | 工事案件一意照会 |

---

#### 📋 Per-Branch 詳細ブロック — `mappingCommonOutMsgFirst()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null == msgList || 0 == msgList.length)` (L38606)

> 📌 結果の取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = new HashMap<String, Object>();` |

##### Block 2 — ↪️ ELSE `(else)` (L38611)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `retHash = msgList[0].getMsgData();` |

> **合計**: 2 blocks (1 depth levels)

### mappingEKK1081E010SCInMsg()

---

#### 1. 役割

EKK1081E010（オーダ発行条件論理削除S-IF）サービスコンポーネントに入力するためのCAANMsgリクエストメッセージを生成するメソッドです。EKK1081E010のテンプレートID、機能コード、オーダ発行条件番号、更新前の更新日時を正確にセットしたCAANMsgを返します。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEKK1081E010SCInMsg（funcCode, odrHakkoJokenNo, updDtmBf）"] --> S1["Step1: CAANMsg template = new CAANMsg（EKK1081E010CBSMsg.class.getName（））"]
  S1 --> S2["Step2: テンプレートID（SIFのID）をセット EKK1081E010CBSMsg.TEMPLATEID = 'EKK1081E010'"]
  S2 -.- NOTE1["TEMPLATEID = 'EKK1081E010' （オーダ発行条件論理削除S-IF）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S2 --> S3["Step3: 機能コードをセット EKK1081E010CBSMsg.FUNC_CODE = funcCode"]
  S3 -.- NOTE2["FUNC_CODE = 'func_code' （機能コード）"]
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S3 --> S4["Step4: オーダ発行条件番号をセット EKK1081E010CBSMsg.ODR_HAKKO_JOKEN_NO = odrHakkoJokenNo"]
  S4 -.- NOTE3["ODR_HAKKO_JOKEN_NO = 'odr_hakko_joken_no' （オーダ発行条件番号）"]
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S4 --> S5["Step5: 更新年月日時分秒（更新前）をセット EKK1081E010CBSMsg.UPD_DTM_BF = updDtmBf"]
  S5 -.- NOTE4["UPD_DTM_BF = 'upd_dtm_bf' （更新年月日時分秒（更新前））"]
  style NOTE4 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S5 --> S6["Step6: templateを返却"]
```

**処理ステップ詳細:**

1. CAANMsgテンプレートをEKK1081E010CBSMsg.class.getName()でインスタンス化。
2. テンプレートID（EKK1081E010CBSMsg.TEMPLATEID）に "EKK1081E010" をセット。
3. 機能コード（EKK1081E010CBSMsg.FUNC_CODE）にfuncCodeをセット。
4. オーダ発行条件番号（EKK1081E010CBSMsg.ODR_HAKKO_JOKEN_NO）にodrHakkoJokenNoをセット。
5. 更新前の更新日時（EKK1081E010CBSMsg.UPD_DTM_BF）にupdDtmBfをセット。
6. 完成したtemplateを返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型        | 業務説明                                   |
| --- | ----------------- | --------- | ------------------------------------------ |
| 1   | funcCode          | String    | 機能コード                                 |
| 2   | odrHakkoJokenNo   | String    | オーダ発行条件番号                         |
| 3   | updDtmBf          | String    | 更新年月日時分秒（更新前）                 |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK1081E010SCInMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK1081E010SC` | private | EKK1081E010 オーダ発行条件論理削除S-IFを実行します。 <br> |
### mappingEKK0251B003SCInMsg()

---

#### 1. 役割

EKK0251B003（サービス契約回線内訳一覧照会（現在利用中））サービスコンポーネントへの入力メッセージ（CAANMsg）を構築する業務マッピングメソッドです。全条件フィールドのNull初期化を行い、テンプレートID・機能コード・サービス契約番号をセットします。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["mappingEKK0251B003SCInMsg（template, inHash, funcCode）"] --> S1["Step1: 全条件のNullマッピング （fillCAANMSGNullMapping）"]
  S1 --> S2["Step2: テンプレートID（SIFのID）をセット EKK0251B001CBSMsg.TEMPLATEID = 'EKK0251B003'"]
  S2 -.- NOTE1["TEMPLATE_ID_EKK0251B003 = 'EKK0251B003' （サービス契約回線内訳一覧照会（現在利用中））"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S2 --> S3["Step3: 機能コードをセット EKK0251B001CBSMsg.FUNC_CODE = funcCode"]
  S3 -.- NOTE2["FUNC_CODE = 'func_code' （機能コード）"]
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  S3 --> S4["Step4: サービス契約番号をセット EKK0251B001CBSMsg.KEY_SVC_KEI_NO = inHash.get（SVC_KEI_NO）"]
  S4 -.- NOTE3["SVC_KEI_NO = 'svc_kei_no' （サービス契約番号）"]
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. template（CAANMsg）に対して全てのフィールドをNullで初期化（fillCAANMSGNullMapping）。
2. テンプレートID（EKK0251B001CBSMsg.TEMPLATEID）に "EKK0251B003" をセット。
3. 機能コード（EKK0251B001CBSMsg.FUNC_CODE）にfuncCodeをセット。
4. サービス契約番号（EKK0251B001CBSMsg.KEY_SVC_KEI_NO）にinHashからSVC_KEI_NOキーで取得した値をセット。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                                      |
| --- | ------------ | --------------------- | --------------------------------------------- |
| 1   | template     | CAANMsg               | SC入力用テンプレート（書き込み対象）          |
| 2   | inHash       | HashMap<String,Object>| 入力パラメータ（サービス契約番号等を格納）    |
| 3   | funcCode     | String                | 機能コード                                    |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → mappingEKK0251B003SCInMsg` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK0251B003SC` | private | EKK0251B003_サービス契約回線内訳一覧照会（現在利用中）SIFを呼び出し |
| 2 | `callEKK0251B003SCCAAMsg` | private | サービス契約回線内訳（現在利用中）SIFを呼び出し |
---

---

## 📋 全分岐詳細 (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)

### `mappingCommonOutMsgAll()` (L38622) — 4 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null != msgList) | 結果の取得 | - | - | L38633 |
| 2 | · 🔁 FOR | D1 | one | - | - | - | L38635 |
| 3 | ·· 🔀 IF | D2 | (childMap != null) | - | - | - | L38638 |
| 4 | ↩️ RETURN | D0 | retList | - | - | - | L38645 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["mappingCommonOutMsgAll()"] --> CF0{"制御フロー分岐"}
  subgraph SG0["IF: （null != msgList）"]
    direction TB
    C0_0["FOR: one"]
  end
  CF0 -->|"L38633"| SG0
  B1["RETURN: retList"]
  CF0 -->|"L38645"| B1
```

### `mappingCommonOutMsgFirst()` (L38595) — 3 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null == msgList ｜｜ 0 == msgList.length) | 結果の取得 | - | - | L38606 |
| 2 | 🔀 ELSE | D0 | (else) | - | - | - | L38611 |
| 3 | ↩️ RETURN | D0 | retHash | - | - | - | L38614 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["mappingCommonOutMsgFirst()"] --> CF0{"制御フロー分岐"}
  B0["IF: （null == msgList || 0 == msgList.length）"]
  CF0 -->|"L38606"| B0
  B1["ELSE"]
  CF0 -->|"L38611"| B1
  B2["RETURN: retHash"]
  CF0 -->|"L38614"| B2
```

### `mappingEKK0881A010SCOutMsg()` (L41675) — 3 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null == msgList ｜｜ 0 == msgList.length) | 結果の取得 | - | - | L41689 |
| 2 | 🔀 ELSE | D0 | (else) | - | - | - | L41694 |
| 3 | ↩️ RETURN | D0 | retHash | - | - | - | L41697 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["mappingEKK0881A010SCOutMsg()"] --> CF0{"制御フロー分岐"}
  B0["IF: （null == msgList || 0 == msgList.length）"]
  CF0 -->|"L41689"| B0
  B1["ELSE"]
  CF0 -->|"L41694"| B1
  B2["RETURN: retHash"]
  CF0 -->|"L41697"| B2
```

### `mappingEKK0891A010SCOutMsg()` (L41157) — 3 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null == msgList ｜｜ 0 == msgList.length) | 結果の取得 | - | - | L41171 |
| 2 | 🔀 ELSE | D0 | (else) | - | - | - | L41176 |
| 3 | ↩️ RETURN | D0 | retHash | - | - | - | L41179 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["mappingEKK0891A010SCOutMsg()"] --> CF0{"制御フロー分岐"}
  B0["IF: （null == msgList || 0 == msgList.length）"]
  CF0 -->|"L41171"| B0
  B1["ELSE"]
  CF0 -->|"L41176"| B1
  B2["RETURN: retHash"]
  CF0 -->|"L41179"| B2
```

### `mappingEZM0121A010SCOutMsg()` (L42284) — 3 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null == msgList ｜｜ 0 == msgList.length) | 結果の取得 | - | - | L42298 |
| 2 | 🔀 ELSE | D0 | (else) | - | - | - | L42303 |
| 3 | ↩️ RETURN | D0 | retHash | - | - | - | L42306 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["mappingEZM0121A010SCOutMsg()"] --> CF0{"制御フロー分岐"}
  B0["IF: （null == msgList || 0 == msgList.length）"]
  CF0 -->|"L42298"| B0
  B1["ELSE"]
  CF0 -->|"L42303"| B1
  B2["RETURN: retHash"]
  CF0 -->|"L42306"| B2
```

> **制御フロー合計**: 5 methods, 16 branches
