> ## 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.

# 保存期間

> シリアルまたはバッチで追跡される在庫に有効期限を設定し、その日付の算出方法を選び、期限切れの在庫を払い出し・移動・出荷できるかどうかを決めます。

保存期間は、アイテムの各ロットまたはシリアルに有効期限を設定し、その在庫が使われるときに強制します。品質、在庫、生産計画の担当者がアイテムごとに一度設定し、作業者は払い出し、移動、ピッキング、出荷の際にそれに遭遇します。

## 概要

有効期限はアイテムではなく、物理的な**追跡対象エンティティ**に属します。そのため、保存期間があるのは**シリアル**または**バッチで追跡される**アイテムだけです。代替可能な*在庫*や*非在庫*のアイテムには、日付を持たせる単位ごとのレコードがありません。

3 つの設定が連動して機能します。

| 設定 | 範囲 | 決定する内容 |
| - | - | - |
| 保存期間の**ポリシー** | 1 つのアイテム（ピック方法） | 新しいロットまたはシリアルが、どのように日付を得るか。 |
| **有効期限** | 1 つの追跡対象エンティティ | そのロットまたはシリアルの失効日。 |
| **期限切れエンティティのポリシー** | 会社全体 | 日付を過ぎた在庫を使用した場合の動作。 |

たとえば、**120 日**の固定期間ポリシーが設定されたアイテムがバッチを受け取ると、そのバッチは入荷の転記日から 120 日後に失効します。それ以降は、会社のデフォルトルールでは、製造指図への払い出しは拒否されます。

## モードを選ぶ

アイテムのポリシーには、1 つの**モード**があります。`NotManaged` がデフォルトで、有効期限を追跡せず、これを選ぶと既存のポリシーが削除されます。ほかの 3 つのモードは、それぞれ日付を異なる方法で算出します。アイテムフォームでは、以下のラベルの選択カードとして表示されます。

| モード（保存される値） | アイテムフォームのカード | 日付の設定方法 | 利用可能なアイテム |
| - | - | - | - |
| Fixed Duration | **固定保存期間** | 開始イベント**に日数を加算**。 | 製造または購入のアイテム |
| Calculated | **材料から継承** | 製造に**消費された構成品のうち最も早い期限**。 | 製造アイテム |
| Set on Receipt | **受領時に入力** | 入荷時に**ユーザーが入力**。計算はされません。 | 購入アイテム |

適用できないモードはフォームで非表示になります。製造アイテムには入荷するものがないため、*Set on Receipt* は表示されません。購入アイテムは部品表を消費しないため、*Calculated* は表示されません。購入と製造の両方を行うアイテムでは、3 つすべてが表示されます。

HEADS UP

**保存期間は単一の「日数」フィールドではありません**

日数を使うのは **Fixed Duration** だけです。*Calculated* は入力のうち最も早い期限を引き継ぎ、*Set on Receipt* は仕入先が印字した日付を手で記録します。すべてのアイテムを「入荷日 + N 日」として扱うのは、3 つのモードのうち 2 つでは誤りです。

### Fixed Duration の開始タイミング

開始イベントは、アイテムの調達方法によって異なります。

* **購入アイテム**は、今日ではなく、**入荷の転記日**から始まります。
* **製造アイテム**は、**製造指図の工程**が終了または開始したときに始まります。これは 1 つの**トリガープロセス**（たとえば*殺菌*や*包装*）に限定でき、タイミングは**前**または**後**を選べます。サブアセンブリは、それぞれの工程から、自身のバッチに日付を設定します。

### Calculated が最も早い入力を見つける仕組み

**Calculated** のアイテムは、消費する追跡対象の構成品の有効期限の最小値を採用するため、製造物が最も期限の短い原料より長持ちすることはありません。どの入力を対象にするかは、会社の*計算対象の入力範囲*で決まります。`AllInputs`（デフォルト）は日付のあるすべての入力を使用し、`ManagedInputsOnly` は独自の保存期間ポリシーを持つ入力だけを使用します。

