Message Flow for ESB 3

本文介绍了一个CRM系统中的订单同步模块实现细节,包括订单同步路由标签名称创建及批量开户请求构造过程。涉及Siebel系统与目标系统的数据转换、业务类型设置、信用度转换等关键步骤。
>>>>>>>CRM_Order_Sync
--Order Sync Routing LabelName
CREATE DATABASE MODULE CRM_Order_Sync_RoutingLabelName
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
DECLARE lableName CHARACTER;
SET lableName=
Root.XMLNSC.siebel:SiebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.
siebel:ListOfOrderItem.siebel:OrderItem.siebel:ActionCode;
SET Environment.Variables.OrderTypeLableName=lableName;
CALL Utility.addRouteLabel(LocalEnvironment,lableName);
RETURN TRUE;
END;
END MODULE;


--Build Order Sync Request
/**
*批量开户
**/
CREATE COMPUTE MODULE CRM_Order_Sync_Request
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
SET OutputRoot = InputRoot;

--通过 公共节点 拼成order中相同内容
DECLARE requestMessage REFERENCE TO OutputRoot.XMLNSC.uvs:order.uvs:OrderRequest.uvs:RequestMessage;
--需修改业务类型
SET requestMessage.uvs:MessageBody.uvs:OrderInfo.uvs:TradeType VALUE='CA010';

--创建Body节点
CREATE FIELD requestMessage.uvs:MessageBody;
DECLARE messageBody REFERENCE TO requestMessage.uvs:MessageBody;
--取到 siebel请求来的消息
DECLARE siebelMessage REFERENCE TO Environment.Variables.SiebelMessage;

--信用度 需要 100倍转换
DECLARE acctCredit INTEGER Siebel.Util.convertAcctCreditToCBS(siebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.siebel:CREDITAMOUNT,100);
--账户的付费类型 枚举转换 如果siebel不传固定填1
DECLARE paidMode_o CHARACTER Common.getTransferValue(Siebel.Util.getPaymentType(),FIELDVALUE(siebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.siebel:PaymentType));
IF paidMode_o IS NULL OR paidMode_o = '' THEN
SET paidMode_o=1;
END IF;

--Accts
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.(XMLNSC.Attribute)type='1';
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:acctID=siebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.siebel:ListOfOrderItem.siebel:OrderItem.siebel:BillingAccountNumber;
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:custID=siebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.siebel:AccountNumber;
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:acctCredit=acctCredit;

SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:ParaList.uvs:Para.uvs:paraID='AccountCode';
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:ParaList.uvs:Para.uvs:paraName='AccountCode';
SET messageBody.uvs:Accts.uvs:Acct.uvs:AcctInfoEntity.uvs:Account.uvs:ParaList.uvs:Para.uvs:paraValue=siebelMessage.siebel:ListOfOrder.siebel:ListOfOrderHeader.siebel:Order.siebel:ListOfOrderItem.siebel:OrderItem.siebel:BillingAccountNumber;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值