-
-
bigeye0517 小试身手Lv3
发表于2021-5-10 14:51
悬赏1
已解决
前提是我看了权限分配也没发现问题。


12个回答
-
bigeye0517 小试身手Lv3
分析表里的过滤条件是这个:
<#=mkfilter("VIEW_LACK.process=@process.text&VIEW_LACK.person_id=@pid")#>
如果我用admin登录,查看计算日志为:
...
from View_lack a
where (a.process = 'PLATING')
group by a.part_no
...
如果我用另一个账号登录,计算日志是:
...
from View_lack a
where ((a.process = 'PLATING') AND (a.person_id = 'NXA22641'))
group by a.part_no
...
请问这个时怎么产生的呢?
参数列表里就一个@process参数,后边那个@pid是为了外部跳转过来传参用的。
我直接计算报表不应该有这个@pid这个值啊
-
bigeye0517 小试身手Lv3
我过滤条件里用mkfilter的作用应该就是如果有这个@pid就使用这个条件,如果没有就不使用?
嗯嗯。您描述的是只是换了登录的账号为equipment,并没有参数@pid的值,但是计算时候@pid= 'NXA22641'了,对吗?可以排查权限有没有配置数据级次控制。比如登录equipment账号,就只能看到NXA22641的数据。
-
bigeye0517 小试身手Lv3
我找到一些规律,请大神帮忙解决一下。
我有一个用C#开发的程序,里面有一个超级链接,指向的是帖子里提到的分析表。这个超级链接我会将pid带过去,如下面这个link
http://10.192.144.97:8080/abi/ebibase/showreport.do?resid=EANA$2$2$1$9c0c9495dd6d4363b32ba4aa357fe389$c9ca76e1f28c465ca863c670f10ed239&id=equipment&pw=equipment&@pid=NXA14765&calcnow=true
这样就能得到软件当前用户的报告了。
用这种方式在访问完这个分析表后,如果再用这个equipment用户登录ABI,就会得到刚才那个pid分析结果了。似乎是ABI记住了我刚才equipment登录时用的pid这个参数了。
但这又如何解决呢?