Azure Data Factory ForEach解析QueueMessageList单消息报错求助
解决Azure Data Factory ForEach活动单条队列消息报错问题
问题原因
XML转JSON时,单条<QueueMessage>节点会被解析为对象,多条<QueueMessage>节点则被解析为数组,而ForEach活动的Items参数要求必须传入数组类型,因此单条消息场景下会触发length函数的类型错误。
修正后的表达式
将原有表达式替换为以下动态内容,统一将QueueMessage处理为数组格式:
@if(isArray(json(xml(activity('get_queue_message').output.Response)).QueueMessagesList.QueueMessage), json(xml(activity('get_queue_message').output.Response)).QueueMessagesList.QueueMessage, createArray(json(xml(activity('get_queue_message').output.Response)).QueueMessagesList.QueueMessage))
逻辑说明
- 用
isArray()函数判断转换后的QueueMessage是否为数组类型 - 若为数组(多条消息场景),直接返回原数组,保持原有逻辑正常运行
- 若为对象(单条消息场景),用
createArray()将单个对象包装为单元素数组,满足ForEach活动的数组输入要求
内容的提问来源于stack exchange,提问作者soiryk139
相关产品推荐
相关产品推荐

