Я создал настраиваемое действие по контрактам, которое обновляет описание, а также атрибуты.Base.Actions.PressSave() не работает над атрибутами с массовыми действиями
Он отлично работает при выполнении одной записи и нажатии кнопки действия, но во время массового действия только обновление обновляется и сохраняется, а атрибуты нет.
Что нужно сделать, чтобы значения атрибутов правильно сохранялись во время массового действия?
public PXSelect<CSAnswers,
Where<CSAnswers.refNoteID, Equal<Current<Contract.noteID>>>> CSAttr;
protected IEnumerable testAction(PXAdapter adapter)
{
//get the activation parameters
var a = CSAttr.Select();
Contract mycontract = Base.CurrentContract.Select();
foreach (CSAnswers item in a.ToList())
{
if (item.AttributeID == "ACTA")
{
item.Value = "Won't Update1";
CSAttr.Update(item); //shouldn't this update?
}
else if (item.AttributeID == "ACTB") //desired mode set by user
{
item.Value = "Won't Update2";
CSAttr.Update(item); //shouldn't this update?
}
}
mycontract.Description = "This Works Fine";
Base.CurrentContract.Update(mycontract);
Base.Actions.PressSave();
return adapter.Get();
}
@AcumaticGuy, не могли бы вы поделиться осуществлением вашего Mass Action? – RuslanDev
Массовое действие генерируется из общего запроса с использованием таблиц PX.Objects.CS.Answers Слева Join PX.Objects.CT.Contract on noteId = refNoteID. Точка входа - это Финансы \ Дебиторская задолженность \ Область работы \ Управление \ Клиентские контракты. Затем включается «Включить массовые действия по записям». На вкладке «Массовые действия» добавьте действие «testAction». Действие отлично работает и обновляет атрибуты по отдельным клиентским контрактам. Мой вопрос - есть ли что-то другое, что мне нужно сделать, чтобы обновить атрибуты vs полей описания? – AcumaticaGuy
Я бы предложил изменить ваш код следующим образом: foreach (CSAnswers item в CSAttr.Select (this)) –