U9C行业插件开发规范
U9C行业插件开发规范
文件编号: |
|
版本号: | V1.0 |
修改状态: |
|
编写人: | 刘强亚、尹烨超 |
审核人: |
|
批准人: |
|
批准时间: |
|
适用对象
该规范适用于U9设计人员和开发人员。
对于机构或伙伴提交的行业插件成果需按此开发规范进行项目改造,由客开中心负责代码上传及产品发版事项。
版本记录
此部分要记录该文档形成过程中的历次版本变更过程及变更的内容
版本 | 修改与参与人 | 修改时间 | 修改原因 | 修改概述 | 审批人 |
1.0 | 刘强亚、尹烨超 | 2023.12.22 | 原始文档 | 制定行业插件开发规范 | 刘强亚 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
开发规范细则
命名规范
程序集命名规范
行业插件产品模块代码:MIP (Manufacturing Industry Plugins 制造业行业插件集合)
子模块代码:
- CBO-公共(通用行业)
- AIR - (Airlines) - 航空业
- SI - Sugar industry - 糖业
- WAR -War industry - 军工行业
- TOB-Tobacco - 烟草行业
- TR - Trading - 贸易行业
- MP-Medical & Pharmaceuticals 医药行业
- AP-Apparel - 服装业
- IM - Industrial Machinery - 工业机械行业
- FM - Farm Machinery 农业机械行业
- EI - (Electronics)- 电子行业
- EE - (Electrical Equip)- 电气设备行业
- EN - (Energy) - 能源行业
- CH -Chemicals- 化工行业
- BE - Beverages - 饮品行业
- FP - (Food Production) - 食品生产加工业
- FS - Food Services - 餐饮服务业
- ISR - Internet Services and Retailing 网络服务和零售业
- CO - (Construction)-建筑
- BM - (Building Materials) - 建筑材料
- ME - Metals - 金属材料制造业
- EQ - Equipment -装备制造业
- IC - Integrated circuit - 芯片行业、半导体行业等
- ITS - Information Technologys Services - 信息技术服务业
- MVP - Motor Vehicles & Parts - 汽车及零配件行业
- TE - Textiles - 纺织业
- UT- Utilities 公用设施(电力,电网等)
- SH - Shipping - 海运
- PR - Printing - 印刷
- RE - Real estate - 房地产
- RA - Railroads - 铁路
- TEL - Telecommunications - 电信
- NM - New materials - 新材料
- PV - Photovoltaic - 光伏行业
……其它待完善
举例:汽配行业插件
插件程序集命名:UFIDA.U9.MIP.MVP.*BE.DLL
插件程序集命名:UFIDA.U9.MIP.MVP.*BP.DLL
插件程序集命名:UFIDA.U9.MIP.MVP.*UI.DLL
UFIDA.U9.MIP.MVP.*.BEPlugIn.dll
UFIDA.U9.MIP.MVP.*.BPPlugIn.dll
UFIDA.U9.MIP.MVP.*.UIPlugIn.dll
脚本命名规范
>所有脚本文件以:{模块}_{行业}_{项目简码}_文件描述.sql形式命名,避免重复
每个模块只允许存在一份参数预置脚本及菜单权限预置脚本
TFS目录调整
在MIP模块下新增子模块目录,其中Data目录不需要根据子模块进行拆,不同子模块的脚本文件按类型放到Data/Upgrade/Support/MIP下面
举例:
MVP子模块(汽配行业),分别在MIP的Apps和PD目录下新建MVP文件夹,并在MVP文件夹下分别新建Code、Model目录,用于存放模型及代码文件
开发环境配置
- TFS访问权限
tfs地址:tfs link需要管理员增加权限才能访问,需团队负责人邮件申请,开发人员提供邮箱账号
由于IP地址存在变动问题,可能会出现访问不了的问题,通知团队负责人联系解决。
- 源码下载及目录配置
- 参考Wiki U9研发Git使用流程,安装GVFS和Git(Git需要使用GVFS适用版),并克隆代码
- 在源码目录下新建U9Product
- 拷贝UBFCE安装目录下的所有文件至U9Product中,如下图所示(U9.VOB.Product.Other若不存在,则需要需要手动创建)
- 拷贝下列文件至U9Product/UBF/UBFStudio中
- UBF配置,红色框内配置项,需根据U9CE实际路径配置
- 后续行业插件开发,统一使用U9Product中的UBF
- BE、BP、SV组件开发
- BE,BP,SV组件,放置于MIP/Apps/{行业}(参照命名规范)文件夹中,如下图所示。Model存放UBF模型文件,Code存放代码文件
- BE,BP,SV插件,放置于MIP/Apps/{行业}/Code/PlugIn文件夹中(如果PlugIn文件夹不存在,自行创建)
- 一个行业,只能存在一个解决方案,包含一个BE工程,一个BP/SV工程。BE实体组件,BP/SV操作组件按功能划分放于不同文件夹下
举例:PL-要货拉动业务下存放3个BE组件,5个BP操作
RPSA-滚动供货分析业务下存放3个BE组件、13个BP操作
……
- 修改工程的配件名(请参考命名规范小节)
命名格式:UFIDA.U9.MIP+{行业}*BE/BP/SV(后缀)
举例:汽配行业BE项目配件名:UFIDA.U9.MIP.MVPBE
汽配行业BP项目配件名:UFIDA.U9.MIP.MVPBP
- 修改实体组件命名空间
命名要求:UFIDA.U9.MIP+{行业}+{实体组件}*BE/BP/SV(后缀)
举例:汽配行业要货拉动单实体组件命名空间为:UFIDA.U9.MIP.MVP.PLDocTypeBE
汽配行业要货拉动单创建操作命名空间为:UFIDA.U9.MIP.MVP.CreatePullListsDocBP
- 基于UBF设计器新增引用时,请从发布对象浏览器中引用。同时检查.ubfmlproj中的引用路径,是否为U9Product中的组件,如下图所示
- 从VS等开发工具新增引用时,只能引用U9Product目录下的Dll。不存在,则从portal目录拷贝。目录文件放置规则如下
- UI组件开发
- 目录位于MIP/PD中
- UI插件,放置于MIP/PD/{行业}/Code/PlugIn文件夹中(如果PlugIn文件夹不存在,自行创建)
- 一个行业只存在一个解决方案,存在多个插件时,每个插件只允许创建一个UI,Qry,ListUI,Print工程,如下图所示
- 修改工程配件名
命名格式要求:UFIDA.U9.MIP.{行业}.{项目名}*UI
举例:汽配行业要货拉动项目配件名:UFIDA.U9.MIP.MVP.PLUI
汽配行业滚动需求分析项目配件名:UFIDA.U9.MIP.MVP.RPSAUI
- 修改UIModel命名空间
命名格式要求:UFIDA.U9.MIP.{行业}.{项目名}.{名称}*UIModel(后缀)
- 新增引用时,请从发布对象浏览器中引用。同时检查.ubfmlproj中的引用路径,是否为U9Product中的组件,如下图所示
- 构造工程,生成程序集及元数据脚本文件
5、代码提交
1、分支命名规范
不允许 直接推送master分支到远程仓库
对允许推送到远程的分支名称做下规范,只允许推送以 users/、features/、bugfix/、hotfix/、cherry-picks/ 开头的分支,具体命名规范可参考:
users/username/description 个人分支
features/feature-area/feature-name 功能分支,可构造开发流补丁
features/feature-name 功能分支,可构造开发流补丁
bugfix/description 用于常规BUG修复
hotfix/description 用于紧急BUG修复
cherry-picks/description 挑拣中转分支
详细说明参见 分支命名规范
- 在本地提交代码并推送后,vs上会提示拉取请求操作 或者 打开tfs进行拉取请求合并操作
BOM构造项配置
域账号访问: //u9dev03/U9CEBOMAdd
注意:账号前缀加pdomain,例如:pdomain/公司分配的域账号,密码为域账对应的密码
添加构造项与bom内容,处理完后告知牛玉磊 进行BOM构造服务重启,重新排队;
1、准备工作
- 从构造机的环境中找到构造系统离线环境包:U9CEBOMAdd(U9CE构造环境)、U9CERep_BomAdd(U9CE报表构造环境)、V66EBomAdd (U9V66版本构造环境)等,每个代码存储库对应一个构造系统包;
- 产品维护的过程中如有新增的领域或业务模块,需要在构造系统中新增模块、行业、源代码库、环境变量管理等相关信息,用到什么配置什么就行,一般只需要新增模块信息;
- 直接在共享目录中双击打开环境包中的UFIDA.UBF.Build.Tool.exe 文件,运行构造系统;
- 了解构造系统的常用功能(基础设置—>模块,工具—>构造Bom查询)和使用方式;
新增模块信息图示:
- 了解构造系统的使用场景
- 产品中新增业务模块;
- 产品新增页面、表单、参照等设计;
- 产品新增工程项或BE/BP(UBF工具新增工程);
- 使用工具添加构造项与Bom文件(以U9CE为例,图示如下)
打开构造项面板找到对应的模块,此处以HR为例(APP_HR),构造项分为两部分App和UI。APP中存放应用模块的BE,BP,SV组件,UI中存放应用模块的UI组件;
如果是新增应用模块,右键“新建分组”,录入模块代码、名称;
如果只是新增构造项,选中APP或UI分组之后右键“新增构造项”,录入编码(程序集名称)、名称(同编码)、开始时间、结束时间、类型、所属分组、维护人员信息(默认:牛玉磊)
如果是多个构造项,重复此操作即可。
APP中存放应用的BE,BP,SV组件,分别包含(MetaData.DLL、Deploy.DLL、.DLL)、(MetaData.DLL、Deploy.DLL、Agent.DLL、.DLL)、(MetaData.DLL、Deploy.DLL、Agent.DLL、.DLL);
打开构造BOM面板,根据组件类型(APP,UI,MetaData,Deploy,Agent,UI_Ref),分别找到对应的应用模块分组(如果不存在,则新增分组),右键“新建构造BOM”,选择构造主项(编码,名称根据构造主项自动带出)、构造脚本(可参考已有模块项目选择构造脚本)、源代码库、模块名称并录入源代码路径(Model的项目路径)
新增之后有一个添加引用的操作可参见其它BOM引用项)
如果是多个构造BOM,则重复以上操作即可。
2.1 UI构造脚本
2.2 BE,BP构造脚本
- DLL构造脚本,放置于U9->APP->MIP->{行业}:
- Deploy,Agent构造脚本,放置于U9->U9Deploy/U9Agent->MIP->{行业}:
- Metadate构造脚本,放置于U9->U9Metadata->MIP->{行业}:
2.3 插件,公共类等纯.Net工程,按需放置于MIP目录下
UI相关配置项脚本如下:
$(MSBuildStartScript)$(ComponentPath)/UI,$(Portal)/UILib$(MSBuildEndScript)
App相关配置项脚本如下:
$(MSBuildStartScript)$(ComponentPath)/APP,$(Portal)/ApplicationServer/Libs$(MSBuildEndScript)
3、在U9Product对应版本下拷贝新增文件
在 //u9dev03/U9Product/U9CE的文件夹对应目录下拷贝新增Dll文件,用于制作补丁时时提供文件的安装路径;补丁制作配置信息是否正确可以到补丁的packageinfo文件中查看;
- 在Jira中提交构造排序申请或代码构造异常支持问题
Jira系统 地址:https://gfjira.yyrd.com/login.jsp
账号/密码:域账号/域账号对应的密码+动态口令(友空间搜索动态口令程序获取)
登录成功后创建问题时,如果选不到U9C项目,需要先将自己添加到对应的产品线项目中,才可提问题,可联系测试部-吴高飞 解决
待问题处理结束后会收到Jira问题的处理结果,后续按照指导方式操作即可,确认问题已解决后点击【确认完成】
BOM流水线创建
BOM构造项配置完成后,我们就可以正常提交代码并自动生成流水线进行补丁构造
流水线构造
- 代码合并到远程master分支后,tfs会自动生成构造流水线作业,帮助我们制作集成流补丁文件,构造结果会在我们提交分支记录上体现。
- 如果构造失败请务必关注失败原因,并应及时解决报错问题。
- 如果是首次构造,请检查生成日志,查看构造项是否正确构造执行(如果提示找不到构造BOM请检查上一环节是否正确配置、是否已重启构造排序。
常见问题
Q1、安装完gvfs和git工具后,clone代码错误,提示auth认证失败,错误见下图:
解决办法:
找到*.gitconfig文件,增加以内容
Q2、解决Auth认证失败问题后,再次clone代码,提示PAT 过期
解决办法:找到自己的Azure DevOpts Server账号(如果没有请先创建),使用vs开发工具,在团队资源管理器上进行登录,登录成功后添加ADS,将tfs地址录入后验证通过即可。
U9C行业插件开发规范
本文2024-08-20 16:38:41发表“u9cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/yonyou-u9cloud-1152.html