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

ActionField299

Beschrijving: Create a Receipt/ReceiptLines for a Purchase and open Receipt screen. Custom: Nee

Propertiesbewerken

Property Type Accessor
Purchase Purchase Root
FormName UltimoString Optional
ReceiptContext Context Optional
SelectReceivedPurchases Boolean Optional

XMLbewerken

<Workflow Name="ActionField299" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Create a Receipt/ReceiptLines for a Purchase and open Receipt screen.</Description>
	<Properties>
		<Property	Name="Purchase"							Type="Purchase"								Accessor="Root"		Direction="In" />

		<Property	Name="FormName"							Type="UltimoString"							Accessor="Optional"	Direction="In"						Comment="Open this screen with the created Receipt" />
		<Property	Name="ReceiptContext"					Type="Context"								Accessor="Optional"	Direction="In"						Comment="Create the Receipt with this context" />
		<Property	Name="SelectReceivedPurchases"			Type="Boolean"								Accessor="Optional"	Direction="In"		Default="False"	Comment="When False only select Purchases with statuses Active,PartReceived when True also select Purchases with status Received" />

		<Property	Name="CopyAllPurchLines"				Type="RequestResult"						Accessor="Internal"						Default="Yes" />
		<Property	Name="CreatedReceipt"					Type="Receipt"								Accessor="Internal" />
		<Property	Name="MustExist"						Type="Boolean"								Accessor="Internal"						Default="False" />
		<Property	Name="PurchaseLines"					Type="GroupedList[Warehouse,PurchaseLine]"	Accessor="Internal" />
		<Property	Name="PurchaseLinesStockArticleCount"	Type="Int64"								Accessor="Internal" />
		<Property	Name="Warehouse"						Type="Warehouse"							Accessor="Internal" />
		<Property	Name="WhereClause"						Type="String"								Accessor="Internal" />
		<Property	Name="WhereClauseSite"					Type="String"								Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="SelectReceivedPurchases is true" Condition="${SelectReceivedPurchases} == True">
			<Validation Name="PurchaseStatus OK?" Condition="${Purchase.Status} == PurchaseStatus.Active || ${Purchase.Status} == PurchaseStatus.PartReceived || ${Purchase.Status} == PurchaseStatus.Received" MessageCode="2716">
				<Parameter	Name="Purchase"	Direction="In"		Value="${Purchase}" />
			</Validation>
		</When>

		<When Name="SelectReceivedPurchases is False" Condition="${SelectReceivedPurchases} == False">
			<Validation Name="PurchaseStatus OK?" Condition="${Purchase.Status} == PurchaseStatus.Active || ${Purchase.Status} == PurchaseStatus.PartReceived" MessageCode="0513">
				<Parameter	Name="Purchase"	Direction="In"		Value="${Purchase}" />
			</Validation>
		</When>

		<Transaction>
			<GetGroupedList Name="Get PurchaseLines without InvoiceLine and not status Closed" Type="PurchaseLine" OutputProperty="${PurchaseLines}" GroupBy="Warehouse" OrderBy="Id.LineId" OrderDirection="Ascending">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Id.Purchase"	Operator="="		PropertyValue="${Purchase}" />
						<PropertyEmptyFilter PropertyName="InvoiceLine" />
						<NotFilter>
							<PropertyFilter	PropertyName="Status"		Operator="="		PropertyValue="PurchaseLineStatus.Closed" />
						</NotFilter>
						<NotFilter>
							<PropertyEmptyFilter PropertyName="Warehouse" />
						</NotFilter>
					</CombinedFilter>
				</Filters>
			</GetGroupedList>

			<GetCount Name="Count PurchaseLine with stockarticle" Type="PurchaseLine" OutputProperty="${PurchaseLinesStockArticleCount}">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Id.Purchase"	Operator="="		PropertyValue="${Purchase}" />
						<PropertyEmptyFilter PropertyName="InvoiceLine" />
						<NotFilter>
							<PropertyFilter	PropertyName="Status"		Operator="="		PropertyValue="PurchaseLineStatus.Closed" />
						</NotFilter>
						<PropertyFilter	PropertyName="StockArticle"	Operator="="		PropertyValue="True" />
					</CombinedFilter>
				</Filters>
			</GetCount>
		</Transaction>

		<When Name="Check count" Condition="${PurchaseLines.Count} &gt; 1">
			<Question Name="Copy All Purchase Lines" Type="YesNo" MessageCode="2306" OutputProperty="${CopyAllPurchLines}" />
		</When>

		<When Name="Check count" Condition="${PurchaseLines.Count} == 1">
			<Assign Name="Set Default for Collectinput" Property="${Warehouse}" Value="=#getpropertyvalue(#elementat(${PurchaseLines}, 0), 'Key')" />
		</When>

		<When Name="Filter on Site?" Condition="${Purchase.Site} != Empty &amp;&amp; #{UltimoSettings.StockLevelPerSite} == True">
			<Assign Name="Set WhereClauseSite" Property="${WhereClauseSite}" Value="WhsSitId = '${Purchase.Site.Id}'" />

			<Choose Name="Set WhereClause">
				<When Name="WhereClause is Empty" Condition="${WhereClause} == Empty">
					<Assign Name="Set WhereClause" Property="${WhereClause}" Value="${WhereClauseSite}" />
				</When>

				<Otherwise Name="WhereClause not Empty">
					<Assign Name="Add addition to WhereClause" Property="${WhereClause}" Value="=#concat(${WhereClause}, ' AND ', ${WhereClauseSite})" />
				</Otherwise>
			</Choose>
		</When>

		<When Name="PurchaseLinesWithStockArticle" Condition="${PurchaseLinesStockArticleCount} &gt; 0">
			<Dialog Name="Request a WareHouse" TitleCode="WAREHOUSECODE">
				<Container>
					<SelectionList Name="RequestWareHouse" Value="${Warehouse}" OutputProperty="${Warehouse}" ColumnName="WhsId" ViewfieldConfiguration="Default" Required="=(${PurchaseLinesStockArticleCount} &gt; 0)" SqlWhereClause="${WhereClause}" />
				</Container>
			</Dialog>
		</When>

		<Transaction>
			<Command Name="Create receipt" CommandName="Purchase_CreateReceipt">
				<Parameter	Name="Purchase"			Direction="In"		Value="${Purchase}" />
				<Parameter	Name="ReceiptContext"	Direction="In"		Value="${ReceiptContext}" />
				<Parameter	Name="Warehouse"		Direction="In"		Value="${Warehouse}" />
				<Parameter	Name="Receipt"			Direction="Out"									OutputProperty="${CreatedReceipt}" />
			</Command>

			<WorkflowCall Name="Create receiptlines from purchaselines" WorkflowName="Purchase_CreateReceiptLines">
				<Parameter	Name="CopyAllPurchLines"		Direction="In"		Value="${CopyAllPurchLines}" />
				<Parameter	Name="Purchase"					Direction="In"		Value="${Purchase}" />
				<Parameter	Name="Receipt"					Direction="In"		Value="${CreatedReceipt}" />
				<Parameter	Name="SelectReceivedPurchases"	Direction="In"		Value="${SelectReceivedPurchases}" />
			</WorkflowCall>

			<WorkflowCall Name="Receipt_CreateObjectBatches" WorkflowName="Receipt_CreateObjectBatches">
				<Parameter	Name="Purchase"			Direction="In"		Value="${Purchase}" />
				<Parameter	Name="Receipt"			Direction="In"		Value="${CreatedReceipt}" />
				<Parameter	Name="ShowMessage2131"	Direction="In"		Value="False" />
			</WorkflowCall>

			<WorkflowCall Name="Receipt_SetDefaultWarehouseLocations" WorkflowName="Receipt_SetDefaultWarehouseLocations">
				<Parameter	Name="Purchase"			Direction="In"		Value="${Purchase}" />
				<Parameter	Name="Receipt"			Direction="In"		Value="${CreatedReceipt}" />
				<Parameter	Name="ShowMessage2131"	Direction="In"		Value="False" />
			</WorkflowCall>

			<WorkflowCall Name="Receipt_CopyPurchaseValues" WorkflowName="Receipt_CopyPurchaseValues">
				<Parameter	Name="Purchase"	Direction="In"		Value="${Purchase}" />
				<Parameter	Name="Receipt"	Direction="In"		Value="${CreatedReceipt}" />
			</WorkflowCall>
		</Transaction>

		<UserContent Name="Post" />

		<View Name="Open screen to view created receipt" ViewName="DataEntryScreen">
			<Parameter	Name="DomainObject"			Direction="In"		Value="${CreatedReceipt}" />
			<Parameter	Name="FocusEditableField"	Direction="In"		Value="=${CreatedReceipt.Description} == Empty" />
			<Parameter	Name="ScreenName"			Direction="In"		Value="${FormName}" />
		</View>
	</Execution>
</Workflow>