确定通用查询的当前用户
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 的客户创建的所有销售订单。以下是步骤。
在“通用查询”屏幕的 表 选项卡中,需要添加 2 table 以及其他所需的 tables(在这个例子中,SO.SOOrder):Data.AccessInfo 和 SM.Users.
在 关系 选项卡中,应在所需的 table 和 SM.Users 之间创建 table 关系.联接类型必须为左。例如:SOOrder Left Join Users.
必须使用用户 table 的 pKID 字段建立 关系 。例如:SOOrder.CreatedByID 等于 Users.pKID.
在 Parameters 选项卡中,添加一行并为其命名,例如 UserName。模式字段将是 AccessInfo.UserName。必须激活 From Schema 选项。
在条件选项卡中,数据字段Users.UserName等于在#4中添加的参数作为值。
如果您不希望用户更改定义为参数的默认用户名,请务必查看不同角色中该字段的访问权限 .
虽然上面的答案工作得很好,但这摆脱了 select 名称和配置访问权限的需要。以下示例使用潜在客户。
提供站点地图标题和站点地图位置的值,位于查询标题[=158]下方=] 字段/
在 Tables 选项卡上,select PX.Data.AccessInfo、PX.Objects.CR.Contact、PX.Object.EP.EPEmployee、PX.SM.LoginTrace 和 PX.SM.Users。接受别名的默认值,该别名将在您离开该行后填充。
在关系选项卡上:
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 字段 用户名
在 Parameters 选项卡上,将 Name ** 设置为 Username,将 **Schema Field 设置为 AccessInfo.UserName 和 **显示名称 ** 到用户名。除非您想检查字段的值,否则不应检查活动。
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开,结束括号 ), 运算符 或
- 在分组选项卡上,将活动设置为真,将数据字段设置为Contact.ContactID
排序顺序、结果网格和入口点由您决定。
注意:我发现此 GI 在 LoginTrace.ScreenID 条件被遗漏的不同查询中失败。没有尝试将左连接用于内部连接,但应该可以。
我想创建一些通用查询,列出当前登录 Acumatica 的用户的线索或其他项目。
[4.2 中 GI/Reports 的当前登录用户] (
在通用查询中仅使用 PX.Data.AccessInfo 会导致错误:序列不包含任何元素。在与另一个 table 的交叉连接中使用它给出:“无效的对象名称:AccessInfo。我 understand/know 没有什么?
我刚刚设计了一个通用查询,列出了当前登录的用户为使用 Acumatica 4.2 的客户创建的所有销售订单。以下是步骤。
在“通用查询”屏幕的 表 选项卡中,需要添加 2 table 以及其他所需的 tables(在这个例子中,SO.SOOrder):Data.AccessInfo 和 SM.Users.
在 关系 选项卡中,应在所需的 table 和 SM.Users 之间创建 table 关系.联接类型必须为左。例如:SOOrder Left Join Users.
必须使用用户 table 的 pKID 字段建立 关系 。例如:SOOrder.CreatedByID 等于 Users.pKID.
在 Parameters 选项卡中,添加一行并为其命名,例如 UserName。模式字段将是 AccessInfo.UserName。必须激活 From Schema 选项。
在条件选项卡中,数据字段Users.UserName等于在#4中添加的参数作为值。
如果您不希望用户更改定义为参数的默认用户名,请务必查看不同角色中该字段的访问权限 .
虽然上面的答案工作得很好,但这摆脱了 select 名称和配置访问权限的需要。以下示例使用潜在客户。
提供站点地图标题和站点地图位置的值,位于查询标题[=158]下方=] 字段/
在 Tables 选项卡上,select PX.Data.AccessInfo、PX.Objects.CR.Contact、PX.Object.EP.EPEmployee、PX.SM.LoginTrace 和 PX.SM.Users。接受别名的默认值,该别名将在您离开该行后填充。
在关系选项卡上:
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 字段 用户名
在 Parameters 选项卡上,将 Name ** 设置为 Username,将 **Schema Field 设置为 AccessInfo.UserName 和 **显示名称 ** 到用户名。除非您想检查字段的值,否则不应检查活动。
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开,结束括号 ), 运算符 或
- 在分组选项卡上,将活动设置为真,将数据字段设置为Contact.ContactID
排序顺序、结果网格和入口点由您决定。
注意:我发现此 GI 在 LoginTrace.ScreenID 条件被遗漏的不同查询中失败。没有尝试将左连接用于内部连接,但应该可以。