Thank you for the replies.
As I mentioned initially, we tried using Motio but the search process used was WAY too slow for what we needed to accomplish, so we have been looking for something better.
We looked at the SDK and are probably going to keep that on our radar for longer term, but we are not ready to execute on SDK development at this time; From talking with IBM it sounded like it would not be a straight-forward bit of logic to code in any case.
What we ended up doing is to use data that we have been captured over time that could be combine into the data set we need.
* query logging from the database - our database retains sql history of all queries executed, with session information.
* Cognos session logging on database - we call a stored procedure whenever a report connects (in the open session command block) and pass in package and report name, and session id and request id.
* Cognos audit information - Cognos audit runreports table contains history of all Cognos queries that were run
Data for the last year from these three data sets was parsed, joined and loaded into a database table to provide the result set we need.
The end result of the sql information joined with audit information via session information does allow us to find where any database object is referenced in our reports (as long as it was executed in the past year, per our data pulls.
One good side benefit from this is that we are able to parse the path of the reports and tell how much gets executed from "my folders", and there are a lot of executions from there!
One final note on this - we have begun looking at the Cognos Toolkit from IBM. IBM was able to demonstrate how we could use the toolkit to get the "where used" answers we were looking for without going through the process above. In our specific case we were fortunate to already have the historical data captured, but we don't do the same thing on all data sources so solutions like Cognos Toolkit and Motio remain in our arsenal to respond to future needs.
------------------------------
Jeff Demaris
------------------------------
Original Message:
Sent: Fri February 07, 2020 07:37 PM
From: Jeff Demaris
Subject: Finding "where used" information from Cognos environment
I have what I think is a pretty common question and I've searched a lot on this topic but not found a satisfactory answer. I am hoping that there's someone in this community who's faced and solved this problem.
A few database views in a reporting data source are changing and this will impact reports on the Cognos server.
We need to identify what packages/reports reference this view so the scope of work to remediate can be communicated to the project team.
We have tried querying the content store cmobjprops7 table and have been able to parses out the XML to get the report definition, but found that not all of the report XML contains a sqlText entry with the report sql and there are dataitem expressions throughout some of the other XML with references to model presentation layer renaming of tables and fields. So we are not confident the content store query will give reliable results.
We have begun working with the SDK to see if we can extract possibly the package information and find references to the database views, but have had very slow progress there due to our lack of experience with the SDK.
I should also mention that we have started using Motio to pull the information but it is way to slow and we won't get the required information in time.
My question to the community is if anyone has found a solution for this and is willing to share.
------------------------------
Jeff Demaris
------------------------------
#CognosAnalyticswithWatson