Categorie: reference
Bijgewerkt: 2026-04-08
actionfield workflow actionfield1801
ActionField1801
Beschrijving: Change ReplacedByArticle. Custom: Nee
Propertiesbewerken
| Property | Type | Accessor |
|---|---|---|
| Article | Article | Root |
XMLbewerken
<Workflow Name="ActionField1801" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
<Description>Change ReplacedByArticle.</Description>
<Properties>
<Property Name="Article" Type="Article" Accessor="Root" Direction="In" />
<Property Name="AlternativeArticles" Type="List[ObjectArticle]" Accessor="Internal" />
<Property Name="Articles" Type="List[Article]" Accessor="Internal" />
<Property Name="ArticleSelected" Type="Article" Accessor="Internal" />
<Property Name="ObjectArticleCreated" Type="ObjectArticle" Accessor="Internal" />
<Property Name="ObjectArticlesToDelete" Type="List[ObjectArticle]" Accessor="Internal" />
<Property Name="ReplacementForArticles" Type="List[ObjectArticle]" Accessor="Internal" />
</Properties>
<Execution>
<UserContent Name="Pre" />
<Validation Name="ValidateEmployeeAndDate" Condition="${Article.ReplacedByArticle} == Empty || (${Article.ReplacedByEmployee} == Empty && ${Article.ReplacedByDate}== Empty)" MessageCode="3707">
<Parameter Name="Article" Direction="In" Value="${Article}" />
</Validation>
<SystemDialog Name="DialogSelectObjectArticles" DialogName="SelectDomainObject">
<Parameter Name="EntityName" Direction="In" Value="Article" />
<Parameter Name="SelectionListConfiguration" Direction="In" Value="Default" />
<Parameter Name="SqlWhereClause" Direction="In" Value="artid <> '${Article.Id}' AND artid <> '${Article.ReplacedByArticle.Id?}' and ArtReplacedByArtId IS NULL" />
<Parameter Name="DomainObject" Direction="Out" OutputProperty="${ArticleSelected}" />
</SystemDialog>
<Transaction>
<When Name="ReplacedByArticle was filled" Condition="${Article.ReplacedByArticle} != Empty">
<GetList Name="Get ObjectArticlesToDelete" Type="ObjectArticle" OutputProperty="${ObjectArticlesToDelete}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<CombinedFilter FilterOperator="Or">
<PropertyFilter PropertyName="ReplacementForArticle" Operator="=" PropertyValue="${Article}" />
<PropertyFilter PropertyName="Article" Operator="=" PropertyValue="${Article}" />
</CombinedFilter>
<PropertyFilter PropertyName="Context" Operator="=" PropertyValue="ObjectArticleContext.Replacement" />
</Filters>
</GetList>
<ForEach Name="Foreach ObjectArticleToDelete" In="${ObjectArticlesToDelete}" As="ObjectArticleToDelete">
<DeleteObject Name="Delete ObjectArticlesToDelete" DomainObject="${ObjectArticleToDelete}" />
</ForEach>
</When>
<Assign Name="Assign ReplacedByArticle" Property="${Article.ReplacedByArticle}" Value="${ArticleSelected}" />
<GetList Name="Get Articles" Type="Article" OutputProperty="${Articles}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="ReplacedByArticle" Operator="=" PropertyValue="${Article}" />
</Filters>
</GetList>
<ForEach Name="Foreach Article" In="${Articles}" As="ReplacedByArtId">
<Assign Name="Assign ReplacedByArticle" Property="${ReplacedByArtId.ReplacedByArticle}" Value="${ArticleSelected}" />
</ForEach>
<GetList Name="Get ReplacementForArticles" Type="ObjectArticle" OutputProperty="${ReplacementForArticles}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="Article" Operator="=" PropertyValue="${Article}" />
<PropertyFilter PropertyName="Context" Operator="=" PropertyValue="ObjectArticleContext.Replacement" />
</Filters>
</GetList>
<ForEach Name="Foreach ReplacementForArticle" In="${ReplacementForArticles}" As="ReplacementForArticle">
<Insert Name="Create ObjectArticle" ObjectType="ObjectArticle" OutputProperty="${ObjectArticleCreated}">
<Parameter Name="Context" Direction="In" Value="ObjectArticleContext.Replacement" />
<Parameter Name="Article" Direction="In" Value="${Article.ReplacedByArticle}" />
<Parameter Name="ReplacementForArticle" Direction="In" Value="${ReplacementForArticle.ReplacementForArticle}" />
</Insert>
</ForEach>
<GetList Name="Get Alternative Articles" Type="ObjectArticle" OutputProperty="${AlternativeArticles}" OrderBy="Id" OrderDirection="Ascending">
<Filters>
<PropertyFilter PropertyName="Article" Operator="=" PropertyValue="${Article}" />
<PropertyFilter PropertyName="Context" Operator="=" PropertyValue="ObjectArticleContext.Alternative" />
</Filters>
</GetList>
<ForEach Name="Foreach AlternativeArticle" In="${AlternativeArticles}" As="AlternativeArticle">
<GetItem Name="Get ObjectArticle" Type="ObjectArticle" OutputProperty="${ObjectArticleCreated}">
<Filters>
<PropertyFilter PropertyName="Context" Operator="=" PropertyValue="ObjectArticleContext.Alternative" />
<PropertyFilter PropertyName="AlternativeArticle" Operator="=" PropertyValue="${AlternativeArticle.AlternativeArticle}" />
<PropertyFilter PropertyName="Article" Operator="=" PropertyValue="${Article.ReplacedByArticle}" />
</Filters>
</GetItem>
<When Name="ObjectArticleCreated does not exists" Condition="${ObjectArticleCreated} == Empty && ${Article.ReplacedByArticle} != ${AlternativeArticle.AlternativeArticle}">
<Insert Name="Create ObjectArticle" ObjectType="ObjectArticle" OutputProperty="${ObjectArticleCreated}">
<Parameter Name="Context" Direction="In" Value="ObjectArticleContext.Alternative" />
<Parameter Name="AlternativeArticle" Direction="In" Value="${AlternativeArticle.AlternativeArticle}" />
<Parameter Name="Article" Direction="In" Value="${Article.ReplacedByArticle}" />
</Insert>
<Copy Name="Copy AlternativeArticle" Source="${AlternativeArticle}" Target="${ObjectArticleCreated}" CopyType="OnlySetIfEmpty" CustomOnly="False" />
</When>
</ForEach>
<Insert Name="Create ObjectArticle" ObjectType="ObjectArticle" OutputProperty="${ObjectArticleCreated}">
<Parameter Name="Context" Direction="In" Value="ObjectArticleContext.Replacement" />
<Parameter Name="Article" Direction="In" Value="${Article.ReplacedByArticle}" />
<Parameter Name="ReplacementForArticle" Direction="In" Value="${Article}" />
</Insert>
</Transaction>
<UserContent Name="Post" />
</Execution>
</Workflow>