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

ActionField752

Beschrijving: Validate default ProgressStatus with linked recordstatuses. Custom: Nee

Propertiesbewerken

Property Type Accessor
DefaultProgressStatusContext DefaultProgressStatusContext Root

XMLbewerken

<Workflow Name="ActionField752" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Validate default ProgressStatus with linked recordstatuses.</Description>
	<Properties>
		<Property	Name="DefaultProgressStatusContext"					Type="DefaultProgressStatusContext"						Accessor="Root"		Direction="In" />

		<Property	Name="CustomJobAndProgressStatusContextCombination"	Type="UltimoString"										Accessor="Internal"						Default="#{UltimoSettings.CustomJobAndProgressStatusContextCombination}"		Comment="this override the default list combination" />
		<Property	Name="DefaultContextCombination"					Type="UltimoString"										Accessor="Internal"						Default="#{Settings.DefaultProgressStatusContext.DefaultContextCombination}"	Comment="list combination of string of jobcontext and progressstatuscombination example (1,2)(2,8)(4,512)" />
		<Property	Name="DefaultProgressStatusContextRecordStatuses"	Type="List[DefaultProgressStatusContextRecordStatus]"	Accessor="Internal" />
		<Property	Name="ExistProgressStatusCounter"					Type="Int64"											Accessor="Internal"						Default="0" />
		<Property	Name="ExtraJobAndProgressStatusContextCombination"	Type="UltimoString"										Accessor="Internal"						Default="#{UltimoSettings.ExtraJobAndProgressStatusContextCombination}"			Comment="list combination of string of jobcontext and progressstatuscombination example (1,2)(2,8)(4,512)" />
		<Property	Name="ProgressStatusContextOut"						Type="Int64"											Accessor="Internal" />
		<Property	Name="ProgressStatuses"								Type="List[ProgressStatus]"								Accessor="Internal" />
		<Property	Name="SuccessFindContext"							Type="Boolean"											Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="ExtraJobAndProgressStatusContextCombinationIsNotEmpty" Condition="${ExtraJobAndProgressStatusContextCombination} != Empty">
			<Assign Name="PastStringToDefaultContextCombination" Property="${DefaultContextCombination}" Value="${ExtraJobAndProgressStatusContextCombination}${DefaultContextCombination}" />
		</When>

		<When Name="CustomJobAndProgressStatusContextCombinationIsNotEmpty" Condition="${CustomJobAndProgressStatusContextCombination} != Empty">
			<Assign Name="OverrideDefaultContextCombination" Property="${DefaultContextCombination}" Value="${CustomJobAndProgressStatusContextCombination}" />
		</When>

		<UnformatText Name="UnformatContextCombination" Text="${DefaultContextCombination}" Mask="\(${DefaultProgressStatusContext.Id.Id},(\d+)\)" CaseSensitive="True" OutputProperty="${SuccessFindContext}">
			<Parameter	Name="1"	Direction="Out"		OutputProperty="${ProgressStatusContextOut}" />
		</UnformatText>

		<Validation Name="SuccessFindContextExist" Condition="${SuccessFindContext} == True" MessageCode="1495" />

		<Transaction>
			<GetList Name="GetDefaultProgressStatusContextRecordStatusRecords" Type="DefaultProgressStatusContextRecordStatus" OutputProperty="${DefaultProgressStatusContextRecordStatuses}" OrderBy="Id.DefaultProgressStatusContext" OrderDirection="Ascending">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Id.DefaultProgressStatusContext"	Operator="="		PropertyValue="${DefaultProgressStatusContext}" />
						<NotFilter>
							<PropertyEmptyFilter PropertyName="ProgressStatus" />
						</NotFilter>
					</CombinedFilter>
				</Filters>
			</GetList>

			<ForEach Name="LoopThroughRecords" In="${DefaultProgressStatusContextRecordStatuses}" As="CurrentDefaultProgressStatusContextRecordStatus">
				<Assign Name="SetCounterZero" Property="${ExistProgressStatusCounter}" Value="0" />

				<GetList Name="GetItemProgressStatus" Type="ProgressStatus" OutputProperty="${ProgressStatuses}" OrderBy="Id" OrderDirection="Ascending">
					<Filters>
						<PropertyFilter	PropertyName="Context"		Operator="="		PropertyValue="${ProgressStatusContextOut}" />
						<PropertyFilter	PropertyName="NextStatus"	Operator="="		PropertyValue="${CurrentDefaultProgressStatusContextRecordStatus.Id.Status}" />
					</Filters>
				</GetList>

				<ForEach Name="LoopThroughProgressStatuses" In="${ProgressStatuses}" As="CurrentProgressStatus">
					<When Name="CheckInList" Condition="${CurrentProgressStatus} == ${CurrentDefaultProgressStatusContextRecordStatus.ProgressStatus}">
						<Counter Name="ExistProgressStatusCounter" Property="${ExistProgressStatusCounter}" Step="1" />
					</When>
				</ForEach>

				<Validation Name="NoMatchProgressStatus" Condition="${ExistProgressStatusCounter} &gt; 0" MessageCode="1493">
					<Parameter	Name="DefaultProgressStatusContextRecordStatus"	Direction="In"		Value="${CurrentDefaultProgressStatusContextRecordStatus}" />
				</Validation>
			</ForEach>
		</Transaction>

		<UserContent Name="Post" />

		<Message Name="ConfirmationMessage" MessageCode="1502">
			<Parameter	Name="DefaultProgressStatusContext"	Direction="In"		Value="${DefaultProgressStatusContext}" />
		</Message>
	</Execution>
</Workflow>