Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield188
ActionField188
Beschrijving: Add InvoiceLine to Invoice. Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| Invoice | Invoice | Root |
| FormName | String | Optional |
| FormNameForStatusCreated | String | Optional |
| FormNameForStatusCreditCreated | String | Optional |
XMLbewerken
<Workflow Name="ActionField188" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Add InvoiceLine to Invoice.</Description>
<Properties>
<Property Name="Invoice" Type="Invoice" Accessor="Root" Direction="In" />
<Property Name="FormName" Type="String" Accessor="Optional" Direction="In" />
<Property Name="FormNameForStatusCreated" Type="String" Accessor="Optional" Direction="In" Comment="Open this screen after the invoiceline (invoice status is Created) is created" />
<Property Name="FormNameForStatusCreditCreated" Type="String" Accessor="Optional" Direction="In" Comment="Open this screen after the invoiceline (invoice status is CreditCreated) is created" />
<Property Name="CreatedInvoiceLine" Type="InvoiceLine" Accessor="Internal" />
<Property Name="CreatedPurchaseLine" Type="PurchaseLine" Accessor="Internal" />
<Property Name="Purchase" Type="Purchase" Accessor="Internal" />
<Property Name="PurchaseFormula" Type="CollectInputFormula" Accessor="Internal" />
<Property Name="Purchases" Type="List[Purchase]" Accessor="Internal" />
<Property Name="PurchaseSqlWhereClause" Type="String" Accessor="Internal" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<Validation Name="InvoiceStatus OK?" Condition="${Invoice.Status} == InvoiceStatus.Created || ${Invoice.Status} == InvoiceStatus.CreditCreated" MessageCode="0688">
<Parameter Name="Invoice" Direction="In" Value="${Invoice}" />
</Validation>
<Transaction>
<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>
</Transaction>
<Validation Name="Invoice has purchase" Condition="${Purchases.Count} != 0" MessageCode="0682">
<Parameter Name="Invoice" Direction="In" Value="${Invoice}" />
</Validation>
<Choose Name="Number of purchases on invoice">
<When Name="More than one" Condition="${Purchases.Count} > 1">
<Transaction>
<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>
<Command Name="Create purchase whereclause" CommandName="Purchase_CreateWhereClause188">
<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="PurchaseStatus.Active,PurchaseStatus.PartReceived,PurchaseStatus.Received" />
<Parameter Name="Vendor" Direction="In" Value="${Invoice.Vendor}" />
<Parameter Name="WhereClause" Direction="Out" OutputProperty="${PurchaseSqlWhereClause}" />
</Command>
</Transaction>
<SystemDialog Name="DialogSelectPurchase" 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>
</When>
<When Name="Exactly one" Condition="${Purchases.Count} == 1">
<Transaction>
<Command Name="Get only purchase" CommandName="Purchases_GetFirst">
<Parameter Name="Purchases" Direction="In" Value="${Purchases}" />
<Parameter Name="Purchase" Direction="Out" OutputProperty="${Purchase}" />
</Command>
</Transaction>
</When>
<Otherwise Name="None" Comment="Error: invoice without invoicelines so no purchase">
<Stop Name="Stop" Mode="Abort" />
</Otherwise>
</Choose>
<Transaction>
<Command Name="Create purchaseline" CommandName="PurchaseLine_Create">
<Parameter Name="Purchase" Direction="In" Value="${Purchase}" />
<Parameter Name="PurchaseLineStatus" Direction="In" Value="PurchaseLineStatus.AddedInvoiceLine" />
<Parameter Name="PurchaseLine" Direction="Out" OutputProperty="${CreatedPurchaseLine}" />
</Command>
<Command Name="Create invoiceline" CommandName="InvoiceLine_Create">
<Parameter Name="Invoice" Direction="In" Value="${Invoice}" />
<Parameter Name="InvoiceLineStatus" Direction="In" Value="InvoiceLineStatus.PurchaseLineAdded" />
<Parameter Name="InvoiceLine" Direction="Out" OutputProperty="${CreatedInvoiceLine}" />
</Command>
<Assign Name="Purchaseline refers to invoiceline" Property="${CreatedPurchaseLine.InvoiceLine}" Value="${CreatedInvoiceLine}" />
<Assign Name="InvoiceLine refers to purchaseline" Property="${CreatedInvoiceLine.PurchaseLine}" Value="${CreatedPurchaseLine}" />
</Transaction>
<Choose Name="Invoice status">
<When Name="Created" Condition="${Invoice.Status} == InvoiceStatus.Created">
<Assign Name="FormName = FormNameForStatusCreated" Property="${FormName}" Value="${FormNameForStatusCreated}" />
</When>
<Otherwise Name="CreditCreated" Comment="${Invoice.Status} == InvoiceStatus.CreditCreated">
<Assign Name="FormName = FormNameForStatusCreditCreated" Property="${FormName}" Value="${FormNameForStatusCreditCreated}" />
</Otherwise>
</Choose>
<UserContent Name="Post" />
<View Name="Open screen to edit purchaseline" ViewName="DataEntryScreen">
<Parameter Name="DomainObject" Direction="In" Value="${CreatedPurchaseLine}" />
<Parameter Name="FocusEditableField" Direction="In" Value="True" />
<Parameter Name="ScreenName" Direction="In" Value="${FormName}" />
</View>
</Execution>
</Workflow>