[AX 2012 R3 - How To] Depurar un Reporte

junio 16, 2016 Christian Amado 0 Comentarios

Microsoft Dynamics AX Depurar un reporte que fue asignado con un Data Provider, resulta un poco complicado a primera vista. El principal problema radica en que los reportes suelen almacenarse en tablas temporales o en memoria haciendo que no se pueda depurar.

Pero lo podemos lograr haciendo un pequeño cambio en las propiedades de la tabla temporal y un cambio en la clase que corresponde al Data Provider.

Primeramente, debemos asegurarnos que nuestro usuario tiene permisos para depurar en el servidor actual. También debemos ver en la configuración del Servidor de AX que esté marcada la opción de depuración de código X++.

 En la clase debemos cambiar la clase base:
//class SomeReportDP extends SRSReportDataProviderBase
class SomeReportDP extends SrsReportDataProviderPreProcess

Esto hace que el reporte primero procese todo lo referente a datos y por último muestre el reporte en sí. De esta manera logramos que los datos puedan ser accedidos por el depurador.

También debemos asegurarnos que en el método processReport() coloquemos la llamada al siguiente método:
TABLA_TEMPORAL.setConnection(this.parmUserConnection());

Por último debemos modificar las propiedades de la tabla temporal:
  • CreatedBy = Yes
  • CreatedTransactionId = Yes
  • TableType = Regular
Con estos cambios, lograremos depurar el código en la clase que provee los datos al reporte.