Update the Status of a Property Value

How to change the Status of a String Property Value using Python4Capella. For example I want to change the status value from “TO_BE_REVIEWED” to “REVIEWED_OK”

Welcome !

The following script will set the status of a new created object to REVIEWED, you might need to get another literal in your case:

# include needed for the Capella modeller API
include('workspace://Python4Capella/simplified_api/capella.py')
if False:
    from simplified_api.capella import *

aird_path = '/In-Flight Entertainment System/In-Flight Entertainment System.aird'
model = CapellaModel()
model.open(aird_path)

def get_progress_status_enum(se):
    progress_status_enum = None
    for enumeration in se.get_java_object().eContainer().getOwnedEnumerationPropertyTypes():
        if enumeration.getName() == 'ProgressStatus':
            progress_status_enum = EnumerationPropertyType(enumeration)
            return progress_status_enum
    return progress_status_enum

se = model.get_system_engineering()
progress_status_enum = get_progress_status_enum(se)

new_status = None
for literal in progress_status_enum.get_owned_literals():
    if literal.get_name() == 'REVIEWED':
        new_status = literal

capella_element = LogicalComponentPkg()
capella_element.get_java_object().setStatus(new_status.get_java_object())

print(capella_element.get_status())

To change an existing object from your Capella model you will need to navigate to this element in your model. You will also need to do the change in a transaction for the change to take effect.

1 Like

Hi Yvan,

That worked and solved my issue!

Thanks for the help!

Regards
Srikar

2 Likes

Another epic response from @YvanLussaud :slight_smile:

2 Likes