is there a way to check properties of two different object types in a BMIDE workflow filter condition?
My Problem is that one can only use o,t,u as parameters in a WF condition and so i can't use nested conditions that have different object types for parameter o.
The easiest solution would be to define the properties on an higher level like on the item revision, but in my use case the properties are defined on a lower level.
My second thought was to define the item revision as my parameter o. But is there a way to look down to the specific object property within the expression like ItemRevision -> DesignRevision -> property =""?
Thanks in advance!
Solved! Go to Solution.
Thanks for the Reply, thats a nice post aswell.
Sadly that is not what i am looking for. I think i havn't been precise enough. I meant the BMIDE conditions that one could use to filter the workflow template availability.
So if I understand the requirement correctly you have something like the following;
A type BB4_ItemARevision with an attribute bb4_attra that you want to check.
Another type BB4_ItemBRevision with an attribute bb4_attrb that you want to check.
You should be able to setup a condition using ItemRevision as the object type, then use fnd0CheckIfPropertyValueMatches() to test your property. Something like
(o.object_type = "BB4_ItemARevision" AND o.fnd0CheckIfPropertyValueMatches("bb4_attra", "A Value", true)) OR
(o.object_type = "BB4_ItemBRevision" AND o.fnd0CheckIfPropertyValueMatches("bb4_attrb", "B Value", true))
Instead of testing object_type you might want to think about using u.fnd0ConditionHelper.fnd0IsSubTypeOf("BB4_ItemxRevision") if you have further subtypes.
You can find the documentation for fnd0CheckIfPropertyValueMatches() in BMIDE. It's defined on WorkspaceObject.
fnd0IsSubTypeOf() is defined on Fnd0ConditionHelper.
thank you very much. This works really good for me. I didn't know this Operation yet and it turns out to be very helpful!
Jonathan may i ask you another question?
I am also trying to check the release status of an item with a condition.
I tried expressions like:
o.release_status_list.name="TCM Released", Function::INLIST("TCM Released", o.release_status_list,"name") etc.
but i wasnt successful with these tries. Right now i am only able to check if the release status is null with o.last_release_status=null. But i can't use o.last_release_status="TCM Released" because one can't compare an UntypedReference with a string.
Is there also an operation i don't know yet or which expression do i need to use?
thanks in advance
I've used Function::INLIST("TCM Released", o.release_status_list, "name") before and this should work fine.
If you have a custom status then you need to use the BMIDE name, not the display name, so something like
Function::INLIST("BB4_Released", o.release_status_list, "name")
Do you have other clauses in your condition that could cause it to return false?