在SAP Business One中,我们可以将已创建的查询保存到查询管理器。我们可以将这些查询用于多种目的,例如:

  • 查询报表
  • 自定义警报
  • 自定义审批
  • 格式化搜索

在这里,我们为您提供如何在查询管理器中获取当前登陆用户的方法,以便您可以根据当前用户筛选数据。事实上这很简单,只需要在查询中添加$[USER]

例子:

#HANA:
select t0."USER_CODE" from "OUSR" t0 where t0."USERID" = $[USER]
#SQL:
select t0.USER_CODE from OUSR t0 where t0.USERID = $[USER]
注意:早期版本以上代码可能不适用,可以使用以下替代方案。
#sql,可以封装成函数
DECLARE @user   INT
SELECT @user = a0.INTERNAL_K
  FROM (SELECT TOP 1 c.[INTERNAL_K]
          FROM [master].[dbo].[sysprocesses] AS a
               INNER JOIN [dbo].[USR5] AS b
                  ON     a.[spid] = b.[SessionID]
                     AND a.[hostprocess] = b.[ProcessID]
               INNER JOIN [dbo].[OUSR] AS c ON b.[UserCode] = c.[USER_CODE]
         WHERE a.[spid] = @@spid AND b.[Action] = 'I'
        ORDER BY b.[Date] DESC) a0

select t0.USER_CODE from OUSR t0 where t0.INTERNAL_K= @user

结果:

image-20230319090321126.png