> ## 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/ko/docs/reference/items.md)입니다. 자유 텍스트로 설명하는 대신 구조화된 속성 표에서 값을 선택하며, Alforse가 이 값들로 자재의 식별자, 표시 이름, 코드를 구성합니다. 엔지니어와 구매 담당자는 이를 통해 같은 재고가 서로 다른 이름으로 두 번 입력되는 것을 방지합니다.

## 개념

### 여섯 가지 속성

자재는 최대 여섯 가지 속성으로 설명됩니다. 각각은 자재가 ID로 참조하는 조회 값입니다: `materialSubstanceId`, `materialFormId`, `dimensionId`, `finishId`, `gradeId`, `materialTypeId`.

FieldType

<details>
  <summary>**물질**`materialSubstance`</summary>

  재고를 구성하는 소재(강철, 알루미늄, 스테인리스, 티타늄 등)입니다. `name`과 `code`가 있습니다.
</details>

<details>
  <summary>**형태**`materialForm`</summary>

  시트, 플레이트, 둥근 바, 잉곳 같은 제품 형상입니다. `name`과 `code`가 있습니다.
</details>

<details>
  <summary>**치수**`materialDimension`</summary>

  이름이 있는 크기입니다. 시트 크기와 바 크기가 다르므로 **형태**에 속합니다. `isMetric`을 가집니다.
</details>

<details>
  <summary>**마감**`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를 얻는 방식은 **설정 → 품목 → 자재 ID**에 있는 회사 설정 `materialGeneratedIds`에 따라 달라집니다.

| 설정 | 입력하는 내용 | Alforse의 동작 |
| - | - | - |
| **켬**(자동 생성) | 물질과 형태, 그리고 선택적 속성 | **자재 ID**와 짧은 설명 필드를 숨기고 속성에서 도출합니다. 속성을 변경하면 ID와 이름이 다시 생성됩니다. |
| **끔**(수동) | **자재 ID**(필수) | 입력한 ID를 사용합니다. |

ID를 자동 생성하는 경우 물질과 형태가 최소 요건입니다. 자재는 최소한 "어떤 형태의 물질"이며 치수, 마감, 등급, 유형이 이를 구체화합니다.

### 이름과 코드의 구성 방식

* **표시 이름**은 물질과 형태의 이름에 선택한 마감, 등급, 치수의 이름을 결합합니다.
* **자재 코드**는 물질, 형태, 유형의 코드를 결합합니다.

### ID, 리비전, 크기

자재의 읽을 수 있는 ID는 자재 ID이므로 부품 번호와 자재 ID는 같은 값입니다. 하나의 자재가 여러 품목 레코드에 걸칠 수 있습니다. **리비전**마다 하나, 재고 크기마다 하나입니다. 지정한 `sizes`는 [작업](https://docs.alforse.com/ko/docs/reference/jobs.md)과 발주서에서 선택 가능한 변형이 되며, 각 크기는 자재의 ID를 공유하는 별도의 품목 행입니다.

## 문제 해결

대부분의 자재 오류는 필수 속성이 없어서 발생합니다. 어떤 속성이 필수인지는 ID를 자동 생성하는지에 따라 다릅니다.

### "Substance is required" 또는 "Shape is required"

**원인:** ID 자동 생성이 켜진 상태에서 자재를 만들고 있습니다. 이 모드에서는 Alforse가 속성에서 ID와 이름을 구성하므로 물질과 형태("Shape")가 모두 필수입니다.
**해결 방법:** 물질과 형태를 선택하십시오. 치수, 마감, 등급, 유형은 비워 둘 수 있습니다.

### "Material ID is required"

**원인:** 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/ko/docs/reference/items.md)

**제조방법 및 조달**

자재는 제조방법의 자재 명세서에서 구성품이 됩니다.

[Open](https://docs.alforse.com/ko/docs/reference/methods.md)


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