用户同步数据集

  • 文档创建者:文档助手1
  • 编辑次数:47次
  • 最近更新:Wendy123456 于 2020-06-09
  • 1. 概述

    1.1 版本

    报表服务器版本JAR新增功能
    10.02019-12-05「邮箱」支持包含符号#&
    2020-06-08新增用户可编辑选项,勾选后,同步用户可编辑姓名密码手机邮箱,可使用 密码忘记 功能。已存在用户的以上字段在定期同步时将不再更新

    1.2 应用场景

    企业职工人数是相当多的,并且由于人员的流动性,用户信息一直在变化,如果每次都通过手动添加修改,工作量将会非常大。FineReport 用户同步数据集功能可以实现动态更新平台中的用户信息,使之随着数据库中的用户信息一起变化。

    1.3 功能简介

    平台提供了同步数据集功能,可将已有的用户信息直接导入到决策系统中,并且与数据库中数据保持一致。

    同步用户设置了「同步频率」,到达设定频率后自动同步,不断把数据源中变化的数据同步到平台,可自动进行多次同步;平台用户来源只能是当前同步的这一个数据集,不可能是多个数据集的集合,切换数据集同步就会把之前同步的清空。

    注:不同于 手动添加用户 的方式,开启了数据集同步后,用户信息将跟随数据集同步,动态改变、实时更新,即若数据库信息改变后,决策系统中的用户信息也会随之改变。

    2. 同步用户数据集

    2.1 将用户信息定义为服务器数据集

    具体步骤请参见:导入用户 文档的 3.1 节内容。

    注1:同步用户数据集时,若服务器数据集为 树数据集 ,顶层机构的父机构应为空值。

    注2:平台用户来源只能是当前同步的这个服务器数据集,不可能是多个服务器数据集的集合;切换服务器数据集后,清空之前同步信息。

    2.2 开启数据集同步

    1)以管理员身份进入数据决策系统,点击管理系统>用户管理>所有用户,点击同步用户按钮。如下图所示:

    注:「同步用户」功能点旁边的两个选项,「添加用户」和「导入用户」步骤请参见:用户管理

    23.png

    2)弹出用户更新提示框,选择清空现有用户信息及权限等设置,重新写入,点击确定。如下图所示:

    24.png

    仅更新现有用户基本信息,不改变权限等设置:

    • 如果现有用户不在服务器数据集中,该用户会被删除

    • 如果现有用户也在服务器数据集中(用户名相同),该用户对应的 ID 不变,权限也都保留

    • 与服务器数据集中不相同的「部门-职位」信息会被全部删除

    清空现有用户信息及权限等设置,重新写入:

    现有用户、用户权限、部门职位、等都会被删除,重新添加新用户

    注:这两种方式在切换同步数据集时,都不会删除角色信息。

    2.3 配置同步数据集

    配置同步数据集信息,如下图所示:

    1591170806657050.png

    2.3.1 同步频率

    同步服务器数据集的间隔时间,默认为43200秒。

    同步用户设置了同步频率,可自动进行多次同步,到达设定频率后自动进行同步,不断把服务器数据集中变化的数据同步到平台。

    注:同步频率不宜过高,否则会导致后台日志不断刷新,日志体积无限膨胀。

    2.3.2 用户可编辑

    2020-06-08 及之后的 JAR 新增用户可编辑按钮,该按钮默认不勾选,勾选后,具体功能如下表所示:

    注:用户同步后,除 忘记密码功能 可使用外,密码策略功能 对同步用户不生效。

    用户身份说明
    超级管理员

    1)再次同步时,平台现存用户的姓名密码手机邮箱字段将不再更新

    2)可编辑平台现存用户的姓名手机邮箱密码,不可编辑角色

    3)超管可在「账号设置」处编辑姓名密码手机邮箱

    4)可在登录页使用 忘记密码 功能

    次级管理员

    1)可修改有权限用户的姓名手机邮箱密码,不可编辑角色

    2)可在登录页使用 忘记密码 功能

    3)次管可在「账号设置」处编辑姓名密码手机邮箱

    普通用户

    1)同步用户可在「账号设置」处编辑姓名密码手机邮箱

    2)可在登录页使用 忘记密码 功能

    2.3.3 服务器数据集

    选择用户信息对应的服务器数据集。

    同步成功后,FineBI 平台不能直接修改用户相关信息,例如密码、手机号、邮箱等等,只能在服务器数据集中修改。

    2.3.4 用户重复验证字段

    用户重复验证字段包含两种验证方式:用户名用户ID

    用户名:

    同步用户数据集时,「用户重复验证字段」选择用户名fine_user 用户表 中的ID字段值将由系统随机生成。如下图所示:

    6.png

    用户ID:

    同步用户数据集时,「用户重复验证字段」选择用户IDfine_user 用户表 中的ID字段值为同步用户时服务器数据集中的用户 ID 。如下图所示:

    注:由于服务器数据集中没有「超级管理员」信息,所以同步后 fine_user 表中超管 ID 字段由系统生成。

    6.png

    2.3.5 部门/职位/角色重复验证字段

    职务重复验证字段部门重复验证字段角色重复验证字段包含两种验证方式:名称ID

    本节以职务重复验证字段为例,介绍选择名称ID时的产品逻辑。

    名称:

    若重复验证字段选择名称,那么数据源中名称相同但 ID 不同的职务会作为一个职务看待,若同一部门下有两个名称为「财务」的不同职务,会直接显示为同一个职务,其下用户也会合并显示。但如果两个「财务」属于不同部门,则虽算作一个职务,但因部门-职务关系的不同,其下用户不会合并在一起显示。

    ID:

    若重复验证字段选择ID,那么职务的 ID 、名称都必须是一对一且唯一不重复的关系,同一 ID 对应多个名称 、同一名称对应多个 ID 都不允许。

    注:配置 ID 项后会直接使用客户提供的 ID 项作为我们的 FineDB 中的 ID,如果下次同步时用户名称发生改变,那么他的权限等还会保留,部门、职务、角色同理。

    2.3.6 字段名称

    用户名、姓名、密码、部门名称、职务名称、角色名称、手机、邮箱为对应服务器数据集中的字段名称。

    注:2019-12-05 及之后的 JAR ,邮箱支持包含符号‘#’和‘&’。

    2.3.7 加密方式

    有两种加密方式,内置 SHA 加密自定义密码加密

    内置 SHA 加密:

    自定义密码加密,即自定义一个密码加密类,加密方式在类中描述,并保存在%FR_Home%\webapps\webroot\WEB-INF\classes文件夹中。自定义加密示例详情参见:简单权限之密码加密

    注:自定义加密算法,不管该算法的具体方式是什么,都必须继承 FineReport 的 AbstractPasswordEncode 类,并加上返回判断明文密码和密文密码是否一致结果方法才可行。

    自定义密码加密:

    FineReport10.0 之前版本采用 MD5 加密算法,FineReport10.0 在 MD5 加密算法的基础上采用 SHA256 二次加密。用户从旧版本升级到 FineReport10.0 时升级工具会自动把旧密码再经过一次 SHA256 加密,以保证密码安全,如果有用户通过接口自定义修改密码,则同样需要在 MD5 加密基础上,再进行一次 SHA256 加密。

    2.4 同步效果

    同步用户对话框设置完毕后,点击确定,会显示同步结果面板。如下图所示:

    22.png

    1)同步完成后,同步用户管理按钮处,会新增两个下拉选项,如下图所示。

    • 立即同步:点击后立即进行一次用户数据集同步

    • 编辑:打开同步用户对话框,可修改同步用户数据集配置

    Snag_2eb3bcb3.png

    2)用户信息保存在 FineDB 数据库的 fine_user 表中,fine_user 用户表 中用户密码是内置加密之后的密码,而不是本文 2.1 节服务器数据集中的密码。同步成功后,用户登录数据决策系统时使用服务器数据集中的密码登录。

    fine_user 表字段信息如下图所示:

    16.png

    3. 更新用户信息

    开启用户同步后,不能直接在平台删除用户增加用户修改职务等,需要在数据源中修改信息后,在平台中进行同步。本节以增加用户为例,介绍更新用户信息的步骤。

    注:2020-06-08 之前的 JAR ,可参考本章方法更新用户密码。

    3.1 修改同步数据源信息

    1)修改用户信息表userinfo,在userinfo表中新增a用户,如下图所示:

    1591172764534030.png

    3.2 同步用户信息

    在平台中同步数据源信息有两种方法:

    • 手动同步,即在平台中点击立即同步按钮同步用户信息

    • 自动同步,即等待一段时间,到达设定的同步频率后将自动进行同步

    3.2.1 手动同步

    1)以管理员身份进入数据决策系统,点击管理系统>用户管理>同步用户管理>立即同步,如下图所示:

    12.png

    2)Anna 用户登录数据决策系统时,使用新密码即可访问平台。

    3.2.2 自动同步

    到达设定的同步频率后将自动进行同步,不断把服务器数据集中变化的数据同步到平台。

    「同步频率」具体介绍请参见本文 2.3.1 节内容。

    4. 关闭同步效果

    用户若需要关闭同步效果,在「用户管理」界面点击添加用户导入用户,切换到内置用户状态,就可关闭同步效果。如下图所示:

    注:添加用户和导入用户的具体步骤请参见 用户管理 

    方法一:点击添加用户按钮

    14.png

    方法二:点击导入用户按钮

    15.png

    5. 注意事项

    5.1 次管无法添加/导入用户

    JAR 包为2020-01-15 及之后的 FineReport 设计器,同步状态下次级管理员(以 Jack 为例)登录数据决策系统,点击管理系统>用户管理>所有用户,页面中无添加用户导入用户的按钮,即不能手动添加、导入用户。

    如下图所示:

    12.png

    注:次级管理员的设置及「用户管理」模块的授权请参考 分级权限分配

    5.2 同步结果面板报错

    配置了 ID 列后会进行一些 ID 校验以防入库时冲突。此时出错的数据也会列在结果面板中。下面罗列报错情况。

    5.2.1 ID 为空

    报错信息如下图所示:

    原因:勾选了 id 后,不允许出现 name 不为空,但是 id 为空的情况。如下图所示:

    5.2.2 与原有 ID 冲突

    报错信息如下图所示:

    原因:勾选 ID 之后更改用户名,但是不允许更改 ID,否则会报 ID 冲突的错误,比如原本 Alice 的 id 为 3,现在变动成 2 。

    5.2.3 ID 与其他对象重复

    报错信息如下图所示:

    原因:如下图所示,多个用户名使用了一个 id 时报错。

    5.2.4 对应多个 ID

    报错信息如下图所示:

    原因:如下图所示,当一个用户名却有多个 id 时报此错。

    5.3 名词解释

    部门标记:构建树数据集时选择的原始标记字段。

    父部门标记:构建树数据集时选择的父标记字段。

    5.4 树数据集构建失败

    当同步数据集为树数据集时,往往会因为树数据集构建问题导致同步失败,下面列举各种情况:

    5.4.1 错误码:21300055

    报错信息如下图所示:

    原因:树数据集下,多个部门都用了一个部门标记,比如下图中 DEC 交互,报表的 did 都为 a12。如下图所示:

    image.png

    5.4.2 错误码:21300056

    报错信息如下图所示:

    原因:一个部门有多个父部门标记,比如下图中报表的 pid 有 a1,a2。

    image.png

    5.4.3 错误码:21300057

    报错信息如下图所示:

    原因:如果父部门标记为空,那么此部门就是根部门,如果不为空,且父部门标记找不到对应的部门,则报错。如下图中决策平台的 pid 为 a3,但是没有任何部门的 did 为 a3,也即没有该父部门。如下图所示:

    注:同步用户数据集时,若服务器数据集为 树数据集 ,顶层机构的父机构应为空值。

    image.png

    5.4.4 错误码:21300058

    报错信息如下图所示:

    原因:如果部门名相同,且父部门标记相同,那么说明这就是同一个部门,如果他们的部门标记不同,则报错,如下图中报表的 did 有两个:a13,a12。

    image.png

    5.4.5 错误码:21300059

    报错信息如下图所示:

    原因:如果部门 111 的父标记指向部门 11 ,部门 11 的父标记指向部门 1 ,部门 1 的父标记又指向部门 111 ,构成了环,则报错。

    如下图中帆软软件的父标记为 a111,指向 DEC 研发,决策平台的 pid 为 a1,指向帆软软件,DEC 研发的 pid 为 a11,指向决策平台。

    image.png

    5.5 ID 校验失败

    树数据集情况下,如果还勾选了部门 id,且部门 id 列并非部门标记列,还会做 id 校验工作,会导致全局失败。以下所有示例中部门标记列为 did,父部门标记列为 pid,部门 id 列为 depId。

    5.5.1 错误码:21300054

    报错信息如下图所示:

    原因:如果部门标记为纯数字,比如 11,111,会直接作为 id 项插入到 finedb 的部门表中,此时如果平台又勾选了其他列作为部门 id,且部门标记值和勾选的部门 id 不一样,则报错。建议当数据源当部门标记为纯数字时,使用 sql 语句的字符串拼接一个英文字母。

    image.png

    5.5.2 错误码:21300053

    报错信息如下图所示:

    原因:树数据集情况下,勾选部门 id 后如果部门 id 为空,则直接全局报错。如下图所示:

    5.5.3 错误码:21300051

    报错信息如下图所示:

    原因:帆软软件-报表,与帆软软件-决策平台使用了相同的部门 id。如下图所示:

    5.5.4 错误码:21300050

    报错信息如下图所示:

    原因:当部门存在多个部门 id 时会报此错,如上图中帆软软件-报表有 a12,a15 两个部门 id。如下图所示:

    5.5.5 错误码:21300052

    报错信息如下图所示:

    原因:部门 id 发生改变了,会报错与原有部门 id 冲突

    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!