> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 物料

> 依物質、形狀、尺寸、表面處理、等級與類型定義原料庫存，並讓 Alforse 從這些屬性建立每種物料的 ID、名稱與代碼。

**物料**是你作為原料庫存持有的*物料*類型[品項](https://docs.alforse.com/zh-Hant/docs/reference/items.md)，例如鋼板或鋁棒。你不必用自由文字描述它，而是從結構化的屬性表中挑選值，Alforse 再由此組成物料的身分、顯示名稱與代碼。工程師與採購人員以此避免同一種庫存以不同名稱被重複輸入。

## 概念

### 六個屬性

一種物料最多由六個屬性描述。每一個都是物料以 ID 引用的查詢表：`materialSubstanceId`、`materialFormId`、`dimensionId`、`finishId`、`gradeId` 與 `materialTypeId`。

FieldType

<details>
  <summary>**物質（Substance）**`materialSubstance`</summary>

  庫存由什麼製成，例如鋼、鋁、不鏽鋼或鈦。具有 `name` 與 `code`。
</details>

<details>
  <summary>**形狀（Form）**`materialForm`</summary>

  產品形狀，例如薄板、厚板、圓棒或鑄錠。具有 `name` 與 `code`。
</details>

<details>
  <summary>**尺寸（Dimension）**`materialDimension`</summary>

  具名的尺寸。屬於某個**形狀**，因為薄板尺寸與棒材尺寸不同。帶有 `isMetric`。
</details>

<details>
  <summary>**表面處理（Finish）**`materialFinish`</summary>

  表面處理。屬於某個**物質**。
</details>

<details>
  <summary>**等級**`materialGrade`</summary>

  **物質**內的等級，例如鋼的 1018 等級。
</details>

<details>
  <summary>**類型**`materialType`</summary>

  同時綁定**物質與形狀**的產品類型，例如熱軋鋼板。具有 `name` 與 `code`。
</details>

### 各選項如何彼此相依

**物質**與**形狀**各自獨立。其他每個屬性都會被其中之一或兩者篩選：

| 屬性 | 選項依以下篩選 |
| - | - |
| 尺寸 | 所選的形狀 |
| 表面處理 | 所選的物質 |
| 等級 | 所選的物質 |
| 類型 | 所選的物質與形狀合併 |

這就是新增物料表單由上而下填寫的原因：先選物質與形狀，其下的清單就會縮小到相符的內容。如果你更改物質，等級與表面處理的清單也會隨之改變。

NOTE

**每種物料在內部都一致**

因為清單是依其上層篩選，所以你無法把棒材尺寸附加到薄板庫存，或把不鏽鋼等級附加到鋁。只會提供有效的組合。

## 屬性值從哪裡來

Alforse 附帶一組每家公司都看得到的起始值。你的公司再在其上加入自己的值。

| 來源 | 儲存於 | 誰看得到 |
| - | - | - |
| 系統值 | `materialStandardDefinition` | 每家公司 |
| 你的新增 | `materialCompanyDefinition` | 僅你的公司 |

兩個資料表都容納全部六種屬性，以 `definitionKind` 區分（*substance*、*form*、*type*、*grade*、*finish*、*dimension*）。每一種的需求：

FieldType

<details>
  <summary>**物質、形狀**`definitionKind`</summary>

  名稱，以及必填的 `code`，最多 10 個字元：大寫字母、數字與連字號。
</details>

<details>
  <summary>**類型**`definitionKind`</summary>

  名稱與代碼，範圍限於**物質與形狀**合併。
</details>

<details>
  <summary>**尺寸**`definitionKind`</summary>

  名稱，範圍限於某個**形狀**，加上 `isMetric`。
</details>

<details>
  <summary>**表面處理、等級**`definitionKind`</summary>

  名稱，範圍限於某個**物質**。
</details>

NOTE

**重複規則**

在一家公司內，值必須依種類、名稱（忽略大小寫）、代碼，及其物質與形狀範圍而唯一。因此同一個名稱可以存在於兩個不同的上層之下，但不能在同一個上層之下出現兩次。編輯是透過冪等的命令日誌（`materialDefinitionCommand`）套用，所以重複的請求不會產生重複項目。

## 建立物料

物料如何取得其 ID，取決於公司設定 `materialGeneratedIds`，位於**設定 → 品項 → 物料 ID**。

| 設定 | 你輸入什麼 | Alforse 做什麼 |
| - | - | - |
| **開**（自動產生） | 物質與形狀，加上任何選用屬性 | 隱藏**物料 ID**與簡短說明欄位，並由屬性推導。更改屬性會重新產生 ID 與名稱。 |
| **關**（手動） | **物料 ID**，必填 | 使用你輸入的 ID。 |

使用自動產生的 ID 時，物質與形狀是最低要求：物料至少是「某種形狀的某種物質」，尺寸、表面處理、等級與類型則進一步細化。

### 名稱與代碼如何組成

* **顯示名稱**結合物質與形狀名稱，以及你所選的任何表面處理、等級與尺寸名稱。
* **物料代碼**結合物質、形狀與類型的代碼。

### ID、修訂版與尺寸

物料可讀的 ID 就是它的物料 ID，所以它的零件編號與物料 ID 是同一個值。一種物料可以橫跨數筆品項記錄：每個**修訂版**一筆，每個庫存尺寸一筆。你指派的 `sizes` 會成為[工單](https://docs.alforse.com/zh-Hant/docs/reference/jobs.md)與採購單上可選擇的變體；每個尺寸都是各自的品項列，並共用該物料的 ID。

## 疑難排解

多數物料錯誤來自缺少必要屬性。哪些屬性必填，取決於 ID 是否自動產生。

### "Substance is required" 或 "Shape is required"（需要物質／需要形狀）

**原因：**你正在建立開啟自動產生 ID 的物料。在此模式下，Alforse 由屬性建立 ID 與名稱，所以物質與形狀（"Shape"）都是必填。
**解決方法：**選擇物質與形狀。尺寸、表面處理、等級與類型可以留空。

### "Material ID is required"（需要物料 ID）

**原因：**ID 為手動，所以顯示**物料 ID**欄位，且不能留空。
**解決方法：**輸入 ID，或開啟自動產生 ID，讓 Alforse 推導。

### 物料 ID 欄位意外出現或消失

**原因：**該欄位依 `materialGeneratedIds` 設定而定。開啟時隱藏它；關閉時顯示它並設為必填。
**解決方法：**檢查**設定 → 品項 → 物料 ID**。

### 新的屬性值被拒絕

**原因：**每個值都需要其上層，有些還需要名稱與代碼。

| 建立 | 需要 | 缺少時的錯誤 |
| - | - | - |
| 表面處理或等級 | 物質 | "Substance is required" |
| 尺寸 | 形狀 | "Shape is required" |
| 類型 | 物質與形狀 | "Substance is required"、"Shape is required" |
| 物質、形狀或類型 | 名稱與代碼 | "Name is required"、"Code is required" |
| 尺寸、表面處理或等級 | 名稱 | "Name is required" |

**解決方法：**先選取上層，再為該值命名。

### "Failed to insert material" 或 "Failed to update material"（無法新增／更新物料）

**原因：**儲存在伺服器上失敗。通常是 ID 解析為已存在的物料，因為物料依其組成屬性而唯一，資料庫約束會拒絕它。
**解決方法：**更改屬性或 ID，使組合唯一。

## 相關內容

**品項**

物料是*物料*類型的品項；追蹤、計量單位與其他品項欄位在此說明。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/items.md)

**方法與供應來源**

物料會成為方法物料清單中的元件。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/methods.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.