Skip to main content

平台基础相关问题

101. 前端页面能否实现类似vue架构效果?

平台现有的二次开发自定义窗体、自定义控件都是基于vue框架,可自由引入各类第三方插件和UI库,可根据需求开发各类前端页面、封装各类UI组件。

目前适用于网页窗体、移动窗体。

102. 未识别异常:Cannot read property \'getRuleInstance' of null?

问题描述:

执行期报错:未识别异常 Cannot read property \'getRuleInstance' of null。

img

原因:

在删除方法的时候,会提示 “是否要同步清除关联数据” 。

img

如果你点了「取消」,那么事件里的关联没有被删除,但是关联的方法已经不存在了。

img

解决方案:

可以用开发系统的 “配置检查” 功能,找到出问题的事件和方法,修复它。

img

103. Flash插件初始化失败,请更新您的FlashPlayer版本之后重试?

问题描述:

在使用chrome浏览器打开富文本编辑控件,本地上传图片时,碰到:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!

img

解决方案:

网站设置,允许Flash插件运行。

img

104. 未找到指定模块,请检查! 模块名称?

问题描述:

后台报错 “未找到指定模块,请检查! 模块名称:vjs.framework.extension.publish.vbase_sys_mgr.SysMain.viewLib,版本号:null”。

解决方案:

  1. 登录配置中心,设置路径:配置中心 → 系统高级配置 → 系统诊断 → 业务构件发布状态查询,查看发布失败的构件。

img

img

  1. 如果显示没有发布失败,那么就找到 " vbase_sys_mgr "这 个业务构件,点右边的「重新发布」按钮。

105. 开发系统报cef错误?

这是cef冲突,cef如果开了IE代理设置,会有问题。

解决办法:

Internet选项 → 连接 → 局域网设置:去掉里面的勾。

img

106. 获取Cef调试服务失败?

问题描述:

开发系统登录,打开项目后,弹出“获取Cef调试服务失败”。

原因:

用户的Windows系统,不知道是没有权限,还是什么原因。

安装开发系统时,没有把开发系统添加到Windows防火墙信任里。

防火墙阻止了,服务端口都获取不到,无法启动服务。

解决办法:

设置路径:控制面板 → Windows防火墙 → 允许程序或功能通过Windows防火墙

img

允许另一程序 → 添加开发系统的桌面快捷方式。

img

107. 前端模块不存在,请检查!模块名称?

问题描述:

部署的时候报错“前端模块不存在,请检查!模块名称:xxxx,版本号:null;该模块被模块。。。。依赖”。

原因:

  1. 开发系统和执行系统,版本不配套。
  2. 开发系统配置了规则,但是执行系统没有升级,执行服务里没有这个规则。

解决办法:

开发系统和执行系统同步升级。

108. 谷歌浏览器一直显示adobe flash player因过期而遭到阻止?

原因:

插件过期,谷歌浏览器无法升级导致。

暂时解决方法:

谷歌浏览器属性中,快捷方式-目标后面加上“ --allow-outdated-plugins” ,允许过期插件自动运行。

注:.exe和--allow-outdated-plugins之间有个空格。

img

109. ios9的iPhone无法打开银弹通app问题?

  1. ios9 的 iPhone 在打开 银弹通App 时,弹出未受信任的开发者,记住弹框中冒号后面的 Guangdong Toone Technology Co., Ltd

    注:系统更新常见问题,果粉们无需担心。

    img

  2. 在设置里,进入通用。

    img

  3. 进入设备管理。

    img

  4. 找到所对应的企业级应用:Guangdong Toone Technology Co., Ltd点击进入。

    img

  5. 选择信任,进入。

    img

  6. 点击弹出的弹框中的“信任“。

    img

大功告成,可以愉快的进入银弹通App了!

110. 执行系统启动startup.cmd介绍?

执行系统的所有cmd命令,都存放在 ..\V-AppServer\V3Runtime\bin 目录中。

