> ## 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가 확인하는 조건으로, 오류로 차단하거나 경고하고 사용자가 확인한 후 계속하게 합니다.

**보관 규칙**은 회사가 재고 및 현장 거래에 정의하는 검사입니다. 재고 및 품질 관리자는 이를 사용해 잘못된 종류의 위치에 적치된 재고나 번호 없이 전기된 로트처럼 실수가 일어나는 순간에 막습니다.

## 규칙의 작동 방식

규칙은 전기하는 동안 확인됩니다. 규칙의 조건이 충족되지 않으면 두 가지 중 하나를 합니다. 거래를 **차단**하거나, **경고**하고 사용자가 확인한 후 계속하게 합니다. 모든 규칙은 **품목** 또는 **작업장** 중 한 종류의 대상을 겨냥합니다.

NOTE

규칙은 읽기 전용 검사입니다. 값을 변경하거나, 기본값을 제공하거나, 가격을 계산하지 않으며, 출력은 심각도가 있는 메시지뿐입니다.

### 예: 화학물질을 냉장 보관에 유지

배치 화학물질을 상온 빈에 절대 두어서는 안 된다고 가정해 보겠습니다. 다음과 같이 설정한 규칙이 이를 강제합니다.

| 설정 | 값 |
| - | - |
| 대상 | **품목**, 화학물질 품목 그룹으로 필터링 |
| 표면 | **입고** 및 **적치**(place) |
| 조건 | `storageUnit.storageTypeId` `eq` 냉장 보관 유형 |
| 심각도 | **오류** |
| 메시지 | `{item.id} must be stored in cold storage` |

이제 화학물질을 다른 유형의 보관 단위로 입고하면 실패하며, 사용자는 품목 ID가 채워진 해당 메시지를 봅니다.

## 조건

규칙이 적용하는 테스트는 작은 **조건 트리**입니다. 일치 종류와 필드, 연산자, 값을 지정하는 하나 이상의 행으로 구성됩니다.

| 부분 | 옵션 |
| - | - |
| **일치 종류** | `all`: 모든 행이 성립해야 합니다. `any`: 한 행만 성립해도 충분합니다. `none`: 어떤 행도 성립해서는 안 됩니다. |
| **필드** | 고정된 목록에서 선택합니다. 품목 정보: `item.type`, `item.replenishmentSystem`, `item.itemTrackingType`, 사용자 지정 필드. 보관 위치: `storageUnit.storageTypeId`와 `storageUnit.locationId`. 그리고 작업장 정보와 라인의 `transaction.quantity`. |
| **연산자** | 아래 표를 참조하십시오. |

조건이 성립하면 규칙은 *통과*합니다. 성립하지 않으면 위반을 발생시킵니다.

### 연산자

| 연산자 | 의미 |
| - | - |
| `eq` / `neq` | 필드가 값과 같음 / 같지 않음 |
| `in` / `notIn` | 필드의 값이 목록에 있음 / 없음 |
| `gt` / `lt` | 필드가 값보다 큼 / 작음 |
| `isSet` / `isNotSet` | 필드에 값이 있음 / 없음 |

### 누락된 값

NOTE

조건의 필드가 **비어 있으면** 조건이 실패하고 위반은 \*"…is required"\*로 표시됩니다. 유일한 예외는 비어 있음을 테스트하기 위한 `isSet`과 `isNotSet`입니다. 실제로 이는 모든 규칙을 존재 여부 검사로도 만들어, 예를 들어 출하가 전기되기 전에 로트 번호를 요구하게 합니다.

### 메시지

**메시지**에 `{item.id}`나 `{transaction.quantity}` 같은 토큰을 넣으면 실패한 라인의 값으로 대체되므로 사용자는 어느 라인이 규칙을 위반했는지 정확히 알 수 있습니다.

## 규칙이 실행되는 곳

각 규칙은 보호하는 **표면**을 지정합니다. 표면은 거래의 유형입니다. 대상이 어떤 표면을 제공할지 결정합니다.

* **품목 규칙**은 `receipt`, `shipment`, `stockTransfer`, `warehouseTransfer`, `inventoryAdjustment`, 그리고 빈 이동 `place`와 `pick`에서 실행될 수 있습니다.
* **작업장 규칙**은 `operationStart`, `operationFinish`, `materialIssue`, `materialReceive`에서 실행될 수 있습니다.

평가는 전기 중 서버에서 회계 항목이나 재고 이동보다 먼저 이루어집니다. 따라서 차단된 거래는 흔적을 남기지 않습니다. 아무것도 기록되지 않습니다.

## 차단 또는 경고

| 심각도 | 효과 |
| - | - |
| `error` | 데이터가 규칙을 충족할 때까지 거래를 전기할 수 없습니다. |
| `warn` | 메시지가 표시되며 사용자가 **확인하고 계속**할 수 있습니다. |

NOTE

`error`는 우회할 방법이 없습니다. `warn`은 사용자가 확인할 때까지만 거래를 멈추며, 그 후 같은 제출이 전기됩니다. 경고는 현장을 멈추지 않고 사례를 표시해야 하는 "확실합니까?" 검사에 적합합니다.

