Проблема с пользовательской кнопкой обработки для генерации NoteID - PullRequest
0 голосов
/ 11 апреля 2019

Создание нового фиктивного экрана обслуживания, чтобы включить универсальный поиск по перекрестным ссылкам на элементы, и дошел до создания новых ЦАП и BLC, даже добавив кнопки «Обработка» на экран, но при нажатии любой из кнопок обработки ничего не происходит (в настоящее время это бросает PXException). В конечном итоге мне нужно использовать кнопку «Обрабатывать все» (помеченную как «Создать NoteID»), чтобы заполнить поле NoteID, чтобы я мог фактически работать над частью универсального поиска.

Это мой график. INItemXRef - фактически новый пользовательский ЦАП с присоединенным полем NoteID (никаких других изменений, созданных непосредственно из базы данных). В конечном итоге мне нужно обновить приведенный ниже код, чтобы заполнить случайные значения пустыми NoteID, поэтому, если есть какие-либо рекомендации относительно следующего шага, которые также будут оценены после решения насущной проблемы:

public class INItemXRefGraph : PXGraph<INItemXRefGraph>
  {
    public PXSelect<INItemXRef> INItemXRef;
    public PXSave<INItemXRef> Save;
    public PXFilter<INItemXRef> MasterView;

    [PXFilterable]
    public PXProcessing<INItemXRef, Where<INItemXRef.noteID, IsNull>> INDocumentList;

    public INItemXRefGraph()
    {
        INDocumentList.SetProcessDelegate(ReleaseDoc);
        INDocumentList.SetProcessAllCaption("Create NoteIDs");
    }

    public static void ReleaseDoc(System.Collections.Generic.List<INItemXRef> list)
    {
        throw new PXException("Hello World");
    }

1 Ответ

1 голос
/ 24 апреля 2019

Попробуйте это

public class INItemXRefGraph : PXGraph<INItemXRefGraph>
  {
    public PXSelect<INItemXRef> INItemXRef;
    public PXSave<INItemXRef> Save;
    public PXFilter<INItemXRef> MasterView;

    [PXFilterable]
    public PXProcessing<INItemXRef, Where<INItemXRef.noteID, IsNull>> INDocumentList;

    public INItemXRefGraph()
    {
        INDocumentList.SetProcessDelegate(
            delegate(System.Collections.Generic.List<INItemXRef> list)
            {
                System.Collections.Generic.List<INItemXRef> newlist = new System.Collections.Generic.List<INItemXRef>(list.Count);
                foreach (INItemXRef doc in list)
                {
                    newlist.Add(doc);
                }
                ReleaseDoc(newlist);
            }
        );
        INDocumentList.SetProcessAllCaption("Create NoteIDs");
    }

    public static void ReleaseDoc(System.Collections.Generic.List<INItemXRef> list)
    {
        throw new PXException("Hello World");
    }
...