2.12.Depurar las clases RDP.

A estas alturas tal vez hayas intentado depurar código en alguna clase RDP y no habrás podido.
Si necesitas depurar código en una clase de tipo SrsReportDataProviderBase lo que deberás hacer es extender la clase de la SrsReportDataProviderPreProcess.
También deberías extenderla de ésta, cuando el informe va a contener una gran cantidad de datos, ya que en caso contrario podría llegar a fallar.

En la imagen podéis ver la clase SalesInvoiceDPBase.

 
 
Si extendéis vuestra clase de una PreProcess deberéis tener en cuenta que todas las tablas que se utilizen en la clase deberán ser de tipo Regular y tener las propiedades Created By y CreatedTransactionId a Yes.
Esto sirve para que aunque no sea una tabla temporal se trate como tal.



Para que las tablas generen el TransactionId al principio del report, deberemos indicarle la conexión del ususario.

SalesInvoiceTmp.setConnection(this.parmUserConnection());


Recordad que esto se deberá hacer para todas las tablas 'Tmp' que se utilizen en el report.

Nota: Si vuestra clase DP extendía de la SRSReportDataProviderBase y le habéis hecho todo esto para poder depurar el código, recordad de ir al visual para refrescar el/los dataSources, para que aparezca el nuevo campo CreatedTransactionid y hacezle un deploy. En caso contrario os dará error indicando que la tabla de informe debe ser Temporal.
Lo mismo para el caso contrario.
En caso de que fuera una preprocess y la cambies por una ProviderBase recordad de actualar el informe.




Comentarios