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

ActionField055

Beschrijving: Reopen PmWorkOrder (from status Approved). Custom: Nee

Propertiesbewerken

Property Type Accessor
PmWorkOrder PmWorkOrder Root
GetPmJobsToReopen Boolean Optional
PmWorkOrderReopenMethod Boolean Optional

XMLbewerken

<Workflow Name="ActionField055" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Reopen PmWorkOrder (from status Approved).</Description>
	<Properties>
		<Property	Name="PmWorkOrder"				Type="PmWorkOrder"		Accessor="Root"		Direction="In" />

		<Property	Name="GetPmJobsToReopen"		Type="Boolean"			Accessor="Optional"	Direction="In"		Default="True"					Comment="Ask if linked PmJobs should also be reopened. When False, PmJobs will be reopened automatically" />
		<Property	Name="PmWorkOrderReopenMethod"	Type="Boolean"			Accessor="Optional"	Direction="In"		Default="False"					Comment="Not in use." />

		<Property	Name="CountCreatedPmJobs"		Type="Int64"			Accessor="Internal" />
		<Property	Name="CountPmJobs"				Type="Int64"			Accessor="Internal" />
		<Property	Name="IsParent"					Type="Boolean"			Accessor="Internal"						Default="True" />
		<Property	Name="ReopenPmJobs"				Type="RequestResult"	Accessor="Internal" />
		<Property	Name="Result"					Type="RequestResult"	Accessor="Internal" />
		<Property	Name="StatusesCreated"			Type="List[Status]"		Accessor="Internal"						Default="PmJobStatus.Created" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Validation Name="PmWorkOrderStatus OK?" Condition="${PmWorkOrder.Status} == PmWorkOrderStatus.Approved" MessageCode="0022">
			<Parameter	Name="PmWorkOrder"	Direction="In"		Value="${PmWorkOrder}" />
		</Validation>

		<When Name="Check if PmworkOrder is Child" Condition="${PmWorkOrder.GroupPmWorkOrder} != Empty &amp;&amp; ${PmWorkOrder.GroupPmWorkOrder.ParentPeriodicActivity} == True">
			<Assign Name="Set IsParent" Property="${IsParent}" Value="False" Comment="Do not Reopen" />
		</When>

		<Validation Name="PmWorkOrder is PeriodicActivityChild" Condition="${IsParent} == True" MessageCode="2872">
			<Parameter	Name="PmWorkOrder"	Direction="In"		Value="${PmWorkOrder}" />
		</Validation>

		<When Name="Check member PmWorkOrder » Not member PmWorkOrder" Condition="${PmWorkOrder.GroupPmWorkOrder} == Empty &amp;&amp; ${PmWorkOrder.ParentPeriodicActivity} == False">
			<Choose Name="Check ask reopen approved PmJobs">
				<When Name="Ask reopen approved PmJobs" Condition="${GetPmJobsToReopen} == True">
					<Transaction>
						<GetCount Name="Count all PmJobs" Type="PmJob" OutputProperty="${CountPmJobs}">
							<Filters>
								<PropertyFilter	PropertyName="Id.PmWorkOrder"	Operator="="		PropertyValue="${PmWorkOrder}" />
							</Filters>
						</GetCount>

						<GetCount Name="Count open PmJobs" Type="PmJob" OutputProperty="${CountCreatedPmJobs}">
							<Filters>
								<CombinedFilter FilterOperator="And">
									<PropertyFilter	PropertyName="Id.PmWorkOrder"	Operator="="		PropertyValue="${PmWorkOrder}" />
									<InFilter PropertyName="Status" Values="${StatusesCreated}" />
								</CombinedFilter>
							</Filters>
						</GetCount>
					</Transaction>

					<When Name="Check all PmJobs open » Not all PmJobs open" Condition="${CountCreatedPmJobs} &lt; ${CountPmJobs}">
						<Question Name="Reopen PmJobs?" Type="YesNo" MessageCode="0217" OutputProperty="${ReopenPmJobs}">
							<Parameter	Name="PmWorkOrder"	Direction="In"		Value="${PmWorkOrder}" />
						</Question>

						<When Name="Check reopen PmJobs » Reopen PmJobs" Condition="${ReopenPmJobs} == Yes">
							<Assign Name="setting ReopenPmJobs = true 1" Property="#{Settings.PmWorkOrder.ReopenPmJobs}" Value="True" />
						</When>
					</When>
				</When>

				<Otherwise Name="Not ask reopen approved PmJobs" Comment="Reopen without asking">
					<Assign Name="setting ReopenPmJobs = true 3" Property="#{Settings.PmWorkOrder.ReopenPmJobs}" Value="True" />
				</Otherwise>
			</Choose>
		</When>

		<Choose Name="DeleteServiceContract?">
			<When Name="setting PmWorkOrder.DeleteServiceContract is Disabled" Condition="#settingenabled(${PmWorkOrder}, PmWorkOrder.DeleteServiceContract) == False">
				<Assign Name="setting DeleteServiceContractInternal = false" Property="#{Settings.PmJob.DeleteServiceContractInternal}" Value="False" />
			</When>


			<When Name="Check ask delete servicecontract » Ask delete servicecontract" Condition="#getsetting(${PmWorkOrder}, PmWorkOrder.DeleteServiceContract) == AskUser">
				<Question Name="Delete ServiceContract?" Type="YesNo" MessageCode="0448" OutputProperty="${Result}">
					<Parameter	Name="PmWorkOrder"	Direction="In"		Value="${PmWorkOrder}" />
				</Question>

				<Assign Name="set setting DeleteServiceContractInternal" Property="#{Settings.PmJob.DeleteServiceContractInternal}" Value="=${Result} == Yes ? True : False" />
			</When>

			<Otherwise Name="Yes or No">
				<Assign Name="DeleteServiceContract" Property="#{Settings.PmJob.DeleteServiceContractInternal}" Value="=#getsetting(${PmWorkOrder}, PmWorkOrder.DeleteServiceContract) == AutoAnswerYes ? True : False" />
			</Otherwise>
		</Choose>

		<Transaction>
			<ChangeStatus Name="Reopen PmWorkOrder" DomainObject="${PmWorkOrder}" NewStatus="PmWorkOrderStatus.Created" />

			<When Name="Is there an equipment associated with the pmworkorder? Does the pmworkorder have the bulk property set? Reset the bulk property at the equipment. notice: There cannot be other approved pmworkorders with the bulk property » equipment?" Condition="${PmWorkOrder.Equipment} != Empty &amp;&amp; ${PmWorkOrder.IsBulk} == True">
				<Assign Name="reset bulk property at equipment" Property="${PmWorkOrder.Equipment.IsBulk}" Value="False" />
			</When>
		</Transaction>

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