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

ActionField1148

Beschrijving: Toggle Job.StopRelated Validate and set Priority, SLA and KnowledgeTopicCount when StopRelated is False. Custom: Nee

Propertiesbewerken

Property Type Accessor
Job Job Root
AllowedJobContexts List[Context] Optional
CheckPurchaseRequestDeliveryDates Boolean Optional

Gerelateerde workflowsbewerken

Workflow Beschrijving
Job_ActionField1148_Process Validations and updates that are part of ActionField1148.
Job_ActionField1148_ProcessStopRelated Stop-related validations and updates that are part of ActionField1148.
Job_ActionField1148_SetPlanningDates Sets the job's planning dates/fields in case it is stop-related.
Job_ActionField1148_ShowMessage Shows a user message (if any) as the last step of ActionField1148.

XMLbewerken

<Workflow Name="ActionField1148" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Toggle Job.StopRelated Validate and set Priority, SLA and KnowledgeTopicCount when StopRelated is False.</Description>
	<Properties>
		<Property	Name="Job"												Type="Job"				Accessor="Root"		Direction="In" />

		<Property	Name="AllowedJobContexts"								Type="List[Context]"	Accessor="Optional"	Direction="In"		Default="JobContext.TD"	Comment="Search only Jobs with these contexts " />
		<Property	Name="CheckPurchaseRequestDeliveryDates"				Type="Boolean"			Accessor="Optional"	Direction="In"		Default="True"			Comment="When property is true delivery dates of purchase request will be validated (workflow Job_ValidatePurchaseRequestDeliveryDates)" />

		<Property	Name="ExportedDomainObject"								Type="DomainObject"		Accessor="Internal" />
		<Property	Name="InvalidSubJob"									Type="Job"				Accessor="Internal" />
		<Property	Name="MessageCode"										Type="String"			Accessor="Internal"						Default="Empty" />
		<Property	Name="MessageNumber"									Type="String"			Accessor="Internal" />
		<Property	Name="OriginalJobScheduledStartDate"					Type="DateTime?"		Accessor="Internal"												Comment="To detect if the ScheduledStartDate has been changed." />
		<Property	Name="OriginalJobSLATargetDate"							Type="DateTime?"		Accessor="Internal"												Comment="To detect if the SLA TargetDate has been changed." />
		<Property	Name="OriginalJobTargetDate"							Type="DateTime?"		Accessor="Internal"												Comment="To detect if the TargetDate has been changed." />
		<Property	Name="PlanningDialogWasShown"							Type="Boolean"			Accessor="Internal"						Default="False"			Comment="Used to control display of user message 3025." />
		<Property	Name="PurchaseRequestLineDeliveryDate"					Type="DateTime"			Accessor="Internal" />
		<Property	Name="PurchaseRequestsThatCannotBeDeliveredInTimeCount"	Type="Int64"			Accessor="Internal"						Default="0" />
		<Property	Name="RecalculateScheduledStartDate"					Type="Boolean"			Accessor="Internal"						Default="True" />
		<Property	Name="SubJobs"											Type="List[Job]"		Accessor="Internal"												Comment="SubJobs linked with job" />
		<Property	Name="SubJobsWithDependenciesCount"						Type="Int64"			Accessor="Internal"												Comment="Found elements by Count" />
		<Property	Name="SubJobsWithExecutionWindowCount"					Type="Int64"			Accessor="Internal"												Comment="Found elements by Count" />
		<Property	Name="SubJobsWithInvalidContextCount"					Type="Int64"			Accessor="Internal"												Comment="Found elements by Count" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Comment><![CDATA[ Explicitly assigning values from the job guaranties these wf properties will keep their value in case they are changed on the job by the BL followed by displaying a user message.]]></Comment>

		<Assign Name="OriginalJobScheduledStartDate" Property="${OriginalJobScheduledStartDate}" Value="${Job.ScheduledStartDate}" />
		<Assign Name="OriginalJobTargetDate" Property="${OriginalJobTargetDate}" Value="${Job.TargetDate}" />
		<Assign Name="OriginalJobSLATargetDate" Property="${OriginalJobSLATargetDate}" Value="${Job.ServiceContractTargetFinishedDate}" />

		<When Name="StopRelated" Condition="${Job.StopRelated} == True">
			<WorkflowCall Name="Job_Initialize" WorkflowName="Job_Initialize" Comment="In the case this field is the first one the user modifies after the job has been created.">
				<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
			</WorkflowCall>
		</When>

		<Transaction>
			<GetCount Name="Get (sub)jobs with execution window for multijob" Type="Job" OutputProperty="${SubJobsWithExecutionWindowCount}">
				<Filters>
					<PropertyFilter	PropertyName="Multijob"					Operator="="		PropertyValue="${Job.Multijob}" />
					<PropertyFilter	PropertyName="ExecutionWindowQuantity"	Operator="!="		PropertyValue="0" />
				</Filters>
			</GetCount>

			<GetCount Name="Get (sub)jobs with dependencies for multijob" Type="Job" OutputProperty="${SubJobsWithDependenciesCount}">
				<Filters>
					<PropertyFilter	PropertyName="Multijob"	Operator="="		PropertyValue="${Job.Multijob}" />
					<InFilter PropertyName="Id">
						<Subquery Type="JobSuccessors">
							<Properties>
								<Property Name="Id.Job" Alias="JobId" Type="Property" />
							</Properties>
						</Subquery>
					</InFilter>
				</Filters>
			</GetCount>

			<GetCount Name="Get (sub)jobs with context != TD " Type="Job" OutputProperty="${SubJobsWithInvalidContextCount}">
				<Filters>
					<PropertyFilter	PropertyName="Multijob"	Operator="="		PropertyValue="${Job.Multijob}" />
					<NotFilter>
						<InFilter PropertyName="Context" Values="${AllowedJobContexts}" />
					</NotFilter>
				</Filters>
			</GetCount>

			<GetList Name="Get subjobs for multijob" Type="Job" OutputProperty="${SubJobs}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="Multijob"	Operator="="		PropertyValue="${Job}" />
					<PropertyFilter	PropertyName="Id"		Operator="!="		PropertyValue="${Job.Id}" />
				</Filters>
			</GetList>
		</Transaction>

		<WorkflowCall Name="Job_ActionField1148_Process" WorkflowName="Job_ActionField1148_Process">
			<Parameter	Name="Job"								Direction="In"		Value="${Job}" />
			<Parameter	Name="SubJobs"							Direction="In"		Value="${SubJobs}" />
			<Parameter	Name="SubJobsWithDependenciesCount"		Direction="In"		Value="${SubJobsWithDependenciesCount}" />
			<Parameter	Name="SubJobsWithExecutionWindowCount"	Direction="In"		Value="${SubJobsWithExecutionWindowCount}" />
			<Parameter	Name="SubJobsWithInvalidContextCount"	Direction="In"		Value="${SubJobsWithInvalidContextCount}" />
			<Parameter	Name="ExportedDomainObject"				Direction="Out"													OutputProperty="${ExportedDomainObject}" />
			<Parameter	Name="InvalidSubJob"					Direction="Out"													OutputProperty="${InvalidSubJob}" />
			<Parameter	Name="MessageNumber"					Direction="Out"													OutputProperty="${MessageNumber}" />
			<Parameter	Name="PlanningDialogWasShown"			Direction="Out"													OutputProperty="${PlanningDialogWasShown}" />
		</WorkflowCall>

		<UserContent Name="Post" />

		<When Name="When the planning proposition dialog was not shown" Condition="${PlanningDialogWasShown} == False" Comment="Because warning about date in the past was already included in the planning dialog!">
			<WorkflowCall Name="Job_WarnIfStartOrTargetDateIsInThePast" WorkflowName="Job_WarnIfStartOrTargetDateIsInThePast">
				<Parameter	Name="Job"								Direction="In"		Value="${Job}" />
				<Parameter	Name="OriginalJobScheduledStartDate"	Direction="In"		Value="${OriginalJobScheduledStartDate}" />
				<Parameter	Name="OriginalJobTargetDate"			Direction="In"		Value="${OriginalJobTargetDate}" />
			</WorkflowCall>

			<WorkflowCall Name="Job_WarnIfTargetDateIsPastSLATargetDate" WorkflowName="Job_WarnIfTargetDateIsPastSLATargetDate">
				<Parameter	Name="Job"						Direction="In"		Value="${Job}" />
				<Parameter	Name="OriginalJobSLATargetDate"	Direction="In"		Value="${OriginalJobSLATargetDate}" />
				<Parameter	Name="OriginalJobTargetDate"	Direction="In"		Value="${OriginalJobTargetDate}" />
			</WorkflowCall>
		</When>

		<WorkflowCall Name="Job_InformUserInCaseOfMultipleJobScheduleParts" WorkflowName="Job_InformUserInCaseOfMultipleJobScheduleParts">
			<Parameter	Name="Job"								Direction="In"		Value="${Job}" />
			<Parameter	Name="OriginalJobScheduledStartDate"	Direction="In"		Value="${OriginalJobScheduledStartDate}" />
			<Parameter	Name="OriginalJobTargetDate"			Direction="In"		Value="${OriginalJobTargetDate}" />
		</WorkflowCall>

		<WorkflowCall Name="Job_ActionField1148_ShowMessage" WorkflowName="Job_ActionField1148_ShowMessage">
			<Parameter	Name="ExportedDomainObject"	Direction="In"		Value="${ExportedDomainObject}" />
			<Parameter	Name="InvalidSubJob"		Direction="In"		Value="${InvalidSubJob}" />
			<Parameter	Name="Job"					Direction="In"		Value="${Job}" />
			<Parameter	Name="MessageNumber"		Direction="In"		Value="${MessageNumber}" />
		</WorkflowCall>
	</Execution>
