Добрый день.
Создан бизнес процесс по подключению клиентов, т.е. работа с контрагентами.
Затача заключается в следующем, нужно параметр диаграммы, в моем случае Контрагент, отображать в гриде, чтобы менеджеры могли отличать процессы по названиям контрагентов.
Подскажите как извлечь параметр определенного процесса.

Нравится

8 комментариев

Андрей, ниже находится ссылка на инструкцию по добавлению колонки в реестр раздела [Процессы]. Инструкция на примере добавления колонки "Контрагент", колонка отражает прямо в гриде контрагента по каждому из запущенных процессов.
Загрузить

С параметром будет сложнее. Необходимо каким-то образом записывать значение параметра в дополнительное поле и отображать его в колонке реестра.
Получить значение параметра можно попытаться через функцию WFGetParamValue:
var AccountID = WFGetParamValue.FinishItem.ParentItems.ParentDiagram, ('AccountID');
Детальное описание работы функции WFGetParamValue Вы можете найти в скрипте scr_WorkflowUtils.

Спасибо Татьяна, но я так понимаю у нас с Вами различные запросы на выборку (sq_Workflow), так как у меня в этом запросе не используются предложения UNION ALL.
Версия : 3.3.1.67
Не могли бы Вы поделиться своим сервисом sq_Workflow?
Я думаю, что в результате этого все мои беды относительно параметров процесса исчезнут :)

Андрей, запрос, который изображен на скриншотах, создавался для примера и не входит в базовую версию, а также (поскольку это всего лишь пример) реализован всего для двух элементов БП: задачи и счёта.

Могу предложить способ, как быстро сгенерировать все UNION в запросе. Выполняете первую часть инструкции (добавление AccountID и AccountName в запрос), создаёте ещё один UNION (без колонок) и сохраняете запрос в файл. На всякий случай создайте его копию. Дальше открываете его xml-редактором и получаете примерно такое:

