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

ActionField196

Beschrijving: Batch close JobWeeks from one week (DomainGlobals.LastClosedWeek + 1). Custom: Nee

Propertiesbewerken

Property Type Accessor
CountClosed Int64 Optional
CountNotClosed Int64 Optional

XMLbewerken

<Workflow Name="ActionField196" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Batch close JobWeeks from one week (DomainGlobals.LastClosedWeek + 1).</Description>
	<Properties>
		<Property	Name="CountClosed"		Type="Int64"			Accessor="Optional"	Direction="In"		Default="0" />
		<Property	Name="CountNotClosed"	Type="Int64"			Accessor="Optional"	Direction="In"		Default="0" />

		<Property	Name="DomainGlobals"	Type="DomainGlobals"	Accessor="Internal"						Default="#{UltimoSettings.Id}" />
		<Property	Name="IsApproved"		Type="Boolean"			Accessor="Internal" />
		<Property	Name="JobWeeksToClose"	Type="List[JobWeek]"	Accessor="Internal" />
		<Property	Name="WeekToClose"		Type="WeekOfYear"		Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Assign Name="Determine WeekToClose" Property="${WeekToClose}" Value="=#addweeks(${DomainGlobals.LastClosedWeek}, 1)" />

		<ContinuationQuestion Name="AskCloseWeek" MessageCode="0398">
			<Parameter	Name="LastClosedWeek"	Direction="In"		Value="${DomainGlobals.LastClosedWeek}" />
			<Parameter	Name="WeekToClose"		Direction="In"		Value="${WeekToClose}" />
		</ContinuationQuestion>

		<Transaction>
			<GetList Name="Get JobWeeks to close" Type="JobWeek" OutputProperty="${JobWeeksToClose}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Id.Week"	Operator="="		PropertyValue="${WeekToClose}" />
						<InFilter PropertyName="Status" Values="JobWeekStatus.Created,JobWeekStatus.Approved" />
					</CombinedFilter>
				</Filters>
			</GetList>

			<ForEach Name="Foreach JobWeek to close" In="${JobWeeksToClose}" As="JobWeek">
				<When Name="WhenJobWeekIsOpen" Condition="${JobWeek.Status} == JobWeekStatus.Created">
					<WorkflowCall Name="JobWeek_Approve" WorkflowName="JobWeek_ApproveAuthorized">
						<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
					</WorkflowCall>
				</When>

				<When Name="WhenJobWeekIsApproved" Condition="${JobWeek.Status} == JobWeekStatus.Approved">
					<ChangeStatus Name="Close JobWeek" DomainObject="${JobWeek}" NewStatus="JobWeekStatus.Closed" />
				</When>

				<Choose Name="CheckClosed">
					<When Name="JobWeekIsClosed" Condition="${JobWeek.Status} == JobWeekStatus.Closed">
						<Counter Name="CountClosed" Property="${CountClosed}" Step="1" />
					</When>

					<Otherwise Name="JobWeekIsNotClosed">
						<Counter Name="CountNotClosed" Property="${CountNotClosed}" Step="1" />
					</Otherwise>
				</Choose>
			</ForEach>

			<When Name="yes" Condition="${CountNotClosed} == 0">
				<Assign Name="Update last closed week" Property="${DomainGlobals.LastClosedWeek}" Value="${WeekToClose}" />
			</When>
		</Transaction>

		<Message Name="Message Ok" MessageCode="0462">
			<Parameter	Name="JobWeeksClosed"		Direction="In"		Value="${CountClosed}" />
			<Parameter	Name="JobWeeksNotClosed"	Direction="In"		Value="${CountNotClosed}" />
			<Parameter	Name="WeekToClose"			Direction="In"		Value="${WeekToClose}" />
		</Message>

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