コンテンツにスキップ

ダイアログ

在庫管理アプリ

オフィス用品の入出庫記録から在庫数を自動計算する在庫管理アプリです。Visual Customize の 66 のルール(入出庫 40 + 商品マスタ 9 + 棚卸 17)で、伝票自動採番から在庫更新・棚卸承認フロー・廃棄区分・差戻しまでをノーコードで実現します。

一覧画面 — 入出庫区分による行色分け

Section titled “一覧画面 — 入出庫区分による行色分け”

一覧画面

追加画面 — 日付初期値・フィールド制御

Section titled “追加画面 — 日付初期値・フィールド制御”

作成フォーム

フィールド制御 — 入出庫区分ごとの表示切替

Section titled “フィールド制御 — 入出庫区分ごとの表示切替”

入庫→仕入先を表示、出庫→出庫先を表示、返品→仕入先を表示。入出庫区分に応じてフィールドの表示/非表示が連動します。出庫レコードでは緊急バッジも表示されています。

LOOKUP連動 — 商品コードから商品名・単価を自動取得

Section titled “LOOKUP連動 — 商品コードから商品名・単価を自動取得”

詳細バッジ

設定ルール一覧

設定画面 — アクション詳細(フィールド制御)

Section titled “設定画面 — アクション詳細(フィールド制御)”

設定アクション詳細

このサンプルでは以下を実現しています。

伝票処理:

  • 伝票番号の自動採番(INV-00001 形式、欠番再利用対応)
  • 入庫/出庫/返品に応じた取引先・返品理由フィールドの切り替え
  • 取引先マスタ・商品マスタからのルックアップ連動
  • 明細テーブルでの複数商品管理と金額自動計算

在庫制御:

  • 保存前の在庫チェックと在庫数の自動更新(入庫加算・出庫減算・返品戻し)
  • 返品理由=不良品は廃棄扱いで在庫加算しない(廃棄バッジ表示)
  • 楽観ロック+自動リトライによる同時編集耐性
  • 発注点を下回った場合のアラート通知

ワークフロー:

  • 完了伝票の編集保護(二重防御:表示制御 + 保存ブロック)
  • 差戻し機能(完了伝票を差戻し状態に戻して再編集可能)
  • 管理者のみ完了操作可能(非管理者には警告表示)

棚卸:

  • 実数量入力で差異自動計算(過剰=青バッジ / 不足=赤バッジ)
  • 承認待ちバッジ + 完了時の承認者自動記録
  • 差異あり行の一覧色分け

可視化:

  • 一覧画面での入庫/出庫/返品の色分け表示(+ 操作種別バッジ)
  • 表計算ビュー・ダッシュボードでの可視化
  • 商品マスタに評価額 CALC(単価×在庫数)粗利率 CALC(粗利率<20%で低粗利バッジ)

入出庫伝票を登録するアプリです。ルールはすべてこのアプリに設定します。

フィールド名フィールドコードフィールドタイプ説明
伝票番号伝票番号文字列(1行)自動採番
入出庫日日付日付伝票日付(初期値: 当日)
操作種別操作種別ドロップダウン入庫/出庫/返品
処理状況処理状況ドロップダウン未処理/処理中/完了/差戻し
取引先コード取引先コード文字列(1行)取引先マスタへのルックアップ
取引先名取引先名文字列(1行)ルックアップコピー
返品理由返品理由ドロップダウン不良品/顧客都合/発注ミス/その他
担当者担当者ユーザー選択処理担当者
メモメモ文字列(複数行)備考
明細(テーブル)明細テーブル商品明細のサブテーブル
- 商品コード商品コードルックアップ商品マスタへのルックアップ
- 商品名商品名文字列(1行)ルックアップコピー
- 単価単価数値ルックアップコピー
- 数量数量数値入出庫数量
- 金額金額数値自動計算(単価 x 数量)

