Power Automate中如何进行分页处理

对于单次查询数据量比较多的情况下,通常我们会进行分页处理,那么在PowerAutomate中要如何实现呢

默认情况下,Power Automate中Dataverse查询列表记录单次最多5000行,但是如果想查询查过5000行,可以在设置中启用分页,并将阈值设置为100,000,这是所能设置的最大阈值

 

 

 

 

需要注意的是,100k行时目前所能查询的最大行,因此还需要其他的分页方法

下面以调用Action和执行fetchxml两个示例说明

Action分页

首先如何调用Action实现分页查询,目前在PP上Action的执行时间都受2分钟超时的限制,因此对于数据量多的查询,需要进行分页处理

我们初始化三个变量PageIndex、PageSize、hasmore,分别为页码、每页条数、是否有更多数据

然后使用do until控件,条件设置为当hasmore变量为false时不再循环,在循环里面使用Datavers连接器调用action执行分页查询,

在action中我们设置了传出参数是否存在数据,赋值给hasmore变量,并且对PageIndex进行增量+1处理

 

 FetchXml分页

通过fetchxml分页查询也是,由于使用fetchxml单次查询上限5000条,所以也是需要分页的

这边我们初始化两个变量:pageIndex和pageCookie

 

 

 

使用do until控件,循环直至pageindex不等于1并且pageCookie为空时停止

循环条件:

and(not(equals(variables('pageIndex'), 1)), empty(variables('pageCookie')))

  

 

 

 

 

 

pageCookie获取方法:

if
(
	empty(outputs('List_rows_')?['body']?['@Microsoft.Dynamics.CRM.fetchxmlpagingcookie']),
	'',
	replace
	(
		replace
		(
			replace
			(
				decodeUriComponent
				(
					decodeUriComponent
					(
						first(split(last(split(outputs('List_rows_')?['body']?['@Microsoft.Dynamics.CRM.fetchxmlpagingcookie'], 'pagingcookie="')), '" '))
					)
				),
				'<', '<'
			),
			'>', '>'
		),
		'"','"'
	)
)

  

 

posted @ 2022-05-20 11:30  西伯利亚小菜鸟  阅读(863)  评论(0)    收藏  举报