确定通用查询的当前用户

Determining Current User for Generic Inquiry

我想创建一些通用查询,列出当前登录 Acumatica 的用户的线索或其他项目。

[4.2 中 GI/Reports 的当前登录用户] () 问题的答案在一般查询中对我不起作用。它按照报告中的描述工作。 我们正在使用 Acumatica 5.20.1757。

在通用查询中仅使用 PX.Data.AccessInfo 会导致错误:序列不包含任何元素。在与另一个 table 的交叉连接中使用它给出:“无效的对象名称:AccessInfo。我 understand/know 没有什么?

我刚刚设计了一个通用查询,列出了当前登录的用户为使用 Acumatica 4.2 的客户创建的所有销售订单。以下是步骤。

  1. 在“通用查询”屏幕的 选项卡中,需要添加 2 table 以及其他所需的 tables(在这个例子中,SO.SOOrder):Data.AccessInfo 和 SM.Users.

  2. 关系 选项卡中,应在所需的 table 和 SM.Users 之间创建 table 关系.联接类型必须为左。例如:SOOrder Left Join Users.

  3. 必须使用用户 table 的 pKID 字段建立 关系 。例如:SOOrder.CreatedByID 等于 Users.pKID.

  4. Parameters 选项卡中,添加一行并为其命名,例如 UserName。模式字段将是 AccessInfo.UserName。必须激活 From Schema 选项。

  5. 条件选项卡中,数据字段Users.UserName等于在#4中添加的参数作为值。

  6. 如果您不希望用户更改定义为参数的默认用户名,请务必查看不同角色中该字段的访问权限 .

虽然上面的答案工作得很好,但这摆脱了 select 名称和配置访问权限的需要。以下示例使用潜在客户。

提供站点地图标题站点地图位置的值,位于查询标题[=158]下方=] 字段/

  1. Tables 选项卡上,select PX.Data.AccessInfo、PX.Objects.CR.Contact、PX.Object.EP.EPEmployee、PX.SM.LoginTrace 和 PX.SM.Users。接受别名的默认值,该别名将在您离开该行后填充。

  2. 关系选项卡上:

a) 设置,活动 选中,Parent Table 联系人 加入类型** 左 **Child Table EPEmployee,Parent 字段 ownerID Condition等于 Child 字段 pKID

b) 设置 Active 选中,Parent Table 用户 加入类型 * * 内**ChildTableEPemployee,ParentFieldcontactIDCondition等于Child 字段 defContactID

c) 设置 Active 选中,Parent Table 用户 加入类型 * * 内**ChildTableLoginTrace,Parent字段用户名条件等于Child 字段 用户名

  1. Parameters 选项卡上,将 Name ** 设置为 Username,将 **Schema Field 设置为 AccessInfo.UserName 和 **显示名称 ** 到用户名。除非您想检查字段的值,否则不应检查活动。

  2. 9行设置满足我的特定条件。他们来了。

a) Active True, Start Brackets (, Data Field Users.IsOnline 条件等于,来自架构正确,值1正确,结束括号 , 运算符

b) Active True, Start Brackets, Data Field LoginTrace.ScreenID 条件等于,来自模式假,值1 GI000009(你的可能不同),结束括号运算符

c) Active False, Start Brackets, Data Field LoginTrace.Date 条件等于,来自模式假,值1现在(),结束括号 ), 运算符

d) Active True, Start Brackets, Data Field Users.UserName 条件等于,来自架构假,值1 =[LoginTrace.Username],结束括号运算符

e) Active False, Start Brackets, Data Field LoginTrace.Username 条件等于,来自模式假,值1 =[EPEmployee.UserID],结束括号运算符

f) Active True, Start Brackets ((, Data Field Contact.ContactType 条件等于,来自模式 FALSE,值1 LD,结束括号 , 运算符

g) Active True, Start Brackets, Data Field Contact.ContactType 条件等于,来自架构 FALSE,值 1 PN,结束括号 ), 运算符

g) Active True, Start Brackets, Data Field Contact.Status 条件等于,来自模式正确,值1已转换,结束括号 , 运算符

h) Active True, Start Brackets, Data Field Contact.Status 条件等于,来自模式真,值1开,结束括号 ), 运算符

  1. 分组选项卡上,将活动设置为真,将数据字段设置为Contact.ContactID

排序顺序、结果网格和入口点由您决定。

注意:我发现此 GI 在 LoginTrace.ScreenID 条件被遗漏的不同查询中失败。没有尝试将左连接用于内部连接,但应该可以。