如何在Mule的私有流中获取调用者流名称

Cha*_*ana 1 mule

我有一个私人流程,由许多公共流程共享使用flow-ref.我希望MEL使用Mule 3.3.0 在私有流中获取调用者流名称.那可能吗?

Dav*_*sot 5

当Mule调用私有流时,它不会向事件添加任何属性,flow-ref因此您的选项是:

  • 用于<set-variable>在调用私有流之前使用流名称设置变量并使用以下方法读取此变量#[flowVars.yourVariableName].
  • 使用呼叫流的入站端点作为告知谁正在呼叫的方式.您可以使用带有#[message.inboundProperties.MULE_ENDPOINT]或带有名称的入站端点URL #[message.inboundProperties.MULE_ORIGINATING_ENDPOINT].
  • 创建一个实现FlowConstructAware的自定义MessageProcessor:这样你就可以获得流程名称,并且能够自动将其设置为消息上的调用变量.在此之前将其与所有父流中的元素一起使用.MuleEventcustom-processorflow-ref

  • 男人,看着源代码,似乎**是一个名为`flow`的未记录的MEL变量,但它不清楚它什么时候被束缚而什么时候没有.显然在`logger`中,但不是在`set-variable`中.也许您可以尝试使用表达式组件:它可能会被绑定,因此您可以执行:`expression-component`中的`flowVars.callerFlowName = flow.name`. (3认同)