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>