# Business Logic — JKKCustMemberSbtChgCC.execute() [685 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKCustMemberSbtChgCC` |
| Layer | CC/Common Component — shared business logic component called by multiple screens |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKCustMemberSbtChgCC.execute()

This method performs **customer membership type upgrade** — converting a temporary, open, or family-member customer into a master member (individual or corporate) within the K-Opticom/Mineo telecom customer management system. Per the Javadoc: "Processes the change of the specified customer ID to a master member. If already a master member, does nothing. If resigned, recovers the customer." It implements a **conditional-dispatch routing pattern**: based on the customer's current membership type (CD00039 code), the method branches into distinct processing paths — early return for master members, recovery for resigned customers, type-determination for non-master customers, and then a series of post-change side-effect operations (hosting contract synchronization, ISP gateway creation, group management, CCMG integration, payment method cleanup, and directive registration). It serves as a **cross-cutting business hub** called during new-contract intake and screen lookups, where membership decisions need to be resolved and all downstream entities (contact associations, payment methods, service agreements) kept consistent.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["execute(handle, param, fixedText)"])

    START --> INIT["Initialize: custMap, oPE_DATE, targetUcwkList"]
    INIT --> EXTRACT["Extract: memberSbtCd, keisyaTypeCd, sysid, currentSysid, cust_taikai_ymd, eonetidMiIkoFlgBefore"]

    EXTRACT --> CHECK_TAikai{"退会年月日<br/>(cust_taikai_ymd)<br/>is present?"}

    CHECK_TAikai -->|Yes| RECOVER["Customer Recovery Processing<br/>editCustKaihkMap() + JCKCustKaihkCmnCC.execute()"]
    RECOVER --> RET_MEMBER_1["Return regitMemberSbtCd"]

    CHECK_TAikai -->|No| CHECK_MASTER{"Current membership<br/>is MASTER_KOJIN or<br/>MASTER_HOJIN?"}

    CHECK_MASTER -->|Yes - Already Master| CHECK_SJISHO{"Called from<br/>KKSV076601CC<br/>(mineo lookup)?"}
    CHECK_SJISHO -->|Yes| PUT_AX_RENKEI["Link: putAxMRenkeiDataKbn11<br/>(customer info update directive)"]
    PUT_AX_RENKEI --> ADD_SJISHO["addSjisho(handle, param, sjishoMap)"]
    ADD_SJISHO --> RET_MEMBER_2["Return regitMemberSbtCd"]
    CHECK_SJISHO -->|No| RET_MEMBER_2

    CHECK_MASTER -->|No - Non-Master| DETERMINE_TYPE["Determine target membership type<br/>based on keisyaTypeCd"]

    DETERMINE_TYPE --> TYPE_KOJIN{"keisyaType =<br/>CD00036_KOJIN?"}
    TYPE_KOJIN -->|Yes| SET_MASTER_KOJIN["regitMemberSbtCd = CD00039_MASTER_KOJIN"]
    SET_MASTER_KOJIN --> CALL_SVC_CHECK

    TYPE_KOJIN -->|No| TYPE_HOJIN_OR_JISHA{"keisyaType =<br/>CD00036_HOJIN<br/>or CD00036_JISHA_USE?"}
    TYPE_HOJIN_OR_JISHA -->|Yes| SET_MASTER_HOJIN["regitMemberSbtCd = CD00039_MASTER_HOJIN"]
    SET_MASTER_HOJIN --> CALL_SVC_CHECK

    TYPE_HOJIN_OR_JISHA -->|No - MNT| CHECK_AGREEMENTS["Query ECK0021A010 (individual)<br/>and ECK0031A010 (corporate)<br/>agreements to determine type"]
    CHECK_AGREEMENTS --> AGREE_KOJIN{"ECK0021A010 has records?"}
    AGREE_KOJIN -->|Yes| SET_KOJIN_AGREE["regitMemberSbtCd = CD00039_MASTER_KOJIN"]
    SET_KOJIN_AGREE --> AGREE_HOJIN
    AGREE_KOJIN -->|No| AGREE_HOJIN{"ECK0031A010 has records?"}
    AGREE_HOJIN -->|Yes| SET_HOJIN_AGREE["regitMemberSbtCd = CD00039_MASTER_HOJIN"]
    SET_HOJIN_AGREE --> AGREE_HOJIN_DEFAULT
    AGREE_HOJIN -->|No| DEFAULT_HOJIN["regitMemberSbtCd = CD00039_MASTER_HOJIN"]
    DEFAULT_HOJIN --> AGREE_HOJIN_DEFAULT
    SET_KOJIN_AGREE --> AGREE_HOJIN_DEFAULT
    SET_HOJIN_AGREE --> AGREE_HOJIN_DEFAULT
    AGREE_HOJIN_DEFAULT --> CALL_SVC_CHECK

    CALL_SVC_CHECK --> SVC_CHECK["callScCmn EKK0081B519<br/>Query service contracts"]
    SVC_CHECK --> CHECK_HOSTING{"Has hosting<br/>(CD00130_04 = '04')<br/>and active (SVC_KEI_STAT_100)?"}

    CHECK_HOSTING -->|Yes| EXISTS_HOSTING["existsContentsAgreement = true"]
    EXISTS_HOSTING --> HOST_SYNC["Sync contract info:<br/>edit customer info via C010,<br/>edit contact associations,<br/>handle contact insert (OM-2014-0002974)"]
    HOST_SYNC --> BREAK_HOSTING["break - skip ISP flow"]

    CHECK_HOSTING -->|No| CHECK_OPEN_MEMBER{"Current membership =<br/>CD00039_30 (Open Member)?"}
    CHECK_OPEN_MEMBER -->|Yes| ISP_FLOW_INIT["ispKessaiCreateFlg = true"]
    ISP_FLOW_INIT --> ISP_CHECK_SVC{"Has other eo services<br/>excluding hosting/mineo?"}
    ISP_CHECK_SVC -->|Yes| ISP_SET_FALSE["ispKessaiCreateFlg = false"]
    ISP_SET_FALSE --> ISP_BREAK["break"]
    ISP_CHECK_SVC -->|No| ISP_TRUE["ispKessaiCreateFlg remains true"]
    ISP_TRUE --> ISP_BREAK

    ISP_BREAK --> HOLD_BEFORE["memberSbtCdBefore = memberSbtCd<br/>dslAfSkssnsKh = null"]

    HOLD_BEFORE --> CHECK_UPGRADE{"Was Open Member<br/>and now Master?"}
    CHECK_UPGRADE -->|Yes| SET_DSL_FAIL["dslAfSkssnsKh = CD00003_FAIL<br/>(contract cancellation request blocked)"]
    SET_DSL_FAIL --> MEMBER_UPDATE
    CHECK_UPGRADE -->|No| MEMBER_UPDATE

    MEMBER_UPDATE["editMapMemberSbt(param, custMap, regitMemberSbtCd, dslAfSkssnsKh)"]
    MEMBER_UPDATE --> EXEC_MEMBER_SCLOOP["Loop: ServiceComponentRequestInvoker<br/>execute member type change SC"]

    EXEC_MEMBER_SCLOOP --> SYSID_UPDATE["Update sysid from result<br/>Update ck0011UpdDtm"]
    SYSID_UPDATE --> FAMILY_CHECK["callScCmn ECK0111B002<br/>Query family member group"]
    FAMILY_CHECK --> IS_GROUP{"Is family group?<br/>(eck0111MsgList > 0)"}
    IS_GROUP -->|Yes| SET_IS_GROUP["isGroup = true<br/>grp_leader_sysid = eck0111MsgList[0].grp_leader_sysid"]
    SET_IS_GROUP --> GROUP_DECISION
    IS_GROUP -->|No| SET_NOT_GROUP["isGroup = false"]
    SET_NOT_GROUP --> GROUP_DECISION

    GROUP_DECISION{"isGroup=false<br/>OR was Family<br/>Member before?"}

    GROUP_DECISION -->|Yes| PREP_GRP_SETUP["Query ECK0121B020<br/>(customer group settings)"]
    PREP_GRP_SETUP --> EXEC_REGIST["callScCmn ECK0111D010<br/>Register group"]
    EXEC_REGIST --> CHECK_PREV_FAMILY{"Was previous<br/>Family Member?"}
    CHECK_PREV_FAMILY -->|Yes| DISABLE_PREV_GRP["Invalidate previous<br/>customer group setting ECK0121C020"]
    DISABLE_PREV_GRP --> FAMILY_TYPE_HANDLER
    CHECK_PREV_FAMILY -->|No| FAMILY_TYPE_HANDLER

    GROUP_DECISION -->|No| SKIP_TO_RENKEI["Skip group operations"]

    FAMILY_TYPE_HANDLER{"Was previous<br/>Family Member<br/>(KOJIN or HOJIN)?"}

    FAMILY_TYPE_HANDLER -->|Yes| FAMILY_FLOW["Handle family-to-master upgrade"]
    FAMILY_FLOW --> WIFI_SPOT{"grp_leader_sysid != null?"}
    WIFI_SPOT -->|Yes| UPDATE_WIFI["updateWifiSpotLoginSysid()"]
    UPDATE_WIFI --> HAKKO_SOD["hakkoSodCc() — Wi-Fi spot SOD"]
    HAKKO_SOD --> CCMG_INTEGRATION

    WIFI_SPOT -->|No| CCMG_INTEGRATION
    CCMG_INTEGRATION{"needCallApiMmbSbtUpd()"}
    CCMG_INTEGRATION -->|Yes| REQUEST_CCMG["requestCcmgApiChgMmbSbtDsl()"]
    REQUEST_CCMG --> PAYWAY_UPDATE
    CCMG_INTEGRATION -->|No| PAYWAY_UPDATE

    PAYWAY_UPDATE["callECN0131B006 — Payment method inquiry"]
    PAYWAY_UPDATE --> PAYWAY_LOOP_LOOP["Loop: payment method records"]
    PAYWAY_LOOP_LOOP --> PAYWAY_ISPKS{"payway_input_shien_cd =<br/>PAYWAY_INPSUP_CD_ISPKS?"}
    PAYWAY_ISPKS -->|Yes - ISP Payway| PAYWAY_PARENT{"ISP svc_kei_no in<br/>parent customer set?"}
    PAYWAY_PARENT -->|Yes| DELETE_PAYWAY["callECH0231B010 +<br/>callECN0131E011 +<br/>callECK0151D010Map<br/>— Delete old ISP payway"]
    DELETE_PAYWAY --> PAYWAY_LOOP_END
    PAYWAY_PARENT -->|No| PAYWAY_LOOP_END
    PAYWAY_ISPKS -->|No| PAYWAY_LOOP_END
    PAYWAY_LOOP_END --> PAYWAY_LOOP_NEXT["Next payment record"]

    PAYWAY_LOOP_NEXT --> PAYWAY_LOOP_CHECK{"More records?"}
    PAYWAY_LOOP_CHECK -->|Yes| PAYWAY_LOOP_LOOP
    PAYWAY_LOOP_CHECK -->|No| SKIP_TO_RENKEI_FLOW

    FAMILY_TYPE_HANDLER -->|No| SKIP_TO_RENKEI_FLOW

    CHECK_OPEN_POST{"Was previous<br/>Open Member?"}
    CHECK_OPEN_POST -->|Yes| OPEN_MEMBER_CCMG["needCallApiMmbSbtUpd() +<br/>requestCcmgApiChgMmbSbtDsl()"]
    OPEN_MEMBER_CCMG --> OPEN_BREAK["break"]
    CHECK_OPEN_POST -->|No| OPEN_BREAK

    OPEN_BREAK --> PUT_CUST_GRP["putAxMRenkeiDataKbn<br/>(customer group info — RENAME_DATA_KBN_CUST_GRP)"]

    PUT_CUST_GRP --> PUT_BASIC_INFO{"Was previous<br/>Open/Family Member?"}
    PUT_BASIC_INFO -->|Yes| PUT_BASIC_UPD["putAxMRenkeiDataKbn11<br/>(customer info — UPDATE)"]
    PUT_BASIC_UPD --> PUT_FINAL_SJISHO
    PUT_BASIC_INFO -->|No| PUT_BASIC_ADD["putAxMRenkeiDataKbn<br/>(customer info — ADD)"]
    PUT_BASIC_ADD --> PUT_FINAL_SJISHO

    PUT_FINAL_SJISHO{"ispKessaiCreateFlg?<br/>(ISP Gateway auto-set)"}
    PUT_FINAL_SJISHO -->|Yes| CREATE_ISP_GW["callECN0131D011ForIspks<br/>— Create ISP gateway payway<br/>putAxMRenkeiDataKbn08 (directive ADD)"]
    CREATE_ISP_GW --> EXEC_SJISHO

    PUT_FINAL_SJISHO -->|No| EXEC_SJISHO
    EXEC_SJISHO["addSjishoCC.addSjisho() — Directive registration"]
    EXEC_SJISHO --> RET_MEMBER_3["Return regitMemberSbtCd"]
    RET_MEMBER_3 --> END(["End"])

    SKIP_TO_RENKEI --> PUT_CUST_GRP

    RET_MEMBER_1 --> END
    RET_MEMBER_2 --> END
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database/session handle used for all SC (Service Component) invocations within this transaction. Carries the persistence context and connection state. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the customer data map (keyed by `fixedText`), directive registration maps, error message lists, and cross-component data passing. Contains `custMap` which holds the result of customer single-query lookup. |
| 3 | `fixedText` | `String` | A unique map key prefix used to namespace data maps within `param`. Combines with constants like `SJISHO_MAP` and `CUSTKAIHK_MAPKEY_SUFFIX` to form keys such as `"KKSV076601CC_CUSTMMBSBT_CHG_SJISHO_MAP"`. Also serves as a caller identifier (e.g., `"KKSV076601CC"`) to detect which screen triggered the membership change. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `oPE_DATE` | `String` | Operation date (set to current business date via `JCCBPCommon.getOpeDate()`) — used in group registration templates |
| `targetUcwkList` | `List<Map>` | Service detail work list — initialized as empty here, used by called SOD issuance methods for Wi-Fi spot-related service orders |

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis graph:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callECK0021A010SC` | ECK0021A010SC | E_KYOUSYAKU (individual customer agreement) | Queries individual customer agreement records to determine if an open member qualifies as master individual |
| R | `callECK0031A010SC` | ECK0031A010SC | E_KYOUSYAKU_HOJIN (corporate customer agreement) | Queries corporate customer agreement records for the same membership determination |
| R | `callECK0201B001SC` | ECK0201B001SC | E_RENSAKU (contact association) | Retrieves existing contact association records for hosting contract sync |
| R | `callScCmn (EKK0081B519)` | EKK0081B519SC | E_SVC_KEI (service contract) | Queries all service contracts for a given SYSID to check hosting contract existence |
| R | `callScCmn (ECK0111B002)` | ECK0111B002SC | E_KAZOKU_IN (family member group info) | Queries family member group membership to detect if the customer belongs to a group |
| R | `callScCmn (ECK0121B020)` | ECK0121B020SC | E_CUST_GRP_SETTE (customer group settings) | Queries existing customer group settings when handling family member transitions |
| R | `callECN0131B006` | ECN0131B006SC | E_PAYWAY (payment method) | Queries payment method records for payment method input support cleanup |
| C | `callScCmn (ECK0111D010)` | ECK0111D010CBS | E_KAZOKU_IN (family member group) | Registers the customer into a family member group |
| U | `callScCmn (ECK0121C020)` | ECK0121C020CBS | E_CUST_GRP_SETTE (customer group settings) | Invalidates/disables the previous customer group setting when transitioning from family member |
| C | `callECN0131D011ForIspks` | ECN0131D011CBS | E_PAYWAY (payment method) | Creates a new payment method record with ISP gateway designation when upgrading to master member |
| U | `callECN0131E011` | ECN0131E011CBS | E_PAYWAY (payment method) | Updates an existing payment method record (deleting ISP payway support) |
| U | `ServiceComponentRequestInvoker.run()` | ECK0011C120CBS | E_KAKUCHI_KYAKU (customer master) | Updates the customer master with the new membership type code |
| U | `ServiceComponentRequestInvoker.run()` | ECK0021C010CBS | E_KYOUSYAKU (individual agreement) | Updates individual customer agreement with sync info during hosting contract processing |
| U | `ServiceComponentRequestInvoker.run()` | ECK0031C010CBS | E_KYOUSYAKU_HOJIN (corporate agreement) | Updates corporate customer agreement with sync info during hosting contract processing |
| U | `ServiceComponentRequestInvoker.run()` | ECK0201C010CBS | E_RENSAKU (contact association) | Updates existing contact association records |
| C | `ServiceComponentRequestInvoker.run()` | ECK0201D010CBS | E_RENSAKU (contact association) | Creates new contact association records when hosting contract has no existing contact |
| R | `JCCBPCommon.getOpeDate` | JCCBPCommon | - | Retrieves the current business operation date |
| R | `JCKPmpCommonUtil.needCallApiMmbSbtUpd` | JCKPmpCommon | - | Determines if a CCMG API call is needed for membership type change |
| - | `JCKPmpCommonUtil.requestCcmgApiChgMmbSbtDsl` | JCKPmpCommon | - | Calls external CCMG (Customer Management Gateway) API for membership type change notification |
| - | `JCKPmpCommonUtil.callECH0231B010` | ECH0231B010SC | - | Queries promotion/target data during ISP payway deletion |
| - | `JCKPmpCommonUtil.callECK0151D010Map` | ECK0151D010CBS | - | Directive registration for payment method payway deletion |
| - | `JCKPmpScParamHenshu.getResultMsgList` | JCKPmpScParamHenshu | - | Extracts message list from SC result |
| - | `JCKPmpScParamHenshu.getResultString` | JCKPmpScParamHenshu | - | Extracts string value from SC result |
| - | `JCKPmpScParamHenshu.isSuccess` | JCKPmpScParamHenshu | - | Checks SC call success status |
| - | `editCustKaihkMap` | - | - | Prepares the customer recovery map for recovery processing |
| - | `editMapMemberSbt` | - | - | Builds update map for membership type change |
| - | `editMapECK0021C010` | - | - | Builds update map for individual customer agreement during hosting sync |
| - | `editMapECK0031C010` | - | - | Builds update map for corporate customer agreement during hosting sync |
| - | `editMapECK0201C010` | - | - | Builds update map for contact association change during hosting sync |
| - | `editMapECK0201D010` | - | - | Builds create map for contact association during hosting sync |
| - | `editResultRPECK0011C120` | - | - | Processes SC results and populates error/warning message lists |
| - | `editResultRPECK0021C010` | - | - | Processes individual agreement change results |
| - | `editResultRPECK0031C010` | - | - | Processes corporate agreement change results |
| - | `editResultRPECK0201C010` | - | - | Processes contact association change results |
| - | `editResultRPECK0201D010` | - | - | Processes contact association creation results |
| - | `addSjishoCC.addSjisho` | JKKAddSjishoCC | - | Executes directive registration (synchronous processing) |
| - | `JCKCustKaihkCmnCC.execute` | JCKCustKaihkCmnCC | - | Executes customer recovery processing |
| - | `updateWifiSpotLoginSysid` | - | - | Updates Wi-Fi spot login SYSID during family member upgrade |
| - | `hakkoSodCc` | - | - | Issues SOD (Service Order Data) for Wi-Fi spot changes |
| - | `JKBpCommon.putAxMRenkeiDataKbn` | JKBpCommon | - | Registers linked data in directive map for batch processing |
| - | `JKBpCommon.putAxMRenkeiDataKbn11` | JKBpCommon | - | Registers linked data for customer info update in directive map |
| - | `JKBpCommon.putAxMRenkeiDataKbn08` | JKBpCommon | - | Registers linked data for payway information in directive map |
| R | `JKKSIFEKK0081Mapper.getMappedTemplateEKK0081B519` | EKK0081B519SC | E_SVC_KEI (service contract) | Creates query template for service contract list |
| R | `JKKSIFECK0011Mapper.getMappedTemplateECK0111B002` | ECK0111B002SC | E_KAZOKU_IN (family member group) | Creates query template for family group membership |
| R | `JKKSIFECK0121Mapper.getMappedTemplateECK0121B020` | ECK0121B020SC | E_CUST_GRP_SETTE (customer group settings) | Creates query template for customer group settings |
| - | `JKKSIFECK0111Mapper.getMappedTemplateECK0111D010` | ECK0111D010CBS | E_KAZOKU_IN (family member group) | Creates registration template for family group |
| - | `JKKSIFECK0121Mapper.getMappedTemplateECK0121C020` | ECK0121C020CBS | E_CUST_GRP_SETTE (customer group settings) | Creates disable template for customer group settings |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0004 | KKSV0004CC.execute → JKKCustMemberSbtChgCC.execute → editMapMemberSbt [U] E_KAKUCHI_KYAKU |
| 2 | Screen:KKSV076601 | KKSV076601CC.execute → JKKCustMemberSbtChgCC.execute → addSjishoCC.addSjisho [C/R/U multiple] E_KAKUCHI_KYAKU, E_CUST_GRP_SETTE, E_SVC_KEI |

**Notes:** The pre-extracted caller list only shows `JKKCustMemberSbtChgCC.execute()` as a direct caller. This suggests the method is primarily invoked from within the same class hierarchy (self-referential) or through a dispatcher. The method name `JKKCustMemberSbtChgCC` translates to "Customer Membership Type Change Common Component," indicating it's a shared component called from multiple customer-related screens (KKSVxxxx).

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Initialization (L152)

> Sets up the working context: extracts customer data, sets operation date, initializes lists.

| # | Type | Code |
|---|------|------|
| 1 | SET | `custMap = param.getData(fixedText)` |
| 2 | SET | `svc_kei_no = custMap.get(SVC_KEI_NO)` // Service contract number |
| 3 | SET | `sysid = custMap.get(SYSID)` // Customer ID |
| 4 | SET | `oPE_DATE = JCCBPCommon.getOpeDate(null)` // Current business date |
| 5 | SET | `targetUcwkList = new ArrayList()` // Service detail work list |
| 6 | SET | `memberSbtCd = custMap.get(ECK0011A010CBSMsg1List.MEMBER_SBT_CD)` // Current membership type code |
| 7 | SET | `keisyaTypeCd = custMap.get(ECK0011A010CBSMsg1List.KEISHA_TYPE_CD)` // Company type (individual/corporate) |
| 8 | SET | `currentSysid = custMap.get(ECK0011A010CBSMsg1List.SYSID)` |
| 9 | SET | `eonetidMiIkoFlgBefore = custMap.get(ECK0011A010CBSMsg1List.EONETID_MI_IKO_FLG)` |
| 10 | SET | `regitMemberSbtCd = custMap.get(ECK0011A010CBSMsg1List.MEMBER_SBT_CD)` // Copy for return value |
| 11 | SET | `ck0011UpdDtm = custMap.get(ECK0011A010CBSMsg1List.LAST_UPD_DTM)` // Update timestamp |
| 12 | SET | `isGroup = false` |
| 13 | SET | `cust_taikai_ymd = custMap.get(ECK0011A010CBSMsg1List.CUST_TAIKAI_YMD)` // Resignation date |

**Block 2** — [IF] Resignation date is present — Customer Recovery (L163)

> If the customer has been resigned (退会年月日 is set), execute recovery processing and return early.

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKBpCommon.isNull(cust_taikai_ymd)` [CD00039 resigned customer has taikai_ymd set] (L163) |
| 2 | SET | `custKaihkMapKey = fixedText + CUSTKAIHK_MAPKEY_SUFFIX` |
| 3 | EXEC | `editCustKaihkMap(param, custKaihkMapKey, svc_kei_no, sysid)` |
| 4 | CALL | `(new JCKCustKaihkCmnCC()).execute(handle, param, custKaihkMapKey)` // Customer recovery |
| 5 | RETURN | `return regitMemberSbtCd` |

