## 5. Dependency Trace

### Callers (Direct callers of runShosa)

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKSvkeiShosaCC.addSmtVal()` | `addSmtVal` -> `runShosa` | `editResultRP* [U] Various SC` |
| 2 | `JKKSvkeiShosaCC.runHaisojkCd()` | `runHaisojkCd` -> `runShosa` | `editResultRP* [U] Various SC` |
| 3 | `JKKSvkeiShosaCC.runShosaOkAdsl()` | `runShosaOkAdsl` -> `runShosa` | `editResultRPEKK0141C010 [U] eoADSL SC` |
| 4 | `JKKSvkeiShosaCC.runShosaOkCmn()` | `runShosaOkCmn` -> `runShosa` | `editResultRPEKK0091C010 [U] eo光Net SC` |
| 5 | `JKKSvkeiShosaCC.runShosaOkHNet()` | `runShosaOkHNet` -> `runShosa` | `editResultRPEKK0091C010 [U] eo光Net SC` |
| 6 | `JKKSvkeiShosaCC.runShosaOkHTel()` | `runShosaOkHTel` -> `runShosa` | `editResultRPEKK0111C010 [U] eo光Phone SC` |
| 7 | `JKKSvkeiShosaCC.runShosaOkHTv()` | `runShosaOkHTv` -> `runShosa` | `editResultRPEKK0101C010 [U] eo光TV SC` |
| 8 | `JKKSvkeiShosaCC.runShosaOkMoba()` | `runShosaOkMoba` -> `runShosa` | `editResultRPEKK0121C010 [U] eoMobile SC` |
| 9 | `JKKSvkeiShosaCC.runSvkeiShosa()` | `runSvkeiShosa` -> `runShosa` | `editResultRP* [U] Multiple SCs` |
| 10 | `JKKSvkeiShosaCC.runUpdPlaceNo()` | `runUpdPlaceNo` -> `runShosa` | `editResultRPEKKA0020002 [U] EKKA0020002` |
| 11 | `JKKSvkeiShosaCC.runUpdUcwkHTel()` | `runUpdUcwkHTel` -> `runShosa` | `editResultRPEKK0111C010 [U] eo光Phone SC` |
| 12 | `JKKSvkeiShosaCC.tendTajgswkeiTgkei()` | `tendTajgswkeiTgkei` -> `runShosa` | `editResultRP* [U] Various SC` |

### Terminal operations reached from this method

| # | Terminal Operation | CRUD | Description |
|---|-------------------|------|-------------|
| 1 | `getContents` (CBSMsg objects) | R | Returns CBS message contents for dynamic editResultRP calls |
| 2 | `editResultRPEKK0341C231` | U | Equipment contract change validation |
| 3 | `editResultRPEKK0341C530` | U | Equipment contract change validation |
| 4 | `editResultRPEKK3131C030` | U | Construction fee installment contract validation |
| 5 | `editResultRPEKK2811C050` | U | Equipment option service contract validation termination |
| 6 | `editResultRPEKK2811C030` | U | Equipment option service contract validation |
| 7 | `editResultRPEKK2811C030` | U | Equipment option service contract validation |
| 8 | `editResultRPEKK3131C030` | U | Construction fee installment contract validation |
| 9 | `editResultRPEKK2811C050` | U | Equipment option service contract validation termination |
| 10 | `editResultRPEKK2811C030` | U | Equipment option service contract validation |
| 11 | `editResultRPEKK2811C050` | U | Equipment option service contract validation termination |
| 12 | `editResultRPEKK2811C030` | U | Equipment option service contract validation |
| 13 | `getString` (CAANMsg) | R | Reads values from SIF result templates (e.g., MLAD, GENE_ADD_DTM, SVC_KEI_UCWK_NO, SHK_EOID) |
| 14 | `isNull` (CAANMsg) | - | Null-check on SIF result template values |
| 15 | `editResultRPEKK0341C231` | U | Equipment contract change |
| 16 | `editResultRPEKK0341C530` | U | Equipment contract change |

## 6. Per-Branch Detail Blocks

**Block 1** — INIT (Initialization) (L5741-5753)
Sets up the method execution context.

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkMapArray = null` |
| 2 | SET | `errorList = new ArrayList<>()` |
| 3 | SET | `scCall = new ServiceComponentRequestInvoker()` // SC呼び出し部品のインスタンス生成 [-> SC呼び出し部品のインスタンス生成] |

**Block 2** — IF (wkMapArray null check) (L5754-6186)

**Block 2.1** — ELSE (wkMapArray is not null) (L5755-6185)

**Block 2.1.1** — FOR (Outer loop over wkMapArray) (L5755-6185)

