调用 U9 接口说明文档目前 U9 开发的接口方式有三种,对应供外部调用的方式也是对应三种。U9 代码逻辑上差别不大。主要差别在第三方调用上。1、旧 ISV 方式:创建服务项目,服务属性是否 ISV(新 ISV)为 False部署方法:执行 SV 的元数据脚本,生成的.SVC 文件部署到..\portal\Services 中,同时在..\portal\Services 中新建与.svc 同名的.config 文件,内容如: 其中 name 节点值为.svc 文件中的对应值,contract 为.svc 文件名称。这种方式创建的 SV,从平台架构上是基于.Net Framwork2.0 开发的,调用方只能通过 WEB服务引用的方式或 SvcUtil 生成代理类的的方式调用。通过服务引用的方式可以使用 catch (System.Web.Services.Protocols.SoapException e)获取具体的抛错信息。WEB 引用的方式:需要注意 WEB 引用的方式对于 Bool 类型、整型类型、Decaiml 类型、Date 等类型赋值时会多出一个 XXXX Specified 的字段只有这个字段为 true,对于的字段赋值才会生效。调用代码示例:以创建生产领料单接口方式示例说明:http://localhost/U9/Services/UFIDA.U9.ISV.MO.ICreateIssue4External.svc特别注意,调用的上下文是 Object 类型,拼接 key Value 值,EnterpriseID、OrgID、UserID 必须给正确值。代理类的方式调用:请参考《第三方调用 U9 服务说明(.net 平台)》文档2、新 ISV 方式:创建服务项目,服务属性是否 ISV(新 ISV)为 False部署方式与上面类同。新 ISV 的调用方式为添加服务引用的方式调用,赋值正常赋值,上下文类型为 ISVContxt,赋值方式: XXX.ISVContext isv = new XXX.ISVContext(); isv.EntCode = "007";//企业编码 isv.OrgCode = "1001";//组织编码 isv.UserCode = "admin";//用户编码但是无法获取后台 thow 抛出的具体错误。3、轻量级服务:轻量级服务开发的接口是 Web API 标准接口,外部系统直接可以 Post 方式调用,不受平台、语言的限制,且在网络因素下,轻量级接口比标准接口(标准接口大多字段较多)传输效率高。新建轻量级服务,开发过程与标准接口开发过程类似(不允许使用系统提供的 DTO 类型),.svc 文件需要部署到 Portal/RestServices 中。调用示例: string strURL = "http://localhost/U9/RestServices/UFIDA.U9.ISV.Mobile.MO.ICreateRcvRptDocCost.svc/Do"; System.Net.HttpWebRequest request; request = (HttpWebRequest)WebRequest.Create(strURL); request.Method = "POST"; request.ContentType = "application/json; charset=utf-8"; //lineDTOs 参数类型为 DTO 的集合对象。故拼接 Json 时需要[],多条数据就是多个{};如果 lineDTOs 在 UBF 定义的类型是 DTO 对象,拼接 Json 时类似 context 的 DTO 拼接方法;如果 lineDTOs 在 UBF 定义的是一个常用类型(如字符串、整数)等,拼接时作为服务的直接参数(示例:\"lineDTOs\":\" 这里是传入的参数值,字符串或整数类型的值\") string ordlist = "[{"; ordlist = ordlist + "\"BarCode\":\"11\",";//条码 ordlist = ordlist + "\"OrgID\":1001612093796434,";//组织 ID (不显示) ordlist = ordlist + "\"DocID\":1001705173284117,";//单据 ID (不显示) ordlist = ordlist + "\"TotalQty\": 2,";//开工带入...