**Block 3** — [IF] Already a master member (L178)

> If the customer is already MASTER_KOJIN or MASTER_HOJIN, do nothing for normal cases. However, if called from KKSV076601CC (mineo screen lookup), link directive registration for customer info update.

| # | Type | Code |
|---|------|------|
| 1 | IF | `memberSbtCd.equals(JCKStrConst.CD00039_MASTER_KOJIN)` // "10" — Master Individual (L178) |
| 2 | OR | `memberSbtCd.equals(JCKStrConst.CD00039_MASTER_HOJIN)` // "20" — Master Corporate |
| 3 | IF | `KKSV076601CC.equals(fixedText + SJISHO_MAP)` // Called from mineo lookup (L190) |
| 4 | EXEC | `JKKBpCommon.putAxMRenkeiDataKbn11(param, fixedText + SJISHO_MAP, JKKAddSjishoConst.TRN_KBN_UPD, new String[]{svc_kei_no}, currentSysid, new String[]{"3","6","11"})` |
| 5 | EXEC | `addSjishoCC.addSjisho(handle, param, fixedText + SJISHO_MAP)` // Directive registration |
| 6 | RETURN | `return regitMemberSbtCd` |

**Block 4** — [IF/ELSE-IF/ELSE] Determine target membership type from company type (L197)

