*Purpose

This query will list objects constituting the modules based on the properties - SQL Queries - CAST Knowledge Base - Queries on objects - How to check if objects are internal or external or generated from the application

If the property of the object returned by the query is external then this is due to a tool after module generation, otherwise the object would not be part of the module scope in the first place.

Applicable CAST Version

Release

Yes/No

8.3.x(tick)
Applicable RDBMS

RDBMS

Yes/No
Oracle Server(tick) 
Microsoft SQL Server(question)
CSS(tick)
Query for CSS, Oracle, SQL Server

For CAST 8.3.36 and below:

SELECT DISTINCT coa.object_id, 
k.KeyNam,
CASE coa.properties
WHEN 0 THEN 'Internal'
WHEN 1 THEN 'External'
WHEN 2 THEN 'Generated' 
ELSE 'UNKNOWN'
END
FROM Keys k
JOIN SETROOT sr ON sr.IDSET = k.IdKey
JOIN CTT_OBJECT_APPLICATIONS coa ON coa.APPLICATION_ID = sr.IDROOT
WHERE k.KeyNam NOT LIKE '___% union content___'
  AND k.KeyNam NOT LIKE '% IFPUG objects'
  AND k.KeyNam NOT LIKE '___% full content___'
  AND k.ObjTyp = 20000
  order by 2, 3;

For CAST 8.3.37 and above:

SELECT DISTINCT coa.object_id, 
k.KeyNam,
CASE 
WHEN coa.properties & 0 THEN 'Internal'
WHEN coa.properties & 1 THEN 'External'
WHEN coa.properties & 2 THEN 'Generated' 
ELSE 'UNKNOWN'
END
FROM Keys k
JOIN SETROOT sr ON sr.IDSET = k.IdKey
JOIN CTT_OBJECT_APPLICATIONS coa ON coa.APPLICATION_ID = sr.IDROOT
WHERE k.KeyNam NOT LIKE '___% union content___'
  AND k.KeyNam NOT LIKE '% IFPUG objects'
  AND k.KeyNam NOT LIKE '___% full content___'
  AND k.ObjTyp = 20000
  order by 2, 3;
Query result example

7250;"My module";"External"
7253;"My module";"Generated"
7255;"My module";"External"

Query result interpretation
The query return the object id, the module name and the object property