# ⑥ 業務ロジック — Edit (Transform): 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-editInMsg_EKK1081C011CBS"></a>
### editInMsg_EKK1081C011CBS()

---

#### 1. 役割

同一処理番号採番のためのSC入力メッセージを作成する業務処理。  
具体的には、電文ヘッダやユーザエリア（コントロールマップ）から、電文ID、ユースケースID、オペレーションID、サービス呼び出し区分、依頼先ホスト名、依頼元IPアドレス、依頼元画面ID、オペレータIDを取得し、SCインプット共通データとして格納する。  
さらにテンプレートID（"EKK1081C011"）、機能コード（同一処理番号採番: "1"）をセットし、共通部の編集（editBasicCmn）を行い、SC呼出用のメッセージマップを完成させて返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editInMsg_EKK1081C011CBS（param）"] --> S1["Step1: 新しいparamMapを生成"]
  S1 --> S2["Step2: 電文ヘッダから各種ID・区分をparamMapに格納"]
  S2 --> S3["Step3: コントロールマップから依頼先ホスト名・IP・画面ID・オペレータIDを格納"]
  S3 --> S4["Step4: CAANMsgインスタンス生成（テンプレートクラス指定:EKK1081C011CBSMsg）"]
  S4 --> S5["Step5: テンプレートID 'EKK1081C011' をセット"]
  S5 --> S6["Step6: 機能コード '1'（同一処理番号採番）をセット"]
  S6 --> S7["Step7: 共通部編集 editBasicCmn（param, template）"]
  S7 --> S8["Step8: テンプレートを配列templates[0]に格納"]
  S8 --> S9["Step9: paramMapにテンプレートリストとして格納"]
  S9 --> RET["return paramMap"]

  S5 -.- NOTE1["EKK1081C011 （テンプレートID）"]
  S6 -.- 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. paramMap（HashMap）を新規生成する。
2. 電文ヘッダから以下をparamMapにセットする。
   - TRANZACTION_ID_KEY（電文ID）
   - USECASE_ID_KEY（ユースケースID）
   - OPERATION_ID_KEY（オペレーションID）
   - CALL_TYPE_KEY（サービス呼び出し区分）
3. コントロールマップから以下をparamMapにセットする。
   - CLIENT_HOST_NAME_KEY（依頼先ホスト名）
   - CLIENT_IP_ADDRESS_KEY（依頼元IPアドレス）
   - INVOKE_GAMEN_ID_KEY（依頼元画面ID）
   - OPERATOR_ID_KEY（オペレータID）
4. CAANMsgインスタンス（テンプレート）をEKK1081C011CBSMsgクラス指定で生成。
5. テンプレートID "EKK1081C011" をtemplateにセット。
6. 機能コード "1"（同一処理番号採番）をtemplateにセット（JPCModelConstant.FUNC_CD_1）。
7. 共通部編集editBasicCmn(param, template)を呼び出して共通フィールドを設定。
8. templates配列の0番目にtemplateを格納。
9. paramMapにTEMPLATE_LIST_KEYでtemplates配列をセット。
10. paramMapを返却する。

---

#### 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_EKK1081C011CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK1081C011CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getSameTrnNo` | private | 同一処理番号採番処理<br> <br> 同一処理番号採番サービスインターフェイスにより<br> 同一処理番号を採番します。<br> <br> |
### editResultRP_EKK0081A010CBS()

---

#### 1. 役割

サービス契約一意照会（EKK0081A010）のSCからの戻り値（CAANMsg配列）を業務データ領域（param）に設定する業務処理。  
具体的には、SCレスポンスから各明細データ（世代登録年月日時分秒、申込明細番号、料金グループコード、料金コースコード、サービス契約ステータス等）を順に取り出してdataMapへ格納し、エラー情報が存在する場合はeditErrorInfo_EKK0081A010CBSでエラー情報をセットし、Exceptionをスローする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editResultRP_EKK0081A010CBS（msgList, param）"] --> S1["Step1: CAANMsg[] templates = msgList.get（TEMPLATE_LIST_KEY）"]
  S1 --> S2["Step2: parentTemplate = templates[0]; templateArray = parentTemplate.getMsgData（）.get（EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST）"]
  S2 --> S3["Step3: dataMap = param.getData（HAKKOSODCCWORKMAP）; 存在しなければ新規生成"]
  S3 --> S4["Step4: dataList = dataMap.get（'EKK0081A010CBSMsg1List'）; 存在しなければ新規生成"]
  S4 --> S5{"templateArray != null"}
  S5 -->|"Yes"| S6["Step5: for each childTemplate in templateArray → childMap生成"]
  S6 --> S7["Step6: childTemplateの各フィールドをchildMapにセット"]
  S7 --> S8["Step7: dataMapに' EKK0081A010CBSMsg1List'としてdataListを格納"]
  S8 --> S9["Step8: エラー情報 editErrorInfo_EKK0081A010CBSでセット"]
  S9 --> S10["Step9: エラーリスト取得 & コントロールマップに設定"]
  S10 --> S11{"errList != null && !errList.isEmpty（）"}
  S11 -->|"Yes"| S12["Step10: Exceptionスロー"]
  S11 -->|"No"| RET["return param"]
  S5 -->|"No"| S8

  S1 -.- NOTE1["TEMPLATE_LIST_KEY = 'templateList'"]
  S3 -.- NOTE2["HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. msgListからCAANMsg[] templatesを取得（TEMPLATE_LIST_KEY）。
2. templates[0]をparentTemplateとし、EKK0081A010CBSMSG1LISTからtemplateArrayを取得。
3. paramのHAKKOSODCCWORKMAP（業務データ保持領域）からdataMapを取得。なければ新規生成。
4. dataMapから'EKK0081A010CBSMsg1List'のdataListを取得。なければ新規生成。
5. templateArrayがnullでなければ、各childTemplateについて以下を実施:
    - childMapを生成
    - 各フィールド（gene_add_dtm, mskm_dtl_no, prc_grp_cd, pcrs_cd, svc_kei_stat, svc_pause_ymd, svc_pause_rls_ymd, pause_stp_cd, pplan_cd, tk_hoshiki_kei_no）をchildMapにセット
    - dataListにchildMapを格納
6. dataMapに'EKK0081A010CBSMsg1List'としてdataListをセット
7. editErrorInfo_EKK0081A010CBS(param, templates, return_code)でエラー情報を設定
8. コントロールマップからERROR_INFOを取得し、なければ新規生成
9. TemplateErrorUtil.getErrorInfoでエラー情報をセット
10. errListが空でなければException（CCException）をthrow
11. 問題なければparamを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                         | 業務説明                                              |
| --- | ------------ | -------------------------- | ----------------------------------------------------- |
| 1   | msgList      | Map<?, ?>                  | SCからの応答マップ（CAANMsg[]・リターンコード含む）   |
| 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_EKK0081A010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0081A010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getSvcKeiInfo` | protected | サービス契約一意照会処理<br> <br> サービス契約一意照会サービスインターフェイスにより<br> サービス契約情報（世代登録年月日時分秒）を取得します。<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editResultRP_EKK0081A010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(dataMap == null)` (L26164)

> 📌 業務データ設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 2 — 🔀 IF `(dataList == null)` (L26172)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList = new ArrayList();` |

##### Block 3 — 🔀 IF `(templateArray != null)` (L26177)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `CAANMsg childTemplate = templateArray[i];` |
| 2 | ⚡ EXEC | `dataList.add(new HashMap());` |
| 3 | 📦 VAR | `HashMap childMap = (HashMap)dataList.get(i);` |
| 4 | 📋 SET | `childMap.put("gene_add_dtm", "");` |
| 5 | 📋 SET | `childMap.put("gene_add_dtm", childTemplate.getString(EKK0081A010CBSMsg1List.GENE_ADD_DTM));` [➔ GENE_ADD_DTM="gene_add_dtm"] \| |
| 6 | 📋 SET | `childMap.put("mskm_dtl_no", "");` |
| 7 | 📋 SET | `childMap.put("mskm_dtl_no", childTemplate.getString(EKK0081A010CBSMsg1List.MSKM_DTL_NO));` [➔ MSKM_DTL_NO="mskm_dtl_no"] \| |
| 8 | 📋 SET | `childMap.put("prc_grp_cd", "");` |
| 9 | 📋 SET | `childMap.put("prc_grp_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PRC_GRP_CD));` [➔ PRC_GRP_CD="prc_grp_cd"] \| |

###### · Block 3.1 — 🔁 FOR `(for)` (L26179)

> （直接の処理内容なし — ネストされた子ブロックを参照）

###### ·· Block 3.1.1 — 🔀 IF `(i >= dataList.size())` (L26182)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList.add(new HashMap());` |

###### ·· Block 3.1.2 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.GENE_ADD_DTM))` [GENE_ADD_DTM="gene_add_dtm"] (L26190)

> 📌 サービス契約一意照会.サービス契約一意照会明細.世代登録年月日時分秒 ← サービス契約一意照会明細.世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", "");` |

###### ·· Block 3.1.3 — ↪️ ELSE `(else)` (L26195)

> 📌 サービス契約一意照会.サービス契約一意照会明細.申込明細番号 ← サービス契約一意照会明細.申込明細番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", childTemplate.getString(EKK0081A010CBSMsg1List.GENE_ADD_DTM));` [➔ GENE_ADD_DTM="gene_add_dtm"] \| |

###### ·· Block 3.1.4 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.MSKM_DTL_NO))` [MSKM_DTL_NO="mskm_dtl_no"] (L26199)

> 📌 サービス契約一意照会.サービス契約一意照会明細.申込明細番号 ← サービス契約一意照会明細.申込明細番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("mskm_dtl_no", "");` |

###### ·· Block 3.1.5 — ↪️ ELSE `(else)` (L26204)

> 📌 サービス契約一意照会.サービス契約一意照会明細.料金グループコード ← サービス契約一意照会明細.料金グループコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("mskm_dtl_no", childTemplate.getString(EKK0081A010CBSMsg1List.MSKM_DTL_NO));` [➔ MSKM_DTL_NO="mskm_dtl_no"] \| |

###### ·· Block 3.1.6 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.PRC_GRP_CD))` (L26208)

> 📌 サービス契約一意照会.サービス契約一意照会明細.料金グループコード ← サービス契約一意照会明細.料金グループコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("prc_grp_cd", "");` |

###### ·· Block 3.1.7 — ↪️ ELSE `(else)` (L26213)

> 📌 サービス契約一意照会.サービス契約一意照会明細.料金コースコード ← サービス契約一意照会明細.料金コースコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("prc_grp_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PRC_GRP_CD));` [➔ PRC_GRP_CD="prc_grp_cd"] \| |

###### ·· Block 3.1.8 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.PCRS_CD))` [PCRS_CD="pcrs_cd"] (L26217)

> 📌 サービス契約一意照会.サービス契約一意照会明細.料金コースコード ← サービス契約一意照会明細.料金コースコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pcrs_cd", "");` |

###### ·· Block 3.1.9 — ↪️ ELSE `(else)` (L26222)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス契約ステータス ← サービス契約一意照会明細.サービス契約ステータス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pcrs_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PCRS_CD));` [➔ PCRS_CD="pcrs_cd"] \| |

###### ·· Block 3.1.10 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_KEI_STAT))` (L26226)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス契約ステータス ← サービス契約一意照会明細.サービス契約ステータス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_kei_stat", "");` |

###### ·· Block 3.1.11 — ↪️ ELSE `(else)` (L26231)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス休止年月日 ← サービス契約一意照会明細.サービス休止年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_kei_stat", childTemplate.getString(EKK0081A010CBSMsg1List.SVC_KEI_STAT));` [➔ SVC_KEI_STAT="svc_kei_stat"] \| |

###### ·· Block 3.1.12 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_YMD))` (L26235)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス休止年月日 ← サービス契約一意照会明細.サービス休止年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_pause_ymd", "");` |

###### ·· Block 3.1.13 — ↪️ ELSE `(else)` (L26240)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス休止解除年月日 ← サービス契約一意照会明細.サービス休止解除年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_pause_ymd", childTemplate.getString(EKK0081A010CBSMsg1List.SVC_PAUSE_YMD));` [➔ SVC_PAUSE_YMD="svc_pause_ymd"] \| |

###### ·· Block 3.1.14 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD))` (L26244)

> 📌 サービス契約一意照会.サービス契約一意照会明細.サービス休止解除年月日 ← サービス契約一意照会明細.サービス休止解除年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_pause_rls_ymd", "");` |

###### ·· Block 3.1.15 — ↪️ ELSE `(else)` (L26249)

> 📌 サービス契約一意照会.サービス契約一意照会明細.休止中断コード ← サービス契約一意照会明細.休止中断コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_pause_rls_ymd", childTemplate.getString(EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD));` [➔ SVC_PAUSE_RLS_YMD="svc_pause_rls_ymd"] \| |

###### ·· Block 3.1.16 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.PAUSE_STP_CD))` (L26253)

> 📌 サービス契約一意照会.サービス契約一意照会明細.休止中断コード ← サービス契約一意照会明細.休止中断コード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pause_stp_cd", "");` |

###### ·· Block 3.1.17 — ↪️ ELSE `(else)` (L26258)

> 📌 ANK-2765-00-00 ADD START

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pause_stp_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PAUSE_STP_CD));` [➔ PAUSE_STP_CD="pause_stp_cd"] \| |

###### ·· Block 3.1.18 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.PPLAN_CD))` (L26263)

> 📌 サービス契約一意照会.サービス契約一意照会明細.料金プランコード ← サービス契約一意照会明細.料金プランコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pplan_cd", "");` |

###### ·· Block 3.1.19 — ↪️ ELSE `(else)` (L26268)

> 📌 ANK-2765-00-00 ADD END

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("pplan_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PPLAN_CD));` [➔ PPLAN_CD="pplan_cd"] \| |

###### ·· Block 3.1.20 — 🔀 IF `(childTemplate.isNull(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO))` [TK_HOSHIKI_KEI_NO="tk_hoshiki_kei_no"] (L26274)

> 📌 サービス契約一意照会.サービス契約一意照会明細.提供方式契約番号 ← サービス契約一意照会明細.提供方式契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("tk_hoshiki_kei_no", "");` |

###### ·· Block 3.1.21 — ↪️ ELSE `(else)` (L26279)

> 📌 ANK-3989-00-00 ADD END

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("tk_hoshiki_kei_no", childTemplate.getString(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO));` [➔ TK_HOSHIKI_KEI_NO="tk_hoshiki_kei_no"] \| |
| 2 | 📋 SET | `dataMap.put("EKK0081A010CBSMsg1List", dataList);` |
| 3 | ⚡ EXEC | `param = editErrorInfo_EKK0081A010CBS(param, templates, (Integer)return_code);` |

##### Block 4 — 🔀 IF `(errList == null)` (L26292)

> 📌 エラー情報のマップを取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `errList = new ArrayList<Object>();` |

##### Block 5 — 🔀 IF `(errList != null && !errList.isEmpty())` (L26300)

> 📌 エラー発生時はExceptionを設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 💥 THROW | `throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0341B002CBSMsg.STATUS)));` |

> **合計**: 27 blocks (3 depth levels)

### editInMsg_EKK0351B002CBS()

---

#### 1. 役割

オプションサービス契約一覧照会（EKK0351B002）用のSC入力メッセージを作成する業務処理。  
具体的には、電文ヘッダやユーザエリア（コントロールマップ）から共通情報を取得し、テンプレートID・機能コードをセットする。  
ユーザデータ情報からサービス契約番号、およびサービス契約内訳番号（必要に応じて）をCAANMsgテンプレートにセットし、SC呼出用のメッセージマップを返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editInMsg_EKK0351B002CBS（param, yykSvcKeiUcwkNo）"] --> S1["Step1: paramMap新規生成"]
  S1 --> S2["Step2: 共通データ（電文ID, ユースケースID, オペレーションID, サービス呼出し区分）セット"]
  S2 --> S3["Step3: コントロールマップから依頼先ホスト名・IP・画面ID・オペレータIDをセット"]
  S3 --> S4["Step4: テンプレート生成（EKK0351B002CBSMsg）"]
  S4 --> S5["Step5: テンプレートID 'EKK0351B002' をセット"]
  S5 --> S6["Step6: 機能コード '1'（一覧照会）をセット"]
  S6 --> S7["Step7: 共通部編集 editBasicCmn（param, template）"]
  S7 --> S8["Step8: ユーザデータ情報inMap取得"]
  S8 --> S9{"svc_kei_noが空か?"}
  S9 -->|"Yes"| S10["テンプレートのKEY_SVC_KEI_NOをnullセット"]
  S9 -->|"No"| S11["KEY_SVC_KEI_NOにsvc_kei_no値をセット"]
  S11 --> S12{"yykSvcKeiUcwkNoが空か?"}
  S10 --> S12
  S12 -->|"Yes"| S13["テンプレートのKEY_SVC_KEI_UCWK_NOをnullセット"]
  S12 -->|"No"| S14["KEY_SVC_KEI_UCWK_NOにyykSvcKeiUcwkNo値をセット"]
  S14 --> S15["各種オプションはnullセット"]
  S13 --> S15
  S15 --> S16["テンプレート配列に格納しparamMapにセット"]
  S16 --> RET["return paramMap"]

  S5 -.- NOTE1["EKK0351B002 （テンプレートID）"]
  S6 -.- 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. paramMap（HashMap）を新規生成。
2. 電文ヘッダからTRANZACTION_ID_KEY, USECASE_ID_KEY, OPERATION_ID_KEY, CALL_TYPE_KEYをセット。
3. コントロールマップからCLIENT_HOST_NAME_KEY, CLIENT_IP_ADDRESS_KEY, INVOKE_GAMEN_ID_KEY, OPERATOR_ID_KEYをセット。
4. CAANMsgテンプレート（EKK0351B002CBSMsg）を生成。
5. テンプレートID "EKK0351B002" をセット。
6. 機能コード "1"（一覧照会）をセット（JPCModelConstant.FUNC_CD_1）。
7. 共通部編集editBasicCmn(param, template)を実行。
8. ユーザデータinMapを取得（HAKKOSODCCWORKMAP）。
9. inMapの"svc_kei_no"（サービス契約番号）が空であればテンプレートのKEY_SVC_KEI_NOをnullセット、値ありならセット。
10. yykSvcKeiUcwkNo（サービス契約内訳番号）が空であればテンプレートのKEY_SVC_KEI_UCWK_NOをnullセット、値ありならセット。
11. 残りの主要オプションはnullセット。
12. テンプレート配列に格納し、paramMapにセットし返却。

---

#### 3. パラメータ分析

| No  | パラメータ名     | 型                         | 業務説明                                                                        |
| --- | ---------------- | -------------------------- | -------------------------------------------------------------------------------- |
| 1   | param            | IRequestParameterReadOnly  | リクエストパラメータ。ヘッダ・コントロール・ユーザデータ情報保持                |
| 2   | yykSvcKeiUcwkNo  | 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 → editInMsg_EKK0351B002CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0351B002CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getOpSvcKeiList` | private | オプションサービス契約一覧照会（サービス契約番号）<br> <br> オプションサービス契約一覧照会（サービス契約番号）サービスインターフェイスにより<br> サービス契約番号に紐づくオプションサービス契約の一覧を取得します。<br> <b… |
| 2 | `getOpSvcKeiNotDslList` | private | オプションサービス契約一覧照会（サービス契約番号）<br> <br> オプションサービス契約一覧照会（サービス契約番号）サービスインターフェイスにより<br> サービス契約番号に紐づく解約済ではないオプションサービス契約の一覧を取得します。… |

---

#### 📋 Per-Branch 詳細ブロック — `editInMsg_EKK0351B002CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(inMap == null || inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))` (L23982)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約番号 → ＫＥＹ＿サービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK0351B002CBSMsg.KEY_SVC_KEI_NO);` [➔ KEY_SVC_KEI_NO="key_svc_kei_no"] \| |