> For non-master customers, the target membership type is determined based on the company type (keisyaTypeCd).

| # | Type | Code |
|---|------|------|
| 1 | IF | `keisyaTypeCd.equals(JCKStrConst.CD00036_KOJIN)` // "1" — Individual (L197) |
| 2 | SET | `regitMemberSbtCd = JCKStrConst.CD00039_MASTER_KOJIN` // "10" — Master Individual |
| 3 | ELSE-IF | `keisyaTypeCd.equals(JCKStrConst.CD00036_HOJIN)` // "2" — Corporate (L201) |
| 4 | OR | `keisyaTypeCd.equals(JCKStrConst.CD00036_JISHA_USE)` // "3" — Device usage |
| 5 | SET | `regitMemberSbtCd = JCKStrConst.CD00039_MASTER_HOJIN` // "20" — Master Corporate |
| 6 | ELSE-IF | `keisyaTypeCd.equals(JCKStrConst.CD00036_MNT)` // "4" — Maintenance (pending type) (L210) |
| 7 | CALL | `callECK0021A010SC(param, handle, currentSysid)` // Query individual agreements |
| 8 | CALL | `callECK0031A010SC(param, handle, currentSysid)` // Query corporate agreements |
| 9 | IF | `workECK0021A010.length > 0` // Has individual agreement (L222) |
| 10 | SET | `regitMemberSbtCd = JCKStrConst.CD00039_MASTER_KOJIN`, `keisyaFlg = "1"` |
| 11 | ELSE-IF | `workECK0031A010.length > 0` // Has corporate agreement (L228) |
| 12 | SET | `regitMemberSbtCd = JCKStrConst.CD00039_MASTER_HOJIN`, `keisyaFlg = "1"` |
| 13 | ELSE | (keisyaFlg still "0") |
| 14 | SET | `regitMemberSbtCd = JCKStrConst.CD00039_MASTER_HOJIN` // Default to corporate (L235) |

