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

ActionField608

Beschrijving: Insert PurchaseRequest(Tender) from PurchaseAdvice. Change status of PurchaseRequestLines linked to PurchaseAdvice to Tender. Custom: Nee

Propertiesbewerken

Property Type Accessor
PurchaseAdvice PurchaseAdvice Root

XMLbewerken

<Workflow Name="ActionField608" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Insert PurchaseRequest(Tender) from PurchaseAdvice. Change status of PurchaseRequestLines linked to PurchaseAdvice to Tender.</Description>
	<Properties>
		<Property	Name="PurchaseAdvice"								Type="PurchaseAdvice"				Accessor="Root"		Direction="In" />

		<Property	Name="AttachedToTenderPurchaseRequestLinesCount"	Type="Int64"						Accessor="Internal" />
		<Property	Name="PurchaseRequest"								Type="PurchaseRequest"				Accessor="Internal" />
		<Property	Name="PurchaseRequestLines"							Type="List[PurchaseRequestLine]"	Accessor="Internal" />
		<Property	Name="ScreenActive"									Type="UltimoString"					Accessor="Internal"						Default="Pchr02" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Transaction>
			<GetCount Name="Count attachedToTender PurchaseRequestLines" Type="PurchaseRequestLine" OutputProperty="${AttachedToTenderPurchaseRequestLinesCount}">
				<Filters>
					<CombinedFilter FilterOperator="And">
						<PropertyFilter	PropertyName="PurchaseAdvice"	Operator="="		PropertyValue="${PurchaseAdvice}" />
						<PropertyFilter	PropertyName="AttachedToTender"	Operator="="		PropertyValue="True" />
						<PropertyEmptyFilter PropertyName="Tender" />
					</CombinedFilter>
				</Filters>
			</GetCount>

			<Validation Name="Validate attachedToTender PurchaseRequestLines" Condition="${AttachedToTenderPurchaseRequestLinesCount} &gt; 0" MessageCode="1903">
				<Parameter	Name="PurchaseAdvice"	Direction="In"		Value="${PurchaseAdvice}" />
			</Validation>

			<GetList Name="ListPurchaseRequestLine" Type="PurchaseRequestLine" OutputProperty="${PurchaseRequestLines}" OrderBy="Id" OrderDirection="Ascending">
				<Filters>
					<PropertyFilter	PropertyName="PurchaseAdvice"	Operator="="		PropertyValue="${PurchaseAdvice}" />
					<PropertyFilter	PropertyName="AttachedToTender"	Operator="="		PropertyValue="True" />
					<PropertyEmptyFilter PropertyName="Tender" />
					<PropertyFilter	PropertyName="Status"			Operator="!="		PropertyValue="PurchaseRequestLineStatus.Tender" />
				</Filters>
			</GetList>
		</Transaction>

		<ForEach Name="DeliveryDateInfo" In="${PurchaseRequestLines}" As="PurchaseRequestLine">
			<When Name="CheckDate » DateIsNotEmpty" Condition="${PurchaseRequestLine.RequestedDeliveryDate} != Empty">
				<Message Name="PurchaseLineDeliveryDate" MessageCode="1185">
					<Parameter	Name="PurchaseRequestLine"	Direction="In"		Value="${PurchaseRequestLine}" />
				</Message>
			</When>
		</ForEach>

		<Transaction>
			<Insert Name="InsertPurchaseRequest" ObjectType="PurchaseRequest" OutputProperty="${PurchaseRequest}">
				<Parameter	Name="Context"	Direction="In"		Value="PurchaseRequestContext.Tender" />
				<Parameter	Name="Status"	Direction="In"		Value="PurchaseRequestStatus.Created" />
				<Parameter	Name="Date"		Direction="In"		Value="#{Environment.CurrentDate}" />
			</Insert>

			<ForEach Name="UpdateRequestLines" In="${PurchaseRequestLines}" As="PurchaseRequestLine">
				<Assign Name="PurchaseRequestLine.Tender" Property="${PurchaseRequestLine.Tender}" Value="${PurchaseRequest}" />

				<ChangeStatus Name="PurchaseRequestLine" DomainObject="${PurchaseRequestLine}" NewStatus="PurchaseRequestLineStatus.Tender" />
			</ForEach>
		</Transaction>

		<UserContent Name="Post" />

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