**재고 조정**에 대한 `warn` 규칙으로 조건이 `transaction.quantity` `gt` `750`이고 메시지가 `Large adjustment — confirm the count`인 경우를 생각해 보십시오. 비정상적으로 큰 실사 수량이 표시되지만 사용자가 경고를 확인하는 즉시 전기됩니다.

## 규칙이 적용되는 라인

규칙이 확인하는 라인을 결정하는 방법은 두 가지입니다.

| 방법 | 작동 방식 |
| - | - |
| **필터** | 품목 규칙에만 해당합니다. 규칙을 **품목 유형**, **품목 그룹** 또는 둘 다로 좁히며, 둘을 OR(유형 또는 그룹) 또는 AND(유형과 그룹)로 결합합니다. 필터가 없으면 **모든** 품목입니다. |
| **배정** | 품목의 **규칙** 탭에서 규칙을 단일 품목에 고정하거나 단일 작업장에 고정합니다. 작업장 규칙은 대신 모든 작업장에 적용할 수 있습니다. |

## 규칙 만들기

1. **재고 → 보관 규칙**으로 이동하여 **규칙 추가**를 선택합니다. **새 규칙** 양식이 열립니다.
2. **이름**을 입력하고 선택적으로 **설명**을 입력합니다. 규칙이 평가되도록 **활성**을 켜 둡니다.
3. **심각도**를 선택합니다. **오류**는 해결될 때까지 저장을 차단하고, **경고**는 확인 후 계속을 허용합니다.
4. 규칙의 범위를 지정합니다. 품목 규칙은 **품목 유형**과 **품목 그룹**, 그리고 **필터 결합** 방식을 선택하며, 둘 다 비워 두면 모든 품목에 일치합니다. 작업장 규칙은 모든 작업장에 적용하려면 **모든 작업장에 적용**을 켭니다.
5. 규칙이 실행되는 표면을 선택합니다.
6. **조건**에서 일치 종류를 설정하고 필드 / 연산자 / 값의 각 행에 **조건 추가**를 사용합니다.
7. 규칙이 실패할 때 사용자에게 표시할 메시지를 작성합니다. **토큰 삽입**으로 품목 ID 같은 값을 추가합니다.
8. **저장**을 선택합니다.

이미 규칙이 있습니까? 해당 품목의 **규칙** 탭에서 특정 품목 하나에 첨부하십시오.

### 규칙 필드

FieldType

<details>
  <summary>**이름**required</summary>

  목록과 배정에서 규칙을 식별합니다. 최대 120자.
</details>

<details>
  <summary>**설명**</summary>

  규칙을 유지 관리하는 사람들을 위한 선택적 맥락입니다.
</details>

<details>
  <summary>**심각도**</summary>

  `error`는 차단하고, `warn`은 확인을 요청한 다음 계속합니다.
</details>

<details>
  <summary>**조건**</summary>

  일치 종류와 이것이 결합하는 필드, 연산자, 값의 행입니다.
</details>

<details>
  <summary>**메시지**required</summary>

  위반 시 사용자가 읽는 내용으로 최대 500자입니다. `{token}` 자리표시자는 라인에서 채워집니다.
</details>

<details>
  <summary>**표면**</summary>

  하나 이상의 거래 유형입니다. 조건에 사용된 모든 필드는 선택한 각 표면에 존재해야 합니다.
</details>

<details>
  <summary>**대상**</summary>

  `item` 또는 `workCenter` 중 하나입니다.
</details>

<details>
  <summary>**품목 필터**</summary>

  품목 유형, 품목 그룹 또는 둘 다입니다. 비워 두면 규칙이 모든 품목에 적용됩니다.
</details>

<details>
  <summary>**활성**</summary>

  끄면 규칙은 보관되지만 평가되지 않습니다.
</details>

## 플랜과 권한

HEADS UP

**Business** 플랜이 필요합니다. 다른 플랜에서는 보관 규칙 화면에 업그레이드 안내가 표시되며 Alforse는 어떤 규칙도 평가하지 않습니다.

**보관 규칙** 목록에서 규칙을 추가하려면 설정에 대한 생성 권한이 필요합니다.

## 관련 문서

**영업 규칙**

같은 조건 빌더를 재고 대신 견적, 수주, 매출 송장 라인에 적용합니다.

[Open](https://docs.alforse.com/ko/docs/reference/sales-rules.md)

**품목**

규칙은 가장 흔히 유형별, 그룹별 또는 품목 하나씩 품목을 대상으로 합니다.

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

**재고**

입고, 출하, 이송, 피킹: 이 규칙이 보호하는 거래입니다.

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

**작업장**

규칙은 공정작업 시작과 종료, 자재 불출과 입고도 보호할 수 있습니다.

[Open](https://docs.alforse.com/ko/docs/reference/work-centers.md)

**보존 기간**

추적 재고에 날짜를 부여하고 만료 후 차단하는 두 번째 재고 보호 장치입니다.

[Open](https://docs.alforse.com/ko/docs/reference/shelf-life.md)


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