| # | Type | Code |
|---|------|------|
| 1 | SET | `i = 0` |
| 2 | SET | `i < wkMapArray.size()` |
| 3 | SET | `i++` |

**Block 2.1.1.1** — SET (Get wkMap from array) (L5758)

| # | Type | Code |
|---|------|------|
| 1 | SET | `rslt = null` |
| 2 | SET | `wkMap = (HashMap)wkMapArray.get(i)` |

**Block 2.1.1.2** — IF (wkMap is not null) (L5760-6184)

**Block 2.1.1.2.1** — EXEC (Error list creation) (L5762)

| # | Type | Code |
|---|------|------|
| 1 | SET | `wkErrorList = new ArrayList<Object>()` |

**Block 2.1.1.2.2** — EXEC (Merge set last updated timestamp) (L5766)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kkExclusiveMapper.mergeSetLastUpdDtm(wkMap)` // 最終更新年月日のマーク(Set) |

**Block 2.1.1.2.3** — CALL (SIF execution) (L5769)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `rslt = scCall.run(wkMap, handle)` // SIF実行 |

**Block 2.1.1.2.4** — EXEC (Merge get last updated timestamp) (L5772)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kkExclusiveMapper.mergeGetLastUpdDtm(wkMap)` // 最終更新年月日のマーク(Get) |

**Block 2.1.1.2.5** — IF-ELSEIF chain (mapKey dispatch) (L5774-6172)

**Block 2.1.1.2.5.1** — IF (MAP_KEY_EKK0021C060) (L5774-5777)
Condition: `mapKey.equals(MAP_KEY_EKK0021C060)` [EKK0021C060="EKK0021C060"]
申込明細照査・後続業務 — Order details validation and follow-up processing

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0021C060(rslt, param)` |

**Block 2.1.1.2.5.2** — ELSEIF (MAP_KEY_EKK0091C010) (L5778-5781)
Condition: `mapKey.equals(MAP_KEY_EKK0091C010)` [EKK0091C010="EKK0091C010"]
サービス契約：eo光ネッ卜照査 — Service contract: eo光 Net validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0091C010(rslt, param)` |

**Block 2.1.1.2.5.3** — ELSEIF (MAP_KEY_EKK0101C010) (L5782-5785)
Condition: `mapKey.equals(MAP_KEY_EKK0101C010)` [EKK0101C010="EKK0101C010"]
サービス契約：eo光TV照査 — Service contract: eo光 TV validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0101C010(rslt, param)` |

**Block 2.1.1.2.5.4** — ELSEIF (MAP_KEY_EKK0111C010) (L5786-5798)
Condition: `mapKey.equals(MAP_KEY_EKK0111C010)` [EKK0111C010="EKK0111C010"]
サービス契約：eo光電話照査 — Service contract: eo光 Phone validation
Also extracts PPP NINSHO_ID for aging work.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0111C010(rslt, param)` |
| 2 | SET | `ppp_ninsho_id = shosaOkMapper.getResultRPEKK0111C010(rslt, param)` // IT2-2013-0000568 add start |
| 3 | CALL | `ppp_ninsho_id = JKKBpCommon.getAgingNinshoId(ppp_ninsho_id)` // 2012-02-23追加 IT障害1023対応 |
| 4 | SET | `agingWorkMap.put(AGING_SBT_PPP_NINSHO_ID, ppp_ninsho_id)` [-> AGING_SBT_PPP_NINSHO_ID="012"] |

**Block 2.1.1.2.5.5** — ELSEIF (MAP_KEY_EKK0121C010) (L5799-5802)
Condition: `mapKey.equals(MAP_KEY_EKK0121C010)` [EKK0121C010="EKK0121C010"]
サービス契約：eoモバイル照査 — Service contract: eoMobile validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0121C010(rslt, param)` |

**Block 2.1.1.2.5.6** — ELSEIF (MAP_KEY_EKK0141C010) (L5803-5806)
Condition: `mapKey.equals(MAP_KEY_EKK0141C010)` [EKK0141C010="EKK0141C010"]
サービス契約：eoADSL照査 — Service contract: eoADSL validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0141C010(rslt, param)` |

