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

ActionField907

Beschrijving: Find available Equipment, and create EquipmentMoveLine when not present on EquipmentMove. Custom: Nee

Propertiesbewerken

Property Type Accessor
EquipmentMove EquipmentMove Root
EquipmentConfiguration String Optional
EquipmentContext String Optional
EquipmentSqlFilter String Optional
EquipmentTypeConfiguration String Optional
EquipmentTypeContext String Optional
SelectEquipmentType Boolean Optional

XMLbewerken

<Workflow Name="ActionField907" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Find available Equipment, and create EquipmentMoveLine when not present on EquipmentMove.</Description>
	<Properties>
		<Property	Name="EquipmentMove"				Type="EquipmentMove"		Accessor="Root"		Direction="In" />

		<Property	Name="EquipmentConfiguration"		Type="String"				Accessor="Optional"	Direction="In"		Default="Default"	Comment="Show Equipment selectionlist with this configuration" />
		<Property	Name="EquipmentContext"				Type="String"				Accessor="Optional"	Direction="In"		Default="1"			Comment="Search only Equipment with this context" />
		<Property	Name="EquipmentSqlFilter"			Type="String"				Accessor="Optional"	Direction="In"		Default="Empty"		Comment="Add extra where clause for Equipment (default is no extra whereclause)." />
		<Property	Name="EquipmentTypeConfiguration"	Type="String"				Accessor="Optional"	Direction="In"		Default="Default"	Comment="Show EquipmentType selectionlist with this configuration" />
		<Property	Name="EquipmentTypeContext"			Type="String"				Accessor="Optional"	Direction="In"		Default="1"			Comment="Search only EquipmentTypes with this context" />
		<Property	Name="SelectEquipmentType"			Type="Boolean"				Accessor="Optional"	Direction="In"		Default="True"		Comment="Select an EquipmentType first" />

		<Property	Name="Equipment"					Type="Equipment"			Accessor="Internal" />
		<Property	Name="EquipmentMoveLine"			Type="EquipmentMoveLine"	Accessor="Internal" />
		<Property	Name="Equipments"					Type="List[UltimoString]"	Accessor="Internal" />
		<Property	Name="EquipmentType"				Type="EquipmentType"		Accessor="Internal" />
		<Property	Name="WhereClause"					Type="UltimoString"			Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="EquipmentSqlFilter not empty" Condition="${EquipmentSqlFilter} != Empty">
			<Assign Name="Add AND to EquipmentSqlFilter" Property="${EquipmentSqlFilter}" Value="=#concat(${EquipmentSqlFilter}, ' AND ')" />
		</When>

		<Assign Name="Add to EquipmentSqlFilter" Property="${EquipmentSqlFilter}" Value="=#concat(${EquipmentSqlFilter}, '(EqmId NOT IN (SELECT EqmId FROM dba.Equipment e INNER JOIN dba.Job j on j.JobEqmId = e.EqmId inner join dba.WorkOrderType wot on wot.WotId = j.JobWotId where j.JobRecStatus in (2, 4) and wot.WotEqmNotAvailable = 1))')" />

		<When Name="Select EquipmentType" Condition="${SelectEquipmentType} == True">
			<Dialog Name="SelectDomainObject EquipmentType" TitleCode="SELECT_EQUIPMENTTYPE">
				<Container>
					<SelectionList Name="EqmtId" OutputProperty="${EquipmentType}" ColumnName="EqmtId" ViewfieldConfiguration="${EquipmentTypeConfiguration}" SqlWhereClause="EqmtContext = ${EquipmentTypeContext}" />
				</Container>
			</Dialog>
		</When>

		<Transaction>
			<Command Name="Equipment_GetAvailableEquipments" CommandName="Equipment_GetAvailableEquipments">
				<Parameter	Name="Context"				Direction="In"		Value="${EquipmentContext}" />
				<Parameter	Name="EndTime"				Direction="In"		Value="${EquipmentMove.ReservedTillDate}" />
				<Parameter	Name="EquipmentSqlFilter"	Direction="In"		Value="${EquipmentSqlFilter}" />
				<Parameter	Name="EquipmentType"		Direction="In"		Value="${EquipmentType}" />
				<Parameter	Name="LendOut"				Direction="In"		Value="True" />
				<Parameter	Name="StartTime"			Direction="In"		Value="${EquipmentMove.ReservedFromDate}" />
				<Parameter	Name="StatusesToExclude"	Direction="In"		Value="EquipmentStatus.ToDelete, EquipmentStatus.Scrapped" />
				<Parameter	Name="Equipments"			Direction="Out"																	OutputProperty="${Equipments}" />
				<Parameter	Name="WhereClause"			Direction="Out"																	OutputProperty="${WhereClause}" />
			</Command>

			<Validation Name="EquipmentsFound" Condition="${Equipments} != Empty &amp;&amp; ${Equipments.Count} &gt; 0" MessageCode="1659">
				<Parameter	Name="Context"	Direction="In"		Value="${EquipmentContext}" />
			</Validation>
		</Transaction>

		<SystemDialog Name="SelectDomainObject Equipment" DialogName="SelectDomainObject">
			<Parameter	Name="EntityName"					Direction="In"		Value="Equipment" />
			<Parameter	Name="SelectionListConfiguration"	Direction="In"		Value="${EquipmentConfiguration}" />
			<Parameter	Name="SqlWhereClause"				Direction="In"		Value="${WhereClause}" />
			<Parameter	Name="DomainObject"					Direction="Out"											OutputProperty="${Equipment}" />
		</SystemDialog>

		<Transaction>
			<GetItem Name="EquipmentMoveLine" Type="EquipmentMoveLine" OutputProperty="${EquipmentMoveLine}">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Id.EquipmentMove"	Operator="="		PropertyValue="${EquipmentMove}" />
						<PropertyFilter	PropertyName="Id.Equipment"		Operator="="		PropertyValue="${Equipment}" />
					</CombinedFilter>
				</Filters>
			</GetItem>

			<When Name="EquipmentMoveLine not Exists" Condition="${EquipmentMoveLine} == Empty">
				<Insert Name="Create EquipmentMoveLine" ObjectType="EquipmentMoveLine" OutputProperty="${EquipmentMoveLine}">
					<Parameter	Name="Id.Equipment"		Direction="In"		Value="${Equipment}" />
					<Parameter	Name="Id.EquipmentMove"	Direction="In"		Value="${EquipmentMove}" />
					<Parameter	Name="Context"			Direction="In"		Value="${EquipmentMove.Context}" />
					<Parameter	Name="Status"			Direction="In"		Value="EquipmentMoveLineStatus.Created" />
				</Insert>
			</When>
		</Transaction>

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