【发布时间】:2020-11-13 22:28:45
【问题描述】:
【问题讨论】:
标签: acumatica
【问题讨论】:
标签: acumatica
不确定这是否可行,但如果您只希望用户访问单个分支,则应将其权限限制为单个分支。然后,您可以通过 使用 (new PXReadBranchRestrictedScope()) 进行自定义以启用对其他分支的访问。
public virtual IEnumerable myView()
{
using (new PXReadBranchRestrictedScope())
{
PXResultset<MyDAC> Results = SelectFrom<MyDAC>
.Where<MyDAC.inventoryID>.IsEqual<InventoryItem.inventoryID.FromCurrent>>
.View.Select(Base);
foreach (PXResult<MyDAC> result in Results)
{
MyDAC myDAC = result;
yield return new PXResult<MyDAC>(myDAC);
}
}
}
在 MyDAC 中,包含一个用 BranchIDAttribute 修饰的 BranchID 字段。
#region UsrBranchID
[Branch(IsKey = true)]
[PXDefault(typeof(AccessInfo.branchID))]
[PXUIField(DisplayName = Messages.FldUsrBranchID)]
public virtual int? UsrBranchID { get; set; }
public abstract class usrBranchID : PX.Data.BQL.BqlInt.Field<usrBranchID> { }
#endregion
using (new PXReadBranchRestrictedScope()) 将覆盖通常伴随用户定义的访问和返回所有分支的数据的分支限制。到目前为止,我只需要在一个地方执行此操作,因此修改范围并不大。
你可以在How do I return data for other branches for a user with access to only one branch?看到我有类似需求的更多细节
【讨论】: