五:webservice通讯协议——用户登录交易

一、新建项目参考:https://www.cnblogs.com/it-mh/articles/9983696.html

二、增加DTA参考:https://www.cnblogs.com/it-mh/articles/10516519.html

三、增加ALA参考:https://www.cnblogs.com/it-mh/articles/10516698.html

四、一个完整交易:https://www.cnblogs.com/it-mh/articles/10516806.html

1.     JFDesign透视图,资源树的starringv6DEMO环境->系统架构设计,从右侧画板的发起点栏中选择“同步源DAT”放在主区域的第一列,编辑改部件名称:WEBSERVICE,描述:WEBSERVICE。选择webservice协议;从右侧画板的连接线栏里选择“连接线”连接WEBSERVICE->中间业务,保存界面。

2.     JFDesign透视图,资源树的starringv6DEMO环境->通讯适配器->WEBSERVICE->服务定义,新增一条服务定义,服务名:MNG000;服务描述:用户登录。

3.     添加数据字典:JFBuilder透视图,资源数starringv6DEMO环境->数据字典,资源列表右键新增数据字典

 数据字典名称:ID;数据字典描述:序号;中文名:序号;数据类型:Int;数据最大长度:4

数据字典名称:PWD;数据字典描述:密码;中文名:密码;数据类型:String;数据最大长度:10。

数据字典名称:FaultCode;数据字典描述:返回码;中文名:返回码;数据类型:String;数据最大长度:20。

数据字典名称:FaultString;数据字典描述:返回信息;中文名:返回信息;数据类型:String;数据最大长度:80。

4.     JfBuilder透视图,资源树starringv6DEMO环境->数据对象,

右键新增数据对象,名称:MNG000_RequestBody;描述:MNG000请求结构体,XML标签:RequestBody。在下面的子项列表中增加两个子项,第一个子项属性名称:userid;描述:用户id;类别:数据字典;类别名称:ID;其余默认。第二个子项属性名称:userpwd;描述:密码;类别:数据字典;类别名称:PWD;其余默认。

新增数据对象,名称:MNG000_ResponseBody;描述:MNG000响应结构体,XML标签:ResponseBody。在下面的子项列表中增加三个子项,第一个子项属性名称:returncode;描述:返回码;类别:数据字典;类别名称:FaultCode;其余默认。第二个子项属性名称:returnmsg;描述:返回信息;类别:数据字典;类别名称:FaultString;其余默认。第三个子项属性名称:usrpwd;描述:用户密码;类别:数据字典;类别名称:PWD;其余默认。

新增数据对象,名称:MNG000_IN;描述:MNG000_IN,XML标签:MNG000_IN。在下面的子项列表中增加两个子项,第一个子项属性名称:RequestBody;描述:请求报文;类别:数据对象;类别名称:MNG000_RequestBody;其余默认。第二个子项属性名称:requestNO;描述:请求序号;类别:数据字典;类别名称:ID;其余默认。

新增数据对象,名称:MNG000_OUT;描述:MNG000_OUT,XML标签:MNG000_OUT。在下面的子项列表中增加一个子项,子项属性名称:ResponseBody;描述:响应报文;类别:数据对象;类别名称:MNG000_ResponseBody;其余默认。

5.     JfBuilder透视图,资源树starringv6DEMO环境->通讯适配器->WEBSERVICE->报文格式,右键新增报文。

[格式]Tab页中名称:MNG000_IN_SUB;描述:MNG000交易输入子报文;报文类型:SOAP;数据对象:MNG000_RequestBody。[格式项]Tab页中将数据元userid和userpwd直接添加到报文格式项上。

新增报文格式,[格式]Tab页中名称:MNG000_OUT_SUB;描述:MNG000交易输出子报文;报文类型:SOAP;数据对象:MNG000_ResponseBody;[格式项]Tab页中将数据源returncode、returnmsg、userpwd直接添加到报文格式项上。

新增报文格式,[格式]Tab页中名称:MNG000_IN;描述:MNG000交易输入报文;报文类型:SOAP;数据对象:MNG000_IN;[格式项]Tab页中将子报文格式RequestBody、requestNO直接添加到报文格式项上。注意:添加子格式时,先选中对应数据对象中的子数据对象,点击进入子格式选项,在下方数据或子格式选项列表中选中对应报文

新增报文格式,[格式]Tab页中名称:MNG000_OUT;描述:MNG000交易输出报文;报文类型:SOAP;数据对象:MNG000_OUT;[格式项]Tab页中将子报文格式ResponseBody直接添加到报文格式项上。

6.     JfBuilder透视图,资源树starringv6DEMO环境->通讯适配器->WEBSERVICE->服务处理,双击资源列表上的MNG000服务进行编辑,[常规]Tab页接收报文:MNG000_IN;发送报文:MNG000_OUT。

 

7.     JFDesign透视图,资源树DEMO环境->中间业务->模块关系设计,编辑中间业务模块关系。新建一个子业务,名称:USER_MANAGE,描述:用户登录。用连接线连接WEBSERVICE->用户登录,保存界面。

8.     JFDesign透视图,资源树starringv6DEMO环境->中间业务->用户登录->服务定义,新增一条服务定义,服务名称:MNG000;服务描述:用户登录。

9.     JfDesign透视图,资源树starringv6DEMO环境->通讯适配器->WEBSERVICE->服务依赖,新增一条服务依赖,选中列表上的MNG000服务右键新增,组件列选择USER_MANAGE,服务码列选择MNG000,保存界面。

10.     JFDesign透视图,资源树starringv6DEMO环境->中间业务->数据模型设计->数据库表,新增一条数据库表设计。[表属性]Tab页的[表USERINFO,描述:用户]Tab页按如下图创建表字段

