Siebel可以调用外部系统的接口,通过WebService的接入方式实现,所在的项目都是通过ESB,其他系统的接口都要经过ESB,由ESB提供WSDL文档,通过Siebel调用。
一、修改Tools的配置文档
因为系统存在Bug,直接导入WSDL文件会有错误,在导入WSDL文件之前需要修改当前的配置文档,在tools.cfg中添加下面的配置:
系统默认的WSDL路径在Tools中的TEMP路径下,如果不填加上面的配置,也可将WSDL文件放到TEMP中,这样导入也不会报错。
二、实现导入
1).创建WebService
2).点击确定,进入下一步
选择项目名称,导入WSDL文件,会在同路径下生成一个同名的XML和LOG文件,这个XML文件很重要,在设置出站WEB服务的时候会用到。
3).点击下一步,直到完成,会自动生成一个BS和两个IO,红框的部分是BS和IO的名称,可以修改成有业务意义的名字。
4).修改IO和BS
一般是将WSDL文件导入SoapUI查看输入参数和返回参数的XML格式,配置两个IO时要完全按照XML的格式进行配置,稍有不同就会出现很难解决的错误,导致调不通接口。
在BS中要注意的地方是BS的UP,在IO中要注意的地方是IC的UP。
三、设置出站信息
1).找到导入WSDL文件时生成的XML。
2).用管理员账号登陆系统,在管理-Web服务中找到出站Web服务。
3).在出站Web服务中,点击导入按钮,导入XML文件,会在该界面生成出站Web服务。
四、调用生成的BS
用WSDL生成的BS在调用的时候需要自己构建参数调用,主要是构建输入参数,构建的方式一般是按照XML的结构从里往外一层层构造,对照输入IO构造。 构造时用到的方法和结构:
var para = TheApplication().NewPropertySet();
para.SetType();
var paralist = TheApplication().NewPropertySet();
paralist.SetType();
paralist.AddChild(para);
按照这样的结构一层一层构造,构建出BS的输入参数。
调用BS:
var bsSev = TheApplication().GetService("BS Name");//BS的名称
bsSev.InvokeMethod("Method", psIn, psOut);//BS中的方法名字,此时就得到了BS的输出参数
得到输出参数:
与构建输入参数的方法相反,获得输出参数的方法是按照输出XML的结构从外到内一层层获取,用到的方法主要是:
var paraOut = psOut.GetChild(0);
这样一层一层下去,直到获取到最后的输出参数。
通过var sValue =paraOut.GetProperty(" 参数名");获取到值。