Lua04 实例列举 ESB2CP的报文转换流程

本文详细介绍了使用Lua进行ESB报文转换的流程,从日志记录、XML到JSON的转换,再到HTTP调用和响应处理。主要步骤包括:日志节点打印变量值、XML字符串转化为XML Document、执行业务逻辑、JSON转XML以及调用外部服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主流程

1、日志节点

流程变量、全局变量的值进行打印。

这里打印:sys.MSG---XML字符流

2、XML节点-转入

将TCP下的字节报文(已转为XML字符串流)转为 XML Document对象

  • 设置入参:待导入的XML字符串---sys.MSG   
  • 设置入参:编码规则---UTF-8  
  • 接收出参:目标存储变量名---esbReqXml

3、执行节点

只有入参,没有出参,可探知是否执行成功。

平台变量怎么使用?

拼接ESB的transCode---ESBIN.transCode。这个是全局变量。

esbservicecode=esbReqXml:getValue("/body/request/MsgHdr/transCode");
ESBIN.transCode =esbservicecode

4、枚举置换(无)

根据输入的ESBIN.transCode获取产品服务ID,覆盖到ESBIN.transCode中。

 5、日志节点(无)

日志打印ESBIN.transCode

  • 设置入参1:编码格式
  •  设置入参2:参数值

 6、JSON节点-转出

输入Xml Document对象,转为Json字符串后导出

  • 设置入参:Xml Document对象---esbReqXml 
  • 设置入参:编码规则---UTF-8  
  • 设置入参:是否去除根节点-0,1去除,0保留。
  • 接收出参:json报文---sys.MSG

7、日志节点

日志打印sys.MSG

8、调用接出节点----调用http

与外部通讯,调用完毕后,应答报文保存在sys.MSG系统变量中。

配置接出节点,关联接出适配器。(服务地址IP/port/transCode+请求方案+并发数)

9、执行节点---重新获取根节点,防止多个根节点(其实没有用)

jsonObj = Json.parse(sys.MSG);
Ebody = jsonObj:getJSONObject("transaction");
sBody = Json.export(Ebody);
print(sBody);

10、JSON节点-转入

将JSON字符串转为XML Document对象

  • 设置入参:待导入的JSON字符串---sBody 
  • 设置入参:编码规则---UTF-8  
  • 设置入参:根节点名---"transaction"
  • 接收出参:XML DOC---respxml

 11、将XML DOC转为XML字符串

  • 设置入参:respxml
  • 设置入参:编码规则---UTF-8  
  • 接收出参:XML 字符串---sys.MSG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良之才-小良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值