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

ActionField400

Beschrijving: Change Price Index (percentages via dialog). Custom: Nee

Propertiesbewerken

Property Type Accessor
MaintenancePartActivities List[MaintenancePartActivity] Optional
SpaceMaintenanceActivities List[SpaceMaintenanceActivity] Optional

XMLbewerken

<Workflow Name="ActionField400" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Change Price Index (percentages via dialog).</Description>
	<Properties>
		<Property	Name="MaintenancePartActivities"	Type="List[MaintenancePartActivity]"	Accessor="Optional"	Direction="InOut" />

		<Property	Name="SpaceMaintenanceActivities"	Type="List[SpaceMaintenanceActivity]"	Accessor="Optional"	Direction="Out" />

		<Property	Name="ContinueOrNot"				Type="RequestResult"					Accessor="Internal" />
		<Property	Name="CustomUnitPricePercentage"	Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="ExternalCostFactor"			Type="Decimal"							Accessor="Internal"						Default="1" />
		<Property	Name="ExternalCostPercentage"		Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="ExtraCostFactor"				Type="Decimal"							Accessor="Internal"						Default="1" />
		<Property	Name="ExtraCostPercentage"			Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="FixedPricePercentage"			Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="HourTariffCategories"			Type="List[HourTariffCategory]"			Accessor="Internal" />
		<Property	Name="HourTariffCategoryContext"	Type="Context"							Accessor="Internal"						Default="2" />
		<Property	Name="HourTariffFactor"				Type="Decimal"							Accessor="Internal"						Default="1" />
		<Property	Name="HourTariffPercentage"			Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="MaterialCostFactor"			Type="Decimal"							Accessor="Internal"						Default="1" />
		<Property	Name="MaterialCostPercentage"		Type="Decimal?"							Accessor="Internal"						Default="0" />
		<Property	Name="ToolsCostFactor"				Type="Decimal"							Accessor="Internal"						Default="1" />
		<Property	Name="ToolsCostPercentage"			Type="Decimal?"							Accessor="Internal"						Default="0" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Question Name="QuestionToShow" Type="YesNo" MessageCode="1214" OutputProperty="${ContinueOrNot}" />

		<Choose Name="ChooseContinueOrNot">
			<When Name="WhenContinueOrNot" Condition="${ContinueOrNot} == Yes">
				<Dialog Name="Get percentages" TitleCode="GLOBALALLIN">
					<Container TitleCode="MASTERDATA" Border="True">
						<Number Name="HourTariff" OutputProperty="${HourTariffPercentage}" LabelCode="HOURTARIFF" DecimalPrecision="2" />

						<Number Name="MaterialCost" OutputProperty="${MaterialCostPercentage}" LabelCode="COSTMATERIAL" DecimalPrecision="2" />

						<Number Name="ToolsCost" OutputProperty="${ToolsCostPercentage}" LabelCode="COSTTOOLS" DecimalPrecision="2" />

						<Number Name="ExternalCost" OutputProperty="${ExternalCostPercentage}" LabelCode="COSTEXTERNAL" DecimalPrecision="2" />

						<Number Name="ExtraCost" OutputProperty="${ExtraCostPercentage}" LabelCode="COSTDIVERSE" DecimalPrecision="2" />
					</Container>
					<Container TitleCode="BUILDINGELEMENTACTIVITIES" Border="True">
						<Number Name="CustomUnitPrice" OutputProperty="${CustomUnitPricePercentage}" LabelCode="MODIFIED_CUSTOMUNITPRICE" DecimalPrecision="2" />

						<Number Name="FixedPrice" OutputProperty="${FixedPricePercentage}" LabelCode="MODIFIED_FIXEDPRICE" DecimalPrecision="2" />
					</Container>
					<Validations>
						<ValidationExpression Name="does any of properties have a value?" Condition="${HourTariffPercentage} != Empty || ${MaterialCostPercentage} != Empty || ${ToolsCostPercentage} != Empty || ${ExternalCostPercentage} != Empty || ${ExtraCostPercentage} != Empty || ${FixedPricePercentage} != Empty || ${CustomUnitPricePercentage} != Empty" MessageCode="1030" />
					</Validations>
				</Dialog>

				<Transaction>
					<When Name="test HourTariffPercentage" Condition="${HourTariffPercentage} != Empty">
						<Assign Name="AssignHourTariff" Property="${HourTariffFactor}" Value="=1 + (${HourTariffPercentage} / 100)" />
					</When>

					<When Name="test MaterialCostPercentage" Condition="${MaterialCostPercentage} != Empty">
						<Assign Name="AssignMaterialCost" Property="${MaterialCostFactor}" Value="=1 + (${MaterialCostPercentage} / 100)" />
					</When>

					<When Name="test ToolsCostPercentage" Condition="${ToolsCostPercentage} != Empty">
						<Assign Name="AssignToolsCost" Property="${ToolsCostFactor}" Value="=1 + (${ToolsCostPercentage} / 100)" />
					</When>

					<When Name="test ExternalCostPercentage" Condition="${ExternalCostPercentage} != Empty">
						<Assign Name="AssignExternalCost" Property="${ExternalCostFactor}" Value="=1 + (${ExternalCostPercentage} / 100)" />
					</When>

					<When Name="test ExtraCostPercentage" Condition="${ExtraCostPercentage} != Empty">
						<Assign Name="AssignExtraCost" Property="${ExtraCostFactor}" Value="=1 + (${ExtraCostPercentage} / 100)" />
					</When>

					<GetList Name="GetListOfHourTariffCategories" Type="HourTariffCategory" OutputProperty="${HourTariffCategories}" OrderBy="Id" OrderDirection="Ascending">
						<Filters>
							<PropertyFilter	PropertyName="Context"	Operator="="		PropertyValue="${HourTariffCategoryContext}" />
						</Filters>
					</GetList>

					<ForEach Name="ForEachHourTariffCategories" In="${HourTariffCategories}" As="HourTariffCategoryObject">
						<Assign Name="SetTariff" Property="${HourTariffCategoryObject.Tariff}" Value="=${HourTariffCategoryObject.Tariff} * ${HourTariffFactor}" />
					</ForEach>

					<GetList Name="GetListOfMaintenancePartActivities" Type="MaintenancePartActivity" OutputProperty="${MaintenancePartActivities}" OrderBy="Id" OrderDirection="Ascending" />

					<ForEach Name="ForEachMaintenancePartActivities" In="${MaintenancePartActivities}" As="MaintenancePartActivityObject">
						<Command Name="ChangePriceIndexation" CommandName="MaintenancePartActivity_ChangePriceIndex">
							<Parameter	Name="ExternalCostFactor"				Direction="In"		Value="${ExternalCostFactor}" />
							<Parameter	Name="ExtraCostFactor"					Direction="In"		Value="${ExtraCostFactor}" />
							<Parameter	Name="HourTariffFactor"					Direction="In"		Value="${HourTariffFactor}" />
							<Parameter	Name="LabourCostFactor"					Direction="In"		Value="${HourTariffFactor}" />
							<Parameter	Name="MaterialCostFactor"				Direction="In"		Value="${MaterialCostFactor}" />
							<Parameter	Name="ToolsCostFactor"					Direction="In"		Value="${ToolsCostFactor}" />
							<Parameter	Name="MaintenancePartActivityObject"	Direction="InOut"	Value="${MaintenancePartActivityObject}"	OutputProperty="${MaintenancePartActivityObject}" />
						</Command>

						<WorkflowCall Name="NameMaintenancePartActivityCalculationUpdates" WorkflowName="MaintenancePartActivity_CalculationUpdates">
							<Parameter	Name="MaintenancePartActivityObject"	Direction="In"		Value="${MaintenancePartActivityObject}" />
						</WorkflowCall>
					</ForEach>
				</Transaction>

				<When Name="if a value was entered for fixed price" Condition="${CustomUnitPricePercentage} != Empty">
					<Transaction>
						<GetList Name="get SpaceMaintenanceActivities with custom unit price" Type="SpaceMaintenanceActivity" OutputProperty="${SpaceMaintenanceActivities}" OrderBy="Id" OrderDirection="Ascending">
							<Filters>
								<PropertyFilter	PropertyName="CalculationMethod"	Operator="="		PropertyValue="CustomUnitPrice" />
							</Filters>
						</GetList>

						<ForEach Name="index all activities having a custom unit price" In="${SpaceMaintenanceActivities}" As="SpaceMaintenanceActivity">
							<Assign Name="calculate new value for custom unit price" Property="${SpaceMaintenanceActivity.UnitPrice}" Value="=${SpaceMaintenanceActivity.UnitPrice} * (1 + (${CustomUnitPricePercentage} / 100))" />

							<When Name="reopen and reactivate, to update costs" Condition="${SpaceMaintenanceActivity.Status} == SpaceMaintenanceActivityStatus.Active">
								<ChangeStatus Name="change to created" DomainObject="${SpaceMaintenanceActivity}" NewStatus="SpaceMaintenanceActivityStatus.Created" />

								<ChangeStatus Name="and back to active" DomainObject="${SpaceMaintenanceActivity}" NewStatus="SpaceMaintenanceActivityStatus.Active" />
							</When>
						</ForEach>
					</Transaction>
				</When>

				<When Name="if a value was entered for custom unit price" Condition="${FixedPricePercentage} != Empty">
					<Transaction>
						<GetList Name="get SpaceMaintenanceActivities with fixed price" Type="SpaceMaintenanceActivity" OutputProperty="${SpaceMaintenanceActivities}" OrderBy="Id" OrderDirection="Ascending">
							<Filters>
								<PropertyFilter	PropertyName="CalculationMethod"	Operator="="		PropertyValue="FixedPrice" />
							</Filters>
						</GetList>

						<ForEach Name="index all activities having a fixed price" In="${SpaceMaintenanceActivities}" As="SpaceMaintenanceActivity">
							<Assign Name="calculate new value for fixed price" Property="${SpaceMaintenanceActivity.FixedPrice}" Value="=${SpaceMaintenanceActivity.FixedPrice} * (1 + (${FixedPricePercentage} / 100))" />

							<When Name="reopen and reactivate, to update costs" Condition="${SpaceMaintenanceActivity.Status} == SpaceMaintenanceActivityStatus.Active">
								<ChangeStatus Name="change to created" DomainObject="${SpaceMaintenanceActivity}" NewStatus="SpaceMaintenanceActivityStatus.Created" />

								<ChangeStatus Name="and back to active" DomainObject="${SpaceMaintenanceActivity}" NewStatus="SpaceMaintenanceActivityStatus.Active" />
							</When>
						</ForEach>
					</Transaction>
				</When>

				<Message Name="PricesAreChanged" MessageCode="1034" />
			</When>


			<When Name="WhenContinueOrNot" Condition="${ContinueOrNot} == No">
				<Stop Name="Stop" Mode="Abort" />
			</When>
		</Choose>

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