**Block 5** — [IF/ELSE-IF/ELSE] Hosting contract sync processing (L250)

> If the customer has an active hosting contract (CD00130_04 = "04"), sync customer and contact info, then skip ISP flow.

| # | Type | Code |
|---|------|------|
| 1 | IF | `resultMsgs != null && resultMsgs.length > 0` (L254) |
| 2 | FOR | `i = 0; i < svcKeiList.length; i++` |
| 3 | SET | `svcCd = eKK0081Map.getString(EKK0081B519CBSMsg1List.SVC_CD)` |
| 4 | SET | `svcKeiStat = eKK0081Map.getString(EKK0081B519CBSMsg1List.SVC_KEI_STAT)` |
| 5 | IF | `JKKStrConst.CD00130_04.equals(svcCd) && JKKSvcConst.SVC_KEI_STAT_100.equals(svcKeiStat)` // "04" = Hosting, "100" = Active (L260) |
| 6 | SET | `existsContentsAgreement = true` |
| 7 | IF | `JCKStrConst.CD00039_MASTER_KOJIN.equals(regitMemberSbtCd)` // Customer is Master Individual (L267) |
| 8 | CALL | `callECK0021A010SC()` // Query individual agreement |
| 9 | EXEC | `editMapECK0021C010(param, custMap, workECK0021A010[0])` |
| 10 | CALL | `ServiceComponentRequestInvoker.run(updCustMap, handle)` // Update ECK0021C010CBS |
| 11 | EXEC | `editResultRPECK0021C010(rslt, param)` |
| 12 | SET | `custMap.put(ECK0011A010CBSMsg1List.UPD_DTM, eck0021c010Template.getString(ECK0021C010CBSMsg.UPD_DTM))` |
| 13 | ELSE-IF | `JCKStrConst.CD00039_MASTER_HOJIN.equals(regitMemberSbtCd)` (L286) |
| 14 | CALL | `callECK0031A010SC()` // Query corporate agreement |
| 15 | EXEC | `editMapECK0031C010(param, custMap, workECK0031A010[0])` |
| 16 | CALL | `ServiceComponentRequestInvoker.run(updCustMap, handle)` // Update ECK0031C010CBS |
| 17 | EXEC | `editResultRPECK0031C010(rslt, param)` |
| 18 | SET | `custMap.put(ECK0011A010CBSMsg1List.UPD_DTM, eck0031c010Template.getString(ECK0031C010CBSMsg.UPD_DTM))` |
| 19 | CALL | `callECK0201B001SC()` // Query contact associations |
| 20 | SET | `renSakiInsertFlg = true` // Contact registration flag (L318) |
| 21 | FOR | `j = 0; j < workECK0201B001.length; j++` (L321) |
| 22 | IF | `checkContRenSaki(workECK0201B001[j])` // Has contents contact (L325) |
| 23 | EXEC | `editMapECK0201C010(param, custMap, workECK0201B001[j])` // Update existing contact |
| 24 | CALL | `ServiceComponentRequestInvoker.run()` // Update ECK0201C010CBS |
| 25 | EXEC | `editResultRPECK0201C010(rslt, param)` |
| 26 | SET | `renSakiInsertFlg = false` // Don't insert new contact (L346) |
| 27 | ELSE | (no contact change) |
| 28 | END-FOR | |
| 29 | IF | `renSakiInsertFlg` // No existing contact found (L355) |
| 30 | EXEC | `editMapECK0201D010(param, custMap)` // Create new contact |
| 31 | CALL | `ServiceComponentRequestInvoker.run()` // Insert ECK0201D010CBS |
| 32 | EXEC | `editResultRPECK0201D010(rslt, param)` |
| 33 | SET | `ck0011UpdDtm = eck0021d010Template.getString(ECK0201D010CBSMsg.UPD_DTM)` |
| 34 | END-FOR | |
| 35 | BREAK | break out of svcKeiList loop (L372) |

