# Business Logic — JFUSetVariTsushinKikiMskmCC.setInMapOrderHakkoJyokenToroku() [29 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JFUSetVariTsushinKikiMskmCC` |
| Layer | CC/Common Component |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JFUSetVariTsushinKikiMskmCC.setInMapOrderHakkoJyokenToroku()

This method serves as a **mapping setter for order issuance conditions registration** (オーダー発行条件登録). It populates a `HashMap` (referred to as `inMap` internally) with a fixed set of business data fields required to create an order issuance condition record for a **telecom service contract change** scenario. Specifically, it handles the registration of orders for **phone services** (電話) with **multifunction router** (多機能) specifications, where the request type is a **change** (変更) and the issuance timing is **instant** (即時発行).

The method implements a **builder/delegation pattern**: it acts as a specialized data-assembler called during a larger screen logic flow that prepares order data for service IF (interface) execution. It is not a generic utility — it is hardcoded for a single business scenario: registering order issuance conditions for a multifunction phone service change with instant issuance. This makes it a domain-specific data-mapping method within the Fujitsu Futurity order-fulfillment framework.

It sets up nine fields in the input map, including service contract numbers, order-type codes, device model and serial numbers, and work-in-progress tracking numbers. No conditional branching exists within this method; it performs a deterministic, sequential map population followed by a void return.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setInMapOrderHakkoJyokenToroku"])
    STEP1["SetFuncCode: FUNC_CD_1 (Check & Register)"]
    STEP2["Get inMap: param.getData(fixedText)"]
    STEP3["Put SVC_KEI_NO: svcKeiNo"]
    STEP4["Put KKTK_SVC_KEI_NO: kktkSvcKeiNo"]
    STEP5["Put ORDER_SBT_CD: CD00309_2 = 2 (Phone)"]
    STEP6["Put SVC_ORDER_CD: CD00310_26 = 26 (Multifunction)"]
    STEP7["Put YOKYU_SBT_CD: CD00317_04 = 04 (Change)"]
    STEP8["Put ODR_HAKKO_JOKEN_CD: CD01104_01 = 01 (Instant Issuance)"]
    STEP9["Put TAKNKIKI_MODEL_CD: taknkikiModelCd"]
    STEP10["Put KIKI_SEIZO_NO: kikiSeizoNo"]
    STEP11["Put SVC_KEI_KAISEN_UCWK_NO: svcKeiUcwkNo"]
    END(["Return"])

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> STEP3
    STEP3 --> STEP4
    STEP4 --> STEP5
    STEP5 --> STEP6
    STEP6 --> STEP7
    STEP7 --> STEP8
    STEP8 --> STEP9
    STEP9 --> STEP10
    STEP10 --> STEP11
    STEP11 --> END
