在我上篇blog中讲解到了怎么用代码把O365 users 获取到D365中. 从O365中获取users到D365中
这几天一直在研究flow, 发现flow可以更简单的完成这个功能. 一开始没有考虑用flow是因为flow获取所有用户的方式比较困难, 需要有个workaround (首先需要把所有用户添加到一个group当中,然后获取group member list)
首先我们需要使用Search for users (v2)
只有V2 版本可以直接获取所有的users 在一个list当中.
下面我们需要对这个action做下设置, 打开pagination. 在web api中, 一个user request最多只能显示999条数据. 所以打开pagination 可以获取到大于999的数据.
在下面的threshold我们需要设置显示多少条数据的数字. 这个数字需要大于所有的O365用户数.
我们create record之前, 我们需要做个检查. 如果用户信息已经保存在CRM中,则不需要再次保存,所以我们需要做一个检查.
这里我们不用选apply to each 这个action, 选择 dynamics 365 -> List records 之后会直接生成apply to each. 我们需要在list records 选择 Org, entity.
下一步我们要做检查, 我们这里可以使用 user principle name(UPN)来做检查. emailaddress 是在 entity中对应 UPN的字段, 所以在filter query中 我们需要些 emailaddress eq 'UPN' 这里要注意, UPN需要从Dynamic content中选中, 并且需要单引号括住.
接下来我们需要用一个condition的action来判断是否需要创建 new record
判断条件可以用empty() formula来检查List records 是否为空,
如果为空
则创建新record
如果不为空
则不创建新record