Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield680
ActionField680
Beschrijving: Create SpaceMaintenance for LongTermAsset and copy MaintenancePart Activities to SpaceMaintenance. MaintenancePart is selected via dialog. Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| LongTermAsset | LongTermAsset | Root |
XMLbewerken
<Workflow Name="ActionField680" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Create SpaceMaintenance for LongTermAsset and copy MaintenancePart Activities to SpaceMaintenance. MaintenancePart is selected via dialog.</Description>
<Properties>
<Property Name="LongTermAsset" Type="LongTermAsset" Accessor="Root" Direction="In" />
<Property Name="MaintenancePart" Type="MaintenancePart" Accessor="Internal" />
<Property Name="NoReplacementCostSetAnyway" Type="RequestResult" Accessor="Internal" />
<Property Name="OverwriteMaintenancePart" Type="RequestResult" Accessor="Internal" />
<Property Name="ScheduledYear" Type="Int32" Accessor="Internal" />
<Property Name="SpaceMaintenance" Type="SpaceMaintenance" Accessor="Internal" />
<Property Name="SpaceMaintenanceActivity" Type="SpaceMaintenanceActivity" Accessor="Internal" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<Validation Name="ValidateIfReplacementCostIsProvided" Condition="${LongTermAsset.ReplacementCost} != CompanyMoney.Zero" MessageCode="1250" />
<Validation Name="ValidateIfConstructionYearIsProvided" Condition="${LongTermAsset.ConstructionYear} > 1800" MessageCode="1252" />
<Transaction>
<Assign Name="SetSpaceMaintenance" Property="${SpaceMaintenance}" Value="${LongTermAsset.SpaceMaintenance}" />
</Transaction>
<When Name="WhenMaintenancePartSet" Condition="${LongTermAsset.MaintenancePart} != Empty && ${SpaceMaintenance} != Empty">
<Question Name="OverwriteCurrentMaintenancePart" Type="YesNo" MessageCode="1247" OutputProperty="${OverwriteMaintenancePart}" />
<When Name="CheckAnswer" Condition="${OverwriteMaintenancePart} == No">
<Stop Name="Stop" Mode="Abort" />
</When>
<Transaction>
<ForEach Name="DeleteExistingSpaceMaintenanceActivities" In="${SpaceMaintenance.Activities}" As="SpaceMaintenanceActivityToDelete" Condition="${SpaceMaintenanceActivityToDelete.Status} >= 0">
<TrashObject Name="RemoveActivity" DomainObject="${SpaceMaintenanceActivityToDelete}" />
</ForEach>
</Transaction>
</When>
<Dialog Name="SelectMaintenancePartDialog" TitleCode="LTAPCATEGORY">
<Container>
<SelectionList Name="MaintenancePart" OutputProperty="${MaintenancePart}" ColumnName="MntpId" ViewfieldConfiguration="Ltap" Required="True" SqlWhereClause="MntpContext=8 AND MntpRecStatus=2" />
</Container>
</Dialog>
<Transaction>
<When Name="MaintenancePartSet" Condition="${SpaceMaintenance} == Empty">
<WorkflowCall Name="CreateSpaceMaintenance" WorkflowName="LongTermAsset_CreateSpaceMaintenance">
<Parameter Name="LongTermAsset" Direction="In" Value="${LongTermAsset}" />
<Parameter Name="MaintenancePart" Direction="In" Value="${MaintenancePart}" />
<Parameter Name="SpaceMaintenance" Direction="Out" OutputProperty="${SpaceMaintenance}" />
</WorkflowCall>
</When>
<Assign Name="SetLongTermAssetMaintenancePart" Property="${LongTermAsset.MaintenancePart}" Value="${MaintenancePart}" />
<Assign Name="Set MaintenancePart of SpaceMaintenance" Property="${SpaceMaintenance.MaintenancePart}" Value="${MaintenancePart}" />
</Transaction>
<ForEach Name="LoopThrough" In="${MaintenancePart.Activities}" As="MaintenancePartActivity" Condition="${MaintenancePartActivity.Status} == MaintenancePartActivityStatus.Active">
<Transaction>
<Assign Name="SetScheduledYear" Property="${ScheduledYear}" Value="=${LongTermAsset.ConstructionYear}+${MaintenancePartActivity.MaintenanceCycle}" />
<When Name="ScheduledYearValid" Condition="#getyear(#getdate(${ScheduledYear},1,1)) <= #getyear(#gettoday()) && ${MaintenancePartActivity.MaintenanceCycle} != 0">
<Assign Name="SetScheduledYear" Property="${ScheduledYear}" Value="=#getyear(#gettoday())" />
<Assign Name="CalcNextScheduledYear" Property="${ScheduledYear}" Value="=#ceil((${ScheduledYear}-${LongTermAsset.ConstructionYear})/${MaintenancePartActivity.MaintenanceCycle},0)*${MaintenancePartActivity.MaintenanceCycle}+${LongTermAsset.ConstructionYear}" Comment="Calculate the next scheduled year in the cycle, from now." />
</When>
<GetItem Name="Get (trashed) SpaceMaintenanceActivity" Type="SpaceMaintenanceActivity" OutputProperty="${SpaceMaintenanceActivity}">
<Filters>
<PropertyFilter PropertyName="Id.MaintenancePartActivity" Operator="=" PropertyValue="${MaintenancePartActivity}" />
<PropertyFilter PropertyName="Id.SpaceMaintenance" Operator="=" PropertyValue="${SpaceMaintenance}" />
<PropertyFilter PropertyName="Status" Operator="<" PropertyValue="0" />
</Filters>
</GetItem>
<Choose Name="Choose SpaceMaintenanceActivity">
<When Name="SpaceMaintenanceActivity already present" Condition="${SpaceMaintenanceActivity} != Empty">
<UntrashObject Name="SpaceMaintenanceActivity" DomainObject="${SpaceMaintenanceActivity}" />
<When Name="Name" Condition="${SpaceMaintenanceActivity.Status} == SpaceMaintenanceActivityStatus.Active">
<ChangeStatus Name="SpaceMaintenanceActivity to Created" DomainObject="${SpaceMaintenanceActivity}" NewStatus="SpaceMaintenanceActivityStatus.Created" />
</When>
<Assign Name="Context" Property="${SpaceMaintenanceActivity.Context}" Value="SpaceMaintenanceActivityContext.LongTermAssetPlan" />
<Assign Name="Active" Property="${SpaceMaintenanceActivity.Active}" Value="False" />
<Assign Name="CalculationMethod" Property="${SpaceMaintenanceActivity.CalculationMethod}" Value="4" />
<Assign Name="CostType" Property="${SpaceMaintenanceActivity.CostType}" Value="${MaintenancePartActivity.CostType}" />
<Assign Name="ImplementationPercentage" Property="${SpaceMaintenanceActivity.ImplementationPercentage}" Value="${MaintenancePartActivity.ImplementationPercentage}" />
<Assign Name="LabourGrossCost" Property="${SpaceMaintenanceActivity.LabourGrossCost}" Value="${MaintenancePartActivity.LabourCost}" />
<Assign Name="MaintenanceFrequency" Property="${SpaceMaintenanceActivity.MaintenanceFrequency}" Value="${MaintenancePartActivity.MaintenanceCycle}" />
<Assign Name="MaintenanceFrequencyMethod" Property="${SpaceMaintenanceActivity.MaintenanceFrequencyMethod}" Value="1" />
<Assign Name="MaintenanceStateImprovement" Property="${SpaceMaintenanceActivity.MaintenanceStateImprovement}" Value="${MaintenancePartActivity.MaintenanceStateImprovement}" />
<Assign Name="NextMaintenanceState" Property="${SpaceMaintenanceActivity.NextMaintenanceState}" Value="${MaintenancePartActivity.NextMaintenanceState}" />
<Assign Name="NextMaintenanceYearInspector" Property="${SpaceMaintenanceActivity.NextMaintenanceYearInspector}" Value="${ScheduledYear}" />
<Assign Name="ObservationsPerCycle" Property="${SpaceMaintenanceActivity.ObservationsPerCycle}" Value="${MaintenancePartActivity.ObservationsPerCycle}" />
<Assign Name="PercentageOfReplacementCost" Property="${SpaceMaintenanceActivity.PercentageOfReplacementCost}" Value="${MaintenancePartActivity.PercentageOfReplacementCost}" />
<Assign Name="Price" Property="${SpaceMaintenanceActivity.Price}" Value="=${LongTermAsset.ReplacementCost}*(${MaintenancePartActivity.PercentageOfReplacementCost}/100)" />
<Assign Name="Quantity" Property="${SpaceMaintenanceActivity.Quantity}" Value="1" />
<Assign Name="StandardCostExcludingLabour" Property="${SpaceMaintenanceActivity.StandardCostExcludingLabour}" Value="${MaintenancePartActivity.StandardCostExcludingLabour}" />
<Assign Name="StartYearMaintenanceFrequency" Property="${SpaceMaintenanceActivity.StartYearMaintenanceFrequency}" Value="0" />
</When>
<Otherwise Name="SpaceMaintenanceActivity has to be inserted">
<Insert Name="CreateSpaceMaintenanceActivity" ObjectType="SpaceMaintenanceActivity" OutputProperty="${SpaceMaintenanceActivity}">
<Parameter Name="Id.MaintenancePartActivity" Direction="In" Value="${MaintenancePartActivity}" />
<Parameter Name="Id.SpaceMaintenance" Direction="In" Value="${SpaceMaintenance}" />
<Parameter Name="Context" Direction="In" Value="SpaceMaintenanceActivityContext.LongTermAssetPlan" />
<Parameter Name="Status" Direction="In" Value="SpaceMaintenanceActivityStatus.Created" />
<Parameter Name="Active" Direction="In" Value="False" />
<Parameter Name="CalculationMethod" Direction="In" Value="4" />
<Parameter Name="CostType" Direction="In" Value="${MaintenancePartActivity.CostType}" />
<Parameter Name="ImplementationPercentage" Direction="In" Value="${MaintenancePartActivity.ImplementationPercentage}" />
<Parameter Name="LabourGrossCost" Direction="In" Value="${MaintenancePartActivity.LabourCost}" />
<Parameter Name="MaintenanceFrequency" Direction="In" Value="${MaintenancePartActivity.MaintenanceCycle}" />
<Parameter Name="MaintenanceFrequencyMethod" Direction="In" Value="1" />
<Parameter Name="MaintenanceStateImprovement" Direction="In" Value="${MaintenancePartActivity.MaintenanceStateImprovement}" />
<Parameter Name="NextMaintenanceState" Direction="In" Value="${MaintenancePartActivity.NextMaintenanceState}" />
<Parameter Name="NextMaintenanceYearInspector" Direction="In" Value="${ScheduledYear}" />
<Parameter Name="ObservationsPerCycle" Direction="In" Value="${MaintenancePartActivity.ObservationsPerCycle}" />
<Parameter Name="PercentageOfReplacementCost" Direction="In" Value="${MaintenancePartActivity.PercentageOfReplacementCost}" />
<Parameter Name="Price" Direction="In" Value="=${LongTermAsset.ReplacementCost}*(${MaintenancePartActivity.PercentageOfReplacementCost}/100)" />
<Parameter Name="Quantity" Direction="In" Value="1" />
<Parameter Name="StandardCostExcludingLabour" Direction="In" Value="${MaintenancePartActivity.StandardCostExcludingLabour}" />
<Parameter Name="StartYearMaintenanceFrequency" Direction="In" Value="0" />
</Insert>
</Otherwise>
</Choose>
<AddToList Name="Add element to space maintenance activity list" List="${SpaceMaintenance.Activities}" Item="${SpaceMaintenanceActivity}" />
</Transaction>
<WorkflowCall Name="ActivateSpaceMaintenanceActivity" WorkflowName="SpaceMaintenanceActivity_Activate">
<Parameter Name="SpaceMaintenanceActivity" Direction="In" Value="${SpaceMaintenanceActivity}" />
</WorkflowCall>
</ForEach>
<UserContent Name="Post" />
</Execution>
</Workflow>