整体思想为DataVerse里创建一条记录,记录包含对应的固定Powerautomate(A)的启动时间,当这条记录里设置的启动时间发生变化时,触发更改Powerautomate(A)启动时间的另一个Powerautomate(B),在Powerautomate(B)里,先取得Powerautomate(A)的定义,再把定义里的启动时间更新为记录的时间。
前边触发的部分略,Powerautomate(A)的取得使用Power Automate Management的Get Flow,返回值里包含了Flow的定义definitionSummary
Power Automate Management - Connectors | Microsoft Learn
通过Parse JSON和Compose,以及setProperty function来更新Flow的定义里边的startTime,
方便后边的更新,把Flow定义的json解析,这里先执行一次,取得返回的json内容,再用sample解析
由于setProperty只能设定一层,所以这里需要逐层设定,直到更新了定义为止
Reference guide for expression functions - Azure Logic Apps | Microsoft Learn
先更新recurrence里的startTime值
@{setProperty(body('JSON_の解析')?['triggers']?['開始']?['recurrence'],'startTime','2022-08-30T00:00:00Z')}
再更新trigger名为【開始】里的recurrence
@{setProperty(body('JSON_の解析')?['triggers']?['開始'],'recurrence',outputs('作成_3'))}
更新triggers
@{setProperty(body('JSON_の解析')?['triggers'],'開始',outputs('作成_4'))}
更新Flow的定义definition(这里包含的Flow的全部内容)
@{setProperty(outputs('フローの取得')?['body/properties/definition'],'triggers',outputs('作成_5'))}
Flow的定义更新后,就可以使用UpdateFlow来更新Flow了,
Flow定义设定:@{outputs('作成_6')}
Power Automate Management - Connectors | Microsoft Learn