**Block 2.1.1.2.5.7** — ELSEIF (MAP_KEY_EKK0171C010) (L5807-5818)
Condition: `mapKey.equals(MAP_KEY_EKK0171C010)` [EKK0171C010="EKK0171C010"]
サービス契約内訳<eo光ネッ卜>照査 — Service contract breakdown <eo光 Net> validation
Extracts ISP NINSHO_ID for aging work.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0171C010(rslt, param)` |
| 2 | SET | `ninsho_id = shosaOkMapper.getResultRPEKK0171C010(rslt, param)` // 払い出されたISP認証IDを取得 |
| 3 | CALL | `ninsho_id = JKKBpCommon.getAgingNinshoId(ninsho_id)` // 2012-02-23追加 IT障害1023対応 |
| 4 | SET | `agingWorkMap.put(AGING_SBT_ISP_NINSHO_ID, ninsho_id)` [-> AGING_SBT_ISP_NINSHO_ID="013"] |

**Block 2.1.1.2.5.8** — ELSEIF (MAP_KEY_EKK0181C010) (L5819-5822)
Condition: `mapKey.equals(MAP_KEY_EKK0181C010)` [EKK0181C010="EKK0181C010"]
サービス契約内訳<eo光TV>照査 — Service contract breakdown <eo光 TV> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0181C010(rslt, param)` |

**Block 2.1.1.2.5.9** — ELSEIF (MAP_KEY_EKK0191C010) (L5823-5836)
Condition: `mapKey.equals(MAP_KEY_EKK0191C010)` [EKK0191C010="EKK0191C010"]
サービス契約内訳<eo光電話>照査 — Service contract breakdown <eo光 Phone> validation
Extracts SIP User ID and stores it keyed by service detail work number.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0191C010(rslt, param)` |
| 2 | SET | `ninsho_id = shosaOkMapper.getResultRPEKK0191C010(rslt, param)` // 払い出されたSIPユーザーIDを取得 |
| 3 | SET | `CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY)` |
| 4 | SET | `CAANMsg template = templates[0]` |
| 5 | SET | `agingWorkMap.put(AGING_SBT_SIP_USER_ID + template.getString(EKK0191C010CBSMsg.SVC_KEI_UCWK_NO), ninsho_id)` [-> AGING_SBT_SIP_USER_ID, svc_kei_ucwk_no] |

**Block 2.1.1.2.5.10** — ELSEIF (MAP_KEY_EKK0221C010) (L5837-5857)
Condition: `mapKey.equals(MAP_KEY_EKK0221C010)` [EKK0221C010="EKK0221C010"]
サービス契約内訳：eoADSL照査 — Service contract breakdown: eoADSL validation
Extracts ADSL NINSHO_ID, splits at `@` to remove VR identification (IT1-2013-0001098).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0221C010(rslt, param)` |
| 2 | SET | `ninsho_id = shosaOkMapper.getResultRPEKK0221C010(rslt, param)` // 払い出されたADSL認証IDを取得（フラツツのみ） |
| 3 | SET | `agingTgValue = ninsho_id.split("@")[0]` // ADSL認証IDはVR識別なしエイジング管理 |
| 4 | SET | `agingWorkMap.put(AGING_SBT_ADSL_NINSHO_ID, agingTgValue)` [-> AGING_SBT_ADSL_NINSHO_ID] |

**Block 2.1.1.2.5.11** — ELSEIF (MAP_KEY_EKK0361C010) (L5858-5874)
Condition: `mapKey.equals(MAP_KEY_EKK0361C010)` [EKK0361C010="EKK0361C010"]
オプションサービス契約<ISP>照査 — Option service contract <ISP> validation
Also checks MLAD and stores template in rsltMap if present.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0361C010(rslt, param)` |
| 2 | CALL | `shosaOkMapper.getResultRPEKK0361C010(rslt, agingWorkMap)` |
| 3 | SET | `CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY)` |
| 4 | IF | `!isNull(templates[0].getString(EKK0361C010CBSMsg.MLAD))` |
| 5 | SET | `rsltMap.put(MAP_KEY_EKK0361C010_MLAD, templates[0])` [-> MAP_KEY_EKK0361C010_MLAD] |

**Block 2.1.1.2.5.12** — ELSEIF (MAP_KEY_EKK0381C010) (L5875-5878)
Condition: `mapKey.equals(MAP_KEY_EKK0381C010)` [EKK0381C010="EKK0381C010"]
オプションサービス契約<TV>照査 — Option service contract <TV> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0381C010(rslt, param)` |

**Block 2.1.1.2.5.13** — ELSEIF (MAP_KEY_EKK0371C010) (L5879-5882)
Condition: `mapKey.equals(MAP_KEY_EKK0371C010)` [EKK0371C010="EKK0371C010"]
オプションサービス契約<電話>照査 — Option service contract <Phone> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0371C010(rslt, param)` |

**Block 2.1.1.2.5.14** — ELSEIF (MAP_KEY_EKK0391C010) (L5883-5886)
Condition: `mapKey.equals(MAP_KEY_EKK0391C010)` [EKK0391C010="EKK0391C010"]
オプションサービス契約<サポート>照査 — Option service contract <Support> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0391C010(rslt, param)` |