アイテムの部品表に保存期間ポリシーを持つ入力がない場合、部品表から有効期限が計算されないため、アイテムフォームは **"No BOM input has a shelf-life policy"**（保存期間ポリシーを持つ部品表の入力がありません）と警告します。

## アイテムを設定する

ポリシーは、アイテムの**ピック方法**（1 つのロケーションにおけるアイテム）にあります。保存期間のフィールドが表示されるのは、シリアルまたはバッチで追跡されるアイテムだけです。

1. ロケーションに対するアイテムの在庫（ピック方法）フォームを開きます。
2. **保存期間**（「このアイテムのバッチまたはシリアルが失効する時期を追跡します。」）をオンにします。
3. モードのカードを選びます。**固定保存期間**、**材料から継承**、**受領時に入力**です。
4. 固定保存期間では、**保存期間（日数）**を入力します。会社のデフォルトの保存期間日数が、あらかじめ入力されています。
5. 製造アイテムでは、必要に応じて**保存期間開始プロセス**を選び、次にその**有効期限開始**のタイミングを選び、必要であれば**BOMから計算**をオンにします。
6. **保存**を選択します。

ポリシーの変更は、フォームのアクションメニューから開けるアイテムの**保存期間履歴**に保持されます。

FieldType

<details>
  <summary>**モード**</summary>

  *Fixed Duration*、*Calculated*、*Set on Receipt*。*（適用対象：すべて）*
</details>

<details>
  <summary>**日数**</summary>

  開始イベントに加算する保存期間の長さ。1 以上。*（適用対象：Fixed Duration）*
</details>

<details>
  <summary>**トリガープロセス**</summary>

  時計を開始する工程。空欄は任意の工程を意味します。*（適用対象：Fixed Duration、製造アイテム）*
</details>

<details>
  <summary>**タイミング**</summary>

  そのプロセスの**前**または**後**のどちらで時計を開始するか。フォームでは、*プロセス開始時に有効期限を開始*または*プロセス終了時に有効期限を開始*。*（適用対象：Fixed Duration、製造アイテム）*
</details>

<details>
  <summary>**BOMから計算**</summary>

  消費された構成品のうち最も早い有効期限で日付に上限を設けるため、製造物が原材料より長持ちすることはありません。有効期限のある入力がない場合は、固定期間にフォールバックします。*（適用対象：Fixed Duration、製造アイテム）*
</details>

NOTE

**日付は一度だけ書き込まれます**

Alforse は、追跡対象エンティティに有効期限がない場合にのみ日付を書き込み、既存の日付を暗黙のうちに上書きすることはありません。日付を変更するには、手動での上書きを使います。その際は**理由**が必要で、エンティティの履歴に保持されます。

## 会社設定

全社共通のルールは、**設定 → 在庫**の**トレーサビリティ**の下にある**保存期間**カードにあります。

FieldType

<details>
  <summary>**使用期限の何日前に警告**</summary>

  追跡対象エンティティの一覧で、黄色の「まもなく期限切れ」バッジを表示する日数。空欄にすると、バッジがオフになります。
</details>

<details>
  <summary>**デフォルトの保存期間（日数）**</summary>

  アイテムを Fixed Duration に設定したときに、\*\*保存期間（日数）\*\*にあらかじめ入力される値。デフォルトは 7。
</details>

<details>
  <summary>**計算された完成品の有効期限**</summary>

  計算対象の入力範囲：**BOMから計算**（`AllInputs`、デフォルト）または**サブアセンブリの有効期限のみ**（`ManagedInputsOnly`）。
</details>

<details>
  <summary>**期限切れの在庫が使用される場合**</summary>

  期限切れエンティティのポリシー：*Warn*、*Block*、*BlockWithOverride*（以下を参照）。
</details>

## 期限切れの在庫に何が起こるか

