Удалить требуемого владельца из задачи - PullRequest
0 голосов
/ 14 октября 2019

При создании новой задачи, связанной с делом, Acumatica требует, чтобы владелец был назначен для этой новой задачи. Что мне нужно сделать, чтобы убрать это требование? Я использую 18.210.0010. Спасибо.

1 Ответ

0 голосов
/ 14 октября 2019

Проверка поля Владелец выполняется в событии RowPersisting :

protected virtual void CRActivity_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
        {
            var row = e.Row as CRActivity;
            if (row == null) return;

            if ((e.Operation == PXDBOperation.Insert || e.Operation == PXDBOperation.Update) && row.OwnerID == null && row.WorkgroupID == null)
            {
                var displayName = PXUIFieldAttribute.GetDisplayName<CRActivity.ownerID>(Tasks.Cache);
                var exception = new PXSetPropertyException(ErrorMessages.FieldIsEmpty, displayName);
                if (Tasks.Cache.RaiseExceptionHandling<CRActivity.ownerID>(row, null, exception))
                {
                    throw new PXRowPersistingException(typeof(CRActivity.ownerID).Name, null, ErrorMessages.FieldIsEmpty, displayName);
                }
            }
        }

В этом случае, учитывая, что это единственная проверка, имеющая место в событии, вы можете переопределить еечтобы исходное событие не вызывалось:

public class CRTaskMaint_Extension : PXGraphExtension<CRTaskMaint>
  {
    protected void CRActivity_RowPersisting(PXCache cache, PXRowPersistingEventArgs e, PXRowPersisting InvokeBaseHandler)
    {
      //if(InvokeBaseHandler != null)
      //  InvokeBaseHandler(cache, e); //Original Event handler is not invoked
    }
  }

Имейте в виду, что этот ответ показывает, как сделать поле «Владелец» необязательным с технической точки зрения. Однако следует учитывать дальнейшие последствия этого изменения в Acumatica, то есть других страницах, отчетах и ​​т. Д.

...