Как добавить атрибут DAC Acumatica [PXEmailSource] - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу знать, как лучше всего добавить атрибуты ЦАП. Обратите внимание, что мне нужен метод добавления для атрибутов ЦАП, а не для атрибутов полей ЦАП.В частности, мне нужно добавить [PXEMailSource] к некоторым из существующих ЦАП, например: PX.Objects.IN.INRegister Каков наилучший способ сделать это ...?Любая помощь по этому вопросу будет высоко оценен

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете изменить атрибут ЦАП, используя PXSubstituteAttribute

Примечание из Руководство по разработке Acumatica Framework (стр. 95)

Атрибут PXSubstitute
Указывает, что производный ЦАП должен заменить свои базовые ЦАП на конкретном графике или на всех графиках.

• открытый тип GraphType
Получает или задает конкретный график, в котором производный ЦАП заменяет базовые ЦАП.
• открытый тип ParentType
Получает или задает базовый тип DAC, до которого все типы в наследовании Иерархия заменяется производным ЦАП. По умолчанию свойство имеет нулевое значение, что означает, что все базовые ЦАП заменены на производное ЦАП

Примечания
Атрибут помещается в определение DAC, получен из другого ЦАПа. Атрибут используется в основном для декларативные ссылки базового ЦАП в определениях расчетов и ссылки от дочерних объектов к родительским объектам интерпретируются как ссылки на производные ЦАП.

Ниже приведен пример использования Attribute на INRegister ЦАП.

[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   
{ 
  //...    
}
...