000039079 - Data Feed Invalid Expression Error for New Source Data calculated field when data being evaluated includes HTML formatting in RSA Archer

Document created by RSA Customer Support Employee on Jul 6, 2020
Version 1Show Document
  • View in full screen mode

Article Content

Article Number000039079
Applies ToRSA Product Set: RSA Archer
RSA Version/Condition: 6.x
IssueWhen using a Mail Monitor Data Feed which contains New Source Data that is calculated. The source mailbox does not always contain email messages that are in HTML format so the following calculation is used in New Source Data to ensure plain text email messages are also created into records: IF(ISEMPTY([body_html]),[body_text],[body_html]).

The calculation works when there are plain text email messages in the source however the HTML emails do not get created and the following error is recorded in the data feed message: "There was an error executing the calculation '=IF(ISEMPTY([body_html]),[body_text],[body_html])' on field 'NewSourceName1'.invalid expression The field will be set to null."

User-added image
 

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
    <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
        <EventID>3</EventID>
        <Type>3</Type>
        <SubType Name="Error">0</SubType>
        <Level>2</Level>
        <TimeCreated SystemTime="2020-04-29T15:57:41.8957459Z" />
        <Source Name="ArcherTech.DataFeed" />
        <Correlation ActivityID="{69f0ea26-4950-43fd-9571-5649dfa0c660}" />
        <Execution ProcessName="ArcherTech.JobFramework.Job" ProcessID="2764" ThreadID="1" />
        <AssemblyVersion>6.8.0.1170</AssemblyVersion>
        <Channel />
        <Computer>ARCHERWEB</Computer>
    </System>
    <ApplicationData>
        <TraceData>
            <DataItem>
                <TraceRecord Severity="Error" xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord">
                    <TraceIdentifier>ArcherTech.DataFeed</TraceIdentifier>
                    <Description>Error during execution of channel.</Description>
                    <AppDomain>ArcherTech.JobFramework.Job.exe</AppDomain>
                    <ContextData>
                        <LogReferenceId>042920-155741-8957</LogReferenceId>
                        <DataFeedId>1</DataFeedId>
                        <DataFeedName>MailMonitor</DataFeedName>
                        <DataFeedHistoryId>4</DataFeedHistoryId>
                    </ContextData>
                    <Exception>
                        <ExceptionType>System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
                        <Message>Exception has been thrown by the target of an invocation.</Message>
                        <Source>mscorlib</Source>
                        <ContextData>
                            <ChannelName>ArcherTech.DataFeed.Channel.Components.ContentWriterComponent</ChannelName>
                        </ContextData>
                        <StackTrace>   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at ArcherTech.ChannelFramework.Channel.Execute()
   at ArcherTech.DataFeed.ComponentModel.DataFeedChannelActivity.ExecuteInternal()</StackTrace>
                        <InnerException>
                            <ExceptionType>System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
                            <Message>Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlMappingComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.DataFeedTokenExtractionComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlFilterComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlCalculationComponent' threw the following exception:'There was a problem parsing the formulas.  See the error logs for details''''</Message>
                            <Source>System</Source>
                            <StackTrace>   at System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component)
   at ArcherTech.ChannelFramework.ComponentOutputBind.GetRuntimeValue(DependencyObject source, DependencyProperty dependencyProperty)
   at ArcherTech.Xaml.DependencyObject.GetValue(DependencyProperty property)
   at ArcherTech.ChannelFramework.ExecuteComponent`1.get_Input()
   at ArcherTech.ChannelFramework.ExecuteComponent`1.ComponentExecute()</StackTrace>
                            <InnerException>
                                <ExceptionType>System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
                                <Message>Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.DataFeedTokenExtractionComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlFilterComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlCalculationComponent' threw the following exception:'There was a problem parsing the formulas.  See the error logs for details'''</Message>
                                <Source>System</Source>
                                <StackTrace>   at System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component)
   at ArcherTech.ChannelFramework.ComponentOutputBind.GetRuntimeValue(DependencyObject source, DependencyProperty dependencyProperty)
   at ArcherTech.Xaml.DependencyObject.GetValue(DependencyProperty property)
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Input()
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Output()</StackTrace>
                                <InnerException>
                                    <ExceptionType>System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
                                    <Message>Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlFilterComponent' threw the following exception:'Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlCalculationComponent' threw the following exception:'There was a problem parsing the formulas.  See the error logs for details''</Message>
                                    <Source>System</Source>
                                    <StackTrace>   at System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component)
   at ArcherTech.ChannelFramework.ComponentOutputBind.GetRuntimeValue(DependencyObject source, DependencyProperty dependencyProperty)
   at ArcherTech.Xaml.DependencyObject.GetValue(DependencyProperty property)
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Input()
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Output()</StackTrace>
                                    <InnerException>
                                        <ExceptionType>System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
                                        <Message>Property accessor 'Output' on object 'ArcherTech.DataFeed.Channel.Components.XmlCalculationComponent' threw the following exception:'There was a problem parsing the formulas.  See the error logs for details'</Message>
                                        <Source>System</Source>
                                        <StackTrace>   at System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component)
   at ArcherTech.ChannelFramework.ComponentOutputBind.GetRuntimeValue(DependencyObject source, DependencyProperty dependencyProperty)
   at ArcherTech.Xaml.DependencyObject.GetValue(DependencyProperty property)
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Input()
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Output()</StackTrace>
                                        <InnerException>
                                            <ExceptionType>ArcherTech.DataFeed.Channel.Components.XmlCalculationException, ArcherTech.DataFeed, Version=6.8.0.1170, Culture=neutral, PublicKeyToken=null</ExceptionType>
                                            <Message>There was a problem parsing the formulas.  See the error logs for details</Message>
                                            <Source>ArcherTech.DataFeed</Source>
                                            <StackTrace>   at ArcherTech.DataFeed.Channel.Components.XmlCalculationEngine.Initialize(XmlEntityMetadata parentList)
   at ArcherTech.DataFeed.Channel.Components.XmlCalculationEnumerable..ctor(SessionContext sessionContext, Guid traceActivityId, IXmlEntityEnumerable entityEnumerable, DataFeedContext logger)
   at ArcherTech.DataFeed.Channel.Components.XmlCalculationComponent.Initialize()
   at ArcherTech.ChannelFramework.DataFlowComponent`2.get_Output()</StackTrace>
                                        </InnerException>
                                    </InnerException>
                                </InnerException>
                            </InnerException>
                        </InnerException>
                    </Exception>
                </TraceRecord>
            </DataItem>
        </TraceData>
    </ApplicationData>
</E2ETraceEvent>


 
CauseThe cause appears to be the handling of html code within the data feed functionality. There is currently an engineering ticket open to fully understand and resolve this issue logged in ARCHER-91137.
ResolutionThe resolution is still to be determined however the below workaround is valid to bypass the issue.
WorkaroundAs a workaround to the issue map each field individually and use a calculated field within the application to collate the email values into one single field. Within the data feed make sure you map both body types to individual fields like the below example.

TARGET -> SOURCE
body_html -> body_html
body_text -> body_text

You can then create a calculated text field with the same calculation "IF(ISEMPTY([body_html]),[body_text],[body_html])" to pull the values into a single field value. The below screenshot shows the issue where the New Source Data does not take the HTML value and also shows the workaround in the field named 'Calc'.

User-added image

Attachments

    Outcomes