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

ActionField611

Beschrijving: Create Purchase(Lines) with status Conceptual from RequestForQuotation. Change status of RequestForQuotation to CompletelyOrdered or PartiallyOrdered. Custom: Nee

Propertiesbewerken

Property Type Accessor
RequestForQuotation RequestForQuotation Root
ContextPurchase Context Optional
ContextPurchaseLine Context Optional
FormName UltimoString Optional

XMLbewerken

<Workflow Name="ActionField611" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Create Purchase(Lines) with status Conceptual from RequestForQuotation. Change status of RequestForQuotation to CompletelyOrdered or PartiallyOrdered.</Description>
	<Properties>
		<Property	Name="RequestForQuotation"			Type="RequestForQuotation"			Accessor="Root"		Direction="In" />

		<Property	Name="ContextPurchase"				Type="Context"						Accessor="Optional"	Direction="In"		Default="PurchaseContext.Purchase"		Comment="Create Purchase with this context" />
		<Property	Name="ContextPurchaseLine"			Type="Context"						Accessor="Optional"	Direction="In"		Default="PurchaseLineContext.Purchase"	Comment="Create PurchaseLine with this context" />
		<Property	Name="FormName"						Type="UltimoString"					Accessor="Optional"	Direction="In"		Default="pch03"							Comment="Open this screen with the created Purchase" />

		<Property	Name="CreatedPurchaseOrder"			Type="Purchase"						Accessor="Internal" />
		<Property	Name="NotToPurchaseCount"			Type="Int64"						Accessor="Internal" />
		<Property	Name="PurchaseLines"				Type="List[PurchaseLine]"			Accessor="Internal" />
		<Property	Name="PurchaseRequestLines"			Type="List[PurchaseRequestLine]"	Accessor="Internal" />
		<Property	Name="TenderRequestStatusCompleted"	Type="Boolean"						Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Validation Name="Check RequestForQuotation Status" Condition="${RequestForQuotation.Status} == RequestForQuotationStatus.Received" MessageCode="1202">
			<Parameter	Name="RequestForQuotation"	Direction="In"		Value="${RequestForQuotation}" />
		</Validation>

		<Transaction>
			<Command Name="CreatePurchaseOrderFromPurchaseRequest" CommandName="RequestForQuotation_CreatePurchaseOrder">
				<Parameter	Name="ContextPurchase"				Direction="In"		Value="${ContextPurchase}" />
				<Parameter	Name="ContextPurchaseLine"			Direction="In"		Value="${ContextPurchaseLine}" />
				<Parameter	Name="RequestForQuotation"			Direction="In"		Value="${RequestForQuotation}" />
				<Parameter	Name="PurchaseLines"				Direction="Out"										OutputProperty="${PurchaseLines}" />
				<Parameter	Name="PurchaseOrder"				Direction="Out"										OutputProperty="${CreatedPurchaseOrder}" />
				<Parameter	Name="PurchaseRequestLines"			Direction="Out"										OutputProperty="${PurchaseRequestLines}" />
				<Parameter	Name="TenderRequestStatusCompleted"	Direction="Out"										OutputProperty="${TenderRequestStatusCompleted}" />
			</Command>

			<ForEach Name="Update PurchaseRequestLines" In="${PurchaseRequestLines}" As="PurchaseRequestLine">
				<ChangeStatus Name="Update PurchaseRequestLine" DomainObject="${PurchaseRequestLine}" NewStatus="PurchaseRequestLineStatus.PurchaseCreated" />

				<Assign Name="Empty Pchrl.PurchaseAdvice" Property="${PurchaseRequestLine.PurchaseAdvice}" Value="Empty" />
				<Assign Name="Set RequestForQuotation" Property="${PurchaseRequestLine.TenderRequest}" Value="${RequestForQuotation}" />
			</ForEach>

			<ChangeStatus Name="Update Purchase" DomainObject="${CreatedPurchaseOrder}" NewStatus="PurchaseStatus.Conceptual" />

			<Choose Name="Set TenderRequest status">
				<When Name="Set TenderRequest status completed" Condition="${TenderRequestStatusCompleted} == True">
					<ChangeStatus Name="Set TenderRequest status completed" DomainObject="${RequestForQuotation}" NewStatus="RequestForQuotationStatus.CompletelyOrdered" />
				</When>

				<Otherwise Name="Set TenderRequest status partially ordered">
					<ChangeStatus Name="Set TenderRequest status partially ordered" DomainObject="${RequestForQuotation}" NewStatus="RequestForQuotationStatus.PartiallyOrdered" />
				</Otherwise>
			</Choose>

			<GetList Name="GetPurchaseRequestLinesWithStatusTender" Type="PurchaseRequestLine" OutputProperty="${PurchaseRequestLines}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="Tender"	Operator="="		PropertyValue="${RequestForQuotation.PurchaseRequest}" />
						<InFilter PropertyName="Status" Values="PurchaseRequestLineStatus.Tender" />
					</CombinedFilter>
				</Filters>
			</GetList>

			<When Name="Close Tender" Condition="${PurchaseRequestLines} == Empty">
				<ChangeStatus Name="Close Tender" DomainObject="${RequestForQuotation.PurchaseRequest}" NewStatus="PurchaseRequestStatus.Closed" />
			</When>
		</Transaction>

		<UserContent Name="Post" />

		<View Name="OpenScreen" ViewName="DataEntryScreen">
			<Parameter	Name="DomainObject"			Direction="In"		Value="${CreatedPurchaseOrder}" />
			<Parameter	Name="FocusEditableField"	Direction="In"		Value="=${CreatedPurchaseOrder.Description} == Empty" />
			<Parameter	Name="ScreenName"			Direction="In"		Value="${FormName}" />
		</View>
	</Execution>
</Workflow>