# ⑥ 業務ロジック — Service Call (SC): 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-callEKK0161B011SC"></a>
### callEKK0161B011SC()

---

#### 1. 役割

サービス契約内訳履歴一覧照会SIFを呼び出す。具体的には、パラメータからサービス契約内訳番号を受け取り、テンプレートを生成し、呼出パラメータをマッピング・共通部を設定した後、SC（ServiceComponentRequestInvoker）を用いてEKK0161B011照会を実行する。結果のCAANMsg配列を取得し、正常終了（status == 0）の場合はresultHashにEKK0161B011の出力マッピング結果を格納して返却する。  
本メソッドは、同クラス内の他メソッドから共通的に呼び出されるSC呼出ユーティリティである。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0161B011SC（param, handle, inHash, resultHash, svcKeiUcwkNo）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK0161B011CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingEKK0161B011SCInMsg（template, svcKeiUcwkNo）で照会条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）で結果取得"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）でステータス取得"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_EKK0161B011, mappingEKK0161B011SCOutMsg（resultMsgs））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. `editInMsgCmn(param)` を呼び出してサービスIF共通情報（ユーザ情報など）を設定。
2. `new CAANMsg(EKK0161B011CBSMsg.class.getName())` でSCテンプレートを生成。
3. `mappingEKK0161B011SCInMsg(template, svcKeiUcwkNo)` でサービス契約内訳番号をマッピングする。
4. `editBasicCmn(param, template)` で共通部（ヘッダー情報等）を設定。
5. `sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template})` でリクエスト用のクラスにテンプレートをセット。
6. `ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker()` でSC呼び出しクラスを生成。
7. `scCall.run(sIFRequest, handle)` でサービスインターフェース（SIF）を呼び出す。
8. `sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY)` で結果のCAANMsg配列を取得。
9. `template.getInt(JCMConstants.STATUS_INT_KEY)` でステータスコードを取得。
10. ステータスコードが0（正常終了）の場合のみ、`mappingEKK0161B011SCOutMsg(resultMsgs)` で出力マッピングし、`resultHash` に `JKKHakkoSODConstCC.TEMPLATE_ID_EKK0161B011` をキーとして格納。
11. ステータスが0以外の場合は何もせず、statusをreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ（未使用）                      |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | svcKeiUcwkNo      | 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 → callEKK0161B011SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B011SC` | - |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK0161B011SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L35812)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(JKKHakkoSODConstCC.TEMPLATE_ID_EKK0161B011, mappingEKK0161B011SCOutMsg(resultMsgs));` [➔ TEMPLATE_ID_EKK0161B011="EKK0161B011"] \| |

> **合計**: 1 blocks (1 depth levels)

### callEKK0161B008SC()

---

#### 1. 役割

