You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除SharePoint三状态工作流任务标题中计算列值前的string;#前缀?

解决SharePoint三状态工作流任务标题中计算列带string;#前缀的问题

我之前也踩过这个SharePoint的坑——计算列在列表视图里显示完全正常,一放到三状态工作流的任务标题里就自动带上string;#前缀,还不能用SharePoint Designer来调整。给你几个不用SPD的实用解决/规避方案:

方案1:优化计算列公式,强制输出纯文本

虽然你试过多种拼接方法,但可以针对选项列的存储特性调整公式,确保输出无编码的纯文本:

  • 基础公式示例:CONCATENATE([Office], " | ", [Position ID])
  • 关键设置:务必将计算列的返回类型设为「单行文本」(不要选「选项」或其他类型)

如果还是出现前缀,试试用TEXT函数把选项列的取值强制转成纯文本格式:

TEXT([Office],"@") & " | " & [Position ID]

TEXT([Office],"@")会直接提取选项列的显示值并转为纯文本,避免工作流读取到SharePoint内部的编码格式。

方案2:用Power Automate同步合并值到普通单行文本列

如果计算列的方法始终行不通,我们可以绕开计算列,用Power Automate(原Microsoft Flow)生成一个干净的文本列:

  1. 在目标列表里新建一个单行文本列,比如命名为Task Title Content
  2. 创建Power Automate流,触发条件设为「当列表项创建或修改时」
  3. 在流中添加「更新项目」动作,把Task Title Content的值设置为:@{triggerBody()?['Office/Value']} | @{triggerBody()?['PositionID']}(其中Office/Value是选项列的显示值字段,PositionID是你单行文本列的内部名称)
  4. 保存流后,新创建或修改的列表项会自动同步合并后的值到这个新列
  5. 最后在三状态工作流的任务标题中选择这个Task Title Content列,就不会出现前缀问题了

方案3:临时规避——修改工作流通知模板(需权限)

如果你有站点集或站点的设计权限,可以直接修改工作流任务通知的显示模板:

  • 找到Workflows\Tasks列表中的对应通知模板
  • 编辑模板内容,添加字符串替换逻辑,把string;#前缀替换为空
  • 比如在模板中使用replace(@title, 'string;#', '')这类语法(具体语法需根据模板类型调整,比如ASPX或HTML模板)

这个方法需要一定权限,但如果前两个方案都不适用,可以尝试。


内容的提问来源于stack exchange,提问作者Joe Marinucci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:22:28