</Workflow>

Sub-workflow XMLbewerken

Job_ActionField1148_Processbewerken

Beschrijving: Validations and updates that are part of ActionField1148.

<Workflow Name="Job_ActionField1148_Process" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Validations and updates that are part of ActionField1148.</Description>
	<Properties>
		<Property	Name="Job"												Type="Job"			Accessor="Root"		Direction="In" />

		<Property	Name="SubJobs"											Type="List[Job]"	Accessor="Required"	Direction="In"						Comment="SubJobs linked with job" />
		<Property	Name="SubJobsWithDependenciesCount"						Type="Int64"		Accessor="Required"	Direction="In"						Comment="Found elements by Count" />
		<Property	Name="SubJobsWithExecutionWindowCount"					Type="Int64"		Accessor="Required"	Direction="In"						Comment="Found elements by Count" />
		<Property	Name="SubJobsWithInvalidContextCount"					Type="Int64"		Accessor="Required"	Direction="In"						Comment="Found elements by Count" />

		<Property	Name="ExportedDomainObject"								Type="DomainObject"	Accessor="Optional"	Direction="Out" />
		<Property	Name="InvalidSubJob"									Type="Job"			Accessor="Optional"	Direction="Out" />
		<Property	Name="MessageNumber"									Type="String"		Accessor="Optional"	Direction="Out" />
		<Property	Name="PlanningDialogWasShown"							Type="Boolean"		Accessor="Optional"	Direction="Out" />

		<Property	Name="MessageCode"										Type="String"		Accessor="Internal"						Default="Empty" />
		<Property	Name="PurchaseRequestsThatCannotBeDeliveredInTimeCount"	Type="Int64"		Accessor="Internal"						Default="0" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Choose Name="Validations">
			<When Name="Check status" Condition="${Job.Status} != JobStatus.Created &amp;&amp; ${Job.Status} != JobStatus.Postponed &amp;&amp; ${Job.Status} != JobStatus.Approved">
				<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2375" />
			</When>


			<When Name="Check if job is a subjob" Condition="${Job.Multijob} != Empty &amp;&amp; ${Job.Multijob} != ${Job}">
				<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2410" />
			</When>


			<When Name="Check if job is link with project" Condition="${Job.Project} != Empty">
				<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2416" />
			</When>


			<When Name="StopRelated" Condition="${Job.StopRelated} == True &amp;&amp; ${MessageNumber} == Empty">
				<WorkflowCall Name="Job_ActionField1148_ProcessStopRelated" WorkflowName="Job_ActionField1148_ProcessStopRelated">
					<Parameter	Name="Job"								Direction="In"		Value="${Job}" />
					<Parameter	Name="SubJobs"							Direction="In"		Value="${SubJobs}" />
					<Parameter	Name="SubJobsWithDependenciesCount"		Direction="In"		Value="${SubJobsWithDependenciesCount}" />
					<Parameter	Name="SubJobsWithExecutionWindowCount"	Direction="In"		Value="${SubJobsWithExecutionWindowCount}" />
					<Parameter	Name="SubJobsWithInvalidContextCount"	Direction="In"		Value="${SubJobsWithInvalidContextCount}" />
					<Parameter	Name="MessageNumber"					Direction="InOut"	Value="${MessageNumber}"					OutputProperty="${MessageNumber}" />
					<Parameter	Name="ExportedDomainObject"				Direction="Out"													OutputProperty="${ExportedDomainObject}" />
					<Parameter	Name="InvalidSubJob"					Direction="Out"													OutputProperty="${InvalidSubJob}" />
					<Parameter	Name="PlanningDialogWasShown"			Direction="Out"													OutputProperty="${PlanningDialogWasShown}" />
				</WorkflowCall>
			</When>
		</Choose>

		<Choose Name="Actions">
			<When Name="Check if rollback is needed" Condition="${MessageNumber} != Empty">
				<Transaction>
					<Toggle Name="RollBack StopRelated" Property="${Job.StopRelated}" />
				</Transaction>
			</When>


			<When Name="StopRelated False" Condition="${Job.StopRelated} == False">
				<Comment><![CDATA[Not within transaction because a message can be given ]]></Comment>

				<WorkflowCall Name="Job_SetPlanningDatesBySLA" WorkflowName="Job_SetPlanningDatesBySLA">
					<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
				</WorkflowCall>

				<Transaction>
					<ForEach Name="Loop found subjobs" In="${SubJobs}" As="SubJob">
						<Assign Name="Copy StopRelated property" Property="${SubJob.StopRelated}" Value="${Job.StopRelated}" />
					</ForEach>
				</Transaction>
			</When>

			<Otherwise Name="StopRelated True">
				<Comment><![CDATA[Only works because cost and hours are saved and are not changed manually, should be changed when this becomes in a sub workflow]]></Comment>

				<Transaction>
					<WorkflowCall Name="Job_ResetSLARelatedValues" WorkflowName="Job_ResetSLARelatedValues">
						<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
					</WorkflowCall>

					<ForEach Name="Loop found subjobs" In="${SubJobs}" As="SubJob">
						<Assign Name="Copy StopRelated property" Property="${SubJob.StopRelated}" Value="${Job.StopRelated}" />
						<Assign Name="Copy ProcessFunction property" Property="${SubJob.ProcessFunction}" Value="${Job.ProcessFunction}" />
					</ForEach>
				</Transaction>
			</Otherwise>
		</Choose>

		<When Name="Check whether deliveries will be in time" Condition="${Job.ScheduledStartDate} != Empty">
			<WorkflowCall Name="Job_ValidatePurchaseRequestDeliveryDates" WorkflowName="Job_ValidatePurchaseRequestDeliveryDates">
				<Parameter	Name="Job"												Direction="In"		Value="${Job}" />
				<Parameter	Name="MessageCode"										Direction="Out"						OutputProperty="${MessageCode}" />
				<Parameter	Name="PurchaseRequestsThatCannotBeDeliveredInTimeCount"	Direction="Out"						OutputProperty="${PurchaseRequestsThatCannotBeDeliveredInTimeCount}" />
			</WorkflowCall>

			<When Name="PurchaseRequestLines that cannot be delivered in time" Condition="${MessageCode} != Empty">
				<Message Name="Inform about purchase request lines that cannot be delivered in time" MessageCode="${MessageCode}">
					<Parameter	Name="Job"		Direction="In"		Value="${Job}" />
					<Parameter	Name="RowCount"	Direction="In"		Value="${PurchaseRequestsThatCannotBeDeliveredInTimeCount}" />
				</Message>
			</When>
		</When>

		<When Name="StopRelated" Condition="${Job.StopRelated} == True">
			<Transaction>
				<Assign Name="Easy use of the job planning fields in case this job changes into a multijob" Property="${Job.AllowMultijobPlanningFieldsToExpand}" Value="True" />
			</Transaction>
		</When>

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

