IBM WMB 使用方法

第一部分; webservice 调用 webservice

注意:webservice一般传来的是字符串(具体情况要看DEBUG中的数据数值)
一般队列传过来的xml消息不需要转化成逻辑树(ROW格式)
BROKER SCHEMA gen
CREATE COMPUTE MODULE funMain_Request_Response_CALL_HIS_ZZYY
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
–将MsgId赋值给CorrelId,Environment逻辑树主要用于存储配置信息
SET Environment.MQMD.CorrelId=InputRoot.MQMD.MsgId;
SET Environment.Encoding = InputRoot.Properties.Encoding;
SET Environment.CodedCharSetId = InputRoot.Properties.CodedCharSetId;
–命名空间在与区别相同的结构
DECLARE ws NAMESPACE ‘http://provide.ws.hosws.greatsoft.net/‘;
DECLARE ns NAMESPACE ‘http://his_zzyy‘;
–获得message逻辑树中InputRoot.XMLNSC.ns:funMain.input中的节点的值为传入队列或者传入webservice的多有数据
DECLARE inputString CHAR InputRoot.XMLNSC.ns:funMain.input;
–将输入string转成XML逻辑树才能指定节点赋值,不然就是整体一个字符串怎么指定字节
–具体顺序是 传进来的是inputString(CHAR)然后转换成subBitStream(BLOB)最后转化成myRow(ROW)如下:
DECLARE subBitStream BLOB;
DECLARE myRow ROW;
SET subBitStream = CAST(inputString as BLOB CCSID 1208);
CREATE LASTCHILD OF myRow DOMAIN (‘XMLNSC’)
PARSE(subBitStream,Environment.Encoding,Environment.CodedCharSetId);
–通过Fid来判断服务并调用相应的webservice
declare who char myRow.XMLNSC.ESBEntry.MessageHeader.Fid;
–并且把调用的webservice所需的字符串赋值
DECLARE wholeMsgChar CHAR myRow.XMLNSC.ESBEntry.MsgInfo.Msg;
IF who = ‘MS02004’ THEN
SET OutputRoot.XMLNSC.ws:QueryPatientInfoXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘MS02005’ THEN
SET OutputRoot.XMLNSC.ws:GetDeptListXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘MS02006’ THEN
SET OutputRoot.XMLNSC.ws:GetDoctorListXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘BS10035’ THEN
SET OutputRoot.XMLNSC.ws:ReserveXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘BS10038’ THEN
SET OutputRoot.XMLNSC.ws:GetTicketListXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘BS10036’ THEN
SET OutputRoot.XMLNSC.ws:CancelReserveXML.ws:strxml = wholeMsgChar;
ELSEIF who = ‘BS10037’ THEN
SET OutputRoot.XMLNSC.ws:GetReserveHistoryXML.ws:strxml = wholeMsgChar;
END IF;
–结束并输出到out节点(终端)
PROPAGATE TO TERMINAL ‘out’;
RETURN FALSE;
END;

END MODULE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值