<?xml version="1.0" encoding="UTF-8"?>
<Service UID="1F4C50F5338E4B5CBD3A4A158B4864B3" USI="Workflow\General\Main Grid\sq_Workflow" ServiceTypeCode="SelectQuery" Caption="sq_Workflow">
	<Parameters>
		<Item Name="GroupID" UID="596057A4D59B41859FAACBBAA354A1C3" DataType="7" Value_ValueType="0">
		</Item>
		<Item Name="OwnerID" UID="3FC9B353834C4110B2E7ACE785E4AB4B" DataType="7" Value_ValueType="0">
		</Item>
		<Item Name="StateID" UID="31BD168E34574B2FB5E5F5FAB22E78D1" DataType="7" Value_ValueType="0">
		</Item>
		<Item Name="DiagramItemType" UID="D5AB9C8810B04309BD99F7BC31FAACFF" DataType="1" Value_ValueType="0">
		</Item>
		<Item Name="ID" UID="BCF58198A8CB401C9C7A7A6BDAF2AED3" DataType="7" Value_ValueType="0">
		</Item>
	</Parameters>
	<Selects>
		<Item Code="SelectTask" UID="33969FC3CB9D464CA8C6866198431BBD" FromTableUSI="tbl_Workflow">
			<Joins>
				<Item LeftTableAlias="tbl_WorkflowInGroup" UID="CF75924B77B3436AA3E8717DB8A9E02D" JoinType="0" RightFieldTableUSI="tbl_Workflow" LeftFieldSQLName="WorkflowID">
				</Item>
				<Item LeftTableAlias="Owner" UID="4961151D19A14641885992D0AC916FCD" LeftFieldTableUSI="tbl_Contact" RightFieldTableUSI="tbl_Workflow" RightFieldSQLName="OwnerID">
				</Item>
				<Item LeftTableAlias="tbl_WorkflowItem" UID="B96CB44938C0481A8FFA641F491B1EB7" RightFieldTableUSI="tbl_Workflow" LeftFieldSQLName="WorkflowID">
				</Item>
				<Item LeftTableAlias="CreatedBy" UID="9A899457854849C8BBC06C8D32EE9B18" LeftFieldTableUSI="tbl_Contact" RightFieldTableUSI="tbl_Workflow" RightFieldSQLName="CreatedByID">
				</Item>
				<Item LeftTableAlias="ModifiedBy" UID="46C5FE8DF0DD4611B5AD2E4FDCFC7160" LeftFieldTableUSI="tbl_Contact" RightFieldTableUSI="tbl_Workflow" RightFieldSQLName="ModifiedByID">
				</Item>
				<Item LeftTableAlias="ParentSubProcessItem" UID="19006DB50ABC44C0883C0110AC57FCF7" LeftFieldTableUSI="tbl_WorkflowItem" RightFieldTableUSI="tbl_Workflow" RightFieldSQLName="ParentSubProcessItemID">
				</Item>
				<Item LeftTableAlias="tbl_Task" UID="4DA83EF61FE8454EB6F3CE56D0BE9251" ParentJoinLeftTableAlias="tbl_WorkflowItem" RightFieldTableUSI="tbl_WorkflowItem" LeftFieldSQLName="WorkflowItemID">
				</Item>
				<Item LeftTableAlias="tbl_Account" UID="212B5CF89E8844A4A06E5FAA119D3F84" ParentJoinLeftTableAlias="tbl_Task" RightFieldTableUSI="tbl_Task" RightFieldSQLName="AccountID">
				</Item>
			</Joins>
			<Columns>
				<Item ColumnAlias="ID" UID="AA0A5C95B2854B26B1F389AE8B6A5816" CanDisable="False" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="ParentSubProcessItemID" UID="84FC89113D0C4BF6B2765CF4985051EE" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="OwnerID" UID="3F83F6D5C7F040E89268C7E9B176817D" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="OwnerName" UID="39B8DD9ADDC640418ED23A4803C024D3" ParentJoinCode="Owner" FieldSQLName="Name">
					<DependsOn>
						<Item Value="Owner" UID="02ACF9D51DA14EF7A56D328D670BC154">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="DiagramServiceID" UID="EFCE2726E4A54F818F4710FCA6E190AB" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="Name" UID="A204E1E7BD5D4D1591E932E466279627" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="StartDate" UID="EA5496A903E643F0B36D2645F80E512C" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="CompleteDate" UID="2ECAFCA28DD24B62AE0427A7BC7F6C69" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="Parameters" UID="EB16BDDC9A6A4D16A94BAB213C9611E6" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="WorkflowItemID" UID="0FA70074AA3543DD8F4479468CC9042B" ParentJoinCode="tbl_WorkflowItem" FieldSQLName="ID">
					<DependsOn>
						<Item Value="tbl_WorkflowItem" UID="563407B16A7F4F42AFD5E8803C782E42">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="WorkflowItemName" UID="8A779F419CE34EB59987569AF281D130" ParentJoinCode="tbl_WorkflowItem" FieldSQLName="Name">
					<DependsOn>
						<Item Value="tbl_WorkflowItem" UID="9C24B2F0C9434D10805E5A2EC303A847">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="WorkflowItemExecuteDate" UID="936F3951A7934FE7864B9B51780181C6" ParentJoinCode="tbl_WorkflowItem" FieldSQLName="ExecuteDate">
					<DependsOn>
						<Item Value="tbl_WorkflowItem" UID="48FCEC51BAA74774A3C5C0733F130A0C">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="WorkflowItemStateID" UID="DCC1A030DEE345F6B80BD105EE88D6BE" ParentJoinCode="tbl_WorkflowItem" FieldSQLName="StateID">
					<DependsOn>
						<Item Value="tbl_WorkflowItem" UID="A8166D45107B4B5FB02757627C568EFC">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="CreatedOn" UID="806340875EC64CA5A6493401CB0ACC5E" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="CreatedByID" UID="32756F26BD654C11874DF3A00A36E193" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="CreatedByName" UID="9F0BEFB4AC334731BF10AD300B914D67" ParentJoinCode="CreatedBy" FieldSQLName="Name">
					<DependsOn>
						<Item Value="CreatedBy" UID="CA44EA031F8944BF899C6A4EB34D2FD7">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="ModifiedOn" UID="9A887FB046464F26985B84E6D265D52C" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="ModifiedByID" UID="0631746DBAB744CB8AB81FD9C7C11FED" FieldTableUSI="tbl_Workflow">
				</Item>
				<Item ColumnAlias="ModifiedByName" UID="9D3CB91A12D443C09CA41742715A4586" ParentJoinCode="ModifiedBy" FieldSQLName="Name">
					<DependsOn>
						<Item Value="ModifiedBy" UID="46F1B069BE9A4C00A44746BB6D5C6681">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="TaskID" UID="5B999678D315482394CCE86FACDF3D4D" ParentJoinCode="tbl_Task" FieldSQLName="ID">
					<DependsOn>
						<Item Value="tbl_Task" UID="281CF1BF0D1E48D4A69B09D0F5A1E106">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="TaskTitle" UID="9FEA168933DA4E22A4B0BBD8CB0B15CE" ParentJoinCode="tbl_Task" FieldSQLName="Title">
					<DependsOn>
						<Item Value="tbl_Task" UID="67D8E5C560D7412580DA20C64A77FD07">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="AccountID" UID="BD27B17BC1E04C1594200CF2FF14973A" ParentJoinCode="tbl_Task">
					<DependsOn>
						<Item Value="tbl_Task" UID="4AF3085BA1814D60801699238805ED9F">
						</Item>
					</DependsOn>
				</Item>
				<Item ColumnAlias="AccountName" UID="7E89E919925747BCABC3A6AD0B919112" ParentJoinCode="tbl_Account" FieldSQLName="Name">
					<DependsOn>
						<Item Value="tbl_Account" UID="AE7BD7FC65D846719B9B31C1BA395E00">
						</Item>
					</DependsOn>
				</Item>
			</Columns>
			<Filters Code="Where" Type="Filters">
				<Item Code="GroupID" UID="5F8FAC80A0E349A98BEF5B164A396FEB" Type="CompareFilter" IsEnabled="False" ExpressionTypeCode="FieldFilterExpression" ValueExpressionTypeCode="ParamFilterExpression">
					<TestExpression FieldSQLName="GroupID" FieldTableUSI="tbl_WorkflowInGroup">
					</TestExpression>
					<ValueExpression Type="ParamFilterExpression" ParameterName="GroupID">
					</ValueExpression>
				</Item>
				<Item Code="OwnerID" UID="E33AB88031034CF892337862A8D78731" Type="CompareFilter" IsEnabled="False" ExpressionTypeCode="FieldFilterExpression" ValueExpressionTypeCode="ParamFilterExpression">
					<TestExpression FieldSQLName="OwnerID" FieldTableUSI="tbl_WorkflowItem">
					</TestExpression>
					<ValueExpression Type="ParamFilterExpression" ParameterName="OwnerID">
					</ValueExpression>
				</Item>
				<Item Code="StateID" UID="46F5F148E5B949F49AB14FA59DCADF6A" Type="CompareFilter" IsEnabled="False" ExpressionTypeCode="FieldFilterExpression" CompareOperator="1" ValueExpressionTypeCode="ParamFilterExpression">
					<TestExpression FieldSQLName="StateID" FieldTableUSI="tbl_WorkflowItem">
					</TestExpression>
					<ValueExpression Type="ParamFilterExpression" ParameterName="StateID">
					</ValueExpression>
				</Item>
				<Item Code="DiagramItemType" UID="56626203745D4AFF80074FC1B75EFD4E" Type="CompareFilter" IsEnabled="False" ExpressionTypeCode="FieldFilterExpression" ValueExpressionTypeCode="ParamFilterExpression">
					<TestExpression FieldSQLName="DiagramItemType" FieldTableUSI="tbl_WorkflowItem">
					</TestExpression>
					<ValueExpression Type="ParamFilterExpression" ParameterName="DiagramItemType">
					</ValueExpression>
				</Item>
				<Item Code="ID" UID="A92B1AB80C0045BB962A094C0FA8D05E" Type="CompareFilter" IsEnabled="False" ExpressionTypeCode="FieldFilterExpression" ValueExpressionTypeCode="ParamFilterExpression">
					<TestExpression FieldSQLName="ID" FieldTableUSI="tbl_Workflow">
					</TestExpression>
					<ValueExpression Type="ParamFilterExpression" ParameterName="ID">
					</ValueExpression>
				</Item>
			</Filters>
		</Item>
		<Item Code="Select1" UID="F56A66A86F4C4811BD14072B6A716794">
			<Filters Type="Filters">
			</Filters>
		</Item>
	</Selects>
