如何在Power Automate中从JSON解析后的邮件主题提取参考号并写入SQL?
在Power Automate中从邮件主题提取参考号(用于SQL入库)
你提到的"mid"字符串操作,在Power Automate里对应的是substring函数,结合定位函数就能精准提取主题里的参考号。以下是具体实现方法,分场景说明:
核心逻辑
Power Automate的表达式是处理解析后JSON字段的关键(而非在JSON本身里写语法),你需要基于邮件主题的格式,先定位参考号的起始位置和长度,再用substring提取。
场景1:参考号有固定前缀(如"REF"开头)
假设邮件主题格式为:工单提醒 - REF12345 - 待处理
- 先定位前缀"REF"的起始位置:
indexOf(body('Parse_JSON')?['subject'], 'REF') - 用
substring提取(假设参考号长度为8,即"REF"+5位数字):substring(body('Parse_JSON')?['subject'], indexOf(body('Parse_JSON')?['subject'], 'REF'), 8)
场景2:参考号在固定分隔符之间
假设邮件主题格式为:【客户工单】编号:67890 | 已分配
- 定位分隔符的位置,计算起始点和长度:
// 起始位置:跳过"编号:"(3个字符) add(indexOf(body('Parse_JSON')?['subject'], '编号:'), 3) // 结束位置:找到第二个分隔符" | "的位置 indexOf(body('Parse_JSON')?['subject'], ' | ') // 最终提取表达式 substring( body('Parse_JSON')?['subject'], add(indexOf(body('Parse_JSON')?['subject'], '编号:'), 3), sub(indexOf(body('Parse_JSON')?['subject'], ' | '), add(indexOf(body('Parse_JSON')?['subject'], '编号:'), 3)) )
场景3:参考号长度不固定但有统一分隔符
假设邮件主题格式为:订单确认-REF987654-已发货
用split函数直接拆分主题,取对应位置的元素更简单:
split(body('Parse_JSON')?['subject'], '-')[1]
操作步骤
- 在你的Power Automate工作流中,在「Parse JSON」步骤之后、「SQL插入」步骤之前,添加一个Compose步骤
- 在Compose的「输入」框中粘贴上述对应场景的表达式
- 将Compose步骤的输出,作为SQL数据库中「参考号」列的传入值
内容的提问来源于stack exchange,提问作者Chris Grigg
相关产品推荐
相关产品推荐

