RecordAggregateコンポーネントで要望の多かった機能を追加・改善しました。
・「NULLを無視」プロパティと「空文字を無視」プロパティを、全ての集計方法に反映するように変更
・「値の変換に失敗した場合の処理」プロパティを追加して、値の変換に失敗した場合の処理を選択する機能を追加
この2点の変更により、どのように動作が変わるのかをご紹介します。
まず1点目の「「NULLを無視」プロパティと「空文字を無視」プロパティを、全ての集計方法に反映する」です。
「NULLを無視」プロパティと「空文字を無視」プロパティはWARP4.9までは、集計方法が「個数」と「平均値」の場合にのみ有効なプロパティでしたが、WARP4.9.1からは「合計」「最大値」「最小値」の場合でも使用されるようになりました。
出力フィールドDecimalで「最小値」の動作例
「空文字を無視」プロパティで「はい」を指定した場合に集計フィールドの値に空文字が含まれていると、WARP4.9では結果が0となっていましたが、WARP4.9.1では集計フィールドの1つ目の値である空文字列を無視して、"1" と "3" の最小値である "1" を返します。
集計フィールドの値: "", "1", "3"
WARP4.9の結果 | 0 |
WARP4.9.1の結果 | 1 |
出力フィールドDecimalで「合計」の動作例
「NULLを無視」プロパティで「はい」を指定した場合に集計フィールドの値にNULLが含まれていると、WARP4.9ではnullをDecimalに変換しようとしてエラーが発生し "0" となり、結果が "6" となっていましたが、WARP4.9.1では集計フィールドの1つ目の値であるNULLを無視して、"1" と "5" の合計である "6" を返します。
集計フィールドの値: null, "1", "5"
WARP4.9の結果 | 6 |
WARP4.9.1の結果 | 6 |
結果は同じようですが、ここで2点目の「「値の変換に失敗した場合の処理」プロパティを追加」が関連してきます。
「値の変換に失敗した場合の処理」プロパティのデフォルト値は「0にする」です。この場合、値を "0" として扱いますが、「無視する」を選択した場合、「最大値」や「最小値」の計算で異なる結果を出力します。
集計フィールドの値: null, "1", "5"
「無視する」場合の「最小値」の結果 | 1 |
「0にする」場合の「最小値」の結果 | 0 |
「エラーにする」を選べばエラーを発生させることもできますので、予期せぬ値を使用しないようにすることも可能です。