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

ActionField185

Beschrijving: Create credit InvoiceLines for Purchase belonging to Invoice. Custom: Nee

Propertiesbewerken

Property Type Accessor
Invoice Invoice Root
Contexts List[Context] Optional
Statuses List[Status] Optional

XMLbewerken

<Workflow Name="ActionField185" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Create credit InvoiceLines for Purchase belonging to Invoice.</Description>
	<Properties>
		<Property	Name="Invoice"					Type="Invoice"			Accessor="Root"		Direction="In" />

		<Property	Name="Contexts"					Type="List[Context]"	Accessor="Optional"	Direction="In"		Default="PurchaseContext.Purchase"																				Comment="Select only Purchases with these contexts" />

		<Property	Name="Statuses"					Type="List[Status]"		Accessor="Optional"	Direction="InOut"	Default="PurchaseStatus.Active, PurchaseStatus.PartReceived, PurchaseStatus.Received, PurchaseStatus.Closed"	Comment="Statuses other than those in default are ignored, subset is allowed" />

		<Property	Name="InvoiceLineCount"			Type="Int64"			Accessor="Internal" />
		<Property	Name="NegativePurchaseLines"	Type="Boolean"			Accessor="Internal" />
		<Property	Name="Purchase"					Type="Purchase"			Accessor="Internal" />
		<Property	Name="Purchases"				Type="List[Purchase]"	Accessor="Internal" />
		<Property	Name="PurchaseSqlWhereClause"	Type="String"			Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<When Name="When only one purchase allowed per invoice" Condition="#{UltimoSettings.InvoiceMorePurchaseAllowed} == False">
				<GetCount Name="Get a count of the number of invoice lines for this invoice" Type="InvoiceLine" OutputProperty="${InvoiceLineCount}">
					<Filters>
						<PropertyFilter	PropertyName="Id.Invoice"	Operator="="		PropertyValue="${Invoice}" />
					</Filters>
				</GetCount>

				<Validation Name="ValidateNoLinesOnInvoiceYet" Condition="${InvoiceLineCount} == 0" MessageCode="0820" />
			</When>

			<Validation Name="InvoiceStatus OK?" Condition="${Invoice.Status} == InvoiceStatus.CreditCreated" MessageCode="0725">
				<Parameter	Name="Invoice"	Direction="In"		Value="${Invoice}" />
			</Validation>

			<GetList Name="Get purchases on invoice" Type="Purchase" OutputProperty="${Purchases}" OrderBy="Id" OrderDirection="Ascending">
				<Joins>
					<Join	Name="PurchaseLines"	Alias="purchaseLine"	Type="InnerJoin" />
					<Join	Name="InvoiceLines"		Alias="invoiceLine"		Type="InnerJoin" />
				</Joins>
				<Filters>
					<PropertyFilter	PropertyName="invoiceLine.Id.Invoice"	Operator="="		PropertyValue="${Invoice}" />
				</Filters>
			</GetList>

			<ForEach Name="Validate Statuses against those allowed" In="${Statuses}" As="Status">
				<When Name="When status is not allowed" Condition="${Status} != PurchaseStatus.Active &amp;&amp; ${Status} != PurchaseStatus.PartReceived &amp;&amp; ${Status} != PurchaseStatus.Received &amp;&amp; ${Status} != PurchaseStatus.Closed">
					<RemoveFromList Name="Remove status from list" List="${Statuses}" Item="${Status}" />
				</When>
			</ForEach>

			<Command Name="Create whereclause for purchaseselection" CommandName="Purchase_CreateWhereClause185">
				<Parameter	Name="Contexts"					Direction="In"		Value="${Contexts}" />
				<Parameter	Name="Currency"					Direction="In"		Value="${Invoice.Currency}" />
				<Parameter	Name="CurrencyConversionFactor"	Direction="In"		Value="${Invoice.CurrencyConversionFactor}" />
				<Parameter	Name="Purchases"				Direction="In"		Value="${Purchases}" />
				<Parameter	Name="Statuses"					Direction="In"		Value="${Statuses}" />
				<Parameter	Name="Vendor"					Direction="In"		Value="${Invoice.Vendor}" />
				<Parameter	Name="WhereClause"				Direction="Out"													OutputProperty="${PurchaseSqlWhereClause}" />
			</Command>
		</Transaction>

		<SystemDialog Name="SelectDomainObject" DialogName="SelectDomainObject">
			<Parameter	Name="EntityName"					Direction="In"		Value="Purchase" />
			<Parameter	Name="SelectionListConfiguration"	Direction="In"		Value="Default" />
			<Parameter	Name="SqlWhereClause"				Direction="In"		Value="${PurchaseSqlWhereClause}" />
			<Parameter	Name="DomainObject"					Direction="Out"											OutputProperty="${Purchase}" />
		</SystemDialog>

		<Transaction>
			<WorkflowCall Name="Create credit invoicelines from purchaselines" WorkflowName="Purchase_CreateCreditInvoiceLines">
				<Parameter	Name="Invoice"					Direction="In"		Value="${Invoice}" />
				<Parameter	Name="Purchase"					Direction="In"		Value="${Purchase}" />
				<Parameter	Name="NegativePurchaseLines"	Direction="Out"							OutputProperty="${NegativePurchaseLines}" />
			</WorkflowCall>
		</Transaction>

		<UserContent Name="Post" />

		<When Name="Negative purchaselines encountered » Yes" Condition="${NegativePurchaseLines} == True">
			<Message Name="ummPURCHCONTNEG" MessageCode="0587" />
		</When>
	</Execution>
</Workflow>