If you are unable to create a new account, please email support@bspsoftware.com

 

News:

MetaManager - Administrative Tools for IBM Cognos
Pricing starting at $2,100
Download Now    Learn More

Main Menu

Could not load grid data: Could not bind...

Started by dougp, 07 Jan 2021 02:14:09 PM

Previous topic - Next topic

dougp

I have a data module that uses a data source that is still being developed.  It was working until some changes were made in the database today.

Today we changed the name of the database.  Simple:  Change the connection string.
We also changed the name of a column.  OK.  Just changing the expression for that column doesn't work.  Remove and reimport the table.

But I'm still getting this message:
Could not load grid data: Could not bind Time.

I have a table named Time.  I tried removing it and reimporting it, but I still get the error message and Cognos refuses to display grid results for any table in the database.  Same message for every table.  All columns on the Time table validate.

I notice when I "Try it" I get this error message:

500 - Internal Server Error
URL: v1/metadata/base_modules/b12dd7e55dae7c1471babc09216f0d8dbf2a7303_sessionTemp/metadata/functionList
{"msg":"MSR-GEN-0002 Error: \"{\r\n   \"messages\": [],\r\n   \"message\": \" Could not bind Time\"\r\n}\"","code":"MSR-GEN-0002"}


...and...

XQE-QRY-0407 Could not find a metadata item." Could not bind Time"
RSV-SRV-0042 Trace back:
RSReportService.cpp(736): QFException: CCL_CAUGHT: RSReportService::processImpl()
RSReportServiceMethod.cpp(253): QFException: CCL_RETHROW: RSReportServiceMethod::process(): asynchRunSpecification_Request
RSASyncExecutionThread.cpp(873): QFException: RSASyncExecutionThread::checkException
RSASyncExecutionThread.cpp(317): QFException: CCL_CAUGHT: RSASyncExecutionThread::runImpl(): asynchRunSpecification_Request
RSASyncExecutionThread.cpp(918): QFException: CCL_RETHROW: RSASyncExecutionThread::processCommand(): asynchRunSpecification_Request
RSRequest.cpp(1658): QFException: CCL_THROW: RSRequest::executeInteractivePrompting()
RSQueryMgr.cpp(809): QFException: CCL_RETHROW: RSQueryMgr::getListIterator
RSQueryMgr.cpp(881): QFException: CCL_RETHROW: RSQueryMgr::getResultSetIterator
RSQueryMgr.cpp(989): QFException: CCL_RETHROW: RSQueryMgr::createIterator
RSQueryMgrBasic.cpp(296): QFException: CCL_RETHROW: RSQueryMgrBasic::executeRsapiCommand
RSQueryMgrBasic.cpp(673): QFException: CCL_THROW: RSQueryMgrBasic::processException
RSQueryMgrExecutionHandlerImpl.cpp(168): QFException: CCL_RETHROW: RSQueryMgrExecutionHandlerImpl::execute()
RSFaultHandler.cpp(97): QFException: CCL_THROW: RSFaultHandler::handleNonCriticalException
QFSSession.cpp(1190): QFException: CCL_RETHROW: QFSSession::ProcessDoRequest()
QFSSession.cpp(1188): QFException: CCL_CAUGHT: QFSSession::ProcessDoRequest()
QFSSession.cpp(1145): QFException: CCL_RETHROW: QFSSession::ProcessDoRequest()
QFSSession.cpp(1121): QFException: CCL_RETHROW: QFSSession::ProcessDoRequest()
QFSConnection.cpp(888): QFException: CCL_RETHROW: QFSConnection::Execute
QFSQuery.cpp(311): QFException: CCL_RETHROW: QFSQuery::Execute v2
XQEConnector.cpp(227): QFException: CCL_THROW: XQEConnector::send


At this point I'm assuming the error message is nonsense.  Does anyone here know how to identify the real error condition that Cognos is encountering?

Is the real message here that web-based modeling is not yet mature enough for production work and I should continue to use Framework Manager?

bus_pass_man

By connection string you mean the JDBC connection string.  Is that a correct understanding?

Did you do the change of the column name at the same time?  (i.e. it is no longer possible to determine which action broke your module).

What validation messages do you see?

Did you relink to the data source?  When you do, do you see the renamed column in the source view?

You might need to reload the schema but don't do that quite yet as the validation and relinking might provide clues.

If you import the schema into a new module do you get the error?

You are still using 11.0.13 I think you've said.

The current release of CA is 11.1.7 FP2, which is nearly two years on from 11.0.13. 