番ポ申込種別照会SIFを呼び出す。具体的には、入力パラメータから照会条件をテンプレートにマッピングし、共通部設定後にSC（ServiceComponentRequestInvoker）を用いてEKK0161B008照会を実行する。取得したCAANMsg配列より、正常終了（status == 0）の場合のみresultHashにEKK0161B008の出力マッピング結果を格納して返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0161B008SC（param, handle, inHash, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK0161B008CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingEKK0161B008SCInMsg（template, inHash, funcCode）で照会条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）で結果取得"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）でステータス取得"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_EKK0161B008, mappingEKK0161B008SCOutMsg（resultMsgs））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報を `editInMsgCmn(param)` で設定。
2. `new CAANMsg(EKK0161B008CBSMsg.class.getName())` でテンプレート生成。
3. `mappingEKK0161B008SCInMsg()` でinHash, funcCodeをもとにテンプレートへ照会条件をセット。
4. `editBasicCmn(param, template)` で共通部設定。
5. リクエスト用クラスへテンプレートをセット。
6. SC呼び出しクラス生成。
7. `scCall.run(sIFRequest, handle)` でSIF呼び出し。
8. 結果を取得。
9. ステータスコード取得。
10. ステータス0なら `mappingEKK0161B008SCOutMsg(resultMsgs)` 結果をresultHashに格納。
11. ステータス0以外は何もせずreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ                                |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callEKK0161B008SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0161B008SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `bmpSwitchOdrCtrl` | private | 番ポ切り替えオーダ制御処理<br> |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK0161B008SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L34530)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(` |
| 2 | ⚡ EXEC | `mappingEKK0161B008SCOutMsg(resultMsgs));` |

> **合計**: 1 blocks (1 depth levels)

### callEKK0191B502SC()

---

#### 1. 役割

移転元サービス契約内訳＜ｅｏ光電話＞一覧照会SIFを呼び出す。  
具体的には、入力パラメータから移転元サービス契約内訳番号をテンプレートにマッピングし、共通部設定後、SC(ServiceComponentRequestInvoker)でEKK0191B502照会を実行する。結果CAANMsg配列を取得し、正常終了（status == 0）の場合、resultHashにEKK0191B502の明細リストを格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0191B502SC（param, handle, svc_kei_ucwk_no, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK0191B502CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: template.set（TEMPLATEID, TEMPLATE_ID_EKK0191B502）"]
  S3 --> S4["Step4: template.set（FUNC_CODE, funcCode）"]
  S4 --> S5["Step5: template.set（KEY_ITENS_SVKEIUW_NO, svc_kei_ucwk_no）"]
  S5 --> S6["Step6: editBasicCmn（param, template）で共通部設定"]
  S6 --> S7["Step7: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S7 --> S8["Step8: sIFResult = ServiceComponentRequestInvoker（）.run（sIFRequest, handle）"]
  S8 --> S9["Step9: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）"]
  S9 --> S10["Step10: status = template.getInt（JCMConstants.STATUS_INT_KEY）"]
  S10 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S11["Step11: msgList = resultMsgs[0].getMsgData（）.get（EKK0191B502CBSMsg.EKK0191B502CBSMSG1LIST）"]
  S11 --> S12["Step12: resultHash.put（TEMPLATE_ID_EKK0191B502, msgList）"]
  IF1 -->|"No: 異常終了"| S13["Step13: 何もしない"]
  S12 --> RET["return status"]
  S13 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報設定（`editInMsgCmn(param)`）。
2. テンプレート生成（`CAANMsg(EKK0191B502CBSMsg.class.getName())`）。
3. テンプレートID設定（`TEMPLATE_ID_EKK0191B502 = "EKK0191B502"`）。
4. 機能コード設定。
5. 移転元サービス契約内訳番号をセット。
6. 共通部設定。
7. リクエストクラス設定。
8. SC呼び出しクラス実行して結果取得。
9. ステータスコード取得。
10. ステータス0（正常）の場合のみ、明細リストをresultHashに格納。
11. 結果返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | svc_kei_ucwk_no   | String                     | 移転元サービス契約内訳番号                    |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callEKK0191B502SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0191B502SC` | - |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK0191B502SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L34848)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📥 GET | `(CAANMsg[])resultMsgs[0].getMsgData().get(EKK0191B502CBSMsg.EKK0191B502CBSMSG1LIST);` |

> **合計**: 1 blocks (1 depth levels)

### callEKK0791A010SC()

---

#### 1. 役割

