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

ActionField1831

Beschrijving: Close stock count(lines). Custom: Nee

Propertiesbewerken

Property Type Accessor
StockCount StockCount Root

XMLbewerken

<Workflow Name="ActionField1831" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Close stock count(lines).</Description>
	<Properties>
		<Property	Name="StockCount"							Type="StockCount"				Accessor="Root"		Direction="In" />

		<Property	Name="CountStockCountLines"					Type="Int64"					Accessor="Internal" />
		<Property	Name="SclLineIdWidth"						Type="Int32"					Accessor="Internal" />
		<Property	Name="StockCountLines"						Type="List[StockCountLine]"		Accessor="Internal" />
		<Property	Name="TotalWarehouseServeOutsQueryResult"	Type="QueryResult"				Accessor="Internal" />
		<Property	Name="WarehouseServeOutIds"					Type="List[UltimoString]"		Accessor="Internal" />
		<Property	Name="WarehouseServeOuts"					Type="List[WarehouseServeOut]"	Accessor="Internal" />
		<Property	Name="WhsolLineIdWidth"						Type="Int32"					Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<GetList Name="Get StockCountLines" Type="StockCountLine" OutputProperty="${StockCountLines}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="Id.StockCount"	Operator="="		PropertyValue="${StockCount}" />
					<PropertyFilter	PropertyName="Status"			Operator="="		PropertyValue="StockCountLineStatus.Finished" />
				</Filters>
			</GetList>

			<Validation Name="StockCountLines not Finished" Condition="${StockCountLines.Count} != 0" MessageCode="3821">
				<Parameter	Name="StockCount"	Direction="In"		Value="${StockCount}" />
			</Validation>

			<Query Name="Query the StockCountLine" Type="StockCountLine" OutputProperty="${TotalWarehouseServeOutsQueryResult}">
				<Joins>
					<Join	Name="WarehouseLocation"	Alias="whl"	Type="InnerJoin" />
					<Join	Name="whl.Id.Warehouse"		Alias="whs"	Type="InnerJoin" />
				</Joins>
				<Filters>
					<PropertyFilter	PropertyName="Id.StockCount"	Operator="="		PropertyValue="${StockCount}" />
					<PropertyFilter	PropertyName="Status"			Operator="="		PropertyValue="StockCountLineStatus.Finished" />
				</Filters>
				<Properties>
					<Property Name="whl.Id.Warehouse" Alias="warehouse" Type="GroupProperty" />
					<Property Name="whs.Site" Alias="site" Type="GroupProperty" />
				</Properties>
			</Query>

			<Command Name="AutoKey_GetAutoKeyValue" CommandName="AutoKey_GetAutoKeyValue">
				<Parameter	Name="ColumnName"	Direction="In"		Value="WHSOID" />
				<Parameter	Name="Number"		Direction="In"		Value="${TotalWarehouseServeOutsQueryResult.Count}" />
				<Parameter	Name="TableName"	Direction="In"		Value="WhsServeOut" />
				<Parameter	Name="AutoKeys"		Direction="Out"															OutputProperty="${WarehouseServeOutIds}" />
			</Command>

			<Command Name="GetFieldWidth" CommandName="GetFieldWidth">
				<Parameter	Name="FieldName"	Direction="In"		Value="SclLineId" />
				<Parameter	Name="FieldWidth"	Direction="Out"							OutputProperty="${SclLineIdWidth}" />
			</Command>

			<Command Name="GetFieldWidth" CommandName="GetFieldWidth">
				<Parameter	Name="FieldName"	Direction="In"		Value="WhsolLineId" />
				<Parameter	Name="FieldWidth"	Direction="Out"							OutputProperty="${WhsolLineIdWidth}" />
			</Command>

			<When Name="Name" Condition="${SclLineIdWidth} &lt; ${WhsolLineIdWidth}">
				<Assign Name="Set Setting StockCount.UseWarehouseServeOutLineId" Property="#{Settings.StockCount.UseWarehouseServeOutLineId}" Value="False" />
			</When>
		</Transaction>

		<Transaction>
			<Assign Name="Set Setting StockCount.WarehouseServeOutId" Property="#{Settings.StockCount.WarehouseServeOutId}" Value="Empty" />

			<ForEach Name="For each StockCountLine" In="${StockCountLines}" As="StockCountLine" Condition="${StockCountLine.CountAgain} == False">
				<When Name="Name" Condition="#{Settings.StockCount.WarehouseServeOutId} == Empty &amp;&amp; ${WarehouseServeOutIds} != Empty">
					<Assign Name="Set Setting StockCount.WarehouseServeOutId" Property="#{Settings.StockCount.WarehouseServeOutId}" Value="${WarehouseServeOutIds[0]}" />

					<RemoveFromList Name="remove from WarehouseServeOutIds" List="${WarehouseServeOutIds}" Item="${WarehouseServeOutIds[0]}" />
				</When>

				<ChangeStatus Name="set StockCountLine to Closed" DomainObject="${StockCountLine}" NewStatus="StockCountLineStatus.Closed" />
			</ForEach>

			<GetList Name="Get WarehouseServeOut" Type="WarehouseServeOut" OutputProperty="${WarehouseServeOuts}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="StockCount"	Operator="="		PropertyValue="${StockCount}" />
					<PropertyFilter	PropertyName="Type"			Operator="="		PropertyValue="WarehouseServeOutType.StockCount" />
					<PropertyFilter	PropertyName="Status"		Operator="="		PropertyValue="WarehouseServeOutStatus.Created" />
				</Filters>
			</GetList>

			<ForEach Name="For each WarehouseServeOut" In="${WarehouseServeOuts}" As="WarehouseServeOut">
				<ChangeStatus Name="set WarehouseServeOut to approved" DomainObject="${WarehouseServeOut}" NewStatus="WarehouseServeOutStatus.Approved" />
			</ForEach>

			<GetCount Name="Get Lines" Type="StockCountLine" OutputProperty="${CountStockCountLines}">
				<Filters>
					<PropertyFilter	PropertyName="Id.StockCount"	Operator="="		PropertyValue="${StockCount}" />
					<CombinedFilter FilterOperator="Or">
						<InFilter PropertyName="Status" Values="StockCountLineStatus.Active, StockCountLineStatus.Created" />
						<CombinedFilter FilterOperator="And">
							<PropertyFilter	PropertyName="Status"		Operator="="		PropertyValue="StockCountLineStatus.Finished" />
							<PropertyFilter	PropertyName="CountAgain"	Operator="="		PropertyValue="False" />
						</CombinedFilter>
					</CombinedFilter>
				</Filters>
			</GetCount>

			<When Name="No more StockCountLines that are not Closed" Condition="${CountStockCountLines} == 0">
				<ChangeStatus Name="StockCount" DomainObject="${StockCount}" NewStatus="StockCountStatus.Closed" />
			</When>
		</Transaction>

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