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

ActionField1608

Beschrijving: Updates the Job's Priority, SLA and planning dates when its Urgency changes. Checks whether requested deliveries will (still) be in time. Custom: Nee

Propertiesbewerken

Property Type Accessor
Job Job Root

XMLbewerken

<Workflow Name="ActionField1608" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Updates the Job's Priority, SLA and planning dates when its Urgency changes. Checks whether requested deliveries will (still) be in time.</Description>
	<Properties>
		<Property	Name="Job"												Type="Job"			Accessor="Root"		Direction="In" />

		<Property	Name="MessageCode"										Type="String"		Accessor="Internal"						Default="Empty" />
		<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="OriginalPriority"									Type="Priority"		Accessor="Internal"										Comment="To detect change of Priority" />
		<Property	Name="PurchaseRequestLineDeliveryDate"					Type="DateTime"		Accessor="Internal" />
		<Property	Name="PurchaseRequestsThatCannotBeDeliveredInTimeCount"	Type="Int64"		Accessor="Internal"						Default="0" />
	</Properties>
	<Execution>
		<Comment><![CDATA[NOTE: when you make changes in this workflow it's most likely you also need to make them in ActionField1602.wfl in the case the Priority changes.]]></Comment>

		<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}" />
		<Assign Name="OriginalPriority" Property="${OriginalPriority}" Value="${Job.Priority}" />

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

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

		<When Name="if no relevant servicelevel found, set planning fields from priority" Condition="${Job.ServiceLevel} == Empty || (${Job.ServiceLevel.ScheduledStartTimeQuantity} == 0 &amp;&amp; #{UltimoSettings.TargetDateFromSlaToJob} == False)">
			<WorkflowCall Name="Job_SetPlanningDatesByPriority" WorkflowName="Job_SetPlanningDatesByPriority">
				<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
			</WorkflowCall>
		</When>

		<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 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="When priority has changed" Condition="${OriginalPriority} != ${Job.Priority}">
			<WorkflowCall Name="Job_ShowToastConsiderSendingNotification" WorkflowName="Job_ShowToastConsiderSendingNotification">
				<Parameter	Name="HasPriorityChanged"	Direction="In"		Value="True" />
				<Parameter	Name="Job"					Direction="In"		Value="${Job}" />
			</WorkflowCall>
		</When>

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