##### Block 2 — ↪️ ELSE `(else)` (L23987)

> 📌 2012-01-13ADD ↓↓↓

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK0351B002CBSMsg.KEY_SVC_KEI_NO, (String)inMap.get("svc_kei_no"));` [➔ KEY_SVC_KEI_NO="key_svc_kei_no"] \| |

##### Block 3 — 🔀 IF `(yykSvcKeiUcwkNo == null || "".equals(yykSvcKeiUcwkNo))` (L23993)

> 📌 IT1-2012-0001922 2012/11/07 start

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO);` [➔ KEY_SVC_KEI_UCWK_NO="key_svc_kei_ucwk_no"] \| |

##### Block 4 — ↪️ ELSE `(else)` (L23995)

> 📌 IT1-2012-0001922 2012/11/07 start

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO, yykSvcKeiUcwkNo);` [➔ KEY_SVC_KEI_UCWK_NO="key_svc_kei_ucwk_no"] \| |
| 2 | ⚡ EXEC | `template.setNull(EKK0351B002CBSMsg.KEY_OP_SVC_CD);` // ＫＥＹ＿オプションサービスコード [➔ KEY_OP_SVC_CD="key_op_svc_cd"] \| |
| 3 | ⚡ EXEC | `template.setNull(EKK0351B002CBSMsg.KEY_BASE_YMD);` // ＫＥＹ＿基準年月日 [➔ KEY_BASE_YMD="key_base_ymd"] \| |
| 4 | ⚡ EXEC | `CAANMsg[] templates = new CAANMsg[1];` |
| 5 | ⚡ EXEC | `templates[0] = template;` |
| 6 | 📋 SET | `paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);` [➔ TEMPLATE_LIST_KEY="template_list_key"] \| |

> **合計**: 4 blocks (1 depth levels)

### editResultRP_EKK0351B002CBS()

---

#### 1. 役割

オプションサービス契約一覧照会（EKK0351B002）のSCレスポンス（CAANMsg配列）をparamの業務データ領域に設定し、各オプションサービス明細（オプションサービスコード名称、契約ステータス、内容、開始年月日、終了年月日等）をdataMapへ格納する。  
また、editErrorInfo_EKK0351B002CBSでエラー情報を設定し、エラーがあればExceptionをスローする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editResultRP_EKK0351B002CBS（msgList, param）"] --> S1["Step1: CAANMsg[] templates = msgList.get（TEMPLATE_LIST_KEY）"]
  S1 --> S2["Step2: parentTemplate = templates[0]; templateArray = parentTemplate.getMsgData（）.get（EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST）"]
  S2 --> S3["Step3: dataMap = param.getData（HAKKOSODCCWORKMAP）; 存在しなければ新規生成"]
  S3 --> S4["Step4: dataList = dataMap.get（EKK0351B002CBSMsg1List）; 存在しなければ新規生成"]
  S4 --> S5{"templateArray != null"}
  S5 -->|"Yes"| S6["Step5: for each childTemplate in templateArray → childMap生成"]
  S6 --> S7["Step6: childTemplateの各フィールドをchildMapにセット"]
  S7 --> S8["Step7: dataMapにEKK0351B002CBSMsg1ListとしてdataListを格納"]
  S8 --> S9["Step8: エラー情報 editErrorInfo_EKK0351B002CBSでセット"]
  S9 --> S10["Step9: エラーリスト取得 & コントロールマップに設定"]
  S10 --> S11{"errList != null && !errList.isEmpty（）"}
  S11 -->|"Yes"| S12["Step10: Exceptionスロー"]
  S11 -->|"No"| RET["return param"]
  S5 -->|"No"| S8

  S1 -.- NOTE1["TEMPLATE_LIST_KEY = 'templateList'"]
  S3 -.- NOTE2["HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'"]
  S4 -.- NOTE3["EKK0351B002CBSMsg1List = 'EKK0351B002CBSMsg1List'"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. msgListからCAANMsg[] templatesを取得（TEMPLATE_LIST_KEY）。
2. parentTemplateはtemplates[0]、EKK0351B002CBSMSG1LISTからtemplateArrayを取得。
3. paramのHAKKOSODCCWORKMAPからdataMapを取得。なければ新規生成。
4. dataMapからEKK0351B002CBSMsg1List（ArrayList）を取得。なければ新規生成。
5. templateArrayがnullでなければ、各childTemplateについて以下を実施:
    - childMapを生成
    - 各フィールド（op_svc_cd_nm, op_svc_kei_stat, op_svc_niy, svc_staymd, rsv_tsta_kibo_ymd, svc_endymd, op_svc_kei_no, op_svc_cd, gene_add_dtm）をchildMapにセット
    - dataListにchildMapを格納
6. dataMapに'EKK0351B002CBSMsg1List'としてdataListをセット
7. editErrorInfo_EKK0351B002CBS(param, templates, return_code)でエラー情報を設定
8. コントロールマップからERROR_INFOを取得し、なければ新規生成
9. TemplateErrorUtil.getErrorInfoでエラー情報をセット
10. errListが空でなければException（CCException）をthrow
11. 問題なければparamを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                         | 業務説明                                              |
| --- | ------------ | -------------------------- | ----------------------------------------------------- |
| 1   | msgList      | Map<?, ?>                  | SCからの応答マップ（CAANMsg[]・リターンコード含む）   |
| 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_EKK0351B002CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0351B002CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `callEKK0351B002SC` | private | オプションサービス契約一覧照会（サービス契約番号）SIFを呼び出し |
| 2 | `getOpSvcKeiList` | private | オプションサービス契約一覧照会（サービス契約番号）<br> <br> オプションサービス契約一覧照会（サービス契約番号）サービスインターフェイスにより<br> サービス契約番号に紐づくオプションサービス契約の一覧を取得します。<br> <b… |
| 3 | `getOpSvcKeiNotDslList` | private | オプションサービス契約一覧照会（サービス契約番号）<br> <br> オプションサービス契約一覧照会（サービス契約番号）サービスインターフェイスにより<br> サービス契約番号に紐づく解約済ではないオプションサービス契約の一覧を取得します。… |

---

#### 📋 Per-Branch 詳細ブロック — `editResultRP_EKK0351B002CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(dataMap == null)` (L24038)

> 📌 業務データ設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 2 — 🔀 IF `(dataList == null)` (L24046)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList = new ArrayList();` |

##### Block 3 — 🔀 IF `(templateArray != null)` (L24051)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `CAANMsg childTemplate = templateArray[i];` |
| 2 | ⚡ EXEC | `dataList.add(new HashMap());` |
| 3 | 📦 VAR | `HashMap childMap = (HashMap)dataList.get(i);` |
| 4 | 📋 SET | `childMap.put("op_svc_cd_nm", "");` |
| 5 | 📋 SET | `childMap.put("op_svc_cd_nm", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_CD_NM));` [➔ OP_SVC_CD_NM="op_svc_cd_nm"] \| |
| 6 | 📋 SET | `childMap.put("op_svc_kei_stat", "");` |
| 7 | 📋 SET | `childMap.put("op_svc_kei_stat", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT));` [➔ OP_SVC_KEI_STAT="op_svc_kei_stat"] \| |
| 8 | 📋 SET | `childMap.put("op_svc_niy", "");` |

###### · Block 3.1 — 🔁 FOR `(for)` (L24053)

> （直接の処理内容なし — ネストされた子ブロックを参照）

###### ·· Block 3.1.1 — 🔀 IF `(i >= dataList.size())` (L24056)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList.add(new HashMap());` |

###### ·· Block 3.1.2 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD_NM))` [OP_SVC_CD_NM="op_svc_cd_nm"] (L24065)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービスコード名称

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_cd_nm", "");` |

###### ·· Block 3.1.3 — ↪️ ELSE `(else)` (L24070)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_cd_nm", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_CD_NM));` [➔ OP_SVC_CD_NM="op_svc_cd_nm"] \| |

###### ·· Block 3.1.4 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT))` [OP_SVC_KEI_STAT="op_svc_kei_stat"] (L24077)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約ステータス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_stat", "");` |

###### ·· Block 3.1.5 — ↪️ ELSE `(else)` (L24082)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス内容

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_stat", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT));` [➔ OP_SVC_KEI_STAT="op_svc_kei_stat"] \| |

###### ·· Block 3.1.6 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_NIY))` [OP_SVC_NIY="op_svc_niy"] (L24088)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス内容

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_niy", "");` |

###### ·· Block 3.1.7 — ↪️ ELSE `(else)` (L24093)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.サービス開始年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_niy", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_NIY));` [➔ OP_SVC_NIY="op_svc_niy"] \| |

###### ·· Block 3.1.8 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_STAYMD))` [SVC_STAYMD="svc_staymd"] (L24099)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.サービス開始年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_staymd", "");` |

###### ·· Block 3.1.9 — ↪️ ELSE `(else)` (L24104)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.予約適用開始希望年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_staymd", childTemplate.getString(EKK0351B002CBSMsg1List.SVC_STAYMD));` [➔ SVC_STAYMD="svc_staymd"] \| |

###### ·· Block 3.1.10 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD))` [RSV_TSTA_KIBO_YMD="rsv_tsta_kibo_ymd"] (L24110)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.予約適用開始希望年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("rsv_tsta_kibo_ymd", "");` |

###### ·· Block 3.1.11 — ↪️ ELSE `(else)` (L24115)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.サービス終了年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("rsv_tsta_kibo_ymd", childTemplate.getString(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD));` [➔ RSV_TSTA_KIBO_YMD="rsv_tsta_kibo_ymd"] \| |

###### ·· Block 3.1.12 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_ENDYMD))` [SVC_ENDYMD="svc_endymd"] (L24121)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.サービス終了年月日

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_endymd", "");` |

###### ·· Block 3.1.13 — ↪️ ELSE `(else)` (L24126)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("svc_endymd", childTemplate.getString(EKK0351B002CBSMsg1List.SVC_ENDYMD));` [➔ SVC_ENDYMD="svc_endymd"] \| |

###### ·· Block 3.1.14 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO))` [OP_SVC_KEI_NO="op_svc_kei_no"] (L24132)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_no", "");` |

###### ·· Block 3.1.15 — ↪️ ELSE `(else)` (L24137)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービスコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_no", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO));` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

###### ·· Block 3.1.16 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD))` [OP_SVC_CD="op_svc_cd"] (L24143)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービスコード

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_cd", "");` |

###### ·· Block 3.1.17 — ↪️ ELSE `(else)` (L24148)

> 📌 IT1-2012-0001922 2012/11/07 start

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_cd", childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_CD));` [➔ OP_SVC_CD="op_svc_cd"] \| |

###### ·· Block 3.1.18 — 🔀 IF `(childTemplate.isNull(EKK0351B002CBSMsg1List.GENE_ADD_DTM))` [GENE_ADD_DTM="gene_add_dtm"] (L24155)

> 📌 ← オプションサービス契約一覧照会（サービス契約番号）明細.世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", "");` |

###### ·· Block 3.1.19 — ↪️ ELSE `(else)` (L24160)

> 📌 IT1-2012-0001922 2012/11/07 end

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", childTemplate.getString(EKK0351B002CBSMsg1List.GENE_ADD_DTM));` [➔ GENE_ADD_DTM="gene_add_dtm"] \| |
| 2 | 📋 SET | `dataMap.put("EKK0351B002CBSMsg1List", dataList);` |
| 3 | ⚡ EXEC | `param = editErrorInfo_EKK0351B002CBS(param, templates, (Integer)return_code);` |

##### Block 4 — 🔀 IF `(errList == null)` (L24173)

> 📌 エラー情報のマップを取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `errList = new ArrayList<Object>();` |

##### Block 5 — 🔀 IF `(errList != null && !errList.isEmpty())` (L24181)

> 📌 エラー発生時はExceptionを設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 💥 THROW | `throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0351B002CBSMsg.STATUS)));` |

> **合計**: 25 blocks (3 depth levels)

### editResultRP_EKK0361A010CBS()

---

#### 1. 役割

