1

Мне недавно было поручено изучить Workflow Foundation. Фактической целью будет внедрение системы, в которой конечные пользователи могут определять пользовательские рабочие процессы в развернутом приложении (и, конечно же, использовать их). Лично я никогда раньше не использовал WF (и чтение здесь на SO людей очень сомневается в этом - так я читаю эти вопросы/ответы), и мне трудно найти способ обойти это, учитывая доступные ресурсы для изучения.Пользовательские динамические рабочие процессы и пользовательский ввод

В любом случае, есть некоторые вопросы, например, this, в которых упоминается что-то, что они называют динамическими или определяемыми пользователем рабочими процессами. Они указывают, что WF позволяет «переустановить» конструктора, чтобы конечные пользователи могли определять свои собственные рабочие процессы после развертывания приложения (без вмешательства разработчика (?), Это та часть, о которой я не совсем уверен) ,

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

Я искал образцы в Интернете, но лучшее, что я мог найти, - это приложение с количеством слов - едва ли не просто мир приветствия. Поэтому не так много, чтобы указать мне на правильное направление того, как эта пользовательская функция рабочего процесса действительно работает и как ее можно использовать, каковы ее ограничения и т. Д.

Моя главная проблема заключается в следующем: все в порядке. определить пользовательские рабочие процессы, но ни один рабочий процесс не стоит ни копейки без возможности фактического ввода данных на протяжении всего процесса. Например, даже если единственное, что мне нужно сделать, это зарегистрировать клиента в системе управления жалобами, мне понадобится имя клиента, контакт и т. Д. Если конечный пользователь должен иметь возможность определять любой рабочий процесс, данный набор инструментов делает возможным то, конечно, должен быть способ предоставить потребителям рабочего процесса способ ввода данных через формы. Если рабочий процесс может иметь практически любую природу, то это должны быть данные. В противном случае, если нам нужно реализовать пользовательские интерфейсы самостоятельно, то этот «конечный пользователь создает функцию рабочего процесса» бесполезен, потому что они все равно будут нам требуется реализовать форму или какой-либо ввод данных для отдельных шагов.

Поэтому я предполагаю, что должен быть способ определения «формы» данных, которые необходимо заполнить на любой заданной фазе взаимодействия пользователя рабочего процесса, которую я могу исследовать и динамически генерировать формы на основе данных. Например, если я обнаружил, что требуемые данные состоят из имени и даты рождения, тогда мне нужно будет отобразить на странице текстовое поле и датупиксера.

Что я действительно не мог понять из Q & Как здесь, так и в другом месте, возможно ли это. Могу ли я определить, а затем «запросить» структуру данных, которые будут переданы в рабочий процесс в любой момент? Если да, то как? Если нет, как должна использоваться эта пользовательская функция рабочего процесса, для чего это полезно?

Чтобы немного прояснить это, я мог представить себе что-то, определяющее сложный тип, который будет моделью представления (модель ввода) в обычном приложении MVC, а затем я мог бы отразить его, получить свойства и визуализировать входные данные поля на основе этого.

ответ

3

Windows Workflow Foundation - это рабочие процессы, а не рабочие процессы. Правда, это основной инструмент, созданный Microsoft для создания своих бизнес-продуктов. Но из коробки WWF не имеет компонентов, необходимых для быстрого и легкого создания бизнес-процессов. Если вы хотите отправить электронное письмо в рабочий процесс, вы должны написать это с нуля. Почти все, что вы можете думать о делах с бизнес-точки зрения, вам нужно писать с нуля.

Если вы хотите легко создавать бизнес-процессы с помощью продуктов Microsoft, ознакомьтесь с материалом рабочего процесса в SharePoint. Это самый простой из продуктов Microsoft для работы (по моему опыту). Если это не соответствует вашим потребностям, есть другие продукты, такие как BizTalk.

K2 - это еще одна компания с бизнес-документооборотом, которая использует WWF в качестве базы для более простого создания бизнес-процессов, более старые продукты K2 фактически создают веб-страницы для автоматического сбора данных от пользователя.

WWF очень низкий уровень, возможно, он потерял сцепление после того, как он переписал всю вещь в 4.0. Хотя это не публично заявлено Microsoft, мое личное мнение - Service Fabric (от Microsoft) достигает целей, которые WWF первоначально пытался решить, что было «более надежной средой программирования».