Uno de los beneficios de utilizar
macros es que permiten especificar sentencias parciales de consultas en código X++,
las cuales pueden ser reutilizadas en varias partes a lo largo de cualquier
aplicación.
Beneficios:
·
Reutilización de código,
·
Mejora la lectura del código fuente,
·
Mayor flexibilidad a modificaciones,
·
Reducir el tiempo de desarrollo.
Clase con dos métodos que realizan consultas a la base de
datos.
Método: custPaymentProcess
Método:
advancesProcess
Luego del análisis realizado a estos dos métodos se puede
observar que las consultas pueden ser utilizadas dentro de macros, de esta
forma, se puede mejorar la visibilidad del código fuente y hacer uso de la
reutilización del código.
Para lo cual creamos dos macros:
Todo se simplifica utilizando macros
·
Macro FieldsCustPaymentHeader
A continuación la explicación al código.
o
El %1, %2, %n permite pasar argumentos a nuestra
macro, esto permite definir desde donde se llama la macro las variables que
queremos utilizar dentro de esta.
o
#ifNot.Empty(%n) permite definir un rango condicionante
de acuerdo al argumento que se esté enviando a la macro. En este ejemplo
comprobamos si el parámetro enviado en la tercera posición no está vacío ejecuta
todo el bloque #ifNot.Empty(%3) …#EndIf
o
#EndIf identifica que es el final de la macro
condicionante.
o
#if.Empty(%n) permite comprobar si el parámetro
enviado en la posición %n es vacía, entonces se ejecuta todo lo que se
encuentra en el bloque #If .Empty…#EndIf
·
Macro FieldsCustPaymentLine
La explicación expuesta en la primera macro aplica en esta.
Utilización de la
macro en consultas SQL en X++
Modificamos nuestro código original para remplazar con las
macros creadas anteriormente.
En el segundo método tenemos:
De esta forma la utilización de macros en las sentencias SQL nos permite una gran flexibilidad a la hora de desarrollar aplicaciones en Axapta.