CMS API : Retrieving child type attributes

In the Contract Approval tutorial we have two types : The Loan Contract type definition model which is a subtype of the Contract type definition model .

 When executing the API call GET {{base_url}}/cms/type-definitions/ca_loan_contract/attributes , shouldn't it return the attributes of the loan_contract + attributes of contract as Loan Contract is a subtype of Contract , I can only see the attributes of loan_contract ("monthly_installments" and "yearly_income") in the response

Shouldn't the inherited attributes(the attributes of Type Contract ) be included in the response?

Answers

  • gvicari
    gvicari E Community Moderator

    @Med_2024, the GET {{base_url}}/cms/type-definitions/ca_loan_contract/attributes call returns the attributes that are defined by the type definition. I.e.: it provides you with the attributes defined at this specific level (loan contract). If you want the other attributes of the type definition you will have to go up the inheritance tree (do the same call for each individual super type), or use GET {{base_url}}/cms/type-definitions/ca_loan_contract/attributes-all.

    Note that this is documented in the API spec (available from https://developer.opentext.com/imservices, and more specifically https://developer.opentext.com/imservices/products/contentmetadataservice/apis/contentmetadata).

    Also, if you want the attribute values of a loan contract instance, you need to perform the {{base_url}}/cms/instances/file/ca_loan_contract/<paste loan contract instance id here> call.

  • @gvicari , I tested the CMS API GET {{base_url}}/cms/type-definitions/ca_loan_contract/attributes-allMS but it returns a long list of system properties with cms_any prefix in addition to ca_loan_contract and ca_contract , maybe add a param to filter the attributes in to enhance this api call .

  • LazarescuA
    LazarescuA E Community Moderator

    @Med_2024 you can filter the system ones and internal ones in your code. They have the system and internal attributes set to true: