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 && ${Status} != PurchaseStatus.PartReceived && ${Status} != PurchaseStatus.Received && ${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>