It's a bit more serious than 11.0.  There's still gaps -- no prompting, although a module with prompts in it will work when run (although dashboards do not properly support the promptmany macro so that's a problem too), metadata change synchronization is spotty, no object security, no presentation view functionality are some which spring to my mind. 

In FM the update query subject functionality is better placed to synchronize metadata changes in the data base.  I think it has been a surprise that people tend to change stuff in their data warehouses more often than anticipated.

dougp

Yes, the JDBC connection string.

Yes, the database name change and the column name change were done at the same time.  Both broke the module.  The column whose name changed is in a different table.  There is only one object in my database that is named "Time".  It is a table.  Cognos named it Time_ in the data module, probably because Time is a keyword.  But that alias shouldn't affect anything.

The only validation message I get is, "The expression is valid."

Yes, I downloaded the updated schema information in the data source and relinked the data source in the data module.
No, the column did not get automatically renamed.  The relink broke the data module, that's why I needed to manually remove and re-add the table that contained the affected column, then recreate the joins.

Then I started having this random problem with "Time" -- an object in the database that did not change.

I am aware that 11.1.7 FP2 is available and am also aware that CMS is broken.  Since we use CMS, 11.1.7 FP2 is not viable here.  I am currently working with an interim fix that looks promising.  But my deadline for the data mart project is before I will have a chance to get Cognos upgraded.

The data source for this module is a very well developed data mart -- meaning I don't really need to do a lot of work (no aliasing, no role playing, no odd joins, etc.) to create the module.  I have not included any prompts or other macro functionality.  This is a very simple data module.

This is a new data mart development effort.  I have been developing Cognos functionality alongside the database development.  That means that -- more frequently than usual -- there are changes happening to the database that necessitate changes in the module and reports.

I don't understand your last 2 paragraphs.  Are you recommending staying with FM for now?

If I continue to use data modules, it looks like my next step is to delete the data module and create a new one.  That doesn't seem like a good solution if the data module has many elements or if there has been a lot of customization (aliasing, macros, etc.).

bus_pass_man

QuoteThe only validation message I get is, "The expression is valid."
Where did you get this message?

Did you click on the validation tab (the third tab, beside the data grid and diagram tabs)?

I am curious to see what error messages are appearing.  I don't know why the data grid would complain about something which was not changed.  The logs directory, especially the cognosserver.log file and the xqe log files, could be helpful. 

I think what you will need to do is reload the schema, reopen the module, and replace the renamed objects.

The FM/module decision is really governed by what you need to do and there are rather a lot of variables to consider. I'm not in a position to make a definitive statement.


dougp

QuoteWhere did you get this message?
In the properties for a column, open the expression, click Validate.

In the Validation pane, I click Validate and I get one validation issue:


Severity!
ObjectTime<-->factQuarterHourTruckWeight
Validation issueMSR-VRF-1110 The join relationship "Time<-->factQuarterHourTruckWeight" refers to the table "Time", which does not exist. Edit the join so it refers to an existing table.

and an error message popup at the top of the screen that says:
Could not validate module: An unknown error has occurred

Oddly, both persist after I remove all of the relationships and the Time table.

Following your recommendation, I:
Clicked "Load metadata" for the schemas I need. (no error messages here)
Opened the data module.
Removed all of the relationships that involve the Time table.
Removed the Time table.
Saved the data module.
When I open the data module, I get an error message.  (Could not load grid data: Could not bind Time.)
When I validate the data module, I get the same validation issue as above.

The Time table is no longer in the data module.  Clearly, Cognos doesn't know how to edit a data module.  Is there a way to export a data module spec, edit it in a text editor, then import it back into Cognos?  (Although, that doesn't really solve the core issue here.)

What I need to do is provide a reporting solution to my users.  It's looking more and more like data modules will not be part of the solution.

And in a report when I "replace data module" and select a package, the reference to the package gets added to the report spec.  But when I save the report, the reference to the data module is saved.  So to convert from using a data module to using a package in a report, I had to export the report spec (after changing to the package but before saving the report), import the report spec (which creates a new report), and save as.  What a hassle.  Cognos 11.0.13 is clearly very confused by data modules.

bus_pass_man

You state that you reloaded the schema. 

Did you replace the objects which you renamed?   

You said that time is not what you renamed so I don't know why you are mucking with it. 










dougp

QuoteDid you replace the objects which you renamed?
Do you mean, did I remove them from the data module and drag them back in?  Yes, I did.

QuoteYou said that time is not what you renamed so I don't know why you are mucking with it.
In hopes of clearing the error.  Cognos is adamant -- based on the error message -- that the Time table doesn't exist.  I'm trying to get Cognos to acknowledge that it does.

I was able to create a new data module with no problems.  But that's not a good solution.  It's like taking my car to the shop to get a lug nut replaced, and they tell me they'll need to build an entirely new car from parts from the ground up.  Maybe data modules are more sustainable in 11.1.x, but I'm not there yet.