9.0.103用户自定义属性值数据库get为NULL
本帖最后由 zhangsheng 于 2024-4-19 09:37 编辑在数据表行权限设置里,采用自定义调用用户的自定义属性,设计器设置完毕后,发布到服务器,服务器传给数据库的动态SQL指令里,有关自定义属性的值为“NULL”;自定义属性在数据库里的值是存在的。
还附加测试了一下,调用用户的固有属性(Email字段),是可以传参过去,但如果Email改变值后,动态SQL语句还是按照之前的值传参,调用的好像是缓存。这个也是一个问题。
两个问题楼主确认一下,
1.增加了自定义属性之后,是需要半覆盖发布的
2.动态Sql是在哪看到的呢,自己写的还是系统拼接的 设置行权限后,选半覆盖发布了。因为页面总是得到空值,排除页面和服务端问题后,最后只能在数据库端查,发现自定义属性对应的传参全是NULL。 楼主把用户数据备份发来我们调查一下吧,
可以在这里插入用户的自定义属性,或者用一个页面,表格绑定用户信息视图,查看自定义属性的值
本帖最后由 zhangsheng 于 2024-4-16 10:20 编辑
老师,按照你的方法,我在页面绑定自定义属性(底色为橘色)
发布到服务器,页面得不到数据
接下来我查看内建用户,发现报错:
上面查看用户报错,我把服务器的用户管理数据库指向 应用的数据库/开发的外库,都一样报错;这两个数据库的用户信息都正常。
这个是不是我这个版本(9.0.103.1)的问题?
应该不是版本的问题,楼主给用户配置的这个库对应用户有修改表结构的权限吗,
获取一下服务管理器的错误报告我们看看
一看就会,超有用活字格技能:四十五,错误日志收集功能
https://gcdn.grapecity.com.cn/showtopic-52854-1-1.html
(出处: 葡萄城开发者社区) Joe.xu 发表于 2024-4-16 18:06
应该不是版本的问题,楼主给用户配置的这个库对应用户有修改表结构的权限吗,
获取一下服务管理器的错误报 ...
版主,从数字库查询,用户能成功修改自定义属性。
服务器不仅get不到用户自定义属性,有关用户的一些命令也会报错,比如/UserView/GetUserList,/bpm/user/ListUsers。
设计器里用户表在外库A,发布后服务器应用里还是外库A,我手动改成了外库B,又在用户信息数据库配置手动改成数据库B,这样操作是否有影响?
也可能是我的环境变量之类有了问题,我把报错日志和一个访问异常信息打包在附件里,请版主帮忙看看。
看日志中频繁有以下报错,猜测是不是对应的表中有ID是NULL
设计器里用户表在外库A,发布后服务器应用里还是外库A,我手动改成了外库B,又在用户信息数据库配置手动改成数据库B,这样操作是否有影响?您这个操作还真是第一次听说;P,设计器中也没法转成外联库呀,一般常规的操作就是设计器使用默认的,发布之后可以把用户数据转外联,这样才能把设计器的用户信息和服务器同步。
本帖最后由 zhangsheng 于 2024-4-18 12:23 编辑
Joe.xu 发表于 2024-4-17 17:28
看日志中频繁有以下报错,猜测是不是对应的表中有ID是NULL
用户数据表在内库,只能通过视图方式访问,目前用户管理V2插件还不能操作自定义属性,只能转外库了。
转外库后,设计器的内库用户表仍然存在。在设计器设计工程过程中读取内库数据,运行时用户部分读取设计器的外库,发布到服务器后用户部分访问应用的外库。
涉及到用户经常出现的空值报错信息:
这个空值错误,会影响到行权限的那个SQL命令传参为null(红色的p2,p3应该是用户自定义属性的值才对)
如果把上面那个p2换成用户的系统属性,如email属性,就不是空值了。
本来我都想用email先开发着,但是活字格系统用户email属性读的是暂存,刷新email值后,动态SQL的传参不变:'(。
这个问题可能是表的数据空值,但是也可能是数据获取拼装过程出了错误。如果从用户系统属性就没有问题看,应该可以先排除安装环境的问题。
我查了下自定义属性的有关表,应该没有id为空的情形。
我猜最大可能:设计器里用的是内库用户表,内库数据表有自带视图,这个自定义属性很可能是从视图得到的。据我测试,活字格用户内库视图不会自动建设到外库,所以设计器与服务器的外库都没有那个视图。这就造成设计过程没有问题,运行测试与发布后服务器都因为不存在那个视图,一并得不到那个值(表现出来的事实就是这样)。这个过程也没有一个异常信息抛到页面,只表现空值错误。
活字格设计系统视图的是用户和流程。在设计器外库中建立流程自带视图,需要在设计器删除全部流程图,再此创建流程的时候选择外库。用户视图,没有选择的窗口。而想在未来应用里访问编辑自定义属性等用户表,目前又必须把用户建立到外库。
我的感觉也可能不对。请版主再帮忙找一下原因。
240418追加更新--------------------
版主,今天又多测试了几次,结果如下:
1、登录服务器查询内建用户的“request..500”报错(下图),这个错误与用户信息数据库配置相关,如果采用内置库没有问题,配置成外库就这个报错;
2、用户信息数据库配置成外库后,在应用中通过服务端命令调用系统的流程发起命令也报错(下图)。其它流程命令是否错误没有办法测试,因为发起就不成功,没有有效数据(除了流程定义,其它流程数据不能覆盖过来)。
3、用户信息数据库配置无论是内库外库,有关用户表的编辑都指向应用里配置的外库。
4、用户信息数据库配置无论是内库外库,都只能得到用户系统属性,而得不到自定义属性。
5、bpm开头的报错(下图),可能是给我的bpm-server-1.0.0.jar包导致的,里面有地方可能存在问题。
替换成这个JAR包后,在设计器里也总是报错失败:
发布应用的数据库得不到自定义属性这个,应该是个BUG;
服务器的用户信息数据库配置成外库后,在应用中通过服务端命令调用系统的流程发起命令也报错,应该也是个BUG;
服务器的用户信息数据库配置成外库后,服务器加载不了内置用户信息,我倒是认为不是BUG,配置成外库后这个模块就应该灰色禁止访问;
bpm-server-1.0.0.jar的问题好像不稳定,在设计器里报错但是流程能运行。
从以上这些来看,像是操作不当,导致了用户信息紊乱。
在服务管理器上看不到用户信息肯定是不合理的,最基本的修改用户码都办不到了。
建议楼主按照一下正常流程操作一下,
首先把服务管理器的用户转到内置,备份用户,然后把B库中所有涉及到用户的表给全部删除
再到服务器中配置,让其重新转,转完之后不要修改这些表
同时在管理控制台看看用户的自定义属性是否有值
没有值的话,就在设计器中重新发布一下用户数据,这里也要注意,发布的时候只会读取设计器内置的用户信息。
如果以上还未解决的话,希望楼主提供一下用户备份和外联库的类型和版本,我们这边测试调查一下
页:
[1]
2