img

  • startup.cmd:正常启动执行系统。

    在一体化版里面,开发系统会调用这个命令启动测试服务(执行系统)。

  • startupWithDebug.cmd:以调试方式启动执行系统。

    在开发系统中,如果想对内嵌的测试服务进行调试,那么就把startupWithDebug.cmd拷贝成startup.cmd,重启开发系统就可以了。

    当然要做好startup.cmd的备份。

  • setOptions.cmd:如果需要调整执行系统(或者开发系统测试服务)的内存、调试端口、或其他JVM参数,就可以修改这个文件。

    把对应的 rem 去掉, 修改对应的数值就可以了。

    注:系统升级时,startup.cmd、startupWithDebug.cmd会被升级覆盖,但setOptions.cmd会保留用户之前的配置。所以,需要修改JVM启动参数的话,尽量在setOptions.cmd中调整。
  • restartup.cmd:重新启动执行系统。

  • restartupWithDebug.cmd:重新以调试方式启动执行系统。

  • stop.cmd:关闭执行系统。

  • agentCheck.cmd:云监控检查命令,自动检测,无需理会。

111. Error:【userGroup】类型有多个根节点,以下都是根节点!?

问题描述:

img

解决方案:

首先,查询表 v_sys_userGroupv_sys_userGroup_userGroup ,看看有没有这两个 id 的存在。

  1. 如果没有:清除本地数据库缓存,重启服务,手动同步图算法。

    设置路径:配置中心 → 系统高级配置 → 数据管理 → 元数据管理。

    步骤:

    ① 勾选前 2 项:清除 VTable 缓存、手痛同步图算法。

    ② 点击按钮「执行」。

    img

  1. 如果有v_sys_userGroup 表删除一条 id 的记录,v_sys_userGroup_userGroup表,条件 srcUserGroupId 为空,删除对应 id 的记录,清除本地数据库缓存,重启服务,手动同步图算法。
注:此2表为vbase系统表,请谨慎处理,处理不当引发的问题平台不负责处理。

112. 如何支持短地址链接?

支持短地址格式:http://IP:port/form/componentCode/windowCode

默认地址:http://IP:port/module-operation!executeOperation?operation=Form&componentCode=aaa&windowCode=bbb

短地址:http://IP:port/form/aaa/bbb

如果有token参数的话,地址为:http://IP:port/form/aaa/bbb?token={"data":{"inputParam":{"variable":{"aa":"abc"}}}

113. 文件上传大小与速度?

传大文件和很多因素有关,服务器的性能、网络带宽、上传速率、内存大小、超时等等都会影响文件上传的速度 。

测试结果:

  1. 500mb的文件,内网上传用时 5 分钟内。
  2. 900多mb的文件,内网上传用时 11 分钟。

114. 一体化桌面版服务启动报错?

问题描述:

img

解决方案:

设置 IE 或者谷歌为默认浏览器。

115. 基础连接已经关闭:连接被意外关闭?

问题描述:

部署构件的时候,报错 “ 基础连接已经关闭:连接被意外关闭”。

img

解决方案:

  1. 确定数据库连接是否成功。
  2. 看一下服务器内存是否已满。

116. 打包异常,请检查执行文件是否存在?

问题描述:

部署构件的时

如果在打包过程中,报错“打包异常,请检查执行文件是否存在:D:\v3\DevSystm\VDevenv.exe”

解决方案:

本机没有安装 framework4.0

117. SQL查看锁表?

select request_session_id as spid,
OBJECT_NAME(resource_associated_entity_id) as tableName
from sys.dm_tran_locks
where resource_type='OBJECT'

在数据库中查询预览上面 sql ,如果有结果,证明该表正被事务占用,并且事务还没有结束。

解决方案:

  1. 如果不确定此事务是在做什么,或者是谁提交的,请不要动它。
  2. 如果确定此事务是自己提交的,并且知道事务的操作情况,可以执行 KILL spid 来结束此事务,释放表锁。

118. IE8浏览器弹出脚本运行慢?

问题描述:

img

解决方案:

更新 IE8 浏览器补丁 MicrosoftFixit50403 。

119. 构件代码SVN受控注意事项?

Temp.exp 文件夹内保存构件配置过程中产生的临时文件,SVN协同开发时,请务必不要加入SVN受控。

此文件夹默认为隐藏。

img

120. 可能与开发系统存在冲突的软件?

以下是可能与开发系统存在冲突的软件:

  1. 万能五笔
  2. 爱奇艺
  3. 有道词典
  4. 有道翻译

121. 如何设置publish页面失效?

在执行系统文件夹 ..\V3EXE\pages 里,把 publish.jsp 文件删掉,就访问不了了。