[数据对象]Tab页按如下图设置,然后保存界面。

JFConfig透视图,资源树系统管理->平台管理->运行系统参数配置->数据源信息,右键新增一条数据源信息。

 

11.        JFConfig透视图,资源树系统管理->平台管理->运行系统参数配置->数据域配置,新增一条数据域信息。并在机器信息->机器操作数据域上选择mydemo数据域

12.     JFBuilder透视图,资源树starringv6DEMO环境->中间业务->数据对象,新增一个数据对象。名称:USERINFORETUREN;描述:USERINFORETUREN;XML标签:USERINFORETUREN;在下面表格中添加两个子项,第一个子项属性名称:returncode;描述:返回码;类别:数据字典;类别名称:FaultCode;其余默认。第二个子项属性名称:returnmsg;描述:返回信息;类别:数据字典;类别名称:FaultString;其余默认。

13.1     JFBuilder透视图,资源树starringv6DEMO环境->中间业务->用户登录->逻辑处理,双击资源列表上的MNG000服务进行编辑。[属性]Tab页里的操作数据域选择mydemo

[输入输出]Tab页里输入数据对象选择MNG000_RequestBody;输出数据对象选择USERINFORETURN。

 

[数据库]Tab页的[数据库表]Tab页选择左侧资源树上数据库表下的USERINFO节点然后点击“增加”按钮添加到右侧列表。

[数据库]Tab页的[SQL]Tab页中选中资源树上的“selectOneUSERINFO”节点。

13.2   

1)切换下方Tab页至[流程模板],添加一个数据库部件。设置该数据库部件的属性,部件名称:USERINFO;部件描述:selectUser;sql名字:selectOneUSERINFO;前处理:$USERINFO.ID = $MNG000_RequestBody.userid;

$USERINFO.PWD = $MNG000_RequestBody.userpwd;

2)添加一个“IF”容器部件至刚才的数据库部件下方,编辑部件属性,部件名称:IfUserIsExist;部件描述:IfUserIsExist;判定表达式:com.adtec.starring.util.StringTool.isNullOrEmpty($USERINFO.NAME);

3)添加一个“计算处理”基础部件至IF部件内,编辑部件属性,部件名称:ExprNotExist;部件描述:Expr1;计算处理表达式:

$USERINFORETUREN.returncode="10000";

$USERINFORETUREN.returnmsg="用户不存在";

4)添加一个“IF”容器部件至上一个“IF”容器部件下方,编辑该部件属性,部件名称:IfPwd;部件描述:If2;判定表达式:$MNG000_RequestBody.userpwd == TRIM($USERINFO.PWD)。

5)添加一个“计算处理”基础部件值IF部件内,编辑该部件属性,部件名称:exprSuccess;部件描述:Expr2;计算处理表达式:

$USERINFORETUREN.returncode="00000";

$USERINFORETUREN.returnmsg="登陆成功";

6)在IfPwd部件上右键新增一个Else部件

7)在该Else部件下添加一个“计算处理”基础部件,编辑该部件属性,部件名称:ExprPwdError;部件描述:Expr3;计算处理表达式:

$USERINFORETUREN.returncode="10001";

$USERINFORETUREN.returnmsg="密码错误";

 

 

Ctrl+s保存。

注:多个表达式中间需要用分号“;”隔开,最后一个表达式后可不带“;”

14.     JFBuilder透视图,资源树starringv6DEMO环境->通讯适配器->WEBSERVICE->数据映射,新增一条数据映射。目的方选择“USER_MANAGE|组件”,源服务选择MNG000,目的服务选择MNG000。

输入Tab页中MNG000_IN.ResquestBody下的userid映射到MNG000_ResquestBody的userid, MNG000_IN.ResquestBody下的userpwd映射到MNG000_ResquestBody的userpwd。

输出Tab页中MNG000_OUT.ResquestBody下的returncode映射到USERINFORETURN的returncode, MNG000_OUT.ResquestBody下的returnmsg映射到USERINFORETURN的returnmsg。

15.     JFBuilder透视图,资源树starringv6DEMO环境->通讯适配器->WEBSERVICE->路由定义,新增一条路由。

[规则属性]Tab页,名称:MNG000;路由类型:请求路由。服务名匹配:MNG000;路由表达式:1。

[入口]Tab页,新增一条入口信息,描述:MNG000;匹配模式:1;目标DTA:USER_MANAGE|ALA;服务名:MNG000。点击新增按钮新增一条入口信息。点击确定保存界面信息。

16.     配置机器信息

此处需要添加两个机器信息,一个是DTA机器信息,一个是中间业务机器信息。

JFConfig-->平台管理-->运行系统参数配置->通讯适配器->双击WEBSERVICE->机器参数

JFConfig-->平台管理-->运行系统参数配置->中间业务->双击用户登录->机器参数

17.     JFBuilder透视图,双击WEBSERVICE通讯适配器,增加导出WSDL文件名字空间缩写:adtec

18.     JFBuilder视图:资源树DEMO环境->WEBSERVICE通讯适配器->服务处理,右键点击MNG000服务,点击下方的“导出WSDL”按钮,将WSDL文件导出至指定位置。利用SOAPUI工具打开导出的WSDL文件(左侧栏Projects->右键New soapUI Project),生成SOAP报文(把生成的xml文件内补充完整,即把占位符“?”替换成数据),点击运行(右侧栏:点击绿标运行),验证交易正确性。

 

 

posted @ 2019-03-13 15:33  !O0O!  阅读(880)  评论(0)    收藏  举报