**Block 6** — [IF] Open Member ISP gateway creation (L379)

> For open members (CD00039_30 = "30"), create ISP gateway if there is a hosting contract and no other eo service contracts.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKStrConst.CD00039_30.equals(memberSbtCd)` // "30" — Open Member (L380) |
| 2 | IF | `existsContentsAgreement` // Hosting contract exists (L383) |
| 3 | SET | `ispKessaiCreateFlg = true` |
| 4 | FOR | `i = 0; i < svcKeiList.length; i++` |
| 5 | SET | `svcCd = eKK0081Map.getString(EKK0081B519CBSMsg1List.SVC_CD)` |
| 6 | SET | `svcKeiStat = eKK0081Map.getString(EKK0081B519CBSMsg1List.SVC_KEI_STAT)` |
| 7 | IF | `!CD00130_51.equals(svcCd) && !CD00130_04.equals(svcCd)` // Not mineo, not hosting |
| 8 | AND | `!CD00037_DSL_ZM.equals(svcKeiStat) && !CD00037_CANCEL_ZM.equals(svcKeiStat)` // Not DSL/MIO, not cancelled |
| 9 | SET | `ispKessaiCreateFlg = false` |
| 10 | BREAK | break from svcKeiList loop |
| 11 | END-FOR | |

**Block 7** — [IF] Upgrade contract request prohibition (L436)

> If upgrading from Open Member to Master (individual/corporate), set `dslAfSkssnsKh = "0"` (cancellation request is not permissible).

| # | Type | Code |
|---|------|------|
| 1 | IF | `JCKStrConst.CD00039_OPEN.equals(memberSbtCdBefore) && (CD00039_MASTER_KOJIN.equals(regitMemberSbtCd) \|\| CD00039_MASTER_HOJIN.equals(regitMemberSbtCd))` (L441) |
| 2 | SET | `dslAfSkssnsKh = JCKStrConst.CD00003_FAIL` // "0" — Not permissible |

**Block 8** — [FOR] Member type change execution (L450)

> Executes the membership type update via the Service Component Request Invoker for each record.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `wkMapArray = editMapMemberSbt(param, custMap, regitMemberSbtCd, dslAfSkssnsKh)` |
| 2 | FOR | `i = 0; i < wkMapArray.size(); i++` (L451) |
| 3 | SET | `updCustMap = wkMapArray.get(i)` |
| 4 | CALL | `ServiceComponentRequestInvoker.run(updCustMap, handle)` // ECK0011C120CBS — Customer type change |
| 5 | EXEC | `wkErrorList = editResultRPECK0011C120(rslt, param)` |
| 6 | IF | `!eck0011c120Template.isNull(ECK0011C120CBSMsg.SHK_EOID)` (L462) |
| 7 | SET | `sysid = eck0011c120Template.getString(ECK0011C120CBSMsg.SYSID)`, `currentSysid = sysid` |
| 8 | SET | `ck0011UpdDtm = eck0011c120Template.getString(ECK0011C120CBSMsg.UPD_DTM)` |
| 9 | END-FOR | |

**Block 9** — [BLOCK] Family group check (L469)

> Queries the family member group to determine if the customer is part of a family group.

| # | Type | Code |
|---|------|------|
| 1 | INIT | `grp_leader_sysid = null` |
| 2 | INIT | `JKKSIFECK0111Mapper mapper = new JKKSIFECK0111Mapper()` |
| 3 | EXEC | `template = mapper.getMappedTemplateECK0111B002(sysid)` |
| 4 | CALL | `resultMsgs = callScCmn(param, handle, template, mapper)` |
| 5 | SET | `eck0111MsgList = resultMsgs[0].getCAANMsgList(ECK0111B002CBSMsg.ECK0111B002CBSMSG1LIST)` |
| 6 | IF | `eck0111MsgList != null && eck0111MsgList.length > 0` (L478) |
| 7 | SET | `isGroup = true`, `grp_leader_sysid = eck0111MsgList[0].getString("grp_leader_sysid")` |

**Block 10** — [IF] Group registration (L487)

> Executes group registration when the customer is not in a group OR was previously a family member (ST-2014-0000105).

| # | Type | Code |
|---|------|------|
| 1 | IF | `!isGroup \|\| CD00039_FAMILY_HOJIN.equals(memberSbtCdBefore) \|\| CD00039_FAMILY_KOJIN.equals(memberSbtCdBefore)` (L487) |
| 2 | EXEC | `JKKSIFECK0121Mapper mapperECK0121 = new JKKSIFECK0121Mapper()` |
| 3 | EXEC | `templateECK0121B020 = mapperECK0121.getMappedTemplateECK0121B020(sysid)` |
| 4 | CALL | `resultMsgsECK0121B020 = callScCmn(param, handle, templateECK0121B020, mapperECK0121)` |
| 5 | BLOCK (nested) | Group registration ECK0111D010 (L500) |
| 6 | | `mapper = new JKKSIFECK0111Mapper()` |
| 7 | | `templateECK0111D010 = mapper.getMappedTemplateECK0111D010(sysid, oPE_DATE, null, ck0011UpdDtm)` |
| 8 | | `callScCmn(param, handle, templateECK0111D010, mapper)` |
| 9 | IF | `CD00039_FAMILY_HOJIN.equals(memberSbtCdBefore) \|\| CD00039_FAMILY_KOJIN.equals(memberSbtCdBefore)` (L508) |
| 10 | IF | `resultMsgsECK0121B020 != null && length > 0` |
| 11 | SET | `cust_grp_sette_no = eck0121MsgList[0].getString(ECK0121B020CBSMsg1List.CUST_GRP_SETTE_NO)` |
| 12 | EXEC | `templateECK0121C020 = mapperECK0121.getMappedTemplateECK0121C020(cust_grp_sette_no, oPE_DATE, ck0011UpdDtm)` |
| 13 | CALL | `callScCmn(param, handle, templateECK0121C020, mapperECK0121)` |

**Block 11** — [IF] Family member upgrade post-processing (L525)

> Handles Wi-Fi spot login ID changes, CCMG integration, and payment method updates when upgrading from a family member.

| # | Type | Code |
|---|------|------|
| 1 | IF | `CD00039_FAMILY_HOJIN.equals(memberSbtCdBefore) \|\| CD00039_FAMILY_KOJIN.equals(memberSbtCdBefore)` (L533) |
| 2 | IF | `grp_leader_sysid != null` (L538) |
| 3 | CALL | `updateWifiSpotLoginSysid(handle, param, sysid, grp_leader_sysid)` |
| 4 | CALL | `this.hakkoSodCc(handle, param, grp_leader_sysid, fixedText)` |
| 5 | SET | `mmbSbtUpdApicalled = needCallApiMmbSbtUpd(eonetidMiIkoFlgBefore, memberSbtCdBefore, regitMemberSbtCd)` |
| 6 | IF | `mmbSbtUpdApicalled` (L547) |
| 7 | SET | `res = requestCcmgApiChgMmbSbtDsl(handle, param, sysid, eonetidMiIkoFlgBefore, memberSbtCdBefore, regitMemberSbtCd, sysid, PMP_CCMG_RENKEI_UPD_NM)` |
| 8 | IF | `!res` |
| 9 | EXEC | `JSYejbLog.println(JSYejbLog.ERROR, ...)` // Log error — CCMG integration failure |
| 10 | END-IF | |
| 11 | CALL | `result = callECN0131B006(handle, param, sysid)` // Payment method inquiry |
| 12 | IF | `isSuccess(result)` (L561) |
| 13 | EXEC | `JKKSIFEKK0081Mapper mapper = new JKKSIFEKK0081Mapper()` |
| 14 | EXEC | `template = mapper.getMappedTemplateEKK0081B519(grp_leader_sysid, "1")` |
| 15 | CALL | `resultMsgs = callScCmn(param, handle, template, mapper)` |
| 16 | SET | `parantCustSvcKeiSet = new HashSet<String>()` |
| 17 | FOR | `i = 0; i < svcKeiList.length; i++` — Build parent customer service contract set |
| 18 | FOR | `i = 0; i < dataList.length; i++` — Loop payment methods |
| 19 | SET | `isp_kssai_svc_kei_no = payway.getString(ECN0131B006CBSMsgList.ISP_KSSAI_SVC_KEI_NO)` |
| 20 | SET | `payway_input_shien_cd = payway.getString(ECN0131B006CBSMsgList.PAYWAY_INPUT_SHIEN_CD)` |
| 21 | IF | `JCKStrConst.PAYWAY_INPSUP_CD_ISPKS.equals(payway_input_shien_cd)` // ISP payway support (L585) |
| 22 | IF | `isp_kssai_svc_kei_no != null && parantCustSvcKeiSet.contains(isp_kssai_svc_kei_no)` (L586) |
| 23 | CALL | `result = callECH0231B010(handle, param, "1", sysid)` // Get promotion data |
| 24 | SET | `tokusokuStat = getResultString(result, mapKey + ECH0231B010CBSMsg1List.TOKUSOKU_STAT)` |
| 25 | SET | `paywayNo = payway.getString(ECN0131B006CBSMsgList.PAYWAY_NO)` |
| 26 | SET | `updDtm = payway.getString(ECN0131B006CBSMsgList.UPD_DTM)` |
| 27 | CALL | `result = callECN0131E011(handle, param, paywayNo, updDtm)` // Delete ISP payway |
| 28 | SET | `svcKeiNoBf = payway.getString(ECN0131B006CBSMsgList.ISP_KSSAI_SVC_KEI_NO)` |
| 29 | SET | Various fields from payway: `paywayInputShienCd`, `tsyrnPaySeq`, `addDtm`, `addOpeacnt` |
| 30 | SET | `bfPaywayInputShienInfoUpdDtm = getResultString(result, ECN0131E011CBSMsg.UPD_DTM)` |
| 31 | SET | `bfPaywayInputShienInfoUpdOpacnt = getResultString(result, ECN0131E011CBSMsg.UPD_OPEACNT)` |
| 32 | SET | `bfPaywayInputShienInfoMkFlg = getResultString(result, ECN0131E011CBSMsg.MK_FLG)` |
| 33 | SET | `paywayDelMap = createShijishoParamPaywayAdd(sysid, svcKeiNoBf, paywayInputShienCd, paywayNo, tsyrnPaySeq, addDtm, addOpeacnt, bfPaywayInputShienInfoUpdDtm, bfPaywayInputShienInfoUpdOpacnt, bfPaywayInputShienInfoMkFlg, tokusokuStat)` |
| 34 | CALL | `result = callECK0151D010Map(handle, param, paywayDelMap)` // Directive registration |
| 35 | END-IF | (payway delete block) |
| 36 | END-IF | (payway is ISP type) |
| 37 | END-FOR | (payment method records) |
| 38 | END-IF | (ECN0131B006 success) |
| 39 | END-IF | (family member block) |

**Block 12** — [ELSE-IF] Open Member CCMG integration (L760)

> When the previous membership type was Open Member, also call CCMG integration API.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `JCKStrConst.CD00039_OPEN.equals(memberSbtCdBefore)` (L760) |
| 2 | SET | `mmbSbtUpdApicalled = needCallApiMmbSbtUpd(eonetidMiIkoFlgBefore, memberSbtCdBefore, regitMemberSbtCd)` |
| 3 | IF | `mmbSbtUpdApicalled` |
| 4 | SET | `res = requestCcmgApiChgMmbSbtDsl(handle, param, sysid, eonetidMiIkoFlgBefore, memberSbtCdBefore, regitMemberSbtCd, sysid, PMP_CCMG_RENKEI_UPD_NM)` |
| 5 | IF | `!res` |
| 6 | EXEC | `JSYejbLog.println(JSYejbLog.ERROR, ...)` // Log CCMG failure |
| 7 | END-IF | |

**Block 13** — [SET] Directive registration linkage data (L777)

> Registers linked data for customer group and customer info directive batches.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `JKKBpCommon.putAxMRenkeiDataKbn(param, fixedText + SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_GRP, JKKAddSjishoConst.TRN_KBN_ADD, new String[]{}, currentSysid)` |
| 2 | IF | `CD00039_OPEN.equals(memberSbtCdBefore) \|\| CD00039_FAMILY_KOJIN.equals(memberSbtCdBefore) \|\| CD00039_FAMILY_HOJIN.equals(memberSbtCdBefore)` (L790) |
| 3 | EXEC | `JKKBpCommon.putAxMRenkeiDataKbn11(param, fixedText + SJISHO_MAP, JKKAddSjishoConst.TRN_KBN_UPD, new String[]{svc_kei_no}, currentSysid, new String[]{"3","6","11"})` // Update linkage |
| 4 | ELSE | (L800) |
| 5 | EXEC | `JKKBpCommon.putAxMRenkeiDataKbn(param, fixedText + SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_INF, JKKAddSjishoConst.TRN_KBN_ADD, new String[]{svc_kei_no}, currentSysid)` // Add linkage |
| 6 | END-IF | |

**Block 14** — [IF] ISP gateway auto-creation (L812)

> When `ispKessaiCreateFlg` is true, create a new ISP gateway payment method designation.

| # | Type | Code |
|---|------|------|
| 1 | IF | `ispKessaiCreateFlg` (L814) |
| 2 | CALL | `result = callECN0131D011ForIspks(handle, param, sysid, svc_kei_no)` // Create ISP gateway payway |
| 3 | IF | `!isSuccess(result)` |
| 4 | EXEC | `throw new Exception()` |
| 5 | EXEC | `JKKBpCommon.putAxMRenkeiDataKbn08(param, fixedText + SJISHO_MAP, JKKAddSjishoConst.TRN_KBN_ADD, new String[]{svc_kei_no}, sysid)` // Directive linkage for payway |
| 6 | END-IF | |

**Block 15** — [SET] Final directive registration (L824)

> Executes the final directive registration (synchronous processing) for the membership type change.

| # | Type | Code |
|---|------|------|
| 1 | INIT | `JKKAddSjishoCC addSjishoCC = new JKKAddSjishoCC()` |
| 2 | CALL | `addSjishoCC.addSjisho(handle, param, fixedText + SJISHO_MAP)` |
| 3 | RETURN | `return regitMemberSbtCd` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `memberSbtCd` | Field | Membership type code — classifies the customer's membership status (Open, Master Individual, Master Corporate, Family Member) |
| `keisyaTypeCd` | Field | Company type code — determines if the customer is an individual, corporate, device-user, or pending type |
| `svc_kei_no` | Field | Service contract number — unique identifier for a service contract line item |
| `sysid` | Field | Customer SYSID — unique system identifier for a customer record |
| `currentSysid` | Field | Current customer SYSID — may change after membership upgrade (new SYSID assigned) |
| `cust_taikai_ymd` | Field | Customer resignation year-month-date — when the customer was resigned; if present, recovery processing is triggered |
| `eonetidMiIkoFlgBefore` | Field | Eonet ID migration flag (before) — indicates whether the Eonet ID has been migrated for CCMG integration |
| `regitMemberSbtCd` | Field | Registered (target) membership type code — the membership type after the upgrade, returned to the caller |
| `grp_leader_sysid` | Field | Group leader SYSID — the parent customer's SYSID in a family group |
| `dslAfSkssnsKh` | Field | DSL after cancellation request permissible — flag indicating whether cancellation request documents can be displayed ("0" = not permissible) |
| `ispKessaiCreateFlg` | Field | ISP settlement creation flag — indicates whether an ISP gateway should be auto-created for the upgraded member |
| `existsContentsAgreement` | Field | Contents agreement existence flag — indicates whether an active hosting contract exists for the customer |
| `RENKEI_DATA_KBN_CUST_GRP` | Constant | Linked data category "Customer Group" — directive batch category for customer group information linkage |
| `RENKEI_DATA_KBN_CUST_INF` | Constant | Linked data category "Customer Info" — directive batch category for customer master information linkage |
| `TRN_KBN_ADD` | Constant | Transaction category "Add" — indicates a new record registration in directive linkage |
| `TRN_KBN_UPD` | Constant | Transaction category "Update" — indicates an update operation in directive linkage |
| SJISHO_MAP | Constant | Directive registration map key suffix — `"_CUSTMMBSBT_CHG_SJISHO_MAP"`, used to namespace directive data |
| CUSTKAIHK_MAPKEY_SUFFIX | Constant | Customer recovery map key suffix — `"_CUSTMMBSBT_CHG_CUSTKAIHK_MAP"`, used for recovery processing |
| PMP_CCMG_RENKEI_UPD_NM | Constant | PMP-CCMG integration update name — the event name for CCMG API membership change notifications |
| CD00039_OPEN | Constant | Membership code "30" — Open Member (temporary, pre-approval status) |
| CD00039_MASTER_KOJIN | Constant | Membership code "10" — Master Individual (approved individual customer) |
| CD00039_MASTER_HOJIN | Constant | Membership code "20" — Master Corporate (approved corporate customer) |
| CD00039_FAMILY_KOJIN | Constant | Membership code "40" — Family Member (Individual) — subordinate to a master individual |
| CD00039_FAMILY_HOJIN | Constant | Membership code "50" — Family Member (Corporate) — subordinate to a master corporate |
| CD00039_30 | Constant | Alias for CD00039_OPEN — Open Member code |
| CD00036_KOJIN | Constant | Company type "1" — Individual |
| CD00036_HOJIN | Constant | Company type "2" — Corporate |
| CD00036_JISHA_USE | Constant | Company type "3" — Device usage (corporate-provided device) |
| CD00036_MNT | Constant | Company type "4" — Maintenance (pending type determination) |
| CD00130_04 | Constant | Service code "04" — Hosting service (contents hosting contract) |
| CD00130_51 | Constant | Service code "51" — Mineo service |
| CD00037_DSL_ZM | Constant | Service state "DSL/MIO" — DSL/MIO active service state |
| CD00037_CANCEL_ZM | Constant | Service state "Cancellation" — Cancellation service state |
| CD00003_FAIL | Constant | Value "0" — Not permissible / failure flag |
| PAYWAY_INPSUP_CD_ISPKS | Constant | Payment method input support code "ISP settlement" — indicates ISP gateway payment method designation |
| SVC_KEI_STAT_100 | Constant | Service contract status "100" — Service provision active |
| MASTER_KOJIN | Business term | Master Individual — fully approved individual customer with full service access |
| MASTER_HOJIN | Business term | Master Corporate — fully approved corporate customer with full service access |
| Open Member | Business term | Temporary customer awaiting approval; has limited service access |
| Family Member | Business term | Subordinate customer linked to a master member; services are billed through the master |
| Hosting (contents) | Business term | Contents hosting service — Fujitsu's web hosting service for customers |
| ISP gateway (ISP決済口) | Business term | ISP settlement account designation — routes ISP billing through a parent/master customer's payment method |
| CCMG | Acronym | Customer Management Convergence Gateway — external system for customer data synchronization |
| SOD | Acronym | Service Order Data — order data for telecom service provisioning |
| SC | Acronym | Service Component — the SOA-layer service that handles a single database operation or business transaction |
| CBS | Acronym | Customer Business System — the core telecom customer management system |
| E_KAKUCHI_KYAKU | Entity | Customer master table — stores customer demographic and membership data |
| E_SVC_KEI | Entity | Service contract table — stores service contract records |
| E_KYOUSYAKU | Entity | Individual customer agreement table — stores individual customer service agreements |
| E_KYOUSYAKU_HOJIN | Entity | Corporate customer agreement table — stores corporate customer service agreements |
| E_RENSAKU | Entity | Contact association table — stores customer contact/linkage information |
| E_KAZOKU_IN | Entity | Family member group table — stores family group membership information |
| E_CUST_GRP_SETTE | Entity | Customer group settings table — stores customer group configuration |
| E_PAYWAY | Entity | Payment method table — stores payment method records and ISP gateway designations |
| 退会 (Tai-kai) | Japanese term | Customer resignation/cancellation — customer has been formally cancelled from the system |
| マスタ会員 (Masuta Kaiin) | Japanese term | Master member — a fully registered, approved customer (individual or corporate) |
| 会員種別 (Kaiin Shubetsu) | Japanese term | Membership type — the classification code determining a customer's membership status |
| 指示書登録 (Shijisho Touroku) | Japanese term | Directive registration — batch processing registration for asynchronous downstream operations |
| 連先 (Rensaki) | Japanese term | Contact/association — customer linkage records (e.g., address associations, contacts) |
| 親マスター (Oya Masuta) | Japanese term | Parent master — the master member that a family member is subordinate to |
| Mineo | Business term | K-Opticom's mobile phone service brand (sub-brand of Docomo) |
| Wi-Fi spot | Business term | Public Wi-Fi access point — requires login SYSID linked to the master member account |
| 解約後請求書参照可否 (Kaisha-go Seikyushou Sangaku Kahi) | Japanese term | Cancellation-request-document-permissible flag — controls whether billing statements can be requested after contract cancellation |
| 支払い方法入力支援 (Shiharaihouhou Nyuuryoku Shien) | Japanese term | Payment method input support — a feature that auto-fills payment method fields based on ISP gateway designations |
