Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield1552
ActionField1552
Beschrijving: Enable user to set unique value for absence priority on HourCode. Implicitly sets ShowAsAbsence. Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| HourCode | HourCode | Root |
XMLbewerken
<Workflow Name="ActionField1552" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Enable user to set unique value for absence priority on HourCode. Implicitly sets ShowAsAbsence.</Description>
<Properties>
<Property Name="HourCode" Type="HourCode" Accessor="Root" Direction="In" />
<Property Name="AbsenceHourCodes" Type="List[HourCode]" Accessor="Internal" />
<Property Name="HighestPriority" Type="Int32" Accessor="Internal" Default="1" />
<Property Name="LowestPriority" Type="Int32" Accessor="Internal" Default="1" />
<Property Name="NewPriority" Type="Int32" Accessor="Internal" Default="1" />
<Property Name="NoPriority" Type="Int32" Accessor="Internal" Default="0" Comment="Selecting this value from SelectablePriorities forces a reset of ShowAsAbsence." />
<Property Name="OtherAbsenceHourCodes" Type="String" Accessor="Internal" />
<Property Name="PriorityLabel" Type="String" Accessor="Internal" />
<Property Name="SelectablePriorities" Type="List[Int32]" Accessor="Internal" />
<Property Name="SelectedPriority" Type="Int32" Accessor="Internal" Default="1" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<When Name="No priority selectable" Condition="${HourCode.AbsencePriority} > 0">
<AddToList Name="No Priority" List="${SelectablePriorities}" Item="${NoPriority}" />
</When>
<When Name="Highest priority selectable" Condition="${HourCode.AbsencePriority} != ${HighestPriority}">
<AddToList Name="Highest Priority" List="${SelectablePriorities}" Item="${HighestPriority}" Comment="Always offer user to select the highest priority." />
</When>
<Transaction>
<GetList Name="Current AbsenceHourCodes" Type="HourCode" OutputProperty="${AbsenceHourCodes}" OrderBy="AbsencePriority" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="ShowAsAbsence" Operator="=" PropertyValue="True" />
</Filters>
</GetList>
<ForEach Name="AbsenceHourCode" In="${AbsenceHourCodes}" As="AbsenceHourCode">
<Assign Name="OtherAbsenceHourCodes" Property="${OtherAbsenceHourCodes}" Value="=#concat(${OtherAbsenceHourCodes}, ${AbsenceHourCode.Description}, ' (', ${AbsenceHourCode.AbsencePriority}, ')', #{SpecialCharacters.NewLine})" />
<When Name="Name" Condition="${HourCode.Id} != ${AbsenceHourCode.Id} && #exists(${AbsenceHourCode.AbsencePriority}, ${SelectablePriorities}) == False">
<AddToList Name="Priority" List="${SelectablePriorities}" Item="${AbsenceHourCode.AbsencePriority}" />
</When>
<Add Name="Update Lowest Priority" ValueLeft="${AbsenceHourCode.AbsencePriority}" ValueRight="1" OutputProperty="${LowestPriority}" />
</ForEach>
</Transaction>
<When Name="AbsenceHourCodes" Condition="${AbsenceHourCodes.Count} >= 1">
<When Name="No priority yet" Condition="${HourCode.AbsencePriority} == 0">
<AddToList Name="User can select lowest priority" List="${SelectablePriorities}" Item="${LowestPriority}" />
</When>
<FormatText Name="RESETABSENCEPRIORITYONHOURCODE" TextCode="RESETABSENCEPRIORITYONHOURCODE" Application="LABEL" OutputProperty="${PriorityLabel}" />
<WorkflowCall Name="Select absence priority" WorkflowName="Dialog_SetAbsencePriorityOnHourCode">
<Parameter Name="AbsenceHourCodes" Direction="In" Value="${OtherAbsenceHourCodes}" />
<Parameter Name="PriorityLabel" Direction="In" Value="${PriorityLabel}" />
<Parameter Name="SelectablePriorities" Direction="In" Value="${SelectablePriorities}" />
<Parameter Name="SuggestedPriority" Direction="In" Value="${LowestPriority}" />
<Parameter Name="SelectedPriority" Direction="Out" OutputProperty="${SelectedPriority}" />
</WorkflowCall>
</When>
<Transaction>
<Assign Name="AbsencePriority" Property="${HourCode.AbsencePriority}" Value="${SelectedPriority}" />
<Assign Name="ShowAsAbsence" Property="${HourCode.ShowAsAbsence}" Value="=${HourCode.AbsencePriority} > 0 ? True : False" />
<GetList Name="Current AbsenceHourCodes" Type="HourCode" OutputProperty="${AbsenceHourCodes}" OrderBy="AbsencePriority" OrderDirection="Ascending">
<Filters>
<CombinedFilter FilterOperator="And">
<PropertyFilter PropertyName="ShowAsAbsence" Operator="=" PropertyValue="True" />
<PropertyFilter PropertyName="Id" Operator="!=" PropertyValue="${HourCode.Id}" />
</CombinedFilter>
</Filters>
</GetList>
<Assign Name="Start numbering at 1" Property="${NewPriority}" Value="${HighestPriority}" />
<ForEach Name="AbsenceHourCode" In="${AbsenceHourCodes}" As="AbsenceHourCode">
<When Name="Already exists" Condition="${NewPriority} == ${SelectedPriority}">
<Add Name="Decrement priority" ValueLeft="${NewPriority}" ValueRight="1" OutputProperty="${NewPriority}" />
</When>
<Assign Name="AbsencePriority" Property="${AbsenceHourCode.AbsencePriority}" Value="=${NewPriority}" />
<Add Name="Decrement priority" ValueLeft="${NewPriority}" ValueRight="1" OutputProperty="${NewPriority}" />
<Assign Name="ShowAsAbsence" Property="${AbsenceHourCode.ShowAsAbsence}" Value="True" />
</ForEach>
</Transaction>
<UserContent Name="Post" />
</Execution>
</Workflow>