Message Flow for ESB 3

>>>>>>>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;

你可能感兴趣的:(order)