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

ActionField1725

Beschrijving: Report an ObjectDowntime from a ShiftLogLine when checkbox ReportObjectDowntime has been ticked. Otherwise delete a connected ObjectDowntime. Custom: Nee

Propertiesbewerken

Property Type Accessor
ShiftLogLine ShiftLogLine Root
EquipmentContext List[Context] Optional
ProcessFunctionContext List[Context] Optional
ScreenName String Optional
WorkOrderTypeContext Context Optional

XMLbewerken

<Workflow Name="ActionField1725" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Report an ObjectDowntime from a ShiftLogLine when checkbox ReportObjectDowntime has been ticked. Otherwise delete a connected ObjectDowntime.</Description>
	<Properties>
		<Property	Name="ShiftLogLine"				Type="ShiftLogLine"						Accessor="Root"		Direction="In" />

		<Property	Name="EquipmentContext"			Type="List[Context]"					Accessor="Optional"	Direction="In"		Default="EquipmentContext.Installation"				Comment="Filter the Equipment on the contexts provided" />
		<Property	Name="ProcessFunctionContext"	Type="List[Context]"					Accessor="Optional"	Direction="In"		Default="ProcessFunctionContext.ProcessFunction"	Comment="Filter the ProcessFunction on the contexts provided" />
		<Property	Name="ScreenName"				Type="String"							Accessor="Optional"	Direction="In"		Default="JOB14"										Comment="Screen to open when creating job for solved downtime, when not using dialog" />
		<Property	Name="WorkOrderTypeContext"		Type="Context"							Accessor="Optional"	Direction="In"		Default="WorkOrderTypeContext.Standard"				Comment="Filter the WorkOrderType on the context provided" />

		<Property	Name="Component"				Type="Component"						Accessor="Internal" />
		<Property	Name="ComponentProblem"			Type="ComponentProblem"					Accessor="Internal" />
		<Property	Name="CreatedJob"				Type="Job"								Accessor="Internal" />
		<Property	Name="Description"				Type="UltimoString"						Accessor="Internal" />
		<Property	Name="DomainObject"				Type="DomainObject"						Accessor="Internal" />
		<Property	Name="EndDate"					Type="DateTime?"						Accessor="Internal"																			Comment="EndDate of ObjectDowntime" />
		<Property	Name="Equipment"				Type="Equipment"						Accessor="Internal" />
		<Property	Name="EquipmentCause"			Type="Equipment"						Accessor="Internal" />
		<Property	Name="FailType"					Type="FailType"							Accessor="Internal" />
		<Property	Name="ObjectDowntime"			Type="ObjectDowntime"					Accessor="Internal" />
		<Property	Name="ProcessFunction"			Type="ProcessFunction"					Accessor="Internal" />
		<Property	Name="ProcessFunctionCause"		Type="ProcessFunction"					Accessor="Internal" />
		<Property	Name="RegistrationType"			Type="ObjectDowntimeRegistrationType"	Accessor="Internal" />
		<Property	Name="Remark"					Type="UltimoString"						Accessor="Internal" />
		<Property	Name="Remedy"					Type="Remedy"							Accessor="Internal" />
		<Property	Name="ReportText"				Type="UltimoString"						Accessor="Internal" />
		<Property	Name="StartDate"				Type="DateTime"							Accessor="Internal"																			Comment="StartDate of ObjectDowntime" />
		<Property	Name="UseDialogWhenReporting"	Type="Boolean"							Accessor="Internal" />
		<Property	Name="WorkOrderType"			Type="WorkOrderType"					Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Choose Name="Choose on checkbox ReportObjectDowntime">
			<When Name="ReportObjectDowntime has been ticked" Condition="${ShiftLogLine.ReportObjectDowntime} == True">
				<Transaction>
					<Assign Name="Reset ReportObjectDowntime" Property="${ShiftLogLine.ReportObjectDowntime}" Value="False" Comment="Untick checkbox. After user has completed the dialog we will tick it again." />
				</Transaction>

				<WorkflowCall Name="Dialog_RegisterDowntime" WorkflowName="Dialog_RegisterDowntime">
					<Parameter	Name="DepartmentFilter"			Direction="In"		Value="${ShiftLogLine.ShiftLogbook.Department}" />
					<Parameter	Name="DomainObject"				Direction="In"		Value="${ShiftLogLine}" />
					<Parameter	Name="EquipmentContext"			Direction="In"		Value="${EquipmentContext}" />
					<Parameter	Name="ProcessFunctionContext"	Direction="In"		Value="${ProcessFunctionContext}" />
					<Parameter	Name="ProcessFunctionFilter"	Direction="In"		Value="${ShiftLogLine.ShiftLogbook.ProcessFunction}" />
					<Parameter	Name="WorkOrderTypeContext"		Direction="In"		Value="${WorkOrderTypeContext}" />
					<Parameter	Name="RegistrationType"			Direction="InOut"	Value="${RegistrationType}"								OutputProperty="${RegistrationType}" />
					<Parameter	Name="Component"				Direction="Out"																OutputProperty="${Component}" />
					<Parameter	Name="ComponentProblem"			Direction="Out"																OutputProperty="${ComponentProblem}" />
					<Parameter	Name="Description"				Direction="Out"																OutputProperty="${Description}" />
					<Parameter	Name="EndDate"					Direction="Out"																OutputProperty="${EndDate}" />
					<Parameter	Name="Equipment"				Direction="Out"																OutputProperty="${Equipment}" />
					<Parameter	Name="EquipmentCause"			Direction="Out"																OutputProperty="${EquipmentCause}" />
					<Parameter	Name="FailType"					Direction="Out"																OutputProperty="${FailType}" />
					<Parameter	Name="ProcessFunction"			Direction="Out"																OutputProperty="${ProcessFunction}" />
					<Parameter	Name="ProcessFunctionCause"		Direction="Out"																OutputProperty="${ProcessFunctionCause}" />
					<Parameter	Name="Remark"					Direction="Out"																OutputProperty="${Remark}" />
					<Parameter	Name="Remedy"					Direction="Out"																OutputProperty="${Remedy}" />
					<Parameter	Name="ReportText"				Direction="Out"																OutputProperty="${ReportText}" />
					<Parameter	Name="StartDate"				Direction="Out"																OutputProperty="${StartDate}" />
					<Parameter	Name="UseDialogWhenReporting"	Direction="Out"																OutputProperty="${UseDialogWhenReporting}" />
					<Parameter	Name="WorkOrderType"			Direction="Out"																OutputProperty="${WorkOrderType}" />
				</WorkflowCall>

				<WorkflowCall Name="ObjectDowntime_Register" WorkflowName="ObjectDowntime_Register">
					<Parameter	Name="Component"			Direction="In"		Value="${Component}" />
					<Parameter	Name="ComponentProblem"		Direction="In"		Value="${ComponentProblem}" />
					<Parameter	Name="Description"			Direction="In"		Value="${Description}" />
					<Parameter	Name="DomainObject"			Direction="In"		Value="${ShiftLogLine}" />
					<Parameter	Name="EndDate"				Direction="In"		Value="${EndDate}" />
					<Parameter	Name="Equipment"			Direction="In"		Value="${Equipment}" />
					<Parameter	Name="EquipmentCause"		Direction="In"		Value="${EquipmentCause}" />
					<Parameter	Name="FailType"				Direction="In"		Value="${FailType}" />
					<Parameter	Name="ProcessFunction"		Direction="In"		Value="${ProcessFunction}" />
					<Parameter	Name="ProcessFunctionCause"	Direction="In"		Value="${ProcessFunctionCause}" />
					<Parameter	Name="RegistrationType"		Direction="In"		Value="${RegistrationType}" />
					<Parameter	Name="Remark"				Direction="In"		Value="${Remark}" />
					<Parameter	Name="Remedy"				Direction="In"		Value="${Remedy}" />
					<Parameter	Name="ReportText"			Direction="In"		Value="${ReportText}" />
					<Parameter	Name="StartDate"			Direction="In"		Value="${StartDate}" />
					<Parameter	Name="WorkOrderType"		Direction="In"		Value="${WorkOrderType}" />
					<Parameter	Name="CreatedJob"			Direction="Out"										OutputProperty="${CreatedJob}" />
					<Parameter	Name="ObjectDowntime"		Direction="Out"										OutputProperty="${ObjectDowntime}" />
				</WorkflowCall>

				<Transaction>
					<Assign Name="Set ReportObjectDowntime" Property="${ShiftLogLine.ReportObjectDowntime}" Value="True" Comment="Tick checkbox again." />

					<When Name="When downtime is solved" Condition="${RegistrationType} == Solved">
						<ChangeStatus Name="Close the shift log line" DomainObject="${ShiftLogLine}" NewStatus="ShiftLogLineStatus.Closed" />
					</When>
				</Transaction>
			</When>

			<Otherwise Name="ReportObjectDowntime has been unticked">
				<When Name="Has an ObjectDowntime connected" Condition="${ShiftLogLine.ObjectDowntime} != Empty">
					<Transaction>
						<Assign Name="Set ReportObjectDowntime" Property="${ShiftLogLine.ReportObjectDowntime}" Value="True" Comment="Tick checkbox. After user has confirmed continuation question 3460 we will untick it again." />

						<GetItem Type="ObjectDowntime" OutputProperty="${ObjectDowntime}">
							<Filters>
								<PropertyFilter	PropertyName="Id"	Operator="="		PropertyValue="${ShiftLogLine.ObjectDowntime.Id}" />
							</Filters>
						</GetItem>
					</Transaction>

					<ContinuationQuestion Name="ContinueDeletingDowntimeLinkedToShiftLogLine?" MessageCode="3456" Default="Yes">
						<Parameter	Name="ObjectDowntime"	Direction="In"		Value="${ObjectDowntime}" />
					</ContinuationQuestion>

					<Transaction>
						<Assign Name="Reset ReportObjectDowntime" Property="${ShiftLogLine.ReportObjectDowntime}" Value="False" Comment="Untick checkbox again." />
						<Assign Name="Clear ObjectDowntime" Property="${ShiftLogLine.ObjectDowntime}" Value="Empty" Comment="Needed for successful deletion of ObjectDowntime." />

						<DeleteObject Name="Delete ObjectDowntime" DomainObject="${ObjectDowntime}" />
					</Transaction>
				</When>
			</Otherwise>
		</Choose>

		<UserContent Name="Post" />

		<When Name="ReportObjectDowntime has been ticked" Condition="${ShiftLogLine.ReportObjectDowntime} == True &amp;&amp; ${UseDialogWhenReporting} == False &amp;&amp; ${CreatedJob} != Empty">
			<Choose Name="Check if job is to be reported afterwards">
				<When Name="Report solved job" Condition="${RegistrationType} == Solved">
					<View Name="Navigate to report job afterwards" ViewName="DataEntryScreen">
						<Parameter	Name="DomainObject"			Direction="In"		Value="${CreatedJob}" />
						<Parameter	Name="FocusEditableField"	Direction="In"		Value="=${CreatedJob.Description} == Empty" />
						<Parameter	Name="ScreenName"			Direction="In"		Value="${ScreenName}" />
					</View>
				</When>

				<Otherwise Name="Report non-solved job">
					<View Name="Navigate to default screen for job" ViewName="DataEntryScreen">
						<Parameter	Name="DomainObject"			Direction="In"		Value="${CreatedJob}" />
						<Parameter	Name="FocusEditableField"	Direction="In"		Value="=${CreatedJob.Description} == Empty" />
					</View>
				</Otherwise>
			</Choose>
		</When>
	</Execution>
</Workflow>