オプションサービス契約＜ISP＞一意照会（EKK0361A010）のSCレスポンス（CAANMsg配列）をparamの業務データ領域に設定し、各明細（オプションサービス契約番号、世代登録年月日時分秒、メールアドレス、URLドメイン、URLアカウント）をdataMapへ格納する。  
また、editErrorInfo_EKK0361A010CBSでエラー情報を設定し、エラーがあればExceptionをスローする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editResultRP_EKK0361A010CBS（msgList, param）"] --> S1["Step1: CAANMsg[] templates = msgList.get（TEMPLATE_LIST_KEY）"]
  S1 --> S2["Step2: parentTemplate = templates[0]; templateArray = parentTemplate.getMsgData（）.get（EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST）"]
  S2 --> S3["Step3: dataMap = param.getData（HAKKOSODCCWORKMAP）; 存在しなければ新規生成"]
  S3 --> S4["Step4: dataList = dataMap.get（'EKK0361A010CBSMsg1List'）; 存在しなければ新規生成"]
  S4 --> S5{"templateArray != null"}
  S5 -->|"Yes"| S6["Step5: for each childTemplate in templateArray → childMap生成"]
  S6 --> S7["Step6: childTemplateの各フィールドをchildMapにセット"]
  S7 --> S8["Step7: dataMapにEKK0361A010CBSMsg1ListとしてdataListを格納"]
  S8 --> S9["Step8: エラー情報 editErrorInfo_EKK0361A010CBSでセット"]
  S9 --> S10["Step9: エラーリスト取得 & コントロールマップに設定"]
  S10 --> S11{"errList != null && !errList.isEmpty（）"}
  S11 -->|"Yes"| S12["Step10: Exceptionスロー"]
  S11 -->|"No"| RET["return param"]
  S5 -->|"No"| S8

  S1 -.- NOTE1["TEMPLATE_LIST_KEY = 'templateList'"]
  S3 -.- NOTE2["HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. msgListからCAANMsg[] templatesを取得（TEMPLATE_LIST_KEY）。
2. templates[0]をparentTemplateとし、EKK0361A010CBSMSG1LISTからtemplateArrayを取得。
3. paramのHAKKOSODCCWORKMAPからdataMapを取得。なければ新規生成。
4. dataMapから'EKK0361A010CBSMsg1List'のdataListを取得。なければ新規生成。
5. templateArrayがnullでなければ、各childTemplateについて以下を実施:
    - childMapを生成
    - 各フィールド（op_svc_kei_no, gene_add_dtm, mlad, url_domain, url_account）をchildMapにセット
    - dataListにchildMapを格納
6. dataMapに'EKK0361A010CBSMsg1List'としてdataListをセット
7. editErrorInfo_EKK0361A010CBS(param, templates, return_code)でエラー情報を設定
8. コントロールマップからERROR_INFOを取得し、なければ新規生成
9. TemplateErrorUtil.getErrorInfoでエラー情報をセット
10. errListが空でなければException（CCException）をthrow
11. 問題なければparamを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                         | 業務説明                                              |
| --- | ------------ | -------------------------- | ----------------------------------------------------- |
| 1   | msgList      | Map<?, ?>                  | SCからの応答マップ（CAANMsg[]・リターンコード含む）   |
| 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_EKK0361A010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK0361A010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getOpSvcKeiIsp` | private | オプションサービス契約＜ISP＞一意照会<br> <br> オプションサービス契約＜ISP＞一意照会サービスインターフェイスにより<br> オプションサービス契約＜ISP＞情報を取得します。<br> <br> <li>オプションサービス契約… |

---

#### 📋 Per-Branch 詳細ブロック — `editResultRP_EKK0361A010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(dataMap == null)` (L24396)

> 📌 業務データ設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 2 — 🔀 IF `(dataList == null)` (L24404)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList = new ArrayList();` |

##### Block 3 — 🔀 IF `(templateArray != null)` (L24409)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `CAANMsg childTemplate = templateArray[i];` |
| 2 | ⚡ EXEC | `dataList.add(new HashMap());` |
| 3 | 📦 VAR | `HashMap childMap = (HashMap)dataList.get(i);` |
| 4 | 📋 SET | `childMap.put("op_svc_kei_no", "");` |
| 5 | 📋 SET | `childMap.put("op_svc_kei_no", childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO));` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |
| 6 | 📋 SET | `childMap.put("gene_add_dtm", "");` |
| 7 | 📋 SET | `childMap.put("gene_add_dtm", childTemplate.getString(EKK0361A010CBSMsg1List.GENE_ADD_DTM));` [➔ GENE_ADD_DTM="gene_add_dtm"] \| |
| 8 | 📋 SET | `childMap.put("mlad", "");` |

###### · Block 3.1 — 🔁 FOR `(for)` (L24411)

> （直接の処理内容なし — ネストされた子ブロックを参照）

###### ·· Block 3.1.1 — 🔀 IF `(i >= dataList.size())` (L24414)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataList.add(new HashMap());` |

###### ·· Block 3.1.2 — 🔀 IF `(childTemplate.isNull(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO))` [OP_SVC_KEI_NO="op_svc_kei_no"] (L24423)

> 📌 ← オプションサービス契約＜ＩＳＰ＞一意照会明細.オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_no", "");` |

###### ·· Block 3.1.3 — ↪️ ELSE `(else)` (L24428)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("op_svc_kei_no", childTemplate.getString(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO));` [➔ OP_SVC_KEI_NO="op_svc_kei_no"] \| |

###### ·· Block 3.1.4 — 🔀 IF `(childTemplate.isNull(EKK0361A010CBSMsg1List.GENE_ADD_DTM))` [GENE_ADD_DTM="gene_add_dtm"] (L24434)

> 📌 ← オプションサービス契約＜ＩＳＰ＞一意照会明細.世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", "");` |

###### ·· Block 3.1.5 — ↪️ ELSE `(else)` (L24439)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.メールアドレス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("gene_add_dtm", childTemplate.getString(EKK0361A010CBSMsg1List.GENE_ADD_DTM));` [➔ GENE_ADD_DTM="gene_add_dtm"] \| |

###### ·· Block 3.1.6 — 🔀 IF `(childTemplate.isNull(EKK0361A010CBSMsg1List.MLAD))` [EKK0361A010CBSM="EKK0361A010CBSM"] (L24445)

> 📌 ← オプションサービス契約＜ＩＳＰ＞一意照会明細.メールアドレス

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("mlad", "");` |

###### ·· Block 3.1.7 — ↪️ ELSE `(else)` (L24450)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（ドメイン）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("mlad", childTemplate.getString(EKK0361A010CBSMsg1List.MLAD));` [➔ MLAD="mlad"] \| |

###### ·· Block 3.1.8 — 🔀 IF `(childTemplate.isNull(EKK0361A010CBSMsg1List.URL_DOMAIN))` [URL_DOMAIN="url_domain"] (L24456)

> 📌 ← オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（ドメイン）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("url_domain", "");` |

###### ·· Block 3.1.9 — ↪️ ELSE `(else)` (L24461)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（アカウント）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("url_domain", childTemplate.getString(EKK0361A010CBSMsg1List.URL_DOMAIN));` [➔ URL_DOMAIN="url_domain"] \| |

###### ·· Block 3.1.10 — 🔀 IF `(childTemplate.isNull(EKK0361A010CBSMsg1List.URL_ACCOUNT))` [URL_ACCOUNT="url_account"] (L24467)

> 📌 ← オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（アカウント）

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("url_account", "");` |

###### ·· Block 3.1.11 — ↪️ ELSE `(else)` (L24472)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `childMap.put("url_account", childTemplate.getString(EKK0361A010CBSMsg1List.URL_ACCOUNT));` [➔ URL_ACCOUNT="url_account"] \| |
| 2 | 📋 SET | `dataMap.put("EKK0361A010CBSMsg1List", dataList);` |
| 3 | ⚡ EXEC | `param = editErrorInfo_EKK0361A010CBS(param, templates, (Integer)return_code);` |

##### Block 4 — 🔀 IF `(errList == null)` (L24484)

> 📌 エラー情報のマップを取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `errList = new ArrayList<Object>();` |

##### Block 5 — 🔀 IF `(errList != null && !errList.isEmpty())` (L24492)

> 📌 エラー発生時はExceptionを設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 💥 THROW | `throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0361A010CBSMsg.STATUS)));` |

> **合計**: 17 blocks (3 depth levels)

### editInMsg_EKK0361A010CBS()

---

#### 1. 役割

オプションサービス契約＜ISP＞一意照会（EKK0361A010）用のSC入力メッセージを作成する業務処理。  
具体的には、電文ヘッダやユーザエリア（コントロールマップ）から共通情報を取得し、テンプレートID・機能コードをセットする。  
ユーザデータ情報からオプションサービス契約番号および世代登録年月日時分秒をCAANMsgテンプレートにセットし、SC呼出用のメッセージマップを返却する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editInMsg_EKK0361A010CBS（param）"] --> S1["Step1: paramMap新規生成"]
  S1 --> S2["Step2: 共通データ（電文ID, ユースケースID, オペレーションID, サービス呼出し区分）セット"]
  S2 --> S3["Step3: コントロールマップから依頼先ホスト名・IP・画面ID・オペレータIDをセット"]
  S3 --> S4["Step4: テンプレート生成（EKK0361A010CBSMsg）"]
  S4 --> S5["Step5: テンプレートID 'EKK0361A010' をセット"]
  S5 --> S6["Step6: 機能コード '2'（カレント）をセット"]
  S6 --> S7["Step7: 共通部編集 editBasicCmn（param, template）"]
  S7 --> S8["Step8: ユーザデータinMapを取得"]
  S8 --> S9{"op_svc_kei_noが空か?"}
  S9 -->|"Yes"| S10["テンプレートのKEY_OP_SVC_KEI_NOをnullセット"]
  S9 -->|"No"| S11["KEY_OP_SVC_KEI_NOにop_svc_kei_no値をセット"]
  S11 --> S12{"gene_add_dtmが空か?"}
  S10 --> S12
  S12 -->|"Yes"| S13["テンプレートのKEY_GENE_ADD_DTMをnullセット"]
  S12 -->|"No"| S14["KEY_GENE_ADD_DTMにgene_add_dtm値をセット"]
  S14 --> S15["テンプレート配列に格納しparamMapにセット"]
  S13 --> S15
  S15 --> RET["return paramMap"]

  S5 -.- NOTE1["EKK0361A010 （テンプレートID）"]
  S6 -.- NOTE2["JPCModelConstant.FUNC_CD_2 = '2' （カレント）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. paramMap（HashMap）を新規生成。
2. 電文ヘッダからTRANZACTION_ID_KEY, USECASE_ID_KEY, OPERATION_ID_KEY, CALL_TYPE_KEYをセット。
3. コントロールマップからCLIENT_HOST_NAME_KEY, CLIENT_IP_ADDRESS_KEY, INVOKE_GAMEN_ID_KEY, OPERATOR_ID_KEYをセット。
4. CAANMsgテンプレート（EKK0361A010CBSMsg）を生成。
5. テンプレートID "EKK0361A010" をセット。
6. 機能コード "2"（カレント）をセット（JPCModelConstant.FUNC_CD_2）。
7. 共通部編集editBasicCmn(param, template)を実行。
8. ユーザデータinMapを取得（HAKKOSODCCWORKMAP）。
9. inMapの"op_svc_kei_no"（オプションサービス契約番号）が空であればテンプレートのKEY_OP_SVC_KEI_NOをnullセット、値ありならセット。
10. "gene_add_dtm"（世代登録年月日時分秒）が空であればテンプレートのKEY_GENE_ADD_DTMをnullセット、値ありならセット。
11. テンプレート配列に格納し、paramMapにセットし返却。

---

#### 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_EKK0361A010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editInMsg_EKK0361A010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `getOpSvcKeiIsp` | private | オプションサービス契約＜ISP＞一意照会<br> <br> オプションサービス契約＜ISP＞一意照会サービスインターフェイスにより<br> オプションサービス契約＜ISP＞情報を取得します。<br> <br> <li>オプションサービス契約… |

---

#### 📋 Per-Branch 詳細ブロック — `editInMsg_EKK0361A010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(inMap == null || inMap.get("op_svc_kei_no") == null || "".equals(inMap.get("op_svc_kei_no")))` (L24342)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約番号 → ＫＥＹ＿オプションサービス契約番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO);` [➔ KEY_OP_SVC_KEI_NO="key_op_svc_kei_no"] \| |

##### Block 2 — ↪️ ELSE `(else)` (L24347)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO, (String)inMap.get("op_svc_kei_no"));` [➔ KEY_OP_SVC_KEI_NO="key_op_svc_kei_no"] \| |

##### Block 3 — 🔀 IF `(inMap == null || inMap.get("gene_add_dtm") == null || "".equals(inMap.get("gene_add_dtm")))` (L24352)

> 📌 オプションサービス契約＜ＩＳＰ＞一意照会マップ.世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `template.setNull(EKK0361A010CBSMsg.KEY_GENE_ADD_DTM);` [➔ KEY_GENE_ADD_DTM="key_gene_add_dtm"] \| |

##### Block 4 — ↪️ ELSE `(else)` (L24357)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `template.set(EKK0361A010CBSMsg.KEY_GENE_ADD_DTM, (String)inMap.get("gene_add_dtm"));` [➔ KEY_GENE_ADD_DTM="key_gene_add_dtm"] \| |
| 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"] \| |

> **合計**: 4 blocks (1 depth levels)

### editErrorInfo_EKK0351B002CBS()

---

#### 1. 役割

オプションサービス契約一覧照会（EKK0351B002）のエラー情報をparamに設定する業務処理。  
具体的には、SCレスポンスの各エラー項目（サービス契約番号、サービス契約内訳番号、オプションサービスコード、基準年月日）について、該当エラーがあればparamの業務データ領域に格納する。  
また、サービスコンポーネントのステータスがBP側より高い場合、コントロールマップにリターンコード・メッセージを設定する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editErrorInfo_EKK0351B002CBS（param, templates, returnCode）"] --> S1["Step1: templates[0]からtemplateStatus取得（STATUSフィールド）"]
  S1 --> S2{"returnCode != 0"}
  S2 -->|"Yes"| S3["templateStatus = 9000"]
  S2 -->|"No"| S4["templateStatusはそのまま"]
  S3 --> S5["RETURN_MESSAGE_xxxxが未定義ならtemplateStatus = 0"]
  S4 --> S5
  S5 --> S6["bpStatus = param.getControlMapData（RETURN_CODE）"]
  S6 --> S7{"templateStatus > bpStatus"}
  S7 -->|"Yes"| S8["コントロールマップにRETURN_CODE/RETURN_MESSAGEを設定"]
  S7 -->|"No"| S9["スキップ"]
  S8 --> S10["業務データinMap取得（HAKKOSODCCWORKMAP）"]
  S9 --> S10
  S10 --> S11{"KEY_SVC_KEI_NO_ERRにエラーがあればinMapに設定"}
  S11 --> S12{"KEY_SVC_KEI_UCWK_NO_ERRにエラーがあればinMapに設定"}
  S12 --> S13{"KEY_OP_SVC_CD_ERRにエラーがあればinMapに設定"}
  S13 --> S14{"KEY_BASE_YMD_ERRにエラーがあればinMapに設定"}
  S14 --> RET["return param"]

  style S3 fill:#ffcc00
  style S7 fill:#ffcc00
  S3 -.- NOTE1["templateStatus = 9000 （エラー）"]
  S8 -.- NOTE2["RETURN_CODE, RETURN_MESSAGEをコントロールマップにセット"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. templates[0]からtemplateStatus（STATUSフィールド）を取得
2. returnCode != 0ならtemplateStatusに9000をセット
3. JCMAPLConstMgrでRETURN_MESSAGE_xxxxが未定義ならtemplateStatusを0
4. bpStatus = param.getControlMapData(RETURN_CODE)から取得（なければ-1）
5. templateStatus > bpStatusならコントロールマップにRETURN_CODE/RETURN_MESSAGEを設定
6. 業務データinMap（HAKKOSODCCWORKMAP）を取得、なければ新規生成
7. templateのエラー各項目（KEY_SVC_KEI_NO_ERR, KEY_SVC_KEI_UCWK_NO_ERR, KEY_OP_SVC_CD_ERR, KEY_BASE_YMD_ERR）がnullでなければinMapに格納
8. paramを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                               |
| --- | ------------ | --------------------- | -------------------------------------- |
| 1   | param        | IRequestParameterReadWrite | 業務データ保持領域                |
| 2   | templates    | CAANMsg[]             | SC応答テンプレート                     |
| 3   | returnCode   | int                   | 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 → editErrorInfo_EKK0351B002CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK0351B002CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `editResultRP_EKK0351B002CBS` | private | 下りマッピング（オプションサービス契約一覧照会（サービス契約番号）） <br> サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングします<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editErrorInfo_EKK0351B002CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(returnCode != 0)` (L24207)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 9000;` |

##### Block 2 — 🔀 IF `(JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)` [JCMAPLC="JCMAPLC", RETURN_MESSAGE_="return_message_"] (L24211)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 0;` |

##### Block 3 — 🔀 IF `(obj == null)` (L24218)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = -1;` |

##### Block 4 — ↪️ ELSE `(else)` (L24223)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));` [➔ RETURN_CODE="returnCode" (リターンコード)] |

##### Block 5 — 🔀 IF `(templateStatus > bpStatus)` (L24227)

> 📌 BPにサービスコンポーネントのステータスを設定する。

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `String formatStatus = String.format("%1$04d", templateStatus);` |
| 2 | 📦 VAR | `String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);` [➔ RETURN_MESSAGE_="return_message_"] |
| 3 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);` [➔ RETURN_CODE="returnCode" (リターンコード)] |
| 4 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);` [➔ RETURN_MESSAGE="returnMessage" (リターンメッセージ)] |

##### Block 6 — 🔀 IF `(inMap == null)` (L24240)

> 📌 ユーザデータ情報

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `inMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, inMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 7 — 🔀 IF `(!template.isNull(EKK0351B002CBSMsg.KEY_SVC_KEI_NO_ERR))` [KEY_SVC_KEI_NO_ERR="key_svc_kei_no_err"] (L24247)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK0351B002CBSMsg.KEY_SVC_KEI_NO_ERR));` [➔ KEY_SVC_KEI_NO_ERR="key_svc_kei_no_err"] \| |

###### · Block 7.1 — 🔀 IF `(!inMap.containsKey("svc_kei_no_err"))` (L24249)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK0351B002CBSMsg.KEY_SVC_KEI_NO_ERR));` [➔ KEY_SVC_KEI_NO_ERR="key_svc_kei_no_err"] \| |

##### Block 8 — 🔀 IF `(!template.isNull(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR))` [KEY_SVC_KEI_UCWK_NO_ERR="key_svc_kei_ucwk_no_err"] (L24256)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約内訳番号 → ＫＥＹ＿サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR));` [➔ KEY_SVC_KEI_UCWK_NO_ERR="key_svc_kei_ucwk_no_err"] \| |

###### · Block 8.1 — 🔀 IF `(!inMap.containsKey("svc_kei_ucwk_no_err"))` (L24258)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約内訳番号 → ＫＥＹ＿サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR));` [➔ KEY_SVC_KEI_UCWK_NO_ERR="key_svc_kei_ucwk_no_err"] \| |

