平台基础相关问题
备份旧平台数据库
重要,这是作为信息安全的一个重要内容。
使用VBox打包本地项目版的应用服务器
连接旧平台的数据库
- 如果已经启动了应用服务器(新平台执行系统),请关闭
私库构件、部署构件、补丁构件
复制3个旧平台的文件夹:
\bundle\extensions\packages文件夹
\bundle\extensions\publish文件夹
\bundle\patch文件夹
上面三个文件夹复制到新平台环境下面的 \bundle\patch 这个目录里
用户配置文件:复制旧平台的userdata文件夹,替换新平台的对应目录
附件数据库:复制旧平台的mongodb目录中的data文件夹,替换新平台的对应目录
启动应用服务器
冗余构件清理
进入配置中心,把冗余构件清理一下。(如果拷贝的补丁构件太多,拷贝前也可以在旧系统上执行下构件清理)
设置路径:系统高级配置 → 系统维护 → 系统清理先扫描,再勾选,然后开始清理
问题描述:
在业务构件的最下面,只有“构件服务映射”菜单。
后面的“权限配置”、“定时任务”、“业务流程配置”都没有了。
原因:
这是在安装应用设计器时,出了问题,导致没安装完全。
解决方案:
重新把这3个丢失的菜单,安装上就可以了。
在应用设计器中,点击「安装构件」。
检索 function,勾选这3个功能构件,添加至安装,然后确定。
安装后,这3个菜单,又回来了。
列表控件自带的分页模式的显示,只有一个要求。
就是需要使用「从数据库获取数据到实体」规则,把数据展示到列表上。
在规则执行时,它才会根据加载的数据记录数,计算页码。
通过其他方式获取的数据,
例如:通过「实体间复制记录」规则复制来的数据、调用API的返回值等,都是不会计算页码的。
在某些情况下,如果需要清除应用服务器的缓存的话,有六步骤:
关闭应用服务器
删除cache目录
删除work\cachedata目录
删除pages\itop\handlerRecord目录
删除pages\itop\publishComponent目录
重启应用服务器
使用规则:导出表格数据到Excel
现在一次只能导出一页,下一页就不能导出。
解决方案:
这个规则,是将表格(列表或树表)数据导出到Excel中。
运行期仅导出列表/树表控件可见的列数据。
也就是说,只导出你能看到的数据,或者说只导出列表里已经加载的数据。
那些未加载的数据,是不会导出的。
问题描述:
IE浏览器安装不上报表插件,自动安装或手动安装后,重复提示未安装。
解决方案:
重置IE浏览器设置。
第八步:重启电脑。
目前支持的浏览器:Chrome45以下IE8(32位)、IE9、IE10、IE11360安全浏览器--兼容模式不支持的浏览器:Edge
可以使用窗体规则【获取打印机列表到实体】获取到打印服务器的所有打印机名称。
获取云打印服务(C-Lodop)中的打印机列表到实体,以便用户选择指定打印机进行打印、预览、测试等操作;
获取数据到实体前,默认会自动清空目标实体数据;
目前服务返回字段,默认只有一列:printerName(打印机名称)
注:打印服务器的端口,需填写8000,也就是云打印服务(C-Lodop)的端口。
问题描述:
类似这个图,动态获取的。
解决方案:
注:函数的名称大小写敏感,请使用大写字母。
- 先绑定 标识字段 ,再设置函数。
- 需要这个函数
T_SETIMAGEFILED()
,将单元格设置为图片类型。
问题描述:
解决方案:
(1)原因:SQLServerCE 没安装。 已提供在附件中。
(2)注意:
- 32位操作系统:安装
SSCERuntime-CHS.msi
- 64位操作系统:先安装
SSCERuntime-CHS.msi
,再安装SSCERuntime-CHS-x64.msi
- 下载:SQLServerCE.zip 。
移动端,是2020年5月份对ios13.4.1版本兼容性问题,进行了处理。
可以查看一下您的APP是什么时候打包的。
如果是5月份之前的话,就需要重新打包一个APP。
可以使用表达式函数TotalColumn。
计算指定实体的字段的汇总值并返回。
代码示例:
界面实体:
TotalColumn("EntityName","ColumnName")
活动集实体:
TotalColumn("BR_VAR_PARENT.EntityName","ColumnName")
,返回值为实体的ColumnName
字段的汇总值。参数1--实体名称。界面实体为字符串类型,其他变量实体需要加上变量的前缀
参数2--字段名(字符串类型);
返回值类型:与参数二所选字段的类型一致。
问题描述:
win10的操作系统。
- 导入构件的时候界面闪烁。
- 安装构件和引用构件时,选项本地zip时,窗体闪退。
解决方案:
win+R 运行 winver,看看是不是1809的版本。
如果是1809版本的话,那么您需要更新一下Windows了,因为这是微软的版本问题。
第三方的WebAPI,要转成实体数据,正常应该是用2个规则完成:
- 调用WebAPI:获取返回值。
- 配置数据还原:把返回值的数据还原到实体中。
配置数据还原规则,对json的格式,是有要求的。
例如:
- 一个元素,一条记录,json格式: {"name":"张三"}
- 两个元素,一条记录,json格式: {"name":"张三","age":21}
- 两个元素,两条记录,json格式: {"name":["张三","李四"],"age":[21,23]}
但是,WebAPI的返回值,大部分并非只有一层,会是多层返回,这样的话,我们就需要对多层的返回值进行处理,一层一层剥离,直到我们需要的元素为止。
例如下图,返回值一共有三层,我们需要的元素在第三层。那么,就需要还原3次。
- 第一次还原:获取forecasts的元素值。
- 第二次还原:获取casts的元素值。
- 第三次还原:获取我们需要的元素值。
附件有窗体示例,可供参考。
下载:三层配置数据还原.zip 。
第三方的WebAPI,要转成实体数据,正常应该是用2个规则完成:
- 调用WebAPI:获取返回值。
- 配置数据还原:把返回值的数据还原到实体中。
配置数据还原规则,对json的格式,是有要求的:
例如:
- 一个元素,一条记录,json格式: {"name":"张三"}
- 两个元素,一条记录,json格式: {"name":"张三","age":21}
- 两个元素,两条记录,json格式: {"name":["张三","李四"],"age":[21,23]}
附件有构件示例,可供参考。
下载:配置数据还原.zip 。
先把Excel里的数据,导入到一个临时实体里。
再从这个临时的实体里,复制数据到正式实体里。
这个时候,就可以处理重复。
「表间数据复制」、「实体间复制记录」这2个规则,都有处理重复的功能。
问题描述:
解决方案:
新增配置:为了防止预览大数据量的表,导致系统卡住,加的配置。默认是关闭的,需要去配置中心设置。
设置路径:配置中心 → 系统高级设置 → 系统维护 → 配置管理 → 开发系统查询配置。
窗体关闭后事件:主要用作赋值操作。
- 用途:给变量赋值(例如窗体输出变量)
- 对象:对话框窗口(静态)
- 场景:被打开的对话框窗口,关闭后需要传值给父窗体,可以在此事件中处理赋值操作。
解决方案:
请自己找好jre,然后替换执行系统目录里的jre就行了。
另外,在文件夹 \jre\lib\security 中,替换里面的2个jar,附件中。这2个jar是负责加密的。
离线登录,是平台提供的,在没有访问外网权限时,使用手机扫码登录的功能。
操作步骤:
- 输入正确的账号和密码,点击登录按钮。
- 在平台检测到本机无网络时,弹出二维码。
- 请用手机微信扫描二维码,返回登录验证码。
- 输入验证码后,即可登录成功。
注意:
- 账号密码,必须要输入正确。
- 本机的操作系统时间,必须跟北京时间一致。
- 旧版平台,不要连接WIFI,不要插网线(不要在局域网内),因为旧版本平台是使用网卡判断,新版已修复。
问题描述:
在使用整数或小数控件时,录入数据时,按一次会录入两个数字?
解决方案:
键盘属性:调整一下重复延迟时长。
输入法:如果只有在英文输入时,才会变回单个输入的话,你就要看看所使用的输入法,是不是微软拼音。
微软拼音输入法,和平台有冲突,换一个输入法就好了。
有sql语句日志。
前提是开启打印查询sql日志,因为sql日志默认是关闭的。
如果开启了,就可以在日志里查看操作数据库的日志,例如:update、delete等语句
但是,开启sql打印日志,日志量会增大很多。
建议是在有需要的情况下开启,查完问题后关闭。
设置路径:配置中心 → 系统高级配置 → 数据管理 → 元数据管理。
表建立后,修改过字段类型(文本和长文本),
由原来的长文本,改为文本后,原有数据因为字符长度无法显示,就会出现这种情况。
在表字段中,有一列“Unicode编码”的设置,它是做什么用的呢?
针对不同的数据库,存储的内容也有不同。
我们选的字段类型为文本的时候,数据库建立的字段类型,就有2个选择varchar和nvarchar。
例如:
varchar(10)与nvarchar(10)
前者是非unicode型,存储字符按1个算(内部空间存储占1字节),存储汉字的话按2个算,就是可以存10个字符或者5个汉字。
后者是unicode型,存储什么都是按1个算(内部空间存储占2字节),就是可以存10个字符或10个汉字。
varchar(10)与nvarchar(10)就是分别占10个字节和20个字节。
请在构件引用中添加引用:
SysMgrComp(后台管理构件)
获取汉字首字母拼音API:
SysMgrComp.API_ConvertToFirstSpell(汉字转换为汉语拼音首字母,英文字符不变)
获取汉字全拼API:
API_ConvertToPingYin(中文转换成拼音)
进入配置中心,设置WEB服务上下文。
设置路径:配置中心 → 系统高级配置 → 数据管理 → 元数据管理。
修改构件标识 “
com.toone.v3.platform-01core
” 配置项webContext
,填入用户值,保存,应用服务器重启后生效。
窗体关闭前事件主要用作数据校验,可以在这个事件中配置取消窗体关闭操作。
用途:数据校验
对象:对话框窗口(静态)
规则:取消窗体关闭
场景:在对话框窗口中填报了一些数据,用户没有点击保存,此时关闭对话框窗口,需要做校验提醒。
这个场景可以在窗体关闭前事件中检查实体是否有改变,如果有改变则弹出提示,根据用户选择来决定是否关闭窗体。
问题描述:
零代码开发系统中,如果,不小心把构件视图,或者工具箱关闭了,怎么办?
怎么把它们调出来呢?
解决方案:
不用担心,有2种方式可以实现。
重置视图,可以恢复默认状态。
视图管理,可以设置视图的显示不显示。
零代码开发平台基于H5实现,可同时支持App、微信、钉钉、PC浏览器等终端。
在自定义div窗体的模板内定义一个button标签。
给该标签设置id属性。
在脚本中的mounted方法内调用vdk接口。
例如,目标窗体有 2 个窗体输入:
- 参数一:id,文本类型
- 参数二:entity,实体类型
(一)拼接参数
- 实体参数格式,如下
"entity":{ -------------------------------- 实体编码
"metadata":{------------------------------ 固定节点
"model":[{---------------------------- 固定节点
"fields":[{------------------------- 字段节点
"code":"id",---------------------- 字段编码
"type":"char",-------------------- 字段类型
"defaultValue":null--------------- 默认值
},{
"code":"name",
"type":"char",
"defaultValue":null
}]
}]
},
"datas":{------------------------------ 固定节点
"values":[{------------------------- 数据节点
"id":"1",------------------------ 字段编码和值
"name":"A"----------------------- 字段编码和值
},{
"id":"2",
"name":"B"
}],
"recordCount":2 -------------------- 数据条数
}
},
其他非实体类型的格式:"编码" : "值"
固定格式:
{"data":{"inputParam":{"variable":{}}}}
,上例的参数格式放在 variable 节点下,即:
{
"data":{
"inputParam":{
"variable":{
"id":"aaaaaa",
"entity":{
"metadata":{
"model":[{
"fields":[{
"code":"id",
"type":"char",
"defaultValue":null
},{
"code":"name",
"type":"char",
"defaultValue":null
}]
}]
},
"datas":{
"values":[{
"id":"1",
"name":"A"
},{
"id":"2",
"name":"B"
}],
"recordCount":2
}
}
}
}
}
}
(二)新建变量
在初始值里填入上一步拼接好的参数值。
(三)配置 token 参数
编码的值是上一步定义的变量。
如果勾选了是否 encodeURI
编码,则只需要编码一次:EncodeURIComponent(BR_VAR_PARENT.param)
如果没有勾选是否 encodeURI
编码,则需要编码两次:EncodeURIComponent(EncodeURIComponent(BR_VAR_PARENT.param))
实体的字段类型说明 | |
---|---|
文本 | char |
长文本 | text |
小数 | number |
整数 | integer |
布尔 | boolean |
日期 | date |
长日期 | longDate |
银弹谷V平台现以完美支持连接主流的SQLServer、Oracle、DB2、MySQL、H2、Postgresql数据库,还有国产数据库DM达梦、GBase南大通用。
- SQLServer:2008、2010、2012
- MySQL:5.5、5.6、5.7,5.5以下不支持
- Oracle:10g、11g、12c
如何设置自己想要的数据库,请参考:配置数据库 。
条件:
执行系统的当前版本,必须是2018年1月份之后的。
准备工作:
打包一个64位操作系统的V平台服务器版。
操作步骤:
把32位操作系统的执行服务关闭,删除目录中的jre文件夹,把新打包的64位操作系统的执行系统目录里的jre文件夹拷贝过来。
修改一个配置文件。此配置是为了之后的系统备份还原。
设置完成后,启动服务。
问题描述:
基于vbase的账号信息,我们在自制登录窗体的时候,需要注意哪些地方?
解决方案:
基于vbase的账号信息,自制的登录窗体需要注意:
因为 vbase 里账号的密码,是经过加密处理保存在数据库中的。
所以,在调用
API_AccPwdIdentityAndLogin(API_账号密码校验与登录)
时,需要把界面上输入的密码经过加密处理,才能作为参数传给API,使用表达式函数 MD5Encrypt(),进行加密处理。
V平台开发的项目可在javaweb容器上运行。
支持 windows 和 linux 操作系统,可单独运行,也可以外加与
tomcat
、apache
、jboss
、weblog
、nginx
等结合使用。
问题描述:
通过V平台可以做哪些方面的系统,开发方向主要是什么?
解决方案:
开发方向主要是业务管理系统,ERP等。
如果是V平台不支持的功能或页面,都有二次开发的通道去扩展,来满足不同行业的需求。
零代码开发V平台内有网页窗体,使用的是V平台封装的UI组件库——VUI。
请参考:产品离线升级 。