Question

error occured during resolving the report definition - InvalidReferenceException .< Property_name > Unexposed properties cannot be selected for classes mapped to external tables

Hi ,

We migrated the Platform from 7.2 to 7.4 . post that we are seeing errors while running on of our report Definition rule

Please note : Properties are optimized and we started seeing this error after upgrade in both non prod and prod environments

"error occured during resolving the report definition - InvalidReferenceException .TRANSACTION_NUMBER Unexposed properties cannot be selected for classes mapped to external tables"

Stack trace :

[MSG][An error occured during resolving the report definition - InvalidReferenceException .TRANSACTION_NUMBER Unexposed properties cannot be selected for classes mapped to external tables][STACK][com.pega.pegarules.data.internal.rd.reference.InvalidReferenceException: InvalidReferenceException .TRANSACTION_NUMBER Unexposed properties cannot be selected for classes mapped to external tables at com.pega.pegarules.data.internal.rd.utils.ValidationUtils.throwInvalidReferenceException(ValidationUtils.java:466) at com.pega.pegarules.data.internal.rd.reference.StreamPropertyReferenceResolver.isValidClassForReference(StreamPropertyReferenceResolver.java:209) at com.pega.pegarules.data.internal.rd.reference.StreamPropertyReferenceResolver.resolve(StreamPropertyReferenceResolver.java:104) at com.pega.pegarules.data.internal.rd.reference.GenericPropertyReferenceResolver.resolve(GenericPropertyReferenceResolver.java:150) at com.pega.pegarules.data.internal.rd.resolve.AbstractFieldResolver.resolveField(AbstractFieldResolver.java:92) at com.pega.pegarules.data.internal.rd.resolve.AbstractFieldResolver.resolveFields(AbstractFieldResolver.java:63) at com.pega.pegarules.data.internal.rd.resolve.AbstractFieldResolver.resolveFields(AbstractFieldResolver.java:55) at com.pega.pegarules.data.internal.rd.resolve.ListResolver.resolve(ListResolver.java:58) at com.pega.pegarules.data.internal.rd.resolve.SqlReportResolver.resolve(SqlReportResolver.java:62) at com.pega.pegarules.data.internal.rd.resolve.SqlReportResolver.resolve(SqlReportResolver.java:37) at com.pega.pegarules.data.internal.rd.SQLExecutorResultsCP.resolve(SQLExecutorResultsCP.java:69) at com.pega.pegarules.data.internal.rd.SqlReportExecutor.executeSubReport(SqlReportExecutor.java:247) at com.pega.pegarules.data.internal.rd.SqlReportExecutor.execute(SqlReportExecutor.java:83) at com.pega.pegarules.data.internal.rd.SqlReportExecutor.execute(SqlReportExecutor.java:57) at com.pega.pegarules.data.internal.rd.resolve.SubReportResolver.executeSubReport(SubReportResolver.java:220) at com.pega.pegarules.data.internal.rd.resolve.SetQueryResolver.processSetReports(SetQueryResolver.java:70) at com.pega.pegarules.data.internal.rd.resolve.SetQueryResolver.resolve(SetQueryResolver.java:49) at com.pega.pegarules.data.internal.rd.resolve.SqlReportResolver.resolve(SqlReportResolver.java:62) at com.pega.pegarules.data.internal.rd.resolve.SqlReportResolver.resolve(SqlReportResolver.java:37) at com.pega.pegarules.data.internal.rd.SQLExecutorResultsCP.resolve(SQLExecutorResultsCP.java:69) at com.pega.pegarules.data.internal.rd.SQLExecutorResultsCP.resolveQuery(SQLExecutorResultsCP.java:143) at com.pega.pegarules.data.internal.rd.SqlReportExecutor.resolveQuery(SqlReportExecutor.java:57) at com.pega.pegarules.data.internal.rd.query.RDBMSExecutor.resolve(RDBMSExecutor.java:69) at com.pega.platform.query.LogicalQueryExecutions.resolve(LogicalQueryExecutions.java:134) at com.pega.platform.query.LogicalQueryExecutions.executor(LogicalQueryExecutions.java:95) at com.pega.pegarules.data.internal.PRDataProviderImpl.executeReport(PRDataProviderImpl.java:1512) at com.pega.pegarules.session.internal.mgmt.Executable.executeReport(Executable.java:11060) at

Comments

Keep up to date on this post and subscribe to comments

August 3, 2018 - 3:41am

Hello,

Looks like TRANSACTION_NUMBER property isn't exposed. Do you have a dedicated column for this because if this is only on BLOB it cannot be used for external table mapping apparently.

August 5, 2018 - 1:35pm
Response to MarcLasserre_GCS

Hello ,

TRANSCATION_NUMBER property is exposed and has a dedicated column. Class is mapped to internal table . No mappings to external table.

We started seeing this error after migrating from 7.2 to 7.4 . 

We dont see any guardrail warning for the Report Definition rule 

 

April 25, 2019 - 1:44pm
Response to SanmathS

Any luck in getting solution to fix this issue?

August 6, 2018 - 5:19am

Could you please provide screenshots of your RD.

September 10, 2019 - 5:30am

We are facing  same issue. Any fix available?

Pega
September 10, 2019 - 6:17am

Hi,

If property is already exposed, still getting the above error, Just save the Database table instance of that particular class once then  try to save the report definition by this you can get rid of the above error. If not please have a look into the generated query and try to execute that query directly against the DB and observe the outcome.

Thank You,

Pega
September 18, 2019 - 4:40pm

There are a couple of things you can check here:

1) Make sure the Data-Admin-DB-Table mapping is correct. The upgraded environment may have it mapped to the wrong database table.

2) Is the "Report on descendant classes" option checked in the report definition? If it is, see if the problem persists when you uncheck the option. If the problem goes away, it can imply one of a couple of issues.