##### Block 9 — 🔀 IF `(!template.isNull(EKK0351B002CBSMsg.KEY_OP_SVC_CD_ERR))` [KEY_OP_SVC_CD_ERR="key_op_svc_cd_err"] (L24265)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービスコード → ＫＥＹ＿オプションサービスコード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_cd_err", template.getString(EKK0351B002CBSMsg.KEY_OP_SVC_CD_ERR));` [➔ KEY_OP_SVC_CD_ERR="key_op_svc_cd_err"] \| |

###### · Block 9.1 — 🔀 IF `(!inMap.containsKey("op_svc_cd_err"))` (L24267)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービスコード → ＫＥＹ＿オプションサービスコード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_cd_err", template.getString(EKK0351B002CBSMsg.KEY_OP_SVC_CD_ERR));` [➔ KEY_OP_SVC_CD_ERR="key_op_svc_cd_err"] \| |

##### Block 10 — 🔀 IF `(!template.isNull(EKK0351B002CBSMsg.KEY_BASE_YMD_ERR))` [KEY_BASE_YMD_ERR="key_base_ymd_err"] (L24274)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.基準年月日 → ＫＥＹ＿基準年月日 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("base_ymd_err", template.getString(EKK0351B002CBSMsg.KEY_BASE_YMD_ERR));` [➔ KEY_BASE_YMD_ERR="key_base_ymd_err"] \| |

###### · Block 10.1 — 🔀 IF `(!inMap.containsKey("base_ymd_err"))` (L24276)

> 📌 オプションサービス契約一覧照会（サービス契約番号）マップ.基準年月日 → ＫＥＹ＿基準年月日 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("base_ymd_err", template.getString(EKK0351B002CBSMsg.KEY_BASE_YMD_ERR));` [➔ KEY_BASE_YMD_ERR="key_base_ymd_err"] \| |

> **合計**: 14 blocks (2 depth levels)

### editResultRP_EKK1551D010CBS()

---

#### 1. 役割

オーダ情報作成ワーク登録（EKK1551D010）のSCレスポンス（CAANMsg配列）をparamの業務データ領域に設定し、オーダ情報作成ワーク番号（odr_inf_sksi_wk_no）をdataMapへ格納する。  
また、editErrorInfo_EKK1551D010CBSでエラー情報を設定し、エラーがあればExceptionをスローする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editResultRP_EKK1551D010CBS（msgList, param）"] --> S1["Step1: CAANMsg[] templates = msgList.get（TEMPLATE_LIST_KEY）"]
  S1 --> S2["Step2: parentTemplate = templates[0]"]
  S2 --> S3["Step3: dataMap = param.getData（HAKKOSODCCWORKMAP）; 存在しなければ新規生成"]
  S3 --> S4{"parentTemplate.isNull（ODR_INF_SKSI_WK_NO）?"}
  S4 -->|"Yes"| S5["dataMap.put（'odr_inf_sksi_wk_no', ''）"]
  S4 -->|"No"| S6["dataMap.put（'odr_inf_sksi_wk_no', parentTemplate.getString（ODR_INF_SKSI_WK_NO））"]
  S5 --> S7["Step5: エラー情報 editErrorInfo_EKK1551D010CBSでセット"]
  S6 --> S7
  S7 --> S8["Step6: エラーリスト取得 & コントロールマップに設定"]
  S8 --> S9{"errList != null && !errList.isEmpty（）"}
  S9 -->|"Yes"| S10["Step7: Exceptionスロー"]
  S9 -->|"No"| RET["return param"]

  S1 -.- NOTE1["TEMPLATE_LIST_KEY = 'templateList'"]
  S3 -.- NOTE2["HAKKOSODCCWORKMAP = 'HakkoSODCCWORK'"]
  S4 -.- NOTE3["ODR_INF_SKSI_WK_NO （オーダ情報作成ワーク番号）"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE3 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. msgListからCAANMsg[] templatesを取得（TEMPLATE_LIST_KEY）。
2. templates[0]をparentTemplateとする。
3. paramのHAKKOSODCCWORKMAPからdataMapを取得。なければ新規生成。
4. parentTemplateのODR_INF_SKSI_WK_NOがnullであれば空文字を、値があればそのままdataMapに格納。
5. editErrorInfo_EKK1551D010CBS(param, templates, return_code)でエラー情報を設定。
6. コントロールマップからERROR_INFOを取得し、なければ新規生成。
7. TemplateErrorUtil.getErrorInfoでエラー情報をセット。
8. errListが空でなければException（CCException）をthrow。
9. 問題なければparamを返却。

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                         | 業務説明                                              |
| --- | ------------ | -------------------------- | ----------------------------------------------------- |
| 1   | msgList      | Map<?, ?>                  | SCからの応答マップ（CAANMsg[]・リターンコード含む）   |
| 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_EKK1551D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editResultRP_EKK1551D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `executeOdrInfoSakseiWkAdd` | protected | オーダ情報作成ワーク登録実行処理<br> <br> オーダ情報作成ワーク登録サービスIFを実行します。<br> <br> 【使用するサービスIF】<br> ・オーダ情報作成ワーク登録<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editResultRP_EKK1551D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(dataMap == null)` (L21633)

> 📌 業務データ設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `dataMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, dataMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 2 — 🔀 IF `(parentTemplate.isNull(EKK1551D010CBSMsg.ODR_INF_SKSI_WK_NO))` [ODR_INF_SKSI_WK_NO="odr_inf_sksi_wk_no"] (L21640)

> 📌 オーダ情報作成ワーク登録.オーダ情報作成ワーク番号 ← オーダ情報作成ワーク番号

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `dataMap.put("odr_inf_sksi_wk_no", "");` |

##### Block 3 — ↪️ ELSE `(else)` (L21645)

> 📌 エラー情報の設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `dataMap.put("odr_inf_sksi_wk_no", parentTemplate.getString(EKK1551D010CBSMsg.ODR_INF_SKSI_WK_NO));` [➔ ODR_INF_SKSI_WK_NO="odr_inf_sksi_wk_no"] \| |
| 2 | ⚡ EXEC | `param = editErrorInfo_EKK1551D010CBS(param, templates, (Integer)return_code);` |

##### Block 4 — 🔀 IF `(errList == null)` (L21654)

> 📌 エラー情報のマップを取得

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `errList = new ArrayList<Object>();` |

##### Block 5 — 🔀 IF `(errList != null && !errList.isEmpty())` (L21662)

> 📌 エラー発生時はExceptionを設定

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 💥 THROW | `throw new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK1551D010CBSMsg.STATUS)));` |

> **合計**: 5 blocks (1 depth levels)

### editErrorInfo_EKK1081D010CBS()

---

#### 1. 役割

オーダ発行条件登録（EKK1081D010）のエラー情報をparamに設定する業務処理。  
具体的には、SCレスポンスの各エラー項目（サービス契約番号、サービス契約内訳番号、機器提供サービス契約番号、オプションサービス契約番号、サブオプションサービス契約番号、請求オプションサービス契約番号、オーダ種別コード、サービスオーダコード、要求種別コード、オーダ発行条件コード、同一処理番号、宅内機器型式コード、機器製造番号、メールアドレス、スポットログインSYSID、送信依頼完了年月日時分秒等）について、該当エラーがあればparamの業務データ領域に格納する。  
また、サービスコンポーネントのステータスがBP側より高い場合、コントロールマップにリターンコード・メッセージを設定する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editErrorInfo_EKK1081D010CBS（param, templates, returnCode）"] --> S1["Step1: templates[0]からtemplateStatus取得（STATUSフィールド）"]
  S1 --> S2{"returnCode != 0"}
  S2 -->|"Yes"| S3["templateStatus = 9000"]
  S2 -->|"No"| S4["templateStatusはそのまま"]
  S3 --> S5["RETURN_MESSAGE_xxxxが未定義ならtemplateStatus = 0"]
  S4 --> S5
  S5 --> S6["bpStatus = param.getControlMapData（RETURN_CODE）"]
  S6 --> S7{"templateStatus > bpStatus"}
  S7 -->|"Yes"| S8["コントロールマップにRETURN_CODE/RETURN_MESSAGEを設定"]
  S7 -->|"No"| S9["スキップ"]
  S8 --> S10["業務データinMap取得（HAKKOSODCCWORKMAP）"]
  S9 --> S10
  S10 --> S11["各エラー項目（SVC_KEI_NO_ERR, SVC_KEI_UCWK_NO_ERR, ...）をinMapに格納"]
  S11 --> RET["return param"]

  style S3 fill:#ffcc00
  style S7 fill:#ffcc00
  S3 -.- NOTE1["templateStatus = 9000 （エラー）"]
  S8 -.- NOTE2["RETURN_CODE, RETURN_MESSAGEをコントロールマップにセット"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. templates[0]からtemplateStatus（STATUSフィールド）を取得
2. returnCode != 0ならtemplateStatusに9000をセット
3. JCMAPLConstMgrでRETURN_MESSAGE_xxxxが未定義ならtemplateStatusを0
4. bpStatus = param.getControlMapData(RETURN_CODE)から取得（なければ-1）
5. templateStatus > bpStatusならコントロールマップにRETURN_CODE/RETURN_MESSAGEを設定
6. 業務データinMap（HAKKOSODCCWORKMAP）を取得、なければ新規生成
7. templateの各エラー項目（SVC_KEI_NO_ERR, SVC_KEI_UCWK_NO_ERR, KKTK_SVC_KEI_NO_ERR, OP_SVC_KEI_NO_ERR, SBOP_SVC_KEI_NO_ERR, SEIOPSVC_KEI_NO_ERR, ORDER_SBT_CD_ERR, SVC_ORDER_CD_ERR, YOKYU_SBT_CD_ERR, ODR_HAKKO_JOKEN_CD_ERR, SAME_TRN_NO_ERR, TAKNKIKI_MODEL_CD_ERR, KIKI_SEIZO_NO_ERR, MLAD_ERR, SPOT_LOGIN_SYSID_ERR, SEND_REQ_FIN_DTM_ERR）がnullでなければinMapに格納
8. paramを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                               |
| --- | ------------ | --------------------- | -------------------------------------- |
| 1   | param        | IRequestParameterReadWrite | 業務データ保持領域                |
| 2   | templates    | CAANMsg[]             | SC応答テンプレート                     |
| 3   | returnCode   | int                   | 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 → editErrorInfo_EKK1081D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1081D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `editResultRP_EKK1081D010CBS` | private | 下りマッピング（オーダ発行条件登録） <br> サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングします<br> <br> |

---

#### 📋 Per-Branch 詳細ブロック — `editErrorInfo_EKK1081D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(returnCode != 0)` (L21095)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 9000;` |

##### Block 2 — 🔀 IF `(JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)` [JCMAPLC="JCMAPLC", RETURN_MESSAGE_="return_message_"] (L21099)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 0;` |

##### Block 3 — 🔀 IF `(obj == null)` (L21106)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = -1;` |

##### Block 4 — ↪️ ELSE `(else)` (L21111)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));` [➔ RETURN_CODE="returnCode" (リターンコード)] |

##### Block 5 — 🔀 IF `(templateStatus > bpStatus)` (L21115)

> 📌 BPにサービスコンポーネントのステータスを設定する。

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `String formatStatus = String.format("%1$04d", templateStatus);` |
| 2 | 📦 VAR | `String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);` [➔ RETURN_MESSAGE_="return_message_"] |
| 3 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);` [➔ RETURN_CODE="returnCode" (リターンコード)] |
| 4 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);` [➔ RETURN_MESSAGE="returnMessage" (リターンメッセージ)] |

##### Block 6 — 🔀 IF `(workMap == null)` (L21128)

> 📌 作業項目領域

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `workMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setMappingWorkArea(workMap);` |

##### Block 7 — 🔀 IF `(inMap == null)` (L21136)

> 📌 ユーザデータ情報

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `inMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, inMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 8 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SVC_KEI_NO_ERR))` [SVC_KEI_NO_ERR="svc_kei_no_err"] (L21143)

> 📌 オーダ発行条件登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK1081D010CBSMsg.SVC_KEI_NO_ERR));` [➔ SVC_KEI_NO_ERR="svc_kei_no_err"] \| |

###### · Block 8.1 — 🔀 IF `(!inMap.containsKey("svc_kei_no_err"))` (L21145)

> 📌 オーダ発行条件登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK1081D010CBSMsg.SVC_KEI_NO_ERR));` [➔ SVC_KEI_NO_ERR="svc_kei_no_err"] \| |

##### Block 9 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO_ERR))` [SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] (L21151)

> 📌 オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO_ERR));` [➔ SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] \| |

###### · Block 9.1 — 🔀 IF `(!inMap.containsKey("svc_kei_ucwk_no_err"))` (L21153)

> 📌 オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO_ERR));` [➔ SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] \| |

##### Block 10 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO_ERR))` [KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] (L21159)

> 📌 オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktk_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO_ERR));` [➔ KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] \| |

###### · Block 10.1 — 🔀 IF `(!inMap.containsKey("kktk_svc_kei_no_err"))` (L21161)

> 📌 オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktk_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO_ERR));` [➔ KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] \| |

##### Block 11 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.OP_SVC_KEI_NO_ERR))` [OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] (L21167)

> 📌 オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.OP_SVC_KEI_NO_ERR));` [➔ OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] \| |

###### · Block 11.1 — 🔀 IF `(!inMap.containsKey("op_svc_kei_no_err"))` (L21169)

> 📌 オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.OP_SVC_KEI_NO_ERR));` [➔ OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] \| |

##### Block 12 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO_ERR))` [SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] (L21175)

> 📌 オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbop_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO_ERR));` [➔ SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] \| |

###### · Block 12.1 — 🔀 IF `(!inMap.containsKey("sbop_svc_kei_no_err"))` (L21177)

> 📌 オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbop_svc_kei_no_err", template.getString(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO_ERR));` [➔ SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] \| |

##### Block 13 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO_ERR))` [SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] (L21183)

> 📌 オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvc_kei_no_err", template.getString(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO_ERR));` [➔ SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] \| |

###### · Block 13.1 — 🔀 IF `(!inMap.containsKey("seiopsvc_kei_no_err"))` (L21185)

> 📌 オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvc_kei_no_err", template.getString(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO_ERR));` [➔ SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] \| |

##### Block 14 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.ORDER_SBT_CD_ERR))` [ORDER_SBT_CD_ERR="order_sbt_cd_err"] (L21191)

> 📌 オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("order_sbt_cd_err", template.getString(EKK1081D010CBSMsg.ORDER_SBT_CD_ERR));` [➔ ORDER_SBT_CD_ERR="order_sbt_cd_err"] \| |

###### · Block 14.1 — 🔀 IF `(!inMap.containsKey("order_sbt_cd_err"))` (L21193)

> 📌 オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("order_sbt_cd_err", template.getString(EKK1081D010CBSMsg.ORDER_SBT_CD_ERR));` [➔ ORDER_SBT_CD_ERR="order_sbt_cd_err"] \| |

##### Block 15 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SVC_ORDER_CD_ERR))` [SVC_ORDER_CD_ERR="svc_order_cd_err"] (L21199)

> 📌 オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_order_cd_err", template.getString(EKK1081D010CBSMsg.SVC_ORDER_CD_ERR));` [➔ SVC_ORDER_CD_ERR="svc_order_cd_err"] \| |

###### · Block 15.1 — 🔀 IF `(!inMap.containsKey("svc_order_cd_err"))` (L21201)

> 📌 オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_order_cd_err", template.getString(EKK1081D010CBSMsg.SVC_ORDER_CD_ERR));` [➔ SVC_ORDER_CD_ERR="svc_order_cd_err"] \| |

##### Block 16 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.YOKYU_SBT_CD_ERR))` [YOKYU_SBT_CD_ERR="yokyu_sbt_cd_err"] (L21207)

> 📌 オーダ発行条件登録マップ.要求種別コード → 要求種別コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("yokyu_sbt_cd_err", template.getString(EKK1081D010CBSMsg.YOKYU_SBT_CD_ERR));` [➔ YOKYU_SBT_CD_ERR="yokyu_sbt_cd_err"] \| |

###### · Block 16.1 — 🔀 IF `(!inMap.containsKey("yokyu_sbt_cd_err"))` (L21209)

> 📌 オーダ発行条件登録マップ.要求種別コード → 要求種別コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("yokyu_sbt_cd_err", template.getString(EKK1081D010CBSMsg.YOKYU_SBT_CD_ERR));` [➔ YOKYU_SBT_CD_ERR="yokyu_sbt_cd_err"] \| |

##### Block 17 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD_ERR))` [ODR_HAKKO_JOKEN_CD_ERR="odr_hakko_joken_cd_err"] (L21215)

> 📌 オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_hakko_joken_cd_err", template.getString(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD_ERR));` [➔ ODR_HAKKO_JOKEN_CD_ERR="odr_hakko_joken_cd_err"] \| |

###### · Block 17.1 — 🔀 IF `(!inMap.containsKey("odr_hakko_joken_cd_err"))` (L21217)

> 📌 オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_hakko_joken_cd_err", template.getString(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD_ERR));` [➔ ODR_HAKKO_JOKEN_CD_ERR="odr_hakko_joken_cd_err"] \| |

