Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield108
ActionField108
Beschrijving: Add a ReceiptLine with status PurchaseLineAdded to a Receipt. Also create a PurchaseLine for the added ReceiptLine (Receipt status must be Created or PreApproved). Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| Receipt | Receipt | Root |
| FormName | UltimoString | Optional |
| SelectReceivedPurchases | Boolean | Optional |
XMLbewerken
<Workflow Name="ActionField108" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Add a ReceiptLine with status PurchaseLineAdded to a Receipt. Also create a PurchaseLine for the added ReceiptLine (Receipt status must be Created or PreApproved).</Description>
<Properties>
<Property Name="Receipt" Type="Receipt" Accessor="Root" Direction="In" />
<Property Name="FormName" Type="UltimoString" Accessor="Optional" Direction="In" Comment="Open this screen with the created ReceiptLine" />
<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="CreatedPurchaseLine" Type="PurchaseLine" Accessor="Internal" />
<Property Name="Purchase" Type="Purchase" Accessor="Internal" />
<Property Name="Purchases" Type="List[Purchase]" Accessor="Internal" />
<Property Name="Statuses" Type="List[Status]" Accessor="Internal" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<Transaction>
<Validation Name="Validate Receipt status" Condition="${Receipt.Status} == ReceiptStatus.Created || ${Receipt.Status} == ReceiptStatus.PreApproved" MessageCode="0514">
<Parameter Name="Receipt" Direction="In" Value="${Receipt}" />
</Validation>
<When Name="SelectReceivedPurchases is true" Condition="${SelectReceivedPurchases} == True">
<Assign Name="Set Statuses" Property="${Statuses}" Value="PurchaseStatus.Active,PurchaseStatus.PartReceived,PurchaseStatus.Received" />
</When>
<When Name="SelectReceivedPurchases is False" Condition="${SelectReceivedPurchases} == False">
<Assign Name="Set Statuses" Property="${Statuses}" Value="PurchaseStatus.Active,PurchaseStatus.PartReceived" />
</When>
<GetList Name="Get Purchases" Type="Purchase" OutputProperty="${Purchases}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<InFilter PropertyName="Status" Values="${Statuses}" />
<InFilter PropertyName="Id">
<Subquery Type="ReceiptLine">
<Joins>
<Join Name="PurchaseLine" Alias="purchaseLine" Type="InnerJoin" />
</Joins>
<Filters>
<PropertyFilter PropertyName="Id.Receipt" Operator="=" PropertyValue="${Receipt}" />
</Filters>
<Properties>
<Property Name="purchaseLine.Id.Purchase.Id" Alias="PurchaseId" Type="Property" />
</Properties>
</Subquery>
</InFilter>
</Filters>
</GetList>
<Validation Name="No Purchase" Condition="${Purchases} != Empty" MessageCode="2340">
<Parameter Name="Purchase" Direction="In" Value="${Purchase}" />
</Validation>
</Transaction>
<Choose Name="Count">
<When Name="Just One" Condition="${Purchases.Count} == 1">
<Assign Name="Set Purchase" Property="${Purchase}" Value="=#elementat(${Purchases},0)" />
</When>
<Otherwise Name="More than one">
<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="PchId in (#foreach(${PossiblePurchase} in ${Purchases})#each'${PossiblePurchase.Id}'#between, #end)" />
<Parameter Name="DomainObject" Direction="Out" OutputProperty="${Purchase}" />
</SystemDialog>
</Otherwise>
</Choose>
<Transaction>
<Comment><![CDATA[Validation Kept just in case]]></Comment>
<When Name="SelectReceivedPurchases is true" Condition="${SelectReceivedPurchases} == True">
<Validation Name="Validate Purchase status" Condition="${Purchase.Status} == PurchaseStatus.Active || ${Purchase.Status} == PurchaseStatus.PartReceived || ${Purchase.Status} == PurchaseStatus.Received" MessageCode="2717">
<Parameter Name="Purchase" Direction="In" Value="${Purchase}" />
</Validation>
</When>
<When Name="SelectReceivedPurchases is False" Condition="${SelectReceivedPurchases} == False">
<Validation Name="Validate Purchase status" Condition="${Purchase.Status} == PurchaseStatus.Active || ${Purchase.Status} == PurchaseStatus.PartReceived" MessageCode="0515">
<Parameter Name="Purchase" Direction="In" Value="${Purchase}" />
</Validation>
</When>
<WorkflowCall Name="Purchase_CreateReceiptLine" WorkflowName="Purchase_CreateReceiptLine">
<Parameter Name="Purchase" Direction="In" Value="${Purchase}" />
<Parameter Name="Receipt" Direction="In" Value="${Receipt}" />
<Parameter Name="CreatedPurchaseLine" Direction="Out" OutputProperty="${CreatedPurchaseLine}" />
</WorkflowCall>
</Transaction>
<UserContent Name="Post" />
<View Name="Go to PurchaseLine screen" 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>