U9二次开发之轻量服务项目开发

最近公司要开发一个下载图纸的U9轻量级接口,轻量级接口就是restful api,可以直接通过get、post等方式调用,参数的传送和结果的返回都使用JSON格式,用起来比Webservice接口爽多了。

如果是开发新的接口,我建议都用轻量级接口的方式来开发,具体的开发过程如下。

1、打开UBFSudio,新建一个解决方案,勾选轻量服务项目,填写好项目名称,点确定按钮。

2、删除自带的ubfsvr文件:

3、点击属性按钮,修改名称:


4、新建业务组件

右键项目--新建,选择业务操作组件,填写组件名称,点确定按钮:

5、选择模型视图,双击项目,打开操作页面:

6、拖动服务按钮到窗体:

7、点击操作实体,点击属性按钮,修改名称:

8、修改返回类型(按需修改),事务类型为required,是否ISV(新ISV)为True:

9、添加接口的参数:

根据项目的实际情况添加接口所需的参数。

我们这个接口的请求参数如下:

json格式如下:

javascript 复制代码
{
    "context": {
        "CultureName": "zh-CN",
        "EntCode": "007",
        "OrgCode": "101",
        "UserCode": "admin"
    },
    "type": "Image_MoList",
    "requestInfo": [
        {
            "DocNo": "123"
        },
        {
            "DocNo": "456"
        }
    ]
}

其中context参数是接口内置的,默认就有,不用管。

javascript 复制代码
"context": {
        "CultureName": "zh-CN",
        "EntCode": "007",
        "OrgCode": "101",
        "UserCode": "admin"
    }

我们只需要把type和requestInfo参数设置好就行。

上面建立的这个RequestDTO对象其中包含了一个docNo字段,就是requestInfo参数的内容,我们再把Type和IsFormal(文档里没写)字段加上。

注意:RequestInfo字段要引用上面的RequestDTO对象,因为requestInfo是个List,所以要选择集合。

接口的参数按具体的需求设置,接口需要什么参数就设置什么参数。

10、新增返回结果对象

服务的返回结果,也是按需填写,我们看下接口文档:

json格式如下:

javascript 复制代码
{
"d": 
	{
	"ErrMsg": "\\U9\\RYKF\\PrintListPDF\\admin\\123.pdf",
	"IsSuccess": true,
	"FilePath":"\\U9\\RYKF\\PrintListPDF_ISV\\admin\\123.pdf"
	}
}

拖动数据传输对象到窗体,然后修改名称:


添加返回结果对象的属性,需要返回什么字段就填什么:

11、绑定返回结果对象:

把服务的返回类型改成我们刚才添加的返回结果对象:



12、构造代码

右键项目点击构造:

在消息列表中可以看到生成代码的路径:

13、编写代码

找到项目所在的路径,打开项目,把业务代码写到这里:

具体代码我就省略了。

14、代码写好后编译整个项目,复制dll到对应目录下

双击项目目录下的AutoBuild.bat文件即可:

如果复制失败,就鼠标右键编辑,打开bat文件,按照路径手动复制一下:

不知道为什么,我都没复制成功,只能手动复制一下了。

注意svc文件不要复制漏了:

15、测试接口

在浏览器中打开 http://localhost/U9/restservices/GetDrawing.IGetDrawingService.svc

可以看到wsdl的返回,说明接口可以找到了。

再用postman测试一下,虽然结果返回错误信息,但是说明接口是调通了。

16、制作补丁发布

接口测试好之后就可以制作补丁发布了,具体的过程可以参考这篇文章:U9二次开发之补丁制作

最后

这就是U9轻量服务项目开发的整个过程,步骤比较多,网上u9二开的资料也比较少,仅仅做个记录,以备查看。