##### Block 18 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SAME_TRN_NO_ERR))` [SAME_TRN_NO_ERR="same_trn_no_err"] (L21223)

> 📌 オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("same_trn_no_err", template.getString(EKK1081D010CBSMsg.SAME_TRN_NO_ERR));` [➔ SAME_TRN_NO_ERR="same_trn_no_err"] \| |

###### · Block 18.1 — 🔀 IF `(!inMap.containsKey("same_trn_no_err"))` (L21225)

> 📌 オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("same_trn_no_err", template.getString(EKK1081D010CBSMsg.SAME_TRN_NO_ERR));` [➔ SAME_TRN_NO_ERR="same_trn_no_err"] \| |

##### Block 19 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD_ERR))` [TAKNKIKI_MODEL_CD_ERR="taknkiki_model_cd_err"] (L21231)

> 📌 オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("taknkiki_model_cd_err", template.getString(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD_ERR));` [➔ TAKNKIKI_MODEL_CD_ERR="taknkiki_model_cd_err"] \| |

###### · Block 19.1 — 🔀 IF `(!inMap.containsKey("taknkiki_model_cd_err"))` (L21233)

> 📌 オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("taknkiki_model_cd_err", template.getString(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD_ERR));` [➔ TAKNKIKI_MODEL_CD_ERR="taknkiki_model_cd_err"] \| |

##### Block 20 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.KIKI_SEIZO_NO_ERR))` [KIKI_SEIZO_NO_ERR="kiki_seizo_no_err"] (L21239)

> 📌 オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kiki_seizo_no_err", template.getString(EKK1081D010CBSMsg.KIKI_SEIZO_NO_ERR));` [➔ KIKI_SEIZO_NO_ERR="kiki_seizo_no_err"] \| |

###### · Block 20.1 — 🔀 IF `(!inMap.containsKey("kiki_seizo_no_err"))` (L21241)

> 📌 オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kiki_seizo_no_err", template.getString(EKK1081D010CBSMsg.KIKI_SEIZO_NO_ERR));` [➔ KIKI_SEIZO_NO_ERR="kiki_seizo_no_err"] \| |

##### Block 21 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.MLAD_ERR))` [MLAD_ERR="mlad_err"] (L21247)

> 📌 オーダ発行条件登録マップ.メールアドレス → メールアドレス のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("mlad_err", template.getString(EKK1081D010CBSMsg.MLAD_ERR));` [➔ MLAD_ERR="mlad_err"] \| |

###### · Block 21.1 — 🔀 IF `(!inMap.containsKey("mlad_err"))` (L21249)

> 📌 オーダ発行条件登録マップ.メールアドレス → メールアドレス のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("mlad_err", template.getString(EKK1081D010CBSMsg.MLAD_ERR));` [➔ MLAD_ERR="mlad_err"] \| |

##### Block 22 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID_ERR))` [SPOT_LOGIN_SYSID_ERR="spot_login_sysid_err"] (L21255)

> 📌 オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("spot_login_sysid_err", template.getString(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID_ERR));` [➔ SPOT_LOGIN_SYSID_ERR="spot_login_sysid_err"] \| |

###### · Block 22.1 — 🔀 IF `(!inMap.containsKey("spot_login_sysid_err"))` (L21257)

> 📌 オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("spot_login_sysid_err", template.getString(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID_ERR));` [➔ SPOT_LOGIN_SYSID_ERR="spot_login_sysid_err"] \| |

##### Block 23 — 🔀 IF `(!template.isNull(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM_ERR))` [SEND_REQ_FIN_DTM_ERR="send_req_fin_dtm_err"] (L21263)

> 📌 オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("send_req_fin_dtm_err", template.getString(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM_ERR));` [➔ SEND_REQ_FIN_DTM_ERR="send_req_fin_dtm_err"] \| |

###### · Block 23.1 — 🔀 IF `(!inMap.containsKey("send_req_fin_dtm_err"))` (L21265)

> 📌 オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("send_req_fin_dtm_err", template.getString(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM_ERR));` [➔ SEND_REQ_FIN_DTM_ERR="send_req_fin_dtm_err"] \| |

> **合計**: 39 blocks (2 depth levels)

### editErrorInfo_EKK1551D010CBS()

---

#### 1. 役割

オーダ情報作成ワーク登録（EKK1551D010）のエラー情報をparamに設定する業務処理。  
具体的には、SCレスポンスの各エラー項目（オーダ発行条件番号、オーダ内容コード、サービス契約番号、サービス契約世代登録年月日時分秒、サービス契約内訳番号、サービス契約内訳世代登録年月日時分秒、機器提供サービス契約番号、機器提供サービス契約世代登録年月日時分秒、オプションサービス契約番号、オプションサービス契約世代登録年月日時分秒、サブオプションサービス契約番号、サブオプションサービス契約世代登録年月日時分秒、請求オプションサービス契約番号、請求オプションサービス契約世代登録年月日時分秒、付加情報契約番号、付加情報契約世代登録年月日時分秒、変更前各種世代登録年月日時分秒）について、該当エラーがあればparamの業務データ領域に格納する。  
また、サービスコンポーネントのステータスがBP側より高い場合、コントロールマップにリターンコード・メッセージを設定する。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
---
config:
  securityLevel: loose
  flowchart:
    useMaxWidth: false
    htmlLabels: true
    curve: basis
---
flowchart TD
  START["editErrorInfo_EKK1551D010CBS（param, templates, returnCode）"] --> S1["Step1: templates[0]からtemplateStatus取得（STATUSフィールド）"]
  S1 --> S2{"returnCode != 0"}
  S2 -->|"Yes"| S3["templateStatus = 9000"]
  S2 -->|"No"| S4["templateStatusはそのまま"]
  S3 --> S5["RETURN_MESSAGE_xxxxが未定義ならtemplateStatus = 0"]
  S4 --> S5
  S5 --> S6["bpStatus = param.getControlMapData（RETURN_CODE）"]
  S6 --> S7{"templateStatus > bpStatus"}
  S7 -->|"Yes"| S8["コントロールマップにRETURN_CODE/RETURN_MESSAGEを設定"]
  S7 -->|"No"| S9["スキップ"]
  S8 --> S10["業務データinMap取得（HAKKOSODCCWORKMAP）"]
  S9 --> S10
  S10 --> S11["各エラー項目（ODR_HAKKO_JOKEN_NO_ERR, ODR_NAIYO_CD_ERR, ...）をinMapに格納"]
  S11 --> RET["return param"]

  style S3 fill:#ffcc00
  style S7 fill:#ffcc00
  S3 -.- NOTE1["templateStatus = 9000 （エラー）"]
  S8 -.- NOTE2["RETURN_CODE, RETURN_MESSAGEをコントロールマップにセット"]
  style NOTE1 fill:#fff,stroke:#333,stroke-dasharray: 5 5
  style NOTE2 fill:#fff,stroke:#333,stroke-dasharray: 5 5
```

**処理ステップ詳細:**

1. templates[0]からtemplateStatus（STATUSフィールド）を取得
2. returnCode != 0ならtemplateStatusに9000をセット
3. JCMAPLConstMgrでRETURN_MESSAGE_xxxxが未定義ならtemplateStatusを0
4. bpStatus = param.getControlMapData(RETURN_CODE)から取得（なければ-1）
5. templateStatus > bpStatusならコントロールマップにRETURN_CODE/RETURN_MESSAGEを設定
6. 業務データinMap（HAKKOSODCCWORKMAP）を取得、なければ新規生成
7. templateの各エラー項目（ODR_HAKKO_JOKEN_NO_ERR, ODR_NAIYO_CD_ERR, SVC_KEI_NO_ERR, SVKEI_GADTM_ERR, SVC_KEI_UCWK_NO_ERR, SVKEIUW_GADTM_ERR, KKTK_SVC_KEI_NO_ERR, KKTSVKEI_GADTM_ERR, OP_SVC_KEI_NO_ERR, OPSVKEI_GADTM_ERR, SBOP_SVC_KEI_NO_ERR, SBOPSVKEI_GADTM_ERR, SEIOPSVC_KEI_NO_ERR, SEIOPSVKEI_GADTM_ERR, HUKA_INF_KEI_NO_ERR, HUKA_INF_KEI_GADTM_ERR, CHBF_SVKEI_GADTM_ERR, CHBF_SVKEIUW_GADTM_ERR, CHBF_KKTSVKEI_GADTM_ERR, CHBF_OPSVKEI_GADTM_ERR, CHBF_SBOPSVKEI_GADTM_ERR, CHBF_SEIOPSVKEI_GADTM_ERR）がnullでなければinMapに格納
8. paramを返却

---

#### 3. パラメータ分析

| No  | パラメータ名 | 型                    | 業務説明                               |
| --- | ------------ | --------------------- | -------------------------------------- |
| 1   | param        | IRequestParameterReadWrite | 業務データ保持領域                |
| 2   | templates    | CAANMsg[]             | SC応答テンプレート                     |
| 3   | returnCode   | int                   | 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 → editErrorInfo_EKK1551D010CBS` | - |
| 2 | `Screen:KKSV0008` | `KKSV0008OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 3 | `Screen:KKSV0009` | `KKSV0009OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 4 | `Screen:KKSV0031` | `KKSV0031OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 5 | `Screen:KKSV0073` | `KKSV0073OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 6 | `Screen:KKSV0136` | `KKSV0136OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 7 | `Screen:KKSV0162` | `KKSV0162OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 8 | `Screen:KKSV0428` | `KKSV0428OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 9 | `Screen:KKSV0429` | `KKSV0429OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |
| 10 | `Screen:KKSV0430` | `KKSV0430OPBPCheck.invokeCheck → getInvokeCBS → editErrorInfo_EKK1551D010CBS` | - |

##### 5.1 内部呼出元 (Internal Callers)

> 同クラス内で本メソッドを呼び出す内部メソッドの一覧です。

| # | 呼出元メソッド (Internal Caller) | 可視性 | 説明 (Javadoc抜粋) |
|---|---|---|---|
| 1 | `editResultRP_EKK1551D010CBS` | private | 下りマッピング（オーダ情報作成ワーク登録） <br> サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングします<br> <br> |
---
---

#### 📋 Per-Branch 詳細ブロック — `editErrorInfo_EKK1551D010CBS()`

> 各分岐を制御フロー構造に従い、ブロック単位で表示します（depth に応じたネスト）。

##### Block 1 — 🔀 IF `(returnCode != 0)` (L21687)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 9000;` |

##### Block 2 — 🔀 IF `(JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)` [JCMAPLC="JCMAPLC", RETURN_MESSAGE_="return_message_"] (L21691)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `templateStatus = 0;` |

##### Block 3 — 🔀 IF `(obj == null)` (L21698)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = -1;` |

##### Block 4 — ↪️ ELSE `(else)` (L21703)

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));` [➔ RETURN_CODE="returnCode" (リターンコード)] |

##### Block 5 — 🔀 IF `(templateStatus > bpStatus)` (L21707)

> 📌 BPにサービスコンポーネントのステータスを設定する。

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📦 VAR | `String formatStatus = String.format("%1$04d", templateStatus);` |
| 2 | 📦 VAR | `String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);` [➔ RETURN_MESSAGE_="return_message_"] |
| 3 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);` [➔ RETURN_CODE="returnCode" (リターンコード)] |
| 4 | ⚡ EXEC | `param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);` [➔ RETURN_MESSAGE="returnMessage" (リターンメッセージ)] |

##### Block 6 — 🔀 IF `(inMap == null)` (L21720)

> 📌 ユーザデータ情報

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | ⚡ EXEC | `inMap = new HashMap();` |
| 2 | ⚡ EXEC | `param.setData(JKKHakkoSODConstCC.HAKKOSODCCWORKMAP, inMap);` [➔ HAKKOSODCCWORKMAP="HakkoSODCCWORK"] \| |

##### Block 7 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO_ERR))` [ODR_HAKKO_JOKEN_NO_ERR="odr_hakko_joken_no_err"] (L21727)

> 📌 オーダ情報作成ワーク登録.オーダ発行条件番号 → オーダ発行条件番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_hakko_joken_no_err", template.getString(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO_ERR));` [➔ ODR_HAKKO_JOKEN_NO_ERR="odr_hakko_joken_no_err"] \| |

###### · Block 7.1 — 🔀 IF `(!inMap.containsKey("odr_hakko_joken_no_err"))` (L21729)

> 📌 オーダ情報作成ワーク登録.オーダ発行条件番号 → オーダ発行条件番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_hakko_joken_no_err", template.getString(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO_ERR));` [➔ ODR_HAKKO_JOKEN_NO_ERR="odr_hakko_joken_no_err"] \| |

##### Block 8 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.ODR_NAIYO_CD_ERR))` [ODR_NAIYO_CD_ERR="odr_naiyo_cd_err"] (L21735)

> 📌 オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_naiyo_cd_err", template.getString(EKK1551D010CBSMsg.ODR_NAIYO_CD_ERR));` [➔ ODR_NAIYO_CD_ERR="odr_naiyo_cd_err"] \| |

###### · Block 8.1 — 🔀 IF `(!inMap.containsKey("odr_naiyo_cd_err"))` (L21737)

> 📌 オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("odr_naiyo_cd_err", template.getString(EKK1551D010CBSMsg.ODR_NAIYO_CD_ERR));` [➔ ODR_NAIYO_CD_ERR="odr_naiyo_cd_err"] \| |

##### Block 9 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SVC_KEI_NO_ERR))` [SVC_KEI_NO_ERR="svc_kei_no_err"] (L21743)

> 📌 オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK1551D010CBSMsg.SVC_KEI_NO_ERR));` [➔ SVC_KEI_NO_ERR="svc_kei_no_err"] \| |

###### · Block 9.1 — 🔀 IF `(!inMap.containsKey("svc_kei_no_err"))` (L21745)

> 📌 オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_no_err", template.getString(EKK1551D010CBSMsg.SVC_KEI_NO_ERR));` [➔ SVC_KEI_NO_ERR="svc_kei_no_err"] \| |

##### Block 10 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SVKEI_GADTM_ERR))` [SVKEI_GADTM_ERR="svkei_gadtm_err"] (L21751)

> 📌 オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SVKEI_GADTM_ERR));` [➔ SVKEI_GADTM_ERR="svkei_gadtm_err"] \| |

###### · Block 10.1 — 🔀 IF `(!inMap.containsKey("svkei_gadtm_err"))` (L21753)

> 📌 オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SVKEI_GADTM_ERR));` [➔ SVKEI_GADTM_ERR="svkei_gadtm_err"] \| |

##### Block 11 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO_ERR))` [SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] (L21759)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO_ERR));` [➔ SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] \| |

###### · Block 11.1 — 🔀 IF `(!inMap.containsKey("svc_kei_ucwk_no_err"))` (L21761)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svc_kei_ucwk_no_err", template.getString(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO_ERR));` [➔ SVC_KEI_UCWK_NO_ERR="svc_kei_ucwk_no_err"] \| |

##### Block 12 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SVKEIUW_GADTM_ERR))` [SVKEIUW_GADTM_ERR="svkeiuw_gadtm_err"] (L21767)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svkeiuw_gadtm_err", template.getString(EKK1551D010CBSMsg.SVKEIUW_GADTM_ERR));` [➔ SVKEIUW_GADTM_ERR="svkeiuw_gadtm_err"] \| |

###### · Block 12.1 — 🔀 IF `(!inMap.containsKey("svkeiuw_gadtm_err"))` (L21769)

> 📌 オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("svkeiuw_gadtm_err", template.getString(EKK1551D010CBSMsg.SVKEIUW_GADTM_ERR));` [➔ SVKEIUW_GADTM_ERR="svkeiuw_gadtm_err"] \| |

##### Block 13 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO_ERR))` [KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] (L21775)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktk_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO_ERR));` [➔ KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] \| |

###### · Block 13.1 — 🔀 IF `(!inMap.containsKey("kktk_svc_kei_no_err"))` (L21777)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktk_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO_ERR));` [➔ KKTK_SVC_KEI_NO_ERR="kktk_svc_kei_no_err"] \| |

##### Block 14 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.KKTSVKEI_GADTM_ERR))` [KKTSVKEI_GADTM_ERR="kktsvkei_gadtm_err"] (L21783)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.KKTSVKEI_GADTM_ERR));` [➔ KKTSVKEI_GADTM_ERR="kktsvkei_gadtm_err"] \| |

###### · Block 14.1 — 🔀 IF `(!inMap.containsKey("kktsvkei_gadtm_err"))` (L21785)

