Добавление функции поиска к альтернативному идентификатору в таблице строк заказа на продажу

#acumatica

#acumatica

Вопрос:

Я хочу добавить pxselector в поле AlternateID в сетке строк заказа на продажу для поиска нескольких альтернативных идентификаторов для одного товара для клиента, указанного в SOHeader. Я добавил следующий код:

 namespace PX.Objects.SO {  
    public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry> {
        #region Event Handlers
        [PXMergeAttributes(Method = MergeMethod.Merge)]
        [PXSelector(typeof(Search<INItemXRef.alternateID, 
            Where<INItemXRef.inventoryID, Equal<Current<SOLine.inventoryID>>,  
            And<INItemXRef.bAccountID, Equal<Current<SOOrder.customerID>>>>>),  
            typeof(INItemXRef.alternateID),
            typeof(INItemXRef.inventoryID),
            typeof(INItemXRef.bAccountID)
        )]

        public void SOLine_AlternateID_CacheAttributeCacheAttached() {}
        #endregion
    }
}
  

Я также удалил текстовый элемент управления из таблицы транзакций и повторно добавил его в качестве селектора.

Мой селектор отображается в поле AlternateID, как и ожидалось, но при нажатии на селектор отображается ошибка "Error #107: View doesn't exist" . Это был пример, который Руслан из Acumatica рассматривал с нами на обучении Framework на прошлой неделе в Огайо, но я, очевидно, пропустил один шаг. Любая помощь будет оценена.

Ответ №1:

Джордж, ты ввел неправильное имя для своего обработчика событий, и это вызывает ошибку. Попробуйте заменить свой обработчик приведенным ниже фрагментом кода:

 [PXMergeAttributes(Method = MergeMethod.Merge)]
[PXSelector(typeof(Search<INItemXRef.alternateID>),
    typeof(INItemXRef.alternateID),
    typeof(INItemXRef.inventoryID),
    typeof(INItemXRef.bAccountID))]
public void SOLine_AlternateID_CacheAttached(PXCache sender)
{
}