金蝶云星空BOS专题中级课-BOSIDE.pptx
- 文档编号:30579111
- 上传时间:2023-08-17
- 格式:PPTX
- 页数:86
- 大小:3.48MB
金蝶云星空BOS专题中级课-BOSIDE.pptx
《金蝶云星空BOS专题中级课-BOSIDE.pptx》由会员分享,可在线阅读,更多相关《金蝶云星空BOS专题中级课-BOSIDE.pptx(86页珍藏版)》请在冰豆网上搜索。
刘兵2020年6月,版权所有1993-2018金蝶国际软件集团有限公司,金蝶云星空BOS专题中级课BOSIDE,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,BOSIDE是金蝶云星空最重要的设计工具。
金蝶云星空是基于BOSIDE从无到有搭建起来的。
BOSIDE整体介绍,业务领域,财务会计,基础管理,流程中心,SilverlightWPF多端展示,门户仪表盘,移动设备,套打模板设计(新建、复制、导入),标准报表设计(新建、复制、导入),业务对象设计(新建、继承、扩展),BOS平台(元数据、动态领域模型),Office集成,基础资料、单据、账表、动态表单、系统参数、弹性域、移动业务,成本管理,资产管理,供应链,生产制造,人力资源,集成开发平台,套打设计平台,字段集、控件集属性组合,发布展示,集成开发平台,套打设计平台,万能报表平台,字段集、控件集属性组合,控件集、数据源属性组合,控件集、区段集、数据源、属性组合,基础资料、单据动态表单、账表,单据类报表列表类报表SQL增强报表,动态领域模型金蝶云星空的的核心技术。
独创的动态领域模型,抽象了32种标准ERP领域模型、849种模型元素、16819种模型元素属性组合,268个业务服务构件。
BOSIDE整体介绍,动态领域模型相关概念,BOSIDE整体介绍,动态领域建模总体上由模型库,领域模型,领域模型动态解释引擎三个部分组成动态领域模型是一个由模型-元素-属性组成的三层体系结构领域模型动态解释引擎由展示层,服务层,内核层组成,BOSIDE整体介绍,业务对象间的继承与组合方式,大大简化了系统的设计,每种动态领域模型由若干元素组成每种元素又有若干属性模型中包含操作,服务,规则,插件编程模型实现业务功能和逻辑控制,元模型示意图,模块继承示意图,模块组合示意图,建模机制,操作,服务,业务规则,插件模型,动态领域建模设计界面,BOSIDE整体介绍,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,操作的作用,可以配置内置的校验规则,如单据合法校验等,有效的减少了用户代码量,可以调用系统内置的服务端服务,减少代码的重复量,以达到复用的目的。
可直接利用现有的权限功能对当前操作设置权限,无需代码编写,开发可以对当前操作轻松的编写二开插件实现自定义的事件干预,常用的操作列表,操作配置-审核,操作配置-共享中心打印封面,空操作应用场景,现有标准操作集合列表中没有所需的业务操作需要对菜单的按钮设置权限需要用到系统内置的校验器需要调用系统的服务端服务Web插件操作前操作后事件干预App服务插件事务前事务中事务事件后干预,最佳实践,配置菜单中的点击事件,建议只配置一个操作,因为如果配置多个操作,不同的操作不在一个事务中,可能会导致数据不一致的问题多个单据体配置操作时(如新增分录),需要添加多个新增分录操作,否则会导致操作不成功涉及到数据修改和数据库相关的业务,建议优先使用操作服务插件,不要把代码写在表单插件里涉及到业务操作合法性校验的业务,建议使用操作校验器或操作服务插件,不要把代码写在表单插件操作之后还有后续自动业务处理,应该在操作服务插件处理,不要把代码写在表单插件在很多单据都要使用的操作,标准产品没有提供的,可以考虑自定义扩展,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,可以在各个业务对象操作上实现快速的校验规则设置,用来保证业务操作正确和数据的合法性的装置支持二开扩展,校验器,校验器列表,选择单个或多个字段作为组合字段,检查不同单据之间组合字段值的唯一性。
校验器,合法性检查,检查组合字段唯一性,勾选单据体或子单据体分录下字段,检查不同分录之间字段值的唯一性。
校验器,合法性检查,检查分录字段唯一性,勾选单据体或子单据体分录下字段,检查不同分录之间字段值的一致性。
校验器,合法性检查,检查分录字段一致性,检查单据数据是否合法,根据业务规则设置检查表达式,校验器,单据合法性校验,检查单据数据是否合法,使用lambda表达式常见错误,校验器,单据合法性校验,使用filter+lambda表达式可以判断多条记录情况。
单据体中的字段,公式取到的是一个集合,不能直接跟常量进行比较。
用lambda表达式,对单据体行,进行循环,逐行取基础资料字段值进行比较:
举例说明:
len(filter(lambdax:
(x.FBase.FPropertyName.ToString()=采购员),FEntity)0说明:
FEntity是单据体标识,公式中取到的是行数据集合x代表单据体当前行,允许直接使用.取字段值FBase.FPropertyName返回的是多语言文本对象,需要使用ToString()函数,转换成纯文本,lambda表达式,前值条件判断物料是否启用了辅助属性,lambda表达式,保存校验:
使用lambda表达式判断物料辅助属性启用的情况下,辅助属性不能为空。
lambda表达式,保存校验:
使用lambda表达式判断物料启用BOM版本管理,BOM版本不能为空。
lambda表达式,选择待校验的复选框字段,所在实体不同分录间有且只能有一个复选框选中时校验通过。
校验器,有且只能选择一条分录,勾选待校验字段,输入正则表达式,字段值满足正则表达式时校验通过。
校验器,正则表达式验证,为基础资料业务对象添加校验器,当该基础资料数据被其他业务对象引用时校验不通过,常用于删除和反审核操作。
校验器,检查当前基础资料是否被其他业务对象使用,勾选待校验的字段,检查字段必录性。
校验器,合法性检查,字段必录,校验器扩展,继承校验器基类AbstractValidator,实现自定义的校验器服务继承校验器元模型对象基类,重写ValidatorClass属性添加预插脚本,1、通用校验逻辑,能用校验器配置的用校验器,不能配置的用操作服务插件。
2、插件动态设置字段必录,或者实体服务设置必录,同时需要配置校验器必录。
3、有第三方集成时,校验器可根据服务类型变量作为条件,设置是否执行。
最佳实践,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,应用场景:
条件表达式,计算表达式等。
特性:
(1)基于IronPython进行解析执行,语法和Python语法保持一致。
(2)表达式大小写敏感。
(3)内置常用函数。
(4)支持自定义函数。
函数,函数类型,过滤取值函数缺省值函数系统函数系统变量Python原生函数(部分支持),应用场景:
BOSIDE,设计时,给基础资料指定过滤条件。
过滤取值函数-GetValue,应用场景:
BOSIDE,设计时,给指定字段设置缺省值。
特性:
(1)界面配置,格式固定。
(2)和字段类型强关联。
(3)内置常用函数。
(4)暂不支持二开扩展(后续可放开)。
(5)不区分大小写(内部会强制转大写后解析)。
缺省值函数,常用缺省值函数列表,函数标识:
GETFIELDVALUE函数名称:
获取指定字段值功能说明:
获取父分录下的指定字段的值使用范围:
分录和子分录字段使用示例:
GetFieldValue(FDeliveryDate),缺省值函数,函数标识:
GETUSER函数名称:
获取用户功能说明:
获取当前用户使用范围:
用户字段使用示例:
GetUser(CurrentUser),缺省值函数,函数标识:
GETORGUNIT函数名称:
获取组织功能说明:
获取当前组织使用范围:
组织字段使用示例:
GetOrgUnit(CurrentOrgUnit),缺省值函数,函数标识:
GETBASEDATA函数名称:
获取基础资料功能说明:
获取基础资料使用范围:
基础资料字段使用示例GetBaseData(KCZT02_SYS):
缺省值函数,函数标识:
GETDATE函数名称:
获取当前日期功能说明:
获取当前日期使用范围:
日期字段使用示例:
GetDate(yyyy-MM-dd,CurrentDate),缺省值函数,函数标识:
GETTIME函数名称:
获取当前时间功能说明:
获取当前时间使用范围:
时间字段使用示例:
GetTime(CurrentTime),缺省值函数,函数标识:
GETBUSINESSFLOW函数名称:
获取当前单据的默认业务流程功能说明:
获取当前单据的默认业务流程使用范围:
业务流程字段使用示例:
GetBusinessFlow(null),缺省值函数,应用场景:
BOSIDE,设计时,表达式中使用。
特性:
(1)界面配置,格式固定。
(2)和表达式语义强关联。
(3)内置常用函数。
(4)暂不支持二开扩展(后续可放开)。
(5)不区分大小写(内部会强制转小写后解析)。
系统变量,系统变量列表,系统变量列表,应用场景:
BOSIDE,设计时,表达式中使用。
特性:
(1)界面配置,格式固定,使用Python语法。
(2)和表达式语义强关联。
(3)内置常用函数。
(4)支持二开扩展。
(5)区分大小写。
(6)基于IronPython进行解析执行。
表达式函数,常用表达式函数,常用表达式函数,函数标识:
BILLTYPEPARAMNEW函数名称:
获取单据类型参数功能说明:
获取单据类型参数参数说明:
billTypeFieldKey:
单据类型字段标识PropertyName:
参数字段的属性名paramFormId:
单据参数表单的标识使用示例:
获取采购订单的单据类型参数【允许修改交货数量】F_KKK_Text1=BILLTYPEPARAMNEW(FBillTypeID,ControlDeliveryRate,PUR_OrderParam),表达式函数,函数标识:
SYSPARAM函数名称:
获取系统参数功能说明:
获取系统参数参数说明:
orgFieldKey:
主组织字段acctBookFieldKey:
账簿字段parameterObjId:
参数对象唯一标识parameterName:
参数属性名使用示例:
获取库存管理的系统参数【库存更新方式】F_KKK_Text1=SYSPARAM(,STK_StockParameter,UpdateStockPoint),表达式函数,函数扩展,继承函数基类AbstractFuncDefine,实现自定义的函数服务添加预插脚本,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,实体服务是什么,实体对象上配置的服务实体数据发生变化时要做的事情,实体服务规则列表,实体服务规则主要使用服务:
计算定义的公式值到指定列锁定/解锁字段、按钮和菜单等隐藏/显示字段、按钮和菜单等业务相关的服务(销售价格折扣等),实体服务规则-配置,规则条件:
根据实际应用场景设置条件,用于执行下方的服务,条件为真执行的服务可以选择BOS预置服务支持多个服务,条件为假执行的服务,实体服务规则-触发时机,实体服务规则主要触发时机:
值更新、加载、新增、行选择,实体服务规则-支持禁用,实体服务规则支持引入和WebAPI禁用,实体服务规则与值更新,实体服务规则支持值更新、加载和新增等触发时机;值更新事件仅支持值更新触发值更新和实体服务共有一些服务,但有各自特有的服务;值更新可以携带基础资料属性值到指定列值更新可进行国际化税率等特定服务配置值更新可以做调用指定字段的值更新服务等,判断单据是否下推生成判断源单来源,实体服务规则实践-是否下推,获取基础资料数据,获取基础资料的属性数据,需要先添加引用,实体服务规则实践-计算服务,使用lambda表达式判断存在销售订单时,锁定往来单位类型、结算币别、结算组织、收款组织等信息。
实体服务规则实践-lambda表达式前置条件,计算日期差:
(F_JD_Date1-F_JD_Date2).Days增加天数:
FDate1.AddDays
(1)增加月份:
FDate1.AddMonths
(1)增加年份:
FDate1.AddYears
(1)当前日期+10天:
currentshortdate.AddDays(10)将一个日期字段设置为当前日期每个月的第一天:
F_PAEZ_Datetime=str(currentshortdate.Year)+-+str(currentshortdate.Month)+-01,实体服务规则实践-日期处理,必须与true,false比较,不能与0,1比较示例:
FCheckBox1=trueandFCheckBox2=false,实体服务规则实践-复选框处理,下拉列表字段,存储的是枚举项,显示的是枚举名称,公式中,需要与枚举项进行比较示例:
FCombo1绑定的枚举类型为价格类型,有两个枚举项(1:
到岸价;2:
出厂价)FCombo1=1,实体服务规则实践-下拉框处理,实体服务规则常见问题,实体服务规则选择的服务不支持跨实体配置公式中使用基础资料的属性,需要先在基础资料的引用中添加才可以使用操作后刷新字段后续不再触发值更新和实体服务规则,实体服务规则常见问题,当实体服务和值更新配置成A和B相互更新时,可能引发死循环,导致系统挂起,F_ff_Integer1,F_ff_Text1,F_ff_Integer2,实体服务规则常见问题,数据发生变化后有关联影响的服务应该放到一个实体服务集合中,一个判断条件,实体服务规则常见问题,实体服务规则选择的服务不支持跨实体(如单据体实体服务规则锁定单据头字段),实体服务规则常见问题,配置公式中使用基础资料字段,需要在基础资料的引用中添加才可以使用,Content,01,02,03,总体介绍,操作,校验器,函数,04,实体服务,05,二开规范及最佳实践,06,二开规范及最佳实践,单据或基础资料对象唯一标识以字母开头,不要以数字开头,否则在某些表达式计算应用上可能会出错单据元数据对象表和元数据多语言表的FID字段大小写敏感,代码中使用的FormId要和元数据定义的大小写保持一致,二开规范及最佳实践,所有元素标识、字段名、属性等增加开发商唯一标识信息,防止和标准产品冲突常用查询字段维护索引,二开规范及最佳实践,新建单据或基础资料模型时,实体表名最好先确定,因为一旦业务发生,表名不能再做修改,否则会涉及到数据同步和数据修复,二开规范及最佳实践,新建单据或基础资料模型时,文本或多语言字段的编辑长度最好事先考虑,因为一旦保存后,再调整长度需要分别调整元数据和数据库字段长度,二开规范及最佳实践,如果有国际化业务,新增加日期类型字段时建议使用长日期,二开规范及最佳实践,如果枚举类型只在本单据使用,或者有可能被客户修改,则建议使用私有下拉列表,不建议用下拉列表,二开规范及最佳实践,新建单据和基础资料都建议继承BOS基类模板,否则有些特性需要而外配置,二开规范及最佳实践,新建的单据和基础资料建议配置网控,否则并发容易导致数据错误,二开规范及最佳实践,添加实体对象尽量少用复制,有些设置复制后是需要修改的,容易引发错误,二开规范及最佳实践,修改模型,不要每次修改都去扩展,尽量减少扩展,二开规范及最佳实践,单据或基础资料在保存后建议使用右键检查元数据,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金蝶云 星空 BOS 专题 中级 BOSIDE