#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)
{ }
}