下次再想访问的时候,就把它放回去。

img

正确做法,测试环境保留 publish,生产环境删除。

122. 如何修改浏览器页签的图标?

执行系统目录里,替换里面的图标文件就可以了。

(1)访问配置中心时浏览器的图标:

img

(2)访问业务系统时浏览器的图标:

img

图片要求

  • 名称:favicon.ico
  • 尺寸:16*16
注:完成后,清除一下浏览器的缓存。

123. 日志打印级别如何设置?

通过配置中心,可以配置不同的包记录不同级别的日志,

如:com.toone 包日志等级为 INFO,日志只记录INFO或以上等级的记录。

设置路径:配置中心 → 系统高级配置 → 系统维护 → 日志管理

img

此页面为动态页面,编辑完即时生效,重启服务则恢复为默认。

注:控制台日志打印级别若设为DEFAULT则恢复默认设置。

包名称:

  • 控制台日志打印级别:cmd窗口打印、log文件记录。
  • ROOT:包总体日志。
  • 其他:各个包日志。

可新增二次开发的第三方包,并设置日志级别。

日志级别设置,主要打印高于或者等于相应级别的日志。

  • TRACE:追踪。级别较低,一般不会使用。
  • DEBUG:调试。主要用于开发过程中打印一些运行信息。
  • INFO:一般。这个用的最多了。
  • WARN:警告。表明会出现潜在错误的情形,一般是给程序员的一些提示。
  • ERROR:错误。发生错误事件的信息。
  • DEFAULT:默认。恢复默认级别。

img

如果将日志级别设置在某一个级别上,那么比此级别优先级高的日志都能打印出来。

例如,如果设置优先级为INFO,那么ERROR、WARN、INFO 4个级别的日志能正常输出,而DEBUG、TRACE级别的日志则会被忽略。

124. SPI和API的区别是什么??

API (Application Programming Interface)

大多数情况下,都是实现方来制定接口并完成对接口的不同实现,调用方仅仅依赖却无权选择不同实现。

SPI (Service Provider Interface)

如果是调用方来制定接口,实现方来针对接口来实现不同的实现。调用方来选择自己需要的实现方。

img

125. 打包V平台产品时提示“访问VSTORE异常,请稍后再试!”?

问题描述:

img

解决方案:

访问VSTORE异常的原因:

  1. 本机网络问题
  2. VSTORE服务问题。

可以尝试在浏览器访问 vstore.yindangu.com 以及其他网站,来确认是本地网络问题,还是VSTORE服务问题。

126. 如何查看系统实现对应SPI的所有EP?

SPI 下的所有 EP 是可以在 SPI 所在的方法导航栏中查看。

img

如果要查找 EP 对应的方法扩展实现。

可以通过配置中心,查找出 EP 在运行时(构件服务映射)所对应的方法扩展实现。

设置路径:配置中心 → 系统高级配置 → 系统维护 → GogoWeb命令行

  1. 执行命令 component:servicemapping

  2. 显示结果有两部分,其中"原始ServiceMapping"下的信息就是运行时EP所对应的方法扩展实现。

  3. 以构件为分隔:

    [原始ExtensionPoint] 是扩展点信息,有可能是引用构件的扩展点。

    [原始extension] 是扩展点对应的方法扩展实现。

img

127. 如何获取控制台配置管理的值和增加配置管理项?

首选项配置管理只支持代码构件的增删改查。

配置构件使用需要项目上自己二次开发。

相关接口后续会形成文档,再补充。

128. ava.io.IOException:您的主机中的软件中止了一个已建立的连接?

问题描述:

服务报这个错以后就一直连接转圈圈。

img

解决方案:

出现这个错的原因是:服务端写输出的时候,发现连接断开了(连接断开的可能原因是浏览器主动刷新造成的)。

所以一般情况下,不要急着刷新浏览器,就可以避免服务端这种EOF错误。

出现这个错误的话,就重试一下操作吧。

如果可以稳定重现,请联系平台客服人员。

129. 数据库特殊字符保存为乱码的处理?

问题描述:

在项目生产中遇到,使用 sql server 数据库,保存一些特殊字符到表里面后,会显示成问号 ?

解决方案:

对于特殊字符的支持,各数据库的情况如下。

  • mysql:全支持
  • oracle:全支持
  • H2:全支持
  • MSSQL不支持字符:

img

处理步骤:

  1. 开发系统中,表字段定义时,给 Unicode 编码打勾,保存部署。

    img

  2. 在执行系统目录 ..\V3Runtime\userdata\conf\preferences\com.toone.v3.platform-09jdbc\DbCfg\itop ,打开配置文件 config.xml ,修改字符集编码。把false 改为 true ,保存。

    然后,需要重启系统

    img

130. 表达式内有不支持的特殊字符处理?

问题描述:

json 或者 token 的值,如果含有双引号的话,是不能通过表达式的合法性校验的。

因为双引号的转移字符在表达式内部是不支持的。

解决方案:

(1)json

直接把json值赋值给一个方法变量。

调用 WebApi规则 里面的参数,表达式配置这个方法变量。

img

(2)token

一样,先把 token 值赋值给变量 {"data":{"inputParam":{"variable":{"canshu":"#canshu#"}}}}

然后使用【给界面实体/控件/变量赋值】的规则,把#canshu#替换成你的值。

Replace(BR_VAR_PARENT.token,"#canshu#",[aaa].[bbb],True)

131. 报错信息:port out of range:98985?

问题描述:

img

解决方案:

设置的端口太大了,Windows端口号的范围从 0 到 65535 。

img

132. 移动窗体-导航栏控件会将自定义列表组的内容遮挡?

问题描述:

页签栏中配置了导航栏控件在自定义列表组控件上面。

预览后,导航栏控件会将自定义列表组的内容遮挡。

img

解决方案:

导航栏控件有一个「固定」属性,将其勾上,重新部署后则不会再被遮挡。

img

下载:首页.componentFolder.zip

133. 平台硬件推荐配置、最低配置是什么?

说明:

以下最低配置要求与建议配置是按PC作为独占服务器使用。

如果是大型系统,建议采用专业服务器,如IBM服务器。

img

CPU如果不是 I5 7500 这个型号,如何判断性能够不够?

可以使用 CPUZ(1.85)(工具在附件)进行初步检测。

多线程在 1700 左右就是平台最低配置的 I5 7500 水平。

img

下载:cpu-z_1.85-cn.zip

134. 窗体中的字段控件,如文本、小数等,按Tab键时没有按照界面上的顺序跳转焦点?

在开发系统中,窗体空白处点击鼠标右键,可以调整界面控件的Tab顺序。

具体使用请查看演示demo“Tab键的用处”。

img

135. 模态窗体打开后编辑一段时间,然后关闭模态窗体,后面的规则就会报事务超时错误,然后回滚?

原因:

在两个有事务规则间配置了打开规则,打开规则会阻塞后续逻辑执行,停顿50秒后,执行后续规则提交事务,这时后台事务超时早已回滚,导致前端报错。

解决方案:

这个需要调整配置,不要在事务规则间配置打开规则。

  • 规则链:A事务-B事务-打开模态窗体——可以
  • 规则链:打开模态窗体-A事务-B事务——可以
  • 规则链:A事务-打开模态窗体-B事务——不可以

136. 打包APP,生产模式和开发模式有什么区别??

生产模式:

  1. 不可以调试。
  2. 窗体修改后,重新部署之后需要点击升级资源包。

开发模式:

  1. 可以调试。
  2. 窗体修改后,直接部署就可以了。

137. 函数GetEntityRowCount、GetConditionColumnValue、GetEntityRowCountFunc第二个参数的条件值为变量或字符串怎么写?

问题描述:

这三个函数的第二个参数,是一个字符串,其运算结果应该是一个布尔值。

解决方案:

(1)前台函数 GetEntityRowCount(),若参数2中的条件值来源变量,则参数2需要用一个变量代替。

如:

GetEntityRowCount("BR_IN_PARENT.TableName",BR_VAR_PARENT.cs2)

其中 BR_VAR_PARENT.cs2 的值 =ConcatStr("[TableName].[FieldValue]==",BR_VAR_PARENT.cs2_z);

若 BR_VAR_PARENT.cs2_z 为字符串,拼接参数2时,还需要加上双引号(将双引号存储到变量中,再拼接),

如:ConcatStr("[TableName].[FieldValue]==",BR_VAR_PARENT.syh,BR_VAR_PARENT.cs2_z,BR_VAR_PARENT.syh)