> 📌 オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("kktsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.KKTSVKEI_GADTM_ERR));` [➔ KKTSVKEI_GADTM_ERR="kktsvkei_gadtm_err"] \| |

##### Block 15 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.OP_SVC_KEI_NO_ERR))` [OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] (L21791)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.OP_SVC_KEI_NO_ERR));` [➔ OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] \| |

###### · Block 15.1 — 🔀 IF `(!inMap.containsKey("op_svc_kei_no_err"))` (L21793)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("op_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.OP_SVC_KEI_NO_ERR));` [➔ OP_SVC_KEI_NO_ERR="op_svc_kei_no_err"] \| |

##### Block 16 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.OPSVKEI_GADTM_ERR))` [OPSVKEI_GADTM_ERR="opsvkei_gadtm_err"] (L21799)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("opsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.OPSVKEI_GADTM_ERR));` [➔ OPSVKEI_GADTM_ERR="opsvkei_gadtm_err"] \| |

###### · Block 16.1 — 🔀 IF `(!inMap.containsKey("opsvkei_gadtm_err"))` (L21801)

> 📌 オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("opsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.OPSVKEI_GADTM_ERR));` [➔ OPSVKEI_GADTM_ERR="opsvkei_gadtm_err"] \| |

##### Block 17 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO_ERR))` [SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] (L21807)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbop_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO_ERR));` [➔ SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] \| |

###### · Block 17.1 — 🔀 IF `(!inMap.containsKey("sbop_svc_kei_no_err"))` (L21809)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbop_svc_kei_no_err", template.getString(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO_ERR));` [➔ SBOP_SVC_KEI_NO_ERR="sbop_svc_kei_no_err"] \| |

##### Block 18 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SBOPSVKEI_GADTM_ERR))` [SBOPSVKEI_GADTM_ERR="sbopsvkei_gadtm_err"] (L21815)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SBOPSVKEI_GADTM_ERR));` [➔ SBOPSVKEI_GADTM_ERR="sbopsvkei_gadtm_err"] \| |

###### · Block 18.1 — 🔀 IF `(!inMap.containsKey("sbopsvkei_gadtm_err"))` (L21817)

> 📌 オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("sbopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SBOPSVKEI_GADTM_ERR));` [➔ SBOPSVKEI_GADTM_ERR="sbopsvkei_gadtm_err"] \| |

##### Block 19 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO_ERR))` [SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] (L21823)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvc_kei_no_err", template.getString(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO_ERR));` [➔ SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] \| |

###### · Block 19.1 — 🔀 IF `(!inMap.containsKey("seiopsvc_kei_no_err"))` (L21825)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvc_kei_no_err", template.getString(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO_ERR));` [➔ SEIOPSVC_KEI_NO_ERR="seiopsvc_kei_no_err"] \| |

##### Block 20 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM_ERR))` [SEIOPSVKEI_GADTM_ERR="seiopsvkei_gadtm_err"] (L21831)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM_ERR));` [➔ SEIOPSVKEI_GADTM_ERR="seiopsvkei_gadtm_err"] \| |

###### · Block 20.1 — 🔀 IF `(!inMap.containsKey("seiopsvkei_gadtm_err"))` (L21833)

> 📌 オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("seiopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM_ERR));` [➔ SEIOPSVKEI_GADTM_ERR="seiopsvkei_gadtm_err"] \| |

##### Block 21 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.HUKA_INF_KEI_NO_ERR))` [HUKA_INF_KEI_NO_ERR="huka_inf_kei_no_err"] (L21839)

> 📌 オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("huka_inf_kei_no_err", template.getString(EKK1551D010CBSMsg.HUKA_INF_KEI_NO_ERR));` [➔ HUKA_INF_KEI_NO_ERR="huka_inf_kei_no_err"] \| |

###### · Block 21.1 — 🔀 IF `(!inMap.containsKey("huka_inf_kei_no_err"))` (L21841)

> 📌 オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("huka_inf_kei_no_err", template.getString(EKK1551D010CBSMsg.HUKA_INF_KEI_NO_ERR));` [➔ HUKA_INF_KEI_NO_ERR="huka_inf_kei_no_err"] \| |

##### Block 22 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM_ERR))` [HUKA_INF_KEI_GADTM_ERR="huka_inf_kei_gadtm_err"] (L21847)

> 📌 オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("huka_inf_kei_gadtm_err", template.getString(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM_ERR));` [➔ HUKA_INF_KEI_GADTM_ERR="huka_inf_kei_gadtm_err"] \| |

###### · Block 22.1 — 🔀 IF `(!inMap.containsKey("huka_inf_kei_gadtm_err"))` (L21849)

> 📌 オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("huka_inf_kei_gadtm_err", template.getString(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM_ERR));` [➔ HUKA_INF_KEI_GADTM_ERR="huka_inf_kei_gadtm_err"] \| |

##### Block 23 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM_ERR))` [CHBF_SVKEI_GADTM_ERR="chbf_svkei_gadtm_err"] (L21855)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_svkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM_ERR));` [➔ CHBF_SVKEI_GADTM_ERR="chbf_svkei_gadtm_err"] \| |

###### · Block 23.1 — 🔀 IF `(!inMap.containsKey("chbf_svkei_gadtm_err"))` (L21857)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_svkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM_ERR));` [➔ CHBF_SVKEI_GADTM_ERR="chbf_svkei_gadtm_err"] \| |

##### Block 24 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM_ERR))` [CHBF_SVKEIUW_GADTM_ERR="chbf_svkeiuw_gadtm_err"] (L21863)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_svkeiuw_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM_ERR));` [➔ CHBF_SVKEIUW_GADTM_ERR="chbf_svkeiuw_gadtm_err"] \| |

###### · Block 24.1 — 🔀 IF `(!inMap.containsKey("chbf_svkeiuw_gadtm_err"))` (L21865)

> 📌 オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_svkeiuw_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM_ERR));` [➔ CHBF_SVKEIUW_GADTM_ERR="chbf_svkeiuw_gadtm_err"] \| |

##### Block 25 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM_ERR))` [CHBF_KKTSVKEI_GADTM_ERR="chbf_kktsvkei_gadtm_err"] (L21871)

> 📌 オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_kktsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM_ERR));` [➔ CHBF_KKTSVKEI_GADTM_ERR="chbf_kktsvkei_gadtm_err"] \| |

###### · Block 25.1 — 🔀 IF `(!inMap.containsKey("chbf_kktsvkei_gadtm_err"))` (L21873)

> 📌 オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_kktsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM_ERR));` [➔ CHBF_KKTSVKEI_GADTM_ERR="chbf_kktsvkei_gadtm_err"] \| |

##### Block 26 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM_ERR))` [CHBF_OPSVKEI_GADTM_ERR="chbf_opsvkei_gadtm_err"] (L21879)

> 📌 オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_opsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM_ERR));` [➔ CHBF_OPSVKEI_GADTM_ERR="chbf_opsvkei_gadtm_err"] \| |

###### · Block 26.1 — 🔀 IF `(!inMap.containsKey("chbf_opsvkei_gadtm_err"))` (L21881)

> 📌 オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_opsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM_ERR));` [➔ CHBF_OPSVKEI_GADTM_ERR="chbf_opsvkei_gadtm_err"] \| |

##### Block 27 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM_ERR))` [CHBF_SBOPSVKEI_GADTM_ERR="chbf_sbopsvkei_gadtm_err"] (L21887)

> 📌 オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_sbopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM_ERR));` [➔ CHBF_SBOPSVKEI_GADTM_ERR="chbf_sbopsvkei_gadtm_err"] \| |

###### · Block 27.1 — 🔀 IF `(!inMap.containsKey("chbf_sbopsvkei_gadtm_err"))` (L21889)

> 📌 オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_sbopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM_ERR));` [➔ CHBF_SBOPSVKEI_GADTM_ERR="chbf_sbopsvkei_gadtm_err"] \| |

##### Block 28 — 🔀 IF `(!template.isNull(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM_ERR))` [CHBF_SEIOPSVKEI_GADTM_ERR="chbf_seiopsvkei_gadtm_err"] (L21895)

> 📌 オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_seiopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM_ERR));` [➔ CHBF_SEIOPSVKEI_GADTM_ERR="chbf_seiopsvkei_gadtm_err"] \| |

###### · Block 28.1 — 🔀 IF `(!inMap.containsKey("chbf_seiopsvkei_gadtm_err"))` (L21897)

> 📌 オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 のエラー情報返却

| # | 種別 | 処理内容 |
|---|---|---|
| 1 | 📋 SET | `inMap.put("chbf_seiopsvkei_gadtm_err", template.getString(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM_ERR));` [➔ CHBF_SEIOPSVKEI_GADTM_ERR="chbf_seiopsvkei_gadtm_err"] \| |

> **合計**: 50 blocks (2 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)

### `editErrorInfo_EKK0351B002CBS()` (L24201) — 15 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (returnCode != 0) | - | - | - | L24207 |
| 2 | 🔀 IF | D0 | (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null) | - | - | - | L24211 |
| 3 | 🔀 IF | D0 | (obj == null) | - | - | - | L24218 |
| 4 | 🔀 ELSE | D0 | (else) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L24223 |
| 5 | 🔀 IF | D0 | (templateStatus > bpStatus) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L24227 |
| 6 | 🔀 IF | D0 | (inMap == null) | オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約番号 → ＫＥＹ＿サービス契約番号 のエラー情報返却 | - | - | L24240 |
| 7 | 🔀 IF | D0 | (!template.isNull(EKK0351B002CBSMsg.KEY_SVC_KEI_NO_ERR)) | - | - | - | L24247 |
| 8 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_no_err")) | オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約内訳番号 → ＫＥＹ＿サービス契約内訳番号 のエラー情報返却 | - | - | L24249 |
| 9 | 🔀 IF | D0 | (!template.isNull(EKK0351B002CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR)) | - | - | - | L24256 |
| 10 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_ucwk_no_err")) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービスコード → ＫＥＹ＿オプションサービスコード のエラー情報返却 | - | - | L24258 |
| 11 | 🔀 IF | D0 | (!template.isNull(EKK0351B002CBSMsg.KEY_OP_SVC_CD_ERR)) | - | - | - | L24265 |
| 12 | · 🔀 IF | D1 | (!inMap.containsKey("op_svc_cd_err")) | オプションサービス契約一覧照会（サービス契約番号）マップ.基準年月日 → ＫＥＹ＿基準年月日 のエラー情報返却 | - | - | L24267 |
| 13 | 🔀 IF | D0 | (!template.isNull(EKK0351B002CBSMsg.KEY_BASE_YMD_ERR)) | - | - | - | L24274 |
| 14 | · 🔀 IF | D1 | (!inMap.containsKey("base_ymd_err")) | - | - | - | L24276 |
| 15 | ↩️ RETURN | D0 | param | - | - | - | L24281 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editErrorInfo_EKK0351B002CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （returnCode != 0）"]
  CF0 -->|"L24207"| B0
  B1["IF: （JCMAPLConstMgr.getString（'RETURN_MESSAG…"]
  CF0 -->|"L24211"| B1
  B2["IF: （obj == null）"]
  CF0 -->|"L24218"| B2
  B3["ELSE"]
  CF0 -->|"L24223"| B3
  B4["IF: （templateStatus > bpStatus）"]
  CF0 -->|"L24227"| B4
  B5["IF: （inMap == null）"]
  CF0 -->|"L24240"| B5
  subgraph SG6["IF: （!template.isNull（EKK0351B002CBSMsg.KEY_…"]
    direction TB
    C6_0["IF: （!inMap.containsKey（'svc_kei_no_err…"]
  end
  CF0 -->|"L24247"| SG6
  subgraph SG7["IF: （!template.isNull（EKK0351B002CBSMsg.KEY_…"]
    direction TB
    C7_0["IF: （!inMap.containsKey（'svc_kei_ucwk_n…"]
  end
  CF0 -->|"L24256"| SG7
  subgraph SG8["IF: （!template.isNull（EKK0351B002CBSMsg.KEY_…"]
    direction TB
    C8_0["IF: （!inMap.containsKey（'op_svc_cd_err'…"]
  end
  CF0 -->|"L24265"| SG8
  subgraph SG9["IF: （!template.isNull（EKK0351B002CBSMsg.KEY_…"]
    direction TB
    C9_0["IF: （!inMap.containsKey（'base_ymd_err'）…"]
  end
  CF0 -->|"L24274"| SG9
  B10["RETURN: param"]
  CF0 -->|"L24281"| B10
```

