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>