Job_ActionField1148_ProcessStopRelatedbewerken

Beschrijving: Stop-related validations and updates that are part of ActionField1148.

<Workflow Name="Job_ActionField1148_ProcessStopRelated" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Stop-related validations and updates that are part of ActionField1148.</Description>
	<Properties>
		<Property	Name="Job"								Type="Job"			Accessor="Root"		Direction="In" />

		<Property	Name="SubJobs"							Type="List[Job]"	Accessor="Required"	Direction="In"		Comment="SubJobs linked with job" />
		<Property	Name="SubJobsWithDependenciesCount"		Type="Int64"		Accessor="Required"	Direction="In"		Comment="Found elements by Count" />
		<Property	Name="SubJobsWithExecutionWindowCount"	Type="Int64"		Accessor="Required"	Direction="In"		Comment="Found elements by Count" />
		<Property	Name="SubJobsWithInvalidContextCount"	Type="Int64"		Accessor="Required"	Direction="In"		Comment="Found elements by Count" />

		<Property	Name="MessageNumber"					Type="String"		Accessor="Optional"	Direction="InOut" />

		<Property	Name="ExportedDomainObject"				Type="DomainObject"	Accessor="Optional"	Direction="Out" />
		<Property	Name="InvalidSubJob"					Type="Job"			Accessor="Optional"	Direction="Out" />
		<Property	Name="PlanningDialogWasShown"			Type="Boolean"		Accessor="Optional"	Direction="Out" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<WorkflowCall Name="Job_GetDetailRecordsNeededForStop" WorkflowName="Job_GetDetailRecordsNeededForStop">
			<Parameter	Name="Job"					Direction="In"		Value="${Job}" />
			<Parameter	Name="Validate"				Direction="In"		Value="False" />
			<Parameter	Name="ExportedDomainObject"	Direction="Out"						OutputProperty="${ExportedDomainObject}" />
		</WorkflowCall>

		<Choose Name="Exported ">
			<When Name="ExportedDomainObject" Condition="${ExportedDomainObject} != Empty">
				<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2935" />
			</When>

			<Otherwise Name="Not Exported ">
				<ForEach Name="Loop found subjobs" In="${SubJobs}" As="SubJob">
					<WorkflowCall Name="Job_GetDetailRecordsNeededForStop" WorkflowName="Job_GetDetailRecordsNeededForStop">
						<Parameter	Name="Job"					Direction="In"		Value="${SubJob}" />
						<Parameter	Name="Validate"				Direction="In"		Value="False" />
						<Parameter	Name="ExportedDomainObject"	Direction="Out"							OutputProperty="${ExportedDomainObject}" />
					</WorkflowCall>

					<When Name="ExportedDomainObject" Condition="${ExportedDomainObject} != Empty">
						<Assign Name="InvalidSubJob" Property="${InvalidSubJob}" Value="${SubJob}" />
						<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2936" />
					</When>
				</ForEach>
			</Otherwise>
		</Choose>

		<When Name="Not yet incorrect" Condition="${Job.StopRelated} == True &amp;&amp; ${MessageNumber} == Empty">
			<Choose Name="Stop Related Job Validations">
				<When Name="When Multijob has MultijobTemplate linked" Condition="${Job.MultijobTemplate} != Empty &amp;&amp; ${SubJobs.Count} == 0">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2407" />
				</When>


				<When Name="No scheduled Start Date" Condition="${Job.ScheduledStartDate} == Empty ">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2379" />
				</When>


				<When Name="Check SubJobsWithExecutionWindowCount" Condition="${Job.IsMultijob} == True &amp;&amp; ${SubJobsWithExecutionWindowCount} &gt; 0">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2390" />
				</When>


				<When Name="Check SubJobsWithDependenciesCount" Condition="${Job.IsMultijob} == True &amp;&amp; ${SubJobsWithDependenciesCount} &gt; 0">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2391" />
				</When>


				<When Name="Check SubJobsWithInvalidContextCount" Condition="${Job.IsMultijob} == True &amp;&amp; ${SubJobsWithInvalidContextCount} &gt; 0">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2392" />
				</When>


				<When Name="No Target Date" Condition="${Job.TargetDate} == Empty ">
					<Assign Name="SetMessageNumer" Property="${MessageNumber}" Value="2423" />
				</When>


				<When Name="UseWorkScheduleForPlanning" Condition="${Job.UseWorkScheduleForPlanning} == True">
					<Transaction>
						<Assign Name="Switch off UseWorkScheduleForPlanning" Property="${Job.UseWorkScheduleForPlanning}" Value="False" />
					</Transaction>

					<When Name="if duration isn't zero" Condition="${Job.DurationCalculated} != 0">
						<When Name="Setting Job.CalculateDateReferencePoint enabled" Condition="#settingenabled(${Job}, Job.CalculateDateReferencePoint) == true">
							<WorkflowCall Name="Job_ActionField1148_SetPlanningDates" WorkflowName="Job_ActionField1148_SetPlanningDates">
								<Parameter	Name="Job"						Direction="InOut"	Value="${Job}"	OutputProperty="${Job}" />
								<Parameter	Name="PlanningDialogWasShown"	Direction="Out"						OutputProperty="${PlanningDialogWasShown}" />
							</WorkflowCall>
						</When>

						<WorkflowCall Name="Validate job dates" WorkflowName="Job_ValidateMultijobDates">
							<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
						</WorkflowCall>

						<WorkflowCall Name="Synchronize job with job schedule part" WorkflowName="Job_SynchronizeJobSchedulePart">
							<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
						</WorkflowCall>

						<WorkflowCall Name="Job_UpdateEquipmentNextPmFields" WorkflowName="Job_UpdateEquipmentNextPmFields">
							<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
						</WorkflowCall>
					</When>
				</When>
			</Choose>
		</When>

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

