gpt4 book ai didi

acumatica - 扩展基于 Acumatica 投影的 DAC 查询

转载 作者:行者123 更新时间:2023-12-05 02:19:47 25 4
gpt4 key购买 nike

有什么方法可以扩展/修改投影 DAC 的投影查询。

例如,如果我需要在投影中添加连接语句,然后将新连接的表用于可用字段。

向 PXCacheExtension 添加自定义字段按预期工作,但在 PXCacheExtension DAC 顶部指定 PXProjection 查询似乎没有任何效果。

原文:

[Serializable]
[PXProjection(typeof(Select5<EPApproval, InnerJoin<Note,
On<Note.noteID, Equal<EPApproval.refNoteID>,
And<EPApproval.status, Equal<EPApprovalStatus.pending>>>,>,
Where2<Where<EPApproval.ownerID, IsNotNull, And<EPApproval.ownerID, Equal<CurrentValue<AccessInfo.userID>>>>,
Or2<Where<EPApproval.workgroupID, InMember<CurrentValue<AccessInfo.userID>>,
Or<EPApproval.workgroupID, IsNull>>,
Or<EPApproval.workgroupID, Owned<CurrentValue<AccessInfo.userID>>>>>,
Aggregate<GroupBy<EPApproval.refNoteID,
GroupBy<EPApproval.curyInfoID,
GroupBy<EPApproval.bAccountID,
GroupBy<EPApproval.ownerID,
GroupBy<EPApproval.approvedByID,
GroupBy<EPApproval.curyTotalAmount>>>>>>>>))]
public partial class EPOwned : EPApproval{

扩展:

[Serializable]
[PXProjection(typeof(Select5<EPApproval, InnerJoin<Note,
On<Note.noteID, Equal<EPApproval.refNoteID>,
And<EPApproval.status, Equal<EPApprovalStatus.pending>>>,
LeftJoin<RQRequest, On<RQRequest.noteID, Equal<Note.noteID>>>>,
Where2<Where<EPApproval.ownerID, IsNotNull, And<EPApproval.ownerID, Equal<CurrentValue<AccessInfo.userID>>>>,
Or2<Where<EPApproval.workgroupID, InMember<CurrentValue<AccessInfo.userID>>,
Or<EPApproval.workgroupID, IsNull>>,
Or<EPApproval.workgroupID, Owned<CurrentValue<AccessInfo.userID>>>>>,
Aggregate<GroupBy<EPApproval.refNoteID,
GroupBy<EPApproval.curyInfoID,
GroupBy<EPApproval.bAccountID,
GroupBy<EPApproval.ownerID,
GroupBy<EPApproval.approvedByID,
GroupBy<EPApproval.curyTotalAmount>>>>>>>>))]
public class EPOwnedExt : PXCacheExtension<EPApprovalProcess.EPOwned> {

谢谢

最佳答案

要修改投影 DAC 的投影查询,您应该创建一个继承的 DAC 并用 PXSubstituteAttribute 修饰它。以下是 FAAccrualTran DAC 的示例:

[Serializable]
[PXProjection(typeof(Select2<GLTran,
LeftJoin<FAAccrualTran, On<GLTran.tranID, Equal<FAAccrualTran.tranID>>>,
Where<GLTran.module, NotEqual<BatchModule.moduleFA>, And<GLTran.released, Equal<True>>>>), new Type[] { typeof(FAAccrualTran) })]
[PXSubstitute(GraphType = typeof(AssetGLTransactions))]
...
[PXSubstitute(GraphType = typeof(AssetMaint))]
public partial class FAAccrualTranCst : FAAccrualTran
{
...
}

您可以多次使用 PXSubstituteAttribute 装饰 DAC:每 1 个 BLC 1 个 PXSubstituteAttribute,为此将使用自定义 FAAccrualTranCst 而不是基础 FAAccrualTran 类。

如果您没有为 PXSubstituteAttribute 的 GraphType 属性指定任何值,您的自定义 DAC 将替换所有 BLC 中的基础 DAC。

关于acumatica - 扩展基于 Acumatica 投影的 DAC 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com