```

**Processing flow:**

1. **Set Function Code** — Calls `setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1)` to set the function code to `"1"` (Check & Registration). This is a prerequisite setup step shared across many mapping methods in the framework.
2. **Retrieve Input Map** — Calls `param.getData(fixedText)` to obtain the `HashMap` where mapping data will be stored. The `fixedText` parameter identifies the service message key.
3. **Populate Service Contract Number** — `inMap.put(EKK1081D010CBSMsg.SVC_KEI_NO, svcKeiNo)` sets the service contract number.
4. **Populate Equipment-Provided Service Contract Number** — `inMap.put(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo)` sets the equipment-provided service contract number (for carrier-provided equipment scenarios).
5. **Populate Order Subtype Code** — `inMap.put(EKK1081D010CBSMsg.ORDER_SBT_CD, JFUStrConst.CD00309_2)` sets order subtype code to `"2"` (Phone / 電話).
6. **Populate Service Order Code** — `inMap.put(EKK1081D010CBSMsg.SVC_ORDER_CD, JFUStrConst.CD00310_26)` sets service order code to `"26"` (Multifunction / 多機能).
7. **Populate Request Subtype Code** — `inMap.put(EKK1081D010CBSMsg.YOKYU_SBT_CD, JFUStrConst.CD00317_04)` sets request subtype code to `"04"` (Change / 変更).
8. **Populate Order Issuance Condition Code** — `inMap.put(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD, JFUStrConst.CD01104_01)` sets order issuance condition code to `"01"` (Instant Issuance / 即時発行).
9. **Populate Equipment Model Code** — `inMap.put(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, taknkikiModelCd)` sets the home equipment model code from the parameter.
10. **Populate Equipment Serial Number** — `inMap.put(EKK1081D010CBSMsg.KIKI_SEIZO_NO, kikiSeizoNo)` sets the equipment manufacturing number (serial number).
11. **Populate Service Contract Line Detail Number** — `inMap.put(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, svcKeiUcwkNo)` sets the service contract line detail/work-in-progress number.
12. **Return** — Method completes with `void` return.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | Request parameter object that holds the input/output data map used to communicate with the service IF layer. Provides `getData()` to retrieve the `HashMap` and acts as the carrier for all mapped values. |
| 2 | `fixedText` | `String` | Service message identifier/key used to retrieve the correct data map from `param`. Acts as a namespace key for the mapping data within the request parameter. |
| 3 | `svcKeiNo` | `String` | Service contract number (サービス契約番号) — The primary service contract identifier associated with the order. Identifies the customer's service agreement. |
| 4 | `svcKeiUcwkNo` | `String` | Service contract line detail/work-in-progress number (サービス契約内線内訳番号 / サービス契約回数線内訳番号) — Internal tracking ID for service contract line items. Used to correlate the order with the specific contract line. |
| 5 | `kktkSvcKeiNo` | `String` | Equipment-provided service contract number (機器提供サービス契約番号) — The service contract number for scenarios where equipment is provided by the carrier/telecom provider. |
| 6 | `taknkikiModelCd` | `String` | Home equipment model code (宅内機器型号コード) — The model code of the customer-premises equipment (CPE) being ordered, such as a multifunction router. |
| 7 | `kikiSeizoNo` | `String` | Equipment manufacturing number (機器製造番号) — The unique serial number of the equipment unit being registered in the order. |

**Instance fields / external state:** None read directly by this method. All data flows through method parameters.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `setFuncCode` | - | - | Sets the function code (`FUNC_CD_1 = "1"`) on the request parameter for Check & Registration mode. Framework setup call, no data access. |
| R | `param.getData` | - | - | Retrieves the `HashMap` data map from the request parameter keyed by `fixedText` (service message). |
| C | `inMap.put` (×9) | - | - | Inserts 9 key-value pairs into the input map. These values will be consumed by the service IF layer (via `executeSC`) which ultimately writes to the order issuance condition entity/table. |

**Notes:**
- This method does not directly call any SC (Service Component) or CBS (CBS-Remote) methods that access the database. It populates an in-memory `HashMap` which is later consumed by `executeSC()` (called by the caller method).
- The actual database write is performed by the downstream SC layer referenced by the caller (likely a CBS handler such as `EKK1081D010CBS` based on the message class used).
- All 9 `inMap.put()` operations are **Create** (C) in nature, as they set data that will be inserted as order issuance condition records.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Controller: JFUSetVariTsushinKikiMskmCC | Screen/Controller method -> `initData(param, fixedText, IN_COLUMN_LIST_40)` -> `setInMapOrderHakkoJyokenToroku` -> `executeSC(handle, param, fixedText, TEMPLATE_ID_40, ...)` -> `getTemplateValue(...)` | `executeSC [C] EKK1081D010CBS (Order Issuance Condition)` |

**Caller context:** The method is called from the same class `JFUSetVariTsushinKikiMskmCC` at approximately line 3096. The calling context is within a larger screen handler method that:
1. First queries service contract unique info (`TEMPLATE_ID_2`)
2. Then queries equipment-provided service contract unique info (`TEMPLATE_ID_27`)
3. Then queries current service contract line details list for net services (`TEMPLATE_ID_SVC_KEI_UCWK_LIST_SHOKAI`)
4. Initializes data for order issuance condition registration (`IN_COLUMN_LIST_40`)
5. Calls `setInMapOrderHakkoJyokenToroku` to populate the mapping
6. Calls `executeSC` to execute the service IF
7. Retrieves the resulting order issuance condition number

**Terminal operations from this method:** `getData` [R], `setFuncCode` [-], 9x `put` [C]. The downstream SC is `EKK1081D010CBS` (inferred from `EKK1081D010CBSMsg` usage).

## 6. Per-Branch Detail Blocks

This method has **no conditional branches** (no if/else, switch, or loops). It is a straight-line sequence of 11 processing steps.

**Block 1** — EXEC `(setFuncCode call)` (L3130)

> Sets the function code for Check & Registration mode. This is a framework-level setup call that prepares the request parameter for the upcoming data registration.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1)` // Set function code to "1" (Check & Registration) [-> FUNC_CD_1="1"] |

**Block 2** — EXEC `(get inMap from param)` (L3133)

> Retrieves the HashMap from the request parameter using the service message key. This map is the shared data carrier for the order issuance condition fields.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `HashMap inMap = (HashMap)param.getData(fixedText)` // Get input map from param using fixedText key |
| 2 | SET | `inMap` = HashMap (cast) // Data carrier for mapping |

**Block 3** — EXEC `(put service contract number)` (L3136)

> Sets the primary service contract number in the mapping.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.SVC_KEI_NO, svcKeiNo)` // サービス契約番号: Service contract number |

**Block 4** — EXEC `(put equipment-provided service contract number)` (L3138)

> Sets the equipment-provided service contract number for carrier-provided equipment scenarios.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo)` // 機器提供サービス契約番号: Equipment-provided service contract number |

**Block 5** — EXEC `(put order subtype code)` (L3140)

> Sets the order subtype code to "2" indicating a **phone service** (電話) order.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.ORDER_SBT_CD, JFUStrConst.CD00309_2)` // オーダー種別コード: Order subtype code [-> CD00309_2="2" (Phone / 電話)] |

**Block 6** — EXEC `(put service order code)` (L3142)

> Sets the service order code to "26" indicating a **multifunction** (多機能) service order.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.SVC_ORDER_CD, JFUStrConst.CD00310_26)` // サービスオーダーコード: Service order code [-> CD00310_26="26" (Multifunction / 多機能)] |