**Block 2.1.1.2.5.15** — ELSEIF (MAP_KEY_EKK0411C020) (L5887-5890)
Condition: `mapKey.equals(MAP_KEY_EKK0411C020)` [EKK0411C020="EKK0411C020"]
サブオプションサービス契約<ISP>照査 — Sub-option service contract <ISP> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0411C020(rslt, param)` |

**Block 2.1.1.2.5.16** — ELSEIF (MAP_KEY_EKK0421C010) (L5891-5894)
Condition: `mapKey.equals(MAP_KEY_EKK0421C010)` [EKK0421C010="EKK0421C010"]
サブオプションサービス契約<TV>照査 — Sub-option service contract <TV> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0421C010(rslt, param)` |

**Block 2.1.1.2.5.17** — ELSEIF (MAP_KEY_EKK0431C010) (L5895-5898)
Condition: `mapKey.equals(MAP_KEY_EKK0431C010)` [EKK0431C010="EKK0431C010"]
サブオプションサービス契約<電話>照査 — Sub-option service contract <Phone> validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0431C010(rslt, param)` |

**Block 2.1.1.2.5.18** — ELSEIF (MAP_KEY_EKK0341C030) (L5899-5902)
Condition: `mapKey.equals(MAP_KEY_EKK0341C030)` [EKK0341C030="EKK0341C030"]
機器提供サービス契約照査 — Equipment provisioning service contract validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0341C030(rslt, param)` |

**Block 2.1.1.2.5.19** — ELSEIF (MAP_KEY_ECK0011C120) (L5913-5946)
Condition: `mapKey.equals(MAP_KEY_ECK0011C120)` [ECK0011C120="ECK0011C120"]
会員種別変更 — Member type change
Also extracts SHK_EOID from template for eID processing (2012-09-25 ロック2追加案件対応).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0011C120(rslt, param)` |
| 2 | SET | `CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY)` |
| 3 | SET | `CAANMsg template = templates[0]` |
| 4 | IF | `!eck0011c120Template.isNull(ECK0011C120CBSMsg.SHK_EOID)` |
| 5 | SET | `shk_eoId = eck0011c120Template.getString(ECK0011C120CBSMsg.SHK_EOID)` |

**Block 2.1.1.2.5.20** — ELSEIF (MAP_KEY_ECK0021C010) (L5952-5955)
Condition: `mapKey.equals(MAP_KEY_ECK0021C010)` [ECK0021C010="ECK0021C010"]
お客様<個人>内容変更 — Customer <individual> content change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0021C010(rslt, param)` |

**Block 2.1.1.2.5.21** — ELSEIF (MAP_KEY_ECK0031C010) (L5956-5959)
Condition: `mapKey.equals(MAP_KEY_ECK0031C010)` [ECK0031C010="ECK0031C010"]
お客様<法人>内容変更 — Customer <corporate> content change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0031C010(rslt, param)` |

**Block 2.1.1.2.5.22** — ELSEIF (MAP_KEY_ECK0201D010) (L5960-5963)
Condition: `mapKey.equals(MAP_KEY_ECK0201D010)` [ECK0201D010="ECK0201D010"]
連絡先登録 — Contact registration

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0201D010(rslt, param)` |

**Block 2.1.1.2.5.23** — ELSEIF (MAP_KEY_ECK0201C010) (L5969-5972)
Condition: `mapKey.equals(MAP_KEY_ECK0201C010)` [ECK0201C010="ECK0201C010"]
連絡先変更 — Contact change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0201C010(rslt, param)` |

**Block 2.1.1.2.5.24** — ELSEIF (MAP_KEY_ECK0141D010) (L5973-5976)
Condition: `mapKey.equals(MAP_KEY_ECK0141D010)` [ECK0141D010="ECK0141D010"]
オプトインターネットメールアドレス追加 — Opt Internet address addition

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0141D010(rslt, param)` |

**Block 2.1.1.2.5.25** — ELSEIF (MAP_KEY_EKKA0020002) (L5989-5995)
Condition: `mapKey.equals(MAP_KEY_EKKA0020002)` [EKKA0020002="EKKA0020002"]
設置場所番号取得 — Installation location number acquisition
Calls `errChk` for error checking and extracts place number.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKKA0020002(rslt, param)` |
| 2 | CALL | `errChk(param, rslt, wkErrorList)` // IT1-2012-0000928 add |
| 3 | SET | `place_no = shosaOkMapper.getResultRPEKKA0020002(rslt, param)` |

**Block 2.1.1.2.5.26** — ELSEIF (MAP_KEY_EKK0251C030) (L5998-6001)
Condition: `mapKey.equals(MAP_KEY_EKK0251C030)` [EKK0251C030="EKK0251C030"]
サービス契約回線内訳内容変更 — Service contract line content change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0251C030(rslt, param)` |