</Service>

Первое, что необходимо сделать, - удалить все участки типа UID="F56A66A86F4C4811BD14072B6A716794". При загрузке в Администратор они будут сгенерированы заново.

Между тегами "Selects" и "/Selects" пока два элемента: один с кодом SelectTask, второй - с кодом Select1. Копируете всё, что касается первого элемента и вставляете перед вторым. В блоке, который Вы только что вставили, заменяете везде, где заметите (таких мест будет немного), Task на Invoice (например). Повторяете эти действия для создания UNION по tbl_Document, tbl_Contract и т.д. Потом удаляете блок, касающийся элемента с кодом Select1.

Загружаете запрос в Администратор, открываете и проверяете, все ли поля заполнены и все ли связи между таблицами проставлены. Если в разных таблицах колонки назывались по-разному (например, в таблице задач - Title, а в инцидентах - IncidentNumber), эти колонки будут пустыми; необходимо подставить корректное название колонки.

В принципе, всё. Дальше - по инструкции: добавляем поле в датасет, колонку в реестр и т.д.

Спасибо Олег за полный ответ.
Все работает, но как Вы сказали, только на элементах - Документ, Задача и т.д.
При использовании элементов "редактирование данных" или "чтение / запись данных" данный функционал не работает.
Придется пробовать кодом доставать значение параметра как говорила Татьяна.

Скажите, просто интересно, как Вы боритесь с тем, что процессы просто невозможно различить в реестре ?
У меня менеджер за день создает в среднем 25 процессов, на данный момент их различить можно только по дате, это представляет большую проблему.
Возможно кто поделится своим опытом внедрения бизнес-процессов с этой точки зрения.

Мы "боремся" :) вот так:
http://community.terrasoft.ua/blogs/4579
http://community.terrasoft.ua/blogs/4916

Если интересно, обращайтесь. Наш модуль также зарегистрирован как расширение:
http://community.terrasoft.ua/catalog/4881

"Татьяна Адамчук" написал:Андрей, ниже находится ссылка на инструкцию по добавлению колонки в реестр раздела [Процессы]. Инструкция на примере добавления колонки "Контрагент", колонка отражает прямо в гриде контрагента по каждому из запущенных процессов.
Загрузить

Будте добры еще раз выложить данную инструкцию, вопрос актуален!

Юрий, прикрепила инструкцию к предыдущему сообщению.

Показать все комментарии