Hi Community,is there a way to configure an attribute based filter in the DialogColumn schema?
We have different use cases where only a destinct subset of objects are permitted for selection in an objects forign key.Some of wich have fixed conditions, and some have dynamic conditions. Following are some examples.
On the Person we have a FK to and organizational country object.This object is in fact a Department object as the hirarchies schema is defined like this:
So we need the following rule for the selection of FKs:
Employees shall only be assignable to costcenters from the same system as the department.
To manage that we need the following rule:
We agreed that the primary business role shall only be used for birthright roles that are calculated or selected during the onboarding.
The birthright roles are specific to the employee type and organizational country assignment.
i.E. Externals in Greate Britain could have a subset of birthright roles. Let's say there are two roles "GBR-External-Basic" and "GBR-External-Advanced"
To make the live as easy as possible we need to implement the following rules for the selection of a birthright role:
In reply to Oliver Paulzen (iC Consult):
Hi Oliver, part of what we try to achive is to make the selection managable for the user. Our customer has companies in nearly ever country of the world. Limiting for example the selectable costcenters based on the person would make the live realy easy for the people out there.
We only onboarded three countries and already have 250k cost centers in the system. In OnSaving I would only be able to punish people for a wrong selection... a selection that defined rules. So why should I consider to allow users to select forbidden entries in the first place? I also thought about using database views, but they only allow fixed conditions and, additionally must be check if they need to be changed if the base table gets alterted/extended. In the case of BaseTree objects that could lead into developers nightmare. Third option, having the logic in UI is also boundled with a huge development effort. As I would expect that the logic is the same, regardless of the UI used. So best case would be to define that in the object layer schema. But I don't know if there is maybe already a solution for this. I can't imagine that I am the first one with such a requirement. Greetings Florian
In reply to florian.zedler@computacenter.com (External):
<DialogFormDefinition FormatVersion="1.0"> <ComponentDefinitions> <ComponentDefinition Name="TreeComboBoxUIDDepartment"> <Properties> <Property Name="WhereClause" Value="DepartmentName like N'%%%Sponsor%%' and treelevel = $Sponsor:Int$" /> </Properties> </ComponentDefinition> </ComponentDefinitions> </DialogFormDefinition>
In reply to Sergei Orlov (iC Consult):
Not sure what you mean by "regardless of the UI used". Surely you have a defined way of how users should access/edit those values? Generally, it is best to expose such functionality through the web portal, in which case your requirements should be very easy to implement using WebDesigner candidate filters, as stated before. How else do you want to let people access the object layer? I wouldn't think you want to let people all over the word use the rich client tools?
In reply to christian.stevens@devoteam.com (External):
No, but when you think of APIs, you want to limit the assignable objects to the defined subset if there is a rule for it.
I don't want to change the same rule in X areas of the system when the schema would be the best place for that very rule.
I have two ideas where to put this rule:
Either way, the object layer must be adapted accordingly to include the extension correctly in all interfaces (web frontend, API, fat clients, etc.).