API接口跟相应菜单简单比较原创
金蝶云社区-eris
eris
9人赞赏了该文章 2,584次浏览 未经作者许可,禁止转载编辑于2020年03月05日 09:17:36
summary-icon摘要由AI智能服务提供

本文讨论了API接口与BOS平台中菜单操作的异同,包括Web层和App层的插件及操作服务运行。通过比较保存、提交、审核等接口与对应菜单操作,指出接口和菜单操作在业务逻辑、插件事件和服务调用上的差异,特别是API接口缺少Web层逻辑及特定工作流处理。

背景说明:

       老有用户问api接口有没有执行相应的插件事件,操作中的功能有没有在接口中实现等等,这个不能一概而论,也很难回答,这里对api接口和对应菜单做一下简单的比较,希望对您有所帮助。

整体说明:

       BOS平台主要分Web层和App层,单据维护插件和单据列表插件运行在Web层,单据操作插件运行在App层,菜单的运行包括Web层和App层,菜单中配置的操作服务运行在App层,Api接口某种意义上就相当于操作服务。

概念说明:

       页面操作为菜单操作,App层操作为菜单中配置的操作服务。

接口比较:

1. 保存接口跟页面保存菜单比较:

WebApi保存和批量保存接口是模拟页面操作来实现的,在页面上新增单据,给字段赋值,按保存操作,WebAPI也是这样的过程, 1. WebAPI首先创建一个视图,加载默认数据包(相等于页面新增操作,打开新增页面);2. 然后使用传入的数据包给每个字段赋值,赋值时会调用相应的值更新事件和服务(相当于页面给字段赋值) 3. 最后,也是最大的不同所在,批量保存接口调用保存操作服务,保存接口调用Model.Save,而页面调用保存菜单。这三者的业务逻辑可以看成包含的关系,保存菜单包含Model.Save,Model.Save包含保存操作服务。其中保存操作服务就是创建菜单时配置的操作,主要是App层逻辑;Model.Save比保存操作服务最主要是多两个单据插件事件(beforeSave, AfterSave), 保存菜单比Model.Save主要多Web层业务逻辑,事件主要多有单据插件中的菜单点击事件,点击后事件,操作前后事件(before/AfterDoOperation),业务逻辑主要多有。。。比如保存后自动提交,保存后自动新增,结果交互处理,权限等。

2. 提交接口跟页面提交菜单比较:

页面提交菜单同样比提交接口多web层逻辑,比如最主要的提交菜单会提交工作流,但提交接口也实现了提交工作流。

3. 审核接口和页面审核菜单比较:

同样页面审核菜单比审核接口多有web层逻辑,并且审核接口没有实现工作流的处理,所以有工作流的审核千万不要调审核接口来处理。


图标赞 9
9人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!