期限切れエンティティのポリシーは、すべての材料払い出しと在庫移動に適用されます。

| ポリシー | 設定画面のラベル | 在庫が期限を過ぎている場合の効果 |
| - | - | - |
| Warn | **警告するが許可する** | 警告付きで許可されます。 |
| Block | **エラーでブロック** | 拒否されます。作業者は別のバッチまたはシリアルを選ぶ必要があります。*（デフォルト）* |
| BlockWithOverride | **ブロック、上書き許可** | 上書きの理由が指定されない限り拒否されます。上書きには `inventory:update` 権限が必要です。 |

HEADS UP

**有効期限は強制されます**

デフォルトの **Block** ポリシーでは、期限切れのバッチを消費または移動しようとすると、*「Cannot consume expired tracked entit(y/ies)」*（期限切れの追跡対象エンティティは消費できません）で停止します。Alforse は、在庫が消費または移動されるすべての場面でチェックします。材料の払い出し、在庫移動、保全作業です。現場の作業者も事務所の計画担当者も、同じルールに従います。

### ピッキング順序と期限接近の警告

ピッキングは **FEFO** に対応しています。追跡対象エンティティは有効期限が早いものから提示されるため、デフォルトでは最も古い在庫から出ていきます。ピック方法の**ピック順序**は、アイテムごとに **FEFO**、**FIFO**、**LIFO** に変更できます。**デフォルト**は、期限が近い順、次に古い順に並べます。

期限が近づいているバッチには、追跡対象エンティティの一覧に期限接近のバッジが表示されます。これには、**使用期限の何日前に警告**で設定した日数が使われます。

## 日付を修正する

追跡対象エンティティで有効期限の編集アクション（**使用期限を編集**）を使うと、新しい日付を設定できます。理由が必要で、エンティティの履歴に記録されます。修正を受け付けるのは、有効な在庫だけです。**消費済み**のエンティティの日付は履歴であり、記録されたまま変わりません。

## 各設定の場所

| 設定 | 場所 |
| - | - |
| アイテムごとのポリシー（モード、日数、トリガープロセス、タイミング） | アイテムの**ピック方法**の、保存期間のフィールド。 |
| 期限切れエンティティのポリシー、期限接近の日数、デフォルトの日数、計算対象の入力範囲 | **設定 → 在庫**の**保存期間**カード。 |
| 一度限りの日付の修正 | 追跡対象エンティティの有効期限編集アクション（理由が必要）。 |

## トラブルシューティング

| 症状 | 原因 | 対処 |
| - | - | - |
| 払い出しまたは移動で*「Cannot consume expired tracked entity」* | ポリシーが **Block** で、バッチが期限を過ぎている。 | 期限切れでないロットを選ぶ、理由を付けて日付を修正する、または**期限切れの在庫が使用される場合**を変更する。 |
| *「Cannot post shipment with expired batch」*（期限切れのバッチがある出荷は転記できません） | 出荷明細が期限切れのバッチを割り当てている。 | 別のバッチを割り当てる、日付を修正する、またはルールを Warn に緩める。 |
| ピック方法に保存期間のフィールドがない | アイテムがシリアルまたはバッチで追跡されていない。 | 期限が必要な場合は、アイテムの追跡タイプを変更する。 |
| *「No BOM input has a shelf-life policy」* | 日付のある入力がないまま、Calculated モード（またはBOMから計算）になっている。 | 構成品に保存期間ポリシーを設定するか、部品表の上限なしで Fixed Duration を使う。 |

## 関連項目

**トレーサビリティ**

日付のあるロットやシリアルを、入荷、製造指図、出荷を通じて追跡します。

[Open](https://docs.alforse.com/ja/docs/reference/traceability.md)

**在庫**

在庫の所在と、その移動の記録方法。

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

**アイテム**

アイテムを保存期間の対象にする、追跡タイプを設定します。

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

**保管ルール**

日付ではなくルールで、在庫の移動を保護します。

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


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