我有一个json作为来自InvokeHTTP的响应,如下所示:
{
"id": "1234567890",
"status": "completed",
"others": "abc",
"field": "1"
}
我想使用一个处理器(可能是RouteOnAttribute??)来检查响应的状态是否完成,如果不匹配,它会返回invokeHttp再次检查状态。
我试过这个东西:EvaluateJsonPath(从json中提取id)-〉InvokeHTTP(获取状态)-〉RouteOnAttribute(完成后检查状态)
- 〉匹配进入漏斗
- 〉unmatch再次进入EvaluateJsonPath(创建循环)
InvokeHTTP需要原始json文件,因为需要获取请求id。
- 〉unmatch再次进入EvaluateJsonPath(创建循环)
我使用了具有以下属性的Route to属性名称:status - ${status:equals('completed ')}
不幸的是,我总是收到一个un-match,即使状态已完成。
问题出在哪里?
2条答案
按热度按时间yqkkidmi1#
我已经建立了虚拟流,检查你的情况下,看到没有问题.这里是流程:x1c 0d1x这里的关键点:
1.在顶部EvaluateJsonPath中,我使用flowfile-attribute作为目标,并添加新属性- status
1.在RouteOnAttribute i中检查状态
的值
1.在底部EvaluateJsonPath中,i提取id,并使用flowfile-content
作为目的地
gcmastyq2#
在EvaluateJsonPath中,您需要设置
属性值
状态状态