**Block 7** — EXEC `(put request subtype code)` (L3144)

> Sets the request subtype code to "04" indicating a **change** (変更) request.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.YOKYU_SBT_CD, JFUStrConst.CD00317_04)` // 要求種別コード: Request subtype code [-> CD00317_04="04" (Change / 変更)] |

**Block 8** — EXEC `(put order issuance condition code)` (L3146)

> Sets the order issuance condition code to "01" indicating **instant issuance** (即時発行).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD, JFUStrConst.CD01104_01)` // オード発行条件コード: Order issuance condition code [-> CD01104_01="01" (Instant Issuance / 即時発行)] |

**Block 9** — EXEC `(put equipment model code)` (L3148)

> Sets the home equipment model code from the method parameter.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, taknkikiModelCd)` // 宅内機器型号コード: Home equipment model code |

**Block 10** — EXEC `(put equipment serial number)` (L3150)

> Sets the equipment manufacturing number (serial number) from the method parameter.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.KIKI_SEIZO_NO, kikiSeizoNo)` // 機器製造番号: Equipment manufacturing number |

**Block 11** — EXEC `(put service contract line detail number)` (L3152)

> Sets the service contract line detail/work-in-progress number from the method parameter.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `inMap.put(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, svcKeiUcwkNo)` // サービス契約回数線内訳番号: Service contract line detail number |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SVC_KEI_NO` | Field | Service contract number (サービス契約番号) — The primary identifier for a customer's service agreement in the telecom service management system. |
| `KKTK_SVC_KEI_NO` | Field | Equipment-provided service contract number (機器提供サービス契約番号) — The service contract number associated with equipment (e.g., router, ONU) provided by the carrier as part of the service package. |
| `ORDER_SBT_CD` | Field | Order subtype code (オーダー種別コード) — Classifies the type of order: 1=FTTH, 2=Phone (電話), 3=Mail (メール), 4=Emergency Report (緊急通報), 5=VLAN. |
| `SVC_ORDER_CD` | Field | Service order code (サービスオーダーコード) — Specifies the service order type: 26=Multifunction (多機能), indicating a multifunction router or gateway device. |
| `YOKYU_SBT_CD` | Field | Request subtype code (要求種別コード) — Classifies the request type: 03=Cancellation (解約), 04=Change (変更), 07=Restoration (回復). |
| `ODR_HAKKO_JOKEN_CD` | Field | Order issuance condition code (オーダー発行条件コード) — Specifies when/how the order is issued: 01=Instant Issuance (即時発行), meaning the order is generated immediately upon registration. |
| `TAKNKIKI_MODEL_CD` | Field | Home equipment model code (宅内機器型号コード) — The model identifier for customer-premises equipment (CPE), such as a multifunction router or ONT. |
| `KIKI_SEIZO_NO` | Field | Equipment manufacturing number (機器製造番号) — The unique serial number of the physical equipment unit, used for asset tracking and warranty. |
| `SVC_KEI_KAISEN_UCWK_NO` | Field | Service contract line detail number (サービス契約回数線内訳番号) — Internal tracking ID for service contract line items; correlates the order with the specific contract line being modified. |
| `FUNC_CD_1` | Constant | Function code "1" (機能コード) — Check & Registration (チェック＆登録) mode in the Fujitsu framework. Indicates the operation will validate data then register it. |
| `JFUSetVariTsushinKikiMskmCC` | Class | Variation Transmission Device/Phone Equipment Registration Component Class (変更電話機器登録用CC) — A common component (CC) class handling order registration for varied telecom equipment. |
| `IRequestParameterReadWrite` | Interface | Request parameter interface — The framework interface for passing data between screen/controller layers and service IF layers. |
| `EKK1081D010CBSMsg` | Class | CBS message constant class for order issuance condition registration (CD: 010, Seq: D010) — Contains field name constants for the order issuance condition data structure. |
| `CD00309_2` | Constant | Code 00309 value 2 = "2" (Phone / 電話) — Order subtype code for telephone services. |
| `CD00310_26` | Constant | Code 00310 value 26 = "26" (Multifunction / 多機能) — Service order code for multifunction devices (e.g., multifunction routers). |
| `CD00317_04` | Constant | Code 00317 value 04 = "04" (Change / 変更) — Request subtype code for service changes/modifications. |
| `CD01104_01` | Constant | Code 01104 value 01 = "01" (Instant Issuance / 即時発行) — Order issuance condition code for immediate order generation. |
| CC | Acronym | Common Component — A shared component class in the Fujitsu Futurity framework, typically containing utility or mapping methods. |
| CBS | Acronym | CBS-Remote — A remote procedure call framework used in the Fujitsu Futurity architecture for database-accessing service components. |
| SC | Acronym | Service Component — The component layer that handles business logic and database operations, invoked via CBS or direct SC calls. |
| `inMap` | Variable | Input map — The HashMap data carrier populated with order issuance condition fields before being passed to the SC layer. |
| `fixedText` | Parameter | Service message key — Identifies which service message context the data mapping belongs to. |
