Посмотрите репозиторий кода в SOShipmentEntry. Найдите SOInvoiceEntry, и он попадет в функцию Action, где он создает счет. Вы можете видеть, что они вызывают функцию adapter.MassProcess, чтобы увидеть, работает ли она в процессе или нет, и выдает исключения, устанавливает информацию или ошибки в зависимости от состояния.
Вы также можете увидеть используемый флаг AllowRedirect.
Вот пример перенаправления на счет в конце создания счета на отправку:
SOInvoiceEntry ie = PXGraph.CreateInstance<SOInvoiceEntry>();
......
......
if (adapter.AllowRedirect && !adapter.MassProcess && created.Count > 0)
{
using (new PXTimeStampScope(null))
{
ie.Clear();
ie.Document.Current = ie.Document.Search<ARInvoice.docType, ARInvoice.refNbr>(((ARInvoice)created[0]).DocType, ((ARInvoice)created[0]).RefNbr, ((ARInvoice)created[0]).DocType);
throw new PXRedirectRequiredException(ie, "Invoice");
}
}