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

ActionField1081

Beschrijving: Change a SoftwareInstallation. Custom: Nee

Propertiesbewerken

Property Type Accessor
SoftwareInstallation SoftwareInstallation Root
SqlWhereClauseEmp UltimoString Optional

XMLbewerken

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

		<Property	Name="SqlWhereClauseEmp"			Type="UltimoString"			Accessor="Optional"	Direction="In"						Comment="Only select Employees with this sqlwhereclause" />

		<Property	Name="CurrentlyCoveredByLicense"	Type="Boolean"				Accessor="Internal"						Default="False" />
		<Property	Name="InstallationsCount"			Type="Int64"				Accessor="Internal" />
		<Property	Name="SelectedInstallationDate"		Type="Date?"				Accessor="Internal" />
		<Property	Name="SelectedInstallationEmployee"	Type="Employee"				Accessor="Internal" />
		<Property	Name="SelectedRemovalDate"			Type="Date?"				Accessor="Internal" />
		<Property	Name="SelectedRemovalEmployee"		Type="Employee"				Accessor="Internal" />
		<Property	Name="SelectedVersion"				Type="UltimoString"			Accessor="Internal" />
		<Property	Name="TotalSeatsCount"				Type="Int64"				Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<GetSum Name="Get totals seats for active software licenses at current installation date" Type="SoftwareLicense" OutputProperty="${TotalSeatsCount}" PropertyName="NumberOfSeats">
				<Filters>
					<PropertyFilter	PropertyName="Software"		Operator="="		PropertyValue="${SoftwareInstallation.Software}" />
					<PropertyFilter	PropertyName="StartDate"	Operator="&lt;="	PropertyValue="${SoftwareInstallation.InstallationDate}" />
					<CombinedFilter FilterOperator="Or">
						<PropertyFilter	PropertyName="ExpirationDate"	Operator="="		PropertyValue="Empty" />
						<PropertyFilter	PropertyName="ExpirationDate"	Operator="&gt;="	PropertyValue="${SoftwareInstallation.InstallationDate}" />
					</CombinedFilter>
					<PropertyFilter	PropertyName="Status"		Operator="&gt;="	PropertyValue="SoftwareLicenseStatus.None" />
				</Filters>
			</GetSum>

			<GetCount Name="Get number of installations for software at current installation date" Type="SoftwareInstallation" OutputProperty="${InstallationsCount}">
				<Filters>
					<PropertyFilter	PropertyName="Software"			Operator="="		PropertyValue="${SoftwareInstallation.Software}" />
					<PropertyFilter	PropertyName="InstallationDate"	Operator="&lt;="	PropertyValue="${SoftwareInstallation.InstallationDate}" />
					<CombinedFilter FilterOperator="Or">
						<PropertyFilter	PropertyName="RemovalDate"	Operator="="		PropertyValue="Empty" />
						<PropertyFilter	PropertyName="RemovalDate"	Operator="&gt;"		PropertyValue="${SoftwareInstallation.InstallationDate}" />
					</CombinedFilter>
					<PropertyFilter	PropertyName="Status"			Operator="&gt;="	PropertyValue="SoftwareLicenseStatus.None" />
				</Filters>
			</GetCount>
		</Transaction>

		<When Name="When installation is currently covered by a license" Condition="(${TotalSeatsCount} - ${InstallationsCount}) &gt;= 0">
			<Assign Name="Set flag to True" Property="${CurrentlyCoveredByLicense}" Value="True" />
		</When>

		<Dialog Name="ChangeSoftwareInstallation" TitleCode="CHANGESOFTWAREINSTALLATION">
			<Container Border="True">
				<Date Name="SelectedInstallationDate" Width="100" Visible="=${SoftwareInstallation.RemovalDate} == Empty &amp;&amp; ${SoftwareInstallation.RemovalEmployee} == Empty" Value="${SoftwareInstallation.InstallationDate}" OutputProperty="${SelectedInstallationDate}" Required="True" LabelCode="DATEINSTALL" />

				<Date Name="SelectedInstallationDateWithEndInput" Width="100" Visible="=${SoftwareInstallation.RemovalDate} != Empty || ${SoftwareInstallation.RemovalEmployee} != Empty" Value="${SoftwareInstallation.InstallationDate}" OutputProperty="${SelectedInstallationDate}" Required="True" LabelCode="DATEINSTALL" EndTimeInput="SelectedRemovalDate" />

				<SelectionList Name="SelectedInstallationEmployee" Value="${SoftwareInstallation.InstallationEmployee}" OutputProperty="${SelectedInstallationEmployee}" ColumnName="EmpId" LabelCode="EMPINSTALL" SqlWhereClause="${SqlWhereClauseEmp}" />

				<Text Name="SelectedVersion" Value="${SoftwareInstallation.Version}" OutputProperty="${SelectedVersion}" ColumnName="SoiVersion" LabelCode="VERSION" />

				<Date Name="SelectedRemovalDate" Width="100" Visible="=${SoftwareInstallation.RemovalDate} != Empty || ${SoftwareInstallation.RemovalEmployee} != Empty" Value="${SoftwareInstallation.RemovalDate}" OutputProperty="${SelectedRemovalDate}" Required="=${SoftwareInstallation.RemovalEmployee} != Empty" LabelCode="DATEREMOVAL" />

				<SelectionList Name="SelectedRemovalEmployee" Visible="=${SoftwareInstallation.RemovalDate} != Empty || ${SoftwareInstallation.RemovalEmployee} != Empty" Value="${SoftwareInstallation.RemovalEmployee}" OutputProperty="${SelectedRemovalEmployee}" ColumnName="EmpId" LabelCode="EMPREMOVAL" SqlWhereClause="${SqlWhereClauseEmp}" />
			</Container>
		</Dialog>

		<When Name="When a license is required, check availability and usage" Condition="${SoftwareInstallation.Software.LicenseRequired} == True">
			<Transaction>
				<GetSum Name="Get totals seats for active software licenses at selected installation date" Type="SoftwareLicense" OutputProperty="${TotalSeatsCount}" PropertyName="NumberOfSeats">
					<Filters>
						<PropertyFilter	PropertyName="Software"		Operator="="		PropertyValue="${SoftwareInstallation.Software}" />
						<PropertyFilter	PropertyName="StartDate"	Operator="&lt;="	PropertyValue="${SelectedInstallationDate}" />
						<CombinedFilter FilterOperator="Or">
							<PropertyFilter	PropertyName="ExpirationDate"	Operator="="		PropertyValue="Empty" />
							<PropertyFilter	PropertyName="ExpirationDate"	Operator="&gt;="	PropertyValue="${SelectedInstallationDate}" />
						</CombinedFilter>
						<PropertyFilter	PropertyName="Status"		Operator="&gt;="	PropertyValue="SoftwareLicenseStatus.None" />
					</Filters>
				</GetSum>

				<GetCount Name="Get number of installations for software at selected installation date" Type="SoftwareInstallation" OutputProperty="${InstallationsCount}">
					<Filters>
						<PropertyFilter	PropertyName="Software"			Operator="="		PropertyValue="${SoftwareInstallation.Software}" />
						<PropertyFilter	PropertyName="InstallationDate"	Operator="&lt;="	PropertyValue="${SelectedInstallationDate}" />
						<CombinedFilter FilterOperator="Or">
							<PropertyFilter	PropertyName="RemovalDate"	Operator="="		PropertyValue="Empty" />
							<PropertyFilter	PropertyName="RemovalDate"	Operator="&gt;"		PropertyValue="${SelectedInstallationDate}" />
						</CombinedFilter>
						<PropertyFilter	PropertyName="Status"			Operator="&gt;="	PropertyValue="SoftwareLicenseStatus.None" />
					</Filters>
				</GetCount>
			</Transaction>

			<When Name="When currently covered by license and selected installation date outside the original period between installation and removal date" Condition="${CurrentlyCoveredByLicense} == True &amp;&amp; ${SelectedInstallationDate} &lt; ${SoftwareInstallation.InstallationDate} &amp;&amp; (${SoftwareInstallation.RemovalDate} == Empty || ${SelectedInstallationDate} &gt; ${SoftwareInstallation.RemovalDate})">
				<Assign Name="Count the installation being changed as well" Property="${InstallationsCount}" Value="=${InstallationsCount} + 1" />
			</When>

			<When Name="When no more seats available" Condition="(${TotalSeatsCount} - ${InstallationsCount}) &lt; 0">
				<ContinuationQuestion Name="NotEnoughAvailableSeatsContinue?" MessageCode="2121" Default="No">
					<Parameter	Name="InstallationDate"		Direction="In"		Value="${SelectedInstallationDate}" />
					<Parameter	Name="InstallationsCount"	Direction="In"		Value="${InstallationsCount}" />
					<Parameter	Name="Software"				Direction="In"		Value="${SoftwareInstallation.Software}" />
					<Parameter	Name="TotalSeatsCount"		Direction="In"		Value="${TotalSeatsCount}" />
				</ContinuationQuestion>
			</When>
		</When>

		<Transaction>
			<Assign Name="Set SoftwareInstallation.InstallationDate" Property="${SoftwareInstallation.InstallationDate}" Value="${SelectedInstallationDate}" />
			<Assign Name="Set SoftwareInstallation.InstallationEmployee" Property="${SoftwareInstallation.InstallationEmployee}" Value="${SelectedInstallationEmployee}" />
			<Assign Name="Set SoftwareInstallation.RemovalDate" Property="${SoftwareInstallation.RemovalDate}" Value="${SelectedRemovalDate}" />
			<Assign Name="Set SoftwareInstallation.RemovalEmployee" Property="${SoftwareInstallation.RemovalEmployee}" Value="${SelectedRemovalEmployee}" />
			<Assign Name="Set SoftwareInstallation.Version" Property="${SoftwareInstallation.Version}" Value="${SelectedVersion}" />
		</Transaction>

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