Power automate怎么看批到哪里了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Power automate怎么看批到哪里了?相关的知识,希望对你有一定的参考价值。

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

Dynamics 365 Customer Engagement已经强烈推荐使用Power Automate代替Workflow,主要收集常见的问题做解答。

1. Power Automate如何调用Dynamics 365 Customer Engagement中的操作(Action)?

可以登录 https://make.powerapps.com/ 或者 https://flow.microsoft.com ,打开左边的Solutions ,新建或者打开已有Solution。

然后新建Flow。

Power automate怎么看批到哪里了

调用操作时候,注意Connector 要选择 Common Data Service (current environment ).

然后可以选择 Perfrom a bound action 或者 Perform an unbound action 进行调用即可。如果选不到,确认action已经激活,然后看看 https://***.crm.dynamics.com/api/flow/openapi 这个url访问是否报错。

2. 如何获取选项集字段的显示文本。

我开始以为直接查询的时候获取不到,以为只能获取到存储值,后来经高人指点是可以的。

之前我的方法很笨,就是再查询一次stringmap实体,比如 https://***.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'ly_demo' and attributename eq 'statuscode' and langid eq 1033 and attributevalue eq 1 。

更好的办法是直接从trigger返回的body中获取值,注意选项集字段若为statuscode,需要写成 _statuscode_label。

需要使用表达式输入,例如: triggerOutputs()?['body/_lvo_addresschangetype_label'] ,当然不要全部手写,可以选一个字段值,然后选择 Peek Code,查看使用的表达式,然后自己用表达式来输入,修改自动生成的表达式为自己想要的字段值即可。

如果是通过 Get a record等查询方式,请通过类似 outputs('Your_Action_Name')?['body/ly_optionsetfieldname@OData.Community.Display.V1.FormattedValue'] 的表达式来获取。

3.如何获取当前环境的base url。

这个url很重要,我们在邮件或者别的地方插入链接让用户可以点击打开Dynamics 365的记录就需要这个。

参考文章 Quick Tip: CDS Base URL in Flow 可以知道从前面的查询中获取body中的@odata.id元素的值,然后分割下获取第一元素值即可,表达式类似:

first(split(outputs('Get_Creators_primary_emailaddress')?['body']['@odata.id'],'/api/')) 。

或者

first(split(outputs('Get_Creators_primary_emailaddress')?['body']['@odata.context'], '/api/'))

我一般用一个变量将这个值保存起来,假设变量名是CurrentEnvBaseUrl ,那么插入url使用的表达式就类似:

concat(variables('CurrentEnvBaseUrl'),'/main.aspx?pagetype=entityrecord&etn=ly_demo&id=',triggerOutputs()?['body/ly_demoid'])

Power Automate中可以用到的函数参考文档:Reference guide to using functions in expressions for Azure Logic Apps and Power Automate

Dynamics 365 Customer Engagement通过URL打开记录,窗体,视图等请参考官方文档: Open forms, views, dialogs, and reports with a URL

4.如何查询的时候同时获取查找字段的其他信息(含主属性信息)。

使用Common Data Service (current environment) 这个connector中的Get a record或者List records查询记录的时候,默认情况下对于查询字段只返回类似如下的三个属性:

"_modifiedby_value@Microsoft.Dynamics.CRM.lookuplogicalname": "systemuser",
"_modifiedby_value@odata.type": "#Guid",
"_modifiedby_value": "21c43fb9-f446-ea11-a816-000d3a3788d7",

如果我要获取查找字段的主属性值甚至其他值呢?如果我要获取modifiedby这个人主属性fullname的值甚至其邮箱呢?当然,通过再一次查询肯定可以。

我这里介绍的是另外一种方法,原理可以参考我的文章 Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员) 。

具体设置类似如下:

然后你可能会问如何获取这个值?对于使用Get a record,类似的表达式是 outputs('Get_a_record')?['body/modifiedby']['internalemailaddress']

对于使用List records,类似的表达式是 items('Apply_to_each')?['modifiedby']['internalemailaddress'] 。

也不用特别记忆,看自动生成的语法是什么样的,自己修改下即可。

5.能调用自定义工作流活动吗?

我认为当前不能,不代表后续不能。 对比可以参考官方文档,https://docs.microsoft.com/en-us/power-automate/replace-workflows-with-flows ,Power Automate的功能在不断增强。

6.能发送邮件并显示在D365中的Timeline吗?

在Power Automate中可以通过Outlook这个Connector来发送邮件,但是这种邮件与Dynamics 365的关系不大。有些时候我们希望能调用Dynamics 365中Workflow那种发送邮件的能力,发送的邮件能和D365的记录关联,并展示在关联记录的Timeline中。答案是可以的,详情可以参考 Send Dynamics 365 Emails from Power Automate 或者 Creating and Sending an Email from Dynamics 365 using Power Automate。我总结下重点,也是创建 Email Messages 这个实体记录,收件人可以通过 Activity Party Attribute Name 设置为To,然后在其对应的 Activity Party Attribute Value中设置值来设置,可以设置为类似 /contacts(@triggerOutputs()?['body/contactlid']) 这种。邮件的主题当然是Subject字段,内容是Description字段,关于字段会出现很多类似 Regarding (Opportunities) 的字段,找到你要管理的实体类型,设置为类似 /contacts(@triggerOutputs()?['body/contactlid']) 这种格式。发送邮件是通过 Common Data Service (current environment ) 这个Connector通过 Perform an bound action来做的,调用的Action Name是SendEmail,参考下图。如果要将收件人设置为文本字段的值,可以参考我这个博文 Dynamics 365中使用工作流发邮件让其可以发往文本字段指定的邮箱 注册一个插件来实现。