**Block 2.1.1.2.5.27** — ELSEIF (MAP_KEY_EKK0341C450) (L6002-6005)
Condition: `mapKey.equals(MAP_KEY_EKK0341C450)` [EKK0341C450="EKK0341C450"]
機器設置先場所反映 — Equipment installation location reflect

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0341C450(rslt, param)` |

**Block 2.1.1.2.5.28** — ELSEIF (MAP_KEY_EKK0121C020) (L6006-6009)
Condition: `mapKey.equals(MAP_KEY_EKK0121C020)` [EKK0121C020="EKK0121C020"]
サービス契約<eoモバイル>締結 — Service contract <eoMobile> termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0121C020(rslt, param)` |

**Block 2.1.1.2.5.29** — ELSEIF (MAP_KEY_EKK0201C030) (L6010-6013)
Condition: `mapKey.equals(MAP_KEY_EKK0201C030)` [EKK0201C030="EKK0201C030"]
サービス契約内訳<eoモバイル>照査締結 — Service contract breakdown <eoMobile> validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0201C030(rslt, param)` |

**Block 2.1.1.2.5.30** — ELSEIF (MAP_KEY_EKK0361C030) (L6014-6018)
Condition: `mapKey.equals(MAP_KEY_EKK0361C030)` [EKK0361C030="EKK0361C030"]
オプションサービス契約<ISP>照査締結 — Option service contract <ISP> validation termination
Calls `getResultRPEKK0361C030` to populate agingWorkMap.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0361C030(rslt, param)` |
| 2 | CALL | `shosaOkMapper.getResultRPEKK0361C030(rslt, agingWorkMap)` |

**Block 2.1.1.2.5.31** — ELSEIF (MAP_KEY_EKK0411C040) (L6019-6022)
Condition: `mapKey.equals(MAP_KEY_EKK0411C040)` [EKK0411C040="EKK0411C040"]
サブオプションサービス契約<ISP>照査締結 — Sub-option service contract <ISP> validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0411C040(rslt, param)` |

**Block 2.1.1.2.5.32** — ELSEIF (MAP_KEY_EKK0391C030) (L6023-6026)
Condition: `mapKey.equals(MAP_KEY_EKK0391C030)` [EKK0391C030="EKK0391C030"]
オプションサービス契約<サポート>照査締結 — Option service contract <Support> validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0391C030(rslt, param)` |

**Block 2.1.1.2.5.33** — ELSEIF (MAP_KEY_EKK0341C050) (L6027-6030)
Condition: `mapKey.equals(MAP_KEY_EKK0341C050)` [EKK0341C050="EKK0341C050"]
機器提供サービス契約照査締結 — Equipment provisioning service contract validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0341C050(rslt, param)` |

**Block 2.1.1.2.5.34** — ELSEIF (MAP_KEY_ECK0111D010) (L6031-6034)
Condition: `mapKey.equals(MAP_KEY_ECK0111D010)` [ECK0111D010="ECK0111D010"]
グループ登録 — Group registration

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0111D010(rslt, param)` |

**Block 2.1.1.2.5.35** — ELSEIF (MAP_KEY_EKK0091C020) (L6035-6038)
Condition: `mapKey.equals(MAP_KEY_EKK0091C020)` [EKK0091C020="EKK0091C020"]
サービス契約：eo光ネッ卜締結SC — Service contract: eo光 Net termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011889SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0091C020(rslt, param, KKSV0118_KKSV0118OP.KKSV011889SC)` |

**Block 2.1.1.2.5.36** — ELSEIF (MAP_KEY_EKK0111C020) (L6039-6042)
Condition: `mapKey.equals(MAP_KEY_EKK0111C020)` [EKK0111C020="EKK0111C020"]
サービス契約：eo光電話締結SC — Service contract: eo光 Phone termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011890SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0111C020(rslt, param, KKSV0118_KKSV0118OP.KKSV011890SC)` |