商品情報と在庫数を管理するアプリです。在庫管理アクションの更新対象となります。カテゴリはオフィス用品に特化しています。

フィールド名フィールドコードフィールドタイプ説明
商品コード商品コード文字列(1行)一意の商品識別コード(PRD-00001 自動採番)
商品名商品名文字列(1行)商品名称
単価単価数値商品販売単価
仕入単価仕入単価数値仕入原価(粗利計算用)
在庫数在庫数数値現在の在庫数
発注点発注点数値この数量を下回ったらアラート
評価額評価額計算単価 × 在庫数(kintone ネイティブ計算、円)
粗利率粗利率計算(単価 - 仕入単価) / 単価 × 100(%、20%未満で低粗利バッジ)
カテゴリカテゴリドロップダウンコピー用紙/筆記具/ファイル/事務機器/トナー・インク/その他

在庫管理専用の取引先マスタ(仕入先・代理店・一般顧客)。各アプリ群が独立したマスタを持つ構成のため、SFA・売上管理とは別アプリ。

フィールド名フィールドコードフィールドタイプ説明
取引先コード取引先コード文字列(1行)一意の取引先ID
会社名会社名文字列(1行)取引先名称
取引先区分取引先区分チェックボックス仕入先/代理店/一般顧客(複数可)
業種業種ドロップダウンIT/製造/小売/教育/官公庁/サービス
担当者名担当者名文字列(1行)先方担当者

レコード追加・編集画面(20ルール)

Section titled “レコード追加・編集画面(20ルール)”
#ルール名イベントアクション説明
1自動採番保存する時自動採番伝票番号に INV-{SEQ:5} 形式で自動採番
2日付初期値追加画面を表示した時値セット日付フィールドに {{TODAY()}} をセット
3タブレイアウト追加画面を表示した時 / 編集画面を表示した時タブ表示基本情報 / 明細 / メモの3タブ構成
4操作種別フィールド制御追加画面を表示した時 / 編集画面を表示した時 / 値を変更した時値で分岐フィールド制御操作種別に応じて取引先/返品理由フィールドの表示を切り替え
5取引先ルックアップ連動値を変更した時(取引先コード)ルックアップ実行値セット取引先コード入力時にルックアップを自動実行し関連フィールドをセット
6商品ルックアップ連動値を変更した時(商品コード)ルックアップ実行値セット商品コード入力時にルックアップを自動実行し商品名・単価をセット
7金額自動計算値を変更した時(単価・数量)テーブルループ値セット明細テーブルの各行で {{CALC(単価*数量)}} を計算し金額に反映
8明細テーブル合計追加画面を表示した時 / 値を変更した時テーブル小計明細テーブルの金額合計を表示
9数量フォーマット追加画面を表示した時 / 値を変更した時値フォーマット数量フィールドに桁区切り(カンマ)を適用
10返品理由必須制御値を変更した時(操作種別)条件分岐フィールド制御操作種別が「返品」の場合に返品理由フィールドを表示・必須化
11緊急バッジ(出庫)追加画面を表示した時 / 編集画面を表示した時 / 値を変更した時条件分岐バッジ表示操作種別が「出庫」の場合に赤いバッジを表示
12返品バッジ追加画面を表示した時 / 編集画面を表示した時 / 値を変更した時条件分岐バッジ表示操作種別が「返品」の場合に黄色いバッジを表示
13数量バリデーション保存する時バリデーション数量 > 0 のバリデーション
14取引先必須バリデーション保存する時条件分岐バリデーション入庫・出庫時に取引先コードが未入力ならエラー
15返品理由バリデーション保存する時条件分岐バリデーション返品時に返品理由が未入力ならエラー
16在庫チェック+出庫減算保存する時条件分岐在庫管理操作種別が「出庫」なら在庫を減算(在庫不足時はエラー停止)
17入庫在庫加算保存する時条件分岐在庫管理操作種別が「入庫」なら在庫を加算
18返品在庫戻し保存する時条件分岐在庫管理操作種別が「返品」なら在庫を加算して戻す
19保存確認ダイアログ保存する時確認ダイアログ保存前に「入出庫を登録しますか?」の確認ダイアログを表示
20完了伝票保護編集画面を表示した時条件分岐フィールド制御 + ボタン制御処理状況が「完了」の場合に全フィールドを無効化し保存ボタンを非表示
#ルール名イベントアクション説明
21発注点アラート保存成功後他アプリ参照条件分岐アラート表示在庫が発注点を下回ったら警告ダイアログを表示
22保存後リダイレクト保存成功後URL遷移保存完了後に伝票一覧へ自動遷移
#ルール名イベントアクション説明
23ステータスバッジ詳細画面を表示した時値で分岐バッジ表示処理状況(未処理/処理中/完了)に応じたバッジカラーを表示
24完了伝票スタイル詳細画面を表示した時条件分岐条件付き書式処理状況が「完了」の場合にグレーアウト表示
#ルール名イベントアクション説明
25入出庫区分色分け一覧画面を表示した時条件付き書式 x3入庫=青、出庫=赤、返品=黄で行を色分け
26処理状況色分け一覧画面を表示した時条件付き書式完了=緑で行を色分け
27在庫一覧ボタン一覧画面を表示した時ボタン追加商品マスタ(在庫一覧)への遷移ボタンを表示
28操作案内テキスト一覧画面を表示した時テキスト表示一覧画面に操作方法の案内テキストを表示
29表計算ビュー一覧画面を表示した時表計算ビュー伝票一覧をスプレッドシート形式で表示・集計
30入出庫ダッシュボード一覧画面を表示した時ダッシュボード入庫/出庫件数・金額推移をグラフで可視化

