Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield1165
ActionField1165
Beschrijving: Create PurchaseRequestLine(s) based on JobScheduleParts (planned hours) of this Project (Stop). Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| Stop | Project | Root |
| UnitDescription | UltimoString | Optional |
XMLbewerken
<Workflow Name="ActionField1165" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Create PurchaseRequestLine(s) based on JobScheduleParts (planned hours) of this Project (Stop).</Description>
<Properties>
<Property Name="Stop" Type="Project" Accessor="Root" Direction="In" />
<Property Name="UnitDescription" Type="UltimoString" Accessor="Optional" Direction="In" Default="Uren" Comment="Unitdescription for the created purchaseRequestLines. Default: Uren (Hours in dutch)" />
<Property Name="AllowedJobStatuses" Type="List[Status]" Accessor="Internal" Default="JobStatus.Created,JobStatus.Approved,JobStatus.Postponed" />
<Property Name="CraftsmanHourCategory" Type="CraftsmanHourCategory" Accessor="Internal" />
<Property Name="Jobs" Type="List[Job]" Accessor="Internal" />
<Property Name="JobScheduleParts" Type="List[JobSchedulePart]" Accessor="Internal" />
<Property Name="PurchaseRequestLine" Type="PurchaseRequestLine" Accessor="Internal" />
<Property Name="PurchaseRequestLinesCreatedCount" Type="Int64" Accessor="Internal" Default="0" />
<Property Name="WorkOrders" Type="List[WorkOrder]" Accessor="Internal" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<Transaction>
<GetCount Name="Count PurchaseRequestLines" Type="PurchaseRequestLine" OutputProperty="${PurchaseRequestLinesCreatedCount}">
<Filters>
<PropertyFilter PropertyName="CreatedForStop" Operator="=" PropertyValue="True" />
<PropertyFilter PropertyName="Project" Operator="=" PropertyValue="${Stop}" />
</Filters>
</GetCount>
<Validation Name="Validate PurchaseRequestLinesCreated" Condition="${PurchaseRequestLinesCreatedCount} == 0" MessageCode="2388">
<Parameter Name="Project" Direction="In" Value="${Stop}" />
</Validation>
</Transaction>
<ContinuationQuestion Name="Continue?" MessageCode="2393">
<Parameter Name="Project" Direction="In" Value="${Stop}" />
</ContinuationQuestion>
<Transaction>
<GetList Name="Get Workorders" Type="WorkOrder" OutputProperty="${WorkOrders}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="Project" Operator="=" PropertyValue="${Stop}" />
</Filters>
</GetList>
<ForEach Name="Loop Workorders" In="${WorkOrders}" As="WorkOrder">
<GetList Name="Get jobs by workorder with vendor" Type="Job" OutputProperty="${Jobs}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="WorkOrder" Operator="=" PropertyValue="${WorkOrder}" />
<InFilter PropertyName="Status" Values="${AllowedJobStatuses}" />
</Filters>
</GetList>
<ForEach Name="Loop Jobs" In="${Jobs}" As="Job">
<GetList Name="Get JobScheduleParts by Job" Type="JobSchedulePart" OutputProperty="${JobScheduleParts}" OrderBy="Vendor.Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="Job" Operator="=" PropertyValue="${Job}" />
<NotFilter>
<PropertyEmptyFilter PropertyName="Vendor" />
</NotFilter>
</Filters>
</GetList>
<ForEach Name="Loop JobScheduleParts" In="${JobScheduleParts}" As="JobSchedulePart">
<WorkflowCall Name="Job_CreatePurchaseRequestLine" WorkflowName="Job_CreatePurchaseRequestLine" Comment="Create a purchaseRequestLine per found jobschedulepart">
<Parameter Name="CalculateDeliveryDateMethod" Direction="In" Value="2" />
<Parameter Name="Currency" Direction="In" Value="#{Company.Currency}" />
<Parameter Name="Job" Direction="In" Value="${Job}" />
<Parameter Name="PurchaseRequestLine" Direction="Out" OutputProperty="${PurchaseRequestLine}" />
</WorkflowCall>
<Assign Name="Set PurchaseRequestLine.CreatedForStop" Property="${PurchaseRequestLine.CreatedForStop}" Value="True" />
<Assign Name="Set PurchaseRequestLine.Description" Property="${PurchaseRequestLine.Description}" Value="${JobSchedulePart.JobResource.Craftsman.Description}" />
<Command Name="Get_CraftsmanHourCategory" CommandName="Get_CraftsmanHourCategory">
<Parameter Name="Craftsman" Direction="In" Value="${JobSchedulePart.JobResource.Craftsman}" />
<Parameter Name="CraftsmanHourCategory" Direction="Out" OutputProperty="${CraftsmanHourCategory}" />
</Command>
<Assign Name="Set PurchaseRequestLine.GrossPrice" Property="${PurchaseRequestLine.GrossPrice}" Value="${CraftsmanHourCategory.Tariff1?}" />
<Assign Name="Set PurchaseRequestLine.PurchaseQuantity" Property="${PurchaseRequestLine.PurchaseQuantity}" Value="=1*${JobSchedulePart.HoursCalculated}" />
<Assign Name="Set PurchaseRequestLine.Site" Property="${PurchaseRequestLine.Site}" Value="${Job.Site}" />
<Assign Name="Set PurchaseRequestLine.UnitDescription" Property="${PurchaseRequestLine.UnitDescription}" Value="${UnitDescription}" />
<Assign Name="Set PurchaseRequestLine.Vendor" Property="${PurchaseRequestLine.Vendor}" Value="${JobSchedulePart.Vendor}" />
<WorkflowCall Name="PurchaseRequestLine_CopyValuesFromJob" WorkflowName="PurchaseRequestLine_CopyValuesFromJob">
<Parameter Name="AutoAnswerCopyJobExpenseCarriers" Direction="In" Value="True" />
<Parameter Name="PurchaseRequestLine" Direction="In" Value="${PurchaseRequestLine}" />
</WorkflowCall>
<WorkflowCall Name="PurchaseRequestLine_SetCurrencyRateAndConversionFactor_CalculateAmounts" WorkflowName="PurchaseRequestLine_SetCurrencyRateAndConversionFactor_CalculateAmounts">
<Parameter Name="PurchaseRequestLine" Direction="In" Value="${PurchaseRequestLine}" />
</WorkflowCall>
<ChangeStatus Name="Concept" DomainObject="${PurchaseRequestLine}" NewStatus="PurchaseRequestLineStatus.Concept" />
<ChangeStatus Name="Approve" DomainObject="${PurchaseRequestLine}" NewStatus="PurchaseRequestLineStatus.Approved" />
<Assign Name="Increment PurchaseRequestLinesCreatedCount" Property="${PurchaseRequestLinesCreatedCount}" Value="=${PurchaseRequestLinesCreatedCount} + 1" />
</ForEach>
</ForEach>
</ForEach>
</Transaction>
<UserContent Name="Post" />
<Choose Name="check PurchaseRequestLinesCreatedCount">
<When Name="Check if there are new purchaseRequestLines" Condition="${PurchaseRequestLinesCreatedCount} > 0">
<Message Name="Feedback+" MessageCode="2389">
<Parameter Name="PurchaseRequestLinesCreatedCount" Direction="In" Value="${PurchaseRequestLinesCreatedCount}" />
</Message>
</When>
<Otherwise Name="no purchaserequestline is created">
<Message Name="Feedback-" MessageCode="2394" />
</Otherwise>
</Choose>
</Execution>
</Workflow>