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

ActionField211

Beschrijving: Change status of Job. The new status is selected using a dialog. Custom: Nee

Propertiesbewerken

Property Type Accessor
Job Job Root

XMLbewerken

<Workflow Name="ActionField211" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Change status of Job. The new status is selected using a dialog.</Description>
	<Properties>
		<Property	Name="Job"				Type="Job"					Accessor="Root"		Direction="In" />

		<Property	Name="ActivatedJob"		Type="RequestResult"		Accessor="Internal"						Default="Yes" />
		<Property	Name="JobSuccessors"	Type="List[JobSuccessors]"	Accessor="Internal" />
		<Property	Name="MessageString"	Type="String"				Accessor="Internal" />
		<Property	Name="Status"			Type="Status"				Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Validation Name="StatusClosedCheck" Condition="${Job.Status} != JobStatus.Closed" MessageCode="0478" />

		<WorkflowCall Name="StatusDialog" WorkflowName="Dialog_ChooseStatus">
			<Parameter	Name="DomainObject"	Direction="In"		Value="${Job}" />
			<Parameter	Name="Status"		Direction="Out"						OutputProperty="${Status}" />
		</WorkflowCall>

		<UserContent Name="AfterDialog" />

		<When Name="NextStatus is Active And MultijobTemplateLine Exist » IfNextStatusIsActiveAndMultijobTemplateLineExist" Condition="${Status} != Empty &amp;&amp; (${Status} == JobStatus.Active || ${Status} == JobStatus.Finished) &amp;&amp; ${Job.MultijobTemplateLine} != Empty">
			<Transaction>
				<GetList Name="GetJobSuccessorWithDependencyEndToStart" Type="JobSuccessors" OutputProperty="${JobSuccessors}" OrderBy="Id" OrderDirection="Ascending" Comment="Check end-to-start dependency with other subjobs of the multi-job">
					<Joins>
						<Join	Name="Id.Job"		Alias="job"			Type="InnerJoin" />
						<Join	Name="job.Multijob"	Alias="multijob"	Type="InnerJoin" />
						<Join	Name="JobLink"		Alias="jobLink"		Type="InnerJoin" />
					</Joins>
					<Filters>
						<PropertyFilter	PropertyName="multijob.Id"	Operator="="		PropertyValue="${Job.Multijob.Id}" />
						<PropertyFilter	PropertyName="job.Id"		Operator="!="		PropertyValue="${Job.Multijob.Id}" />
						<PropertyFilter	PropertyName="Id.LinkJob"	Operator="="		PropertyValue="${Job}" />
						<CombinedFilter FilterOperator="Or">
							<CombinedFilter FilterOperator="And">
								<PropertyFilter	PropertyName="jobLink.JobLinkType"	Operator="="		PropertyValue="StartToStart"	Comment="StartToStart" />
								<InFilter PropertyName="job.Status" Values="JobStatus.Requested,JobStatus.Created,JobStatus.Approved" />
							</CombinedFilter>
							<CombinedFilter FilterOperator="And">
								<PropertyFilter	PropertyName="jobLink.JobLinkType"	Operator="="		PropertyValue="EndToStart"	Comment="EndToStart" />
								<InFilter PropertyName="job.Status" Values="JobStatus.Requested,JobStatus.Created,JobStatus.Approved,JobStatus.Active" />
							</CombinedFilter>
						</CombinedFilter>
					</Filters>
				</GetList>
			</Transaction>

			<When Name="IfGotAJobSuccessorsCountAskIfActivated » JobSuccessorsCountIsNotZero" Condition="${JobSuccessors} != Empty">
				<ForEach Name="Loop predecessor jobs" In="${JobSuccessors}" As="JobSuccessor">
					<Assign Name="Fill MessageString" Property="${MessageString}" Value="=#concat(${MessageString}, ${JobSuccessor.Id.Job.Id})" />
					<Assign Name="Fill MessageString" Property="${MessageString}" Value="=#concat(${MessageString}, ' ')" />
				</ForEach>

				<Question Name="CheckJobSuccessorWithDependencyEndToStart" Type="YesNo" MessageCode="1285" Default="No" OutputProperty="${ActivatedJob}">
					<Parameter	Name="DependentJobs"	Direction="In"		Value="=#trim(${MessageString})" />
					<Parameter	Name="Description"		Direction="In"		Value="#statusdescription(Job ${Status})" />
					<Parameter	Name="Job"				Direction="In"		Value="${Job}" />
				</Question>

				<When Name="DontMakeJobActive AnswerIsNo" Condition="${ActivatedJob} == No">
					<Stop Name="Stop" Mode="Abort" />
				</When>
			</When>
		</When>

		<Transaction>
			<ChangeStatus Name="ChangeJobStatus" DomainObject="${Job}" NewStatus="${Status}" />
		</Transaction>

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