Acumatica 将帐户连接到子帐户

Acumatica 将帐户连接到子帐户,acumatica,Acumatica,我正在尝试创建一个GI,以检索具有每个关联子帐户值的总账帐户列表。我在数据库中查找了GroupMask列,该列通过一点关系将帐户和子表连接在一起,但我不知道如何在GI中连接它们。是否有其他分辨率表可用于链接这两个实体?我在标准Acumatica中找到的唯一内容是屏幕GL403000(按子帐户划分的帐户)。此屏幕是对历史总账数据的查询。虽然我可能错了,但我相信账户和子账户被定义为单独的实体,然后在一起使用时成为合法的组合。例如,子帐户可能映射到部门,而库存帐户可能映射到项目。发放给部门的材料将导致

我正在尝试创建一个GI,以检索具有每个关联子帐户值的总账帐户列表。我在数据库中查找了GroupMask列,该列通过一点关系将帐户和子表连接在一起,但我不知道如何在GI中连接它们。是否有其他分辨率表可用于链接这两个实体?

我在标准Acumatica中找到的唯一内容是屏幕GL403000(按子帐户划分的帐户)。此屏幕是对历史总账数据的查询。虽然我可能错了,但我相信账户和子账户被定义为单独的实体,然后在一起使用时成为合法的组合。例如,子帐户可能映射到部门,而库存帐户可能映射到项目。发放给部门的材料将导致账户和子账户的可报告组合。这意味着您必须查找帐户/子帐户的历史使用情况才能获取列表。这就是GL403000似乎正在做的事情

我不能肯定地告诉你这是否合适,但看看你是否能从以下方面找到你需要的:

总账科目->总账历史->总账子科目

通过AccountID将帐户连接到GLHistory,通过SubID将GLHistory连接到Sub。您需要将结果聚合为唯一的组合或按时段筛选

GL403000背后的实际代码为:

PXSelectBase<GLHistoryByPeriod> cmd = new PXSelectJoinGroupBy<GLHistoryByPeriod,
                InnerJoin<Account,
                        On<GLHistoryByPeriod.accountID, Equal<Account.accountID>, And<Match<Account, Current<AccessInfo.userName>>>>,
                InnerJoin<Sub,
                        On<GLHistoryByPeriod.subID, Equal<Sub.subID>, And<Match<Sub, Current<AccessInfo.userName>>>>,
                LeftJoin<GLHistory, On<GLHistoryByPeriod.accountID, Equal<GLHistory.accountID>,
                        And<GLHistoryByPeriod.ledgerID, Equal<GLHistory.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<GLHistory.branchID>,
                        And<GLHistoryByPeriod.subID, Equal<GLHistory.subID>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<GLHistory.finPeriodID>>>>>>,
                LeftJoin<AH, On<GLHistoryByPeriod.ledgerID, Equal<AH.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<AH.branchID>,
                        And<GLHistoryByPeriod.accountID, Equal<AH.accountID>,
                        And<GLHistoryByPeriod.subID, Equal<AH.subID>,
                        And<GLHistoryByPeriod.lastActivityPeriod, Equal<AH.finPeriodID>>>>>>>>>>,
                Where<GLHistoryByPeriod.ledgerID, Equal<Current<GLHistoryEnqFilter.ledgerID>>,
                        And<GLHistoryByPeriod.accountID, Equal<Current<GLHistoryEnqFilter.accountID>>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<Current<GLHistoryEnqFilter.finPeriodID>>,
                        And<
                            Where2<
                                    Where<Account.accountID,NotEqual<Current<GLSetup.ytdNetIncAccountID>>,And<Where<Account.type, Equal<AccountType.asset>, 
                                        Or<Account.type, Equal<AccountType.liability>>>>>,
                            Or<Where<GLHistoryByPeriod.lastActivityPeriod, GreaterEqual<Required<GLHistoryByPeriod.lastActivityPeriod>>,
                                And<Where<Account.type, Equal<AccountType.expense>, 
                                Or<Account.type, Equal<AccountType.income>,
                                Or<Account.accountID,Equal<Current<GLSetup.ytdNetIncAccountID>>>>>>>>>>>>>,
                Aggregate<
                        Sum<AH.finYtdBalance,
                        Sum<AH.tranYtdBalance,
                        Sum<AH.curyFinYtdBalance,
                        Sum<AH.curyTranYtdBalance,
                        Sum<GLHistory.finPtdDebit,
                        Sum<GLHistory.tranPtdDebit,
                        Sum<GLHistory.finPtdCredit,
                        Sum<GLHistory.tranPtdCredit,
                        Sum<GLHistory.finBegBalance,
                        Sum<GLHistory.tranBegBalance,
                        Sum<GLHistory.finYtdBalance,
                        Sum<GLHistory.tranYtdBalance,
                        Sum<GLHistory.curyFinBegBalance,
                        Sum<GLHistory.curyTranBegBalance,
                        Sum<GLHistory.curyFinYtdBalance,
                        Sum<GLHistory.curyTranYtdBalance,
                        Sum<GLHistory.curyFinPtdCredit,
                        Sum<GLHistory.curyTranPtdCredit,
                        Sum<GLHistory.curyFinPtdDebit,
                        Sum<GLHistory.curyTranPtdDebit,
                        GroupBy<GLHistoryByPeriod.ledgerID,
                        GroupBy<GLHistoryByPeriod.accountID,
                        GroupBy<GLHistoryByPeriod.subID>>>>>>>>>>>>>>>>>>>>>>>>>(this);
PXSelectBase cmd=new PXSelectJoinGroupBy>,
聚合<
Sum>>(本);

如您所见,它将Account连接到GLHistoryByPeriod,然后再将Sub连接到GLHistoryByPeriod。AH继承自GLHistory。

账户和子账户实体是独立的实体,彼此之间没有关系
GroupMask
字段是与他们的关系无关,它与访问限制有关。请更正您的问题并解释您真正需要什么?请注意,帐户和子帐户仅在某些交易或历史实体的范围内连接,例如总账交易(
GLTran
)、应收账款/应付款文档(
ARRegister
APRegister
)和许多其他实体。

如前所述,帐户和子帐户之间没有直接联系。如果您仍然希望在它们之间有某种连接,则考虑添加自定义列(S)。在进行此操作之前,请回答以下问题:

  • 账户和子账户之间的关系是什么
  • 一对一,一对多,还是多对多
  • 关于子账户违约,应适用何种规则
  • 作为一个选项,如果在某个实体上选择了某个帐户,则应选择哪个子帐户
  • 与4相反,如果某个实体选择了某个子科目,则应选择哪个科目
  • 等等。然后,您可以构建定制包,该包将提供关于relationshops的答案