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

ActionField921

Beschrijving: Confirm ObjectConfirmationRole. Custom: Nee

Propertiesbewerken

Property Type Accessor
ObjectConfirmationRole ObjectConfirmationRole Root
ConfirmationByUserRequired Boolean Optional

XMLbewerken

<Workflow Name="ActionField921" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Confirm ObjectConfirmationRole.</Description>
	<Properties>
		<Property	Name="ObjectConfirmationRole"					Type="ObjectConfirmationRole"		Accessor="Root"		Direction="In" />

		<Property	Name="ConfirmationByUserRequired"				Type="Boolean"						Accessor="Optional"	Direction="In"		Default="True"					Comment="Controls whether the user gets a confirmation dialog." />

		<Property	Name="ConfirmationStatement"					Type="List[UltimoString]"			Accessor="Internal"														Comment="Use a list to be able to use checkbox group in dialog" />
		<Property	Name="ConfirmationStatementAddition"			Type="List[UltimoString]"			Accessor="Internal"														Comment="Use a list to be able to use checkbox group in dialog" />
		<Property	Name="ConfirmationStatementAdditionRatified"	Type="Boolean"						Accessor="Internal"						Default="False" />
		<Property	Name="ConfirmationStatementAdditionRequired"	Type="Boolean"						Accessor="Internal" />
		<Property	Name="ConfirmationStatementRatified"			Type="Boolean"						Accessor="Internal"						Default="False" />
		<Property	Name="ConfirmationStatementRequired"			Type="Boolean"						Accessor="Internal" />
		<Property	Name="CorrectPerson"							Type="Boolean"						Accessor="Internal"						Default="True" />
		<Property	Name="Count"									Type="Int64"						Accessor="Internal" />
		<Property	Name="CountRole"								Type="Int64"						Accessor="Internal" />
		<Property	Name="DomainObject"								Type="DomainObject"					Accessor="Internal"														Comment="WF made generic to allow other domain objects to use it" />
		<Property	Name="Employee"									Type="Employee"						Accessor="Internal"						Default="#{User.EmployeeId}" />
		<Property	Name="ObjectConfirmationRoles"					Type="List[ObjectConfirmationRole]"	Accessor="Internal" />
		<Property	Name="SelectedConfirmationStatement"			Type="List[UltimoString]"			Accessor="Internal"														Comment="Use a list to be able to use checkbox group in dialog" />
		<Property	Name="SelectedConfirmationStatementAddition"	Type="List[UltimoString]"			Accessor="Internal"														Comment="Use a list to be able to use checkbox group in dialog" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<Assign Name="Set DomainObject to Permit" Property="${DomainObject}" Value="${ObjectConfirmationRole.Permit}" />

			<WorkflowCall Name="ObjectConfirmationRole_FourEyesPrinciple" WorkflowName="ObjectConfirmationRole_FourEyesPrinciple">
				<Parameter	Name="ObjectConfirmationRole"	Direction="In"		Value="${ObjectConfirmationRole}" />
			</WorkflowCall>

			<Choose Name="which context?">
				<When Name="Confirmation" Condition="${ObjectConfirmationRole.Context} == ObjectConfirmationRoleContext.WorkPermitConfirmation">
					<When Name="When confirmation statement is required" Condition="${ObjectConfirmationRole.ConfirmationStatement} != Empty">
						<Assign Name="Add confirmation statement to list" Property="${ConfirmationStatement}" Value="${ObjectConfirmationRole.ConfirmationStatement}" />
						<Assign Name="Set confirmation statement required" Property="${ConfirmationStatementRequired}" Value="True" />
					</When>

					<When Name="When confirmation statement LOTO addition is required" Condition="${DomainObject.LockoutTagoutApplicable} == True &amp;&amp; ${ObjectConfirmationRole.LockoutTagoutConfirmationStatementAddition} != Empty">
						<Assign Name="Add confirmation statement LOTO addition to list" Property="${ConfirmationStatementAddition}" Value="${ObjectConfirmationRole.LockoutTagoutConfirmationStatementAddition}" />
						<Assign Name="Set confirmation statement LOTO addition required" Property="${ConfirmationStatementAdditionRequired}" Value="True" />
					</When>
				</When>


				<When Name="Acceptance" Condition="${ObjectConfirmationRole.Context} == ObjectConfirmationRoleContext.WorkPermitAcceptance">
					<When Name="When acceptance statement is required" Condition="${ObjectConfirmationRole.AcceptanceStatement} != Empty">
						<Assign Name="Add acceptance statement to list" Property="${ConfirmationStatement}" Value="${ObjectConfirmationRole.AcceptanceStatement}" />
						<Assign Name="Set acceptance statement required" Property="${ConfirmationStatementRequired}" Value="True" />
					</When>
				</When>
			</Choose>

			<Validation Name="Not Confirmed" Condition="${ObjectConfirmationRole.Confirmed} == False" MessageCode="1689">
				<Parameter	Name="DomainObject"				Direction="In"		Value="${DomainObject}" />
				<Parameter	Name="ObjectConfirmationRole"	Direction="In"		Value="${ObjectConfirmationRole}" />
			</Validation>
			<Validation Name="Sign Digitally" Condition="${ObjectConfirmationRole.SignatureType} == Digitally" MessageCode="1693">
				<Parameter	Name="DomainObject"				Direction="In"		Value="${DomainObject}" />
				<Parameter	Name="ObjectConfirmationRole"	Direction="In"		Value="${ObjectConfirmationRole}" />
			</Validation>

			<GetCount Name="Check correct role" Type="EmployeeConfirmationRole" OutputProperty="${CountRole}">
				<Filters>
					<PropertyFilter	PropertyName="Id.Employee"			Operator="="		PropertyValue="${Employee}" />
					<PropertyFilter	PropertyName="Id.ConfirmationRole"	Operator="="		PropertyValue="${ObjectConfirmationRole.ConfirmationRole}" />
				</Filters>
			</GetCount>
		</Transaction>

		<Validation Name="Correct Role" Condition="${ObjectConfirmationRole.Requester} == True || ${CountRole} &gt; 0" MessageCode="1695">
			<Parameter	Name="DomainObject"	Direction="In"		Value="${DomainObject}" />
		</Validation>

		<When Name="Provider" Condition="${ObjectConfirmationRole.LastConfirmation} == True">
			<Transaction>
				<GetCount Name="Count other digitally needed confirmations" Type="ObjectConfirmationRole" OutputProperty="${Count}">
					<Filters>
						<WhenFilter Condition="${ObjectConfirmationRole.Permit} != Empty">
							<PropertyFilter	PropertyName="Permit"		Operator="="		PropertyValue="${ObjectConfirmationRole.Permit}" />
						</WhenFilter>
						<PropertyFilter	PropertyName="Confirmed"		Operator="="		PropertyValue="False" />
						<PropertyFilter	PropertyName="Context"			Operator="="		PropertyValue="${ObjectConfirmationRole.Context}" />
						<PropertyFilter	PropertyName="SignatureType"	Operator="="		PropertyValue="Digitally" />
						<NotFilter>
							<PropertyFilter	PropertyName="Id"			Operator="="		PropertyValue="${ObjectConfirmationRole}" />
						</NotFilter>
					</Filters>
				</GetCount>
			</Transaction>

			<Validation Name="Provider can confirm" Condition="${Count} == 0" MessageCode="1690">
				<Parameter	Name="DomainObject"	Direction="In"		Value="${DomainObject}" />
			</Validation>
		</When>

		<Choose Name="Correct Person">
			<When Name="Employee filed" Condition="${ObjectConfirmationRole.Employee} != Empty">
				<When Name="Not current employee" Condition="${ObjectConfirmationRole.Employee} != ${Employee}">
					<Assign Name="Not correct employee" Property="${CorrectPerson}" Value="False" />
				</When>
			</When>


			<When Name="Department filed" Condition="${ObjectConfirmationRole.Department} != Empty">
				<When Name="Not current Department" Condition="${ObjectConfirmationRole.Department} != ${Employee.Department}">
					<Assign Name="Not correct Department" Property="${CorrectPerson}" Value="False" />
				</When>
			</When>


			<When Name="Vendor filed" Condition="${ObjectConfirmationRole.Vendor} != Empty">
				<When Name="Not current Vendor" Condition="${ObjectConfirmationRole.Vendor} != ${Employee.Vendor}">
					<Assign Name="Not correct Vendor" Property="${CorrectPerson}" Value="False" />
				</When>
			</When>
		</Choose>

		<When Name="Should Ask to continue" Condition="${CorrectPerson} == False">
			<ContinuationQuestion Name="Confirm for this confirmation role" MessageCode="1688">
				<Parameter	Name="DomainObject"				Direction="In"		Value="${DomainObject}" />
				<Parameter	Name="ObjectConfirmationRole"	Direction="In"		Value="${ObjectConfirmationRole}" />
			</ContinuationQuestion>
		</When>

		<When Name="When there is a statement to ratify" Condition="${ConfirmationStatementRequired} || ${ConfirmationStatementAdditionRequired}">
			<When Name="ConfirmationByUserRequired" Condition="${ConfirmationByUserRequired} == True">
				<Dialog Name="Permit_RatifyConfirmationStatements" TitleCode="RATIFYCONFIRMATIONSTATEMENT">
					<Container>
						<CheckBoxGroup Name="ConfirmationStatement" Visible="${ConfirmationStatementRequired}" OutputProperty="${SelectedConfirmationStatement}" Items="${ConfirmationStatement}" />

						<CheckBoxGroup Name="LockoutTagoutConfirmationStatementAddition" Visible="${ConfirmationStatementAdditionRequired}" OutputProperty="${SelectedConfirmationStatementAddition}" Items="${ConfirmationStatementAddition}" />
					</Container>
					<Validations>
						<ValidationExpression Name="ValidateConfirmationStatement" Condition="${ConfirmationStatementRequired} == False || ${SelectedConfirmationStatement.Count} &gt; 0" MessageCode="2292" TriggerType="OnPropertyChange" />

						<ValidationExpression Name="ValidateConfirmationStatementAddition" Condition="${ConfirmationStatementAdditionRequired} == False || ${SelectedConfirmationStatementAddition.Count} &gt; 0" MessageCode="2994" TriggerType="OnPropertyChange" />
					</Validations>
				</Dialog>
			</When>
		</When>

		<Transaction>
			<Assign Name="Confirmed" Property="${ObjectConfirmationRole.Confirmed}" Value="True" />
			<Assign Name="ConfirmedEmployee" Property="${ObjectConfirmationRole.ConfirmedEmployee}" Value="#{User.EmployeeId}" />
			<Assign Name="ConfirmedEmployeeName" Property="${ObjectConfirmationRole.ConfirmedEmployeeName}" Value="=#toneutral(${Employee.Description})" />
			<Assign Name="ConfirmedDate" Property="${ObjectConfirmationRole.ConfirmedDate}" Value="#{Environment.CurrentDateTime}" />
		</Transaction>

		<When Name="Is it a Permit?" Condition="${DomainObject.EntityName} == Permit">
			<WorkflowCall Name="Delete the generated document from Mobile after the validation was done" WorkflowName="Permit_DeleteLinkedDocumentGeneratedFromMobile">
				<Parameter	Name="Permit"	Direction="In"		Value="${DomainObject}" />
			</WorkflowCall>
		</When>

		<UserContent Name="Post" />

		<Message Name="Confirmed" MessageCode="1687">
			<Parameter	Name="DomainObject"				Direction="In"		Value="${DomainObject}" />
			<Parameter	Name="ObjectConfirmationRole"	Direction="In"		Value="${ObjectConfirmationRole}" />
		</Message>
	</Execution>
</Workflow>