料金コース一意照会SIFを呼び出す。  
具体的には、料金コースコード(pcrsCd)と予約適用年月日(rsvAplyYmd)をもとにテンプレートを生成し、共通部を設定した後、サービスIF呼び出しを実行し、結果をeditResultRP_EKK0791A010SCで編集して返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0791A010SC（param, handle, pcrsCd, rsvAplyYmd）"] --> S1["Step1: mappingEKK0791A010SCInMsg（pcrsCd, rsvAplyYmd）でテンプレート生成"]
  S1 --> S2["Step2: editBasicCmn（param, template）で共通部設定"]
  S2 --> S3["Step3: editInMsgCmn（param）でサービスIF共通情報設定"]
  S3 --> S4["Step4: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S4 --> S5["Step5: sIFResult = ServiceComponentRequestInvoker（）.run（sIFRequest, handle）"]
  S5 --> S6["Step6: editResultRP_EKK0791A010SC（sIFResult, param）で結果編集"]
  S6 --> RET["return ..."]
```

**処理ステップ詳細:**
1. `mappingEKK0791A010SCInMsg(pcrsCd, rsvAplyYmd)` で呼出パラメータをテンプレートにマッピング。
2. `editBasicCmn(param, template)` で共通部設定。
3. `editInMsgCmn(param)` でサービスIF共通情報設定。
4. リクエストクラスにテンプレートをセット。
5. サービスIF呼び出し実行。
6. `editResultRP_EKK0791A010SC(sIFResult, param)` で結果編集し返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | 業務パラメータ                                |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | pcrsCd            | String                     | 料金コースコード                              |
| 4   | rsvAplyYmd        | 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 → callEKK0791A010SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0791A010SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getKktkSvcKeiList` | private | 機器提供サービス契約一覧照会（サービス契約番号）<br> <br> 機器提供サービス契約一覧照会（サービス契約番号）サービスインターフェイスにより<br> サービス契約番号に紐づく機器提供サービス契約の一覧を取得します。<br> <br> |
### callEKK0251B001SC()

---

#### 1. 役割

サービス契約回線内訳一覧照会（サービス契約番号）SIFを呼び出す。  
具体的には、入力パラメータから照会条件をテンプレートにマッピングし、共通部設定後にSC(ServiceComponentRequestInvoker)を使ってEKK0251B001照会を実行する。CAANMsg配列結果を取得し、正常終了（status == 0）の場合のみresultHashにEKK0251B001の出力マッピング結果を格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0251B001SC（param, handle, inHash, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK0251B001CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingEKK0251B001SCInMsg（template, inHash, funcCode）で照会条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_EKK0251B001, mappingEKK0251B001SCOutMsg（resultMsgs））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報設定。
2. CAANMsg(EKK0251B001CBSMsg.class.getName())でテンプレート生成。
3. mappingEKK0251B001SCInMsg()でinHash, funcCodeからテンプレートに照会条件をセット。
4. 共通部設定。
5. リクエストクラスにテンプレートをセット。
6. SC呼び出しクラス生成。
7. SIF呼び出し。
8. 結果取得。
9. ステータス取得。
10. ステータス0なら `mappingEKK0251B001SCOutMsg(resultMsgs)` 結果をresultHashに格納。
11. ステータス0以外はreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ                                |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callEKK0251B001SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0251B001SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getEKK0251B001SC` | private | サービス契約回線内訳一覧照会（サービス契約番号）取得処理<br> |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK0251B001SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L32890)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(` |
| 2 | ⚡ EXEC | `mappingEKK0251B001SCOutMsg(resultMsgs));` |

> **合計**: 1 blocks (1 depth levels)

### callEKK1681B001SC()

---

#### 1. 役割

異動予約一覧照会SIFを呼び出す。  
具体的には、入力パラメータから照会条件をテンプレートにマッピングし、共通部設定後にSC(ServiceComponentRequestInvoker)を使ってEKK1681B001照会を実行する。CAANMsg配列結果を取得し、正常終了（status == 0）の場合のみresultHashにEKK1681B001の出力マッピング結果（mappingListingSvcCompoOutMsg）を格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK1681B001SC（param, handle, inHash, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK1681B001CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingEKK1681B001SCInMsg（template, inHash, funcCode）で照会条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_EKK1681B001, mappingListingSvcCompoOutMsg（resultMsgs, EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報設定。
2. CAANMsg(EKK1681B001CBSMsg.class.getName())でテンプレート生成。
3. mappingEKK1681B001SCInMsg()でinHash, funcCodeからテンプレートに照会条件をセット。
4. 共通部設定。
5. リクエストクラスにテンプレートをセット。
6. SC呼び出しクラス生成。
7. SIF呼び出し。
8. 結果取得。
9. ステータス取得。
10. ステータス0なら mappingListingSvcCompoOutMsg(resultMsgs, EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST) をresultHashに格納。
11. ステータス0以外はreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ                                |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callEKK1681B001SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK1681B001SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getIdoRsvCourseChg` | private | 異動予約(コース変更)を取得します。 <br> 異動区分が「コース変更」「住所変更・登録」の異動予約のみを取得します。 <br> |
| 2 | `isStartRsvOption` | package-private | オプション開始予約中のオプションかを確認する |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK1681B001SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L32495)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(` |
| 2 | ⚡ EXEC | `mappingListingSvcCompoOutMsg(resultMsgs, EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST));` |

> **合計**: 1 blocks (1 depth levels)

### callSvcInter()

---

#### 1. 役割

サービスインターフェース呼び出し処理です。  
具体的には、ServiceComponentRequestInvokerで与えられたsiInMap（サービスIF入力マップ）をhandleとともに実行し、業務データを取得する。結果マップに対してeditResultRPでレスポンス編集、errChkでエラーチェックを実行し、getWorkCAANMsgで業務データ（CAANMsg）を取り出して返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callSvcInter（handle, param, siInMap, contents）"] --> S1["Step1: ServiceComponentRequestInvoker生成"]
  S1 --> S2["Step2: scCall.run（siInMap, handle）でサービスインターフェース呼出"]
  S2 --> S3["Step3: editResultRP（rsltMap, param, contents）で結果マッピング"]
  S3 --> S4["Step4: errChk（rsltMap）でエラーチェック"]
  S4 --> S5["Step5: getWorkCAANMsg（rsltMap）で業務データ取得"]
  S5 --> RET["return workData"]
```

**処理ステップ詳細:**
1. ServiceComponentRequestInvokerインスタンス生成。
2. scCall.run(siInMap, handle)でサービスインターフェース呼出し、rsltMapを取得。
3. editResultRP(rsltMap, param, contents)でレスポンス編集。
4. errChk(rsltMap)でエラーチェック処理。
5. getWorkCAANMsg(rsltMap)で業務データ（CAANMsg）取得し返却。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 2   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 3   | siInMap           | HashMap<String, Object>    | サービスIF入力データ                          |
| 4   | contents          | Object[][]                 | 各種マッピング用配列                          |

---

#### 4. CRUD操作 / 呼出サービス

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

| # | 呼出元 (Screen/Batch) | 呼出チェーン (Full Path → 本メソッド) | 終端 (SC → CRUD → エンティティ) |
|---|---|---|---|
| 1 | `Screen:KKSV0004` | `KKSV0004OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callSvcInter` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEDK0301B060SC` | private | EDK0301B060_返品機器取消一覧照会処理 <br> 返品機器取消一覧照会サービスインターフェースを呼び出します。 <br> |
| 2 | `callEKK0341B001SC` | private | EKK0341B001_機器提供サービス契約一覧照会（機器製造番号）処理 <br> 機器提供サービス契約一覧照会サービスインターフェースを呼び出します。 <br> |
| 3 | `callEKK0341B008SCRireki` | protected | EKK0341B008_機器提供サービス契約一覧照会(履歴照会)処理 <br> 機器提供サービス契約一覧照会サービスインターフェースを呼び出します。 <br> |
| 4 | `callEKK0341B021SC` | private | EKK0341B021_機器提供サービス契約一覧照会（予約）処理 <br> 機器提供サービス契約一覧照会（予約）サービスインターフェースを呼び出します。 <br> |
| 5 | `callEKK0341B029SC` | private | EKK0341B029_機器提供サービス契約一覧照会（機器変更番号）処理 <br> 機器提供サービス契約一覧照会（機器変更番号）サービスインターフェースを呼び出します。 <br> |
### callETU0011B010SC()

---

#### 1. 役割

番ポ工事一覧照会SIFを呼び出す。  
具体的には、入力パラメータから照会条件をテンプレートにマッピングし、共通部設定後、SC(ServiceComponentRequestInvoker)でETU0011B010照会を実行する。CAANMsg配列結果を取得し、正常終了（status == 0）の場合のみresultHashにETU0011B010の出力マッピング結果を格納する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callETU0011B010SC（param, handle, inHash, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（ETU0011B010CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingETU0011B010SCInMsg（template, inHash, funcCode）で照会条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_ETU0011B010, mappingETU0011B010SCOutMsg（resultMsgs））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報設定。
2. CAANMsg(ETU0011B010CBSMsg.class.getName())でテンプレート生成。
3. mappingETU0011B010SCInMsg()でinHash, funcCodeからテンプレートに照会条件をセット。
4. 共通部設定。
5. リクエストクラスにテンプレートをセット。
6. SC呼び出しクラス生成。
7. SIF呼び出し。
8. 結果取得。
9. ステータス取得。
10. ステータス0なら mappingETU0011B010SCOutMsg(resultMsgs) をresultHashに格納。
11. ステータス0以外はreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ                                |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callETU0011B010SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callETU0011B010SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `isBmpOpenZumi` | private | 番ポ開通済かを判定します。<BR> ＜前提条件＞<BR> ・番ポ有の場合に呼び出すこと。 |
| 2 | `isBmpOpenZumiDslNoDslNoChg` | private | 番ポ開通済かを判定します。(解約、光電話・番号解約、光電話・番号変更)<BR> ＜前提条件＞<BR> ・番ポ有、かつ、異動区分が解約、光電話・番号解約、光電話・番号変更の場合に呼び出すこと。 ＜処理概要＞ 当処理では＜前提条件＞の場合に、番… |

---

#### 📋 Per-Branch 詳細ブロック — `callETU0011B010SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L30756)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(` |
| 2 | ⚡ EXEC | `mappingETU0011B010SCOutMsg(resultMsgs));` |

> **合計**: 1 blocks (1 depth levels)

### callEKK1041B001SC()

---

#### 1. 役割

オーダ設定一覧照会を実行します。  
具体的には、入力パラメータ（orderSbtCd, svcOrderCd, yokyuSbtCd, svc_kei_no, taknkikiModelCd, kikiSeizoNo）からテンプレートを生成し、共通部を設定。ServiceComponentRequestInvokerでSCを呼び出し、結果をeditResultRP_EKK1041B001SCでマッピングし、WORK領域に保存して返却する。050ナンバープラス用の番号置換・登録オーダ制御などで利用される。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK1041B001SC（param, handle, orderSbtCd, svcOrderCd, yokyuSbtCd, svc_kei_no, taknkikiModelCd, kikiSeizoNo）"] --> S1["Step1: mappingEKK1041B001SCInMsg（orderSbtCd, svcOrderCd, yokyuSbtCd, svc_kei_no, taknkikiModelCd, kikiSeizoNo）でテンプレート生成"]
  S1 --> S2["Step2: editBasicCmn（param, template）で共通部設定"]
  S2 --> S3["Step3: editInMsgCmn（param）でサービスIF共通情報設定"]
  S3 --> S4["Step4: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S4 --> S5["Step5: ServiceComponentRequestInvoker（）.run（sIFRequest, handle）でSIF呼び出し"]
  S5 --> S6["Step6: editResultRP_EKK1041B001SC（sIFResult, param）で結果リストを取得"]
  S6 --> S7["Step7: workAreaMapにWORKマップがなければ作成"]
  S7 --> S8["Step8: workMapに{クラス名_リスト名, retList}で結果リスト保存"]
  S8 --> RET["return retList"]
```

**処理ステップ詳細:**
1. 全パラメータからテンプレート生成（mappingEKK1041B001SCInMsg）。
2. 共通部設定（editBasicCmn）。
3. サービスIF共通情報設定。
4. テンプレートをリクエストクラスにセット。
5. SC呼び出し実行。
6. 結果リスト編集（editResultRP_EKK1041B001SC）。
7. WORKエリアがなければ作成。
8. クラス名+リスト名をキーにWORKマップへ結果保存。
9. 結果リスト返却。

---

#### 3. パラメータ分析

| No  | パラメータ名        | 型                         | 業務説明                                      |
| --- | ------------------- | -------------------------- | --------------------------------------------- |
| 1   | param               | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle              | SessionHandle              | セッション管理ハンドル                        |
| 3   | orderSbtCd          | String                     | オーダ種別コード                              |
| 4   | svcOrderCd          | String                     | サービスオーダコード                          |
| 5   | yokyuSbtCd          | String                     | 要求種別コード                                |
| 6   | svc_kei_no          | String                     | サービス契約番号                              |
| 7   | taknkikiModelCd     | String                     | 宅内機器型式コード                            |
| 8   | kikiSeizoNo         | 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 → callEKK1041B001SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK1041B001SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `checkTakinoRT` | protected | 多機能ルーター情報ルータ機能有無チェック<br> <br> サービス契約番号に紐付いている多機能ルータのルータ機能設定有無 <br> <br> |
| 2 | `chkOdrSette` | private | ルーターオプション変更オーダ出力判定処理<br> |
| 3 | `dslOdrCtrl` | private | 解約オーダ制御処理<br> |
| 4 | `findMobileStartOrderAtKK1041` | private | モバイルの課金開始オーダがオーダ受付済かどうかを返します。 <br> |
| 5 | `findOlsOrderAtKK1041` | private | OLS設定のオーダ(消去を除く)がオーダ受付済かどうかを返します。<br> |
| 6 | `findRadiusHasBeenSentSvc` | public | eo光電話のRadiusオーダが発行済みか否かを見つけます。（サービス単位）<br> <br> |
| 7 | `findZ1OrderAtKK1041` | private | Z1オーダにかかるＳＯＤ４種がオーダ受付済か否かを照会します <pre> チェック対象ＳＯＤ： 「電話サービスオーダコード／オーダ内容コード」 20ＯＬＳ　　207ＯＬＳ設定・登録 21ＳＩＰ　　218ＳＩＰ・登録 23Radius　　20… |
| 8 | `findZ1OrderAtKK1041SvcKeiUcwk` | protected | Z1オーダにかかるＳＯＤ４種がオーダ受付済か否かを照会します。（サービス契約内訳単位）<br> <pre> チェック対象ＳＯＤ： 「電話サービスオーダコード／オーダ内容コード」 20ＯＬＳ　　207ＯＬＳ設定・登録 21ＳＩＰ　　218ＳＩ… |
| 9 | `findZ5OrderAtKK1041` | private | Z5オーダにかかるＳＯＤ２種がオーダ受付済か否かを照会します <pre> チェック対象ＳＯＤ： 「電話サービスオーダコード／オーダ内容コード」 01CUI 　　306 WiMAX CUI・登録 02DEV 　　307 WiMAX DEV・登… |
| 10 | `htelNoDslOdrCtrl` | private | 光電話番号解約オーダ制御処理<br> |
| 11 | `is050AddOrderHakkoZumi` | private | 番号置換・登録オーダが発行済か判定します。 |
| 12 | `isItenNoGuideTokiChu` | private | 移転番号案内のトーキ中かを判定します |
| 13 | `telNoChge` | private | 電話番号変更処理<br> |

---

#### 📋 Per-Branch 詳細ブロック — `callEKK1041B001SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(null == workAreaMap)` (L30875)

> 📌 ０５０ナンバープラス用の番号置換・登録オーダ制御で使用するため、検索結果をWORKに保存

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `workAreaMap = new HashMap<Object, Object>();` |
| 2 | ⚡ EXEC | `param.setMappingWorkArea(workAreaMap);` |

##### Block 2 — 🔀 IF `(null == workMap)` (L30880)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `workMap = new HashMap<String, Object>();` |
| 2 | 📋 SET | `workAreaMap.put("WORK", workMap);` |

> **合計**: 2 blocks (1 depth levels)

### callEKK0341B008_02SC()

---

#### 1. 役割

機器提供サービス契約一覧照会SIFを呼び出し（交換中レコード専用）。
具体的には、入力パラメータをもとにテンプレート（EKK0341B022CBSMsg）を生成し、SC共通部を設定した後、ServiceComponentRequestInvokerでSIFを呼び出す。結果CAANMsg配列を取得し、正常終了（status == 0）の場合にresultHashへEKK0341B022の出力マッピング結果を格納して返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["callEKK0341B008_02SC（param, handle, inHash, resultHash, funcCode）"] --> S1["Step1: editInMsgCmn（param）でサービスIF共通情報設定"]
  S1 --> S2["Step2: new CAANMsg（EKK0341B022CBSMsg.class.getName（））でテンプレート生成"]
  S2 --> S3["Step3: mappingEKK0341B022_02SCInMsg（template, inHash, funcCode）で条件マッピング"]
  S3 --> S4["Step4: editBasicCmn（param, template）で共通部設定"]
  S4 --> S5["Step5: sIFRequest.put（JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template}）"]
  S5 --> S6["Step6: SC呼び出しクラス生成 （ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker（））"]
  S6 --> S7["Step7: sIFResult = scCall.run（sIFRequest, handle）でSIF呼び出し"]
  S7 --> S8["Step8: resultMsgs = （CAANMsg[]）sIFResult.get（JCMConstants.TEMPLATE_LIST_KEY）"]
  S8 --> S9["Step9: status = template.getInt（JCMConstants.STATUS_INT_KEY）"]
  S9 --> IF1{"'status == 0' ?"}
  IF1 -.- NOTE1["JCMConstants.STATUS_INT_KEY （ステータスコード）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  IF1 -->|"Yes: 正常終了"| S10["Step10: resultHash.put（JKKHakkoSODConstCC.TEMPLATE_ID_EKK0341B022, mappingEKK0341B022SCOutMsg（resultMsgs））"]
  IF1 -->|"No: 異常終了"| S11["Step11: 何もしない"]
  S10 --> RET["return status"]
  S11 --> RET
```

**処理ステップ詳細:**
1. サービスIF共通情報設定。
2. CAANMsg(EKK0341B022CBSMsg.class.getName())でテンプレート生成。
3. mappingEKK0341B022_02SCInMsg()でinHash, funcCodeからテンプレートに条件をセット。
4. 共通部設定。
5. リクエストクラスにテンプレートをセット。
6. SC呼び出しクラス生成。
7. SIF呼び出し。
8. 結果取得。
9. ステータス取得。
10. ステータス0なら mappingEKK0341B022SCOutMsg(resultMsgs) をresultHashに格納。
11. ステータス0以外はreturn。

---

#### 3. パラメータ分析

| No  | パラメータ名      | 型                         | 業務説明                                      |
| --- | ----------------- | -------------------------- | --------------------------------------------- |
| 1   | param             | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ              |
| 2   | handle            | SessionHandle              | セッション管理ハンドル                        |
| 3   | inHash            | HashMap<String, Object>    | 入力パラメータ                                |
| 4   | resultHash        | HashMap<String, Object>    | 結果を格納するハッシュ                        |
| 5   | 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 → callEKK0341B008_02SC` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → callEKK0341B008_02SC` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `dslOdrCtrl` | private | 解約オーダ制御処理<br> |
| 2 | `getVAkikiInfo` | private | VA機器を取得します |
| 3 | `htelNoDslOdrCtrl` | private | 光電話番号解約オーダ制御処理<br> |
| 4 | `htelNoInfoChgeOdrCtrl` | private | 光電話番号情報変更オーダ制御処理<br> |
| 5 | `htelNoKaihkOdrCtrl` | private | 光電話番号回復オーダ制御処理<br> |
| 6 | `kaihkOdrCtrl` | private | 回復オーダ制御処理<br> |
| 7 | `opSetOdrCtrl` | private | オプション設定オーダ制御処理<br> |
| 8 | `telNoChge` | private | 電話番号変更処理<br> |
| 9 | `vLanIdChgOdrCtrl` | private | VLAN-ID変更オーダ制御処理<br> |
---
---

#### 📋 Per-Branch 詳細ブロック — `callEKK0341B008_02SC()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(status == 0)` (L29818)

> 📌 ステータスが0以外はエラーとなっている

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `resultHash.put(` |
| 2 | ⚡ EXEC | `mappingEKK0341B022SCOutMsg(resultMsgs));` |

> **合計**: 1 blocks (1 depth levels)



---

## 📋 全分岐詳細 (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)

### `callEKK1041B001SC()` (L30847) — 3 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (null == workAreaMap) | - | - | - | L30875 |
| 2 | 🔀 IF | D0 | (null == workMap) | ↑↑↑2013-11-21変更　商用OM-2013-0003403（番ポ電話のZ1処理後に０５０オプションを付けると番ポ工事未完了でも番号置換登録オーダが出る）↑↑↑ | - | - | L30880 |
| 3 | ↩️ RETURN | D0 | retList | - | - | - | L30886 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["callEKK1041B001SC()"] --> CF0{"制御フロー分岐"}
  B0["IF: （null == workAreaMap）"]
  CF0 -->|"L30875"| B0
  B1["IF: （null == workMap）"]
  CF0 -->|"L30880"| B1
  B2["RETURN: retList"]
  CF0 -->|"L30886"| B2
```

> **制御フロー合計**: 1 methods, 3 branches