Job_ActionField1148_SetPlanningDatesbewerken

Beschrijving: Sets the job's planning dates/fields in case it is stop-related.

<Workflow Name="Job_ActionField1148_SetPlanningDates" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Sets the job's planning dates/fields in case it is stop-related.</Description>
	<Properties>
		<Property	Name="Job"						Type="Job"								Accessor="Required"	Direction="InOut" />

		<Property	Name="PlanningDialogWasShown"	Type="Boolean"							Accessor="Optional"	Direction="Out" />

		<Property	Name="CalculatedStartDate"		Type="DateTime"							Accessor="Internal" />
		<Property	Name="CalculatedTargetDate"		Type="DateTime"							Accessor="Internal" />
		<Property	Name="UpdateMethod"				Type="JobPlanningFieldsUpdateMethod"	Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Choose Name="start date or target date based">
			<When Name="ScheduledStartDateBased" Condition="#getsetting(${Job}, Job.CalculateDateReferencePoint) == ScheduledStartDateBased">
				<Transaction>
					<WorkflowCall Name="Job_AddDurationToPlanningDate" WorkflowName="Job_AddDurationToPlanningDate">
						<Parameter	Name="Duration"			Direction="In"		Value="${Job.DurationCalculated}" />
						<Parameter	Name="Job"				Direction="In"		Value="${Job}" />
						<Parameter	Name="ReferenceDate"	Direction="In"		Value="${Job.ScheduledStartDate}" />
						<Parameter	Name="CalculatedDate"	Direction="Out"											OutputProperty="${Job.TargetDate}" />
					</WorkflowCall>
				</Transaction>
			</When>


			<When Name="TargetDateBased" Condition="#getsetting(${Job}, Job.CalculateDateReferencePoint) == TargetDateBased">
				<Transaction>
					<WorkflowCall Name="Job_AddDurationToPlanningDate" WorkflowName="Job_AddDurationToPlanningDate">
						<Parameter	Name="Duration"			Direction="In"		Value="=-${Job.DurationCalculated}" />
						<Parameter	Name="Job"				Direction="In"		Value="${Job}" />
						<Parameter	Name="ReferenceDate"	Direction="In"		Value="${Job.TargetDate}" />
						<Parameter	Name="CalculatedDate"	Direction="Out"											OutputProperty="${Job.ScheduledStartDate}" />
					</WorkflowCall>
				</Transaction>
			</When>


			<When Name="AskUser from 1148" Condition="#getsetting(${Job}, Job.CalculateDateReferencePoint) == Undefined">
				<WorkflowCall Name="Call dialog asking user whether ScheduledStartDate or TargetDate should be changed" WorkflowName="Dialog_Job_ChoosePlanningMethod">
					<Parameter	Name="Job"					Direction="In"		Value="${Job}" />
					<Parameter	Name="ModifiedField"		Direction="In"		Value="StopRelated" />
					<Parameter	Name="CalculatedStartDate"	Direction="Out"							OutputProperty="${CalculatedStartDate}" />
					<Parameter	Name="CalculatedTargetDate"	Direction="Out"							OutputProperty="${CalculatedTargetDate}" />
					<Parameter	Name="DialogWasShown"		Direction="Out"							OutputProperty="${PlanningDialogWasShown}"	Comment="Prevent display of user messages about planning date being in the past." />
					<Parameter	Name="SelectedOption"		Direction="Out"							OutputProperty="${UpdateMethod}" />
				</WorkflowCall>

				<Transaction>
					<Choose Name="Which update method is chosen?">
						<When Name="Change ScheduledStartDate" Condition="${UpdateMethod} == ChangeScheduledStartDate">
							<Assign Name="Set ScheduledStartDate" Property="${Job.ScheduledStartDate}" Value="${CalculatedStartDate}" />
						</When>


						<When Name="Change TargetDate" Condition="${UpdateMethod} == ChangeTargetDate">
							<Assign Name="Set TargetDate" Property="${Job.TargetDate}" Value="${CalculatedTargetDate}" />
						</When>

						<Otherwise Name="No changes, because calculated dates are the same!">
							<Comment><![CDATA[ Empty placeholder ]]></Comment>
						</Otherwise>
					</Choose>
				</Transaction>
			</When>
		</Choose>

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