7.有类似child flow的功能吗?

答案是有,2019年10月份GA的,可以参考官方文档 Call Child Flows ,博文可以参考 October Updates for Microsoft Flow 。

一般对于child flow我选择Power Apps作为触发器,如果child flow有输出参数,那么它的最后一个action一般是Respond to a Power App or flow 或者 Response。

parent flow调用child flow的时候选择Flows连接器下面的 Run a Child Flow 这个action来调用。

8.异常处理一般如何做?

可以参考 Advanced Error Handling With Power Automate , Microsoft Flow Error Handling ,Try-Catch pattern in Microsoft Flow 。

主要使用result函数,函数参考见 Reference guide to using functions in expressions for Azure Logic Apps and Power Automate 。

参考官方文档:Handle errors and exceptions in Azure Logic Apps 。

还需要考虑一些limit,官方文档请参考:Limits and configuration information for Azure Logic Apps

我的如下可以供参考:

用到的表达式分别是:

result('Main_Scope')

createArray('Failed', 'TimedOut')

item()['status'])

body('Filter_array')

items('Apply_to_each_result')['name']

items('Apply_to_each_result')['status']

items('Apply_to_each_result')['code']

items('Apply_to_each_result')['outputs']['body']['error']['message']
参考技术A Power Automate(Microsoft Flow)是一款可以高效完成各项工作的通用自动化平台,可与数百种应用程序和服务无缝集成,充分满足你的各项需求。有了它,你可以在自己喜欢的应用程序和服务之间创建自动化的工作流程,进一步简化业务,节省时间并提高工作效率。
应用介绍

使用电源自动化可以:
--收到老板的电子邮件时收到通知
--轻按一下按钮,将工作时间记录到电子表格中
--自动将电子邮件附件下载到云存储
--捕获,跟踪和跟踪销售线索,并连接到你的CRM平台
--在工作项目更新时得到通知
应用特色

1、从任何地方轻松创建新流程!
2、浏览数百种流行的模板
3、连接到你喜欢的应用程序和服务
4、使用按钮轻按即可触发流程
5、与你的团队共享按钮
6、直接从移动设备监视流活动
7、从手掌中获得批准
新版特性

数以百计的应用程序和服务与Power Automate连接,最重要的是,Power Automate与SharePoint和Office 365无缝集成,因此你可以在熟悉的环境中创建自定义的端到端解决方案,以供整个团队使用。
参考技术B 疫情期间,各大平台的表单系统都发挥了巨大的作用,比如要收集公司员工的旅行信息,收集小区住户的身体状况信息等等。以往需要几天且耗费大量时间精力的工作,在表单表单系统的帮助下,只需要几个小时就可以完成,简单快捷。

但表单系统仍有一个不足,它的信息流是单向的。也就是说,信息只能从表单填写者流向信息收集者,而如果要实现让信息从发布方流向信息获取方,目前市面上的表单系统就无能为力了。虽然微信公众号甚至自建网站也可以实现信息的分发,但这种系统一般只能实现信息的无差别发布,即任何人都可以看到发布的信息,而且大家看到的信息都是一样的,如果要实现信息的精确发布,即某个人只能看到某条数据,构建成本就会大大增加,而且需要相当程度的专业知识。

但事实上这种需求还是挺常见的,比如你是一个社团的负责人,有很多人想加入这个社团,你让大家填写表单来申请加入。于是接下来你可能会经常收到申请人的电话、邮件、IM 消息来询问他的申请到了什么步骤,是否有进展,有没有通过。你只能不厌其烦地去查看每个人的申请进度,然后一一回复,或者干脆不理他们。那么有没有更好的办法来解决这个问题呢?

为此我试用了市面上常见的一些云端办公系统,如腾讯文档、WPS、Google docs 等,但这些产品似乎都没有提供什么好的解决方案,或者需要购买「企业版」授权才能使用。不过就在我将要放弃的时候,我发现了微软 Microsoft 365 订阅中的一项服务 Power Automate。Power Automate 是一项在线流程自动化服务,对普通消费者来说可能比较陌生,其实市面上也有其他类似的服务,比如比较知名的 IFTTT。关于 Power Automate 的介绍,大家可以参考这里:https://docs.microsoft.com/zh-cn/power-automate/getting-started

简单点说,我们就是用 Power Automate 来创建一个自动化的工作流,当有人希望查询一些信息的时候,通过某种方式触发这个工作流并提交想要查询的关键字,工作流引擎收到查询请求之后,根据配置的流程规则,用关键字在指定的数据集合里面找到相关数据,然后再以某种方式把查询到的数据返回给想要查询信息的人。

power automate回响

参考技术A 回响如下:
PowerApps和Dataverse相当于是应用的前端界面和数据存储,但如果我们要完成一个应用场景,一般还需要让数据在不同环境中进行流转。比如当某个数据发生变化的时候,触发一些审批流程。或者把数据跟第三方的系统做整合,发邮件等等,这些都是通过PowerAutomate实现的。
我们现在看到的就是PowerAutomate的架构图,最上方就是PowerAutomate提供的三种自动化能力,分别是通过AIbuilder提供支持的AI能力,像是表单识别,OCR,图像识别都可以通过与AIBuilder的集成在流程中实现人工智能。

以上是关于Power automate怎么看批到哪里了?的主要内容,如果未能解决你的问题,请参考以下文章

power automate 写 try catch 怎么获取报错信息

power automate回响

Power Apps 中调用 Automate 工作流

dynamic CRM 在哪里设置用户默认窗格

试用微软 Power Automate

如何使用 Power Automate 在每周计划的时间将 Power BI 可视化打印为 PDF?