在通用功能中查询当前用户

2020-08-17 00:29发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试根据登录的用户列出未清的交货单。 我想将其放在仪表板上的" SQL报告网格"小部件中,但无法以这种方式查询用户。

以下查询工作正常,但我希望SlpCode成为当前登录用户:

选择T0.DocNum AS DeliveryNote,T0.DocDate AS'Posted On',
 Convert(numeric,GetDate())-将convert(numeric,T0.DocDate)转换为"发票延迟天数",
 T0.CardName AS客户,T0.Comments AS注释,ISNULL(T0.NumAtCard,0)AS CustomerRef来自ODLN T0
 T0.DocEntry = T1.DocEntry的内部联接ORDR T1 T0.CANCELED ='N'
 AND T0.DocStatus ='O'
 AND T0.SlpCode ='3'

或者,我尝试使用

 AND T0.SlpCode = [%0] 

,并将[%0]定义为%0 [OSLP |销售员工]; 使用SQL变量向导,但在仪表板上加载它时遇到错误。 通过查询管理器运行该查询时,该查询有效。

我正在为整个团队构建自定义仪表板,因此能够基于用户进行查询确实很棒,但是我无法成功完成此任务。

提前谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试根据登录的用户列出未清的交货单。 我想将其放在仪表板上的" SQL报告网格"小部件中,但无法以这种方式查询用户。

以下查询工作正常,但我希望SlpCode成为当前登录用户:

选择T0.DocNum AS DeliveryNote,T0.DocDate AS'Posted On',
 Convert(numeric,GetDate())-将convert(numeric,T0.DocDate)转换为"发票延迟天数",
 T0.CardName AS客户,T0.Comments AS注释,ISNULL(T0.NumAtCard,0)AS CustomerRef来自ODLN T0
 T0.DocEntry = T1.DocEntry的内部联接ORDR T1 T0.CANCELED ='N'
 AND T0.DocStatus ='O'
 AND T0.SlpCode ='3'

或者,我尝试使用

 AND T0.SlpCode = [%0] 

,并将[%0]定义为%0 [OSLP |销售员工]; 使用SQL变量向导,但在仪表板上加载它时遇到错误。 通过查询管理器运行该查询时,该查询有效。

我正在为整个团队构建自定义仪表板,因此能够基于用户进行查询确实很棒,但是我无法成功完成此任务。

提前谢谢!

付费偷看设置
发送
7条回答
hongfeng1314
1楼 · 2020-08-17 01:29.采纳回答

嗨,

首先,在查询生成器中运行查询并将其保存在查询管理器中。 从工具->用户查询中运行此保存的查询。 然后它将显示正确的结果。

致谢

Nagarajan

d56caomao
2楼-- · 2020-08-17 01:10

谢谢 用于访问SAP社区以获取问题的答案。 既然你是 第一次在这里问一个问题,我建议您熟悉一下 使用 https://community.sap.com/resources/questions-and-answers (如果您 还没有),因为它提供了提示 用于准备可以引起我们成员回复的问题。

应该 您可以根据需要修改问题,方法是选择"操作",然后选择"编辑" (尽管一旦有人回答了您的问题,您将失去编辑功能 问题-但是,如果发生这种情况,您可以在评论中保留更多详细信息。

最后, 如果您希望与读者交流,请考虑将图片添加到 你的个人资料。 操作方法如下: https://www.youtube.com/watch?v=F5JdUbyjfMA&list=PLpQebylwrd-s5 h6RtymfDpoz3vDS 。 通过使用您的照片个性化您的个人资料,可以鼓励读者 回应。

最佳 问候

Mynyna

SAP 社区主持人

Tong__Ming
3楼-- · 2020-08-17 01:12

嗨,Jens,

有一个系统参数,但是它提供了(登录的)用户代码。 请将此查询整合到您自己的查询中,以获取名称:

从OUST T0中选择T0.U_NAME,其中INTERNAL_K = $ [USER] 

此致

Johan

me_for_i
4楼-- · 2020-08-17 01:28

对于感兴趣的人,最终查询如下所示:

我正在使用它在仪表板上的SQL报表上显示已登录的销售人员未清交货单和交货日期。

选择T0.DocNum AS DeliveryNote,T0.DocDate AS"已过帐",Convert(numeric,GetDate())-convert(numeric,T0.DocDate)作为"按天开票延迟",
 T0.CardName AS客户,T0.Comments AS注释,ISNULL(T0.NumAtCard,0)AS CustomerRef,T2.User_Code
 从
 ODLN T0内连接ORDR T1在T0上。[DocEntry] = T1。[DocEntry]
 T0上的内部联接OUSR T2。[UserSign] = T2。[USERID]
 T2.INTERNAL_K = $ [USER]
 AND T0.CANCELED ='N'
 AND T0.DocStatus ='O'
哎,真难
5楼-- · 2020-08-17 01:24

嗨,

首先,销售订单和交货订单之间的链接不正确。

此处 该示例获取当前登录用户的销售订单列表。 使用此概念来构建满足您需求的查询,

选择T0。[DocNum],T0。[DocDate],T0。[CardCode],T1。[DocEntry],T1。[ItemCode],T1 。[Dscription],T2.User_Code

FROM

ORDR T0内连接RDR1 T1在T0上。 OUSR T2 ON T0。[UserSign] = T2。[USERID]

WHERE T2.INTERNAL_K = $ [USER]

问候,

Nagarajan

wang628962
6楼-- · 2020-08-17 01:30

感谢Johan

 SELECT $ [USER] 

返回0,根据我的Google搜索,它只能在连接到字段的FS查询或SDK中使用。

如果没有其他方法可以根据当前登录的用户进行查询,那么我想将其关闭。

非常感谢您的帮助!

追夢秋陽
7楼-- · 2020-08-17 01:28

谢谢

[$ USER]在我的系统上不起作用。 我可以使用以下查询获取当前登录的用户代码

从USR5中选择前1个UserCode,其中SessionID = @@ spid按日期desc,时间desc 

然后通过使用DECLARE,可以将其添加到我的查询中:

 DECLARE @User nvarchar
 设置@User =(从USR5中选择前1个UserCode,其中SessionID = @@ spid按日期desc,时间desc排序)
 选择T0。[DocNum],T0。[DocDate],T0。[CardCode],T1。[DocEntry],T1。[ItemCode],T1。[Dscription],T2.User_Code
 从
 ORDR T0内连接RDR1 T1在T0上。[DocEntry] = T1。[DocEntry]
 T0上的内部联接OUSR T2。[UserSign] = T2。[USERID]
 T2.USER_CODE = @User 

但这给了我0条结果。 如果我用用户代码替换@User,我将得到想要的结果。

我在您的查询中做了同样的操作,使用@User得到0个结果,但是使用我的USER CODE得到了必需的结果

我在做什么错了?

一周热门 更多>