### `editErrorInfo_EKK1081D010CBS()` (L21088) — 40 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (returnCode != 0) | - | - | - | L21095 |
| 2 | 🔀 IF | D0 | (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null) | - | - | - | L21099 |
| 3 | 🔀 IF | D0 | (obj == null) | - | - | - | L21106 |
| 4 | 🔀 ELSE | D0 | (else) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L21111 |
| 5 | 🔀 IF | D0 | (templateStatus > bpStatus) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L21115 |
| 6 | 🔀 IF | D0 | (workMap == null) | ユーザデータ情報 | - | - | L21128 |
| 7 | 🔀 IF | D0 | (inMap == null) | オーダ発行条件登録マップ.サービス契約番号 → サービス契約番号 のエラー情報返却 | - | - | L21136 |
| 8 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SVC_KEI_NO_ERR)) | オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却 | - | - | L21143 |
| 9 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_no_err")) | オーダ発行条件登録マップ.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却 | - | - | L21145 |
| 10 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO_ERR)) | オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却 | - | - | L21151 |
| 11 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_ucwk_no_err")) | オーダ発行条件登録マップ.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却 | - | - | L21153 |
| 12 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO_ERR)) | オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却 | - | - | L21159 |
| 13 | · 🔀 IF | D1 | (!inMap.containsKey("kktk_svc_kei_no_err")) | オーダ発行条件登録マップ.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却 | - | - | L21161 |
| 14 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.OP_SVC_KEI_NO_ERR)) | オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却 | - | - | L21167 |
| 15 | · 🔀 IF | D1 | (!inMap.containsKey("op_svc_kei_no_err")) | オーダ発行条件登録マップ.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却 | - | - | L21169 |
| 16 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SBOP_SVC_KEI_NO_ERR)) | オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却 | - | - | L21175 |
| 17 | · 🔀 IF | D1 | (!inMap.containsKey("sbop_svc_kei_no_err")) | オーダ発行条件登録マップ.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却 | - | - | L21177 |
| 18 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SEIOPSVC_KEI_NO_ERR)) | オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード のエラー情報返却 | - | - | L21183 |
| 19 | · 🔀 IF | D1 | (!inMap.containsKey("seiopsvc_kei_no_err")) | オーダ発行条件登録マップ.オーダ種別コード → オーダ種別コード のエラー情報返却 | - | - | L21185 |
| 20 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.ORDER_SBT_CD_ERR)) | オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード のエラー情報返却 | - | - | L21191 |
| 21 | · 🔀 IF | D1 | (!inMap.containsKey("order_sbt_cd_err")) | オーダ発行条件登録マップ.サービスオーダコード → サービスオーダコード のエラー情報返却 | - | - | L21193 |
| 22 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SVC_ORDER_CD_ERR)) | オーダ発行条件登録マップ.要求種別コード → 要求種別コード のエラー情報返却 | - | - | L21199 |
| 23 | · 🔀 IF | D1 | (!inMap.containsKey("svc_order_cd_err")) | オーダ発行条件登録マップ.要求種別コード → 要求種別コード のエラー情報返却 | - | - | L21201 |
| 24 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.YOKYU_SBT_CD_ERR)) | オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード のエラー情報返却 | - | - | L21207 |
| 25 | · 🔀 IF | D1 | (!inMap.containsKey("yokyu_sbt_cd_err")) | オーダ発行条件登録マップ.オーダ発行条件コード → オーダ発行条件コード のエラー情報返却 | - | - | L21209 |
| 26 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD_ERR)) | オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 のエラー情報返却 | - | - | L21215 |
| 27 | · 🔀 IF | D1 | (!inMap.containsKey("odr_hakko_joken_cd_err")) | オーダ発行条件登録マップ.同一処理番号 → 同一処理番号 のエラー情報返却 | - | - | L21217 |
| 28 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SAME_TRN_NO_ERR)) | オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード のエラー情報返却 | - | - | L21223 |
| 29 | · 🔀 IF | D1 | (!inMap.containsKey("same_trn_no_err")) | オーダ発行条件登録マップ.宅内機器型式コード → 宅内機器型式コード のエラー情報返却 | - | - | L21225 |
| 30 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD_ERR)) | オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 のエラー情報返却 | - | - | L21231 |
| 31 | · 🔀 IF | D1 | (!inMap.containsKey("taknkiki_model_cd_err")) | オーダ発行条件登録マップ.機器製造番号 → 機器製造番号 のエラー情報返却 | - | - | L21233 |
| 32 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.KIKI_SEIZO_NO_ERR)) | オーダ発行条件登録マップ.メールアドレス → メールアドレス のエラー情報返却 | - | - | L21239 |
| 33 | · 🔀 IF | D1 | (!inMap.containsKey("kiki_seizo_no_err")) | オーダ発行条件登録マップ.メールアドレス → メールアドレス のエラー情報返却 | - | - | L21241 |
| 34 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.MLAD_ERR)) | オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ のエラー情報返却 | - | - | L21247 |
| 35 | · 🔀 IF | D1 | (!inMap.containsKey("mlad_err")) | オーダ発行条件登録マップ.スポットログインＳＹＳＩＤ → スポットログインＳＹＳＩＤ のエラー情報返却 | - | - | L21249 |
| 36 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SPOT_LOGIN_SYSID_ERR)) | オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 のエラー情報返却 | - | - | L21255 |
| 37 | · 🔀 IF | D1 | (!inMap.containsKey("spot_login_sysid_err")) | オーダ発行条件登録マップ.送信依頼完了年月日時分秒 → 送信依頼完了年月日時分秒 のエラー情報返却 | - | - | L21257 |
| 38 | 🔀 IF | D0 | (!template.isNull(EKK1081D010CBSMsg.SEND_REQ_FIN_DTM_ERR)) | - | - | - | L21263 |
| 39 | · 🔀 IF | D1 | (!inMap.containsKey("send_req_fin_dtm_err")) | - | - | - | L21265 |
| 40 | ↩️ RETURN | D0 | param | - | - | - | L21270 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editErrorInfo_EKK1081D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （returnCode != 0）"]
  CF0 -->|"L21095"| B0
  B1["IF: （JCMAPLConstMgr.getString（'RETURN_MESSAG…"]
  CF0 -->|"L21099"| B1
  B2["IF: （obj == null）"]
  CF0 -->|"L21106"| B2
  B3["ELSE"]
  CF0 -->|"L21111"| B3
  B4["IF: （templateStatus > bpStatus）"]
  CF0 -->|"L21115"| B4
  B5["IF: （workMap == null）"]
  CF0 -->|"L21128"| B5
  B6["IF: （inMap == null）"]
  CF0 -->|"L21136"| B6
  subgraph SG7["IF: （!template.isNull（EKK1081D010CBSMsg.SVC_…"]
    direction TB
    C7_0["IF: （!inMap.containsKey（'svc_kei_no_err…"]
  end
  CF0 -->|"L21143"| SG7
  subgraph SG8["IF: （!template.isNull（EKK1081D010CBSMsg.SVC_…"]
    direction TB
    C8_0["IF: （!inMap.containsKey（'svc_kei_ucwk_n…"]
  end
  CF0 -->|"L21151"| SG8
  subgraph SG9["IF: （!template.isNull（EKK1081D010CBSMsg.KKTK…"]
    direction TB
    C9_0["IF: （!inMap.containsKey（'kktk_svc_kei_n…"]
  end
  CF0 -->|"L21159"| SG9
  subgraph SG10["IF: （!template.isNull（EKK1081D010CBSMsg.OP_S…"]
    direction TB
    C10_0["IF: （!inMap.containsKey（'op_svc_kei_no_…"]
  end
  CF0 -->|"L21167"| SG10
  subgraph SG11["IF: （!template.isNull（EKK1081D010CBSMsg.SBOP…"]
    direction TB
    C11_0["IF: （!inMap.containsKey（'sbop_svc_kei_n…"]
  end
  CF0 -->|"L21175"| SG11
  subgraph SG12["IF: （!template.isNull（EKK1081D010CBSMsg.SEIO…"]
    direction TB
    C12_0["IF: （!inMap.containsKey（'seiopsvc_kei_n…"]
  end
  CF0 -->|"L21183"| SG12
  subgraph SG13["IF: （!template.isNull（EKK1081D010CBSMsg.ORDE…"]
    direction TB
    C13_0["IF: （!inMap.containsKey（'order_sbt_cd_e…"]
  end
  CF0 -->|"L21191"| SG13
  subgraph SG14["IF: （!template.isNull（EKK1081D010CBSMsg.SVC_…"]
    direction TB
    C14_0["IF: （!inMap.containsKey（'svc_order_cd_e…"]
  end
  CF0 -->|"L21199"| SG14
  subgraph SG15["IF: （!template.isNull（EKK1081D010CBSMsg.YOKY…"]
    direction TB
    C15_0["IF: （!inMap.containsKey（'yokyu_sbt_cd_e…"]
  end
  CF0 -->|"L21207"| SG15
  subgraph SG16["IF: （!template.isNull（EKK1081D010CBSMsg.ODR_…"]
    direction TB
    C16_0["IF: （!inMap.containsKey（'odr_hakko_joke…"]
  end
  CF0 -->|"L21215"| SG16
  subgraph SG17["IF: （!template.isNull（EKK1081D010CBSMsg.SAME…"]
    direction TB
    C17_0["IF: （!inMap.containsKey（'same_trn_no_er…"]
  end
  CF0 -->|"L21223"| SG17
  subgraph SG18["IF: （!template.isNull（EKK1081D010CBSMsg.TAKN…"]
    direction TB
    C18_0["IF: （!inMap.containsKey（'taknkiki_model…"]
  end
  CF0 -->|"L21231"| SG18
  subgraph SG19["IF: （!template.isNull（EKK1081D010CBSMsg.KIKI…"]
    direction TB
    C19_0["IF: （!inMap.containsKey（'kiki_seizo_no_…"]
  end
  CF0 -->|"L21239"| SG19
  subgraph SG20["IF: （!template.isNull（MLAD（=mlad）…"]
    direction TB
    C20_0["IF: （!inMap.containsKey（'mlad_err'））"]
  end
  CF0 -->|"L21247"| SG20
  subgraph SG21["IF: （!template.isNull（EKK1081D010CBSMsg.SPOT…"]
    direction TB
    C21_0["IF: （!inMap.containsKey（'spot_login_sys…"]
  end
  CF0 -->|"L21255"| SG21
  subgraph SG22["IF: （!template.isNull（EKK1081D010CBSMsg.SEND…"]
    direction TB
    C22_0["IF: （!inMap.containsKey（'send_req_fin_d…"]
  end
  CF0 -->|"L21263"| SG22
  B23["RETURN: param"]
  CF0 -->|"L21270"| B23
```

### `editErrorInfo_EKK1551D010CBS()` (L21681) — 51 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (returnCode != 0) | - | - | - | L21687 |
| 2 | 🔀 IF | D0 | (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null) | - | - | - | L21691 |
| 3 | 🔀 IF | D0 | (obj == null) | - | - | - | L21698 |
| 4 | 🔀 ELSE | D0 | (else) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L21703 |
| 5 | 🔀 IF | D0 | (templateStatus > bpStatus) | BPにサービスコンポーネントのステータスを設定する。 | - | - | L21707 |
| 6 | 🔀 IF | D0 | (inMap == null) | オーダ情報作成ワーク登録.オーダ発行条件番号 → オーダ発行条件番号 のエラー情報返却 | - | - | L21720 |
| 7 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO_ERR)) | オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード のエラー情報返却 | - | - | L21727 |
| 8 | · 🔀 IF | D1 | (!inMap.containsKey("odr_hakko_joken_no_err")) | オーダ情報作成ワーク登録.オーダ内容コード → オーダ内容コード のエラー情報返却 | - | - | L21729 |
| 9 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.ODR_NAIYO_CD_ERR)) | オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 のエラー情報返却 | - | - | L21735 |
| 10 | · 🔀 IF | D1 | (!inMap.containsKey("odr_naiyo_cd_err")) | オーダ情報作成ワーク登録.サービス契約番号 → サービス契約番号 のエラー情報返却 | - | - | L21737 |
| 11 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SVC_KEI_NO_ERR)) | オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21743 |
| 12 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_no_err")) | オーダ情報作成ワーク登録.サービス契約世代登録年月日時分秒 → サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21745 |
| 13 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却 | - | - | L21751 |
| 14 | · 🔀 IF | D1 | (!inMap.containsKey("svkei_gadtm_err")) | オーダ情報作成ワーク登録.サービス契約内訳番号 → サービス契約内訳番号 のエラー情報返却 | - | - | L21753 |
| 15 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO_ERR)) | オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 のエラー情報返却 | - | - | L21759 |
| 16 | · 🔀 IF | D1 | (!inMap.containsKey("svc_kei_ucwk_no_err")) | オーダ情報作成ワーク登録.サービス契約内訳世代登録年月日時分秒 → サービス契約内訳世代登録年月日時分秒 のエラー情報返却 | - | - | L21761 |
| 17 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SVKEIUW_GADTM_ERR)) | オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却 | - | - | L21767 |
| 18 | · 🔀 IF | D1 | (!inMap.containsKey("svkeiuw_gadtm_err")) | オーダ情報作成ワーク登録.機器提供サービス契約番号 → 機器提供サービス契約番号 のエラー情報返却 | - | - | L21769 |
| 19 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO_ERR)) | オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21775 |
| 20 | · 🔀 IF | D1 | (!inMap.containsKey("kktk_svc_kei_no_err")) | オーダ情報作成ワーク登録.機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21777 |
| 21 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.KKTSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却 | - | - | L21783 |
| 22 | · 🔀 IF | D1 | (!inMap.containsKey("kktsvkei_gadtm_err")) | オーダ情報作成ワーク登録.オプションサービス契約番号 → オプションサービス契約番号 のエラー情報返却 | - | - | L21785 |
| 23 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.OP_SVC_KEI_NO_ERR)) | オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21791 |
| 24 | · 🔀 IF | D1 | (!inMap.containsKey("op_svc_kei_no_err")) | オーダ情報作成ワーク登録.オプションサービス契約世代登録年月日時分秒 → オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21793 |
| 25 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.OPSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却 | - | - | L21799 |
| 26 | · 🔀 IF | D1 | (!inMap.containsKey("opsvkei_gadtm_err")) | オーダ情報作成ワーク登録.サブオプションサービス契約番号 → サブオプションサービス契約番号 のエラー情報返却 | - | - | L21801 |
| 27 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SBOP_SVC_KEI_NO_ERR)) | オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21807 |
| 28 | · 🔀 IF | D1 | (!inMap.containsKey("sbop_svc_kei_no_err")) | オーダ情報作成ワーク登録.サブオプションサービス契約世代登録年月日時分秒 → サブオプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21809 |
| 29 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SBOPSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却 | - | - | L21815 |
| 30 | · 🔀 IF | D1 | (!inMap.containsKey("sbopsvkei_gadtm_err")) | オーダ情報作成ワーク登録.請求オプションサービス契約番号 → 請求オプションサービス契約番号 のエラー情報返却 | - | - | L21817 |
| 31 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SEIOPSVC_KEI_NO_ERR)) | オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21823 |
| 32 | · 🔀 IF | D1 | (!inMap.containsKey("seiopsvc_kei_no_err")) | オーダ情報作成ワーク登録.請求オプションサービス契約世代登録年月日時分秒 → 請求オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21825 |
| 33 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.SEIOPSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 のエラー情報返却 | - | - | L21831 |
| 34 | · 🔀 IF | D1 | (!inMap.containsKey("seiopsvkei_gadtm_err")) | オーダ情報作成ワーク登録.付加情報契約番号 → 付加情報契約番号 のエラー情報返却 | - | - | L21833 |
| 35 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.HUKA_INF_KEI_NO_ERR)) | オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21839 |
| 36 | · 🔀 IF | D1 | (!inMap.containsKey("huka_inf_kei_no_err")) | オーダ情報作成ワーク登録.付加情報契約世代登録年月日時分秒 → 付加情報契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21841 |
| 37 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.HUKA_INF_KEI_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21847 |
| 38 | · 🔀 IF | D1 | (!inMap.containsKey("huka_inf_kei_gadtm_err")) | オーダ情報作成ワーク登録.変更前サービス契約世代登録年月日時分秒 → 変更前サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21849 |
| 39 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_SVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 のエラー情報返却 | - | - | L21855 |
| 40 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_svkei_gadtm_err")) | オーダ情報作成ワーク登録.変更前サービス契約内訳世代登録年月日時分秒 → 変更前サービス契約内訳世代登録年月日時分秒 のエラー情報返却 | - | - | L21857 |
| 41 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_SVKEIUW_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21863 |
| 42 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_svkeiuw_gadtm_err")) | オーダ情報作成ワーク登録.変更前機器提供サービス契約世代登録年月日時分秒 → 変更前機器提供サービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21865 |
| 43 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_KKTSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21871 |
| 44 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_kktsvkei_gadtm_err")) | オーダ情報作成ワーク登録.変更前オプションサービス契約世代登録年月日時分秒 → 変更前オプションサービス契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21873 |
| 45 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_OPSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21879 |
| 46 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_opsvkei_gadtm_err")) | オーダ情報作成ワーク登録.変更前サブオプション契約世代登録年月日時分秒 → 変更前サブオプション契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21881 |
| 47 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_SBOPSVKEI_GADTM_ERR)) | オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21887 |
| 48 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_sbopsvkei_gadtm_err")) | オーダ情報作成ワーク登録.変更前請求オプション契約世代登録年月日時分秒 → 変更前請求オプション契約世代登録年月日時分秒 のエラー情報返却 | - | - | L21889 |
| 49 | 🔀 IF | D0 | (!template.isNull(EKK1551D010CBSMsg.CHBF_SEIOPSVKEI_GADTM_ERR)) | - | - | - | L21895 |
| 50 | · 🔀 IF | D1 | (!inMap.containsKey("chbf_seiopsvkei_gadtm_err")) | - | - | - | L21897 |
| 51 | ↩️ RETURN | D0 | param | - | - | - | L21902 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editErrorInfo_EKK1551D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （returnCode != 0）"]
  CF0 -->|"L21687"| B0
  B1["IF: （JCMAPLConstMgr.getString（'RETURN_MESSAG…"]
  CF0 -->|"L21691"| B1
  B2["IF: （obj == null）"]
  CF0 -->|"L21698"| B2
  B3["ELSE"]
  CF0 -->|"L21703"| B3
  B4["IF: （templateStatus > bpStatus）"]
  CF0 -->|"L21707"| B4
  B5["IF: （inMap == null）"]
  CF0 -->|"L21720"| B5
  subgraph SG6["IF: （!template.isNull（EKK1551D010CBSMsg.ODR_…"]
    direction TB
    C6_0["IF: （!inMap.containsKey（'odr_hakko_joke…"]
  end
  CF0 -->|"L21727"| SG6
  subgraph SG7["IF: （!template.isNull（EKK1551D010CBSMsg.ODR_…"]
    direction TB
    C7_0["IF: （!inMap.containsKey（'odr_naiyo_cd_e…"]
  end
  CF0 -->|"L21735"| SG7
  subgraph SG8["IF: （!template.isNull（EKK1551D010CBSMsg.SVC_…"]
    direction TB
    C8_0["IF: （!inMap.containsKey（'svc_kei_no_err…"]
  end
  CF0 -->|"L21743"| SG8
  subgraph SG9["IF: （!template.isNull（EKK1551D010CBSMsg.SVKE…"]
    direction TB
    C9_0["IF: （!inMap.containsKey（'svkei_gadtm_er…"]
  end
  CF0 -->|"L21751"| SG9
  subgraph SG10["IF: （!template.isNull（EKK1551D010CBSMsg.SVC_…"]
    direction TB
    C10_0["IF: （!inMap.containsKey（'svc_kei_ucwk_n…"]
  end
  CF0 -->|"L21759"| SG10
  subgraph SG11["IF: （!template.isNull（EKK1551D010CBSMsg.SVKE…"]
    direction TB
    C11_0["IF: （!inMap.containsKey（'svkeiuw_gadtm_…"]
  end
  CF0 -->|"L21767"| SG11
  subgraph SG12["IF: （!template.isNull（EKK1551D010CBSMsg.KKTK…"]
    direction TB
    C12_0["IF: （!inMap.containsKey（'kktk_svc_kei_n…"]
  end
  CF0 -->|"L21775"| SG12
  subgraph SG13["IF: （!template.isNull（EKK1551D010CBSMsg.KKTS…"]
    direction TB
    C13_0["IF: （!inMap.containsKey（'kktsvkei_gadtm…"]
  end
  CF0 -->|"L21783"| SG13
  subgraph SG14["IF: （!template.isNull（EKK1551D010CBSMsg.OP_S…"]
    direction TB
    C14_0["IF: （!inMap.containsKey（'op_svc_kei_no_…"]
  end
  CF0 -->|"L21791"| SG14
  subgraph SG15["IF: （!template.isNull（EKK1551D010CBSMsg.OPSV…"]
    direction TB
    C15_0["IF: （!inMap.containsKey（'opsvkei_gadtm_…"]
  end
  CF0 -->|"L21799"| SG15
  subgraph SG16["IF: （!template.isNull（EKK1551D010CBSMsg.SBOP…"]
    direction TB
    C16_0["IF: （!inMap.containsKey（'sbop_svc_kei_n…"]
  end
  CF0 -->|"L21807"| SG16
  subgraph SG17["IF: （!template.isNull（EKK1551D010CBSMsg.SBOP…"]
    direction TB
    C17_0["IF: （!inMap.containsKey（'sbopsvkei_gadt…"]
  end
  CF0 -->|"L21815"| SG17
  subgraph SG18["IF: （!template.isNull（EKK1551D010CBSMsg.SEIO…"]
    direction TB
    C18_0["IF: （!inMap.containsKey（'seiopsvc_kei_n…"]
  end
  CF0 -->|"L21823"| SG18
  subgraph SG19["IF: （!template.isNull（EKK1551D010CBSMsg.SEIO…"]
    direction TB
    C19_0["IF: （!inMap.containsKey（'seiopsvkei_gad…"]
  end
  CF0 -->|"L21831"| SG19
  subgraph SG20["IF: （!template.isNull（EKK1551D010CBSMsg.HUKA…"]
    direction TB
    C20_0["IF: （!inMap.containsKey（'huka_inf_kei_n…"]
  end
  CF0 -->|"L21839"| SG20
  subgraph SG21["IF: （!template.isNull（EKK1551D010CBSMsg.HUKA…"]
    direction TB
    C21_0["IF: （!inMap.containsKey（'huka_inf_kei_g…"]
  end
  CF0 -->|"L21847"| SG21
  subgraph SG22["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C22_0["IF: （!inMap.containsKey（'chbf_svkei_gad…"]
  end
  CF0 -->|"L21855"| SG22
  subgraph SG23["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C23_0["IF: （!inMap.containsKey（'chbf_svkeiuw_g…"]
  end
  CF0 -->|"L21863"| SG23
  subgraph SG24["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C24_0["IF: （!inMap.containsKey（'chbf_kktsvkei_…"]
  end
  CF0 -->|"L21871"| SG24
  subgraph SG25["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C25_0["IF: （!inMap.containsKey（'chbf_opsvkei_g…"]
  end
  CF0 -->|"L21879"| SG25
  subgraph SG26["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C26_0["IF: （!inMap.containsKey（'chbf_sbopsvkei…"]
  end
  CF0 -->|"L21887"| SG26
  subgraph SG27["IF: （!template.isNull（EKK1551D010CBSMsg.CHBF…"]
    direction TB
    C27_0["IF: （!inMap.containsKey（'chbf_seiopsvke…"]
  end
  CF0 -->|"L21895"| SG27
  B28["RETURN: param"]
  CF0 -->|"L21902"| B28
```

