Logic App:如何基于当日日期从SharePoint列表获取项
步骤1:设置定时触发
- 添加「Recurrence」触发器,配置为每周运行一次,指定具体运行时间(比如每周一上午9点)。
步骤2:生成当日日期匹配格式
- 添加「Compose」动作,用表达式生成与SharePoint「Date」列格式一致的当日日期字符串:
- 若SharePoint列是纯日期类型(无时间),表达式:
formatDateTime(utcNow(), 'yyyy-MM-dd') - 若列包含时间,需覆盖全天范围,可额外生成当日起始/结束时间:
- 起始时间:
formatDateTime(utcNow(), 'yyyy-MM-ddT00:00:00Z') - 结束时间:
formatDateTime(utcNow(), 'yyyy-MM-ddT23:59:59Z')
- 起始时间:
- 时区适配:如果SharePoint用本地时区而非UTC,需转换时区,比如中国时区:
formatDateTime(convertFromUtc(utcNow(), 'China Standard Time'), 'yyyy-MM-dd')
- 若SharePoint列是纯日期类型(无时间),表达式:
步骤3:筛选SharePoint列表项
- 添加「Get items」动作,连接目标SharePoint站点和列表。
- 在「Filter Query」字段写入筛选条件:
- 纯日期列:
Date eq '@{outputs('Compose')}'(替换Date为列的内部名称) - 含时间的列:
Date ge '@{outputs('Compose_起始时间')}' and Date le '@{outputs('Compose_结束时间')}'
列内部名称查看方式:进入列表设置→点击目标列→URL最后一段即为内部名称(可能是编码后的字符串,比如
_x00e6__x009c__x00e5__x008f__) - 纯日期列:
步骤4:提取邮箱地址
- 添加「Select」动作,数据源选择「Get items」输出的
value。 - 在映射区域,设置键为「邮箱地址」,值选择列表项中对应的邮箱列(比如
item()?['Email'],替换为邮箱列的内部名称)。 - 可选:添加「Join」动作,将提取的邮箱地址合并为逗号分隔的字符串,方便后续批量操作(如发送邮件)。
关键注意事项
- 必须使用SharePoint列的内部名称编写筛选条件,显示名可能无法生效。
- 时区不一致时务必做转换,避免因UTC与本地时间差导致筛选结果错误。
内容的提问来源于stack exchange,提问作者user2600700
相关产品推荐
相关产品推荐

