我们确实在许多流之间共享子流。我想在我的子流程中找到哪个Flow是一个呼叫...
MEL: -#[flow.name]
仅适用于Logger。
我甚至无法将此值传递给Session / Anyother属性(通过set属性连接器),因此我可以使用message.getProperty方法进行访问。
提前致谢。
答案 0 :(得分:1)
尝试制作组件org.mule.api.construct.FlowConstructAware。然后你应该能够得到它的名字。
HTH
答案 1 :(得分:1)
我是我的情况我创建了其他具有VM入站的日志记录流。然后我通过Java组件调用它。请参阅下面的示例代码。
myfile.open("C:/target/test.txt", std::ios::out | std::ios::app);
希望这会有所帮助:)
答案 2 :(得分:1)
您可以使用以下代码获取java组件中的流名称
import org.mule.api.MuleEventContext;
import org.mule.api.construct.FlowConstruct;
import org.mule.api.construct.FlowConstructAware;
import org.mule.api.lifecycle.Callable;
public class LogFlowName implements Callable, FlowConstructAware {
private FlowConstruct flowConstruct;
@Override
public void setFlowConstruct(FlowConstruct flowConstruct) {
this.flowConstruct = flowConstruct;
}
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
//TODO your code goes here
System.out.println("Flow Name is : " +flowConstruct.getName());
//TODO your code goes here
return eventContext.getMessage().getPayload();
}
}
希望这有帮助。
答案 3 :(得分:0)
另一种简单的方法,将其设置为变量,然后在java组件中访问该变量。