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

ActionField1808

Beschrijving: Change JobMaterial by an alternative article. Custom: Nee

Propertiesbewerken

Property Type Accessor
JobMaterial JobMaterial Root

XMLbewerken

<Workflow Name="ActionField1808" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Change JobMaterial by an alternative article.</Description>
	<Properties>
		<Property	Name="JobMaterial"			Type="JobMaterial"		Accessor="Root"		Direction="In" />

		<Property	Name="AlternativeArticle"	Type="ObjectArticle"	Accessor="Internal" />
		<Property	Name="Label"				Type="UltimoString"		Accessor="Internal" />
		<Property	Name="NewJobMaterial"		Type="JobMaterial"		Accessor="Internal" />
		<Property	Name="PurchasePrice"		Type="CompanyMoney"		Accessor="Internal"						Default="CompanyMoney.Zero" />
		<Property	Name="SqlWhereClause"		Type="UltimoString"		Accessor="Internal"						Default="ObjArtArtid = '${JobMaterial.Article.Id}' AND ObjArtContext = 2" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<Validation Name="Check status JobMaterial" Condition="${JobMaterial.Status} != JobMaterialStatus.Approved" MessageCode="3700">
			<Parameter	Name="JobMaterial"	Direction="In"		Value="${JobMaterial}" />
		</Validation>

		<Transaction>
			<Command Name="Get translated label for pinned marker description" CommandName="GetLabel">
				<Parameter	Name="LabelCode"	Direction="In"		Value="SELECTALTERNATIVEARTICLE" />
				<Parameter	Name="LabelValue"	Direction="Out"											OutputProperty="${Label}" />
			</Command>
		</Transaction>

		<SystemDialog Name="DialogSelectObjectArticles" DialogName="SelectDomainObject">
			<Parameter	Name="EntityName"					Direction="In"		Value="ObjectArticle" />
			<Parameter	Name="SelectionListConfiguration"	Direction="In"		Value="ALTERNATIVE" />
			<Parameter	Name="SqlWhereClause"				Direction="In"		Value="${SqlWhereClause}" />
			<Parameter	Name="Title"						Direction="In"		Value="${Label}" />
			<Parameter	Name="DomainObject"					Direction="Out"									OutputProperty="${AlternativeArticle}" />
		</SystemDialog>

		<Transaction>
			<GetItem Name="Get JobMaterial" Type="JobMaterial" OutputProperty="${NewJobMaterial}">
				<Filters>
					<PropertyFilter	PropertyName="Article"	Operator="="		PropertyValue="${AlternativeArticle.AlternativeArticle}" />
					<PropertyFilter	PropertyName="Id.Job"	Operator="="		PropertyValue="${JobMaterial.Id.Job}" />
				</Filters>
			</GetItem>

			<When Name="JobMaterial does not exists" Condition="${NewJobMaterial} == Empty">
				<Insert Name="NewJobMaterial" ObjectType="JobMaterial" OutputProperty="${NewJobMaterial}">
					<Parameter	Name="Id.Job"	Direction="In"		Value="${JobMaterial.Id.Job}" />
					<Parameter	Name="Context"	Direction="In"		Value="${JobMaterial.Context}" />
					<Parameter	Name="Status"	Direction="In"		Value="${JobMaterial.Status}" />
					<Parameter	Name="Article"	Direction="In"		Value="${AlternativeArticle.AlternativeArticle}" />
				</Insert>

				<Copy Name="Copy JobMaterial" Source="${JobMaterial}" Target="${NewJobMaterial}" CopyType="Overwrite" CustomOnly="False" />

				<Assign Name="Set NewJobMaterial Article" Property="${NewJobMaterial.Article}" Value="${AlternativeArticle.AlternativeArticle}" />

				<WorkflowCall Name="JobMaterial_UpdateMaterialCost" WorkflowName="JobMaterial_UpdateMaterialCost">
					<Parameter	Name="JobMaterial"	Direction="In"		Value="${NewJobMaterial}" />
				</WorkflowCall>

				<Assign Name="Set NewJobMaterial PriceCalculated" Property="${NewJobMaterial.PriceCalculated}" Value="${NewJobMaterial.Price}" />

				<Command Name="JobMaterial_SetInternalChargeValues" CommandName="JobMaterial_SetInternalChargeValues">
					<Parameter	Name="JobMaterial"								Direction="In"		Value="${NewJobMaterial}" />
					<Parameter	Name="RecalculateInvoiceCostOnPrecalculation"	Direction="In"		Value="True" />
					<Parameter	Name="RecalculateRaise"							Direction="In"		Value="True"				Comment="the article is being changed, so reset raise" />
				</Command>
			</When>

			<DeleteObject Name="Delete JobMaterial" DomainObject="${JobMaterial}" />
		</Transaction>

		<UserContent Name="Post" />
	</Execution>
</Workflow>