Labels using if and nvl

Started by nfigay, September 05, 2021, 23:12:22 PM

Previous topic - Next topic

kimh

#15
My mistake with version above, but the use of the word 'since', made me think it was a past version, so did not check. Would not 'coming in 4.9' be clearer.

In regard to above issue with true, false and non existent. Logic languages like Prolog assume the Closed Worlds Assumption, that is if a piece of data does not exist then its false. For example, I have 3 cars in my garage. There is no Ferrari, so its false (in my world) that a Ferrari is Red.
So
IsCritical = false is the same as not stating isCritical. Things that are not known are false.
IsCritical = true is saying it is known as true.

So you can have  a very simple test syntax
IF IsCritical
THEN True Option
ELSE False Option

This is quite a valid approach in logic, but is very different to imperative programming languages. So I think its a safe approach for a diagraming tool.
Boolean values could be: yes/true/1,  no/false/0/non-existent

In my example above, I was wondering how to do this, and not stating the property Legacy = true means its false. I only need to state it when it's explicitly true, and this makes maintenance easy. If I do say its false then all good.


Phil Beauvoir

Quote from: Phil Beauvoir on September 08, 2021, 13:38:26 PM
Quote from: rchevallier on September 08, 2021, 13:28:50 PM
Very interesting and useful indeed

However because 4.9 incompatibility with coArchi conflicts (as far I understood), we may have a longer time before adopting 4.9 (waiting then for coArchi v2)
Would it be possible to mark the 4.9 new features in the documentation with a tag or notice (eg: "@since 4.9") ?

Yes, I've added "(Since 4.9)" for the three new label expressions in the wiki.

Archi 4.9 will still work with coArchi, but you won't be able to see the difference when merging if Specializations are used.

(I accidentally edited your message instead of quoting it. I've put it back to how it was  :D)

Actually, Archi 4.9 will not work with coArchi if there are Specializations in the model. We are investigating a fix. In the meantime don't add Specializations to models shared with coArchi!
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

rheward

Easy one for a Friday afternoon; so how do you test for a property value?

For example, I want a property called "Compliant" and this is going to be Yes or No.

I was thinking..

${name}
${if:(${property:Compliant}.match("Yes")):COMPLIANT:NONCOMPLIANT}

But that just proved I don't know how to use match. Or how to generate an empty return.

Jean-Baptiste Sarrodie

Hi,

Quote from: rheward on May 26, 2023, 15:02:35 PMI was thinking..

Code Select Expand
${name}
${if:(${property:Compliant}.match("Yes")):COMPLIANT:NONCOMPLIANT}

But that just proved I don't know how to use match. Or how to generate an empty return.

(Unfortunately) Label expression can't check the content of an information, only if it is null/empty or not.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.