はじめに
NetSuiteでは、「全アイテム確保済」を判定する保存検索の作成は難しいとされていました。
その理由は、保存検索では条件に該当しない行は結果に含まれず、すべての行の確保状況を横断的に評価する仕組みがなかったためです。
今回は工夫することで、保存検索でも「全アイテム確保済」の判定結果を表示できる方法をご紹介します。
やりたいこと
今回やりたいのはこれです。
注文書トランザクション内の全アイテムについて
・数量がすべて確保済かを判定する
つまり、
- 未引当が1行でもあればNG
- 全行引当済ならOK
という状態を判定します。
結論(これだけ覚えればOK)
以下の数式を保存検索で使います。
NVL2({quantity}, {quantity}, 0)
- NVL2({quantitycommitted}, {quantitycommitted}, 0)
そして、この計算結果を「概要の種類」から合計してください。
なぜこれで判定できるのか
各フィールドの意味は以下です。
-
{quantity}:数量 -
{quantitycommitted}:確保済数量
この2つの差分を取ることで、
差分 = 必要数 - 引当済数
になります。差分が0であれば、その行については全数量が確保済になっています。
判定ロジック
| 状態 | 計算結果 |
|---|---|
| 全部引当済 | 0 |
| 未引当あり | 正の値 |
つまり、
👉 全行の確保済の差分を集計して「合計結果が0」であれば未引当が1つもない
NVL2を使う理由
ここがポイントです。
NetSuiteではフィールドがNULLになることがあるため、
そのまま計算すると結果が崩れます。
そこでNVL2を使います。
NVL2({quantity}, {quantity}, 0)
これは、
- 値がある → その値を使う
- NULL → 0に置き換える
という処理になります。
👉 NULL対策として必須
保存検索の設定方法
① 条件設定
「条件」内の「標準」はこんな感じで設定します。

トランザクションの各明細行を表示する設定です。
「概要」についても条件設定をします。

「概要」は、保存検索の集計結果(グループ、合計など)に対して条件をかけるために使います。
① 「結果」フィールド設定
「概要の種類」を以下のようにしてください。

トランザクションをグループ化して表示するようなイメージです。
赤枠部
- フィールド:Formula (Numeric)
- 数式:
NVL2({quantity}, {quantity}, 0)
- NVL2({quantitycommitted}, {quantitycommitted}, 0)
ポイントは「未確保分が1行でもあれば合計が0にならない」ことです。
つまり、
- 全行確保済 → すべて0 → SUM = 0
- 未確保あり → 1つでも正 → SUM > 0
実務での使いどころ
- 出荷可能な注文の抽出
- 自動出荷処理(SuiteScript)
- 出荷待ちリストの可視化
- 倉庫オペレーションの優先順位付け
まとめ
これまで「全アイテム確保済」の注文は、
特定のメニュー画面からしか確認・配送できず、
一覧での判定や自動化が難しい状態でした。
しかし、保存検索を工夫することで、
トランザクション全体の確保状況を一覧で判定できるようになり、
- 出荷対象の可視化
- ダッシュボード表示
- SuiteScriptによる自動処理
といった活用が可能になります。
特に、SuiteScriptを書かずにここまで実現できる点は大きなメリットです。
「保存検索では難しい」と思っていた処理も、
集計と数式を組み合わせることで実現できるため、
ぜひ業務改善に活用してみてください。