在Okta工作流程中创建一个自定义列表过滤器的教程

109 阅读3分钟

Okta工作流程指南是来自每周社区办公时间、MacAdmins工作流程Slack频道和其他地方的问题和答案。阅读所有以前的方法指南

现在开始讨论这个问题。

如何创建一个自定义列表过滤器?

假设你想得到你的组织中所有以特定文字开头的用户组的列表。例如,你要找的是所有以No-code开头的组。

这不是正确的解决方案,但我自己遇到了这个问题,所以我在这里分享。你要尝试的第一件事是使用列表-过滤卡。像这样:

用列表-过滤卡过滤一个列表

但是,这并不奏效。在这个例子中,让我们使用一个名为No-code Builders的组。

你想检查No-code是否是in No-code Builders组名。但是,这张卡却检查No-Code Builders是否是in No-code,结果是一个空列表。

解决方案是使用List - Custom Filter卡。

列表-客户过滤器使用一个辅助流程来确定一个列表项是否应该包括在新的(过滤的)列表中。

首先看一下帮助器流程,它是这样的:

一个流程(辅助流程)来检查一个列表项是否符合自定义的过滤器

帮助者流程可以包含任何逻辑来确定当前的列表时间是否应该包括在返回的新列表中。如果帮助器流程返回 true - 那么该项目将被添加到一个新的列表中。如果该流程返回false - 那么时间将不会被添加到新的列表中。

在这个例子中,主流程向辅助流程传递了两个变量 (On Demand - Helper Flow卡):

  1. 组名--这就是实际的组名,如无码建设者
  2. 过滤器- 你要在组名中寻找的文本

第二张卡**(Text - Find**)接收Filter文本并在组名中搜索它。如果它找到一个匹配的,它会返回其位置,这个位置将是0或更大。如果没有找到匹配的,那么它将返回-1。

下一张卡,真/假--表达式检查值是否小于0,然后否定它。

如果找到一个匹配值 (位置=0位置>0)

  • (position < 0)评估为
  • not (position < 0)变为true

如果没有找到匹配项 (位置=-1)

  • (position < 0)评估为
  • not (position < 0 )变成 false

最后一张卡,流量控制--返回返回

  • 如果返回值为,那么该项目应该被添加到列表中。
  • 如果返回值为false,那么该项目将不会被添加到列表中。

这是主流程调用辅助流程:

当你指定帮助器流程时,组名过滤器变量将被显示。

组名被设置为Profile.Name(点击该字段右侧的向下箭头)。Profile.Name是JSON组列表中的一个路径。

设置辅助流程输入

过滤器被设置为你要过滤的文本。

运行这个流程后,列表-自定义过滤器将返回一个列表,其中只包含有过滤器文本No-code的组。

在指南的最后,这就是主流程的输入与辅助流程的关系。你首先在帮助器流程中定义输入。当你在主流程中设置一个辅助流程**(Helper Flow**)时,这些输入将被显示**(组名过滤器**)。

助手流程的输入