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 && ${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} > 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}, '<BR>', ${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 && ${NonUpdatedEquipmentList} != Empty && ${NonUpdatedEquipmentList.Count} > 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>