Phase 1 / 3 拡張機能(4ルール + データ連携 2ルール)

Section titled “Phase 1 / 3 拡張機能(4ルール + データ連携 2ルール)”
#ルール名イベントアクション説明
31廃棄扱いバッジ画面表示 / 返品理由変更条件分岐バッジ表示返品理由=不良品のとき「廃棄扱い」バッジ。inv_r17 も条件分岐で不良品は在庫加算しない
32差戻し中バッジ詳細 / 編集画面条件分岐バッジ表示処理状況=差戻しのとき「差戻し中」バッジ表示(完了伝票の差戻しは処理状況を「差戻し」に変更すれば再編集可能)
33棚卸レコード自動生成保存成功後テーブル↔レコード変換入出庫明細を棚卸アプリにレコード転記(toRecords)
34商品取込ボタン画面表示ボタン追加テーブル取込商品マスタから明細テーブルへ在庫>0の商品を一括取込

在庫更新に submit イベントを使う理由

Section titled “在庫更新に submit イベントを使う理由”

アトミックな在庫更新パターン

Section titled “アトミックな在庫更新パターン”

在庫管理 アクションは、オプティミスティックロック(revision チェック)と自動リトライを内蔵しています。複数ユーザーが同時に在庫を操作しても、競合エラー(GAIA_CO02)を自動リトライで解消します。

保存する時(submit)
├── ifCondition(操作種別 = 出庫)
│ └── stockManagement(operation: subtract, onStockShortage: エラー停止)
├── ifCondition(操作種別 = 入庫)
│ └── stockManagement(operation: add)
└── ifCondition(操作種別 = 返品)
└── stockManagement(operation: add)

操作種別に応じて異なるフィールドの表示/非表示を切り替えるため、値で分岐 を使用しています。

switchCase(操作種別)
├── case 「入庫」: 取引先コード=表示、返品理由=非表示
├── case 「出庫」: 取引先コード=表示、返品理由=非表示
└── case 「返品」: 取引先コード=表示、返品理由=表示・必須

