如何在Microsoft Bot Framework Composer中用Loop遍历逗号分隔ID字符串
解决Bot Framework Composer中Loop遍历拆分ID数组的问题
问题根源
你拆分后的ID数组被意外包裹在带lgType和text的Activity对象中,而非直接返回纯数组,导致Loop无法正确识别遍历目标。
正确配置步骤
修正数组获取逻辑
确保直接拿到纯ID数组:- 先测试拆分结果:在「Send a response」中输出
${split(turn.activity.value.people, ',')},如果显示纯数组格式["97d76b2-4be8-4571-bc35-1e2d61ee", "0e51155-e277-4b51-bad0-750db266"],则直接用该表达式作为Loop遍历源。 - 如果输出仍为带
lgType的对象,调整表达式为${split(turn.activity.value.people, ',').text},提取内部的ID数组。
- 先测试拆分结果:在「Send a response」中输出
配置Loop组件
- 在Composer画布添加「Loop」组件,选择「For each item in an array」模式。
- 在「Array」输入框填入修正后的表达式,例如
split(turn.activity.value.people, ',')。 - 设置「Item」变量名(比如
currentId),Loop内部可通过${currentId}访问当前遍历的ID。 - 在Loop内部添加需要执行的操作(如发送ID提示、调用业务接口等)。
排查NotFound错误
若仍报错,检查:- Loop内部操作是否引用了不存在的变量、API端点或资源。
turn.activity.value.people是否存在且为有效的逗号分隔字符串,避免拆分出空数组或无效元素。
内容的提问来源于stack exchange,提问作者mercer
相关产品推荐
相关产品推荐