Job_ActionField1148_ShowMessagebewerken

Beschrijving: Shows a user message (if any) as the last step of ActionField1148.

<Workflow Name="Job_ActionField1148_ShowMessage" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Shows a user message (if any) as the last step of ActionField1148.</Description>
	<Properties>
		<Property	Name="Job"					Type="Job"			Accessor="Root"		Direction="In" />

		<Property	Name="ExportedDomainObject"	Type="DomainObject"	Accessor="Optional"	Direction="In" />
		<Property	Name="InvalidSubJob"		Type="Job"			Accessor="Optional"	Direction="In" />
		<Property	Name="MessageNumber"		Type="String"		Accessor="Optional"	Direction="In" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Choose Name="Check MessageNumber">
			<When Name="2375" Condition="${MessageNumber} == 2375">
				<Message Name="Status is not valid" MessageCode="2375">
					<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
				</Message>
			</When>


			<When Name="2379" Condition="${MessageNumber} == 2379">
				<Message Name="ScheduledStartDateIsEmpty" MessageCode="2379" />
			</When>


			<When Name="2390" Condition="${MessageNumber} == 2390">
				<Message Name="Subjobs with ExecutionWindow" MessageCode="2390" />
			</When>


			<When Name="2391" Condition="${MessageNumber} == 2391">
				<Message Name="Subjobs with Dependencies" MessageCode="2391" />
			</When>


			<When Name="2392" Condition="${MessageNumber} == 2392">
				<Message Name="Subjobs with invalid context" MessageCode="2392" />
			</When>


			<When Name="2407" Condition="${MessageNumber} == 2407">
				<Message Name="MultijobTemplate without subjobs" MessageCode="2407">
					<Parameter	Name="Multijob"	Direction="In"		Value="${Job}" />
				</Message>
			</When>


			<When Name="2410" Condition="${MessageNumber} == 2410">
				<Message Name="Job is a subjob" MessageCode="2410">
					<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
				</Message>
			</When>


			<When Name="2416" Condition="${MessageNumber} == 2416">
				<Message Name="Job has a project" MessageCode="2416">
					<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
				</Message>
			</When>


			<When Name="2423" Condition="${MessageNumber} == 2423">
				<Message Name="TargetDateIsEmpty" MessageCode="2423" />
			</When>


			<When Name="2935" Condition="${MessageNumber} == 2935">
				<Message Name="Job Exported" MessageCode="2935">
					<Parameter	Name="DomainObject"	Direction="In"		Value="${ExportedDomainObject}" />
					<Parameter	Name="Job"			Direction="In"		Value="${Job}" />
				</Message>
			</When>


			<When Name="2936" Condition="${MessageNumber} == 2936">
				<Message Name="SubJob Exported" MessageCode="2936">
					<Parameter	Name="DomainObject"	Direction="In"		Value="${ExportedDomainObject}" />
					<Parameter	Name="Job"			Direction="In"		Value="${InvalidSubJob}" />
				</Message>
			</When>
		</Choose>

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