第三方调用U9服务(DotNet平台)一、业务场景PLM(PDM)系统和U9ERP系统整合,PLM设计完产品后需要传入到U9ERP系统,比如要传入厂牌,料品,BOM等基础信息二、引用U9服务以创建料品服务为例,UFIDA.U9.ISV.Item.BatchCreateItemByDTOSRVa)验证服务是否可用如果能显示显示下面的图片说明服务没有问题b)生成代理类若使用VisualStudio2005则需要先下载SvcUtil.exe在命令行输入SvcUtilhttp://localhost/portal/services/UFIDA.U9.ISV.Item.IBatchCreateItemByDTOSRV.svc/serializer:DataContractSerializer如下图所示:输入命令后输出的不上上图格式则重新再试或查看第一步服务地址是否正确c)构架项目1.用VS新建项目,2.把代理类和配置文件加到项目中3.修改output.config名称为app.config4.添加System.Runtime.Serialization.dll和System.ServiceModel.dll引用如下图所示如果一个项目中需要用到调用多个服务,则需要合并代理类和配置文件,请参考合并代理类说明文档三、项目实现细节a)调用服务框架代码//实例化代理类UFIDAU9ISVItemIBatchCreateItemByDTOSRVClientclient;client=newUFIDAU9ISVItemIBatchCreateItemByDTOSRVClient();UFIDAU9CBOSCMItemItemMasterData[]returnItems;//服务返回结果UFSoft.UBF.Exceptions.MessageBase[]returnMsg;//返回异常信息,目前还没有使用此属性objectcontext;//上下文信息UFIDAU9ISVItemItemMasterDTOData[]itemMasterDtos;//传入参数try{context=CreateContextObj();//给上下文信息赋值itemMasterDtos=SetItemMasterDtos();//给传入参数赋值returnItems=client.Do(outreturnMsg,context,itemMasterDtos);//服务调用}catch(Exceptionex){//异常信息捕获thrownewException(GetExceptionMessage(ex));}b)上下文信息///
///给上下文信息赋值//////
privatestaticThreadContextCreateContextObj(){//实例化应用上下文对象ThreadContextthContext=newThreadContext();System.Collections.Generic.Dictionary