属性値の比較
概要
Compare Attribute Valuesフィルターは、計算結果を保存された結果値と比較することで数値計算の検証を行います。このフィルターは、2つの属性に対して加算、減算、乗算、除算の算術演算を実施し、計算結果を期待される結果を含む3つ目の属性と比較します。計算結果が一致するか、異なるか、またはnullを生成するかに基づいてケースをフィルターできます。
このフィルターは、属性のソースに応じてケースレベルまたはイベントレベルのフィルタリングをサポートします。浮動小数点の精度問題に対応するため、設定可能な閾値による許容範囲を持ち、ビジネスプロセスにおけるデータ品質検証や異常検知に最適です。
主な利用用途
- データ品質検証:財務データで計算された合計値が保存された合計値と一致するかを確認し、入力ミスやシステム計算の問題を特定します。
- 請求書検証:明細行の金額(数量×単価)が保存された合計金額と一致しているかを確認し、計算の不一致がある請求書を検出します。
- 照合分析:税金計算、割引適用、通貨換算などで期待計算と実際値が一致しないケースを見つけます。
- 不正検出:計算値が記録された値と一致しない不審な取引を特定し、手動操作やシステムエラーの可能性を検出します。
- プロセス整合性チェック:プロセスデータ内の派生値が元の値と数学的に整合しているかを確認します。
- システム移行検証:システム移行後に計算フィールドが元の値と一貫していることを確認し、データ整合性を検証します。
設定
First Operand: 計算に使用する最初の属性名。整数または小数の数値データを含み、他のオペランドおよび結果属性と同じソース(ケースまたはイベント)である必要があります。
Operation Type: 第1オペランドと第2オペランドの間で実行する算術演算を指定します。選択肢は以下の通り:
- Add: 加算(First Operand + Second Operand)
- Subtract: 減算(First Operand - Second Operand)
- Multiply: 乗算(First Operand * Second Operand)
- Divide: 除算(First Operand / Second Operand)。0除算は自動的にnull結果として扱われます。
Second Operand: 計算に使用する第2の属性名。数値データを含み、First Operandおよび結果属性と同じソースである必要があります。
Result Attribute: 計算結果と比較する期待される結果値を含む属性の名前。数値データを含み、オペランド属性と同じソースである必要があります。
Keep Records: 比較結果に基づき保持するレコードを決定します:
- Same: 計算結果が保存された結果値(閾値の範囲内)と一致するレコードを保持
- Different: 計算結果が保存された結果値と異なるレコードを保持
- Null: 計算結果がnull(欠損値またはゼロ除算など)となるレコードを保持
Tolerance Threshold: 浮動小数点の精度問題により生じる小さな差を0として扱う許容閾値を設定します。計算結果と期待値の絶対差がこの閾値未満の場合、差は0(一致)と判定されます。初期値は0.01。厳密に比較する場合は0.0に設定します。
例
例1:請求書の計算エラーを検出する
シナリオ:明細行の合計(Quantity * Unit Price)が保存されたLine Totalと一致しない請求書を特定します。入力ミスや計算エラーが疑われます。
設定:
- First Operand: "Quantity"
- Operation Type: Multiply
- Second Operand: "Unit Price"
- Result Attribute: "Line Total"
- Keep Records: Different
- Tolerance Threshold: 0.01
結果:計算結果(Quantity * Unit Price)がLine Totalと0.01以上異なるケースを返します。
洞察:これらのケースは入力ミス、丸め誤差、システム計算バグや不正な手動調整の可能性があるため、修正のためのレビューが必要です。
例2:割引計算の検証
シナリオ:最終価格が原価から割引額を引いた値と一致するかを検証し、価格設定ミスや割引誤適用を検出します。
設定:
- First Operand: "Original Price"
- Operation Type: Subtract
- Second Operand: "Discount Amount"
- Result Attribute: "Final Price"
- Keep Records: Different
- Tolerance Threshold: 0.01
結果:(Original Price - Discount Amount)がFinal Priceと一致しないケースを選択します。
洞察:割引の誤適用、データ入力ミス、価格ポリシー違反の可能性があるため調査が必要です。
例3:税金計算問題の検出
シナリオ:計算された税額(Subtotal * Tax Rate)が保存されたTax Amountと一致しない注文を見つけます。税計算ミスや税率変更の可能性があります。
設定:
- First Operand: "Subtotal"
- Operation Type: Multiply
- Second Operand: "Tax Rate"
- Result Attribute: "Tax Amount"
- Keep Records: Different
- Tolerance Threshold: 0.001
結果:計算税額と保存された税額が異なるケースを返します。
洞察:税の再計算や返金処理の必要があり、税法遵守のために修正が必要です。
例4:計算に必要なデータが欠落したケースの検出
シナリオ:欠損値のため計算できないケースを特定し、不完全なデータ入力やシステム統合の問題を検出します。
設定:
- First Operand: "Amount"
- Operation Type: Divide
- Second Operand: "Quantity"
- Result Attribute: "Unit Price"
- Keep Records: Null
- Tolerance Threshold: 0.01
結果:Amount、Quantity、またはUnit Priceのいずれかがnull、もしくはQuantityが0(0除算)で計算不能なケースを選択します。
洞察:必須フィールドの欠落や未完了取引を示しており、データ品質向上のための対処が必要です。
例5:残高計算の検証
シナリオ:金額の整合性を確実にするために、Opening Balance + Transaction Amount = Closing Balance が厳密に成立しているかを検証します。
設定:
- First Operand: "Opening Balance"
- Operation Type: Add
- Second Operand: "Transaction Amount"
- Result Attribute: "Closing Balance"
- Keep Records: Same
- Tolerance Threshold: 0.0
結果:計算結果が完全に一致するケースのみを返します。
洞察:会計の正確性検証に有効で、すべての取引が正しく記録されていることを保証します。
例6:単価計算の一貫性確認
シナリオ:Total Amount / Quantity = Unit Price の計算が正しいケースを特定し、注文間の価格の一貫性を検証します。
設定:
- First Operand: "Total Amount"
- Operation Type: Divide
- Second Operand: "Quantity"
- Result Attribute: "Unit Price"
- Keep Records: Same
- Tolerance Threshold: 0.01
結果:計算された単価が許容範囲内で保存された単価と一致するケースを返します。
洞察:正しい計算が行われている注文を識別することで、ベンチマークとして利用可能。これらを除くことで問題のあるケースに注力できます。
出力
このフィルターは、指定した比較条件を満たすケースのみを含む新しいデータセットを返します。ケース属性を利用した場合は、条件を満たすか否かでケース全体を保持または削除します。イベント属性を利用した場合は、条件を満たすイベントが少なくとも1件存在するケースを保持します。
First Operand、Second Operand、Result Attributeの3つの属性はすべて同じソース(ケース属性またはイベント属性)である必要があります。異なるソースの場合は、フィルターは元のデータセットを変更せずそのまま返します。
返されるケースでは、すべての元のイベントと属性が保持されます。
技術メモ
- フィルタータイプ:ケースレベルフィルター(属性比較に基づきケース全体を削除)
- データソース対応:ケース属性とイベント属性の両方に対応。ただし3属性は同一ソースであることが必須
- 対応数値型:Double、Single、Int32(整数)、Int64(長整数)
- 0除算の扱い:第2オペランドが0以下の場合は計算は行わず、結果はnullとする
- null値の扱い:3値のいずれかがnullの場合、計算結果はnullとみなす
- 閾値処理:差分計算後、許容閾値を適用し浮動小数点誤差を調整
- パフォーマンス:大規模データセットに対して効率的な計算検証を実現
本ドキュメントはmindzieStudioプロセスマイニングプラットフォームの一部です。