I have a SSRS report with various parameters. I call the report from the menu in UI and fill the parameters in a selection dialog. All parameters mapped to combo boxes are sent as NULL
when not filled. When leaving a string box parameter empty, it is sent as an empty string. When I modify the parameters in a TransformationAfterSelection
and fill the string parameter with the null
constant, I get the following error. Is there a way to sent a null value?
Verze Origamu: 2024.5.2.3449
2025-01-13 20:48:46,995 [9] ERROR Origam.Server.Controller.AbstractController - Extension functions cannot return null values.
System.Exception: Extension functions cannot return null values.
---> System.Exception: Transformation result invalid.
---> System.Xml.Xsl.XslTransformException: Extension functions cannot return null values.
at System.Xml.Xsl.Runtime.XmlQueryRuntime.ChangeTypeXsltResult(XmlQueryType xmlType, Object value)
at System.Xml.Xsl.Runtime.XmlQueryContext.InvokeXsltLateBoundFunction(String name, String namespaceUri, IList`1[] args)
at <xsl:template match="SD">(XmlQueryRuntime , XPathNavigator )
at <xsl:template match="ROOT">(XmlQueryRuntime , XPathNavigator )
at <xsl:apply-templates>(XmlQueryRuntime , XPathNavigator )
at Root(XmlQueryRuntime )
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver documentResolver)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, Stream results)
at Origam.Rule.Xslt.CompiledXsltEngine.Transform(Object engine, XsltArgumentList xslArg, XPathDocument sourceXpathDoc, IXmlContainer resultDoc) in D:\a\1\s\backend\Origam.Rule\Xslt\CompiledXsltEngine.cs:line 75
at Origam.Rule.Xslt.MicrosoftXsltEngine.Transform(IXmlContainer data, Object xsltEngine, Hashtable parameters, String transactionId, IDataStructure outputStructure, Boolean validateOnly) in D:\a\1\s\backend\Origam.Rule\Xslt\MicrosoftXsltEngine.cs:line 200
--- End of inner exception stack trace ---
at Origam.Rule.Xslt.MicrosoftXsltEngine.Transform(IXmlContainer data, Object xsltEngine, Hashtable parameters, String transactionId, IDataStructure outputStructure, Boolean validateOnly) in D:\a\1\s\backend\Origam.Rule\Xslt\MicrosoftXsltEngine.cs:line 224
--- End of inner exception stack trace ---
at Origam.Rule.Xslt.MicrosoftXsltEngine.Transform(IXmlContainer data, Object xsltEngine, Hashtable parameters, String transactionId, IDataStructure outputStructure, Boolean validateOnly) in D:\a\1\s\backend\Origam.Rule\Xslt\MicrosoftXsltEngine.cs:line 251
at Origam.Rule.Xslt.AbstractXsltEngine.Transform(IXmlContainer data, Guid transformationId, Guid retransformationId, Hashtable parameters, String transactionId, Hashtable retransformationParameters, IDataStructure outputStructure, Boolean validateOnly) in D:\a\1\s\backend\Origam.Rule\Xslt\AbstractXsltEngine.cs:line 178
at Origam.Rule.Xslt.AbstractXsltEngine.Transform(IXmlContainer data, Guid transformationId, Hashtable parameters, String transactionId, IDataStructure outputStructure, Boolean validateOnly) in D:\a\1\s\backend\Origam.Rule\Xslt\AbstractXsltEngine.cs:line 137
at Origam.Workflow.TransformationAgent.Run() in D:\a\1\s\backend\Origam.Workflow\Service Agents\TransformationAgent.cs:line 87
at Origam.Gui.FormTools.GetSelectionDialogResultRow(Guid entityId, Guid transformationAfterId, IDataDocument dataDoc, Object profileId) in D:\a\1\s\backend\Origam.Gui\FormTools.cs:line 234
at Origam.Server.SelectionDialogSessionStore.NextReport() in D:\a\1\s\backend\Origam.Server\Session Stores\SelectionDialogSessionStore.cs:line 169
at Origam.Server.SelectionDialogSessionStore.Next() in D:\a\1\s\backend\Origam.Server\Session Stores\SelectionDialogSessionStore.cs:line 156
at Origam.Server.SelectionDialogSessionStore.ExecuteActionInternal(String actionId) in D:\a\1\s\backend\Origam.Server\Session Stores\SelectionDialogSessionStore.cs:line 102
at Origam.Server.SessionStore.ExecuteAction(String actionId) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 735
at Origam.Server.ServerEntityUIActionRunner.ExecuteSelectionDialogAction(ExecuteActionProcessData processData) in D:\a\1\s\backend\Origam.Server\Common\ServerEntityUIActionRunner.cs:line 293
at Origam.Server.ServerCoreEntityUIActionRunner.ExecuteSelectionDialogAction(ExecuteActionProcessData processData) in D:\a\1\s\backend\Origam.Server\ServerCoreEntityUIActionRunner.cs:line 46
at Origam.Server.ServerEntityUIActionRunner.PerformAppropriateAction(ExecuteActionProcessData processData) in D:\a\1\s\backend\Origam.Server\Common\ServerEntityUIActionRunner.cs:line 75
at Origam.Gui.EntityUIActionRunner.ExecuteAction(String sessionFormIdentifier, String requestingGrid, String entity, String actionType, String actionId, Hashtable parameterMappings, List`1 selectedIds, Hashtable inputParameters) in D:\a\1\s\backend\Origam.Gui\EntityUIActionRunner.cs:line 61
at Origam.Server.ServerCoreUIService.ExecuteAction(ExecuteActionInput input) in D:\a\1\s\backend\Origam.Server\ServerCoreUIService.cs:line 517
at Origam.Server.Controller.UIServiceController.<>c__DisplayClass26_0.<ExecuteAction>b__0() in D:\a\1\s\backend\Origam.Server\Controller\UIServiceController.cs:line 250
at Origam.Server.Controller.AbstractController.RunWithErrorHandler(Func`1 func) in D:\a\1\s\backend\Origam.Server\Controller\AbstractController.cs:line 88