Добавить пользовательское действие к массовым действиям GI для поставщиков

Вопрос или проблема

Возможно ли добавить пользовательские действия в выпадающее меню массовых действий в общем запросе? Я создал пользовательское действие “Утвердить” для экрана поставщика (AP.30.30.00) с помощью рабочих процессов; однако оно не отображается в выпадающем меню массовых действий. Буду очень признателен за любую помощь.

Изображение 1

Изображение 2

Я попробовал следующее, но продолжал получать ошибку.

using PX.Data;

namespace PX.Objects.AP
{
    public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
    {
        public override void Initialize()
        {
            Approve.IsMass = true;
        }

        public PXAction<Vendor> Approve;
        [PXButton]
        [PXUIField(DisplayName = "Утвердить")]
        public void Approve()
        {
            throw new PXException("Утвердить !");
        }
    }
}

Ответ или решение

Для добавления пользовательского действия к выпадающему списку массовых действий на экране общего запроса в Acumatica ERP, вам необходимо учесть несколько ключевых моментов. Поскольку вы уже создали действие "Одобрить" для экрана поставщика (AP.30.30.00) через рабочие процессы, но оно не отображается в меню массовых действий, необходимо внести определенные изменения в ваш код.

Подход к решению проблемы

  1. Актуализация Кода: Убедитесь, что вы добавили необходимый атрибут [PXMassAction] к вашему действию "Approve". Хотя вы объявили действие как массовое с помощью Approve.IsMass = true;, этого может быть недостаточно, если не указан соответствующий атрибут.

  2. Обновление класса расширения: Обновите ваш класс расширения VendorMaint_Extension, добавив атрибуты для работы с массовыми действиями. Ниже представлен пример обновленного кода:

using PX.Data;

namespace PX.Objects.AP
{
    public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
    {
        public PXAction<Vendor> Approve;

        [PXButton(CommitChanges = true)]
        [PXUIField(DisplayName = "Approve")]
        [PXMassAction] // Обязательно добавьте этот атрибут
        public IEnumerable approve(PXAdapter adapter)
        {
            foreach (Vendor vendor in adapter.Get<Vendor>())
            {
                // Логика одобрения поставщика
                // Включите здесь вашу бизнес-логику

                throw new PXException("Approved vendor: " + vendor.VendorID);
            }
            return adapter.Get();
        }

        public override void Initialize()
        {
            // Присваивание свойства "IsMass" не требуется
        }
    }
}

Объяснение изменений

  • Атрибут [PXMassAction]: Этот атрибут указывает на то, что метод можно использовать как массовое действие, обеспечивая его отображение в выпадающем списке массовых действий. Это ключевой элемент, позволяющий вашему действию появляться в интерфейсе.

  • Параметр PXAdapter: Использование PXAdapter в методе массового действия позволяет обрабатывать несколько записей одновременно, что именно и требуется для действий массового одобрения.

  • Логика обработки данных: Добавьте вашу бизнес-логику внутри циклов, где вы можете обрабатывать каждую запись, принимая решения о ее одобрении.

Проверка и отладка

После обновления кода рекомендуется выполнить следующие действия:

  1. Сборка и размещение: Соберите проект и разместите его в среде Acumatica, где вы делаете тестирование.

  2. Проверка функционала: Зайдите на экран поставщика и проверьте выпадающий список массовых действий, чтобы убедиться, что действие "Одобрить" отображается.

  3. Тестирование: Проверьте, работает ли функционал правильно, и нет ли ошибок при выполнении.

Заключение

Следуя приведенным выше шагам и рекомендациям, вы сможете успешно добавить собственное действие "Одобрить" в выпадающий список массовых действий для поставщиков в Acumatica. Важно тестировать все изменения в тестовой среде, чтобы избежать влияния на рабочие процессы на продуктивной системе. Если будут возникать дополнительные проблемы или ошибки, всегда можно обратиться к документации Acumatica или сообществу разработчиков для получения дальнейшей помощи.

Оцените материал
Добавить комментарий

Капча загружается...