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

ActionField1095

Beschrijving: Check the Warehouse(Locations) from the WarehouseServeOutLines of this WarehouseServeOut. Custom: Nee

Propertiesbewerken

Property Type Accessor
WarehouseServeOut WarehouseServeOut Root

XMLbewerken

<Workflow Name="ActionField1095" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Check the Warehouse(Locations) from the WarehouseServeOutLines of this WarehouseServeOut.</Description>
	<Properties>
		<Property	Name="WarehouseServeOut"			Type="WarehouseServeOut"				Accessor="Root"		Direction="In" />

		<Property	Name="AnswerDeleteWarehouseLines"	Type="RequestResult"					Accessor="Internal" />
		<Property	Name="ArticleIds"					Type="String"							Accessor="Internal"						Default="Empty" />
		<Property	Name="ArticleToWarehouseLocations"	Type="List[ArticleWarehouseLocation]"	Accessor="Internal"						Default="Empty" />
		<Property	Name="NoWarehouseLocationFound"		Type="Boolean"							Accessor="Internal"						Default="False" />
		<Property	Name="ObjectBatchesToUpdate"		Type="List[ObjectBatch]"				Accessor="Internal" />
		<Property	Name="ToArticleWarehouseLocation"	Type="ArticleWarehouseLocation"			Accessor="Internal" />
		<Property	Name="WarehouseServeOutlines"		Type="List[WarehouseServeOutline]"		Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<GetList Name="WarehouseServeOutlines" Type="WarehouseServeOutline" OutputProperty="${WarehouseServeOutlines}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="Id.WarehouseServeOut"	Operator="="		PropertyValue="${WarehouseServeOut}" />
					<NotFilter>
						<CombinedFilter FilterOperator="And">
							<PropertyEmptyFilter PropertyName="ToWarehouseLocation" />
							<PropertyEmptyFilter PropertyName="Article" />
						</CombinedFilter>
					</NotFilter>
				</Filters>
			</GetList>

			<ForEach Name="ForEach WarehouseServeOutline" In="${WarehouseServeOutlines}" As="WarehouseServeOutline">
				<WorkflowCall Name="WarehouseServeOut_CheckArticleWarehouseLocations" WorkflowName="WarehouseServeOut_CheckArticleWarehouseLocations">
					<Parameter	Name="WarehouseServeOut"		Direction="In"		Value="${WarehouseServeOut}" />
					<Parameter	Name="WarehouseServeOutline"	Direction="In"		Value="${WarehouseServeOutline}" />
					<Parameter	Name="ArticleIds"				Direction="InOut"	Value="${ArticleIds}"				OutputProperty="${ArticleIds}" />
					<Parameter	Name="NoWarehouseLocationFound"	Direction="InOut"	Value="${NoWarehouseLocationFound}"	OutputProperty="${NoWarehouseLocationFound}" />
				</WorkflowCall>
			</ForEach>
		</Transaction>

		<When Name="Lines without correct warehouselocation? and Check ArticleIds" Condition="${NoWarehouseLocationFound} == True &amp;&amp; ${ArticleIds} != Empty">
			<Assign Name="CRLF" Property="${ArticleIds}" Value="=#concat(${ArticleIds}, #{SpecialCharacters.NewLine})" />

			<Question Name="ArticleIsNotInWarehouseDeleteLine" Type="YesNo" MessageCode="2152" Default="No" OutputProperty="${AnswerDeleteWarehouseLines}">
				<Parameter	Name="ArticleIds"				Direction="In"		Value="${ArticleIds}" />
				<Parameter	Name="WarehouseServeOutline"	Direction="In"		Value="=#elementat(${WarehouseServeOutlines}, 0)" />
			</Question>

			<Transaction>
				<When Name="AnswerDeleteWarehouseLines = Yes" Condition="${AnswerDeleteWarehouseLines} == Yes">
					<ForEach Name="ForEach WarehouseServeOutline" In="${WarehouseServeOutlines}" As="WarehouseServeOutline">
						<GetItem Name="Get ArticleWarehouseLocation" Type="ArticleWarehouseLocation" OutputProperty="${ToArticleWarehouseLocation}">
							<Filters>
								<PropertyFilter	PropertyName="Id.Article"							Operator="="		PropertyValue="${WarehouseServeOutline.Article}" />
								<PropertyFilter	PropertyName="Id.WarehouseLocation.Id.Warehouse"	Operator="="		PropertyValue="${WarehouseServeOut.ToWarehouse}" />
								<PropertyFilter	PropertyName="Id.WarehouseLocation.Id.Code"			Operator="="		PropertyValue="${WarehouseServeOutline.ToWarehouseLocation.Id.Code?}" />
							</Filters>
						</GetItem>

						<When Name="Has No ArticleWarehouseLocation" Condition="${ToArticleWarehouseLocation} == Empty">
							<DeleteObject Name="DeleteWarehouseServeOutline" DomainObject="${WarehouseServeOutline}" />
						</When>
					</ForEach>
				</When>
			</Transaction>
		</When>

		<Transaction>
			<GetList Name="WarehouseServeOutlines" Type="WarehouseServeOutline" OutputProperty="${WarehouseServeOutlines}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="Id.WarehouseServeOut"	Operator="="		PropertyValue="${WarehouseServeOut}" />
					<NotFilter>
						<CombinedFilter FilterOperator="And">
							<PropertyEmptyFilter PropertyName="ToWarehouseLocation" />
							<PropertyEmptyFilter PropertyName="Article" />
						</CombinedFilter>
					</NotFilter>
				</Filters>
			</GetList>

			<ForEach Name="ForEach WarehouseServeOutline" In="${WarehouseServeOutlines}" As="WarehouseServeOutline">
				<When Name="Check if inventory method" Condition="${WarehouseServeOutline.Article.InventoryMethod?} != Empty">
					<GetList Name="Get ObjectBatches to Update" Type="ObjectBatch" OutputProperty="${ObjectBatchesToUpdate}" OrderBy="Id" OrderDirection="Ascending">
						<Filters>
							<PropertyFilter	PropertyName="WarehouseServeOutline"	Operator="="		PropertyValue="${WarehouseServeOutline}" />
						</Filters>
					</GetList>

					<ForEach Name="Loop ObjectBatchesToDelete" In="${ObjectBatchesToUpdate}" As="ObjectBatchToUpdate">
						<Assign Name="Set automatically ObjectBatch.ToWarehouseLocation" Property="${ObjectBatchToUpdate.ToWarehouseLocation}" Value="Empty" />

						<GetList Name="Get ArticleWarehouseLocations for Article/ToWarehouse" Type="ArticleWarehouseLocation" OutputProperty="${ArticleToWarehouseLocations}" OrderBy="Id" OrderDirection="Ascending">
							<Filters>
								<PropertyFilter	PropertyName="Id.Article"							Operator="="		PropertyValue="${WarehouseServeOutline.Article}" />
								<PropertyFilter	PropertyName="Id.WarehouseLocation.Id.Warehouse"	Operator="="		PropertyValue="${WarehouseServeOutline.Id.WarehouseServeOut.ToWarehouse}" />
							</Filters>
						</GetList>

						<When Name="When one ArticleWarehouseLocation is found" Condition="${ArticleToWarehouseLocations.Count} == 1">
							<Assign Name="Set automatically ObjectBatch.ToWarehouseLocation" Property="${ObjectBatchToUpdate.ToWarehouseLocation}" Value="=#getpropertyvalue(#elementat(${ArticleToWarehouseLocations}, 0), 'Id.WarehouseLocation')" />
						</When>
					</ForEach>
				</When>

				<When Name="Check if inventory method" Condition="${WarehouseServeOutline.Article.InventoryMethod?} == Empty">
					<Assign Name="set To WarehouseLocation to empty" Property="${WarehouseServeOutline.ToWarehouseLocation}" Value="Empty" />

					<GetList Name="GetArticleFromWarehouseLocations" Type="ArticleWarehouseLocation" OutputProperty="${ArticleToWarehouseLocations}" OrderBy="Id" OrderDirection="Ascending">
						<Filters>
							<PropertyFilter	PropertyName="Id.Article"							Operator="="		PropertyValue="${WarehouseServeOutline.Article}" />
							<PropertyFilter	PropertyName="Id.WarehouseLocation.Id.Warehouse"	Operator="="		PropertyValue="${WarehouseServeOutline.Id.WarehouseServeOut.ToWarehouse}" />
						</Filters>
					</GetList>

					<When Name="only one to location" Condition="${ArticleToWarehouseLocations.Count} == 1">
						<Assign Name="set To WarehouseLocation" Property="${WarehouseServeOutline.ToWarehouseLocation}" Value="=#getpropertyvalue(#elementat(${ArticleToWarehouseLocations}, 0),'Id.WarehouseLocation')" />
					</When>
				</When>
			</ForEach>
		</Transaction>

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