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

ActionField725

Beschrijving: Compare the duration quantity (MultijobTemplateLine.NeededDurationQuantityInHours) with the JobPlan duration (JobPlan.DurationCalculated) and notify user if necessary. Custom: Nee

Propertiesbewerken

Property Type Accessor
MultijobTemplateLine MultijobTemplateLine Root

XMLbewerken

<Workflow Name="ActionField725" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Compare the duration quantity (MultijobTemplateLine.NeededDurationQuantityInHours) with the JobPlan duration (JobPlan.DurationCalculated) and notify user if necessary.</Description>
	<Properties>
		<Property	Name="MultijobTemplateLine"				Type="MultijobTemplateLine"	Accessor="Root"		Direction="In" />

		<Property	Name="NeededDurationQuantityInHours"	Type="Decimal"				Accessor="Internal" />
		<Property	Name="QuestionDurationCalculated"		Type="String"				Accessor="Internal" />
		<Property	Name="QuestionNeededDurationQuantity"	Type="String"				Accessor="Internal" />
		<Property	Name="TakeDurationFromJobPlan"			Type="RequestResult"		Accessor="Internal"						Default="Yes" />
		<Property	Name="TimeUnitHours"					Type="TimeUnit"				Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="NeededDurationTimeUnit" Condition="${MultijobTemplateLine.NeededDurationTimeUnit} != Empty" Comment="Prevent unnecessary display of message.">
			<When Name="NeededDurationQuantity?" Condition="${MultijobTemplateLine.NeededDurationQuantity} != 0 &amp;&amp; ${MultijobTemplateLine.ServiceDeskReportType.JobPlan?} != Empty &amp;&amp; ${MultijobTemplateLine.ServiceDeskReportType.JobPlan.DurationCalculated?} != 0">
				<Command Name="Convert to hours for comparison" CommandName="TimeUnitType_ConvertQuantity">
					<Parameter	Name="Quantity"				Direction="In"		Value="${MultijobTemplateLine.NeededDurationQuantity}" />
					<Parameter	Name="RoundMethod"			Direction="In"		Value="Hundreds" />
					<Parameter	Name="TimeUnitTypeFrom"		Direction="In"		Value="${MultijobTemplateLine.NeededDurationTimeUnit.Type}" />
					<Parameter	Name="TimeUnitTypeTo"		Direction="In"		Value="TimeUnitType.Hours" />
					<Parameter	Name="WorkSchedule"			Direction="In"		Value="#{UltimoSettings.JobSchedule}" />
					<Parameter	Name="ConvertedQuantity"	Direction="Out"																	OutputProperty="${NeededDurationQuantityInHours}" />
				</Command>

				<When Name="NeededDurationQuantityInHours not equal to JobPlan.DurationCalculated" Condition="${NeededDurationQuantityInHours} != ${MultijobTemplateLine.ServiceDeskReportType.JobPlan.DurationCalculated?}">
					<Choose Name="TimeUnitType Days or Hours?">
						<When Name="TimeUnit.Type Days?" Condition="${MultijobTemplateLine.NeededDurationTimeUnit.Type} == TimeUnitType.Days">
							<Command Name="Format a string like '2 days (16 hours)' to display in message" CommandName="TimeUnitType_FormatStringWithTwoValues">
								<Parameter	Name="QuantityFirst"		Direction="In"		Value="${MultijobTemplateLine.NeededDurationQuantity}" />
								<Parameter	Name="QuantitySecond"		Direction="In"		Value="${NeededDurationQuantityInHours}" />
								<Parameter	Name="TimeUnitTypeFirst"	Direction="In"		Value="${MultijobTemplateLine.NeededDurationTimeUnit.Type}" />
								<Parameter	Name="TimeUnitTypeSecond"	Direction="In"		Value="TimeUnitType.Hours" />
								<Parameter	Name="FormattedString"		Direction="Out"																	OutputProperty="${QuestionNeededDurationQuantity}" />
							</Command>
						</When>


						<When Name="TimeUnit.Type Hours?" Condition="${MultijobTemplateLine.NeededDurationTimeUnit.Type} == TimeUnitType.Hours">
							<Command Name="Format a string like '16 hours' to display in message" CommandName="TimeUnitType_FormatStringWithTwoValues" Comment="Both TimeUnitTypes are Hours.">
								<Parameter	Name="QuantityFirst"		Direction="In"		Value="${NeededDurationQuantityInHours}" />
								<Parameter	Name="QuantitySecond"		Direction="In"		Value="${MultijobTemplateLine.NeededDurationQuantity}" />
								<Parameter	Name="TimeUnitTypeFirst"	Direction="In"		Value="TimeUnitType.Hours" />
								<Parameter	Name="TimeUnitTypeSecond"	Direction="In"		Value="${MultijobTemplateLine.NeededDurationTimeUnit.Type}" />
								<Parameter	Name="FormattedString"		Direction="Out"																	OutputProperty="${QuestionNeededDurationQuantity}" />
							</Command>
						</When>
					</Choose>

					<Command Name="Format a string like '16 hours' to display in message" CommandName="TimeUnitType_FormatStringWithOneValue">
						<Parameter	Name="Quantity"			Direction="In"		Value="${MultijobTemplateLine.ServiceDeskReportType.JobPlan.DurationCalculated}" />
						<Parameter	Name="TimeUnitType"		Direction="In"		Value="TimeUnitType.Hours" />
						<Parameter	Name="FormattedString"	Direction="Out"																							OutputProperty="${QuestionDurationCalculated}" />
					</Command>

					<Question Name="Ask user to take duration from job plan" Type="YesNo" MessageCode="1411" OutputProperty="${TakeDurationFromJobPlan}">
						<Parameter	Name="JobPlanDuration"	Direction="In"		Value="${QuestionDurationCalculated}" />
						<Parameter	Name="MultijobDuration"	Direction="In"		Value="${QuestionNeededDurationQuantity}" />
					</Question>

					<Transaction>
						<When Name="Take duration from job plan?" Condition="${TakeDurationFromJobPlan} == Yes">
							<Assign Name="NeededDurationQuantity from Jobplan" Property="${MultijobTemplateLine.NeededDurationQuantity}" Value="${MultijobTemplateLine.ServiceDeskReportType.JobPlan.DurationCalculated}" />

							<GetItem Name="Get TimeUnit Hours" Type="TimeUnit" OutputProperty="${TimeUnitHours}">
								<Filters>
									<PropertyFilter	PropertyName="Id"	Operator="="		PropertyValue="US005" />
								</Filters>
							</GetItem>

							<Assign Name="NeededDurationTimeUnit to Hours" Property="${MultijobTemplateLine.NeededDurationTimeUnit}" Value="${TimeUnitHours}" />
						</When>
					</Transaction>
				</When>
			</When>

			<When Name="NeededDurationQuantity is in Hours?" Condition="${MultijobTemplateLine.NeededDurationTimeUnit.Type} == TimeUnitType.Hours">
				<Transaction>
					<Command Name="RoundNumberOfHours" CommandName="RoundNumberOfHours">
						<Parameter	Name="GrossHours"								Direction="In"		Value="${MultijobTemplateLine.NeededDurationQuantity}" />
						<Parameter	Name="RoundedHoursMinimumValueIsRoundingUnit"	Direction="In"		Value="True" />
						<Parameter	Name="RoundMethod"								Direction="In"		Value="Quarter" />
						<Parameter	Name="RoundedHours"								Direction="Out"																OutputProperty="${MultijobTemplateLine.NeededDurationQuantity}" />
					</Command>
				</Transaction>
			</When>
		</When>

		<WorkflowCall Name="MultijobTemplateLine_UpdateScheduledStart" WorkflowName="MultijobTemplateLine_UpdateScheduledStart">
			<Parameter	Name="MultijobTemplateLine"	Direction="In"		Value="${MultijobTemplateLine}" />
		</WorkflowCall>

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