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

ActionField037

Beschrijving: Reopen JobWeek (from status Created or Approved). Custom: Nee

Propertiesbewerken

Property Type Accessor
JobWeek JobWeek Root

XMLbewerken

<Workflow Name="ActionField037" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Reopen JobWeek (from status Created or Approved).</Description>
	<Properties>
		<Property	Name="JobWeek"									Type="JobWeek"			Accessor="Root"		Direction="In" />

		<Property	Name="CurrentEmployee"							Type="Employee"			Accessor="Internal" />
		<Property	Name="EmployeeId"								Type="String"			Accessor="Internal"						Default="-" />
		<Property	Name="JobWeekLaboursFromOtherEmployeesCount"	Type="Int64"			Accessor="Internal" />
		<Property	Name="ReopenAnswer"								Type="RequestResult"	Accessor="Internal" />
		<Property	Name="ReopenEmployeeLabourWeekIfApproved"		Type="Boolean"			Accessor="Internal" />
	</Properties>
	<Settings>
		<SettingsGroup Name="JobWeekLabour">
			<Setting	Name="ReopenEmployeeLabourWeekIfApproved"	Type="Boolean"	Value="False" />
			<Setting	Name="ReopenOtherUsers"						Type="Boolean"	Value="False" />
		</SettingsGroup>
	</Settings>
	<Execution>
		<UserContent Name="Pre" />

		<Validation Name="StatusValidation" Condition="${JobWeek.Status} == JobWeekStatus.Created || ${JobWeek.Status} == JobWeekStatus.Approved" MessageCode="0429">
			<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
		</Validation>

		<Transaction>
			<GetItem Name="Get Applicant" Type="Employee" OutputProperty="${CurrentEmployee}">
				<Filters>
					<PropertyFilter	PropertyName="Id"	Operator="="		PropertyValue="#{User.EmployeeId}" />
				</Filters>
			</GetItem>
		</Transaction>

		<Question Name="ReopenEmployeeLabourWeekIfApproved" Type="YesNoCancel" MessageCode="0458" OutputProperty="${ReopenEmployeeLabourWeekIfApproved}">
			<Parameter	Name="Employee"	Direction="In"		Value="${CurrentEmployee}" />
		</Question>

		<Assign Name="ReopenEmployeeLabourWeekIfApproved" Property="#{Settings.JobWeekLabour.ReopenEmployeeLabourWeekIfApproved}" Value="${ReopenEmployeeLabourWeekIfApproved}" />

		<When Name="user has rights" Condition="#{User.IsSuper} == True">
			<Transaction>
				<GetCount Name="Count other employees" Type="JobWeekLabour" OutputProperty="${JobWeekLaboursFromOtherEmployeesCount}">
					<Filters>
						<CombinedFilter FilterOperator="And">
							<NotFilter>
								<PropertyFilter	PropertyName="Employee"		Operator="="		PropertyValue="${CurrentEmployee}" />
							</NotFilter>
							<PropertyFilter	PropertyName="Id.JobWeek"	Operator="="		PropertyValue="${JobWeek}" />
						</CombinedFilter>
					</Filters>
				</GetCount>
			</Transaction>

			<When Name="HasJobWeekLaboursFromOtherEmployees" Condition="${JobWeekLaboursFromOtherEmployeesCount} != 0">
				<Question Name="AskReopenOtherUsers" Type="YesNo" MessageCode="0430" OutputProperty="${ReopenAnswer}" />

				<Assign Name="ReopenOtherUsers is true" Property="#{Settings.JobWeekLabour.ReopenOtherUsers}" Value="${ReopenAnswer}" />
			</When>
		</When>

		<Transaction>
			<WorkflowCall Name="JobWeek_ReopenAuthorized" WorkflowName="JobWeek_ReopenAuthorized">
				<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
			</WorkflowCall>
		</Transaction>

		<UserContent Name="Post" />

		<Choose Name="Job not reopened">
			<When Name="JobWeekNotReopened" Condition="${JobWeek.Status} != JobWeekStatus.Created">
				<Choose Name="JobWeek not reopened">
					<When Name="IsSuperAndReopenOtherUsers" Condition="#{User.IsSuper} == True &amp;&amp; #{Settings.JobWeekLabour.ReopenOtherUsers} == True">
						<Message Name="Message 0497" MessageCode="0497">
							<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
						</Message>
					</When>

					<Otherwise Name="No righs">
						<Message Name="Message 0496" MessageCode="0496">
							<Parameter	Name="EmployeeId"	Direction="In"		Value="${EmployeeId}" />
							<Parameter	Name="JobWeek"		Direction="In"		Value="${JobWeek}" />
						</Message>
					</Otherwise>
				</Choose>
			</When>

			<Otherwise Name="JobWeek reopened">
				<Choose Name="JobReopened">
					<When Name="IsSuperAndReopenOtherUsersCreated" Condition="#{User.IsSuper} == True &amp;&amp; #{Settings.JobWeekLabour.ReopenOtherUsers} == True">
						<Message Name="Message 0499" MessageCode="0499">
							<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
						</Message>
					</When>

					<Otherwise Name="No rights">
						<Message Name="Message 0498" MessageCode="0498">
							<Parameter	Name="JobWeek"	Direction="In"		Value="${JobWeek}" />
						</Message>
					</Otherwise>
				</Choose>
			</Otherwise>
		</Choose>
	</Execution>
</Workflow>