Постоянство внутри метода execute нативной активности - PullRequest
1 голос
/ 17 июня 2011

Мне нужно выяснить, возможно ли что-то или есть лучшее решение моей проблемы. Ниже приведен сценарий, который у меня есть. Внутри метода Execute действия мне нужно иметь возможность запускать 3 разных метода. Первый представит пользовательский интерфейс (HTML или VXML) и будет ждать ввода пользователя. На этом этапе я ожидаю сохранения рабочего процесса (если возможно). Второй метод будет принимать введенные пользователем данные и проверять их. Если введенные данные верны, будет запущен следующий метод, который обработает данные. Если ввод неверен, пользовательский интерфейс должен быть представлен снова. Это возможно в методе execute или есть лучшее решение для этого сценария?

protected override void Execute(NativeActivityContext context)
    {
        // Present UI and get user's input
        // IRTFunctions.PresentUI(itemRefName);

        // Input validation
        // IRTFunctions.ValidateInput(itemRefName);

        // Additional logic, like setting additional fields
        // IRTFunctions.ProcessAdditionalLogic(itemRefName);
    }

1 Ответ

1 голос
/ 17 июня 2011

Вы не должны никогда не блокировать метод Execute () действия.Это будет активно вредить рабочему процессу и предотвращать его сохранение и, возможно, выгрузку.

Вместо этого вам следует создать закладку с помощью NativeActivityContext и асинхронно перенаправить пользователя на некоторую страницу пользовательского интерфейса с именем закладки.Позже, когда пользователь завершил пользовательский интерфейс, он возобновляет закладку и передает введенные данные.Теперь это могут быть дни или даже недели спустя.Когда закладка возобновляется, рабочий процесс перезагружается и вызывается обработчик возобновления закладки, и вы получаете возможность проверить ввод и решить, что делать.Вы можете создать несколько закладок возобновления, которые нужно явно закрыть, когда вы принимаете ввод как действительный.

...