この if ステートメントでエラーが発生します。
<if test="equal" value1="{$m.parent_id}" value2="{$var.tasks-menu-id}">
<math:increment field="var.tasks-children"/>
</if>
データセット フィールド参照が正しい値を返していることを再確認しました。値の 1 つまたは両方が null の場合でも、テストは機能するはずです。
この if ステートメントでエラーが発生します。
<if test="equal" value1="{$m.parent_id}" value2="{$var.tasks-menu-id}">
<math:increment field="var.tasks-children"/>
</if>
データセット フィールド参照が正しい値を返していることを再確認しました。値の 1 つまたは両方が null の場合でも、テストは機能するはずです。
「条件がブール値を生成しなかった場合」というエラーは、if
要素でテストを設定した方法に問題がないため、実際にはやや誤解を招くものでした。ここに問題があります:
その条件下でアクションが不要な場合は、
<then>
またはサブ要素のいずれかを省略できます。<else>
このif
コマンドには、 または のいずれかまたは両方が子として必要then
ですelse
。この場合、 の本体として使用されたコマンドif
は条件として扱われ、(ブール値の) 戻り値を持たないことがエラーの原因です。
これは機能します:
<if test="equal" value1="{$m.parent_id}" value2="{$var.tasks-menu-id}">
<then>
<math:increment field="var.tasks-children"/>
</then>
</if>