[Compiling error] Filtering On field from aggregate left join table
Application Type
Mobile
Service Studio Version
11.14.16 (Build 60354)

Hello, 
I am creating an aggregate and left joining this with another table. 
This second table has as foreign key the table on the left.
When I do filter checking if the second table id is not NullIdentifier (therefore if there is an item on the right) I get compiler error.
Can someone guide me on what is happening?


Source: CompilerService

Message:

Compilation Error: A timeout has occurred. OutSystems compiler appears to be blocked. Compiler state:



Stack:

Error logged at:

   at OutSystems.HubEdition.ServerCommon.Tasks.AbstractTask`1.InnerRun(InputType input, IMessageBroker messageBroker, Func`1 executeAction)

   at cs#ewxiwdwh.cs#lwmuctje.cs#gnhonole()

   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()

   at System.Threading.Tasks.Task.Execute()

   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)

   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)

   at System.Threading.ThreadPoolWorkQueue.Dispatch()



Extra Info:

Exception Details:

[1] Compilation Error: A timeout has occurred. OutSystems compiler appears to be blocked. Compiler state:


at OutSystems.HubEdition.Compiler.Compiler.GenerateCode(IESpace eSpace, CompilationContext context, Int32 timeoutInMilliseconds, ThreadPriority priority, Nullable`1 isIsolatedInServer)

   at cs#ewxiwdvz.Execute(cs#ewxiwdvq input, IMessageBroker messageBroker)

   at OutSystems.HubEdition.ServerCommon.Tasks.AbstractTask`1.InnerRun(InputType input, IMessageBroker messageBroker, Func`1 executeAction)

   at cs#ewxiwdwh.cs#lwmuctje.cs#gnhonole()

   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()

   at System.Threading.Tasks.Task.Execute()

   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)

   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)

   at System.Threading.ThreadPoolWorkQueue.Dispatch()

Add this filter in the join condition instead of the filter tab. It will probably fix your issue. Checking for nullidentifier on the right side of a join gives problems because if you do a right join and no table is found, the database will give NULL, which is different from nullidentifier() = 0. 

So therefore do it in the join condition or do the check on the LocalRequest table. 


https://www.outsystems.com/forums/discussion/58790/cannot-filter-by-nulldate-on-with-or-without-join/#Post223612

See this post for more info

Hi @Bas de Jong and thank you for your reply.
Problem is, that particular filter will filter out any row containing the right data. I want both all the results, with or without data on the right but in case there is data on the right I want to apply a filter on that table.

That is why I was doing something like 

"LocalExtension.Id <> NullIdentifier()   [...]
and (not LocalExtension.IsHRApproved) [...]"

Where LocalExtension  is the table on the right. But I understand the NULL issue. I was not aware the check wouldn't had work.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.