フォーム内の売上在庫がどのようにして分割入庫を実現するか
1. 使用シーン
このドキュメントでは、企業の販売在庫を作成する際に、関連フォームの複数選択サブフォームと合わせてサブフォームを入力する機能が購買バッチ入庫を実現し、バッチ出庫を販売するシーンを紹介します。
2. 機能を実現する
2.1. ページフィールドの設定
2.1.1. 製品情報 (通常フォーム)
製品情報を記録し、【在庫表】、【発注】、【受注】と連動して使用します。
2.1.1.1. メインフィールド
- 製品番号 (シリアルナンバー)
- 製品名 (単一行テキスト)
- 物品分類 (ドロップダウンラジオ)

2.1.2. 在庫表 (通常フォーム)
製品の在庫情報を記録します。
2.1.2.1. メインフィールド
- 製品番号 (1行のテキスト)
- 製品名 (単一行テキスト)
- 製品分類 (単一行テキスト)
- 在庫数 (数値)

2.1.3. 発注 (フローフォーム)
購買入庫が必要な場合は、まず発注書を作成して、「購買入庫」と連動して使用することができます。
2.1.3.1. メインフィールド
- 購買伝票番号 (シリアルナンバー)
- 購入日 (日付コンポーネント、クイック設定-今日)
- 購買者 (メンバー、クイック構成-現在のログイン者)
- 未入庫総数 (数値、公式編集-sum (購買明細.合計価格))

- 購買明細 (サブフォーム)
- 製品番号 (1行のテキスト)
- 製品名 (関連フォーム、関連【製品情報】)
- 調達数量 (数値)
- 分類 (単一行テキスト)
- 未入庫数量 (数値、数式編集)


2.1.4. 購買入庫 (フローフォーム)
購買入庫は、作成した「発注」を選択でき、「発注」の下の購買明細を選択できます。プロセスが終了したら、購買明細データを「在庫表」に更新します。
- 入庫伝票番号 (シリアルナンバー)
- 発注 (関連フォーム、関連【発注】)



- 入庫者 (メンバーコンポーネント、クイック設定-現在のログイン者)
- 入庫日 (日付コンポーネント、クイック設定-今日)
- 入庫明細 (サブフォーム)
- 製品名 (関連フォーム、関連【発注】の「発注明細」)



- 今回の入庫数量 (数値)


// 子组件自定义校验函数
export function validateRuleForOutbound(value) {
const { values } = this.item;
const inventoryCount = values.未出库数量唯一标识 || 0; // 获取未入库数量
return value <= inventoryCount;
}
function validateRule(value) {
return this.validateRuleForOutbound(value);
}
- 製品番号 (1行のテキスト)
- 調達数量 (数値)
- 未入庫数量 (数値)
- 購買注文番号 (単一行テキスト)

2.1.5. 販売注文 (プロセスフォーム)
販売出庫が必要な場合は、まず販売注文を作成して、「販売出庫」と連動して使用することができます。
- 販売注文番号 (シリアルナンバー)
- オペレータ (メンバー、クイック設定-現在のログイン者)
- 販売日 (日付、クイック設定-今日)
- 注文明細 (サブフォーム)
- 製品名 (関連フォーム、関連【製品情報】)


- 販売数量 (数値)
- 製品番号 (1行のテキスト)
- 製品分類 (単一行テキスト)
- 未出庫総数 (数値、数式編集)


2.1.6. 販売出庫 (フローフォーム)
販売出庫は、作成した「受注」を選択し、「受注」の注文明細を選択して、プロセスが終了したら販売明細データを「在庫表」に更新できます。
- 出庫伝票番号 (シリアルナンバー)
- 出庫者 (メンバー、クイック設定-現在のログイン者)

- 出庫日 (日付、クイック設定-今日)

- 販売注文 (関連フォーム、関連【販売注文】)



- 注文明細 (サブフォーム)
- 製品名 (関連フォーム、関連【受注】の「受注明細」)



- 今回の出庫数 (数値、検証ルールの追加)


//封装自定义校验
export function validateRuleForOutbound(value) {
const { values } = this.item;
const inventoryCount = values.库存数唯一标识 || 0; // 获取库存数
return value <= inventoryCount;
}
function validateRule(value) {
return this.validateRuleForOutbound(value);
}
- 製品番号 (1行のテキスト)
- 注文数量 (数値)
- 在庫数 (数値、データ連動【在庫表】)

- 未出庫数量 (数値)
- 製品分類 (単一行テキスト)
- 今回の出庫総数 (数値、公式編集)

- 販売注文番号 (単一行テキスト)

2.2. ページの主な機能設定
2.2.1. 購買入庫
2.2.1.1. プロセス開始による発注数量の控除
「購買入庫」の設定成功した統合自動化を作成し、「発注」の未入庫総数を自動的に控除することで、実行中の同じ注文のアイテムが重複して入庫することを避けることができます


「未入庫総数」式は次の図のとおりです


「未入庫数量」式の構成を図に示します

2.2.1.2. プロセスの削除/取り消し/拒否/終了、注文数量の返却
【購買入庫】削除/取り消し/拒否/終了の統合自動化を設定し、プロセスが異常終了した場合は【発注】の未入庫総数を自動的に返還します。

【発注】未入庫総数を更新します。

「未入庫総数」式の構成を図に示します


「未入庫数量」式の構成を図に示します

2.2.1.3. プロセス承認に合格し、在庫を累積します
「購買入庫」承認同意の統合自動化を設定し、「在庫表」の在庫を自動的に加算します

「在庫数」式は図のように設定されています

2.2.2. 販売出庫
2.2.2.1. プロセスが開始され、受注数量が控除されます
「販売出庫」を設定して統合の自動化を成功させ、「販売注文」の未出庫総数を自動的に控除することで、実行中の同じ注文のアイテムが重複して出庫されないようにします。

「未出庫総数」式の構成を図に示します

【受注】明細のデータを更新する


「未出庫数量」式の構成を図に示します

2.2.2.2. プロセスの削除/取り消し/拒否/終了、注文数量の返却
【販売出庫】削除/取り消し/拒否/終了の統合自動化を設定し、プロセスが異常終了した場合は【販売注文】の未出庫総数を自動的に返却します。


「未出庫総数」式の構成を図に示します

受注明細データの更新 (未出庫数量の返却)

「未出庫数量」式の構成を図に示します

2.2.2.3. 承認に合格し、在庫数量を控除します
「販売出庫」承認同意の統合自動化を設定し、「在庫表」在庫を自動的に控除します。


3. 効果を実現する
3.1. 購買入庫
【発注】「製品情報」から物品データを選択し、発注明細を入力します

【購買入庫】入庫明細を提出し、「発注」に基づいて未入庫数量>0の品目を分割して選択し、今回の入庫数量を検証します

「フォームの選択」をクリックして、複数項目の明細を一括して選択し、入庫明細を自動的に入力することもできます


承認が終了すると、「発注」明細にあるアイテムの未入庫数量が自動的に更新され、「在庫表」の数量が加算されます


累積【在庫表】

再提出【購買入庫】未入庫数量>0のもののみ選択できます

3.2. 販売出庫
【受注】【製品情報】からアイテムを選択し、受注明細を入力します。

【販売出庫】出庫明細を提出し、「受注」に基づいて未出庫数量> 0のアイテムを分割して選択し、今回の出庫数量を検証します。在庫数を超えてはいけません。

【販売出庫】承認同意を得て、在庫数を自動的に控除します。