**Block 2.1.1.2.5.37** — ELSEIF (MAP_KEY_EKK0141C020) (L6043-6046)
Condition: `mapKey.equals(MAP_KEY_EKK0141C020)` [EKK0141C020="EKK0141C020"]
サービス契約：eoADSL締結SC — Service contract: eoADSL termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011891SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0141C020(rslt, param, KKSV0118_KKSV0118OP.KKSV011891SC)` |

**Block 2.1.1.2.5.38** — ELSEIF (MAP_KEY_EKK0171C030) (L6047-6050)
Condition: `mapKey.equals(MAP_KEY_EKK0171C030)` [EKK0171C030="EKK0171C030"]
サービス契約内訳：eo光ネッ卜照査締結SC — Service contract breakdown: eo光 Net validation termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011892SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0171C030(rslt, param, KKSV0118_KKSV0118OP.KKSV011892SC)` |

**Block 2.1.1.2.5.39** — ELSEIF (MAP_KEY_EKK0191C030) (L6051-6054)
Condition: `mapKey.equals(MAP_KEY_EKK0191C030)` [EKK0191C030="EKK0191C030"]
サービス契約内訳：eo光電話照査締結SC — Service contract breakdown: eo光 Phone validation termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011893SC` and loop index `i`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0191C030(rslt, param, KKSV0118_KKSV0118OP.KKSV011893SC, i)` |

**Block 2.1.1.2.5.40** — ELSEIF (MAP_KEY_EKK0221C030) (L6055-6058)
Condition: `mapKey.equals(MAP_KEY_EKK0221C030)` [EKK0221C030="EKK0221C030"]
サービス契約内訳：eoADSL照査締結SC — Service contract breakdown: eoADSL validation termination SC
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011894SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0221C030(rslt, param, KKSV0118_KKSV0118OP.KKSV011894SC)` |

**Block 2.1.1.2.5.41** — ELSEIF (MAP_KEY_EKK0371C030) (L6059-6062)
Condition: `mapKey.equals(MAP_KEY_EKK0371C030)` [EKK0371C030="EKK0371C030"]
オプションサービス契約<電話>照査締結 — Option service contract <Phone> validation termination
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011897SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0371C030(rslt, param, KKSV0118_KKSV0118OP.KKSV011897SC)` |

**Block 2.1.1.2.5.42** — ELSEIF (MAP_KEY_EKK0431C030) (L6063-6066)
Condition: `mapKey.equals(MAP_KEY_EKK0431C030)` [EKK0431C030="EKK0431C030"]
サブオプションサービス契約<電話>照査締結 — Sub-option service contract <Phone> validation termination
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011899SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK0431C030(rslt, param, KKSV0118_KKSV0118OP.KKSV011899SC)` |

**Block 2.1.1.2.5.43** — ELSEIF (MAP_KEY_ETU0011D010) (L6067-6070)
Condition: `MAP_KEY_ETU0011D010.equals(mapKey)` [ETU0011D010="ETU0011D010"]
番ポ工事登録 — Phone number construction registration

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPETU0011D010(rslt, param)` |

**Block 2.1.1.2.5.44** — ELSEIF (MAP_KEY_EZM0121C010) (L6073-6077)
Condition: `MAP_KEY_EZM0121C010.equals(mapKey)` [EZM0121C010="EZM0121C010"]
電話番号変更 — Phone number change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEZM0121C010(rslt, param)` |

**Block 2.1.1.2.5.45** — ELSEIF (MAP_KEY_EKKA0020003) (L6080-6084)
Condition: `mapKey.equals(MAP_KEY_EKKA0020003)` [EKKA0020003="EKKA0020003"]
宅内機器一意向会（4） — Indoor equipment agreement (4)
Calls `errChk` for error checking.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKKA0020003(rslt, param)` |
| 2 | CALL | `errChk(param, rslt, wkErrorList)` |

**Block 2.1.1.2.5.46** — ELSEIF (MAP_KEY_EKKA0020004) (L6085-6089)
Condition: `mapKey.equals(MAP_KEY_EKKA0020004)` [EKKA0020004="EKKA0020004"]
機器場所番号変更 — Equipment location number change
Calls `errChk` for error checking.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKKA0020004(rslt, param)` |
| 2 | CALL | `errChk(param, rslt, wkErrorList)` |

**Block 2.1.1.2.5.47** — ELSEIF (MAP_KEY_EKK2541C030) (L6090-6095)
Condition: `mapKey.equals(MAP_KEY_EKK2541C030)` [EKK2541C030="EKK2541C030"]
割賦契約照査 — Installment contract validation
Calls `JKKSvkeiShosaCncMapper` with screen SC code `KKSV011850SC`.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = JKKSvkeiShosaCncMapper.editResultRPEKK2541C030(rslt, param, "KKSV011850SC")` |
| 2 | CALL | `errChk(param, rslt, wkErrorList)` |

