首页 > 解决方案 > 如何附加 Acumatica DAC 属性 [PXEmailSource]

问题描述

我想知道附加 DAC 属性的最佳方法。请注意,我需要 DAC 属性而不是 DAC 字段属性的附加方法。具体来说,我需要将 [PXEMailSource] 附加到一些现有的 DAC 例如:PX.Objects.IN.INRegister 最好的方法是什么......?对此的任何帮助将不胜感激

标签: acumatica

解决方案


您可以使用更改 DAC 的属性PXSubstituteAttribute

Acumatica 框架开发指南中的注释(第 95 页)

PXSubstitute 属性
指示派生的 DAC 应替换特定图形或所有图形中的基本 DAC。

• public Type GraphType
获取或设置派生DAC 替换基本DAC 的特定图形。
• public Type ParentType
获取或设置基本 DAC 类型,继承层次结构中的所有类型都被派生的 DAC 替换为该基本 DAC 类型。默认情况下,该属性具有空值,这意味着所有基本 DAC 都被派生 DAC 替换

备注
该属性位于派生自另一个 DAC 的 DAC 定义上。该属性主要用于使基础 DAC 在计算定义中的声明性引用以及从子对象到父对象的链接被解释为派生 DAC 的引用。

下面是如何AttributeINRegisterDAC 上使用的示例。

[PXPrimaryGraph(new Type[]
{
    typeof(INReceiptEntry),
    typeof(INIssueEntry),
    typeof(INTransferEntry),
    typeof(INAdjustmentEntry),
    typeof(KitAssemblyEntry),
    typeof(KitAssemblyEntry)
}, new Type[]
{
    typeof(Where<INRegister.docType, Equal<INDocType.receipt>>),
    typeof(Where<INRegister.docType, Equal<INDocType.issue>>),
    typeof(Where<INRegister.docType, Equal<INDocType.transfer>>),
    typeof(Where<INRegister.docType, Equal<INDocType.adjustment>>),
    typeof(Select<INKitRegister, Where<INKitRegister.docType, Equal<INDocType.production>, And<INKitRegister.refNbr, Equal<Current<INRegister.refNbr>>>>>),
    typeof(Select<INKitRegister, Where<INKitRegister.docType, Equal<INDocType.disassembly>, And<INKitRegister.refNbr, Equal<Current<INRegister.refNbr>>>>>)
})]
[INRegisterCacheName("Receipt")]
[Serializable]
[PXSubstitute(GraphType = typeof(REQUIREDGRAPH_WHERE_SHOULD_BE_SUBSTITED))]
[PXEMailSource]          
public class INRegisterExt: INRegister   
{ 
  //...    
}

推荐阅读