Categorie: reference Bijgewerkt: 2026-04-08 actionfield workflow actionfield287

ActionField287

Beschrijving: Build in equipment on a process function. Custom: Nee

Propertiesbewerken

Property Type Accessor
ProcessFunction ProcessFunction Root
AlwaysBuildInChildEquipments Boolean Optional
EmployeeContextToSearch List[Context] Optional
EquipmentContextToSearch List[Context] Optional
EquipmentSQLFilter UltimoString Optional
EquipmentViewFieldConfig UltimoString Optional
ProcessFunctionContextsToIncludeExchangePartsFor List[Context] Optional

XMLbewerken

<Workflow Name="ActionField287" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Build in equipment on a process function.</Description>
	<Properties>
		<Property	Name="ProcessFunction"									Type="ProcessFunction"				Accessor="Root"		Direction="In" />

		<Property	Name="AlwaysBuildInChildEquipments"						Type="Boolean"						Accessor="Optional"	Direction="In"																						Comment="Set this to True to avoid question 0316." />
		<Property	Name="EmployeeContextToSearch"							Type="List[Context]"				Accessor="Optional"	Direction="In"																						Comment="Restrict selection of employees to these contexts" />
		<Property	Name="EquipmentContextToSearch"							Type="List[Context]"				Accessor="Optional"	Direction="In"																						Comment="Restrict selection of equipment to these contexts" />
		<Property	Name="EquipmentSQLFilter"								Type="UltimoString"					Accessor="Optional"	Direction="In"																						Comment="Additional restriction on selection of equipment shown in the selection list in the dialog." />
		<Property	Name="EquipmentViewFieldConfig"							Type="UltimoString"					Accessor="Optional"	Direction="In"		Default="Default"																Comment="Set the ViewFieldConfig for the Equipment selection list" />
		<Property	Name="ProcessFunctionContextsToIncludeExchangePartsFor"	Type="List[Context]"				Accessor="Optional"	Direction="In"		Default="ProcessFunctionContext.ProcessFunction, ProcessFunctionContext.Fleet"	Comment="Include ExchangeParts when building into ProcessFunctions with these contexts" />

		<Property	Name="Action"											Type="ProcessFunctionTreeAction"	Accessor="Internal"						Default="EquipmentIn"															Comment="Build in equipment" />
		<Property	Name="AutoRemark"										Type="UltimoString"					Accessor="Internal" />
		<Property	Name="BuildInChildEquipments"							Type="Boolean"						Accessor="Internal" />
		<Property	Name="BuiltInExchangeParts"								Type="List[Equipment]"				Accessor="Internal"																										Comment="Used for ChangeStatus to ExchangeOperational." />
		<Property	Name="ChildEquipmentCount"								Type="Int64"						Accessor="Internal" />
		<Property	Name="Equipment"										Type="Equipment"					Accessor="Internal" />
		<Property	Name="EquipmentIsFeatureToggleProgressStatusEnabled"	Type="Boolean"						Accessor="Internal" />
		<Property	Name="InstallDate"										Type="DateTime?"					Accessor="Internal" />
		<Property	Name="InstalledBy"										Type="Employee"						Accessor="Internal" />
		<Property	Name="NewProgressStatus"								Type="ProgressStatus"				Accessor="Internal" />
		<Property	Name="NonUpdatedEquipmentList"							Type="List[Equipment]"				Accessor="Internal" />
		<Property	Name="Remark"											Type="UltimoString"					Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<WorkflowCall Name="Dialog_ProcessFunction_BuildInEquipment" WorkflowName="Dialog_ProcessFunction_BuildInEquipment">
			<Parameter	Name="EmployeeContextToSearch"	Direction="In"		Value="${EmployeeContextToSearch}" />
			<Parameter	Name="EquipmentContextToSearch"	Direction="In"		Value="${EquipmentContextToSearch}" />
			<Parameter	Name="EquipmentSQLFilter"		Direction="In"		Value="${EquipmentSQLFilter}" />
			<Parameter	Name="EquipmentViewFieldConfig"	Direction="In"		Value="${EquipmentViewFieldConfig}" />
			<Parameter	Name="ProcessFunction"			Direction="In"		Value="${ProcessFunction}" />
			<Parameter	Name="Equipment"				Direction="Out"											OutputProperty="${Equipment}" />
			<Parameter	Name="InstallDate"				Direction="Out"											OutputProperty="${InstallDate}" />
			<Parameter	Name="InstalledBy"				Direction="Out"											OutputProperty="${InstalledBy}" />
			<Parameter	Name="NewProgressStatus"		Direction="Out"											OutputProperty="${NewProgressStatus}" />
			<Parameter	Name="Remark"					Direction="Out"											OutputProperty="${Remark}" />
		</WorkflowCall>

		<Command Name="Equipment_IsFeatureToggleProgressStatusEnabled" CommandName="Equipment_IsFeatureToggleProgressStatusEnabled">
			<Parameter	Name="Equipment"				Direction="In"		Value="${Equipment}" />
			<Parameter	Name="FeatureToggleIsEnabled"	Direction="Out"								OutputProperty="${EquipmentIsFeatureToggleProgressStatusEnabled}" />
		</Command>

		<When Name="When feature toggle is enabled for Equipment TS" Condition="${EquipmentIsFeatureToggleProgressStatusEnabled} == True">
			<When Name="Only auto-enable for TechnicalService" Condition="${ProcessFunction.Context} == ProcessFunctionContext.ProcessFunction">
				<Assign Name="Set AlwaysBuildInChildEquipments to suppress question #0316" Property="${AlwaysBuildInChildEquipments}" Value="True" />
			</When>
		</When>

		<When Name="Only for context Fleet" Condition="${Equipment.Context} == EquipmentContext.Fleet">
			<WorkflowCall Name="Equipment_InformUserWhenProcessFunctionsDiffer" WorkflowName="Equipment_InformUserWhenProcessFunctionsDiffer">
				<Parameter	Name="Equipment"		Direction="In"		Value="${Equipment}" />
				<Parameter	Name="ProcessFunction"	Direction="In"		Value="${ProcessFunction}" />
			</WorkflowCall>
		</When>

		<Choose Name="Choose AlwaysBuildInChildEquipments or feature toggle ProgressStatusEquipmentInformationTechnology is enabled and equipment is a configuration item">
			<When Name="Do not ask to build in child equipments" Condition="${AlwaysBuildInChildEquipments} == True || (${EquipmentIsFeatureToggleProgressStatusEnabled} == True &amp;&amp; ${Equipment.Context} == EquipmentContext.ConfigurationItem)">
				<Assign Name="Response to question 0316 is Yes" Property="${BuildInChildEquipments}" Value="True" />
			</When>

			<Otherwise Name="Ask to build in child equipments">
				<Transaction>
					<GetCount Name="HasChildEquipments" Type="Equipment" OutputProperty="${ChildEquipmentCount}">
						<Filters>
							<CombinedFilter FilterOperator="And">
								<WhenFilter Condition="#exists(${ProcessFunction.Context}, ${ProcessFunctionContextsToIncludeExchangePartsFor}) == False" Comment="Do not filter out exchange parts for given contexts">
									<PropertyFilter	PropertyName="ExchangePart"	Operator="="		PropertyValue="False" />
								</WhenFilter>
								<PropertyFilter	PropertyName="ExchangePart"		Operator="="		PropertyValue="False" />
								<PropertyFilter	PropertyName="PartOfEquipment"	Operator="="		PropertyValue="${Equipment}" />
							</CombinedFilter>
						</Filters>
					</GetCount>
				</Transaction>

				<When Name="ChildEquipmentsFoundIsTrue" Condition="${ChildEquipmentCount} &gt; 0">
					<Question Name="QuestionCopyChildEquipments" Type="YesNo" MessageCode="0316" OutputProperty="${BuildInChildEquipments}">
						<Parameter	Name="Equipment"		Direction="In"		Value="${Equipment}" />
						<Parameter	Name="ProcessFunction"	Direction="In"		Value="${ProcessFunction}" />
					</Question>
				</When>
			</Otherwise>
		</Choose>

		<Transaction>
			<Command Name="Build equipment into processfunction" CommandName="ProcessFunction_BuildInEquipment">
				<Parameter	Name="Action"					Direction="In"		Value="${Action}" />
				<Parameter	Name="BuildInChildEquipments"	Direction="In"		Value="${BuildInChildEquipments}" />
				<Parameter	Name="Equipment"				Direction="In"		Value="${Equipment}" />
				<Parameter	Name="IncludeExchangeParts"		Direction="In"		Value="=#exists(${ProcessFunction.Context}, ${ProcessFunctionContextsToIncludeExchangePartsFor})" />
				<Parameter	Name="InstallDate"				Direction="In"		Value="${InstallDate}" />
				<Parameter	Name="InstalledBy"				Direction="In"		Value="${InstalledBy}" />
				<Parameter	Name="ProcessFunction"			Direction="In"		Value="${ProcessFunction}" />
				<Parameter	Name="Remark"					Direction="In"		Value="${Remark}" />
				<Parameter	Name="BuiltInExchangeParts"		Direction="Out"																											OutputProperty="${BuiltInExchangeParts}" />
			</Command>

			<Assign Name="Set Equipment.OwnerEmployee Empty" Property="${Equipment.OwnerEmployee}" Value="Empty" />

			<Choose>
				<When Name="When feature toggle is on" Condition="${EquipmentIsFeatureToggleProgressStatusEnabled} == True">
					<Transaction>
						<Command Name="Get label to prefill remark with" CommandName="GetLabel">
							<Parameter	Name="DomainObject"	Direction="In"		Value="${ProcessFunction}" />
							<Parameter	Name="LabelCode"	Direction="In"		Value="CHANGESTATUS_INITIATED_FROM_BUILDIN" />
							<Parameter	Name="LabelValue"	Direction="Out"													OutputProperty="${AutoRemark}" />
						</Command>
					</Transaction>

					<When Name="When AutoRemark is present" Condition="${AutoRemark} != Empty">
						<Assign Name="Append AutoRemark to Remark" Property="${Remark}" Value="=${Remark} != Empty ? #concat(${Remark}, '&lt;BR&gt;', ${AutoRemark}) : ${AutoRemark}" />
						<Assign Name="Reset AutoRemark" Property="${AutoRemark}" Value="Empty" />
					</When>

					<WorkflowCall Name="Equipment_ChangeProgressStatus" WorkflowName="Equipment_ChangeProgressStatus">
						<Parameter	Name="CurrentProgressStatus"	Direction="In"		Value="${Equipment.ProgressStatus}" />
						<Parameter	Name="Equipment"				Direction="In"		Value="${Equipment}" />
						<Parameter	Name="NewProgressStatus"		Direction="In"		Value="${NewProgressStatus}" />
						<Parameter	Name="Remark"					Direction="In"		Value="${Remark}" />
						<Parameter	Name="NonUpdatedEquipmentList"	Direction="Out"											OutputProperty="${NonUpdatedEquipmentList}" />
					</WorkflowCall>
				</When>

				<Otherwise>
					<ForEach Name="For each ExchangePart built in" In="${BuiltInExchangeParts}" As="BuiltInExchangePart" Condition="${BuiltInExchangePart.Status} != EquipmentStatus.ExchangeDefect">
						<ChangeStatus Name="BuiltInExchangePart" DomainObject="${BuiltInExchangePart}" NewStatus="EquipmentStatus.ExchangeOperational" />
					</ForEach>
				</Otherwise>
			</Choose>
		</Transaction>

		<When Name="When feature toggle is on" Condition="${EquipmentIsFeatureToggleProgressStatusEnabled} == True &amp;&amp; ${NonUpdatedEquipmentList} != Empty &amp;&amp; ${NonUpdatedEquipmentList.Count} &gt; 0">
			<Message Name="Show underlying equipment whose status was not changed because it differs from parent" MessageCode="3522">
				<Parameter	Name="NewProgressStatusDescription"	Direction="In"		Value="${NewProgressStatus.Description}" />
				<Parameter	Name="NonUpdatedEquipmentList"		Direction="In"		Value="${NonUpdatedEquipmentList}" />
			</Message>
		</When>

		<UserContent Name="Post" />
	</Execution>
</Workflow>