以下是sba.pr协议规则文件中2个协议处理的描述.
通过本示例可以了解如何使用l编写xml协议处理脚本,取代编写c++代码。
使用xml协议规则文件的具体的局限和缺陷后续给出。
1.示例
7150-Request:演示如何insert
7151-Request:演示如何查询数据,有条件
<?xml version="1.0" encoding="gb2312" standalone="yes" ?> <protocol> <msgs> <!--@加入购物车 --> <msg id="7150" type="5" desc="加入购物车"> <parameters> <parameter> <name>EId,UserID,CoEId,GoodsID</name> <comment>企业ID,用户ID,供应商ID,商品ID</comment> <type>1</type> <!-- 整型 --> <nullable>false</nullable> <!-- 不允许为空 --> </parameter> <parameter> <name>SKUNum,PKNum</name> <comment>单品数,整装数</comment> <type>1</type> <nullable>true</nullable> <!--允许为空 --> </parameter> <parameter> <name>handlerid</name> <comment>HandlerID</comment> <type>3</type> <!--字符串类型 --> <nullable>false</nullable> </parameter> </parameters> <script> <action>1</action> <!--必须参数 动作1-Insert 2-update 3-delete 4-query --> <table>t_Ven_ShoppingCart</table> <!--除action=4外,必须有此参数 --> <vars> <var>curdate=DATE()</var> <!-- 定义变量curdate,取值DATE()函数,获取当前时间--> </vars> <field_bind> <!-- 字段绑定参数和字段的绑定,如果action=4则不需要此节点 --> <field> <name>EId,GoodsID,SKUQty,PackQty</name> <method>1</method> <!-- 绑定方式: 1-参数值 2-参数编码表 3-常量 4-变量--> <value>EId,SKUNum,PKNum</value> </field> <field> <name>AddTime</name> <method>4</method> <!-- 绑定方式: 1-参数值 2-参数编码表 3-常量 4-变量--> <value>curdate</value> </field> </field_bind> <result> <parameters> <!-- 需要显式返回的参数--> <parameter> <name>handlerid</name> <method>1</method><!-- 参数计算方式 1-引用原来的同名参数 2-... 3-变量--> </parameter> </parameters> </result> </script> </msg> <!--@查询购物车(简版) --> <msg id="7151" type="5" desc="查询购物车(简版)"> <parameters> <parameter> <name>EId,TopNum</name> <comment>企业ID,查询记录数</comment> <type>1</type> <!-- 1-整数 2-浮点数 3-字符串 4-日期 5-时间 6-日期时间 7-bool(0或1) 8-二进制数据 9-set(集合)--> <!--默认:字符串--> <nullable>false</nullable> </parameter> </parameters> <script> <action>4</action> <!--必须参数 动作1-Insert 2-update 3-delete 4-query --> <select> <cmd> <when>select top @TopNum d.eid,d.ename,a.objectid,a.goodsid,b.brandid,brandname,stype,spec,skuqty as skunum,packqty as pknum,addtime from t_ven_shoppingcart a,t_bas_mygoods b,t_bas_brand c,t_sys_org d where a.coeid=b.eid and a.goodsid=b.goodsid and b.brandid=c.brandid and d.eid=a.coeid and a.eid=@EId and userid=@UserID and a.status=0</when> </cmd> </select> <result> <method>1</method> <!-- 1-以行集形式返回 2-以参数形式返回 --> </result> </script> </msg> </msgs> </protocol>
2.协议定义
对应的协议定义如下.
。加入购物车
协议名称 |
加入购物车 |
||
协议编号 |
7150 |
||
通信模式 |
请求-确认 |
||
请求内容 |
参数 |
||
参数 |
说明 |
||
企业ID |
EId |
|
|
用户ID |
UserID |
|
|
供应商ID |
CoEId |
|
|
商品ID |
GoodsID |
|
|
单品数 |
SKUNum |
|
|
整装数 |
PKNum |
|
|
返回内容 |
参数 |
||
说明 |
|||
|
|
|
。查询购物车
协议名称 |
查询购物车 |
||
协议编号 |
7151 |
||
通信模式 |
请求-确认 |
||
请求内容 |
参数 |
||
说明 |
|||
企业ID |
EId |
|
|
用户ID |
UserID |
|
|
查询记录数 |
TopNum |
|
|
返回内容 |
参数 |
||
说明 |
|||
|
|
|
|
购物车商品列表 |
|||
列 |
说明 |
||
供应商ID |
EId |
|
|
供应商名称 |
EName |
|
|
记录编号 |
ObjectID |
|
|
商品ID |
GoodsID |
|
|
商品名称 |
GoodsName |
|
|
品牌ID |
BrandID |
|
|
品牌名称 |
BrandName |
|
|
型号 |
SType |
|
|
规格 |
Spec |
|
|
单品数 |
SKUNum |
|
|
|
|
|
|
整装数 |
PKNum |
|
|
|
|
|
|
|
|
|
|
加入时间 |
AddTime |