Hi there AppWorks fans,
Welcome to a new installment of AppWorks tips.
Happy new year!! We dive directly into greatness by looking back to this post “How to create conditional value assistance on 2 properties”! I know…It’s almost 3 years ago, but let me tell you I wasn’t aware of the existence (or at least…I never used it!) of a special type of dropdown on our beloved platform. You all knew this feature off-course!? Dûh, but never informed me about it! 😏 Well, I keep on grinding; So, eventually I find it as well!
WAIT…After a search over my own posts, I found 1 hit describing this feature. Looks to me like it never “Snapped” in my mind. It doesn’t matter; After this post you (and I) will never ever forget it again!
Now you wonder what this special feature is? Well…
Let get right into it…
Open up your AppWorks project and start with a simple one-property ‘Case’ entity. I use case_name
, but choose whatever you want; Make the building blocks also a bit nicer to your own naming conventions…Just a good habit! After this you create a second KeyValue
pair entity with 2 properties kv_key
and kv_value
. Here for a first screenshot:
Next, we make a ‘toOne’ relation from the ‘Case’ entity to the ‘KeyValue’ entity; Steady and easy:
After this challenge (🤣), we make sure to add that new relation into the ‘Create’ form…So, it shows up like a “binoculars” search icon:
…
…
…
…
Now, the magic of the post (what you already know probably, but never-the-less)…Click the icon on the form to get properties in the right panel and change the type of this search component to the option called “Drop list series”…WHAT?? Yes, and configure it like this:
No way?? that easy?? Yes, my friend…That easy, but don’t tell me you did not know about this feature yet!?…Comment me!
Well, what are you waiting for…Publish it, create ‘KeyValue’ instances following this taxonomy tree:
- prio_1
- bug
- release
- test
- package
- prio_2
- release
- test
- package
- prio_3
- release
- feature
And for the ‘Case’ instance creation…Well, what do you think:
It’s a party! 😎 No BPM, No nothing! I say it’s an “underrated” feature…
ONLY…Yes; I know, “You shouldn’t look a gift horse in the mouth”…I marked both properties required and…the first property removed the “empty” value; the second property isn’t, but you also can’t select it; So-be-it!
Discussion time
There we go again…Well, I just want to share something as I’m about to change my mindset when it comes to these kinds of taxonomy/admin lists.
Most of the time these lists are retrieved from external sources and for that reason we “normally” would use a dynamic Enum property with a related BPM, BUT this way (not in our example) the data is saved twice…externally and in the AppWorks platform! This should raise a red-flag already for maintenance and the single-source-of-truth principle.
Yes…So what?? Well, add to this that I (and a colleague) see a major performance boost in using these 2 conditional valued properties without any BPMs in runtime, my mind starts to move to a way where we always save external data into the AppWorks platform ONLY as cache mechanism!! AND that we add an automatic “scheduled” or manual “action rule” button to sync the external source with the AppWorks source…This off-course via a BPM; This way you also don’t see endless BPM calls passing by in your PIM for the dynamic Enum type of properties.
With this new mindset also the EIS connector can be ReQuestioned again!? Why? Well, this EIS connector also embeds external data as external entity into an AppWorks project, but I (and you maybe as well) know this also keeps being a struggle for a steady implementation (just my experience!). So, why not just create a “Normal” entity and build a solid sync mechanism over a BPM?
Let me know about your thoughts…I’m really curious how you see the world of OpenText AppWorks currently? I’m open to any feedback or comment below.
That’s an eye-opener “DONE” as first post for 2024!! Amazing how a mind can change based on new insights and experiences in the field. Lucky we all live in an Agile world where we just make the current state transparent, do an inspection to learn from mistakes, and adapt to improve the future state (that’s at least what I could remember from reading the Scrum Guide two years ago). I leave you with a great weekend and lots of new posts to come; Keep it locked on AppWorks Tips and improve yourself to be the best. 👊
Don’t forget to subscribe to get updates on the activities happening on this site. Have you noticed the quiz where you find out if you are also “The AppWorks guy”?