Действие Acumatica не выполняется в сценарии импорта

#acumatica

#acumatica

Вопрос:

Добрый день

У меня есть сценарий импорта, который выполняет действие, которое я написал. Действие работает, когда я нажимаю на него на экране клиента, но когда я пытаюсь выполнить его из сценария импорта, как будто оно не выполняется. Я добавил точку останова в C #, чтобы посмотреть, выполняется ли она когда-либо, но она не «ломается».

Вот код, который я пытаюсь выполнить:

    public PXAction<Customer> UpdateCreditRemaining;

        [PXButton(CommitChanges = true)]
        [PXUIField(DisplayName = "Recalculate Credit details")]
        protected void updateCreditRemaining()
        {
            try
            {
                Customer row = (Customer)this.Base.BAccount.Current;
                BAccountExt curBAccountExt = row.GetExtension<BAccountExt>();

                curBAccountExt.UsrUpdateDateTime = DateTime.Now.ToString();
                Base.BAccount.Update(row);
               // Base.Persist();

            }
            catch(Exception ex)
            { }
        }
  

Вот мой сценарий импорта
введите описание изображения здесь

Надеюсь, у кого-то была такая же проблема, и он может помочь.

Ответ №1:

Вы не обновили запись с помощью объекта расширения DAC и не сохранили ее. Попробуйте это…

 Base.BAccount.Update(curBAccountExt);
Base.Save.Press();
  

После обновления кода попробуйте добавить на страницу в виде кнопки, а затем нажмите кнопку, чтобы проверить, работает ли она должным образом. Вообще говоря, если оно работает как кнопка, то оно должно работать в сценарии импорта.

Ваш код обновлен:

 public PXAction<Customer> UpdateCreditRemaining;

    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Recalculate Credit details")]
    protected void updateCreditRemaining()
    {
        try
        {
            Customer row = (Customer)Base.BAccount.Current;
            BAccountExt curBAccountExt = row.GetExtension<BAccountExt>();

            curBAccountExt.UsrUpdateDateTime = DateTime.Now.ToString();
            Base.BAccount.Update(curBAccountExt);
            Base.Save.Press();

        }
        catch(Exception ex)
        { }
    }