如何在Sterling Integrator中读取.rfh文件的RFH2头至流程数据/主文档?
解决Sterling Integrator中RFH2头读取与流程数据写入问题
我之前帮不少用户解决过Sterling Integrator里RFH2头解析的问题,结合你描述的场景——RFH头在RFH Util的other文件夹、用WSMQ服务拿不到头信息,给你整理一套可行的解决方案:
1. 修正MQRFH2服务的核心配置
你提到已经尝试过MQRFH2服务,大概率是关键配置项没设对,重点检查这几个:
- Decode Mode:必须设为
Decode,只有这样服务才会解析输入的RFH2结构,而不是编码 - Process "Other" Folder:这个选项一定要勾选!因为你的RFH头在
other文件夹下,默认配置不会解析这个目录的属性,这是很多人踩的坑 - Target Location:根据你的需求选
Process Data或Primary Document:- 选
Process Data的话,建议指定一个根节点(比如/RFH2Headers),后续用XPath调用更清晰 - 选
Primary Document的话,解析后的RFH2头会替换原主文档为XML结构
- 选
2. 调整WSMQ Get Messages服务的配置
默认情况下,Get Messages服务只会提取消息体,不会携带RFH2头,需要开启两个选项:
- Include MQMD Headers:开启后会把MQ的元数据带入流程,为RFH2解析提供基础
- Pass RFH2 Headers to Process:这个选项会让服务完整传递RFH2头结构,而不是丢弃,确保MQRFH2服务能拿到完整的头数据
3. 验证解析结果
配置完后跑一次流程,在流程监控里查看Process Data:
- 如果写入Process Data,你会看到
/RFH2Headers/other/[你的属性名]这样的节点,和RFH Util里的结构对应 - 如果写入Primary Document,主文档会变成包含RFH2结构的XML,直接查看就能确认
4. XPath调用示例
假设你把RFH2头写入了Process Data的/RFH2Headers节点,后续服务中调用other文件夹下的属性时,XPath可以这么写:
//RFH2Headers/other/YourTargetProperty
如果是主文档里的结构,XPath简化为:
//other/YourTargetProperty
5. 常见排查点
如果还是看不到RFH2头,检查这几个地方:
- 确保MQRFH2服务在
Get Messages服务之后执行,必须先拿到完整消息再解析 - 用RFH Util重新验证你的.rfh文件,确保
other文件夹下的属性没有损坏或格式错误 - 检查Sterling Integrator版本,部分老版本对
other文件夹的RFH2解析需要补丁,建议查阅对应版本的官方文档
内容的提问来源于stack exchange,提问作者DNBeritcss
相关产品推荐
相关产品推荐