返品時は在庫を減算ではなく 加算 します。出庫した商品が戻ってくるため、在庫管理アクションの operation: add を使用します。返品理由(不良品/顧客都合/発注ミス/その他)は保存時のバリデーションで必須チェックを行います。

保存する時(submit)
└── ifCondition(操作種別 = 返品)
├── validate(返品理由が未入力ならエラー)
└── stockManagement(operation: add) ← 在庫を戻す

保存成功後に商品マスタから在庫数と発注点を取得し、在庫数が発注点を下回っている場合にアラートを表示します。

保存成功後(submit.success)
└── refGetRecords(商品マスタから在庫数・発注点を取得)
└── ifCondition(在庫数 < 発注点)
└── showAlert(「在庫が発注点を下回りました」)

処理状況が「完了」になった伝票は編集不可にします。編集画面を開いた時点でフィールドを全て無効化し、保存もブロックすることで、完了済み伝票の誤変更を防ぎます。

編集画面を表示した時(edit.show)
└── ifCondition(処理状況 = 完了)
├── conditionalFieldControl(全フィールド無効化)
└── buttonControl(保存ボタン非表示)
保存しようとしたとき(edit.submit)
└── ifCondition(処理状況 = 完了)
└── cancelSave(保存をキャンセル)

差戻しが必要な場合は、処理状況を「差戻し」に変更することで再編集可能状態に戻せます。差戻し中レコードには「差戻し中」バッジが表示されます。

通常の返品は在庫に加算されますが、返品理由が「不良品」の場合は廃棄扱いとして在庫加算しません。不良品フラグが立つと「廃棄扱い」バッジが自動表示されます。

保存する時(submit)
└── ifCondition(操作種別=返品 AND 返品理由 ≠ 不良品)
└── stockManagement(operation: add)

在庫管理と連携する棚卸アプリです。商品マスタからルックアップで商品情報とシステム在庫を取得し、実数量との差異を自動計算します。17 のルール で差異表示・バッジ・色分け・バリデーション・承認フロー を実現。

フィールド名フィールドコードフィールドタイプ説明
棚卸番号棚卸番号文字列(1行)自動採番 SC-001
棚卸日棚卸日日付初期値: 当日
商品コード商品コードルックアップ商品マスタへの参照
商品名商品名文字列(1行)ルックアップコピー
システム在庫システム在庫数値ルックアップコピー(商品マスタの在庫数)
実数量実数量数値実際にカウントした数量
差異差異数値自動計算(実数量 - システム在庫)
棚卸ステータス棚卸ステータスドロップダウン実施中/確認待ち/完了
担当者担当者文字列棚卸実施者
承認者承認者文字列ステータス=完了への変更時にログインユーザー名を自動記録
#ルール名イベントアクション説明
1棚卸番号自動採番submitautoNumber(SC-{SEQ:3})
2棚卸日初期値create.showsetFieldValue(今日)
3商品ルックアップchange(商品コード)triggerLookup商品名・システム在庫を取得
4差異自動計算change(実数量,商品コード)setFieldValue(実数量-システム在庫)
5不足バッジshow/changeifCondition(差異<0) → setFieldBadge(赤)
6過剰バッジshow/changeifCondition(差異>0) → setFieldBadge(青)
7実数量バリデーションsubmitvalidate(実数量>=0)
8商品コード必須submitvalidate(notEmpty)
9保存確認submitshowConfirmDialog
10在庫更新submit.successstockManagement差異分を商品マスタへ反映
11在庫更新結果分岐submit.successresultBranch
12完了レコード保護edit.showifCondition(完了) → 全フィールド無効化
13ステータス色分けindex.showconditionalFormat(完了=緑)
14表計算ビューindex.showcustomViewSpreadsheet
15商品マスタボタンindex.showaddButton商品マスタへの遷移
16承認待ちバッジdetail/edit.showifCondition(確認待ち) → setFieldBadge
17承認者自動記録edit.change.棚卸ステータスifCondition(完了) → setFieldValue({{loginUser.name}})