Improve error message for missing ValueRule

Continuing the discussion from ValueRule in data structure rule isn't mandatory:

When the ValueRule attribute isn’t filled in a data structure rule and this rule is part of a rule set applied to a screen, the rule fails with the error Object reference not set to an instance of an object. Improve this message to better reflect the actual missing reference.

2023-07-17 10:54:16,597 [18] ERROR Origam.Server.Controller.AbstractController - Selhalo vykonání pravidla při změně sloupce 'SPZ' v entitě ''Vážní lístek''.
Origam.Rule.OrigamRuleException: Selhalo vykonání pravidla při změně sloupce 'SPZ' v entitě ''Vážní lístek''.
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Origam.Rule.RuleEngine.ProcessRulesInternalFinish(ArrayList rules, IDataDocument data, DataRow rowChanged, IOutputPad outputPad, DataStructureRuleSet ruleSet) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 1214
   at Origam.Rule.RuleEngine.ProcessRulesInternal(DataRow rowChanged, IDataDocument data, DataColumn columnChanged, DataStructureRuleSet ruleSet, ICollection columnsChanged, Boolean isFromRuleQueue) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 1091
   at Origam.Rule.DatasetRuleHandler.OnColumnChanged(DataColumnChangeEventArgs e, IDataDocument data, DataStructureRuleSet ruleSet, RuleEngine ruleEngine) in D:\a\1\s\backend\Origam.Rule\DatasetRuleHandler.cs:line 193
   --- End of inner exception stack trace ---
   at Origam.Rule.DatasetRuleHandler.OnColumnChanged(DataColumnChangeEventArgs e, IDataDocument data, DataStructureRuleSet ruleSet, RuleEngine ruleEngine) in D:\a\1\s\backend\Origam.Rule\DatasetRuleHandler.cs:line 205
   at Origam.Rule.DatasetRuleHandler.table_ColumnChanged(Object sender, DataColumnChangeEventArgs e) in D:\a\1\s\backend\Origam.Rule\DatasetRuleHandler.cs:line 274
   at System.Data.DataTable.OnColumnChanged(DataColumnChangeEventArgs e)
   at System.Data.DataRow.set_Item(DataColumn column, Object value)
   at System.Data.DataRow.set_Item(String columnName, Object value)
   at Origam.Server.SessionStore.UpdateRowValue(String property, Object newValue, DataRow row) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 1747
   at Origam.Server.SessionStore.UpdateRowColumn(String property, Object newValue, UserProfile profile, DataRow row) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 1702
   at Origam.Server.SessionStore.UpdateObject(String entity, Object id, String property, Object newValue) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 1619
   at Origam.Server.SaveableSessionStore.UpdateObject(String entity, Object id, String property, Object newValue) in D:\a\1\s\backend\Origam.Server\Session Stores\SaveableSessionStore.cs:line 271
   at Origam.Server.SessionStore.UpdateObjectBatch(String entity, UpdateData[] updateDataArray) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 2200
   at Origam.Server.ServerCoreUIService.UpdateObject(UpdateObjectInput input) in D:\a\1\s\backend\Origam.Server\ServerCoreUIService.cs:line 368
   at Origam.Server.Controller.UIServiceController.<>c__DisplayClass22_0.<UpdateObject>b__0() in D:\a\1\s\backend\Origam.Server\Controller\UIServiceController.cs:line 221
   at Origam.Server.Controller.AbstractController.RunWithErrorHandler(Func`1 func) in D:\a\1\s\backend\Origam.Server\Controller\AbstractController.cs:line 88

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.