PowerApps - "is this value in or not in an existing Microsoft List?"
PowerApps - "is this value in or not in an existing Microsoft List?"
我对此一头雾水
我的目标是创建一个序列,基本上说“如果您在此 Microsoft 列表中找不到合适的记录,则创建一个新记录并继续。”
这是让我烦恼的代码部分(甚至 这个 只是一个测试,看看我是否已经创建了正确的条件——我显然失败了):
ForAll(ScanDataCollection,
Notify(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number));
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)), Notify("not found"))
); // ForAll(ScanDataCollection,
[Notify] 命令是我尝试询问“当我给它提供不同的值时会发生什么”的尝试。当我给它一个值 x 时 x 出现在 Tag_Value 列中 'Spiderfood - Loaner Pool',然后它会正确地踢出相同的值。如果我给它输入一个没有出现的 x,那么 Notify window 就会显示为空白。这似乎有效,但是,但是...
...当我尝试设置某种条件时,代码似乎 运行 没有错误,但它不会通知我任何事情,无论是否 x 是否在列表中。
我一直在想,我在这行中一定遗漏了一些非常明显的东西:
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)), Notify("not found"))
我任由你摆布。
更新 1:
下一行总是生成“未找到”值,即使我已确认该值在列表中也是如此:
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result)), Notify("Found item: " & Result), Notify("Did not find item: " & Result));
更新二:
下一行似乎对输入产生了正确的响应,但 PowerApps 标记了这一行并声明“此连接器不支持 CountRows 操作”(如果是这样,我可以信任它吗?!):
If(CountRows(Filter('Spiderfood - Loaner Pool', Tag_Number = Result)) > 0, Notify("Found item: " & Result), Notify("Did not find item: " & Result));
好的,搞定了。不得不调整一些脑细胞来做到这一点,但这里是代码,功能齐全,并且使用了正确的功能:
ForAll(ScanDataCollection,
If(IsBlank(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)),
Notify("Previously unrecorded Loaner Kit item addded to Library.");
Collect('Spiderfood - Loaner Pool', {
Title: Text(Today()),
Tag_Number: TrimEnds(Result),
Last_Touched_Location: DD_Location.SelectedText.Value,
Last_Touched_Time: TransactionTimestamp_Value
});
); // If(IsBlank...
); // ForAll(ScanDataCollection,
我对此一头雾水
我的目标是创建一个序列,基本上说“如果您在此 Microsoft 列表中找不到合适的记录,则创建一个新记录并继续。”
这是让我烦恼的代码部分(甚至 这个 只是一个测试,看看我是否已经创建了正确的条件——我显然失败了):
ForAll(ScanDataCollection,
Notify(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number));
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)), Notify("not found"))
); // ForAll(ScanDataCollection,
[Notify] 命令是我尝试询问“当我给它提供不同的值时会发生什么”的尝试。当我给它一个值 x 时 x 出现在 Tag_Value 列中 'Spiderfood - Loaner Pool',然后它会正确地踢出相同的值。如果我给它输入一个没有出现的 x,那么 Notify window 就会显示为空白。这似乎有效,但是,但是...
...当我尝试设置某种条件时,代码似乎 运行 没有错误,但它不会通知我任何事情,无论是否 x 是否在列表中。
我一直在想,我在这行中一定遗漏了一些非常明显的东西:
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)), Notify("not found"))
我任由你摆布。
更新 1:
下一行总是生成“未找到”值,即使我已确认该值在列表中也是如此:
If(IsEmpty(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result)), Notify("Found item: " & Result), Notify("Did not find item: " & Result));
更新二:
下一行似乎对输入产生了正确的响应,但 PowerApps 标记了这一行并声明“此连接器不支持 CountRows 操作”(如果是这样,我可以信任它吗?!):
If(CountRows(Filter('Spiderfood - Loaner Pool', Tag_Number = Result)) > 0, Notify("Found item: " & Result), Notify("Did not find item: " & Result));
好的,搞定了。不得不调整一些脑细胞来做到这一点,但这里是代码,功能齐全,并且使用了正确的功能:
ForAll(ScanDataCollection,
If(IsBlank(LookUp('Spiderfood - Loaner Pool', Tag_Number = Result, Tag_Number)),
Notify("Previously unrecorded Loaner Kit item addded to Library.");
Collect('Spiderfood - Loaner Pool', {
Title: Text(Today()),
Tag_Number: TrimEnds(Result),
Last_Touched_Location: DD_Location.SelectedText.Value,
Last_Touched_Time: TransactionTimestamp_Value
});
); // If(IsBlank...
); // ForAll(ScanDataCollection,