Настраиваемая последовательность действий для каждой последовательности
Мы используем WF в нашей системе, чтобы предоставить пользователям возможность создавать свои собственные потоки с некоторыми специализированными "строительными блоками" (так называемыми действиями), которые мы им предоставляем.
Задача состоит в том, чтобы создать пользовательское действие, которое ведет себя следующим образом:
- его непосредственный контент похож на обычную последовательность, то есть может содержать коллекцию дочерних действий.
- у него есть входной аргумент типа string-list. Для простоты скажем, что это просто одна длинная строка слов, разделенных пробелами.
- реальное поведение - выполнить дочерние слова для каждого слова в списке. Текущее слово должно быть доступно дочернему аргументу, используя неявно объявленную переменную с именем "CurrentItem".
Я надеюсь, что это понятно в любом случае. Если нет, пожалуйста, спросите, и я постараюсь объяснить лучше.
Итак, есть ли у кого-нибудь идеи, как я могу это сделать? Я пробовал несколько подходов, но безуспешно, каждый раз, когда это терпит неудачу на каком-то другом ограничении, которым обладает этот FW.
Большое спасибо за любую помощь!
1 ответ
Если я вас правильно понимаю, я бы построил составное действие с точкой входа, которая анализирует строку и записывает количество аргументов.
Затем он передает выполнение в операцию переключения, которая использует аргумент из строки, чтобы направить выполнение дочернему действию, которое по завершении затем возвращается к действию синтаксического анализатора для получения второго аргумента.
Затем вернитесь к переключателю, дочернему действию, возвратному процессу.
Когда у действия парсера заканчиваются аргументы, вы выходите из составного действия.