Пользовательское поле с InventoryAttribute и PXRestrictor на основе ItemClass больше не работает в 2018R1 - PullRequest
0 голосов
/ 22 октября 2018

У нас есть настраиваемое поле с поиском / селектором для инвентарного предмета, которое я ограничил только определенным классом предметов.В 2018R1 поле ItemClassID теперь является целым числом, и мне нужно сравнить его с полем ItemClassCD.

Мой PXRestrictor может получать доступ только к полям из исходного ЦАП.Как лучше мне переписать это, чтобы приспособиться к изменению класса предметов?

        #region ParentInventoryID
    [Inventory( IsKey = true, Visibility = PXUIVisibility.SelectorVisible, DisplayName = "Parent Inventory ID")]
    [PXRestrictor(typeof(Where<InventoryItem.itemClassID, Equal<ItemClass.cabledTransceiverFinishedProduct>>), "Parent is not a cabled transceiver finished product.")]
    [PXDefault()]
    [PX.Data.EP.PXFieldDescription] 
    [PXParent(typeof(Select<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<parentInventoryID>>>>))]
    public Int32? ParentInventoryID { get; set; }
    public abstract class parentInventoryID : IBqlField { }
    #endregion

1 Ответ

0 голосов
/ 22 октября 2018

Новая таблица INItemClass была создана для хранения класса элемента инвентаризации.Поле ключа InventoryItem.INItemClassID указывает на запись INItemClass .

Я думаю, что атрибут Inventory по умолчанию не присоединяется к INItemClass, поэтому вам придется добавить это соединение в параметр типа атрибута..

С объединением INItemClass вы можете ограничить текстовое поле INItemClass.itemClassCD:

[Inventory(typeof(Search2<InventoryItem.inventoryID, 
                  InnerJoin<INItemClass, On<INItemClass.itemClassID, Equal<InventoryItem.itemClassID>>>>),
           typeof(InventoryItem.inventoryCD), 
           typeof(InventoryItem.descr), 
           DisplayName = "Parent Inventory ID")]
[PXRestrictor(typeof(Where<INItemClass.itemClassCD, Equal<ItemClass.cabledTransceiverFinishedProduct>>), "Parent is not a cabled transceiver finished product.")]
...