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

ActionField1830

Beschrijving: Create stock count lines based on site, warehouse and abc code. Custom: Nee

Propertiesbewerken

Property Type Accessor
StockCount StockCount Root

XMLbewerken

<Workflow Name="ActionField1830" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Create stock count lines based on site, warehouse and abc code.</Description>
	<Properties>
		<Property	Name="StockCount"					Type="StockCount"						Accessor="Root"		Direction="In" />

		<Property	Name="ArticleWarehouseLocations"	Type="List[ArticleWarehouseLocation]"	Accessor="Internal" />
		<Property	Name="StockCountLine"				Type="StockCountLine"					Accessor="Internal" />
		<Property	Name="StockCountLines"				Type="List[StockCountLine]"				Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

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

		<When Name="StockCount has lines?" Condition="${StockCountLines.Count} &gt; 0">
			<ContinuationQuestion Name="Delete StockCountLines" MessageCode="3820">
				<Parameter	Name="StockCount"	Direction="In"		Value="${StockCount}" />
			</ContinuationQuestion>
		</When>

		<Transaction>
			<ForEach Name="StockCountLine" In="${StockCountLines}" As="StockCountLineToRemove">
				<DeleteObject Name="Remove object" DomainObject="${StockCountLineToRemove}" />
			</ForEach>

			<GetList Name="Get ArticleWarehouseLocations" Type="ArticleWarehouseLocation" OutputProperty="${ArticleWarehouseLocations}" OrderBy="DefaultIssueLocation" OrderDirection="Descending">
				<Joins>
					<Join	Name="Id.WarehouseLocation"				Alias="warehouseLocation"	Type="InnerJoin" />
					<Join	Name="warehouseLocation.Id.Warehouse"	Alias="warehouse"			Type="InnerJoin" />
					<Join	Name="Id.Article"						Alias="article"				Type="InnerJoin" />
				</Joins>
				<Filters>
					<WhenFilter Condition="${StockCount.Site} != Empty">
						<PropertyFilter	PropertyName="warehouse.Site"	Operator="="		PropertyValue="${StockCount.Site}" />
					</WhenFilter>
					<WhenFilter Condition="${StockCount.Warehouse} != Empty">
						<PropertyFilter	PropertyName="warehouse.Id"	Operator="="		PropertyValue="${StockCount.Warehouse}" />
					</WhenFilter>
					<WhenFilter Condition="${StockCount.AbcCodeId} != Empty">
						<PropertyFilter	PropertyName="AbcCodeId"	Operator="="		PropertyValue="${StockCount.AbcCodeId}" />
					</WhenFilter>
					<PropertyFilter	PropertyName="article.RegisterStock"	Operator="="		PropertyValue="True" />
					<PropertyFilter	PropertyName="article.Context"			Operator="="		PropertyValue="ArticleContext.Standard" />
					<CombinedFilter FilterOperator="Or">
						<PropertyEmptyFilter PropertyName="NextCountDate" />
						<PropertyFilter	PropertyName="NextCountDate"	Operator="&lt;="	PropertyValue="#{Environment.CurrentDateTime.Date}" />
					</CombinedFilter>
					<PropertyEmptyFilter PropertyName="article.InventoryMethod" />
				</Filters>
			</GetList>

			<ForEach Name="ArticleWarehouseLocation" In="${ArticleWarehouseLocations}" As="ArticleWarehouseLocation">
				<Insert Name="Create StockCountLine" ObjectType="StockCountLine" OutputProperty="${StockCountLine}">
					<Parameter	Name="Id.StockCount"		Direction="In"		Value="${StockCount}" />
					<Parameter	Name="Status"				Direction="In"		Value="StockCountLineStatus.Created" />
					<Parameter	Name="Article"				Direction="In"		Value="${ArticleWarehouseLocation.Id.Article}" />
					<Parameter	Name="WarehouseLocation"	Direction="In"		Value="${ArticleWarehouseLocation.Id.WarehouseLocation}" />
				</Insert>
			</ForEach>
		</Transaction>

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