如何在PowerAutomate中提取SharePoint列表创建者公司名称前4位
问题分析
你之前的表达式失败,核心原因通常是两个:
- 触发输出的路径未做空值容错,或
CreatedBy相关字段的键名大小写不匹配 - 使用
Search for User (V2)时,未处理返回的数组结构(该动作返回用户数组,需取第一个匹配项)
可行解决方案
方案1:直接从触发输出提取(无需额外动作)
先在Power Automate中点击触发动作的「查看输出」,确认CreatedBy节点下CompanyName的键名(通常首字母大写)。使用带空值容错和边界处理的表达式:
if( not(empty(triggerOutputs()?['body']['CreatedBy']['CompanyName'])), if( length(triggerOutputs()?['body']['CreatedBy']['CompanyName']) >= 4, substring(triggerOutputs()?['body']['CreatedBy']['CompanyName'], 0, 4), triggerOutputs()?['body']['CreatedBy']['CompanyName'] ), '' )
方案2:使用Search for User (V2)动作
- 添加
Search for User (V2)动作,将「搜索查询」设为创建者的邮箱:triggerOutputs()?['body']['CreatedBy']['Email'] - 提取公司名并截取前4字符(注意取数组第一个元素):
if( not(empty(outputs('Search_for_User_(V2)')?['body/value'])), if( length(outputs('Search_for_User_(V2)')?['body/value'][0]['CompanyName']) >=4, substring(outputs('Search_for_User_(V2)')?['body/value'][0]['CompanyName'], 0, 4), outputs('Search_for_User_(V2)')?['body/value'][0]['CompanyName'] ), '' )
验证步骤
- 在Power Automate编辑器中点击表达式输入框旁的「测试」按钮,运行一次流
- 查看相关动作的输出,确认公司名是否被正确提取和截取
- 测试公司名为空、长度小于4的场景,确保表达式不会报错
内容的提问来源于stack exchange,提问作者Hathefah Al-Sharami
相关产品推荐
相关产品推荐

