Which of the following syntax is correct:
First
ForAll(mydatasource;
Filter(mydatasource,ThisRecord.'User (UserId)' = "Jonathan"),
Collect(mycollection1,
{
FullNameOriginator: LookUp(mycollection2, ID = mydatasource.'User (Originator)','Person name'),
Status:mydatasource.Status,
'User (Originator)':mydatasource.'User (Originator)',
Subject:mydatasource.Subject,
'Work item instructions':mydatasource.'Work item instructions',
WorkflowWorkItemClaimed:mydatasource.WorkflowWorkItemClaimed,
'User (UserId)':mydatasource.'User (UserId)',
'Due date time':mydatasource.'Due date time'
}
)
);
gives error "Incompatible types of comparison. These types can't be compared: Text, Table." at:
LookUp(mycollection2, ID = mydatasource.'User (Originator)','Person name')
Second
ForAll(mydatasource As mydatasourceRecord,
Filter(mydatasource,mydatasourceRecord.UserId="Jonathan"),
Collect(mycollection1,
{
FullNameOriginator: LookUp(mycollection2, ID = mydatasourceRecord.'User (Originator)','Person name'),
Status:mydatasourceRecord.Status,
'User (Originator)':mydatasourceRecord.'User (Originator)',
Subject:mydatasourceRecord.Subject,
'Work item instructions':mydatasourceRecord.'Work item instructions',
WorkflowWorkItemClaimed:mydatasourceRecord.WorkflowWorkItemClaimed,
'User (UserId)':mydatasourceRecord.'User (UserId)',
'Due date time':mydatasourceRecord.'Due date time'
}
)
);
gives error "Invalid number of arguments: received 3, expected 2."
Basically, trying to filter a data source to create a collection which will contain the right data
@RandyHayes @WarrenBelz @BCBuizer @dpoggemann @Drrickryp @AhmedSalih @timl @iAm_ManCat
I just responded now, in your original thread where you put the same content as reply, you can check my response here:
Essentially,
The second one is closer, but the second one is incorrect as well. As is said in the error message, there are too many arguments to ForAll. In your case, it means that the Filter itself has to be used as the iterable Table in the ForAll. In your second formula, the part where you have
mydatasource As mydatasourceRecord,
has to instead be
Filter(mydatasource As mdsPreFilteredRecord,mdsPreFilteredRecord.UserId="Jonathan") As mydatasourceRecord
So like this:
ForAll
(
Filter(mydatasource As mdsPreFilteredRecord,mdsPreFilteredRecord.UserId="Jonathan") As mydatasourceRecord
,Collect
(
mycollection1
,{
FullNameOriginator: LookUp(mycollection2, ID = mydatasourceRecord.'User (Originator)','Person name')
,Status:mydatasourceRecord.Status
,'User (Originator)':mydatasourceRecord.'User (Originator)'
,Subject:mydatasourceRecord.Subject
,'Work item instructions':mydatasourceRecord.'Work item instructions'
,WorkflowWorkItemClaimed:mydatasourceRecord.WorkflowWorkItemClaimed
,'User (UserId)':mydatasourceRecord.'User (UserId)'
,'Due date time':mydatasourceRecord.'Due date time'
}
)
);
Check if it helps @akg1421
WarrenBelz
146,524
Most Valuable Professional
RandyHayes
76,287
Super User 2024 Season 1
Pstork1
65,906
Most Valuable Professional