BOS自定义单据原创
金蝶云社区-风以灵
风以灵
89人赞赏了该文章 3,288次浏览 未经作者许可,禁止转载编辑于2023年03月23日 22:21:24
summary-icon摘要由AI智能服务提供

本文概述了如何通过金蝶云星空webAPI实现三方系统调用自定义单据的保存、提交、审核流程。具体步骤包括:在BOS平台新建并自定义单据,调整插件和菜单,设置实体服务规则及权限,功能发布并测试;配置单据转换规则和Python脚本以实现单据间的转换;设置反写规则和凭证模板;最后,通过调用webAPI接口完成单据的保存、提交和审核,实现业务流程闭环。

说明:三方系统调用金蝶云星空 webAPI实现自定义单据保存、提交、审核。

/**以下内容参考金蝶【C】webAPI接口文档说明及BOS自定义单据需求整理而作,仅供交流参考。**/

需求:三方系统单据审核完毕后通过金蝶WebAPI保存、提交、审核自定义单据。实现业务流程闭环(如图)

image.png

实现步骤:

  1. 新增自定义单据

    (1)打开BOS集成开发平台新建自定义单据(根据实际场景选择不同新建方式,本例是以复制方式,复制应付款管理单据-其他应付单后对复制的单据以实际业务场景进行修改调整)

    image.png

    注:新建前请查看新建必读提示,以便更好的实现具体业务场景的不同需求:

    image.png

    (2)复制单据点击确认后,新建自定义单据-费用预提单、费用核销单

    image.png

    *框选部分为自定义改造。如有对单据头和单据体表名有特殊需求,建议在保存前修改对应表名:点击编辑-批量编辑字段属性-单据头/单据体,按规则修改对应表名,以便后续查询使用

    image.png

    (3)调整表单插件、列表插件(必须),目的是解决插件不适应,造成自定义单据查看、保存等出现异常的情形

    image.png


image.png

*禁用部分不适用的表单插件及列表插件

(4)结合实际业务场景调整菜单

image.png

(5)根据实际场景,设置实体服务规则、值更新、点击事件等

    *实体服务规则

image.png

    *值更新事件

image.png

    *点击事件

image.png

(6)设置权限

    *登录金蝶云星空web端,新增权限对象

image.png

    *注意请仔细配置对应权限项,以避免后续单据运行时出现异常情况,如结算组织选择不到的情形

    *返回BOS平台给单据配置对应权限对象

image.png

(7)功能发布

image.png

(8)给用户配置权限

image.png

(9)单据新增、查看及列表测试

image.png

*费用核销单列表设置了对应列表格式化条件

image.png

    **注意格式化调整由前往后执行,分先后。(本例中,除了需要对还有可付款额度的单据标注颜色绿色外,还需要对非审核状态的单据标注红色)**

    2.单据转换

    本例中费用核销单须下推付款单,须配置单据转换规则、调整付款单据表单插件

    *新建单据转换关系,设置对应转换规则

  (注意单据类型映射,只支持一个单据体关系映射,如有来源单据体是多个的情况,需要写对应的插件来实现)image.png    *设置转换规则时,可以根据实际业务场景参考系统内其他单据的转换规则设置

    *增加付款单据表单插件:本例是通过注册Python脚本实现费用核销单下推生成付款单后将对应单据体的金额赋值给不同单据体的金额字段

    image.png

***Python脚本如下***

    def AfterCreateModelData(e):
    # 获取单据体行数
    num = this.Model.GetEntryRowCount('FPAYBILLSRCENTRY')
    # 存储所有应付金额
    amounts = []
    # 判断源单明细每一行的应付金额是否有值,没有值不处理,有值则将应付金额携带到明细信息.应付金额
    for i in range(0, num):
        # 判断付款单源单明细第一行应付金额是否为空
        if this.Model.GetValue('FREALPAYAMOUNT_S', i):
            # 不为空时获取付款单源单明细对应行的应付金额
            a = this.Model.GetValue('FREALPAYAMOUNT_S', i)
            # 将获取的源单明细应付金额添加到列表中
            amounts.append(a)
    # 计算所有应付金额之和
    total_amount = sum(amounts)
    # 更新到明细信息.应付金额
    this.Model.SetValue('FPAYTOTALAMOUNTFOR', total_amount)

***如需了解更加细致内容,建议在社区内搜索对应的插件开发文章***

  3.新增单据反写规则,实现付款单处理后,对应的付款金额反写回至费用核销单内,控制费用核销单下推及其他操作控制

    image.png  4.凭证模板设置

  **须结合实际业务场景,配置凭证模板**

image.png

    ***当配置凭证金额为负时,出现异常,须检查该字段在数据库表结构字段类型***

  5.调用WebAPI

   ***分别调用单据的保存、提交、审核接口(与其他单据接口调用方式一致)***image.png

***webAPI调用可参考(webAPI及BOS自定义单据实例),也可在社区内搜索对应webAPI调用的相关文章***

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