### `editInMsg_EKK0351B002CBS()` (L23933) — 5 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("svc_kei_no") == null ｜｜ "".equals(inMap.get("svc_kei_no"))) | オプションサービス契約一覧照会（サービス契約番号）マップ.サービス契約番号 → ＫＥＹ＿サービス契約番号 | - | - | L23982 |
| 2 | 🔀 ELSE | D0 | (else) | 2012-01-13ADD ↓↓↓ | - | - | L23987 |
| 3 | 🔀 IF | D0 | (yykSvcKeiUcwkNo == null ｜｜ "".equals(yykSvcKeiUcwkNo)) | IT1-2012-0001922 2012/11/07 start | - | - | L23993 |
| 4 | 🔀 ELSE | D0 | (else) | IT1-2012-0001922 2012/11/07 end | - | - | L23995 |
| 5 | ↩️ RETURN | D0 | paramMap | - | - | - | L24007 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editInMsg_EKK0351B002CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （inMap == null || inMap.get（'svc_kei_no'…"]
  CF0 -->|"L23982"| B0
  B1["ELSE"]
  CF0 -->|"L23987"| B1
  B2["IF: （yykSvcKeiUcwkNo == null || ''.equals（yy…"]
  CF0 -->|"L23993"| B2
  B3["ELSE"]
  CF0 -->|"L23995"| B3
  B4["RETURN: paramMap"]
  CF0 -->|"L24007"| B4
```

### `editInMsg_EKK0361A010CBS()` (L24293) — 5 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("op_svc_kei_no") == null ｜｜ "".equals(inMap.get("op_svc_kei_no"))) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約番号 → ＫＥＹ＿オプションサービス契約番号 | - | - | L24342 |
| 2 | 🔀 ELSE | D0 | (else) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒 | - | - | L24347 |
| 3 | 🔀 IF | D0 | (inMap == null ｜｜ inMap.get("gene_add_dtm") == null ｜｜ "".equals(inMap.get("gene_add_dtm"))) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.世代登録年月日時分秒 → ＫＥＹ＿世代登録年月日時分秒 | - | - | L24352 |
| 4 | 🔀 ELSE | D0 | (else) | - | - | - | L24357 |
| 5 | ↩️ RETURN | D0 | paramMap | - | - | - | L24365 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editInMsg_EKK0361A010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （inMap == null || inMap.get（'op_svc_kei_…"]
  CF0 -->|"L24342"| B0
  B1["ELSE"]
  CF0 -->|"L24347"| B1
  B2["IF: （inMap == null || inMap.get（'gene_add_dt…"]
  CF0 -->|"L24352"| B2
  B3["ELSE"]
  CF0 -->|"L24357"| B3
  B4["RETURN: paramMap"]
  CF0 -->|"L24365"| B4
```

### `editResultRP_EKK0081A010CBS()` (L26146) — 29 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (dataMap == null) | - | - | - | L26164 |
| 2 | 🔀 IF | D0 | (dataList == null) | - | - | - | L26172 |
| 3 | 🔀 IF | D0 | (templateArray != null) | - | - | `editErrorInfo_EKK0081A010CBS()` | L26177 |
| 4 | · 🔁 FOR | D1 | (for-loop) | - | - | `editErrorInfo_EKK0081A010CBS()` | L26179 |
| 5 | ·· 🔀 IF | D2 | (i >= dataList.size()) | サービス契約一意照会.サービス契約一意照会明細.世代登録年月日時分秒 ← サービス契約一意照会明細.世代登録年月日時分秒 | - | - | L26182 |
| 6 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.GENE_ADD_DTM)) | - | GENE_ADD_DTM=gene_add_dtm | - | L26190 |
| 7 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.申込明細番号 ← サービス契約一意照会明細.申込明細番号 | - | - | L26195 |
| 8 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.MSKM_DTL_NO)) | - | MSKM_DTL_NO=mskm_dtl_no | - | L26199 |
| 9 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.料金グループコード ← サービス契約一意照会明細.料金グループコード | - | - | L26204 |
| 10 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.PRC_GRP_CD)) | - | PRC_GRP_CD= | - | L26208 |
| 11 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.料金コースコード ← サービス契約一意照会明細.料金コースコード | - | - | L26213 |
| 12 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.PCRS_CD)) | - | PCRS_CD=pcrs_cd | - | L26217 |
| 13 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.サービス契約ステータス ← サービス契約一意照会明細.サービス契約ステータス | - | - | L26222 |
| 14 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_KEI_STAT)) | - | SVC_KEI_STAT= | - | L26226 |
| 15 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.サービス休止年月日 ← サービス契約一意照会明細.サービス休止年月日 | - | - | L26231 |
| 16 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_YMD)) | - | SVC_PAUSE_YMD= | - | L26235 |
| 17 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.サービス休止解除年月日 ← サービス契約一意照会明細.サービス休止解除年月日 | - | - | L26240 |
| 18 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD)) | - | SVC_PAUSE_RLS_YMD= | - | L26244 |
| 19 | ·· 🔀 ELSE | D2 | (else) | サービス契約一意照会.サービス契約一意照会明細.休止中断コード ← サービス契約一意照会明細.休止中断コード | - | - | L26249 |
| 20 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.PAUSE_STP_CD)) | - | PAUSE_STP_CD= | - | L26253 |
| 21 | ·· 🔀 ELSE | D2 | (else) | ANK-2765-00-00 ADD START | - | - | L26258 |
| 22 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.PPLAN_CD)) | - | PPLAN_CD= | - | L26263 |
| 23 | ·· 🔀 ELSE | D2 | (else) | ANK-2765-00-00 ADD END | - | - | L26268 |
| 24 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO)) | - | - | - | L26274 |
| 25 | ·· 🔀 ELSE | D2 | (else) | ANK-3989-00-00 ADD END | - | `editErrorInfo_EKK0081A010CBS()` | L26279 |
| 26 | 🔀 IF | D0 | (errList == null) | コントロールマップに設定 | - | - | L26292 |
| 27 | 🔀 IF | D0 | (errList != null && !errList.isEmpty()) | - | - | - | L26300 |
| 28 | · ⚠️ THROW | D1 | new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0341B002CBSMsg.STATUS))) | - | - | - | L26302 |
| 29 | ↩️ RETURN | D0 | param | - | - | - | L26305 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editResultRP_EKK0081A010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （dataMap == null）"]
  CF0 -->|"L26164"| B0
  B1["IF: （dataList == null）"]
  CF0 -->|"L26172"| B1
  subgraph SG2["IF: （templateArray != null）"]
    direction TB
    C2_0["FOR: …"]
  end
  CF0 -->|"L26177"| SG2
  B3["IF: （errList == null）"]
  CF0 -->|"L26292"| B3
  subgraph SG4["IF: （errList != null && !errList.isEmpty（））"]
    direction TB
    C4_0["THROW: new CCException（'', new SCCall…"]
  end
  CF0 -->|"L26300"| SG4
  B5["RETURN: param"]
  CF0 -->|"L26305"| B5
```

### `editResultRP_EKK0351B002CBS()` (L24020) — 27 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (dataMap == null) | - | EKK0351B002CBSMSG1LIST=EKK0351B002CBSMsg1List | - | L24038 |
| 2 | 🔀 IF | D0 | (dataList == null) | - | - | - | L24046 |
| 3 | 🔀 IF | D0 | (templateArray != null) | - | - | `editErrorInfo_EKK0351B002CBS()` | L24051 |
| 4 | · 🔁 FOR | D1 | (for-loop) | - | - | `editErrorInfo_EKK0351B002CBS()` | L24053 |
| 5 | ·· 🔀 IF | D2 | (i >= dataList.size()) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービスコード名称 | - | - | L24056 |
| 6 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD_NM)) | - | - | - | L24065 |
| 7 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ. | - | - | L24070 |
| 8 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)) | - | - | - | L24077 |
| 9 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス内容 | - | - | L24082 |
| 10 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_NIY)) | - | - | - | L24088 |
| 11 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.サービス開始年月日 | - | - | L24093 |
| 12 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_STAYMD)) | - | - | - | L24099 |
| 13 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.予約適用開始希望年月日 | - | - | L24104 |
| 14 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.RSV_TSTA_KIBO_YMD)) | - | - | - | L24110 |
| 15 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.サービス終了年月日 | - | - | L24115 |
| 16 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.SVC_ENDYMD)) | - | SVC_ENDYMD=svc_endymd | - | L24121 |
| 17 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約番号 | - | - | L24126 |
| 18 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO)) | - | OP_SVC_KEI_NO=op_svc_kei_no | - | L24132 |
| 19 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービスコード | - | - | L24137 |
| 20 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.OP_SVC_CD)) | - | OP_SVC_CD=op_svc_cd | - | L24143 |
| 21 | ·· 🔀 ELSE | D2 | (else) | IT1-2012-0001922 2012/11/07 start | - | - | L24148 |
| 22 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0351B002CBSMsg1List.GENE_ADD_DTM)) | - | GENE_ADD_DTM=gene_add_dtm | - | L24155 |
| 23 | ·· 🔀 ELSE | D2 | (else) | IT1-2012-0001922 2012/11/07 end | - | `editErrorInfo_EKK0351B002CBS()` | L24160 |
| 24 | 🔀 IF | D0 | (errList == null) | コントロールマップに設定 | - | - | L24173 |
| 25 | 🔀 IF | D0 | (errList != null && !errList.isEmpty()) | - | - | - | L24181 |
| 26 | · ⚠️ THROW | D1 | new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0351B002CBSMsg.STATUS))) | - | - | - | L24183 |
| 27 | ↩️ RETURN | D0 | param | - | - | - | L24186 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editResultRP_EKK0351B002CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （dataMap == null）"]
  CF0 -->|"L24038"| B0
  B1["IF: （dataList == null）"]
  CF0 -->|"L24046"| B1
  subgraph SG2["IF: （templateArray != null）"]
    direction TB
    C2_0["FOR: …"]
  end
  CF0 -->|"L24051"| SG2
  B3["IF: （errList == null）"]
  CF0 -->|"L24173"| B3
  subgraph SG4["IF: （errList != null && !errList.isEmpty（））"]
    direction TB
    C4_0["THROW: new CCException（'', new SCCall…"]
  end
  CF0 -->|"L24181"| SG4
  B5["RETURN: param"]
  CF0 -->|"L24186"| B5
```

### `editResultRP_EKK0361A010CBS()` (L24378) — 19 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (dataMap == null) | - | - | - | L24396 |
| 2 | 🔀 IF | D0 | (dataList == null) | - | - | - | L24404 |
| 3 | 🔀 IF | D0 | (templateArray != null) | - | - | `editErrorInfo_EKK0361A010CBS()` | L24409 |
| 4 | · 🔁 FOR | D1 | (for-loop) | - | - | `editErrorInfo_EKK0361A010CBS()` | L24411 |
| 5 | ·· 🔀 IF | D2 | (i >= dataList.size()) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.オプションサービス契約番号 | - | - | L24414 |
| 6 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO)) | - | OP_SVC_KEI_NO=op_svc_kei_no | - | L24423 |
| 7 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.世代登録年月日時分秒 | - | - | L24428 |
| 8 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0361A010CBSMsg1List.GENE_ADD_DTM)) | - | GENE_ADD_DTM=gene_add_dtm | - | L24434 |
| 9 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.メールアドレス | - | - | L24439 |
| 10 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0361A010CBSMsg1List.MLAD)) | - | MLAD=mlad | - | L24445 |
| 11 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（ドメイン） | - | - | L24450 |
| 12 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0361A010CBSMsg1List.URL_DOMAIN)) | - | - | - | L24456 |
| 13 | ·· 🔀 ELSE | D2 | (else) | オプションサービス契約＜ＩＳＰ＞一意照会マップ.オプションサービス契約＜ＩＳＰ＞一意照会明細.ＵＲＬ（アカウント） | - | - | L24461 |
| 14 | ·· 🔀 IF | D2 | (childTemplate.isNull(EKK0361A010CBSMsg1List.URL_ACCOUNT)) | - | - | - | L24467 |
| 15 | ·· 🔀 ELSE | D2 | (else) | エラー情報の設定 | - | `editErrorInfo_EKK0361A010CBS()` | L24472 |
| 16 | 🔀 IF | D0 | (errList == null) | コントロールマップに設定 | - | - | L24484 |
| 17 | 🔀 IF | D0 | (errList != null && !errList.isEmpty()) | - | - | - | L24492 |
| 18 | · ⚠️ THROW | D1 | new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK0361A010CBSMsg.STATUS))) | - | - | - | L24494 |
| 19 | ↩️ RETURN | D0 | param | - | - | - | L24497 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editResultRP_EKK0361A010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （dataMap == null）"]
  CF0 -->|"L24396"| B0
  B1["IF: （dataList == null）"]
  CF0 -->|"L24404"| B1
  subgraph SG2["IF: （templateArray != null）"]
    direction TB
    C2_0["FOR: …"]
  end
  CF0 -->|"L24409"| SG2
  B3["IF: （errList == null）"]
  CF0 -->|"L24484"| B3
  subgraph SG4["IF: （errList != null && !errList.isEmpty（））"]
    direction TB
    C4_0["THROW: new CCException（'', new SCCall…"]
  end
  CF0 -->|"L24492"| SG4
  B5["RETURN: param"]
  CF0 -->|"L24497"| B5
```

### `editResultRP_EKK1551D010CBS()` (L21617) — 7 branches

| # | 種別 | 深度 | 条件 | 説明 | 定数値 | 呼出メソッド | 行番号 |
|---|---|---|---|---|---|---|---|
| 1 | 🔀 IF | D0 | (dataMap == null) | オーダ情報作成ワーク登録.オーダ情報作成ワーク番号 ← オーダ情報作成ワーク番号 | - | - | L21633 |
| 2 | 🔀 IF | D0 | (parentTemplate.isNull(EKK1551D010CBSMsg.ODR_INF_SKSI_WK_NO)) | - | - | - | L21640 |
| 3 | 🔀 ELSE | D0 | (else) | エラー情報の設定 | - | `editErrorInfo_EKK1551D010CBS()` | L21645 |
| 4 | 🔀 IF | D0 | (errList == null) | コントロールマップに設定 | - | - | L21654 |
| 5 | 🔀 IF | D0 | (errList != null && !errList.isEmpty()) | - | - | - | L21662 |
| 6 | · ⚠️ THROW | D1 | new CCException("", new SCCallException("", ((Integer)return_code).toString(), templates[0].getInt(EKK1551D010CBSMsg.STATUS))) | - | - | - | L21664 |
| 7 | ↩️ RETURN | D0 | param | - | - | - | L21667 |

```mermaid
%%{init: {"securityLevel": "loose"}}%%
flowchart TD
  START["editResultRP_EKK1551D010CBS()"] --> CF0{"制御フロー分岐"}
  B0["IF: （dataMap == null）"]
  CF0 -->|"L21633"| B0
  B1["IF: （parentTemplate.isNull（EKK1551D010CBSMsg…"]
  CF0 -->|"L21640"| B1
  B2["ELSE"]
  CF0 -->|"L21645"| B2
  B3["IF: （errList == null）"]
  CF0 -->|"L21654"| B3
  subgraph SG4["IF: （errList != null && !errList.isEmpty（））"]
    direction TB
    C4_0["THROW: new CCException（'', new SCCall…"]
  end
  CF0 -->|"L21662"| SG4
  B5["RETURN: param"]
  CF0 -->|"L21667"| B5
```

> **制御フロー合計**: 9 methods, 198 branches
