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

ActionField1643

Beschrijving: Create SurveyAssessment for a Vendor. From the choosen SurveyTemplate. Custom: Nee

Propertiesbewerken

Property Type Accessor
DomainObject DomainObject Root
UseProgressStatus ProgressStatus Required
SqlWhereClauseSurveyTemplate String Optional

XMLbewerken

<Workflow Name="ActionField1643" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Create SurveyAssessment for a Vendor. From the choosen SurveyTemplate.</Description>
	<Properties>
		<Property	Name="DomainObject"					Type="DomainObject"				Accessor="Root"		Direction="In" />

		<Property	Name="UseProgressStatus"			Type="ProgressStatus"			Accessor="Required"	Direction="In"											Comment="Set PrsId for default desired progress status" />

		<Property	Name="SqlWhereClauseSurveyTemplate"	Type="String"					Accessor="Optional"	Direction="In"		Default="SvyTRecStatus = 2"			Comment="Only approved SurveyTemplate's" />

		<Property	Name="Answer"						Type="RequestResult"			Accessor="Internal"						Default="No" />
		<Property	Name="Employee"						Type="Employee"					Accessor="Internal" />
		<Property	Name="LabelDialogRemarkText"		Type="String"					Accessor="Internal"						Default="VENDORRATINGDESCRIPTION" />
		<Property	Name="LabelDialogSurveyTemplate"	Type="String"					Accessor="Internal"						Default="SURVEYTEMPLATE" />
		<Property	Name="LabelDialogTitle"				Type="String"					Accessor="Internal"						Default="CREATEVENDORRATING" />
		<Property	Name="SurveyAssessment"				Type="SurveyAssessment"			Accessor="Internal" />
		<Property	Name="SurveyAssessmentContext"		Type="String"					Accessor="Internal" />
		<Property	Name="SurveyAssessmentRemarkText"	Type="UltimoString"				Accessor="Internal" />
		<Property	Name="SurveyAssessments"			Type="List[SurveyAssessment]"	Accessor="Internal" />
		<Property	Name="Surveys"						Type="List[Survey]"				Accessor="Internal" />
		<Property	Name="SurveyTemplate"				Type="SurveyTemplate"			Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<GetList Name="Get last SurveyAssessment" Type="SurveyAssessment" OutputProperty="${SurveyAssessments}" OrderBy="Id" OrderDirection="Descending" Top="1">
				<Filters>
					<WhenFilter Condition="${DomainObject.EntityName} == Vendor">
						<PropertyFilter	PropertyName="Vendor"		Operator="="		PropertyValue="${DomainObject}" />
					</WhenFilter>
					<WhenFilter Condition="${DomainObject.EntityName} == ServiceContract">
						<PropertyFilter	PropertyName="ServiceContract"	Operator="="		PropertyValue="${DomainObject}" />
					</WhenFilter>
					<PropertyFilter	PropertyName="IncidentalAssessment"	Operator="="		PropertyValue="False" />
					<InFilter PropertyName="Status" Values="SurveyAssessmentStatus.Processed, SurveyAssessmentStatus.FollowUp, SurveyAssessmentStatus.Finished" />
				</Filters>
			</GetList>
		</Transaction>

		<When Name="Found a SurveyAssessments" Condition="${SurveyAssessments.Count} == 1 &amp;&amp; ${SurveyAssessments[0].SurveyTemplate.Status} == SurveyTemplateStatus.Approved">
			<Question Name="Use last SurveyAssessment for new SurveyAssessment" Type="YesNoCancel" MessageCode="3155" OutputProperty="${Answer}">
				<Parameter	Name="DomainObject"		Direction="In"		Value="${DomainObject}" />
				<Parameter	Name="SurveyAssessment"	Direction="In"		Value="${SurveyAssessments[0]}" />
			</Question>
		</When>

		<When Name="When answer is Cancel" Condition="${Answer} == Cancel">
			<Stop Name="Stop" Mode="EndAll" />
		</When>

		<When Name="When answer is Yes" Condition="${Answer} == Yes">
			<Assign Name="Set SurveyTemplate" Property="${SurveyTemplate}" Value="${SurveyAssessments[0].SurveyTemplate}" />
			<Assign Name="Set SurveyAssessmentRemarkText" Property="${SurveyAssessmentRemarkText}" Value="${SurveyAssessments[0].RemarkText}" />
		</When>

		<When Condition="${DomainObject.EntityName} == Vendor">
			<Choose Name="SqlWhereClauseSurveyTemplate">
				<When Name="SqlWhereClauseSurveyTemplate not empty" Condition="${SqlWhereClauseSurveyTemplate} != Empty">
					<Assign Name="SqlWhereClauseSurveyTemplate" Property="${SqlWhereClauseSurveyTemplate}" Value="${SqlWhereClauseSurveyTemplate} AND SvyTContext = 1" />
				</When>

				<Otherwise>
					<Assign Name="SqlWhereClauseSurveyTemplate" Property="${SqlWhereClauseSurveyTemplate}" Value="SvyTContext = 1" />
				</Otherwise>
			</Choose>

			<Assign Name="set SurveyAssessmentContext" Property="${SurveyAssessmentContext}" Value="SurveyAssessmentContext.VendorRating" />
		</When>

		<When Condition="${DomainObject.EntityName} == ServiceContract">
			<Choose>
				<When Name="SqlWhereClauseSurveyTemplate not empty" Condition="${SqlWhereClauseSurveyTemplate} != Empty">
					<Assign Name="SqlWhereClauseSurveyTemplate" Property="${SqlWhereClauseSurveyTemplate}" Value="${SqlWhereClauseSurveyTemplate} AND SvyTContext = 2" />
				</When>

				<Otherwise>
					<Assign Name="SqlWhereClauseSurveyTemplate" Property="${SqlWhereClauseSurveyTemplate}" Value="SvyTContext = 2" />
				</Otherwise>
			</Choose>

			<Assign Name="set LabelDialogTitle" Property="${LabelDialogTitle}" Value="CREATECONTRACTRATING" />
			<Assign Name="set LabelDialogSurveyTemplate" Property="${LabelDialogSurveyTemplate}" Value="SURVEYTEMPLATECONTRACT" />
			<Assign Name="set LabelDialogRemarkText" Property="${LabelDialogRemarkText}" Value="CONTRACTRATINGDESCRIPTION" />
			<Assign Name="set SurveyAssessmentContext" Property="${SurveyAssessmentContext}" Value="SurveyAssessmentContext.ContractAssessment" />
		</When>

		<Dialog Name="CreateSurveyAssessmentForVendorRating" TitleCode="${LabelDialogTitle}">
			<Container Border="True">
				<SelectionList Name="GetSurveyTemplate" Value="${SurveyTemplate}" OutputProperty="${SurveyTemplate}" ColumnName="SvyTId" ViewfieldConfiguration="Default" Required="True" ReadOnly="=${Answer} == Yes" LabelCode="${LabelDialogSurveyTemplate}" SqlWhereClause="${SqlWhereClauseSurveyTemplate}" />

				<Html Name="VendorRatingDescription" Visible="true" Value="${SurveyAssessmentRemarkText}" OutputProperty="${SurveyAssessmentRemarkText}" Required="False" LabelCode="${LabelDialogRemarkText}" TextAreaRows="5" />
			</Container>
		</Dialog>

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

			<Insert Name="Insert SurveyAssessment" ObjectType="SurveyAssessment" OutputProperty="${SurveyAssessment}">
				<Parameter	Name="Context"			Direction="In"		Value="${SurveyAssessmentContext}" />
				<Parameter	Name="Status"			Direction="In"		Value="SurveyAssessmentStatus.InPreparation" />
				<Parameter	Name="Description"		Direction="In"		Value="=#concat(${SurveyTemplate.Description}, #toneutral(' - '), #toneutral(${DomainObject.Description}))" />
				<Parameter	Name="Employee"			Direction="In"		Value="${Employee}" />
				<Parameter	Name="NumberToSubmit"	Direction="In"		Value="0" />
				<Parameter	Name="RemarkText"		Direction="In"		Value="=#toneutral(${SurveyAssessmentRemarkText})" />
				<Parameter	Name="SurveyTemplate"	Direction="In"		Value="${SurveyTemplate}" />
			</Insert>

			<When Condition="${DomainObject.EntityName} == Vendor">
				<Assign Name="Set SurveyAssessment Vendor" Property="${SurveyAssessment.Vendor}" Value="${DomainObject}" />
			</When>

			<When Condition="${DomainObject.EntityName} == ServiceContract">
				<Assign Name="Set SurveyAssessment ServiceContract" Property="${SurveyAssessment.ServiceContract}" Value="${DomainObject}" />
				<Assign Name="Set SurveyAssessment Vendor" Property="${SurveyAssessment.Vendor}" Value="${DomainObject.Vendor}" />
			</When>

			<WorkflowCall Name="SurveyAssessment" WorkflowName="SurveyAssessment_InsertSurveyAssessmentLinesFromTemplate">
				<Parameter	Name="SurveyAssessment"	Direction="In"		Value="${SurveyAssessment}" />
				<Parameter	Name="SurveyTemplate"	Direction="In"		Value="${SurveyTemplate}" />
			</WorkflowCall>

			<When Name="When answer is Yes" Condition="${Answer} == Yes">
				<GetList Name="Get Surveys" Type="Survey" OutputProperty="${Surveys}" OrderBy="Id" OrderDirection="Ascending">
					<Joins>
						<Join	Name="Employee"	Alias="Emp"	Type="LeftOuterJoin" />
					</Joins>
					<Filters>
						<CombinedFilter FilterOperator="Or">
							<PropertyFilter	PropertyName="Emp.DateOutLabour"	Operator="="		PropertyValue="Empty" />
							<PropertyFilter	PropertyName="Emp.DateOutLabour"	Operator="&gt;"		PropertyValue="#{Environment.CurrentDate}" />
						</CombinedFilter>
						<PropertyFilter	PropertyName="SurveyAssessment"	Operator="="		PropertyValue="${SurveyAssessments[0]}" />
					</Filters>
				</GetList>

				<ForEach Name="For all Employees" In="${Surveys}" As="Survey">
					<WorkflowCall Name="Create a Survey" WorkflowName="Survey_CreateForAnEmployee">
						<Parameter	Name="DestinationEmployee"	Direction="In"		Value="${Survey.Employee}" />
						<Parameter	Name="NewSurveyStatus"		Direction="In"		Value="0" />
						<Parameter	Name="SurveyAssessment"		Direction="In"		Value="${SurveyAssessment}" />
						<Parameter	Name="SurveyCopy"			Direction="In"		Value="${Survey}" />
					</WorkflowCall>
				</ForEach>

				<GetList Name="Get Surveys from employee Out labour" Type="Survey" OutputProperty="${Surveys}" OrderBy="Id" OrderDirection="Ascending">
					<Joins>
						<Join	Name="Employee"	Alias="Emp"	Type="LeftOuterJoin" />
					</Joins>
					<Filters>
						<PropertyFilter	PropertyName="Emp.DateOutLabour"	Operator="&lt;="	PropertyValue="#{Environment.CurrentDate}" />
						<PropertyFilter	PropertyName="SurveyAssessment"		Operator="="		PropertyValue="${SurveyAssessments[0]}" />
					</Filters>
				</GetList>
			</When>

			<WorkflowCall Name="Call DomainObject_ChangeProgressStatus" WorkflowName="DomainObject_ChangeProgressStatus">
				<Parameter	Name="DomainObject"				Direction="In"		Value="${SurveyAssessment}" />
				<Parameter	Name="ProgressStatusContext"	Direction="In"		Value="${UseProgressStatus.Context}" />
				<Parameter	Name="UseProgressStatus"		Direction="In"		Value="${UseProgressStatus}" />
			</WorkflowCall>

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

		<UserContent Name="Post" />

		<When Name="When answer is Yes and there where Survey for Employees OutLabour" Condition="${Answer} == Yes &amp;&amp; ${Surveys.Count} &gt; 0">
			<Message Name="Employees outlabour" MessageCode="3159">
				<Parameter	Name="Surveys"	Direction="In"		Value="${Surveys}" />
			</Message>
		</When>

		<View Name="OpenScreen" ViewName="DataEntryScreen">
			<Parameter	Name="DomainObject"			Direction="In"		Value="${SurveyAssessment}" />
			<Parameter	Name="FocusEditableField"	Direction="In"		Value="=${SurveyAssessment.Description} == Empty" />
		</View>
	</Execution>
</Workflow>