# Append content for sections 2-4
content = r"""
## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["reloadData()"])
    START --> GETBEAN["Get X31SDataBeanAccess / opeDate"]
    GETBEAN --> SAVESNAPSHOT["Save pre-reload snapshot (oldMap, oldMskmInfoMap)"]
    SAVESNAPSHOT --> MAPPERSET["Setup KKSV0081_KKSV0081OPDBMapper"]
    MAPPERSET --> CCALLS["Set CC/SC parameter methods (KKSV008101-37)"]
    CCALLS --> INVOKE["invokeService(paramMap, dataMap, newMskmInfoMap)"]
    INVOKE --> GETBEANRESULT["Get KKSV008101CC / mskm_svc_kei_ucwk_list"]
    GETBEANRESULT --> CHECKTYPE["Compare new vs old timestamps"]

    CHECKTYPE --> SVCPRC["Compare svc_kei_upd_dtm (service type level)"]
    SVCPRC --> HENFLG["henFlg = true if any changed"]

    HENFLG --> SUBMIT["Compare upd_dtm (submission detail level)"]
    SUBMIT --> CONTRACT["Compare ck0011_last_upd_dtm (contractor info level)"]

    CONTRACT --> FLAGCHECK["Is henFlg true?"]
    FLAGCHECK -- Yes --> RELOAD_SVC["Reload KKSV008101CC (service selection)"]
    FLAGCHECK -- No --> CONTINUE1["Continue to screen tabs"]

    RELOAD_SVC --> CONTINUE1
    CONTINUE1 --> CONTRACTFLG["Check keiJohoFlg (contractor info changed)"]
    CONTRACTFLG --> CONTRACTRELOAD["Reload KKSV008102CC if changed"]

    CONTRACTRELOAD --> RIYOFMG["Check riyoNulFlg (usage location changed)"]
    RIYOFMG --> RIYOCOND["If !isMobile, check kk0251_last_upd_dtm"]
    RIYOCOND --> RIYORELOAD["Reload KKSV008110CC if changed"]

    RIYORELOAD --> NETFLG["Check eoHikNetFlg (eo Hikari Net changed)"]
    NETFLG --> NETCOND["Compare kk0081_last_upd_dtm + kk2541_last_upd_dtm child lists"]
    NETCOND --> NETRELOAD["Reload KKSV008104CC + KKSV008105CC + KKSV008142SC"]

    NETRELOAD --> NTYPECHECK{"isTypeN()?"}
    NTYPECHECK -- Yes --> NTYPESVC["setNttTenyo / setSyokika / setNttTelOpt"]
    NTYPECHECK -- No --> TELFLG["Check eoHikTelFlg"]
    NTYPESVC --> TELFLG

    TELFLG --> TELRELOAD["Reload KKSV008106CC if changed"]
    TELRELOAD --> EMGADR["setSameTelEmgAd (emergency address sync)"]
    EMGADR --> TVFLG["Check eoHikaTvShoFlg (eo Hikari TV changed)"]

    TVFLG --> TVRELOAD["Reload KKSV008108CC + KKSV008109CC if changed"]
    TVRELOAD --> MOBAFLG["Check eoMobalFlg (eo Mobile changed)"]

    MOBAFLG --> MOBARELOAD["Reload KKSV008112CC if changed"]
    MOBARELOAD --> ADSFLG["Check eoAdsFlg (eoADSL changed)"]

    ADSFLG --> ADSRELOAD["Reload KKSV008113CC if changed"]
    ADSRELOAD --> TOKKIFLG["Check isReloadTokkiFlg (special notes changed)"]

    TOKKIFLG --> TOKKIRELOAD["Reload KKSV008114CC if changed"]
    TOKKIFLG --> PAYFLG["Check isReloadPaywayFlg (payment method changed)"]

    PAYFLG --> PAYRELOAD["Reload KKSV008103CC if changed"]
    PAYRELOAD --> WRIBFLG["Check isReloadWribFlg (discount info changed)"]

    WRIBFLG --> WRIBRELOAD["Reload KKSV008115CC + setListBackColor if changed"]
    WRIBRELOAD --> SAVEDATA["Save newMskmInfoMap to session"]

    SAVEDATA --> INITVD["initVdslHsk() / activateFooterButton()"]
    INITVD --> MTCHK["Check KKSV008136CC API result code"]
    MTCHK --> HKRMNCHK{"judgeHkrmn()?"}

    HKRMNCHK -- Yes --> EDITHKRMN["editHkrmnComboBox (Hikari Menshon)"]
    HKRMNCHK -- No --> HKHASCHECK{"judgeHhs_Cschpsb_Mans()?"}
    EDITHKRMN --> HKHASCHECK
    HKHASCHECK -- Yes --> EDITHKRMN2["editHkrmnComboBox (Hikari Course Change)"]
    HKHASCHECK -- No --> CHKERR["checkConfirmError()"]

    CHKERR --> MKICHECK{"checkMoveKKW03301()?"}
    MKICHECK -- false --> KIKISET["Set KIKI_DTL_MOVE_CHK_FLG = 1"]
    MKICHECK -- true --> KIKISET0["Set KIKI_DTL_MOVE_CHK_FLG = 0"]

    KIKISET --> AGNTCHK{"henFlg?"}
    KIKISET0 --> AGNTCHK
    AGNTCHK -- Yes --> AGNT["searchAgntMkmUkEostfUserIdAjax()"]
    AGNTCHK -- No --> TEGAKI["editTegakSvcList()"]
    AGNT --> TEGAKI

    TEGAKI --> TABINIT["Screen-specific initKKWxxxx()"]
    TABINIT --> DISPLAYERR["displayAllPageErrInfo()"]
    DISPLAYERR --> END_NODE(["End"])
```

**Processing Flow Summary:**

1. **Snapshot Phase**: The method captures the current screen state (oldMap, oldMskmInfoMap) to use as a baseline for later comparison. It retrieves the operation date and prepares the mapper with all CC/SC parameter-setting methods.

2. **Service Invoke Phase**: `invokeService()` is called on the mapper, which executes all configured CC (Common Component) and SC (Service Component) methods to fetch fresh data from the backend. The results are stored in `newMskmInfoMap`.

3. **Change Detection Phase**: For each service tab (service selection, contractor info, usage location, eo Hikari Net, eo telephone, eo Hikari TV, eo Mobile, eoADSL, special notes, payment method, discount info), the method compares timestamps between the old snapshot and the newly fetched data. If any change is detected, a dedicated flag (`henFlg`, `keiJohoFlg`, `riyoNulFlg`, `eoHikNetFlg`, `eoHikTelFlg`, `eoHikaTvShoFlg`, `eoMobalFlg`, `eoAdsFlg`, `isReloadTokkiFlg`, `isReloadPaywayFlg`, `isReloadWribFlg`) is set to `true`.

4. **Reload Phase**: For each flag that is `true`, the corresponding CC/SC get method is called to reload just the changed tab's data.

5. **Post-Reload Phase**: Session data is persisted, VDSL hints are initialized, footer buttons are activated, MT management API result is checked, Hikari Menshon / Hikari Course Change flags are evaluated, error checking is performed, and screen-specific tab initializations are triggered.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It operates entirely on instance fields and the session form bean. |

### Instance Fields / External State Read

| No | Field / Source | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `this` (session) | `HttpSession` | Servlet session — stores screen info under `SESSION_KEY_MSKMDATA` and operation date |
| 2 | `getServiceFormBean()` | `X31SDataBeanAccess` | Form bean data access — holds all screen input values and flags (EOH_NET_FLG, EOH_TEL_FLG, etc.) |
| 3 | `JCCWebCommon.getOpeDate()` | `String` | Retrieves the current operation date (YYYYMMDDHHMMSSsssssss format) |
| 4 | `JCCWebCommon.getScreenInfo(this, SESSION_KEY_MSKMDATA)` | `HashMap<String, Object>` | Retrieves the pre-reload screen snapshot from session |
| 5 | `KKSV0081_KKSV0081OPDBMapper` | Class | Mapper that dispatches to all CC/SC methods for data retrieval |
| 6 | `dataBean.sendMessageBoolean()` | Boolean flags | Checks service-type flags: EOH_NET_FLG, EOH_TEL_FLG, EOH_TV_FLG, EOMOBA_FLG, EOADSL_FLG |

## 4. CRUD Operations / Called Services

### CC (Common Component) Setters (Parameter Preparation)

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008111CC` | KKSV008111CC | - | Sets combo/work-param/pplan/KAP plan info parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008101CC` | KKSV008101CC | - | Sets service selection screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008102CC` | KKSV008102CC | - | Sets contractor information screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008103CC` | KKSV008103CC | - | Sets payment method screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008104CC` | KKSV008104CC | - | Sets eo Hikari Net screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008105CC` | KKSV008105CC | - | Sets eo Hikari Net additional info parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008106CC` | KKSV008106CC | - | Sets telephone screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008107CC` | KKSV008107CC | - | Sets supplementary info parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008108CC` | KKSV008108CC | - | Sets eo Hikari TV screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008109CC` | KKSV008109CC | - | Sets eo Hikari TV additional info parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008110CC` | KKSV008110CC | - | Sets usage location screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008112CC` | KKSV008112CC | - | Sets eo Mobile screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008113CC` | KKSV008113CC | - | Sets eoADSL screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008114CC` | KKSV008114CC | - | Sets special notes (tokki) screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008115CC` | KKSV008115CC | - | Sets discount information (wrib) screen parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008116CC` | KKSV008116CC | - | Sets additional parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008117CC` | KKSV008117CC | - | Sets additional parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008118CC` | KKSV008118CC | - | Sets additional parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008119CC` | KKSV008119CC | - | Sets additional parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008122CC` | KKSV008122CC | - | Sets additional parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008123CC` | KKSV008123CC | - | Sets eo electric contract (SYSID) CC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008126CC` | KKSV008126CC | - | Sets terminal supplement operation CC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008132SC` | KKSV008132SC | - | Sets fixed-rate service list SC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008131SC` | KKSV008131SC | - | Sets indoor device list SC (streaming media player) parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008133SC` | KKSV008133SC | - | Sets business parameter management list SC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008134SC` | KKSV008134SC | - | Sets additional SC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008135CC` | KKSV008135CC | - | Sets additional CC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008136CC` | KKSV008136CC | - | Sets MT (Mash up) management info CC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008137SC` | KKSV008137SC | - | Sets additional SC parameters |
| - | `KKSV0081_KKSV0081OPDBMapper.setKKSV008142SC` | KKSV008142SC | - | Sets additional SC parameters |

### CC (Common Component) Getters (Result Retrieval)

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008111CC` | KKSV008111CC | - | Retrieves combo/work-param/pplan/KAP plan info |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008118CC` | KKSV008118CC | - | Retrieves additional data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008122CC` | KKSV008122CC | - | Retrieves additional data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008101CC` | KKSV008101CC | - | Retrieves service selection data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008103CC` | KKSV008103CC | - | Retrieves payment method data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008104CC` | KKSV008104CC | - | Retrieves eo Hikari Net data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008105CC` | KKSV008105CC | - | Retrieves eo Hikari Net additional data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008106CC` | KKSV008106CC | - | Retrieves telephone data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008108CC` | KKSV008108CC | - | Retrieves eo Hikari TV data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008109CC` | KKSV008109CC | - | Retrieves eo Hikari TV additional data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008110CC` | KKSV008110CC | - | Retrieves usage location data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008112CC` | KKSV008112CC | - | Retrieves eo Mobile data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008113CC` | KKSV008113CC | - | Retrieves eoADSL data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008114CC` | KKSV008114CC | - | Retrieves special notes data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008115CC` | KKSV008115CC | - | Retrieves discount information data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008119CC` | KKSV008119CC | - | Retrieves additional data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008125CC` | KKSV008125CC | - | Retrieves standard construction cost division data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008126CC` | KKSV008126CC | - | Retrieves terminal supplement operation data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008130SC` | KKSV008130SC | - | Retrieves standard construction cost list SC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008131SC` | KKSV008131SC | - | Retrieves indoor device list SC data (streaming media player) |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008132SC` | KKSV008132SC | - | Retrieves fixed-rate service list SC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008134SC` | KKSV008134SC | - | Retrieves additional SC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008135CC` | KKSV008135CC | - | Retrieves additional CC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008136CC` | KKSV008136CC | - | Retrieves MT management info CC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008137SC` | KKSV008137SC | - | Retrieves additional SC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008142SC` | KKSV008142SC | - | Retrieves additional SC data |
| R | `KKSV0081_KKSV0081OPDBMapper.getKKSV008102SC` | KKSV008102SC | - | Retrieves contractor info SC data |

### Direct Calls (Non-Mapper)

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JCCWebCommon.getOpeDate` | - | - | Gets operation date |
| R | `JCCWebCommon.getScreenInfo` | - | - | Gets screen info from session |
| R | `JCCWebCommon.setScreenInfo` | - | - | Sets screen info in session |
| R | `JCCWebCommon.getScreenId` | - | - | Gets current screen ID |
| - | `JCCWebCommon.setMessageInfo` | - | - | Sets error message info |
| R | `JCCBPCommon.getOpeDate` | - | - | Gets operation date |
| R | `JFUEoTvCngAddStbCC.getOpeDate` | - | - | Gets operation date for TV conversion |
| R | `JFUHikkosiNaviRelAddCC.getOpeDate` | - | - | Gets operation date for navigation relocation |
| R | `JKKCreditAddCC.getOpeDate` | - | - | Gets operation date for credit card |
| R | `JCCModelCommon.getOpeDate` | - | - | Gets operation date from model |
| - | `JCCBatCommon.invokeService` | - | - | Invokes batch service |
| - | `JBSbatCKEoIDIktTaikai.invokeService` | - | - | Invokes contractor info table data service |
| - | `JBSBatKKCrsChgIktAdd.invokeService` | - | - | Invokes course change registration service |
| - | `JBSbatKKCrsChgSmtVLAdd.invokeService` | - | - | Invokes course change summary service |
| - | `JBSbatKKEponSwchKjInfSksi.invokeService` | - | - | Invokes EPON switch key info service |
| - | `OneStopDataBeanAccess.sendMessageString` | - | - | Sets string value on data bean |
| - | `OneStopDataBeanAccess.sendMessageBoolean` | - | - | Sets boolean value on data bean |
| - | `JKKAddSupportCC.setMessageInfo` | - | - | Sets add support message |
| - | `JKKCreateNhkDntIktCC.setMessageInfo` | - | - | Sets NHK donation registration message |
| - | `JKKFumeiKktkSvcKeiUpdCC.setMessageInfo` | - | - | Sets unregistered service charge update message |
| - | `JKKGetKikiUpdCodeNameCC.setMessageInfo` | - | - | Sets equipment update code name message |
| - | `JKKGetKojiAkTaknkikiCC.setMessageInfo` | - | - | Sets existing active equipment message |
| - | `JKKKeiNewCmnLogicUtil.judgeHhs_Cschpsb_Mans` | - | - | Judges Hikari Menshon course change eligibility |
| - | `KKW00121SFLogic.fixCourseChoiceList` | - | - | Fixes course choice list (internal) |
| - | `KKW00121SFLogic.initTabInfo` | - | - | Initializes tab display info (internal) |
| - | `KKW00121SFLogic.setSameTelEmgAd` | - | - | Sets same emergency address (internal) |
| - | `KKW00121SFLogic.editHkrmnComboBox` | - | - | Edits Hikari Menshon combo box (internal) |
| - | `KKW00121SFLogic.setListBackColor` | - | - | Sets list background color (internal) |
| - | `KKW00121SFLogic.setNttTenyo` | - | - | Sets NTT transfer data (internal) |
| - | `KKW00121SFLogic.setSyokika` | - | - | Sets initialization data (internal) |
| - | `KKW00121SFLogic.setNttTelOpt` | - | - | Sets NTT telephone option data (internal) |
| - | `KKW00121SFLogic.checkConfirmError` | - | - | Checks confirmation errors (internal) |
| - | `KKW00121SFLogic.checkMoveKKW03301` | - | - | Checks if move to KKW03301 is allowed (internal) |
| - | `KKW00121SFLogic.searchAgntMkmUkEostfUserIdAjax` | - | - | Searches agent customer info via Ajax (internal) |
| - | `KKW00121SFLogic.editTegakSvcList` | - | - | Edits price list service list (internal) |
| - | `KKW00121SFLogic.initVdslHsk` | - | - | Initializes VDSL hints (internal) |
| - | `KKW00121SFLogic.activateFooterButton` | - | - | Activates footer buttons (internal) |
| - | `KKW00121SFLogic.displayAllPageErrInfo` | - | - | Displays all page error info (internal) |
| - | `KKW00121SFLogic.checkReloadPrcGrpCd` | - | - | Checks if reload is needed for price group code (internal) |
| - | `KKW00121SFLogic.checkReloadKKW00125` | - | - | Checks if reload is needed for telephone tab (internal) |
| - | `KKW00121SFLogic.checkReloadKKW00182` | - | - | Checks if reload is needed for special notes tab (internal) |
| - | `KKW00121SFLogic.checkReloadKKW00183` | - | - | Checks if reload is needed for payment method tab (internal) |
| - | `KKW00121SFLogic.checkReloadKKW00184` | - | - | Checks if reload is needed for discount info tab (internal) |
| - | `KKW00121SFLogic.isMobile` | - | - | Checks if mobile-only screen (internal) |
| - | `KKW00121SFLogic.isTypeN` | - | - | Checks if Type N service (internal) |
| - | `KKW00121SFLogic.getScreenId` | - | - | Gets screen ID (internal) |
| - | `KKW00121SFLogic.initKKW00121` through `initKKW00199` | - | - | Various screen-specific initializations (internal) |
"""

with open("/tmp/wiki_gen_uay5t4vm/.codewiki/dd/KKW00121SFLogic/reloadData.md", "a") as f:
    f.write(content)

print("Sections 2-4 appended successfully")