Excel Tools Data Subset Export Returning HTTP 500

The download links in several reports in our production environment have started returning HTTP 500 errors when clicked. This seems to be occurring for all users and is not isolated to a single report.

The download link is driven by the Excel Tools data subset export. The related export process is completing successfully and I am not seeing any errors in the process, but when I look in the logs I see this whenever someone tries to use the link:

17:38:10,332 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-15 17:38:10,332 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ap2.PortalResponse - Error: 500

17:38:43,719 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-15 17:38:43,719 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet - Expected 898 but found 97

17:38:43,719 INFO  [stdout] (ajp-/0.0.0.0:8009-32) java.security.InvalidParameterException: Expected 898 but found 97

I am not sure how to decode these errors, so any help in this area would be appreciated.

  Discussion posts and replies are publicly visible

Parents
  • Is there any additional stacktrace available in the logs? That isn't a formally caught exception, so I can only take guesses where the service might be breaking.

    Can provide more information on the data you are storing into your ExportableDatasubset PV? Based on the Ids (898 and 97), my best guess is that value assigned to the datasubset attribute is a Dictionary or similar structure instead of type Datasubset.
  • When I hit the error myself, here is everything I see in the logs around the event:

    00:35:32,864 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-18 00:35:32,864 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet - Expected 898 but found 97
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) java.security.InvalidParameterException: Expected 898 but found 97
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianComplex.put(AppianComplex.java:42)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianComplex.put(AppianComplex.java:19)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianTypeFactory.createElement(AppianTypeFactory.java:416)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.plugins.typetransformer.AppianTypeFactory.toAppianElement(AppianTypeFactory.java:137)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.convertDataToExcel(ExcelHelperUtils.java:104)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ps.exceltools.servlet.ExportDataSubsetToExcelFromProcessServlet.doGet(ExportDataSubsetToExcelFromProcessServlet.java:99)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:42)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:52)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.EntryFilter.doFilter(EntryFilter.java:40)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.PageFilter.doFilter(PageFilter.java:363)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
    00:35:32,865 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.sail.SailRequestMetadataFilter.doFilter(SailRequestMetadataFilter.java:62)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.WrapFilter.doFilterInternal(WrapFilter.java:63)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.PathMatchExclusionFilter.doFilter(PathMatchExclusionFilter.java:70)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.web.FrameOptionsFilter.doFilter(FrameOptionsFilter.java:28)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.ForceSetPasswordFilter.doFilter(ForceSetPasswordFilter.java:47)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.AuthenticationStatusHeaderFilter.doFilter(AuthenticationStatusHeaderFilter.java:38)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csp.CspFilter.doFilter(CspFilter.java:50)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.activity.UserActivityFilter.doFilter(UserActivityFilter.java:46)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.rememberme.CookieTheftRedirectFilter.doFilter(CookieTheftRedirectFilter.java:37)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:112)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:157)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
    00:35:32,866 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:152)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csrf.CsrfChannelProcessingFilter.callSuperDoFilter(CsrfChannelProcessingFilter.java:106)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.csrf.CsrfChannelProcessingFilter.doFilter(CsrfChannelProcessingFilter.java:92)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.HttpMethodOverrideFilter.doFilter(HttpMethodOverrideFilter.java:34)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.cors.CorsFilter.doFilter(CorsFilter.java:241)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.cors.CorsFilter.doFilter(CorsFilter.java:216)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.security.auth.logging.AuthenticationLoggingFilter.doFilter(AuthenticationLoggingFilter.java:37)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.UserAgentFilter.doFilter(UserAgentFilter.java:65)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.environment.EnvironmentFilter.doFilter(EnvironmentFilter.java:87)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.ThreadLocalRequestFilter.doFilter(ThreadLocalRequestFilter.java:34)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.common.web.WeblogicSessionAttributeClassLoaderRequestFilter.doFilter(WeblogicSessionAttributeClassLoaderRequestFilter.java:258)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.NullByteInjectionFilter.doFilter(NullByteInjectionFilter.java:32)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at com.appiancorp.ap2.EncodingFilter.doFilter(EncodingFilter.java:58)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
    00:35:32,867 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:490)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:422)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 	at java.lang.Thread.run(Thread.java:748)
    00:35:32,868 INFO  [stdout] (ajp-/0.0.0.0:8009-32) 2017-08-18 00:35:32,868 [ajp-/0.0.0.0:8009-32] ERROR com.appiancorp.ap2.PortalResponse - Error: 500

    In terms of the data that is being stored into the PV, the data comes from an expression that runs a queryEntity with filters based on text decoded from JSON fed in the through the Text parameter in the process. I've tested it separately and it is correctly providing output of type Datasubset. Wouldn't a datatype mismatch cause the process to fail anyways?

  • 0
    Appian Employee
    in reply to Kyle Jorgensen

    Thanks for the stacktrace, this provides some good leads. The code is capturing all exceptions in this block of code, so your process will complete rather than "red X".

    Based on the lines in the trace, the code is failing while try to read in the exportData PV, but prior to actually converting the data to excel and passing back to the user.

    Rewording your post, I'm interpreting that you have:
    1) In your UI, generating a URL that calls the servlet, appending json encoded filter data
    2) The process model decodes that json input, giving you raw filters
    3) You are running a queryEntity based on those filters
    4) The queryEntity provides a datasubset output

    My outstanding questions: What is the datatype of your exportData PV? This PV should be a CDT of type ExportableDatasubset, and the definition of it should be (psuedo-coding):

      'type!{urn:com:appian:ps:excel:types}ExportableDataSubset'(
        fieldNames: {"name1","name2"...},
        fieldLabels: {"label1","label2"...},
        datasubset: <your queryEntity result - type should be DataSubset>,
        fileName: "your file name"
      )

    Can you confirm you have your process set up in this way? Attaching an example.

  • The exportData PV is of type ExportableDataSubset:

    A script task node defines the an activity class parameter which is subsequently saved to the PV. The node defines exportData as the following:

    fieldNames: cons!PD_STATUS_REPORT_EXPORT_FIELD_NAMES

    fieldLabels: cons!PD_STATUS_REPORT_EXPORT_FIELD_LABELS

    dataSubset: rule!PD_compileStatusReportExport(pv!pagingInfo,pv!input)

    fileName: "opportunity-status-report_" & rule!UIT_toIsoDate(now())

    fieldNames and fieldLabels are filled with constants which are both text arrays. PD_compileStatusReportExport() is below:

    rule!PD_getOpportunitiesForStatusReport(
      logicalExpression: a!queryLogicalExpression(
        operator: "AND",
        logicalExpressions: {
          if(
            and(
              rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
              rule!APN_isBlank(a!fromJson(ri!input).filterFID),
              rule!APN_isBlank(a!fromJson(ri!input).filterName),
              rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
              rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
              rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
              rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
              rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
              rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
              rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
              rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
              rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
              rule!APN_isBlank(a!fromJson(ri!input).filterNode),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
              rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget)
            ),
            {},
            a!queryLogicalExpression(
              operator: "AND",
              filters: {
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
                  null,
                  a!queryFilter(
                    field:"opportunityId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterOpportunityID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFID),
                  null,
                  a!queryFilter(
                    field:"forecastId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterFID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterName),
                  null,
                  a!queryFilter(
                    field:"applicationName",
                    operator:"in",
                    value: a!fromJson(ri!input).filterName
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
                  null,
                  a!queryFilter(
                    field:"managementRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterManagementRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
                  null,
                  a!queryFilter(
                    field:"geoRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterGeographicRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
                  null,
                  a!queryFilter(
                    field:"account",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAccount
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
                  null,
                  a!queryFilter(
                    field:"customer",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCustomer
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
                  null,
                  a!queryFilter(
                    field:"fabSegment",
                    operator:"=",
                    value: a!fromJson(ri!input).filterFabSegment
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
                  null,
                  a!queryFilter(
                    field:"projectType",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
                  null,
                  a!queryFilter(
                    field:"reportingType",
                    operator:"=",
                    value: a!fromJson(ri!input).filterReportingType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
                  null,
                  a!queryFilter(
                    field:"corporateLevel",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCorporateLevel
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
                  null,
                  a!queryFilter(
                    field:"competitor",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCompetitor
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
                  null,
                  a!queryFilter(
                    field:"strategicRelevance",
                    operator:"=",
                    value: a!fromJson(ri!input).filterStrategicRelevance
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
                  null,
                  a!queryFilter(
                    field:"productGroupOwner",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroupOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
                  null,
                  a!queryFilter(
                    field:"accountTeamOwner",
                    operator:"in",
                    value: a!fromJson(ri!input).filterAccountTeamOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
                  null,
                  a!queryFilter(
                    field:"projectStage",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStage
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
                  null,
                  a!queryFilter(
                    field:"projectStatus",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
                  null,
                  a!queryFilter(
                    field:"alignmentStatus",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAlignmentStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
                  null,
                  a!queryFilter(
                    field:"decisionQuarter",
                    operator:"in",
                    value: a!fromJson(ri!input).filterDecisionQuarter
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
                  null,
                  a!queryFilter(
                    field:"productGroup",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroup
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
                  null,
                  a!queryFilter(
                    field:"businessUnit",
                    operator:"=",
                    value: a!fromJson(ri!input).filterBusinessUnit
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
                  null,
                  a!queryFilter(
                    field:"productLine",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductLine
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
                  null,
                  a!queryFilter(
                    field:"targetTool",
                    operator:"=",
                    value: a!fromJson(ri!input).filterTargetTool
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterNode),
                  null,
                  a!queryFilter(
                    field:"node",
                    operator:"=",
                    value: a!fromJson(ri!input).filterNode
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
                  null,
                  a!queryFilter(
                    field:"pgPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
                  null,
                  a!queryFilter(
                    field:"atPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
                  null,
                  a!queryFilter(
                    field:"pgTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGTargetBudget
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget),
                  null,
                  a!queryFilter(
                    field:"atTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATTargetBudget
                  )
                )
              }
            )
          ),
          if(
            rule!APN_isBlank(a!fromJson(ri!input).filterFab),
            {},
            a!queryLogicalExpression(
              operator: "OR",
              filters: {
                a!applyComponents(
                  a!queryFilter(
                    field: "customerFab",
                    operator: "includes",
                    value: _
                  ),
                  a!fromJson(ri!input).filterFab
                )
              }
            )
          ),
          rule!PD_getUserAccessLogicalExpression(a!fromJson(ri!input).user)
        }
      ),
      selection: a!querySelection(
        columns: {
          a!queryColumn(field: "opportunityId", alias: "opportunityId", visible: true()),
          a!queryColumn(field: "projectType", alias: "projectType", visible: true()),
          a!queryColumn(field: "projectAndAlignmentStatus", alias: "projectAndAlignmentStatus", visible: true()),
          a!queryColumn(field: "applicationName", alias: "applicationName", visible: true()),
          a!queryColumn(field: "corpReportingType", alias: "corpReportingType", visible: true()),
          a!queryColumn(field: "node", alias: "node", visible: true()),
          a!queryColumn(field: "customer", alias: "customer", visible: true()),
          a!queryColumn(field: "relevantDivision", alias: "relevantDivision", visible: true()),
          a!queryColumn(field: "strategicRelevance", alias: "strategicRelevance", visible: true()),
          a!queryColumn(field: "threeYearRevenue", alias: "threeYearRevenue", visible: true()),
          a!queryColumn(field: "pgPriority", alias: "pgPriority", visible: true()),
          a!queryColumn(field: "atPriority", alias: "atPriority", visible: true()),
          a!queryColumn(field: "decisionQuarter", alias: "decisionQuarter", visible: true()),
          a!queryColumn(field: "modifiedBy", alias: "modifiedBy", visible: true()),
          a!queryColumn(field: "modifiedDate", alias: "modifiedDate", visible: true()),
          a!queryColumn(field: "forecastId", alias: "forecastId", visible: false()),
          a!queryColumn(field: "managementRegion", alias: "managementRegion", visible: false()),
          a!queryColumn(field: "geoRegion", alias: "geoRegion", visible: false()),
          a!queryColumn(field: "geoRegionGroupIds", alias: "geoRegionGroupIds", visible: false()),
          a!queryColumn(field: "account", alias: "account", visible: false()),
          a!queryColumn(field: "accountId", alias: "accountId", visible: false()),
          a!queryColumn(field: "customerFab", alias: "customerFab", visible: false()),
          a!queryColumn(field: "fabSegment", alias: "fabSegment", visible: false()),
          a!queryColumn(field: "reportingType", alias: "reportingType", visible: false()),
          a!queryColumn(field: "corporateLevel", alias: "corporateLevel", visible: false()),
          a!queryColumn(field: "competitor", alias: "competitor", visible: false()),
          a!queryColumn(field: "productGroupOwner", alias: "productGroupOwner", visible: false()),
          a!queryColumn(field: "accountTeamOwner", alias: "accountTeamOwner", visible: false()),
          a!queryColumn(field: "projectStage", alias: "projectStage", visible: false()),
          a!queryColumn(field: "projectStatus", alias: "projectStatus", visible: false()),
          a!queryColumn(field: "alignmentStatus", alias: "alignmentStatus", visible: false()),
          a!queryColumn(field: "productGroup", alias: "productGroup", visible: false()),
          a!queryColumn(field: "businessUnit", alias: "businessUnit", visible: false()),
          a!queryColumn(field: "productLine", alias: "productLine", visible: false()),
          a!queryColumn(field: "targetTool", alias: "targetTool", visible: false()),
          a!queryColumn(field: "pgTargetBudget", alias: "pgTargetBudget", visible: false()),
          a!queryColumn(field: "atTargetBudget", alias: "atTargetBudget", visible: false()),
          a!queryColumn(field: "oneYearRevenue", alias: "oneYearRevenue", visible: false())
        }
      ),
      pagingInfo: ri!pagingInfo
    )

    PD_getOpportunitiesForStatusReport() contains a queryEntity and is used by many reports and processes. I've confirmed that both PD_compileStatusReportExport() and PD_getOpportunitiesForStatusReport() both work.

    None of these objects have changed recently either, they were working for a few months before this error popped up.

Reply
  • The exportData PV is of type ExportableDataSubset:

    A script task node defines the an activity class parameter which is subsequently saved to the PV. The node defines exportData as the following:

    fieldNames: cons!PD_STATUS_REPORT_EXPORT_FIELD_NAMES

    fieldLabels: cons!PD_STATUS_REPORT_EXPORT_FIELD_LABELS

    dataSubset: rule!PD_compileStatusReportExport(pv!pagingInfo,pv!input)

    fileName: "opportunity-status-report_" & rule!UIT_toIsoDate(now())

    fieldNames and fieldLabels are filled with constants which are both text arrays. PD_compileStatusReportExport() is below:

    rule!PD_getOpportunitiesForStatusReport(
      logicalExpression: a!queryLogicalExpression(
        operator: "AND",
        logicalExpressions: {
          if(
            and(
              rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
              rule!APN_isBlank(a!fromJson(ri!input).filterFID),
              rule!APN_isBlank(a!fromJson(ri!input).filterName),
              rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
              rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
              rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
              rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
              rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
              rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
              rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
              rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
              rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
              rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
              rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
              rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
              rule!APN_isBlank(a!fromJson(ri!input).filterNode),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
              rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
              rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget)
            ),
            {},
            a!queryLogicalExpression(
              operator: "AND",
              filters: {
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterOpportunityID),
                  null,
                  a!queryFilter(
                    field:"opportunityId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterOpportunityID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFID),
                  null,
                  a!queryFilter(
                    field:"forecastId",
                    operator:"in",
                    value: a!fromJson(ri!input).filterFID
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterName),
                  null,
                  a!queryFilter(
                    field:"applicationName",
                    operator:"in",
                    value: a!fromJson(ri!input).filterName
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterManagementRegion),
                  null,
                  a!queryFilter(
                    field:"managementRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterManagementRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterGeographicRegion),
                  null,
                  a!queryFilter(
                    field:"geoRegion",
                    operator:"=",
                    value: a!fromJson(ri!input).filterGeographicRegion
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccount),
                  null,
                  a!queryFilter(
                    field:"account",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAccount
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCustomer),
                  null,
                  a!queryFilter(
                    field:"customer",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCustomer
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterFabSegment),
                  null,
                  a!queryFilter(
                    field:"fabSegment",
                    operator:"=",
                    value: a!fromJson(ri!input).filterFabSegment
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectType),
                  null,
                  a!queryFilter(
                    field:"projectType",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterReportingType),
                  null,
                  a!queryFilter(
                    field:"reportingType",
                    operator:"=",
                    value: a!fromJson(ri!input).filterReportingType
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCorporateLevel),
                  null,
                  a!queryFilter(
                    field:"corporateLevel",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCorporateLevel
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterCompetitor),
                  null,
                  a!queryFilter(
                    field:"competitor",
                    operator:"=",
                    value: a!fromJson(ri!input).filterCompetitor
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterStrategicRelevance),
                  null,
                  a!queryFilter(
                    field:"strategicRelevance",
                    operator:"=",
                    value: a!fromJson(ri!input).filterStrategicRelevance
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroupOwner),
                  null,
                  a!queryFilter(
                    field:"productGroupOwner",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroupOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAccountTeamOwner),
                  null,
                  a!queryFilter(
                    field:"accountTeamOwner",
                    operator:"in",
                    value: a!fromJson(ri!input).filterAccountTeamOwner
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStage),
                  null,
                  a!queryFilter(
                    field:"projectStage",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStage
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProjectStatus),
                  null,
                  a!queryFilter(
                    field:"projectStatus",
                    operator:"in",
                    value: a!fromJson(ri!input).filterProjectStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterAlignmentStatus),
                  null,
                  a!queryFilter(
                    field:"alignmentStatus",
                    operator:"=",
                    value: a!fromJson(ri!input).filterAlignmentStatus
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterDecisionQuarter),
                  null,
                  a!queryFilter(
                    field:"decisionQuarter",
                    operator:"in",
                    value: a!fromJson(ri!input).filterDecisionQuarter
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductGroup),
                  null,
                  a!queryFilter(
                    field:"productGroup",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductGroup
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterBusinessUnit),
                  null,
                  a!queryFilter(
                    field:"businessUnit",
                    operator:"=",
                    value: a!fromJson(ri!input).filterBusinessUnit
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterProductLine),
                  null,
                  a!queryFilter(
                    field:"productLine",
                    operator:"=",
                    value: a!fromJson(ri!input).filterProductLine
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterTargetTool),
                  null,
                  a!queryFilter(
                    field:"targetTool",
                    operator:"=",
                    value: a!fromJson(ri!input).filterTargetTool
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterNode),
                  null,
                  a!queryFilter(
                    field:"node",
                    operator:"=",
                    value: a!fromJson(ri!input).filterNode
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGPriority),
                  null,
                  a!queryFilter(
                    field:"pgPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATPriority),
                  null,
                  a!queryFilter(
                    field:"atPriority",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATPriority
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterPGTargetBudget),
                  null,
                  a!queryFilter(
                    field:"pgTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterPGTargetBudget
                  )
                ),
                if(
                  rule!APN_isBlank(a!fromJson(ri!input).filterATTargetBudget),
                  null,
                  a!queryFilter(
                    field:"atTargetBudget",
                    operator:"=",
                    value: a!fromJson(ri!input).filterATTargetBudget
                  )
                )
              }
            )
          ),
          if(
            rule!APN_isBlank(a!fromJson(ri!input).filterFab),
            {},
            a!queryLogicalExpression(
              operator: "OR",
              filters: {
                a!applyComponents(
                  a!queryFilter(
                    field: "customerFab",
                    operator: "includes",
                    value: _
                  ),
                  a!fromJson(ri!input).filterFab
                )
              }
            )
          ),
          rule!PD_getUserAccessLogicalExpression(a!fromJson(ri!input).user)
        }
      ),
      selection: a!querySelection(
        columns: {
          a!queryColumn(field: "opportunityId", alias: "opportunityId", visible: true()),
          a!queryColumn(field: "projectType", alias: "projectType", visible: true()),
          a!queryColumn(field: "projectAndAlignmentStatus", alias: "projectAndAlignmentStatus", visible: true()),
          a!queryColumn(field: "applicationName", alias: "applicationName", visible: true()),
          a!queryColumn(field: "corpReportingType", alias: "corpReportingType", visible: true()),
          a!queryColumn(field: "node", alias: "node", visible: true()),
          a!queryColumn(field: "customer", alias: "customer", visible: true()),
          a!queryColumn(field: "relevantDivision", alias: "relevantDivision", visible: true()),
          a!queryColumn(field: "strategicRelevance", alias: "strategicRelevance", visible: true()),
          a!queryColumn(field: "threeYearRevenue", alias: "threeYearRevenue", visible: true()),
          a!queryColumn(field: "pgPriority", alias: "pgPriority", visible: true()),
          a!queryColumn(field: "atPriority", alias: "atPriority", visible: true()),
          a!queryColumn(field: "decisionQuarter", alias: "decisionQuarter", visible: true()),
          a!queryColumn(field: "modifiedBy", alias: "modifiedBy", visible: true()),
          a!queryColumn(field: "modifiedDate", alias: "modifiedDate", visible: true()),
          a!queryColumn(field: "forecastId", alias: "forecastId", visible: false()),
          a!queryColumn(field: "managementRegion", alias: "managementRegion", visible: false()),
          a!queryColumn(field: "geoRegion", alias: "geoRegion", visible: false()),
          a!queryColumn(field: "geoRegionGroupIds", alias: "geoRegionGroupIds", visible: false()),
          a!queryColumn(field: "account", alias: "account", visible: false()),
          a!queryColumn(field: "accountId", alias: "accountId", visible: false()),
          a!queryColumn(field: "customerFab", alias: "customerFab", visible: false()),
          a!queryColumn(field: "fabSegment", alias: "fabSegment", visible: false()),
          a!queryColumn(field: "reportingType", alias: "reportingType", visible: false()),
          a!queryColumn(field: "corporateLevel", alias: "corporateLevel", visible: false()),
          a!queryColumn(field: "competitor", alias: "competitor", visible: false()),
          a!queryColumn(field: "productGroupOwner", alias: "productGroupOwner", visible: false()),
          a!queryColumn(field: "accountTeamOwner", alias: "accountTeamOwner", visible: false()),
          a!queryColumn(field: "projectStage", alias: "projectStage", visible: false()),
          a!queryColumn(field: "projectStatus", alias: "projectStatus", visible: false()),
          a!queryColumn(field: "alignmentStatus", alias: "alignmentStatus", visible: false()),
          a!queryColumn(field: "productGroup", alias: "productGroup", visible: false()),
          a!queryColumn(field: "businessUnit", alias: "businessUnit", visible: false()),
          a!queryColumn(field: "productLine", alias: "productLine", visible: false()),
          a!queryColumn(field: "targetTool", alias: "targetTool", visible: false()),
          a!queryColumn(field: "pgTargetBudget", alias: "pgTargetBudget", visible: false()),
          a!queryColumn(field: "atTargetBudget", alias: "atTargetBudget", visible: false()),
          a!queryColumn(field: "oneYearRevenue", alias: "oneYearRevenue", visible: false())
        }
      ),
      pagingInfo: ri!pagingInfo
    )

    PD_getOpportunitiesForStatusReport() contains a queryEntity and is used by many reports and processes. I've confirmed that both PD_compileStatusReportExport() and PD_getOpportunitiesForStatusReport() both work.

    None of these objects have changed recently either, they were working for a few months before this error popped up.

Children
  • AFAIK Please find below checklist
    1. rule!PD_compileStatusReportExport(pv!pagingInfo,pv!input) return Proper DataSubset or not .If it is return DataSubSet please check number of records are same in DataSubset and Exportable DataSubset .
    2.Please Check the cons!PD_STATUS_REPORT_EXPORT_FIELD_NAMES and DataSubSet field names
    3.Check with one by one field name in exportableDataSuset then we will come to know what exactly the issue[issue with which field]
    4.Check the security of the process model.
  • 1. The rule is returning a DataSubset and the amount of records match
    2. The field names defined in the constant match the datasubset field names exactly
    3. There doesn't seem to be any mismatch with field names, and the field names haven't changed since before the download was working
    4. The security of the export process model has the All P&D users group set to "Editor"