其中 BR_VAR_PARENT.syh 中存储的是英文双引号常量。

(2)后台函数 GetConditionColumnValue()GetEntityRowCountFunc() ,若参数2中的条件值来源变量,则参数2需要用一个变量代替。

如:

GetEntityRowCountFunc("BR_VAR_PARENT.TableName",BR_VAR_PARENT.cs2)

其中 BR_VAR_PARENT.cs2 的值=ConcatStr("name==",BR_VAR_PARENT.cs2_z)

若 BR_VAR_PARENT.cs2_z 为字符串,拼接参数2时,还需要加上单引号,

如:ConcatStr("name==","'",BR_VAR_PARENT.cs2_z,"'")

前后台函数:GetTableData

参考后台函数GetEntityRowCountFunc第二个参数的写法。

参考配置见附件:函数demo.zip

138. 未将对象引用设置到对象的实例?

问题描述:

开发系统报错:未将对象引用设置到对象的实例。

解决方案:

把操作系统的缩放比例,调整到100%。

img

139. 第三方附件预览附件报错,报undefined系统异常?

问题描述:

预览附件时页面报错。

img

执行系统日志 ERROR。

img

解决方案:

确认一下服务所在的机子能否访问 http://open.yindangu.com/dcs/,不行的话,联系服务器或网络管理员开通本台服务器对该地址的访问权限即可。

140. H2TreeDataView不支持union?

问题描述:

导入树表数据时报错 H2TreeDataView 不支持 union 。

img

解决方案:

直接导入数据库是没问题的,但是导入前台实体后,又经过多规则在前台处理后保存的话就有这个问题。

原因:传到前台不是以加载方式,是以新增或更新方式,清除了实体状态,导致后台所有id记录都要到数据库再查一遍状态。

建议:使用导入excel到数据库规则

141. 移动端搜索控件不能实现搜索功能?

搜索控件需配置一个光标跳转规则,跳转到控件上,才能实现搜索功能。

下载:APP首页搜索.componentFolder.zip

142. 在开发系统里预览表数据,查询不到?

问题描述

确定数据库表里,是有数据的,但是在开发系统里预览表数据,就是0条记录。为什么呢?

需要确定:

  1. 开发系统默认部署地址的环境,关联的数据库是否正确。
  2. 数据库表里的数据,是否是使用平台的保存规则新增的。
  3. 是否对表进行了数据权限控制。

解决办法:

  1. 有把关联正确数据库的环境的地址设置为默认部署地址。
  2. 控制台里,清除缓存(查询缓存、vsql缓存、vtable缓存)。
  3. 去掉对表的数据权限控制,因为开发系统没有登录账号、没有session。

143. 执行系统在服务器上安装,管理员需要开通哪些域名的白名单?

144. 一体化版本在服务器上安装,管理员需要开通哪些域名的白名单?

一体化版本在服务器上安装,如果服务器开启了防火墙,管理员需要把以下4个域名设置为白名单。

http://vstore.yindangu.com

http://vstore.yindangu.com:8089

http://vstore-login.yindangu.com

http://vstore-service.yindangu.com

145. 开发系统打开报表编辑器报错,报错信息:找不到成员?

问题描述:

有此类提示的,基本都跟注册表相关。

img

解决方案:

开发系统安装后,第一次启动时,需要 “以管理员身份运行” 一次,才能执行某些写注册表的操作,否则没有权限,这个动作只需一次。

img

146. 如何设置/修改服务的会话超时?

v 2.5 版本

  1. 进入目录 ..\webapps\v3\WEB-INF\itop

  2. 打开文件 systemCfg.xml

img

  1. 找到项 key="sessionAliveTime" des="登录后服务器session的存活时间(单位:分钟),设置时间就行了,保存文件,重启服务。

img

v3.x版本

通过设置服务器 session 的存活时间,设置用户登录自动过期时间。

设置路径:配置中心 → 系统高级配置 → 系统维护 → 配置管理 → 系统配置 → 登录后服务器 session 存活时间

img

注意事项
  1. 如果设置的值小于 0 ,会被系统强制采用回默认值 60 min;
  2. 如果需要保持长期生效,那么建议设置一个比较长的过期时间即可;
  3. 不支持永不过期,因为此举会导致服务器内存不可回收的持续消耗,直至重启,才能释放 session 占用的内存。