一.绘制元数据
1.在项目对应的METADATA目录下,新建元数据文件
输入文件名 ----- finish
将视图切换为MDP资源管理器视图
2.打开bmf文件,点击空白处,修改Properties
注意:
1.必须先修改bmf文件的Properties,再绘制元数据
2.元数据代码风格必须为标准样式
3.所属模块对应META-INF/module.xml中的module name
3.绘制主子表实体
表头访问器类型必须为AggVO
表体访问器类型必须为NCVO
1.两个实体创建出来之后立马先用组合连接(组合连接放到最后的话会出现生成代码错误)
2.名称对应生成类的名称
3.缺省表名对应数据库生成的表名
1.表头VO实现接口包括:IOrgInfo,IAuditInfo,IBDObject,IMakeTime,IRowNo,流程信息获取、回写,业务PK锁,IBillNo,单据主子VO查询。这些接口可以右键表头元数据-特性-添加,只有IBillNo(baseapp/metadata/meta/IBillNo),单据主子VO查询businInterface(baseapp/metadata/pf/businInterface)需要单独添加。
2.表体VO需要实现IRowNo
使用组合连接后,表头VO会出现一个id_entity字段,选择访问策略:nc.md.model.access.BodyOfAggVOAccessor
交易类型pktranstypepk (riart/METADATA/pf/transtype/交易类型),单据类型transtype (baseapp/METADATA/pf/billtype/单据类型)添加参照
表头表体选择好对应的业务接口属性映射
二.发布元数据,生成代码
1.发布元数据
2.生成java源代码
3.生成建库sql脚本并执行
三.生成前后端代码
eclipse回到java视图
右键项目,选择NCCloud应用管理
1.点击添加NCCloud应用
2.选择对应的bmf文件
3.填写应用编码,8位,前6位对应应用注册的应用分类编码**
(注意:这里的前6位对应的应用类编码所属的应用分类,即前4位编码,在应用注册时有个对应4位编码应用分类模块号必须相同,这个模块号对应ncc工程名称与元数据所属模块,且元数据所属模块与4位编码应用分类模块号必须相同)
4.填写功能信息,编码为8位,名称即节点名称
5.填写菜单信息,与功能信息相同
选着业务组件信息-代码风格,为主子单据节点,选择特性以及其他参数
点击生成代码,即可生成前端及后端代码
四.修改代码
1.在生成的后端代码中,在META-INF中找到对应的P_xxx.upm文件,修改当中的类路径,nc改为nccloud
2.在生成的前端代码中,将/模块/节点/constant/index.js中修改FIELD.billStatus,将billstatus改为approvestatus,单据状态字段用以按钮控制
3.在生成的前端代码中,将/模块/节点/list/events/initTemplate.js中,将高级查询区赋予组织的代码注释
// item.initialvalue = { display: org_Name, value: pk_org }
4.在生成的前端代码中,将/模块/节点/card/events/initTemplate.js中,将原来data.context && data.context.pk_org中的信息进行替换
let { pk_org, org_Name } = data.context;
props.form.setFormItemsValue(CARD.form_id, {
[FIELD.org]: { value: pk_org, display: org_Name }
});
afterHeadEvent(props, CARD.form_id, FIELD.org, { display: org_Name, value: pk_org }, { display: null, value: null });
替换为
props.form.setFormItemsValue(CARD.form_id, {
‘billdate’:{value: getBusinessInfo().businessDate,display: getBusinessInfo().businessDate},
‘maketime’:{value: getBusinessInfo().businessDate,display: getBusinessInfo().businessDate},
‘creationtime’:{value: getBusinessInfo().businessDate,display:
getBusinessInfo().businessDate},
‘pk_group’:{display:getBusinessInfo().groupName,value:getBusinessInfo().groupId},
‘approvestatus’:{value: STATUS.NOSTATE, display: ‘*’},
‘billmaker’:{display:getBusinessInfo().userName,value:getBusinessInfo().userId},
‘creator’:{display:getBusinessInfo().userName,value:getBusinessInfo().userId}
});
并在文件顶部引入getBusinessInfo
import { cardCache,getBusinessInfo } from ‘nc-lightapp-front’;
五.启动项目,修改页面
1.集团管理员登录,开发配置,应用注册,找到开发的主子单据,将功能点类型改为"管理+业务类应用"
注:必须改为"管理+业务类应用",否则“集团管理员应用管理”中,无法显示
2.审批单据,生成的审批卡片需要将功能性质改为"附属功能"
3.登录系统管理员,首页-动态建模平台-系统初始化-业务初始化-集团管理员应用管理,点击修改进行分配
4.登录集团管理员即可见到新发布的节点,然后进行权限分配到具体用户
5.集团管理员到职责分配应用
注意:部分参照如人员等在界面点开无数据,因为前台代码没有设置组织信息,查找不到数据,需要到initTemplate.js/createUIDom/data.template/
props.meta.setMeta中进行修改,参照上面前端开发处理参照过滤条件
6.若新建的模块为单独的模块,需更改数据库表bd_billtype表,systemcode字段的值改为已存在的值
select * from bd_billtype order by ts desc
update bd_billtype set systemcode = ‘XXXX’