**Block 2.1.1.2.5.48** — ELSEIF (MAP_KEY_ECK0121C020) (L6096-6100)
Condition: `mapKey.equals(MAP_KEY_ECK0121C020)` [ECK0121C020="ECK0121C020"]
Additional validation (blank Japanese comment)
Calls `errChk` for error checking.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPECK0121C020(rslt, param)` |
| 2 | CALL | `errChk(param, rslt, wkErrorList)` |

**Block 2.1.1.2.5.49** — ELSEIF (MAP_KEY_EKK0441C030) (L6101-6104)
Condition: `mapKey.equals(MAP_KEY_EKK0441C030)` [EKK0441C030="EKK0441C030"]
請求オプションサービス契約照査 — Billing option service contract validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0441C030(rslt, param)` |

**Block 2.1.1.2.5.50** — ELSEIF (MAP_KEY_EKK0441C050) (L6105-6108)
Condition: `mapKey.equals(MAP_KEY_EKK0441C050)` [EKK0441C050="EKK0441C050"]
請求オプションサービス契約照査締結 — Billing option service contract validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0441C050(rslt, param)` |

**Block 2.1.1.2.5.51** — ELSEIF (MAP_KEY_EKK2451C010) (L6112-6116)
Condition: `mapKey.equals(MAP_KEY_EKK2451C010)` [EKK2451C010="EKK2451C010"]
他事業者割引契約対象契約適用終了処理 — Other provider discount contract termination processing
Uses dynamic `EKK2451C010CBSMsg` contents.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRP(rslt, param, new EKK2451C010CBSMsg().getContents())` |

**Block 2.1.1.2.5.52** — ELSEIF (MAP_KEY_EKK0191C060) (L6120-6124)
Condition: `mapKey.equals(MAP_KEY_EKK0191C060)` [EKK0191C060="EKK0191C060"]
請求オプションサービス契約照査 — Billing option service contract validation
Uses dynamic `EKK0191C060CBSMsg` contents.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRP(rslt, param, new EKK0191C060CBSMsg().getContents())` |

**Block 2.1.1.2.5.53** — ELSEIF (MAP_KEY_EKK2451D010) (L6128-6132)
Condition: `mapKey.equals(MAP_KEY_EKK2451D010)` [EKK2451D010="EKK2451D010"]
他事業者割引契約対象契約登録 — Other provider discount contract registration
Uses dynamic `EKK2451D010CBSMsg` contents.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRP(rslt, param, new EKK2451D010CBSMsg().getContents())` |

**Block 2.1.1.2.5.54** — ELSEIF (MAP_KEY_EKK2811C030) (L6136-6139)
Condition: `mapKey.equals(MAP_KEY_EKK2811C030)` [EKK2811C030="EKK2811C030"]
機器オプションサービス契約照査 — Equipment option service contract validation

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK2811C030(rslt, param)` |

**Block 2.1.1.2.5.55** — ELSEIF (MAP_KEY_EKK2811C050) (L6140-6143)
Condition: `mapKey.equals(MAP_KEY_EKK2811C050)` [EKK2811C050="EKK2811C050"]
機器オプションサービス契約照査締結 — Equipment option service contract validation termination

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK2811C050(rslt, param)` |

**Block 2.1.1.2.5.56** — ELSEIF (MAP_KEY_EKK3131C030) (L6147-6152)
Condition: `mapKey.equals(MAP_KEY_EKK3131C030)` [EKK3131C030="EKK3131C030"]
工事費割賦契約照査 — Construction fee installment contract validation
Sets `kojihi_kapu_flg = true` to flag that this processing target should be excluded from other processing.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK3131C030(rslt, param)` |
| 2 | SET | `kojihi_kapu_flg = true` // 工事費割賦契約照査対象外フラグ |

**Block 2.1.1.2.5.57** — ELSEIF (MAP_KEY_EKK0341C530) (L6156-6166)
Condition: `mapKey.equals(MAP_KEY_EKK0341C530)` [EKK0341C530="EKK0341C530"]
機器契約変更 — Equipment contract change
Also extracts and stores GENE_ADD_DTM (generation registration timestamp).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0341C530(rslt, param)` |
| 2 | SET | `CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY)` |
| 3 | SET | `CAANMsg template = templates[0]` |
| 4 | IF | `!ekk0341c530Template.isNull(EKK0341C530CBSMsg.GENE_ADD_DTM)` |
| 5 | SET | `wkMap.put(EKK0341C530CBSMsg.GENE_ADD_DTM, template.getString(EKK0341C530CBSMsg.GENE_ADD_DTM))` // 登録された世代登録年月日を設定 |

