大家好,今天跟大家分享一个flow和SharePoint(SPO)时差的问题。我们前面的博文分享过如何通过flow来制作请假审批工作流,那么如果你的需求是需要申请人填写请假的时间,这个时候你有可能会遇到这个问题。

当FLOW将SPO LIST中的时间获取并发送邮件的时候,邮件中的时间会有时差的问题,此时我们应该如何处理。

首先我们来模拟一下问题的现象(当你的SPO LIST中有一项是需要填写时间的项)

通过下面标黄的时间我们可以清楚的看到,当flow把审批请求通过邮件发送出来的时候时间是有问题的。接下来我们通过flow把时间纠正过来,这个过程需要根据你所处位置的实际情况计算一下时差是差几个小时。

717ed8119f4521a53be41c3d34cc4120.jpg-wh_

ed432a15e0802289542c9b4f215e0224.jpg-wh_

接下来我们调整一下flow的内容把时间修正过来,在获取动态时间前面添加操作。(先获取在使用)这个原则在flow里面基本试用的。

82fb5b7ce74eb428b89231009a61fb72.jpg-wh_

我们现在要做的是修改时间,所以我们的连接器选择“数据操作”

70e5ba749ae4d846c184e770d391f124.jpg-wh_

连接器选择完,我们的操作内容选择“数据操作 - 编辑”

01b5e2ea1455ce131524b84cb6ab2d8d.jpg-wh_

打开“数据操作 - 编辑”后我们按照图中提示,点击“表达式”并在表达式中找到“日期和时间”选择

“addHours(timestamp,hours,format?)”将小时数的整数值添加到传入的字符串时间戳

890d54781b066de806c9d0e8fbfb2aa8.jpg-wh_

当选择完addHours()表达式后,光标会自动跳转到括号内部,此时鼠标点击“动态内容”将我们需要修改的时间添加进来,由于我的环境中SPO LIST项使用的中文所以会获取一串数值,如果你的SPO LIST项是英文的话,看着会舒服一点。

741de598f1ae294287e6ceb2ffc2bf14.jpg-wh_

在动态内容选择完“开始时间”后,会自动跳转回表达式栏,这时我们需要将表达式补充完整。

addHours(triggerBody()?['OData__x5f00__x59cb__x65f6__x95f4_'],-8,'yyyy/MM/dd HH:mm')

分解一下

addHours() 将小时数的整数值添加到传入的字符串时间戳

triggerBody()?['OData__x5f00__x59cb__x65f6__x95f4_']  动态内容中的开始时间

-8 根据实际情况调整时差小时数

yyyy/MM/dd HH:mm 时间格式

接下来我们需要将数据操作做一下重命名,当然了这也不是必须要做的,主要是怕弄混了。

9519af623265698fce04266a92b82686.jpg-wh_

在重命名后,我们要将编辑后的数据添加到“发送审批电子邮件”中,将原有的选项删除掉,换上我们刚刚做好的数据操作

f79b5186080f530c7d8b41e0b2515abd.jpg-wh_

点击更新流,我们本次的调整工作就完成了,我们来看一下效果

abb5338de2639caec0c8708b18a88685.jpg-wh_

504ea3289cc018dee013d8e78aafb2ba.jpg-wh_

好的,通过我们上面的调整已经可以看到现在邮件中的时间已经与SPO LIST中的时间一致了。本次分享与之前的分享多了一个表达式的使用,大家有时间可以看一下表达式的内容可以为我们的flow增加很多多样性。