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

ActionField1641

Beschrijving: Add Question to SurveyTemplate(Line). Custom: Nee

Propertiesbewerken

Property Type Accessor
SurveyTemplate SurveyTemplate Root
SqlWhereClause String Optional

XMLbewerken

<Workflow Name="ActionField1641" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Add Question to SurveyTemplate(Line).</Description>
	<Properties>
		<Property	Name="SurveyTemplate"			Type="SurveyTemplate"			Accessor="Root"		Direction="In" />

		<Property	Name="SqlWhereClause"			Type="String"					Accessor="Optional"	Direction="In"		Default="Empty" />

		<Property	Name="OrderByQuestion"			Type="Int16"					Accessor="Internal" />
		<Property	Name="OrderByTheme"				Type="Int16"					Accessor="Internal" />
		<Property	Name="Question"					Type="Question"					Accessor="Internal" />
		<Property	Name="SqlWhereClauseStandard"	Type="String"					Accessor="Internal"						Default="not exists (select SvyTLSvyTId from dba.SurveyTemplateLine where SvyTLSvyTId = '${SurveyTemplate.Id}' and SvyTLQstId = QstId) AND QstRecStatus = 2" />
		<Property	Name="SurveyTemplateLine"		Type="SurveyTemplateLine"		Accessor="Internal" />
		<Property	Name="SurveyTemplateLines"		Type="List[SurveyTemplateLine]"	Accessor="Internal" />
		<Property	Name="SurveyTemplateLineTheme"	Type="SurveyTemplateLine"		Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="Name" Condition="${SurveyTemplate.Context} == SurveyTemplateContext.VendorRating">
			<Choose Name="SqlWhereClause">
				<When Name="SqlWhereClause not empty" Condition="${SqlWhereClause} != Empty">
					<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="${SqlWhereClause} AND QstContext = 1" />
				</When>

				<Otherwise Name="SqlWhereClause empty">
					<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="QstContext = 1" />
				</Otherwise>
			</Choose>
		</When>

		<When Name="Name" Condition="${SurveyTemplate.Context} == SurveyTemplateContext.ContractAssessment">
			<Choose Name="SqlWhereClause">
				<When Name="SqlWhereClause not empty" Condition="${SqlWhereClause} != Empty">
					<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="${SqlWhereClause} AND QstContext = 2" />
				</When>

				<Otherwise Name="SqlWhereClause empty">
					<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="QstContext = 2" />
				</Otherwise>
			</Choose>
		</When>

		<Choose Name="SqlWhereClause">
			<When Name="SqlWhereClause not empty" Condition="${SqlWhereClause} != Empty">
				<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="${SqlWhereClause} AND ${SqlWhereClauseStandard}" />
			</When>

			<Otherwise Name="SqlWhereClause empty">
				<Assign Name="SqlWhereClause" Property="${SqlWhereClause}" Value="${SqlWhereClauseStandard}" />
			</Otherwise>
		</Choose>

		<SystemDialog Name="DialogSelectTheme" DialogName="SelectDomainObject">
			<Parameter	Name="EntityName"					Direction="In"		Value="Question" />
			<Parameter	Name="SelectionListConfiguration"	Direction="In"		Value="Default" />
			<Parameter	Name="SqlWhereClause"				Direction="In"		Value="${SqlWhereClause}" />
			<Parameter	Name="DomainObject"					Direction="Out"									OutputProperty="${Question}" />
		</SystemDialog>

		<When Name="Question chosen" Condition="${Question} != Empty">
			<Transaction>
				<Assign Name="Set OrderByQuestion" Property="${OrderByQuestion}" Value="10" />

				<GetList Name="Get SurveyTemplateLine" Type="SurveyTemplateLine" OutputProperty="${SurveyTemplateLines}" OrderBy="OrderByQuestion" OrderDirection="Descending" Top="1">
					<Filters>
						<PropertyFilter	PropertyName="Id.SurveyTemplate"	Operator="="		PropertyValue="${SurveyTemplate}" />
						<PropertyFilter	PropertyName="Theme"				Operator="="		PropertyValue="${Question.Theme}" />
					</Filters>
				</GetList>

				<When Name="SurveyTemplateLine found" Condition="${SurveyTemplateLines.Count} &gt; 0">
					<Assign Name="Set OrderByQuestion" Property="${OrderByQuestion}" Value="${SurveyTemplateLines[0].OrderByQuestion}" />

					<Add Name="OrderByQuestion + 10" ValueLeft="${OrderByQuestion}" ValueRight="10" OutputProperty="${OrderByQuestion}" />
				</When>

				<GetItem Name="Get SurveyTemplateLine with context Theme" Type="SurveyTemplateLine" OutputProperty="${SurveyTemplateLineTheme}">
					<Filters>
						<PropertyFilter	PropertyName="Id.SurveyTemplate"	Operator="="		PropertyValue="${SurveyTemplate}" />
						<PropertyFilter	PropertyName="Theme"				Operator="="		PropertyValue="${Question.Theme}" />
						<PropertyFilter	PropertyName="Context"				Operator="="		PropertyValue="SurveyTemplateLineContext.Theme" />
						<PropertyFilter	PropertyName="Status"				Operator="&gt;="	PropertyValue="SurveyTemplateLineStatus.None" />
					</Filters>
				</GetItem>

				<Choose Name="Check SurveyTemplateLineTheme">
					<When Name="SurveyTemplateLine not Empty" Condition="${SurveyTemplateLineTheme} == Empty">
						<GetMax Name="Get max value of OrderByTheme" Type="SurveyTemplateLine" OutputProperty="${OrderByTheme}" PropertyName="OrderByTheme">
							<Filters>
								<PropertyFilter	PropertyName="Id.SurveyTemplate"	Operator="="		PropertyValue="${SurveyTemplate}" />
								<PropertyFilter	PropertyName="Context"				Operator="="		PropertyValue="SurveyTemplateLineContext.Theme" />
								<PropertyFilter	PropertyName="Status"				Operator="&gt;="	PropertyValue="SurveyTemplateLineStatus.None" />
							</Filters>
						</GetMax>

						<Choose Name="SurveyTemplate has">
							<When Name="no SurveyTemplateLines Theme" Condition="${OrderByTheme} == Empty">
								<Assign Name="Set OrderByTheme" Property="${OrderByTheme}" Value="10" />
							</When>

							<Otherwise Name="one or more SurveyTemplateLines Theme">
								<Add Name="OrderByTheme += 10" ValueLeft="${OrderByTheme}" ValueRight="10" OutputProperty="${OrderByTheme}" />
							</Otherwise>
						</Choose>

						<Insert Name="Insert SurveyTemplateLine Theme" ObjectType="SurveyTemplateLine" OutputProperty="${SurveyTemplateLine}">
							<Parameter	Name="Id.SurveyTemplate"	Direction="In"		Value="${SurveyTemplate}" />
							<Parameter	Name="Context"				Direction="In"		Value="SurveyTemplateLineContext.Theme" />
							<Parameter	Name="OrderByTheme"			Direction="In"		Value="${OrderByTheme}" />
							<Parameter	Name="Theme"				Direction="In"		Value="${Question.Theme}" />
							<Parameter	Name="Weight"				Direction="In"		Value="1" />
						</Insert>
					</When>

					<Otherwise Name="Name">
						<Assign Name="Set OrderByTheme" Property="${OrderByTheme}" Value="${SurveyTemplateLines[0].OrderByTheme}" />
					</Otherwise>
				</Choose>

				<Insert Name="Insert SurveyTemplateLine Question" ObjectType="SurveyTemplateLine" OutputProperty="${SurveyTemplateLine}">
					<Parameter	Name="Id.SurveyTemplate"	Direction="In"		Value="${SurveyTemplate}" />
					<Parameter	Name="Context"				Direction="In"		Value="SurveyTemplateLineContext.Question" />
					<Parameter	Name="OrderByQuestion"		Direction="In"		Value="${OrderByQuestion}" />
					<Parameter	Name="OrderByTheme"			Direction="In"		Value="${OrderByTheme}" />
					<Parameter	Name="Question"				Direction="In"		Value="${Question}" />
					<Parameter	Name="Theme"				Direction="In"		Value="${Question.Theme}" />
					<Parameter	Name="Weight"				Direction="In"		Value="1" />
				</Insert>

				<When Name="Question.Open == true" Condition="${Question.Open} == true">
					<Assign Name="Set SurveyTemplateLine.Weight to 0" Property="${SurveyTemplateLine.Weight}" Value="0" />
				</When>
			</Transaction>
		</When>

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