**Block 2.1.1.2.5.58** — ELSEIF (MAP_KEY_EKK0341C231) (L6167-6170)
Condition: `mapKey.equals(MAP_KEY_EKK0341C231)` [EKK0341C231="EKK0341C231"]
機器契約変更 — Equipment contract change

| # | Type | Code |
|---|------|------|
| 1 | CALL | `wkErrorList = shosaOkMapper.editResultRPEKK0341C231(rslt, param)` |

**Block 2.1.1.2.6** — EXEC (Error accumulation) (L6175)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `errorList.addAll(wkErrorList)` |

**Block 3** — RETURN (L6187)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return errorList` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `runShosa` | Method | Validation execution processing — orchestrates SIF-based validation for service contract items |
| `shosa` | Japanese term | Validation/check — the core business operation of verifying service contract data before processing |
| `saikoyaku` | Japanese term | Service contract — the primary telecom service agreement (Fiber, TV, Phone, Mobile, ADSL) |
| `uchiwake` | Japanese term | Breakdown/detail — sub-items within a service contract (e.g., option services, installation details) |
| `matomeru` | Japanese term | Termination/closure — finalizing a service contract or its breakdown (締結) |
| eo光 | Business term | eo Hikari — Fujitsu's fiber-optic broadband internet service brand |
| eo光TV | Business term | eo Hikari TV — Fiber-optic bundled TV service |
| eo光電話 | Business term | eo Hikari Phone — Fiber-optic bundled telephone service |
| eoモバイル | Business term | eo Mobile — eo-branded mobile phone service |
| eoADSL | Business term | eo ADSL — eo-branded ADSL broadband service |
| opushon | Japanese term | Option — optional add-on services to a base contract |
| sub opushon | Japanese term | Sub-option — sub-services under an option package |
| kiki teikyo | Japanese term | Equipment provisioning — hardware/equipment service bundled with contracts |
| kiki | Japanese term | Equipment/machine — customer premises equipment (CPE) such as modems, routers, set-top boxes |
| odyaku-sama | Japanese term | Customer — the end-user account holder |
| hinin | Japanese term | Individual — individual customer (個人) |
| houjin | Japanese term | Corporate — business/corporate customer (法人) |
| renrakusaki | Japanese term | Contact information — address/phone for customer contact |
| guruhpu | Japanese term | Group — customer group for multi-line/shared services |
| EID | Acronym | Entity Identifier — unique identifier for a customer's electronic identity |
| NINSHO_ID | Acronym | Authentication ID — identifier used for aging/billing authentication (認証ID) |
| PPP | Acronym | Point-to-Point Protocol — PPPoE authentication used for ADSL/Fiber connections |
| ISP | Acronym | Internet Service Provider |
| SIP | Acronym | Session Initiation Protocol — VoIP user identification protocol |
| ADSL | Business term | Asymmetric Digital Subscriber Line — broadband over telephone line |
| FTTH | Business term | Fiber To The Home — fiber-optic connection to customer premises |
| SIF | Acronym | System Integration Framework — Fujitsu's integration layer for executing CBS/SC calls |
| SC | Acronym | Service Component — a reusable business logic component in the service architecture |
| CBS | Acronym | Component Business System — the underlying business logic layer |
| mapKey | Field | Service type discriminator — composite key identifying which validation mapper to invoke |
| wkMapArray | Field | Work map array — list of validation work items for the current service type |
| agingWorkMap | Field | Aging work identifier map — stores extracted authentication IDs for downstream billing aging |
| AGING_SBT_PPP_NINSHO_ID | Constant | Aging work sub-category "012" — PPP authentication ID for aging |
| AGING_SBT_ISP_NINSHO_ID | Constant | Aging work sub-category "013" — ISP authentication ID for aging |
| AGING_SBT_SIP_USER_ID | Constant | Aging work prefix — SIP User ID aging key with service detail work number |
| AGING_SBT_ADSL_NINSHO_ID | Constant | Aging work sub-category — ADSL authentication ID for aging |
| kojihi_kapu_flg | Field | Construction fee installment exclusion flag — when true, item is excluded from installment processing |
| GENE_ADD_DTM | Field | Generation registration timestamp — timestamp when a generation (e.g., equipment upgrade) was registered |
| MLAD | Field | Multi-line ADSL designation — MLAD value for multi-line ADSL contracts |
| SHK_EOID | Field | Shk-eID — secondary/eID identifier extracted from member type change results |
| SVC_KEI_UCWK_NO | Field | Service detail work number — internal tracking ID for service contract line items |
| KKSV0118* | Screen code | Service contract validation screen — KKSV0118 is the screen processing service contract validation |
