ISV出盘装盘常用操作手册
使用场景: 非首次出盘,请ISV开发人员按照此文档操作出盘装盘名词解释:
名称 | 说明 |
---|---|
系统级数据 | 用来描述应用构建中开发的产品的数据,是一个压缩包,里面包括了monggo数据 和mysql数据,其中mongo脚本是json数据形式,mysql数据是sql 语句的形式存在。mongo数据用来描述实体和页面设计器,mysql用来描述编码规格,api函数,按钮权限,业务流,工作流等,数据中租户id 为 0 |
应用编码 | 应用构建下每个应用的唯一标识 |
应用编码的获取方式
获取脚本(系统级数据脚本和规格脚本)
发布系统级数据
商开环境发布系统级数据的域名 https://dbox.yonyoucloud.com/iuap-yonbuilder-designer/ucf-wh/builder/system/index.html#/appSystem
需要登录商用开发环境,然后新打开一个页面来访问发布系统级数据的网址,两个页签通过共用Cookie实现登录
参数说明如下:
参数 | 选择值说明 |
---|---|
开发租户 | 应用所在的租户 |
应用名称 | 需要出盘的应用 |
数据类型 | 务必选择 应用构建-自建应用 |
下载系统级数据
发布完成后,点击应用上下方的小云朵下载发布后的系统级脚本数据
系统级数据下载后的文件 解压如下
获取规格脚本
触发条件:当应用中的**发布管理**下的页面发生变化的时候操作,才需要重新获取规格脚本ISV 开发人员需要提供给技术支持人员: 应用编码,发生变化的页面名称
技术支持人员 整理如下两个sql ,替换其中的应用编码,在商开数据库中执行脚本,将执行结果表格导出给产品同事
应用信息导出,应用编码按照实际情况修改
select * from iuap_apcom_benchservice.sys_application where application_code in (应用编码)
服务信息导出 (将服务信息按照应用信息分类好)
select * from iuap_apcom_benchservice.sys_service where application_code in (应用编码) ORDER BY application_code
- 产品同事根据 技术支持人员提供的表格,修改规格配置,配置完成后,导出新的规格脚本压缩包,把规格脚本压缩包,发送给ISV开发人员
规格脚本压缩包解压后截图如下:
规格脚本 有多个维度,出盘只需要用到规格和应用两个维度即可。规格脚本和系统级脚本没有本质区别,就是操作不同的数据表而已
规格维度
应用维度 这里有几个应用,就会有几个zip包
某个应用维度的规格脚本解压后,截图如下:
放置脚本
放置系统级数据
后端脚手架在首次出盘的时候,技术支持人员 已经建立好如下目录: XXXX 表示的是引擎编码,
XXXX-be\dev-XXXX-bootstrap\scripts\db
**除了应用编码根据应用的不同有变化外,其他的文件夹名称都是固定的**mongodb
init
0001_应用编码\0010_iuap_common\DML
0270_iuap_metadata
0330_iuap_uimeta
patch
0001_应用编码\0010_iuap_common\DML
0270_iuap_metadata
0330_iuap_uimeta
mysql
init
0001_应用编码\0010_iuap_common\DML
0010_iuap_billtype
0040_iuap_workbench_register
0150_iuap_businessflow
0160_iuap_uitemplate
0250_iuap_button
0290_iuap_api_gateway
0340_iuap_yonbuilder_designer
0020_self
DDL
DML
patch
0001_应用编码\0010_iuap_common\DML
0010_iuap_billtype
0040_iuap_workbench_register
0150_iuap_businessflow
0160_iuap_uitemplate
0250_iuap_button
0290_iuap_api_gateway
0340_iuap_yonbuilder_designer
0020_self
DDL
DML
DBDescribe.xml(与mysql和mongodb同级目录)
目录说明:
目录 | 说明 |
---|---|
所有的init | 初次出盘使用,后续出盘,脚本放到patch目录下即可, patch目录和init目录结构完全相同,ISV开发人员只需要在patch目录下追加脚本即可 |
0001_应用编码\0010_iuap_common\DML | 系统级数据 mysql脚本的存放目录 |
0020_self/DDL | 放置业务数据库建表语句 |
0020_self/DML | 业务数据编码规则相关的表语句 |
建立好的目录如下:(这里有三个应用,应用编码分别为 ILOGIEBIP06,ILOGIEBIP07,XMFYGJ001test)
观察系统级数据目录就会发现每个目录前缀都是数字,安装器就是根据 这些含有数字的文件夹名称进行区分,把里面的sql在不同的数据库中去执行。
脚本的放置规则:
第一: 根据应用编码去找目录,尤其是多个应用存在的时候,尤为重要。
第二:根据系统级数据的文件夹中的数据类型,是mongo就放入mongo中去,是mysql 就放入到mysql中去。
比如 0270_iuap_metadata,0330_iuap_uimeta是mongo脚本,其他都是sql脚本。
第三:区分好数据类型后,系统级数据中的文件夹下的文件依次放入到后端脚手架 同名的文件夹中。即所有文件的源文件夹名称和目标文件夹名称要一致
因为多次出盘的原因,每次追加脚本的时候,需要在目标文件夹下建立日期文件夹来区分脚本的放置时间。 比如在 2023.08.10 要出盘,并发布了系统级数据,那么在0010_iuap_billtype 文件夹下,就建立 一个名称为20230810开头的文件夹 因为可能存在一天内多次出盘的情况,在这个日期文件夹加上次数的后缀 01 表示当天是第一次出盘, 最终文件夹名称为2023081001 前面八位数字表示出盘日期,后面两位表示当天出的第几次盘。在其他的文件夹下也是同样的操作,这样系统级数据就可以根据日期进行规范化管理了。特别注意:
已经出盘过的脚本不能做任何的修改 (可以删除文件,不能修改),不然安装器会校验失败。要修改数据,就需要在后面追加新的脚本。关于目录:发布的系统级数据并不一定全部包含上面的列举的目录,比如某个应用没有用到编码规则,那么系统级数据就不会有0010_iuap_billtype 这个目录 ,如果系统级数据目录少于上面的目录,那么可以少提交几个目录,如果多于,就需要补全目录结构。
放置规格脚本
规格脚本(都是mysql脚本)和系统级脚本放置方法一样的,只放规格和应用两个维度的脚本即可。 规格和应用的脚本数据,应用脚本 放置到 对应的应用中去即可,规格脚本按照放置规则放置到任意一个应用中去即可。注意源文件夹和目标文件夹同名即可。 放置完成后,合并业务代码,执行流水线。
放置过程截图示意如下:
执行流水线
登录租户
目前执行流水线需要登录到用友集团租户,ISV开发人员需要用到技术人员提供的SSO登录到该租户。SSO地址打开如下图 : 需要填写一个MFA码
进入流水线
点击 流水线(新) 页签
,找到自己流水线,
选择 数据中心和环境,
执行流水线,执行流水线的时候,指定工作流。每个工作流里面配置了不同的分支,选择不同的工作流来切换不同的分支。前后端流水线,哪个代码有改动就执行哪个,在执行流水线的时候要注意一下流水线的版本号,后面出盘步骤要选择该版本的微服务,
流水线执行完以后,点击应用管理,待实例重启完成即可出盘(如下图)
Pod健康状态为健康后,这个流水线版本的微服务 就会进入到 YPR 制品仓库了。接下来 就可以出盘了。
ISV出制品(制品包括产品盘和补丁)
制作产品盘
点击全部产品 ,
选中YPR制品仓库(和流水线在同一个用户下),找到自己的制品进行制盘, 产品盘名称由技术支持人员首次出盘决定,不清楚的询问支持人员, 点击制盘
配置制盘参数:首次出盘由技术支持人员负责,有关参数都已经配置完成了,该参数完成基础配置后,后续出盘参数无需修改,ISV开发人员只需重新选择一下即可,后续功能性的修改出盘步骤交由ISV自行出盘。
ISV出盘需要修改的参数:
参数名称 | 说明 |
---|---|
安装模式配置地址 | ISV每次出盘和出补丁重新勾选一下即可。 |
微服务 | 微服务就是流水线,ISV开发人员只需要改动微服务版本号即可。 |
中间件 | 中间件的版本 首次出盘由技术支持人员确定,每次换 新的私有云环境安装的时候,询问运维人员确定中间件的版本 |
参数确认完毕后,点击制作新盘即可
制盘成功后,找到自己的制品名称,点击更多------下载即可(如下图)将所下载的盘地址提供给装盘人员即可。
制作补丁
第一步在 自己的制品盘上 点击 新建补丁
,弹出如下页面,
补丁参数
参数 | 参数说明 |
---|---|
补丁类型 | 固定值 SP |
安装模式配置 | 重新选择一下即可 |
jira编号 | 补丁中解决的问题有提交jira就写上,没有写无 |
补丁描述 | 本地出补丁主要解决了什么问题,可参考git的提交日志 |
微服务的版本号 | 需要哪个版本的微服务就选择哪个版本,一般选择最新版本 |
即可确认出补丁包。
第二步:补丁的验证发布。补丁出完了后,在安装盘的补丁管理中 找到最新的补丁
复制补丁名称,然后在 升级包中搜索 找到对应的补丁包
验证通过后,进行发布
第三步:发布完成后,在云产品补丁中心搜索
根据补丁名称来搜索, 能搜索到出的补丁,就表示此次补丁已经制作完成,就可以发邮件给运维的同事进行安装了。
安装产品盘和补丁
产品盘或补丁每次安装前需要首先在用友提供的测试环境完成测试安装,验证产品盘中是否存在阻碍安装的问题,安装完成后,注意观察服务是否能正常启动,页面功能是否正常。验证通过后,才能给到客户的环境,进行安装测试安装产品盘:
登录私有云环境的安装器(安装器是一个网站,由技术支持人员或者运维同事提供),
上传完成后,选择“全部产品”,在搜索框中查询要安装的产品盘名称。找到产品盘后,点击”立即添加”,
进入产品盘安装页面,首先需要选产品盘安装的主机资源,这里统一选择领域资源池主机即可
点击确定,下面进入一系列配置,
依次点击 微服务配置,产品依赖检查,运行环境设置,直到YMS配置。 其中 运行环境配置选择 技术中台
中间件部分务必选择带有ywzt和lingyu字样的选择项 如安装器页面和截图不符,咨询技术支持人员
配置完善后,点击立即安装即可.
安装补丁
特别注意: 只有安装过产品盘的私有云环境才能安装补丁制好补丁以后,登录到安装器,将新建好的补丁,上传至安装盘(如下)补丁和盘的上传方式是一样的
上传完后,切换到补丁管理,根据补丁名称搜索出上传的补丁,点击红色安装按钮,进行安装(如下图)
点击立即安装,安装即可,无需修改参数(如下)
安装产品盘和补丁常见报错
- 报错一: 业务sql报错
解决方式: 按照提示 修改业务sql 语法错误 或者 调整sql的顺序。
- 报错二: 系统级脚本执行报错
解决方式: 大多数是因为公有云数据库和私有云环境数据库表接口不一致导致,需要平台出补丁,拉齐数据表结构。
报错三: mongo数据已存在
解决方式: 删除报错的mongo数据即可 删除语句 在对应的环境 ,mongo 库名 metadata , 执行db.集合.find( {查询参数}),比如 : db.uimeta_filter.find({'_id':ObjectId('报错的_id值')} ) ,将 查询结果这一条数据删除后,继续安装。
YMS配置和订阅事件
进入到业务中台 打开我的应用 ,找到首次装盘建立的应用, 点击应用上的开放平台按钮
打开api 授权 可以对应用进行 接口授权操作
记录下这三个参数,这三个参数需要配置到YMS上
添加 路由接口( 其他接口授权也是同样的操作,对api函数发布的接口,请授权内部api)
打开YMS控制台,找到对应的引擎 选择相应的环境
参数表格
描述 | 键 | 值 |
---|---|---|
appcode | ucf.mdd.open-api.app-code | 上面新建集成开发应用的 app-code值 |
appKey | ucf.mdd.open-api.app-key | 上面新建集成开发应用的 app-key值 |
appSecret | ucf.mdd.open-api.app-secret | 上面新建集成开发应用的 app-secret值 |
path | ucf.mdd.open-api.isv-router.path | 固定值 /yonbip/digitalModelisv/rest/api |
tenant-id | ucf.mdd.open-api.tenant-id | 业务中台当前租户id (建立集成应用的租户id) |
isv-key | ucf.mdd.open-api.isv-app-key | 生态key由技术老师提供 |
isv-secret | ucf.mdd.open-api.isv-app-secret | 生态secret由技术老师提供 |
私有云环境常见问题和解决方案
- 问题一: 插件 丢失: 插件丢失会导致整个链路不可用,所有单据都打不开,要特别检查。
解决方式: 检查 开放平台插件
登录 业务中台 后,访问 开放平台 ,开放平台地址为{业务中台}/iuap-api-management 或者是 iuap-ipaas-base
找到 api发布, 同样是先登录业务中台然后新打开一个页面访问开放平台
点击调试
如图所示是正常的情况; 其他情况,就需要重新部署插件。
插件部署如下操作
选择最新版本 点击部署或者重新部署
如果有提示部署失败,登录到对应的技术中台----api网关----容器控制台----执行mkdir iuap-ucg命令,然后再重新部署插件即可
问题二: 枚举不显示
解决方式:枚举不显示,清理缓存,一般是 领域资源池redis中的0号库,具体看项目,找运维的同事确定项目库号;
问题三: 安装盘后,页面设计器不生效
解决方案:清理页面缓存;查看YMS 上用的redis是哪两个库号,清理对应库中的数据
- 问题四: 装盘后,在系统管理中 找不到自己的规格
规格license的问题,找产品的同事重新配置规格脚本。先确定一个私有云环境可用的license,基于这个license 来配置规格。
- 问题五: 初始化信息失败
解决方案: 在开放平台 点击 “缓存同步” 按钮,整个同步过程完成需要 20到30分钟。
问题六:事件订阅回调地址接受不到数据。
解决方式: 同步 事件缓存后 重试,问题没有排除,请联系技术人员