我正在使用Message Enricher来调用Web服务并返回外部数据源的部件号。我将该有效负载保存到会话变量中。然后,我在Datamapper中使用查找表来发送当前有效负载'要针对外部数据源引用的部件号(使用xpath)。我能够调用Lookup并传递局部变量,但保存到会话变量中的有效负载没有传递到查找流,因此我的xpath查询将无法工作。
这是Session Variable和Datamapper
<flow>
<enricher target="#[sessionVars['SesVar']]" doc:name="Message Enricher">
<flow-ref name="query-line-details-erpFlow" doc:name="query-line-details-erpFlow"/>
</enricher>
<logger message="Session Var: #[sessionVars['SesVar']]" level="INFO" doc:name="Logger"/>
<data-mapper:transform config-ref="XML_To_XML" doc:name="XML To XML"/>
</flow>
这是查找表逻辑
output.ExternalPart = (isnull(lookup(LookUpPart).get([input.LocalPart])) ? null : lookup(LookUpPart).get([input.LocalPart]).ExternalPart);
最后,这是第二个应该从
访问Session Var的流程<flow>
<logger message="Spit out the var #[sessionVars.SesVar]" level="INFO" doc:name="Logger"/>
</flow>
根据我所做的研究,会话变量未传递传输障碍,因此应该可以从此范围引用它。我也尝试过使用flowVars。
非常感谢任何帮助。