Hi Abel,
Thanks for sharing your opinion.
I understand your approach. I have also thought about that approach and saw some concerns:
1) If you adjust the lifecycle state (and also validity period, I assume), you will lose the information of the current lifecycle status. For example:
- Assuming the user has an ongoing version planned to be launched from 1/1/2026
- Now (Nov 10, 2025), he plans to retire the PO from 1/1/2027. So, if he updates the same version, his PO's version will look like (Retired, from 1/1/2027).
=> The user will not be able to tell if at a certain time before the Retire date starts (e.g June 1, 2026), the current version is in the state of Design, Tested, Activated, or Launched because the Retire Version has overridden this information.
2) Retire, from the business perspective, often means the user no longer wants to offer the PO for sale anymore in the future (i.e. a legacy offer that is no longer for for sale). But if Retire applies at the version level, then you can have a version that's retired while the PO is for sale in the market. Maybe it's a misalignment between business goal vs technical implementation.
Best regards
------------------------------
Tom Tom
Ericsson Inc.
------------------------------
Original Message:
Sent: Nov 10, 2025 03:55
From: Abel Ruiz Huerta
Subject: TMF API (620, 633, 634, etc.) Lifecycle States - Version level or Entity level ?
Hi Tom,
In our company, we've discussed this topic several times. Let me share the conclusions we've reached - they're just our opinions, not necessarily the best approach for every case:
We consider the full lifecycle to apply to versions.
We don't allow more than one Launched and valid (i.e., within its startDate and endDate) version of the same specification at the same time.
In other words, at any given moment, for a single specification, we could have one version in the Launched state while the previous version is being decommissioned and is Retired, with even older ones marked as Obsolete. Of course, there may be newer versions in Active or earlier states, but those would eventually replace the launched one in the future.
Every time a new version of a specification is created, it must go through the full lifecycle. In other words, you couldn't directly create a version X in the Retired state, as you mentioned in one of your questions.
Hope this helps!
Best regards,
------------------------------
Abel Ruiz Huerta
alvatross
------------------------------