前端常见问题

App端–后端常见问题

下面是根据app进行区分的,查找的时候请根据App:

1.Base和多租户APP

1.1 线上环境菜单和产品线丢失

  1. 先查看ui_menu表,找到对应菜单的is_delete字段,判断是否为1,如果为1,改为0,再重启即可;
  2. 如果is_delete字段值是正确的,判断app_ids字段值是否正确,该值对应的是meta_app表的id,如果不正确,重置种子数据,再重启即可;
  3. 如果上述数据是正确的,登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限;
  4. 如果刷新权限,没有效果,查看tenant_permission表的数据是否正确,即app_name是否正确,code是否重复导致,父子级是否正确;
  5. 如果上述步骤仍然不能解决,可以重启全部容器,其他恢复操作,请参考:产品线与菜单丢失问题

1.2 测试环境数据库迁移到本地,菜单和产品线丢失

  1. 如果平台租户管理员没有菜单显示,参考别的环境的重置base的种子数据接口,使用postman调用,传参为meta_app中base的id;
  2. 调用接口重置种子数据成功后,重启服务;
  3. 如果上述步骤还不能解决问题,请参考1.1问题的排查步骤

1.3 新增或更新的视图不显示

  1. 查看loadview返回的内容是否正确,如果为null或错误,重置该视图的种子数据;
  2. 如果返回的内容和后端配置的视图是一致的,请查看isDisplay的字段值是否为true,如果为false代表未授权,需要重新授权;
  3. 如果授权不生效,查看tenant_permission表是否存在该视图的权限点,根据name进行查询;
  4. 如果不存在,请点击刷新权限(登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限);
  5. 如果还不能恢复,请联系项目支持人员进行恢复

1.4 作用域失效

  1. 首先排查在作用范围选择的模型及字段是否正确,可以查看tenant_action_rule表,根据选择的model_name字段进行查看数据是否正确;
  2. 目前作用域不支持,作用域字段选择ManyToOne,ManyToMany字段,例如主子表都需要作用域,那么两个表都需要配置相应的作用域;
  3. 如果上述内容正确,请检查该用户是否分配相应的作用域及是否关联维度;
  4. 配置信息都是对的,请登录平台租户管理员,在多租户-》多租户管理-》点击同步维度,进行内存数据的同步

1.5 作用域如何开发及使用

作用域如何开发和使用

1.6 后端视图扩展

JsonPath后端视图扩展

1.7 loadView返回结果为null,数据错误或报错

  1. 重置视图的种子数据;
  2. 如果重置后无效果,查看后端日志是否有报错,以及排查使用jsonpath扩展后端视图的内容是否正确;
  3. 如果后端无报错,请查看菜单管理里面对应的模型及视图是否正确

1.8 租户授权失效

  1. 先检查该App是否安装;
  2. 如果已安装,请重新取消授权,再次授权试一下;

1.9 普通用户授权失效

  1. 首先检查在用户角色的权限配置是否分配其权限;
  2. 如果已分配,可以尝试取消授权,再次授权保存

1.10 新增的视图在用户角色-》权限配置显示的权限名字为null

  1. 检查视图是否配置name,和最外层的type在同一层级别

1.11 更换模型名字,导致前端页面报错

  1. 修改菜单视图绑定的模型;
  2. 修改视图绑定的模型

1.12 更换APP名字,菜单丢失

  1. delete from tenant_permission where app_name = '旧app的名字'
  2. 登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限,或重新安装

1.13 平台管理员的账号被锁定,如何处理

  1. 登录数据库;
  2. 修改rbac_user表的status为0,login_count为0

1.14 租户管理员的账号被锁定,如何处理

  1. 登录平台租户管理员的账号;
  2. 在多租户-》租户管理进行解锁

1.15 普通用户的账号被锁定,如何处理

  1. 登录相应的租户管理员账号;
  2. 在用户权限-》用户管理,选择相应的用户账号进行解锁

1.16 前端扩展包不生效,如何处理

  1. 打开F12查看prepareListApps接口,根据前端app的名字找到其返回内容,对比和正常app返回的内容,如果内容格式不同,即为前端扩展包解压失败导致;
  2. 方法一:下载下来前端扩展包,在本地重新解压,压缩,上传,上架,更新;
  3. 方法二:如果方法一没有效果,cd /usr/share/nginx/html/umdComps, rm -rf tech-mbm-common tech-mbm-common.zip,然后在meta_app表将该app的md5置为null,点击更新

1.17 用户绑定多个角色,只显示个别角色的菜单

  1. select * from rbac_user_prefer where user_id = '' and sign_type = 'CURRULE';
  2. 查看sign_content的内容,保存的角色是否为当前已授权的角色id
  3. 如果已授权的角色id不对,请删除重新登录;
  4. 如果删除后重新登录无效,需要升级用户偏好app的版本

1.18 新增的视图在权限配置没有显示

  1. 登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限

1.19 如何忽略作用域

忽略作用域

1.20 如何获取当前作用域

获取当前作用域及实例

1.21 如何修改token的过期时间

  1. 在安全策略修改token的过期时间;
  2. 重新登录;

1.22 新创建的用户,如何修改密码的过期时间

  1. 在安全策略,修改密码的到期时间

1.23 作用域右上角显示的是作用域实例id,不是具体名称

  1. 在业务模型上的某一个属性指定displayForModel为true,用于户右上角作用域实例的显示

2.用户偏好APP–高级表格和基础表格

2.1 如何删除高级表格的内容

  • delete from rbac_user_prefer where user_id = '' and sign_type = 'uiScheme' and sign_id = ''

2.2 设置了高级表格,没有生效

  • 如果用户偏好版本>=sie-snest-user-prefer-v2.8.1-HOTFIX.003,检查loadView的args参数是否有"techAdvancedTable": true的参数;如果前端没有配置,请在nginx的配置文件apps.json加入该配置,请参考:高级表格配置

  • 如果版本低于sie-snest-user-prefer-v2.8.1-HOTFIX.003,请设置一个方案为默认,然后排查loadView是否有返回

3.文件APP(sie-snest-file)

  • 文件上传: InputStream inputStream = (InputStream) i.get("inputStream");
    String originalFilename = (String)i.get("originalFilename");
    String bucketName = (String)i.get("bucketName");
    Map<String, Object> fileInfo = (Map<String, Object>)rs.getMeta().get("base_file")
    .call("putObject", rs, inputStream, originalFilename, bucketName);
  • 文件下载: String fileId = "meta_attacment 的 id";
    InputStream is = rs.get("base_file").call("getInputStream", fileId);

4.数据字典APP

5.日志APP

6.配置中心APP(sie-snest-config)

7.接口集成平台APP(sie-snest-interface)

8.国际化APP

9.工作流APP

10.邮件APP(sie-snest-mail)

11.多数据源APP(sie-snest-datasource)

12.打印组件APP

13.文件预览APP

14.Excel(导入导出)APP

15.消息推送APP

16.编码规则APP

17.API文档

18.流程向导

19.附件APP

20.任务调度APP

引擎端–后端常见问题

1.应用市场

2.白名单失效

3.ManyToOne及ManyToMany相关问题

4.