在Cloud Flow和Workflow中使用多选选项集类型字段

Posted luoyong0201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Cloud Flow和Workflow中使用多选选项集类型字段相关的知识,希望对你有一定的参考价值。

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复442或者20210513可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

以前我的博文 Dynamics 365新引入了多选选项集类型字段 简单介绍了Dynamics 365开始引入的多选选项集(MultiSelect Option Set)类型的字段,文章 Copying multi-select option sets in workflows 提到了一些限制如下:

  • Cannot be used in the form header
  • Cannot be used in the Business Process Flow as a data step
  • Cannot be calculated or used by calculated or roll-up fields
  • Cannot be used in Bulk editing
  • Cannot be used in Business Rules
  • 150 options max
  • A default value cannot be set
  • Cannot be used in the workflow designer

今天在工作流(workflow)使用的多选选项集字段的时候发现没有办法将改类型字段用于Check这种判断条件,开始找不到这个字段,我以为漏看了,看了几遍都找不到就确认了是workflow的设计界面不支持多选选项集类型的字段。那怎么办?可以通过Web API更改workflow的xaml字段的内容来解决吗?我还真的去尝试了一下,更新不会报错,workflow也可以激活,但是触发后这个涉及到多选选项集的字段会报错:The data type specified for this condition is not valid. Select a different data type and try again.

那怎么办?有一种可能可行的办法是借助第三方工具 demianrasko/Dynamics-365-Workflow-Tools ,我没有去尝试。

我用了Power Automate中的Cloud Flow来替换workflow解决的。但是使用时候有坑,需要注意。最值得注意的是Trigger中的提供的字段的值并不包括多选选项集类型字段,我认为这是个BUG。这样给Cloud Flow带来的问题是如果你在Trigger中的Row filter (比如ly_multiselectopitonfield ne null)或者Settings中的Trigger Conditions (比如 @not(empty(triggerBody()?[\'ly_multiselectoptionfield\'])) )利用多选选项集类型字段的值来做判断就会导致问题,因为它的值一直为空。

那如果要用来判断怎么办?也好办,再加个Dataverse Connector的查询步骤,查询下多选选项集字段的值,这个是可以查询出来,查询出来的结果如果有值的话是用逗号隔开的整数。如果要判断这个字段是否有值,可以使用类似的 empty(outputs(\'Get_Multiselectoptionfieldvalue_of_the_contact\')?[\'body/ly_multiselectoptionfieldname\']) 表达式的值 is equal to false来判断,示例如下。

\'在Cloud

查询出来的值是这个样子,是以逗号分隔的数字(选项值),但是其对应的OData.Community.Display.V1.FormattedValue 却是用分号分隔的选项显示文本。

\'在Cloud

如果有值,需要将这个值赋值给别的字段,这个字段用的也是同一个全局选项集的话,直接设置为前面查询获取到的这个字段的值就可以,不需要额外工作,还是不错的。

以上是关于在Cloud Flow和Workflow中使用多选选项集类型字段的主要内容,如果未能解决你的问题,请参考以下文章

[GIT] Git 工作流程(Git flow, Github flow flow, Git lab flow)

Spring Cloud Data Flow整合UAA之使用LDAP进行账号管理

Spring Cloud Data Flow初探

如何在 Spring Cloud Data Flow 任务中外部化应用程序属性

Spring Cloud Data Flow 编辑现有流

Spring Cloud Data Flow 的自定义任务中缺少参数